收藏 分销(赏)

C语言程序改错总结.doc

上传人:丰**** 文档编号:4311761 上传时间:2024-09-05 格式:DOC 页数:31 大小:171.51KB 下载积分:12 金币
下载 相关 举报
C语言程序改错总结.doc_第1页
第1页 / 共31页
C语言程序改错总结.doc_第2页
第2页 / 共31页


点击查看更多>>
资源描述
难度1 1、程序D1.c的功能是从键盘读入一个数并在屏幕上显示。 int main(void) { int xy2; /*********Found************/ scanf("%s", &xy2); //改为:scanf("%d", &xy2); /*********Found************/ printf("xy2=%5d\n", &xy2); //改为:printf("xy2=%5d\n",xy2); return 0; } 2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。   #include<stdio.h> float fmax(float x, float y); int main(void) { /*********Found************/ float l, 1; //i l = 3.0; i = 5.6f; /*********Found************/ printf("fmax(%5.2f, %5.2f)=%5.2f\n", i, l, fMax(i, l)); // fmax return 0; } /*********Found************/ int fmax(float x, float y) //改:float { if (x < y) return y; else return x; } 3、程序D4.c的功能是计算半径为2+3的圆的面积。   #include<stdio.h> #define PI 3.14 /*********Found************/ #define S(bj) PI*bj*bj //改: PI*(bj)*(bj) int main(void) { /*********Found************/ int mianJi; //改为:double mianJi = S(2+3); printf("mian ji=%5.2f\n", mianJi); return 0; } 4、相似题:D3.C,程序D5.c的功能是将字符串yy显示在屏幕上。 #include<stdio.h> int main(void) { /*********Found************/ char yy[100] = "ok??\n", //改为:; /*********Found************/ prntf("%s", yy); //改:printf return 0; } 5、考查点:数据类型选择,/运算符的使用功能是计算1/1 + 1/2 + … + 1/N之和并显示。 #include<stdio.h> #define N 10 int main(void) { /*********Found************/ long jieguo = 0; //改:float int fm; for (fm = 1; fm <= N; fm++) { /*********Found************/ jieguo += 1 / fm; //改:(float) 1 / fm } printf("%8.6f\n", jieguo); return 0; } 6、考查点:输入分隔格式控制,循环体的定义, D12.c的功能是从键盘读入a和b的值(输入格式限定为仅a,b),在屏幕上显示b行a。   #include<stdio.h> int main(void) { int a, b; /*********Found************/ scanf("%d%d", &a, &b); //中间加’,’ while (b > 0) /*********Found************/ ___________ //括号’{’ printf("%d\n", a); b--; /*********Found************/ ___________ //括号’}’ printf("bye bye!\n"); return 0; } 7考查点:输入格式控制、变量交换,程序D1000.c的功能是从键盘输入3个浮点数a,b,c(输入时abc之间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。   #include<stdio.h> int main(void) { float a, b, c, t; printf("please input three numbers:\n"); /*********Found************/ scanf("%f%f", &a, &b, &c); //改:%f%f%f printf("before sort:a=%g,b=%g,c=%g\n", a, b, c); if (a > b) { t = a; a = b; /*********Found************/ b = a; //改:t } if (a > c) { t = a; a = c; c = t; } if (b > c) { t = b; b = c; c = t; } printf("after sort:a=%g,b=%g,c=%g\n", a, b, c); return 0; } 8考查点:格式化输出、数据类型的正确使用,程序D1001.c的功能是求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,....前20项之和,要求显示的结果中小数部分有4位。  #include<stdio.h> #define T 20 int main(void) { int n; /*********Found************/ long i, j, temp, sum; i = 2; j = 1; sum = 0; for (n=1; n<=T; n++) { sum = sum + i / j; temp = i; i = i + j; j = temp; } /*********Found************/ printf("2/1+3/2+5/3+8/5+13/8+...=%5.2f\n", sum); //改:.4 return 0; } 9考查点:用算术表达式实现数据交换,程序D1002.c的功能是实现两数交换。  #include<stdio.h> int main(void) { int x = 5, y = 9; x = x + y; y = x - y; /*****Found*****/ x = y - x; //改:x – y; printf("x=%d, y=%d\n", x, y); return 0; } 10考查点:整型常量表示、输出项表示,程序D1003.c的功能是将16进制数100转换为10进制数输出。 #include<stdio.h> int main(void) { /*****Found*****/ int i = 100; //0x100 /*****Found*****/ printf("%d\n", &i); //改:去掉& return 0; } 11、 程序D1004.c的功能是输入姓名,屏幕输出问候。 #include<stdio.h> int main(void) { char s[10]; printf("please input your name:"); /*********Found************/ scanf("%c", s); //改%s printf("hello "); /*********Found************/ puts(s[10]); //改:s return 0; } 12考查点:输入数据分隔,输出项表示,程序D1005.c的功能是从键盘读入两个整数并在屏幕上显示。要求:输入时限定两数之间仅以逗号隔开。 #include<stdio.h> int main(void) { int a, b; /*********Found*********/ scanf("%d%d", &a, &b); //改:中间加’,’ /*********Found*********/ printf("a=%d,b=%d\n", &a, &b); //去掉& return 0; } 13、考查点:输入格式控制、if语句,程序D1006.c的功能是判断输入的数据是否与已经给出的数据j相等。 #include<stdio.h> int main(void) { long int i = 79870, j = 23; /*****Found*****/ scanf("%f", &i); //改:%ld /*****Found*****/ if (j == i); { printf("Equal!"); } else { printf("Not equal!"); } return 0; } 14、考查点:字符输入函数使用,分支条件表示,程序D1007.c的功能是使用getchar方式从键盘读入一个字符,判断该字符是否大写字符。 #include<stdio.h> int main(void) { char ch; /****Found****/ getchar(ch); // ch = getchar(); /*****Found*****/ if ('A' <= ch, ch <= 'Z') //&& { printf("yes"); } else { printf("no"); } return 0; } 15、考查点:switch语句结束、case后常量表示,程序D1008.c的功能是判断用户是不是输入的整数0。   #include<stdio.h> int main(void) { int n; scanf("%d", &n); /****Found****/ switch (n); //去掉’;’ { /****Found****/ case0: //中间加空格 printf("Zero\n"); break; default: printf("Non-Zero"); break; } return 0; } 16、考查点:switch语句、case后常量表示,程序D1009.c的功能是输入一个整数,如果为1时输出100,为2时输出200,其它输出0。  #include<stdio.h> int main(void) { int x, y; scanf("%d", &x); switch (x) { /*********Found************/ case x == 1: //改:1 y = 100; break; /*********Found************/ case x == 2: //改:2 y = 200; break; default: /*********Found************/ y = 500; //改:0 break; } printf("%d\n", y); return 0; } 17、考查点:switch语句case常量表示,循环条件表示,程序D1010.c的功能是输入若干字符数据(回车表示输入结束),分别统计其中‘A’、‘B’、‘C’的个数。 #include<stdio.h> int main(void) { char c; int k1 = 0, k2 = 0, k3 = 0; /*********Found************/ while (c = getchar() != '\n') //加括号() { switch (c) { /*********Found************/ case A: //加’’ k1++; break; case 'B': k2++; break; case 'C': k3++; break; default : ; } } printf("A=%d,B=%d,C=%d\n", k1, k2, k3); return 0; } 18、考查点:一维数组定义、数组元素引用、输入和输出,程序D1016.c的功能是从键盘输入5个整数,保存到一整型数组变量中(此数组只能保存5个数),并在屏幕上按逆序输出。 #include<stdio.h> int main(void) { /*********Found*********/ int n=5, i, a[n]; //改为5 printf("\ninput 5 numbers:"); /*********Found*********/ for (i=1; i<n; i++) { scanf("%d", &a[i]); } for (i=n-1; i>=0; i--) { printf("%d\t", a[i]); } return 0; } 19、考查点:数组的输入和数组元素的引用,程序D1017.c的功能是输入10个浮点数,并输出这组数中的最大值和最小值。   #include<stdio.h> int main(void) { float a[10], max, min; int i; printf("Please input 10 floats"); for (i=0; i<10; i++) { /*********Found************/ scanf("%f", _____); // &a[i] } max = min = a[0]; for (i=1; i<10; i++) { /*********Found************/ if (_____) // max < a[i] { max = a[i]; } if (min > a[i]) { min = a[i]; } } printf("Max number is:%.2f\nMin number is:%.2f\n", max, min); return 0; } 20、考查点:函数声明,静态变量使用,程序D1021.c的功能是依次输出3^1到3^5。   #include<stdio.h> /*****Found*****/ int f(n); //用定义形式:int n int main(void) { int i; for (i=1; i<=5; i++) { printf("%d\n", f(3)); } return 0; } int f(int n) { /*****Found*****/ int p = 1; //改: static int p = p * n; return p; } 21、考查点:静态变量使用,函数调用,程序D1023.c的功能是函数outnum输出自己是第几次被调用。 #include<stdio.h> void outnum(void); int main(void) { int i; for (i=0; i<5; i++) { /*********Found************/ outnum(i); //改: outnum() } return 0; } void outnum(void) { /*********Found************/ int i = 0; //改:static int i = 0; i++; printf("%d\n", i); } 22、考查点:函数调用、函数定义,程序D1024.c的功能是调用子函数Average()求两数的平均值,并输出到屏幕上。 #include<stdio.h> /*********Found*********/ int Average(x, y); //用定义形式:int x, int y int main(void) { int a = 12; int b = 24; int ave; /*********Found*********/ ave = Average(int a, int b); //用使用形式:a, b printf("Average of %d and %d is %d.\n", a, b, ave); return 0; } /*********Found*********/ int Average(x, y) //int x, int y { int result; result = (x + y) / 2; return result; } 23、考查点:函数一般调用和静态变量,程序D1025.c的功能是输入一整数n(n>0),main()函数中调用子函数Func()n次,并在屏幕上打印出每次调用该子函数的次数。 #include<stdio.h> void Func(void); int main(void) { int i, n; printf("\ninput a data:"); scanf("%d", &n); for (i=0; i<n; i++) { /*********Found*********/ ________________________ // Func() } return 0; } void Func(void) { /*********Found*********/ ________________________ // static int times = 0; times++; printf("Func() was called %d time(s).\n", times); } 难度2 1、考查点:用指针访问字符数组元素,程序D3.c的功能是将字符串yy在屏幕上输出。   #include<stdio.h> int main(void) { /*********Found************/ char yy[200] = "ok??\n"; //改为:*yy /*********Found************/ fol (; *yy; yy++) //改为:for { putchar(*yy); } return 0; } 2、考查点:字符数组定义,字符串输出控制,标准字符串函数的使用,程序D6.c的功能是从键盘读入一行字符(包括空格、TAB等字符)并在屏幕上显示。 #include<stdio.h> int main(void) { /*********Found************/ char yy<128>; //改为:yy[128] /*********Found************/ getchar(yy); //改为:gets /*********Found************/ printf("%y", yy); //改为:%s return 0; } 3、考查点:if-else形式条件的分析,数据类型选择,程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示x<>y。 #include<stdio.h> int main(void) { /*********Found************/ char x, y; //改为:int x = 39270; y = 41001; /*********Found************/ if (x != y) //改为:== { printf("x=y"); } /*********Found************/ else;; //去掉;; { printf("x<>y\n"); } return 0; } 4、考查点:文件路径名表示,文件打开方式选择,文件打开成功判断,程序D8.c的功能是打开文件d:\te.c用于读并判断打开是否成功。 #include<stdio.h> int main(void) { FILE *fp; /*********Found************/ char fileName[] = "d:\te.c"; //改为:\\ /*********Found************/ fp = fopen(fileName, "w"); //改为:r /*********Found************/ if (fp is NULL) //改为:== { puts("File Open Error!"); return 1; } putchar(fgetc(fp)); fclose(fp); return 0; } 5、考查点:指针,内存分配、内存释放函数的使用,程序D9.c的功能是申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间。   #include<stdio.h> #include<stdlib.h> int main(void) { /*********Found************/ char pch[2]; //改为:*pch /*********Found************/ if (pch = (char *)malloc(100) == NULL) //将红色部分括起来 { printf("malloc memory fail!\n"); return 1; } printf("%p\n", pch); /*********Found************/ close(pch); //改为:free return 0; } 6、考查点:指针作函数参数,函数调用,程序D14.c的功能是调用函数swap,将a和b的值交换,最后在屏幕上显示交换后的a,b之值。   #include<stdio.h> /*********Found************/ void swap(int x, int y); //改为:int *x, int *y int main(void) { int a = 3, b = 4; /*********Found************/ swap(a, b); //改为:&a, &b printf("a=%d b=%d\n", a, b); return 0; } /*********Found************/ void swap(int x, int y) //改为:int *x, int *y { int tmpX; /*********Found************/ ___________ // tmpX =*x; *x = *y; /*********Found************/ *y = x; //改为:*y = tmpX; } 7、考查点:结构体变量定义,结构体成员的输入、输出,程序D16.c的功能是worker2的信息使用结构体存储,从键盘读入其各项信息并显示。   #include<stdio.h> int main(void) { struct WKER { long ID; long int num; char name[20]; char sex; /*********Found************/ } ; //改为:worker2; worker2.ID = 1L; /*********Found************/ scanf("%s %s %s", &worker2.num, worker2.name, &worker2.sex); //改:%ld%s%c /*********Found************/ printf("worker's info: num=%s name=%s sex=%s\n", worker2.num, worker2.name, worker2.sex); //改为:%ld %c return 0; } 8、考查点:复合语句、变量作用域,程序D18.c的功能是从键盘上读入10个大于0的数,调用函数dispMaxNum显示其中最大的一个。 #include <stdio.h> int maxiNum = 0; void dispMaxNum(); int main(void) { int i, oneNumber, maxNumber = 0; printf("Please input 10 int number:"); { int maxNumber = 0; /*********Found************/ ___________ //{ for (i = 0; i < 10; i++) { scanf("%d", &oneNumber); if (oneNumber > maxNumber) { maxNumber = oneNumber; } } } /*********Found************/ ___________ // maxiNum = maxNumber /*********Found************/ ___________ //} dispMaxNum(); return 0; } void dispMaxNum() { /*********Found************/ printf("maxNumber=%d\n", maxiNum); } 9、考查点:循环条件表示,循环体中改变循环条件,程序D1011.c的功能是从输入数据中统计正整数和负整数的个数。用输入0来结束输入,变量i存放正整数个数,变量j存放负整数的个数。 #include<stdio.h> int main(void) { int i = 0, j = 0, n; printf("\ninput numbers:"); scanf("%d", &n); /*********Found*********/ while (______________) // n 或者n != 0 { if (n > 0) { i++; } if (n < 0) { j++; } /*********Found*********/ _________________________ // scanf("%d", &n); } printf("i=%d,j=%d", i, j); return 0; } 10、考查点:枚举算法,for语句条件,条件判断,程序D1012.c的功能是显示用1、2、3、4个数字组成的互不相同且无重复数字的三位数。 #include<stdio.h> int main(void) { int i, j, k; /*********Found************/ for (i=1; ; i++) //改为:i < 5 { for (j=1; j<5; j++) { for (k=1; k<5; k++) { /*********Found************/ if (i!=k && i!=j && ______) //j != k { printf("%d%d%d ", i, j, k); } } } } return 0; } 11、考查点:数组逆序存放,循环次数控制,换位操作的实现,程序D1013.c的功能是将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。   #include<stdio.h> #define N 10 int main(void) { int a[N], i, temp; printf("please input %d integer numbers:\n", N); for (i=0; i<N; i++) { scanf("%d", &a[i]); } printf("the array before reverse:\n"); for (i=0; i<N; i++) { printf("%d ", a[i]); } printf("\n"); /*********Found************/ for (i=0; i<N; i++) //改为:i<N-1-i; { temp = a[i]; /*********Found************/
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服