成都信息工程大学c语言改错_第1页
成都信息工程大学c语言改错_第2页
成都信息工程大学c语言改错_第3页
成都信息工程大学c语言改错_第4页
成都信息工程大学c语言改错_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文档 1、程序D1.C的功能是从键盘读入一个数并在屏幕上显示。 int main(void) int xy2; I*Found*/ scanf(%s, / 改为:scanf(%d, I*Found*I printf(xy2=%5dn, II 改为:printf(xy2=%5dn,xy2); return 0; 2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。 #include float fmax(float x, float y); int main(void) *Found* 标准 float l, 1;/i l = 3.0; i = 5.6f; *Found* / fma

2、x printf(fmax(%5.2f, %5.2f)=%5.2fn, i, l, fMax(i, l); return 0; *Found* int fmax(float x, float y)改:float if (x y) return y; else return x; 3、程序D4.c的功能是计算半径为2+3的圆的面积。 #include #define PI 3.14 *Found* #define S(bj) Pl*bj*bj/改: Pl*(bj)*(bj) int main(void) /*Found*/ int mianJi; 改为:double mianJi = S(2+3

3、); printf(mian ji=%5.2fn, mianJi); return 0; 4、相似题:D3.C,程序D5.c的功能是将字符串yy显示在屏幕上。 #include int main(void) *Found* char yy100 = ok?n, /改为:; *Found* prntf(%s, yy); / 改:printf return 0; 5、考查点:数据类型选择,/运算符的使用功能是计算1/1 + 1/2 + 1/N之和并显示。 #include #define N 10 int main(void) *Found* long jieguo = 0; int fm; /

4、改:float for (fm = 1; fm = N; fm+) *Found* jieguo += 1 / fm; / 改:(float) 1 / fm printf(%8.6fn, jieguo); return 0; 6、考查点:输入分隔格式控制,循环体的定义,D12.c的功能是从键盘读入 a和b的值(输入格式限定为 仅a,b),在屏幕上显示 b行a。 #include int main(void) int a, b; *Found* scanf(%d%d, while (b 0) *Found* 括号 printf(%dn, a); b-; *Found* 括号 printf(bye

5、 bye!n); return 0; 7考查点:输入格式控制、变量交换,程序D1000.C的功能是从键盘输入3个浮点数a,b,c(输入时abc之 间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。 #include int main(void) float a, b, c, t; printf(please input three numbers:n); *Found*/ scanf(%f%f, / 改:f%f%f printf(before sort:a=%g,b=%g,c=%gn, a, b, c); if (a b) t = a; a = b; *Fou

6、nd* 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=%gn, a, b, c); return 0; 8考查点:格式化输出、数据类型的正确使用,程序 D1001.C的功能是求分数序列: 2/1, 3/2 , 5/3, 8/5, 13/8,21/13,.前20项之和,要求显示的结果中小数部分有4位。 #include #define T 20 int main(void) int n; *Found*/ long i, j, temp,

7、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.2fn, sum); / 改:.4 return 0; 9考查点:用算术表达式实现数据交换,程序D1002.C的功能是实现两数交换。 #include int main(void) int x = 5, y = 9; x = x + y; y = x - y; Found*/ x = y - x; /改:x -y; pr

8、intf(x=%d, y=%dn, x, y); return 0; 10考查点:整型常量表示、输出项表示,程序D1003.C的功能是将16进制数100转换为10进制数输出。 #include int main(void) Found*/ int i = 100;0 x100 Found*/ printf(%dn, /改:去掉 11、程序D1004.C的功能是输入姓名,屏幕输出问候。 #include int main(void) char s10; printf(please input your name:); *Found*/ scanf(%c, s); / 改 %s printf(he

9、llo ); *Found*/ puts(s10);改:s return 0; D1005.C的功能是从键盘读入两个整数并在屏幕上显示。 12考查点:输入数据分隔,输出项表示,程序 要求:输入时限定两数之间仅以逗号隔开。 #include int main(void) int a, b; *Found*/ scanf(,%d%d, /改:中间加 *Found*/ printf(a=%d,b=%dn, / 去掉 13、考查点:输入格式控制、if语句,程序 D1006.C的功能是判断输入的数据是否与已经给出的数据j 相等。 #include int main(void) long int i =

10、79870, j = 23; Found*/ scanf(%f, / 改:%ld Found*/ if (j = i); printf(Equal!); else printf(Not equal!); return 0; 14、考查点:字符输入函数使用,分支条件表示,程序D1007.C的功能是使用getchar方式从键盘读入一 个字符,判断该字符是否大写字符。 #include int main(void) char ch; /*Found*/ getchar(ch); / ch = getchar(); Found*/ else printf(no); return 0; 15、考查点:s

11、witch语句结束、case后常量表示,程序D1008.C的功能是判断用户是不是输入的整数0。 #include int main(void) int n; scanf(%d, /*Found*/ switch (n);去掉 /*Found*/ caseO:/中间加空格 printf(Zeron); break; default: printf(Non-Zero); break; return 0; 16、考查点:switch语句、case后常量表示,程序D1009.C的功能是输入一个整数,如果为1时输出100, 为2时输出200,其它输出0。 #include int main(void)

12、int x, y; scanf(%d, switch (x) *Found* case x = 1:改:1 y = 100; break; *Found* case x = 2:改:2 y = 200; break; default: *Found* y = 500; break; printf(%dn, y); / 改:0 return 0; 17、考查点:switch语句case常量表示,循环条件表示,程序 表示输入结束),分别统计其中 A B C 的个数。 #include D1010.C的功能是输入若干字符数据 (回车 int main(void) char c; int k1 = 0

13、, 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=%dn, k1, k2, k3); return 0; 18、考查点:一维数组定义、数组元素引用、输入和输出,程序D1016.C的功能是从键盘输入 5个整数, 保存到一整型数组变量中(此数组只能保存5个数),并在屏幕上按逆序输出。 #include int

14、 main(void) * Found* * */ int n=5, i, an;改为 5 printf(ninput 5 numbers:); *Found*/ for (i=1; i=0; i-) printf(%dt, ai); return 0; 佃、考查点:数组的输入和数组元素的引用,程序D1017.C的功能是输入10个浮点数,并输出这组数中的 最大值和最小值。 #include int main(void) float a10, max, min; int i; printf(Please input 10 floats); for (i=0; i10; i+) *Found* s

15、canf(%f,);/ for (i=1; i10; i+) *Found* if ()/ max ai) min = ai; printf(Max number is:%.2fnMin number is:%.2fn, max, min); return 0; 20、考查点:函数声明,静态变量使用,程序 D1021.C的功能是依次输出 3A1到3A5o #include Found*/ int f(n);/用定义形式: int n int main(void) int i; for (i=1; i=5; i+) printf(%dn, f(3); return 0; int f(int n)

16、 Found*/ int p = 1;改:static int p = p * n; return p; 21、考查点:静态变量使用,函数调用,程序D1023.C的功能是函数out num输出自己是第几次被调用。 #include void outnum(void); int main(void) int i; for (i=0; i5; i+) *Found* outnum(i); / 改:outnum() return 0; void outnum(void) * Found* * */ int i = 0;/改:static int i = 0; i+; printf(%dn, i);

17、22、考查点:函数调用、函数定义,程序D1024.C的功能是调用子函数 出到屏幕上。 Average。求两数的平均值,并输 #include *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)

18、int x, int y int result; result = (x + y) / 2; return result; 23、考查点:函数一般调用和静态变量,程序D1025.C的功能是输入一整数n (n0), main ()函数中调 用子函数Func()n次,并在屏幕上打印出每次调用该子函数的次数。 #include void Func(void); int main(void) int i, n; printf(ninput a data:); scanf(%d, for (i=0; in; i+) *Found*/ Func() return 0; void Func(void) *F

19、ound* static int times = 0; times+; printf(Func() was called %d time(s).n, times); 难度2 1、考查点:用指针访问字符数组元素,程序 D3.C的功能是将字符串 yy在屏幕上输出。 #include int main(void) fol (; *yy; yy+) char yy200 = ok?n;/ 改为:*yy 改为:for putchar(*yy); return 0; 2、考查点:字符数组定义,字符串输出控制,标准字符串函数的使用,程序D6.C的功能是从键盘读入一 行字符(包括空格、TAB等字符)并在屏幕上

20、显示。 #include int main(void) getchar(yy); char yy;/改为:yy128 printf(%y, yy); / 改为:gets 改为:%s return 0; 3、考查点:if-else形式条件的分析,数据类型选择,程序 D7.c的功能是判断x和y是否相等,相等则显 示x=y,不等则显示 xy。 #include int main(void) char x, y; 改为:int x = 39270; y = 41001; *Found* if (x != y) /改为:= printf(x=y); *Found* else;/去掉; printf(xv

21、yn); return 0; 4、考查点:文件路径名表示,文件打开方式选择,文件打开成功判断,程序D8.C的功能是打开文件 d:te.c 用于读并判断打开是否成功。 #include 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、考查

22、点:指针,内存分配、内存释放函数的使用,程序D9.C的功能是申请100个字节的内存空间,显 示其首地址,然后释放申请到的内存空间。 #include #include int main(void) *Found* char pch2;/ 改为:*pch *Found* /将红色部分括起来 if (pch = (char *)malloc(100) = NULL) printf(malloc memory fail!n); return 1; printf(%pn, pch); *Found* close(pch); / 改为:free return 0; D14.C的功能是调用函数 swap,

23、将a和b的值交换,最后 6、考查点:指针作函数参数,函数调用,程序 在屏幕上显示交换后的a,b之值。 #include *Found* void swap(int x, int y);/ 改为:int *x, int *y int main(void) int a = 3, b = 4; *Found* swap(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;

24、 D16.C的功能是worker2的信息使用结构 7、考查点:结构体变量定义,结构体成员的输入、输出,程序 体存储,从键盘读入其各项信息并显示。 #include int main(void) struct WKER long ID; long int num; char name20; char sex; *Found* ;改为:worker2 ; worker2D = 1L; *Found* scanf(%s %s %s, 改:%ld%s%c *Found* printf(workers info: num=%s name=%s sex=%sn, worker2.num, worker2.

25、name, worker2.sex); II 改为:%ld %c return 0; D18.C的功能是从键盘上读入10个大于0的数,调用函数 8、考查点:复合语句、变量作用域,程序 dispMaxNum显示其中最大的一个。 #include 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 maxNumber) m

26、axNumber = oneNumber; /*Found*/ / maxiNum = maxNumber /*Found*/ / dispMaxNum(); return 0; void dispMaxNum() *Found* printf(maxNumber=%dn, maxiNum); 9、考查点:循环条件表示,循环体中改变循环条件,程序D1011.C的功能是从输入数据中统计正整数和 负整数的个数。用输入 0来结束输入,变量i存放正整数个数,变量 j存放负整数的个数。 #include int main(void) int i = 0, j = 0, n; printf(ninput

27、numbers:); scanf(%d, *Found*/ while ()/ n 或者 n != 0 if (n 0) i+; if (n 0) j+; *Found* II scanf(%d, printf(,i=%d,j=%d, i, j); return 0; 10、考查点:枚举算法,for语句条件,条件判断,程序D1012.C的功能是显示用1、2、3、4个数字组成 的互不相同且无重复数字的三位数。 #include int main(void) int i, j, k; *Found* for (i=1; i+)改为:i 5 for (j=1; j5; j+) for (k=1; k

28、5; k+) *Found* if (i!=k return 0; 11、考查点:数组逆序存放,循环次数控制,换位操作的实现,程序D1013.C的功能是将一个数组中的值 按逆序重新存放。例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。 #include #define N 10 int main(void) int aN, i, temp; printf(please input %d integer numbers:n, N); for (i=0; iN; i+) scanf(%d, printf(the array before reverse:n); for (i=0;

29、iN; i+) printf(%d , ai); printf(n); *Found*/ for (i=0; iN; i+)/ 改为:ivN-1-i; temp = ai; *Found* ai = aN-i;/改为:aN-1-i *Found* aN-i = temp; /改为:aN-1-i printf(the array after reverse:n); for (i=0; iN; i+) printf(%d , ai); printf(n); return 0; D1014.C的功能是将字符数 12、考查点:排序算法的实现,排序条件,数据交换、字符数组的处理,程序 组a中元素从大到小

30、排列(值相同的元素不交换位置)。 #include #include int main(void) int i, j, k; char a = language, t; k = strlen(a); for (i=0; ivk; i+) for (j=i+1; jvk; j+) Found*/ if (ai aj)/ 改为: ai aj t = aj; Found*/ ai = aj;/ 改为:aj = ai ai = t; printf(%sn, a); return 0; 13、考查点:数组元素下标,数组作函数参数,程序D1015.C的功能是定义一个整型数组,采用子函数实 现数据输入。 #

31、include void input(int a, int n); int main(void) int a10, i; * Found* * */ input(a10, 10);改为:a for (i=0; i10; i+) printf(%d , ai); return 0; void input(int a, int n) int i; for (i=0; in;) scanf(%d, *Found* i-;/ 改为:i+ D1018.C的功能是通过函数,将一个字符串中的元 14、考查点:函数调用,字符串结束标志的使用,程序 音字母复制到另一字符串,然后输出。 #include #inc

32、lude void vowel(char str1, char str2); int main(void) char str181, str281; printf(please input the string:n); gets(str1); *Found*/ vowel();/ 改为:str1, str2 printf(the vowel string is:n); puts(str2); if (strlen(str2) = 0) printf(NONE!n); return 0; void vowel(char str1, char str2) int i, j = 0; *Found*

33、 for (i=0; i+)改为:str1i if (str1i=A | str1i=E | str1i=T | str1i=O | str1i=U | str1i=a | str1i=e | str1i=i | str1i=o | str1i=u) str2j = str1i; j+; str2j = 0; D1019.C的功能是计算输出10个学生 15、考查点:函数声明、函数定义、函数调用,表达式统计,程序 的平均成绩。 #include Found*/ average(double x, y); 改为: double average 和 int y int main(void) int

34、i; double score, total; double aver; printf(Please enter the 1s graden); scanf(%lf, for (i=2; i=10; i+) printf(Please enter the %ds graden, i); scanf(%lf, Found*/ total = score; / 改为:total = total + score; aver = average(total, 10); printf(The average: %fn, aver); return 0; Found*/ average(double x,

35、 y) 改为:double average 和 int y return x / y; 16、考查点:递归函数定义(递归返回),函数头,程序 D1020.C的功能是使用递归实现Fibonacci数的计 算,Fn=Fn-1+Fn-2(1、1、2,第 7 项为 13)。 #include int f(int n); Found*/ int main(void); /改为:去掉; printf(F(7)=%dn, f); return 0; int f(int n) if (n = 2) Found*/ return 2;/ 改为:1 return f(n - 1) + f(n - 2); D102

36、2.C 的功 17、考查点:函数声明,变量作用域,函数调用,函数定义,指针作为函数的参数,程序 能是通过一个加法子函数,输入两个浮点数,求和。 #include *Found* int add(float x, float y); / 改为:float int main(void) float a, b; scanf(%f%f, *Found*/ printf(sum=%fn, add(x, y); /改为:a, b return 0; *Found* float add(float x, float y);改为:去掉 return x + y; 18、程序D1054.C的功能是:从键盘读入两

37、个整数,对它们进行按位异或操作,把操作结果按二进制位 放在字符数组str中,最后输出该字符串。提示:第 2个空建议使用条件表达式(?表达式)实现! 图1程序运行效果示例 #include vstdio.h int main(void) unsigned long int number, numl, num2, mask; int i; char str33; printf(Please input num1 and num2 :); scanf(%lu %lu, *Found* mask = / 改为:0 x80000000 number = numl A num2; for(i=0; i=

38、1; str32 = 0; printf(%lu a %lu = %sn, numl, num2, str); return 0; 难度3 const常量的使用,指针变量的移位操作,程序D10.C的功能是将字符串 str2 1、考查点:符号常量定义, 显示在屏幕上。 #include *Found* #define START/ 改为:#define START *Found* #define NEXT/改为:#define NEXT int main(void) char *str2 = const int i = 0; for (printf(n); str2i;

39、) START putchar(str2i); /*Found*/ i+;/ 改为:str2+ NEXT return 0; D13.C的功能是从键盘输入最多10 2、考查点:字符数组下标控制,字符串结束标志,条件表达,程序 个字符(遇换行则停止输入)到数组Buf中,然后在屏幕上显示。 #include int main(void) char c, Buf11; int pos; *Found* for (pos = 1; pos = 10; pos+)改为:0 和 *Found* if (c = getchar() = n) /改为:后面加) break; Bufpos = c; *Foun

40、d* 改为:Bufpos = 0; printf(%sn, Buf); return 0; D15.C的功能是调用函数 swap,将a和 3、考查点:指针变量的使用,指针作函数参数,函数调用,程序 b的值交换,最后在屏幕上显示交换后的a,b之值。 #include void swap(int *x, int *y); int main(void) int a = 3, b = 4; /*Found*/ swap(*a, *b); /改为: / 去掉 void swap(int *x, int *y) int *tmp, tsX; *Found* *tmp = x;/改为:tsX = *x *x

41、 = *y; *Found* *y = *tmp; / 改为:tsX D17.C的功能是 4、考查点:函数定义、字符数组、静态变量的使用、指针作函数参数,函数调用,程序 函数userLogin的功能主要是统计并返回登录的用户数,用户名最长30字节。 #include long userLogin(char *userName); int main(void) *Found* char *userName31; /改为:userName3131 long curUserCnt = 0; while (1) printf(user %ld, input your Name: , curUserCn

42、t+1); scanf(%s, userName31); curUserCnt = userLogin(userName31); return 0; long userLogin(char *userName) *Found* long userNum = 0; 改为:static long userNum+; printf(welcome user %s. There have %ld users in system.n. userName, userNum); *Found* return ; /改为:userNum; D19.C的功能是将inBuf中字符 5、考查点:函数返回值、字符变量

43、、字符指针变量、字符串结束,程序 串拆分成一个个的单词。 程序说明: (1)单词之间的分隔符由串divChar,程序中定义为” 函数getStrFromBuf的功能是从Buf的开始处寻找第一个单词,将找到的单词作为一个字符串 复制到Str处,divStr指明单词间的分隔符。 GetStrFromBuf的返回值指向已找到单词的下一个字符。 (3) 函数charInStr的功能是判断字符t是否出现在串Str中。 (4) 主程序的功能是将inBuf中的所有单词在屏幕上显示出来。 #include #define Yes 1 #define No 0 char *getStrFromBuf(char

44、*Buf, char *Str, char *divStr); int charlnStr(char *Str, char t); int main(void) char inBuf100 = how old are/ you?, *point, oneWord20; char divChar = ;?!,./; point = inBuf; while (*point) *Found* getStrFromBuf(point, oneWord, divChar); / 右边加上:point= if (*oneWord) puts(oneWord); return 0; int charlnStr(char *Str, char t) for (; *Str; Str+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论