2023年电大《C语言程序设计课程》期末考试复习最全面精品资料.pdf
《2023年电大《C语言程序设计课程》期末考试复习最全面精品资料.pdf》由会员分享,可在线阅读,更多相关《2023年电大《C语言程序设计课程》期末考试复习最全面精品资料.pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、0993+C 评议程序设计 A 第 1 页 共 31 页 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.将两个字符串连接起来组成
2、一个字符串时,选用的函数为()。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.设有两条语句为“in
3、t a=12;a+=a*a;”,则执行结束后,a 的值为()。C.156 13.带有随机函数调用的表达式 rand()%20的值在()区间内。C.0 19 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
4、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
5、 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
6、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
7、 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,in
8、t*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
9、)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);0993+C 评议程序设计 A 第 3 页 共 31 页 WW GG BB 14.#include#define M 6void main()int i,x;in
10、t 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.#i
11、ncludevoid 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.#includev
12、oid 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)
13、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
14、*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
15、a;7.int WC(int a,int n,int k)int i,c=0;for(i=0;i=k)c+;return c;0993+C 评议程序设计 A 第 4 页 共 31 页 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的值的个数。
16、8.从键盘上为具有 struct Worker类型的数组an 输入 n 个记录。五、按题目要求编写程序或函数 1.编写一个程序,输出 50 以内(含 50)的、能够被 3 或者 5 整除的所有整数。2.编写一个递归函数“int FF(int a,int n)”,求出数组 a 中所有 n 个元素之积并返回。3.编写一个程序,利用 while 循环,计算并打印输出n1.31211的值,其中正整数 n 值由键盘输入。假定求和变量用 sum表示,计数变量用 i 表示,sum、i 和 n 均定义为全局变量,sum和 i 的初值分别被赋予0 和 1。4.根据函数原型“void DD(int a,int n
17、,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 存放
18、累加值和最后的平均值。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()
19、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;0993+C 评议程序设计 A 第 5 页
20、 共 31 页 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&x10 9字符串“a+b=1
21、2 n”的长度为(B)。A6 B7 C8 D9 10在下列符号常量定义中。错误的定义语句格式为(C)。Aconst M1=10;B const int M2=20;Cconst M3 10 Dconst char mark=3;11带有随机函数的表达式 rand()%20 的值在(C)区间内,A119 B120 C019 D020 12 当处理特定问题时的循环次数已知时,通常采用(A)循环来解决。A for B while C do-while D switch 13 在 switch 语句的每个 case 块中,假定都是以 break语句结束的,则此 switch 语句容易被改写为(B)语句
22、。Afor Bif Cdo Dwhile 14for 语句能够被改写为(D)语句。A复合 Bif Cswitch Dwhile 15下面循环语句执行结束后输出的 i 值为(B)。for(int i=0;in/2)coutiendl;break;An/2 Bn/2+1 Cn/2-1 Dn-1 16 在下面循环 w语句中内层循环体 S 语句的执行次数为(D)。for(int i=0;in;i+)for(int j=i;jn;j+)S;A n2 B(n+1)/2 C n(n-1)/2 D n(n+1)/2 17在下面的 do 循环语句中,其循环体被执行的次数为(A)。int i=0;do i+;wh
23、ile(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语句时,
24、在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)_不停止_执行。41若 do 循环的“尾”为“while(+ib)_ 7与结构成员访问表达式(*fp).score 等价的表达式是_fp-score_。三、写出下列每个程序运行后的输出结果 1.#include void main()int x=5;switch(2*x-3)case 4:printf(%d,x);case 7:printf(%d,2*x+1);case 10:printf(%d,3*x-1);break;default:printf(%s,defaultn);printf(%
25、sn,switch end.);输出结果为:11 14 switch end.Press any key to continue 2.#include void main()int i,s=0;for(i=1;i=6;i+)s+=i*i;printf(s=%dn,s);输出结果为:s=91.Press any key to continue 3.#include void main()int i,s1=0,s2=0;for(i=0;i10;i+)if(i%2)s1+=i;else s2+=i;printf(%d%dn,s1,s2);输出结果为:25 20.0993+C 评议程序设计 A 第 9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计课程 2023 电大 语言程序设计 课程 期末考试 复习 全面 精品 资料
限制150内