2016年广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】 .doc_第1页
2016年广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】 .doc_第2页
2016年广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】 .doc_第3页
2016年广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】 .doc_第4页
2016年广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】 .doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

电大c评议程序设计a考试时长:60分钟 单选题10题30分,填空题10题30分,写出程序结果4题40分c语言程序设计课程期末复习练习 一、单选题 1在每个c语言程序中都必须包含有这样一个函数,该函数的函数名为( )。a. main 2每个c语言程序文件的编译错误分为( )类。b. 2 3. 字符串a+b=12n的长度为( )。b. 7 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为( )语句。 b. if 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为( )。 int i=0; do i+; while(i10); d. 10 6. 将两个字符串连接起来组成一个字符串时,选用的函数为( )。 c. strcat() 7. 若用数组名作为函数调用的实参,传递给形参的是( )。 a. 数组的首地址 8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a4的地址比a数组的首地址大( )个字节。 c. 16 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为hello world!,若要使变量p指向s所指向的字符串,则p应定义为( )。a. char *p=s; 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为( )b. fgets() 11. 由c语言目标文件连接而成的可执行文件的缺省扩展名为( ) b. exe 12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。c. 156 13. 带有随机函数调用的表达式rand()%20的值在( )区间内。c. 019 14. for循环语句“for(i=0; i0 & x=10)的相反表达式为( )。a. x10 23. 当处理特定问题时的循环次数已知时,通常采用( )循环来解决。 a. for 24. 假定i的初值为0,则在循环语句“while(ib | b=5的相反表达式为a5)的相反表达式为 (x!=0 | y=5) 或:(x | y5的相反表达式为_ x+yname等价的访问表达式为_(*p).name _。 三、写出下列每个程序运行后的输出结果 1. #includevoid 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.);default switch end. 2. #includevoid 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); 1 4 13 40 121 3. #includevoid 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); 6 4 4. #include#includevoid 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); 432198765 5. #includeint 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); b=56 6. #includevoid main() int i,s=0;for(i=1;i6;i+) s+=i*i;printf(“s=%dn”,s); s=55 7. #include#define n 6void main()int i,an=2,5,8,10,15,21;for(i=0; in; i+) if(ai%5) printf(%d ,ai);printf(n); 2 8 21 8. #include#includevoid 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); 10 9. #includevoid 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);2 3 5 8 13 21 10. #includevoid 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); 15 26 26 15 11. #includevoid main() int i, s=0;for(i=1;i+) if(s30) break;if(i%2=0) s+=i;printf(s=%dn,s);s=42 12. #includevoid 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);66 18 13. #includevoid 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); ww gg bb14. #include#define m 6void 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);58 46 37 22 15 10 15. #includestruct 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);104 2370.00 16. #includevoid main() int i,j,k=0;for(i=0; i5; i+)for(j=i; j5; j+) k+;printf(%dn,k); 15 17. #includevoid 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);30 18. #includevoid main() int a8=76,63,54,62,40,75,90,58;int i;for(i=0; i70) printf(%d ,ai);printf(n);76 75 90 19. #includevoid 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);11 19 20. #includeint 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); 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; for(i=3; i=50; i+) if(i%3=0 | i%5=0) printf(%d ,i); printf(n); 2. int ff(int a, int n) if(n=0) printf(n值非法n),exit(1); if(n=1) return an-1; else return an-1*ff(a,n-1); 3. #include int n,i=1; double sum=0; void main() scanf(%d,&n); while(i=n) sum+=(double)1/i+; printf(sum=%lfn,sum); 4. void dd(int a, int n, int mm) int i,j; for(i=0; in; i+) for(j=i+1; jn; j+) if(ai+aj=mm) printf(%d, %dn, ai,aj); 5. #include void main() int i; int p=1; int s=1; for(i=1;i=10;i+) p*=3; s+=p; printf(%dn,s); 6. int ff(int a, int n) int i,sum=0; for(i=0; in; i+) sum+=ai; return sum; 7. double mean(double amn,int m,int n) int i,j; double v=0.0; for(i=0; im; i+) for(j=0; jn; j+) v+=aij; v/=m*n; return v; 注:函数体的最后两行可以合并为一条返回语句:return v/=m*n 8. int mm(int a,int m) int i,x1,x2; x1=x2=a0; for(i=1; ix1) x1=ai; if(ai0 & x=10的相反表达式为(a)。ax10 bx10 cx=0 | x0 & x109字符串“a+b=12n”的长度为(b)。a6 b7 c8 d910在下列符号常量定义中。错误的定义语句格式为(c)。aconst m1=10; bconst int m2=20; cconst m3 10 dconst char mark=3;11带有随机函数的表达式rand()%20的值在(c)区间内,a119 b120 c019 d02012当处理特定问题时的循环次数已知时,通常采用(a)循环来解决。 afor bwhile cdo-while dswitch13在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(b)语句。afor bif cdo dwhile14for语句能够被改写为(d)语句。a复合 bif cswitch dwhile15下面循环语句执行结束后输出的i值为(b)。for(int i=0;in/2)coutiendl;break;an/2 bn/2+1 cn/2-1 dn-116在下面循环w语句中内层循环体s语句的执行次数为(d)。for(int i=0;in;i+) for(int j=i;jn;j+)s;an2 b(n+1)/2 cn(n-1)/2 dn(n+1)/217在下面的do循环语句中,其循环体被执行的次数为(a )。int i=0;do i+;while(i*i5的相反表达式为_x+yb | b=5的相反表达式为_a5 | by逻辑值为_false_。35若x=5,y=10,则x=y逻辑值为_true_。36假定x=5,则执行“a=(x?10:20);”语句后a的值为_10_。37执行“typedef int datatype;”语句后,在使用int定义整型变量的地方都可以使用_datatype_来定义整型变量。38在switch语句中,每个语句标号所含保留字case后面的表达式必须是_整型_。39作为语句标号使用的c保留字case和default只能用于_switch_语句的定义体中。40在switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)_不停止_执行。41若do循环的“尾”为“while(+i10)”,并且i的初值为0,同时在循环体不会修改i的值,由循环体将被重复执行_10_次后正常结束。42当在程序执行到_break_语句时,将结束本层循环语句或switch语句的执行。43在程序中执行到_return_语句时,将结束所在函数的执行过程,返回到调用该函数的位置。44在程序执行完_主(main)_函数调用后,将结束整个程序的执行过程,返回到操作系统或c语句集成开发环境界面窗口。1假定一维数组的定义为“char * a8;”,则该数组所含元素的个数为_8_。2假定一维数组的定义为“char * a8;”,则该数组所占存储空间的字节数为_32_。3假定二维数组的定义为“int a35”,则该数组所占存储空间的字节数为_60_。4假定二维数组的定义为“char a

温馨提示

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

评论

0/150

提交评论