c语言程序改错题题

欢迎来到233网校,
计算机二级
设为默认后,再次访问可直接进入该考试题库
下次访问直接进入该考试题库
计算机二级
总题2266/已做0
注:题库因定期调整和更新,题量会发生变化,试题总量,请考生以实际能抽出的题量为准。
1.1 程序和程序设计
1.3 结构化程序设计和模块化结构
2.1 简单C语言程序的构成和格式
2.2 标识符、常量和变量
2.3 整型数据
2.4 实型数据
2.5 算术表达式
2.6 赋值表达式
2.7 自加、自减运算符和逗号运算符
3.1 赋值语句
3.2 数据输出
3.3 数据输入
3.4 复合语句和空语句
3.5 程序举例
4.1 关系运算和逻辑运算
4.2 if语句和用if语句构成的选择结构
4.3 条件表达式构成的选择结构
4.4 switch语句以及用switch语句和break语句构成的选择结构
5.1 while语句和用while语句构成的循环结构
5.2 do-while语句和用do-while语句构成的循环结构
5.3 for语句和用for语句构成的循环结构
5.4 循环结构的嵌套
5.5 break和continue语句在循环体中的作用
5.6 程序举例
6.1 字符型常量
6.2 字符变量
6.3 字符的输入和输出
6.4 程序举例
7.1 库函数
7.2 函数的定义和返回值
7.3 函数的调用
7.4 函数的说明
7.5 调用函数和被调用函数之间的数据传递
7.6 程序举例
8.1 变量的地址和指针
8.2 指针变量的定义和指针变量的基类型
8.3 给指针变量赋值
8.4 对指针变量的操作
8.5 函数之间地址值的传递
9.1 一维数组的定义和一维数组元素的引用
9.2 一维数组和指针
9.3 函数之间对一维数组和数组元素的引用
9.4 一维数组应用举例
9.5 二维数组的定义和二维数组元素的引用
9.6 二维数组和指针
9.7 二维数组名和指针数组作为实参
9.8 二维数组程序举例
10.1 用一维字符数组存放字符串
10.2 使指针指向一个字符串
10.3 字符串的输入和输出
10.4 字符串数组
10.5 用于字符串处理的函数
10.6 程序举例
11.1 传给main函数的参数
11.2 通过实参向函数传递函数名或指向函数的指针变量
11.3 函数的递归调用
12.1 局部变量、全局变量和存储分类
12.2 局部变量及其作用域和生存期
12.3 全局变量及其作用域和生存期
12.4 函数的存储分类
13.1 编译预处理
13.2 动态存储分配
14.1 用typeclef说明一种新类型名
14.2 结构体类型
14.3 共用体
15.1 位运算符
15.2 位运算符的运算功能
16.1 C语言文件的概念
16.2 文件指针
16.3 打开文件
16.4 关闭文件
16.5 调用getc(fgetc)和putc(fputc)函数进行输入和输出
16.6 判断文件结束函数feof
16.7 fscanf函数和fprintf函数
16.8 fgets函数和fputs函数
16.9 fread函数和fwrite函数
17.1 上机考试系统使用说明
17.2 上机考试内容
是否确定清除章节练习记录?
请选择题型
注意:每次固定只抽取20道题,抽完为止C语言程序金典例题20题_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言程序金典例题20题
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩14页未读,
定制HR最喜欢的简历
你可能喜欢C语言编程练习题绝对经典!_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言编程练习题绝对经典!
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩22页未读,
定制HR最喜欢的简历
你可能喜欢C语言程序例题_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言程序例题
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩8页未读,
定制HR最喜欢的简历
你可能喜欢1.试参考本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a、b、h表示,并用a=10,b=20,h=5测试所编写的程序。
1 #include &stdio.h&
2 int main(void) {
int a = 10, b = 20, h = 5;
printf("梯形的面积是:%d\n", (a + b) * h / 2);
2.编写程序显示如图所示的信息
3.4 编程题
1.编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式输出。
十六进制数
1 #include &stdio.h&
2 int main()
scanf("%d%d", &x, &y);
printf("\t\tx\ty\n");
printf("十进制数\t%d\t%d\n", x, y);
printf("八进制数\t%o\t%o\n", x, y);
printf("十六进制数\t%X\t%X\n", x, y);
2.编写一个程序,输入一个大写英文字符(‘B’~‘Y’),输出它的前导字符、该字符本身及其后续字符。
1 #include &stdio.h&
2 int main()
printf("请输入一个大写英文字母");
scanf("%c", &ch);
printf("大写英文字母是%c\n", ch);
printf("它的前导字符是%c\n", ch-1);
printf("它的后导字符是%c\n", ch+1);
3.编写一个程序,输入一个3位正整数,要求反向输出对应的整数,如输入123,则输出321。编写程序并给出相应的程序流程图。
1 #include &stdio.h&
2 int main()
int n, a, b, c,
printf("请输入一个三位整数:\n");
scanf("%d", &n);
a = n / 100;
b = (n - a * 100) / 10;
c = n % 10;
ans = c * 100 + b * 10 +
printf("反向输出该整数:\n%d\n", ans);
4.某工种按小时计算工资,每月的劳动时间乘上每小时工资,再从总工资中扣除10%公积金,剩余的为应发工资。编写一个程序从键盘输入劳动时间和每小时工资,打印出应发工资数额。
1 #include &stdio.h&
2 int main()
scanf("%d%lf", &m, &t);
sum = 0.9 * m *
printf("%lf\n", sum);
5.编写程序,读入3个整数给变量a, b, c,然后交换它们的值,把a原来的值给b,把b原来的值给c,把c原来的值给a。
1 #include &stdio.h&
2 int main()
int a, b, c,
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
printf("交换前a=%d,b=%d,c=%d\n", a, b, c);
printf("交换后a=%d,b=%d,c=%d\n", a, b, c);
4.4 编程题
1.输入3个实型数值a、b、c,如果能用它们作为三角形的3条边形成一个三角形,则输出三角形的面积,并画出实现该算法的N-S流程图并编程实现。
1 #include &stdio.h&
2 #include &math.h&
3 int main()
float a, b, c,
scanf("%f,%f,%f", &a, &b, &c);
if (a+b&c && a+c&b && b+c&a)
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f", area);
2.输入整数x、y,若x2+y2&1000,则输出x2+y2百位以上的数字,否则输出两数之和。
1 #include &stdio.h&
2 int main()
scanf("%d,%d", &x, &y);
if (x*x + y*y & 1000)
printf("%d\n", (x*x + y*y)/100);
printf("%d\n", x+y);
3.对任意输入的x,用下式计算并输出y的值。
1 #include &stdio.h&
2 #include &math.h&
3 int main()
scanf("%f", &x);
if (x & 2)
y= x * x - sin(x);
else if (x &= 2)
y = pow(2, x) + 1;
y = sqrt(x * x + x + 1);
printf("%f\n", y);
4. 编写程序输入一个5位整数,判断它是不是回文数。回文数是指一个数从右到左和从左到右的对应数码相同,如12321是回文数,个位与万位相同,十位与千位相同。
1 #include &stdio.h&
2 int main()
long ge, shi, qian, wan,
scanf("%ld", &x);
wan = x / 10000;
qian = x % 10000 / 1000;
shi = x % 100 / 10;
ge = x % 10;
if (ge == wan && shi == qian) // 个位等于万位并且十位等于千位
printf("这个数是回文数\n")
printf("这个数不是回文数\n");
5.编写程序用于计算某运输公司的运费。设每公里每吨货物的基本运费为p,货物重量为w,路程为s(单位为km),折扣为d,总费用计算公式为:f=p*w*s*(1-d)。运费计算标准见表4.5。表4.5
某运输公司运费计算标准
250&=s&500
500&=s&1000
1000&=s&2000
2000&=s&3000
1 #include &stdio.h&
2 int main()
float p, w, s, d,
scanf("%f,%f,%f", p, s, w);
if (s & 3000)
else if (s &= 2000)
else if (s &= 1000)
else if (s &= 500)
else if (s &= 250)
f = p * w * s * (1-d);
printf("%f", f);
6.编写程序实现产品保修额的计算。如果本公司的产品,则使用期在1年(含1年)以内,免收保修额;使用期在1年以上并且在8年以下(含8年),收取保修额50元;使用期在8年以上,收取保修额10元。如果不是本公司的产品,则一律收取保修额200元。根据用户输入的信息,计算保修额。编程提示:是否是本公司产品的选项值(字符型)和使用年数(整型)由用户从键盘输入,然后系统开始判断。输入输出样例:是否是本公司产品(y/n):y产品使用的年限:6产品保修额是:50元
1 #include &stdio.h&
2 int main()
printf("是否是本公司产品(y/n):");
scanf("%c", &x);
if (x == 'y' || 'Y');
printf("产品使用的年限:");
scanf("%d", &year);
if (year &= 1)
money = 0;
else if (year & 8)
money = 50;
money = 100;
printf("产品保修额是:%d\n", money);
7.编写程序实现银行ATM自动取款机的功能,取款机内只有100元和50元两种面值,要求支取金额都在2000(包含2000)元以内。该取款机将用户输入的金额按照人民币从大到小的面值进行折合计算。先算出最大可以出多少100元,剩下的再计算最多可以出多少50元。例如,用户要取款650元,则取款机应付出的钱的种类及个数为:6个100元、1个50元。如果用户输入的钱数不是50的倍数,显示“输入钱数必须是50的倍数”。输入输出样例:请输入取款额(≤2000):750需支付100元:7张需支付50元:1张请输入取款额(≤2000):530输入钱数必须是50的倍数!
1 #include &stdio.h&
2 int main()
int money, num1, num2;
printf("请输入取款额(≤2000):");
scanf("%d", &money);
if (money & 2000)
printf("请输入取款额数≤2000!\n");
else if (money % 50 == 0)
num1 = money / 100;
num2 = (money - num1*100) / 50;
printf("需支付100元:%d张\n", num1);
printf("需支付50元:%d张\n", num2);
pritnf("输入钱数必须是50的倍数!\n");
return 0;
5.4 编程题
1.用3种循环语句编写程序实现下列算式:(1)1+2x2+3x3+…+100x100(2)e=1/1!+1/2!+...+1/n!+...,当最后一项的值小于10-6时为止。
2 #include &stdio.h&
3 int main()
long s = 0;
for (i = 1; i &= 100; i++)
printf("%ld", s);
12 #include &stdio.h&
13 int main()
int i = 1;
long p = 1;
float s = 0;
s += 1.0/p;
}while (1.0 / p & 1e-6)
printf("%f", s);
2.编写程序求两个正整数的最大公约数。
1 #include &stdio.h&
2 int main()
int a, b, m, n,
scanf("%d,%d", &m, &n);
if (m & n)
printf("%d,%d", n, a*b/n);
3.编写程序求一个整数的任意次方的最后3位数,即求xy的最后3位数。
1 #include &stdio.h&
2 int main()
int x, y, s = 1;
scanf("%d,%d", &x, &y);
for ( ; y & 0; y--)
printf("%d,%d,%d\n", s%10, s/10%10, s/100%10);
4.百鸡问题。用100元钱买100只鸡,其中,公鸡每只5元,母鸡每只3元,小鸡每3只1元。编写程序输出各种买法。
1 #include &stdio.h&
2 int main()
for (x = 1; x & 20; x++)
for (y = 1; y & 33; y++)
z = 100 - x -
if (z &= 0 && (5 * x + 3 * y + z /3) - 100 & 1e -5)
printf("x=%d,y=%d,z=%d\n", x, y, z);
5.编写程序分别打印如下图形:
2 #include &stdio.h&
3 int main()
for (j = 1; j &= 4; j++)
for (k = 1; k &= 4-j; j++)
printf(" ");
printf("****");
printf("\n");
16 #include &stdio.h&
17 int main()
for (j = 1; j &= 4; j++)
for (k = 1; k &= 2*j-1; k++)
printf("*");
printf("\n");
6.请编写程序求100~999之间所有的水仙花数。水仙花数的含义是指这样的一个3位数,其各位数字的立方和等于该数本身。例如,371=33+73+13,所以371是一个水仙花数。
1 #include &stdio.h&
2 int main()
int i, j, k,
printf("'water flower' number is:");
for (n = 100; n & 1000; n++)
i = n/100; //分解出百位
j = n/10%0; //分解出十位
k = n%10; //分解出个位
if (i*100 + j*10 + k == i*i*i + j*j*j + k*k*k)
printf("%-5d", n);
pritnf("\n");
7.学校有近千名学生,在操场上排队,5人一行余2人,7人一行3人,3人一行余1人,编写一个程序求该校的学生人数。
1 #include &stdio.h&
2 int main()
for (x = 1000; x &= 3; x--)
if (x % 3 == 1 && x % 5 == 2 && x % 7 == 3)
printf("该校的学生人数是:%d人\n", x);
8.小明今年12岁,他的母亲比他大20岁,他母亲在几年后将比他的年龄大一倍,编写一个程序计算出那时他们的年龄各多少?
1 #include &stdio.h&
2 int main()
int x = 12, i = 1;
if ((x + 20 + i) == 2 * (x + i))
printf("小明母亲在%d年后比小明的年龄大一倍\n", i)
printf("那时小明年龄是:%d岁,小明母亲年龄是:%d岁\n", x+i, x+20+i);
6.3 编程题
1.编写程序计算下列公式中的f值,使用带参数的宏来实现
1 #include &stdio.h&
2 #define F(a) a*a+sqrt(3*a*a+2*a+1)
3 int main()
scanf("%f", &x);
f = 4.5/F(exp(x))+F(cos(x))+F(sqrt(x))/F(x*x);
printf("%f\n", f);
7.4 编程题
1.设数组a中的元素都为正整数,编程求其中偶数的和及奇数的和。
1 #include &stdio.h&
2 #define N 10
3 int main()
int a[N] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, osum = 0, qsum = 0,
for (j = 0; j & 10; j++)
if ((j%2))
qsum += a[j];
osum += a[j];
printf("osum=%d, qsum=%d\n", osum, qsum);
2.有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中,插入后数组仍然有序,请编程实现。
1 #include &stdio.h&
2 #define N 10
3 int main()
int a[N] = {10, 20, 30, 40, 50, 60, 70, 80, 90}, j, k,
scanf("%d", &x);
for (j = 0; j & N; j++)
if (x & a[j])
for (k = N-1; k & k--)
a[k] = a[k-1];
for (j = 0; j & N; j++)
printf("%d ", a[j]);
3.编一个程序检查二维数组是否对称(即对所有的i和j,都有a[i][j]=a[j][i])。
1 #include &stdio.h&
2 #define M 3
3 int main()
int a[M][M] = {{1,2,3},{2,4,5},{3,5,6}}, j, k, flag = 1;
for (j = 0; j & M; j++)
for (k = 0; k & M; k++)
if (a[j][k] != a[k][j])
printf("ok");
printf("no");
4.编程比较两个字符串的大小(不用strcmp( )函数)。
1 #include &stdio.h&
2 #include &string.h&
3 int main()
char c1[100], c2[100],
for (j = 0; (c1[j]==c2[j])&&c1[j]&&c2[j]; j++);
if (c1[j] & c2[j])
printf("1\n");
if (c1[j] & c2[j])
printf("-1\n");
if (c1[j] == c2[j])
printf("0\n");
5.有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格及其他字符的个数。
8.4 编程题
1.按以下要求编写一个程序。定义3个变量用于存放输入的3个整数,另定义3个指向整型变量的指针变量,并利用它们实现将输入的3个整数按由小到大的顺序输出。
1 #include &stdio.h&
2 int main()
int n1, n2, n3,
int *p1, *p2, *p3;
printf("please input 3 number: n1, n2, n3:\n");
scanf("%d%d%d", &n1, &n2, &n3);
if(*p1 & *p2) { t = *p1; *p1 = *p2; *p2 = }
if(*p1 & *p3) { t = *p1; *p1 = *p3; *p3 = }
if(*p2 & *p3) { t = *p2; *p2 = *p3; *p3 = }
printf("the sorted numbers are: %d %d %d\n", n1, n2, n3);
2.编程用指针实现将从键盘输入的N个数逆序输出。
#include &stdio.h&
#define N 3
int main()
int a[N], *p =
for( ; p-a&N; p++)
scanf("%d", p);
p = a + N - 1;
for( ; p - a &= 0; p--)
printf("%d ", *p);
3.编程用指针实现输入10个整数,将其中最小的数与第1个数对换,把最大的数与最后一个数对换。
1 #include &stdio.h&
2 int main()
void input(int *);
void output(int *);
void chuli(int *);
int a[10];
output(a);
13 void input(int *a)
for (j = 0; j & 10; j++)
scanf("%d", a + j);
19 void chuli(int *a)
int j, minl = 0, maxl = 0;
for (j = 0; j & 10; j++)
if (a[maxl] & *(a+j))
if (a[minl] & *(a+j))
a[0] = a[minl];
a[9] = a[maxl];
34 void output(int *a)
for (j = 0; j & 10; j++)
printf("%4d\n", *(a + j));
4.按下列要求输入和输出下列数据阵列,编程用指针实现。
输入阵列如下:1
输出阵列如下:12
1 #include &stdio.h&
2 #define M 3
3 #define N 4
4 int main()
int a[M][N] = {1,2,3,4,5,6,7,8,9,10,11,12}, k, j, *p = *a,
for (k = 0, j = M*N-1; k & k++, j--)
t = *(p+k);
*(p+k) = *(p+j);
for (k = 0; k & M ;k++)
for (j = 0; j & N; j++)
printf("%4d ", a[k][j]);
printf("\n");
5.编程用指针实现求一个字符串的长度(相当于strlen函数的功能)。
1 #include &stdio.h&
2 int main()
int len, length(p);
char *str[20];
printf("please input a string:\n");
scanf("%s", str);
len = length(str);
printf("the string has %d characters.\n",len);
11 int length(p)
12 char *p;
int n = 0;
while (*p != '\0')
6.用指针数组操作将输入的5个字符串按由小到大的顺序输出。
1 #include "string.h"
2 #include "stdio.h"
3 int main()
char *str1[5], ch[5][20], k, t, j, *c;
void sort(char **);
for (k = 0; k & 5; k++)
str1[k] = ch[k];
gets(str1[k]);
for (k = 0; k & 7; k++)
for (j = k + 1; j & 5; j++)
if (strcmp(*(str1+t), *(str1+j))&0)
c = *(str1+t);
*(str1+t) = *(str1+k);
*(str1+k) =
for (k = 0; k & 5; k++)
puts(str1[k]);
1.编写一个函数把字符串的小写字母转成大写字母,其他字符不变。
1 void exchange() {
while (!(ch = getchar()) != \n) {
if (ch &= 'a' && ch &= 'z') {
ch = ch -32;
putchar(ch);
2.编写一个函数求e=1+1/1!+1/2!+1/3!+...+1/n!+...。
1 double expp(int n) {
int fac = 1;
double sum = 1;
for (int k = 1; k &= k++) {
sum += 1.0/
3.编写一个函数求一个整数的任意次方的最后3位数,即求x的y次方的最后3位数。
1 int xy3(int x, int y) {
int k, num = 1;
for (int k = 1; k &= k++) {
num %= 1000;
4.有5个人坐在一起,第5个人说他比第4个人大10岁,请编程求出第5个人多大。
1 int age(int n) {
if (n == 1) {
c = age(n - 1) + 2;
5.编写函数,得到两个整数相除的商和余数。要求通过指针在函数间传递商和余数这两个数据。
1 #include &stdio.h&
2 void fun(int a, int b, int *c, int *d) {
8 int main(void) {
int a, b, c,
scanf("%d%d", &a, &b);
fun(a, b, &c, &d);
printf("%d %d", c, d);
6.编写一个程序,运行时输出命令行参数的个数及参数名。
1 #include &stdio.h&
2 int main(int argc, char *argv[]) {
printf("argc = %d\n", argc);
for (int k = 1; k & k++) {
printf("%s\n", argv[k]);
问题及代码:
烟台大学计算机与控制工程学院
作者:毕春超
完成日期:日
输入一个正整数,判断其是否为回文数
运算结果...
(1)输入一个正整数,判断其是否为一个回文数(例都是回文数,正着看、倒着看,是同一个数)。...
package com.jredu.ch05;
import java.util.S
public class Work2 {
public static void main(S...
先求出整数的反向倒置数,然后进行比较(不是通过将数字转换成字符串的方法)
package com.import java.util.Spublic class Demo...
LeetCode 第9题:
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解题思路:直接转变成字符串s,反转s得到s1,判断是否相等; ...
C程序设计 (第四版) 谭浩强 习题5.9 个人设计习题 5.9 给一个不多于5位的正整数,要求:1. 求出它是几位数;2. 分别输出每一位数字;3. 按逆序输出各位数字,例如原数为321,应输出12...
输入一个3位整数,编程计算并输出它的逆序数(例:输入-123,则忽略负号,由123分离出其百位1,十位2,个位3,并计算输出321)
int x,a,b,c,y;
printf(&请输入一个3位整数 x:&);
/*从键盘输入x的值*/
scanf(&%d&,&x);
没有更多推荐了,

我要回帖

更多关于 c语言编程题库100题 的文章

 

随机推荐