最新C语言程序设计课程期末复习练习知识点复习考点归纳总结参考.doc_第1页
最新C语言程序设计课程期末复习练习知识点复习考点归纳总结参考.doc_第2页
最新C语言程序设计课程期末复习练习知识点复习考点归纳总结参考.doc_第3页
最新C语言程序设计课程期末复习练习知识点复习考点归纳总结参考.doc_第4页
最新C语言程序设计课程期末复习练习知识点复习考点归纳总结参考.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

c语言程序设计课程期末复习练习 一、单选题 1在每个c语言程序中都必须包含有这样一个函数,该函数的函数名为( )。 a. main b. main c. name d. function 2每个c语言程序文件的编译错误分为( )类。 a. 1 b. 2 c. 3 d. 4 3. 字符串a+b=12n的长度为( )。 a. 6 b. 7 c. 8 d. 9 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为( )语句。 a. for b. if c. do d. while 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为( )。 int i=0; do i+; while(i10); a. 4 b. 3 c. 5 d. 10 6. 将两个字符串连接起来组成一个字符串时,选用的函数为( )。 a. strlen() b. strcap() c. strcat() d. strcmp() 7. 若用数组名作为函数调用的实参,传递给形参的是( )。 a. 数组的首地址 b. 数组中第一个元素的值 c. 数组中全部元素的值 d. 数组元素的个数 8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a4的地址比a数组的首地址大( )个字节。 a. 4 b. 8 c. 16 d. 32 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为hello world!,若要使变量p指向s所指向的字符串,则p应定义为( )。 a. char *p=s; b. char *p=&s; c. char *p;p=*s; d. char *p; p=&s; 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为( )。 a. gets() b. fgets() c. getc() d. fgetc() 11. 由c语言目标文件连接而成的可执行文件的缺省扩展名为( )。 a. cpp b. exe c. obj d. c 12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。 a. 12 b. 144 c. 156 d. 288 13. 带有随机函数调用的表达式rand()%20的值在( )区间内。 a. 119 b. 120 c. 019 d. 020 14. for循环语句“for(i=0; i0 & x=10)的相反表达式为( )。a. x10 b. x10c. x=0 | x0 & x10 23. 当处理特定问题时的循环次数已知时,通常采用( )循环来解决。 a. for b. while c. do-while d. switch 24. 假定i的初值为0,则在循环语句“while(ib | b=5的相反表达式为_。 6. 执行“typedef int datatype;”语句后,在使用int定义整型变量的地方也可以使用_来定义整型变量。 7. 假定一维数组的定义为“char* a8;”,则该数组所占存储空间的字节数为_。 8. 假定二维数组的定义为“double amn;”,则该数组的列下标的取值范围在_之间。 9. 存储一个空字符串需要占用_个字节。 10. strcpy函数用于把一个字符串_到另一个字符数组空间中。 11. 程序的编译单位是一个_。 12. 假定a是一个一维数组,则ai的指针访问方式为_。 13. 执行int *p=malloc(sizeof(int)操作得到的一个动态分配的整型对象为_。 14执行“printf(%c,a+2);”语句后得到的输出结果为_。 15short int类型的长度为_。 16. 用类型关键字表示十进制常数3.26f的类型为_。 17. 假定y=10,则表达式+y*3的值为_。 18. 逻辑表达式(x=0 & y5)的相反表达式为_。 19若x=5,y=10,则x!=y的逻辑值为_。 20. 假定二维数组的定义为“int a35;”,则该数组所占存储空间的字节数为_。 21. 使用“typedef char bb1050;”语句定义_为含有10行50列的二维字符数组类型。 22. 字符串a:xxk数据的长度为_。 23假定p所指对象的值为25,p+1所指对象的值为46,则*+p的值为_。 24. 假定一个数据对象为int*类型,则指向该对象的指针类型为_。 25假定一个结构类型的定义为 “struct aint a,b; a* c;”,则该类型的长度为_。 26. 假定要访问一个结构对象x中的数据成员a,则表示方式为_。 27. 用于输出表达式值的标准输出函数的函数名是_。 28每个c语言程序文件在编译时可能出现有致命性错误,其对应的标识符为_。 29. 已知az的ascii码为6590,当执行“int x=c+3;”语句后x的值为_。 30. 表达式(int)14.6的值为_。 31. 假定不允许使用逻辑非操作符,则关系表达式x+y5的相反表达式为_。 32. 假定x=5,则执行“a=(x?10:20);”语句后a的值为_。 33. 假定一维数组的定义为“char* am;”,则该数组所占存储空间的字节数为_。 34. 存储字符串a需要至少占用存储器的_个字节。 35. strlen()函数用于计算一个字符串的_。 36. 在c语言中,一个函数由函数头和_这两个部分组成。 37假定p所指对象的值为25,p+1所指对象的值为46,则执行表达式*(p+)后,p所指对象的值为_。 38. 假定p是一个指向整数对象的指针,则用_表示指针变量p的地址。 39. 与结构成员访问表达式p-name等价的访问表达式为_。参考解答:1. ;(或分号) 2. # 3. void 4. 0x195. a=b & b!=5 6. datatype 7. 32 8. 0n-19. 1 10. 拷贝(复制) 11. 程序文件 12. *(a+i)13. *p 14. c 15. 2 16. float17. 33 18. (x!=0 | y=5) 或:(x | y=5) 19. 1 20. 60 21. bb 22. 1123. 46 24. int* 25. 12 26. x.a27. printf 28. error 29. 70 30. 1431. x+y=5 32. 10 33. 4*m 34. 235. 长度 360. 函数体 37. 46 38. &p39. (*p).name 三、写出下列每个程序运行后的输出结果 1. #include void main() int x=5; switch(2*x-1) case 4: printf(%d ,x); break; case 7: printf(%d ,2*x); break; case 10: printf(%d ,3*x); break; default: printf(%s ,default); printf(%sn,switch end.); 2. #include void main() int f1,f2,i; f1=1; printf(%d ,f1); for(i=2;i=5;i+) f2=3*f1+1; printf(%d ,f2); f1=f2; printf(n); 3. #include void main() int a10=12,39,26,41,55,63,72,40,83,95; int i, i1=0, i2=0; for(i=0;i10;i+) if(ai%2=1) i1+; else i2+; printf(%d %dn,i1,i2); 4. #include #include void main( ) char s15=567891234; int i, n=strlen(s) ; for(i=0; in/2; i+) char c=si; si=sn-1-i; sn-1-i=c; printf(%sn,s); 5. #include int lb(int *a, int n) int i,s=1; for(i=0;in;i+) s*=*a+; return s; void main() int a=1,2,3,4,2,4,5,2; int b=lb(a,4)+lb(a+3,3); printf(b=%dn,b); 6. #include void main() int i,s=0; for(i=1;i6;i+) s+=i*i; printf(“s=%dn”,s); 7. #include #define n 6 void main() int i,an=2,5,8,10,15,21; for(i=0; in; i+) if(ai%5) printf(%d ,ai); printf(n); 8. #include #include void main() int i; unsigned int len; char* a5=student,worker,cadre,soldier,zzeasan123; len=strlen(a0); for(i=1; ilen) len=strlen(ai); printf(%dn,len); 9. #include void main() int a,b; for(a=2,b=3; b20;) printf(%d %d ,a,b); a=a+b; b=a+b; printf(%d %dn,a,b); 10. #include void le(int* a, int* b) int x=*a; *a=*b; *b=x; void main() int x=15, y=26; printf(%d %dn,x,y); le(&x,&y); printf(%d %dn,x,y); 11. #include void main() int i, s=0; for(i=1;i+) if(s30) break; if(i%2=0) s+=i; printf(s=%dn,s); 12. #include void main() int a9=36,25,48,24,55,40,18,66,20; int i, b1, b2; b1=b2=a0; for(i=1; ib1) b1=ai; if(aib2) b2=ai; printf(%d %dn,b1,b2); 13. #include void sb(char ch) switch(ch) case a: case a: printf(ww ); break; case b: case b: printf(gg ); break; default: printf(bb ); break; void main() char a1=a,a2=b,a3=f; sb(a1);sb(a2);sb(a3); printf(n); 14. #include #define m 6 void main() int i,x; int am=10,15,22,37,46,58; for(i=0; im/2; i+) x=ai; ai=am-1-i; am-1-i=x; for(i=0; i6; i+) printf(%d ,ai); printf(n); 15. #include struct worker char name15; int age; float pay; ; void main() struct worker x=wanghua,52,2350; struct worker y, *p; y=x; p=&x; printf(%d %7.2fn, y.age+p-age, p-pay+20); 16. #include void main() int i,j,k=0; for(i=0; i5; i+) for(j=i; j5; j+) k+; printf(%dn,k); 17. #include void main() int x=60; int i=2, p=1; while(1) if(x%i=0) p*=i; x/=i; if(ix) i+; else break; printf(%dn,p); 18. #include void main() int a8=76,63,54,62,40,75,90,58; int i; for(i=0; i70) printf(%d ,ai); printf(n); 19. #include void wf(int x, int y) x=x+y; y+=x; printf(%d %dn,x,y); void main() int x=3, y=8; wf(x,y); 20. #include int la(int *a, int n) int i,s=0; for(i=0;in;i+) s+=ai; return s; void main() int a5=3,4,6,10,20; int b=la(a,5); int c=la(a+2,3); printf(%d %dn,b,c); 参考解答: 1. default switch end. 2. 1 4 13 40 121 3. 6 4 4. 432198765 5. b=56 6. s=55 7. 2 8 21 8. 10 9. 2 3 5 8 13 21 10. 15 26 26 15 11. s=42 12. 66 18 13. ww gg bb 14. 58 46 37 22 15 10 15. 104 2370.00 16. 15 17. 30 18. 76 75 90 19. 11 19 20. 43 36 四、写出下列每个函数的功能 1. #include int sg(int x) /x为大于等于2的整数 int a=(int)sqrt(x); /sqrt(x)取x的平方根 int i=2; while(i=a) if(x%i=0) break; i+; if(idata; f=f-next; while(f) if(f-datax) x=f-data; f=f-next; return x; 假定struct intnode的类型定义为: struct intnode int data; struct intnode* next; 3. #include int sa(int a, int b) if(ab) return 1; else if(a=b) return 0; else return -1; 4. void output(struct intnode *f) /f为单链表的表头指针 if(!f) return; while(f) printf(%d ,f-data); f=f-next; printf(n); 假定struct intnode的类型定义为: struct intnode int data; struct intnode* next; 5. int sc(int a, int b, int c) if(a=b & a=c) return a; if(b=a & b=c) return b; return c; 6. int* li(int n) int* a=malloc(n*sizeof(int); int i; for(i=0;in;i+) scanf(%d,a+i); return a; 7. int wc(int a, int n, int k) int i, c=0; for(i=0;i=k) c+; return c; 8. void qa(struct worker a, int n) int i; for(i=0; ib则返回1,若a=b则返回0,若ab则返回-1。 4. 遍历并输出由f所指向的单链表中每个结点的值。 5. 求出a,b,c三个数中的最大值并返回。 6. 首先建立一个动态整型数组an,接着从键盘上输入n个整数到an中,最后返回数组an的首地址。 7. 统计并返回一维整型数组an中大于等于k的值的个数。 8. 从键盘上为具有struct worker类型的数组an输入n个记录。 五、按题目要求编写程序或函数 1. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。 2. 编写一个递归函数“int ff(int a, int n)”,求出数组a中所有n个元素之积并返回。 3. 编写一个程序,利用while循环,计算并打印输出的值,其中正整数n值由键盘输入。假定求和变量用sum表示,计数变量用i表示,sum、i和n均定义为全局变量,sum和i的初值分别被赋予0和1。 4. 根据函数原型“void dd(int a, int n, int mm)”编写函数定义,利用双重循环查找并打印输出数组an中任何两个元素的值等于mm值的元素值。假定ai+aj等于mm,则输出格式为:(ai,aj)。 5. 编写一个程序,计算1+3+32+.+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。 6. 根据函数原型“int ff(int a, int n)”,编写函数定义,计算并返回数组an中所有元素之和。 7. 根据函数原型“double mean(double amn,int m,int n)”,编写函数定义,要求返回二维数组amn中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。 8. 根据函数原型“int mm(int a,int m)”,编写函数定义,计算并返回数组am中元素最大值和最小值之差。 参考解答: 1. #include void main() int i;

温馨提示

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

评论

0/150

提交评论