广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】

上传人:仙*** 文档编号:33376935 上传时间:2021-10-17 格式:DOC 页数:35 大小:663KB
收藏 版权申诉 举报 下载
广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】_第1页
第1页 / 共35页
广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】_第2页
第2页 / 共35页
广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】_第3页
第3页 / 共35页
资源描述:

《广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】》由会员分享,可在线阅读,更多相关《广播电视大学C评议程序设计C语言程序设计课程期末复习重点资料考试小抄【精编打印版】(35页珍藏版)》请在装配图网上搜索。

1、电大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

2、); 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语言目标文件连接而成

3、的可执行文件的缺省扩展名为( ) 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

4、等价的访问表达式为_(*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

5、 ,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(

6、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=5

7、5 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. #includevoi

8、d 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)

9、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

10、: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 name

11、15; 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%

12、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)

13、 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

14、-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); 假定

15、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

16、=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)

17、的、能够被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+

18、.+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;

19、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,

20、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

21、 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)。Ac

22、onst 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下面循环语

23、句执行结束后输出的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

24、假定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,

25、同时在循环体不会修改i的值,由循环体将被重复执行_10_次后正常结束。42当在程序执行到_break_语句时,将结束本层循环语句或switch语句的执行。43在程序中执行到_return_语句时,将结束所在函数的执行过程,返回到调用该函数的位置。44在程序执行完_主(main)_函数调用后,将结束整个程序的执行过程,返回到操作系统或C语句集成开发环境界面窗口。1假定一维数组的定义为“char * a8;”,则该数组所含元素的个数为_8_。2假定一维数组的定义为“char * a8;”,则该数组所占存储空间的字节数为_32_。3假定二维数组的定义为“int a35”,则该数组所占存储空间的字节数

26、为_60_。4假定二维数组的定义为“char aMN;”,则该数组所所含元素的个数为_M*N_。5假定二维数组的定义为“double aMN;”,则每个数组元素的行下标取值范围在_0M-1_之间。6假定二维数组的定义为“double aMN;”,则每个数组元素的列下标取值范围在_0N-1_之间。7使用“typedef char BB1050;”语句定义_BB_为含有10行50列的二维字符数组类型。8存储字符a需要占用存储器的_1_个字节空间。9空字符串的长度为_0_。10存储一个空字符串需要占用_1_个字节。11字符串”a:xxk数据”的长度为_11_。12用于存储一个长度为n的字符串的字符数

27、组的长度至少为_n+1_。13strcmp函数用于进行两个字符串之间的_大小比较_。14Strcpy函数用于把一个字符串_复制到_另一个字符数组空间中。15一个二维字符数组a1020能够存储_ 10_个字符串。16一个二维字符数组a1020能够存储的每个字符串的长度至多为_19_.1在C语言中,一个函数由函数头和_函数体_组成。2在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它所赋的初值为_0_。3如果一个函数只允许同一程序文件中的函数调用,则应在访函数定义前加上的C保留字为为_static_。4如果一个函数直接或间接地调用自身,这样的调用被称为_递归_调用。5调用系统函数时,要先使用#include命令包含该函数的原型语句所在_头_文件。6函数形参的作用域是该函数的_内部_。7假定p所指对象的值为25,p+1所指对象的值为46,则*p+的值为_25_。8假定p所指对象的值为25,p+1所指对象的值为46,则*+p的值为_46_。9假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p+);”语句后,p所指对象的值为_46_。10假定a是一个指针数组,则a+1所指对象的地址比a地址大_4_字节。11若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为_(char*)p_

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!