电大C语言作业及答案-.pdf
《电大C语言作业及答案-.pdf》由会员分享,可在线阅读,更多相关《电大C语言作业及答案-.pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、作业一一、选择题1.在每个 C 语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。Amain BMAIN Cname D funtion 2C 语言原程序文件的缺省扩展名为(A)。Acpp Bexe Cobj D C 3由 C 语言目标文件连接而成的可执行的缺省扩展名为(B)。Acpp Bexe Cobj D C 4程序运行中需要从键盘输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。A空格或逗号B逗号或回车C回车或分号D空格或回车5每个 C 语言程序的编译错误分为(B)类。A1 B 2 C3 D 4 6设 x 和 y 均为逻辑值,则x&y 为真的条件是(A)。A它们均为真B
2、其中一个为真C它们均为假D其中一个为假7设有语句“int a=12;a+=a*a;”,则执行结束后,a 的值为(C)。A12 B144 C156 D288 8x0&x=10的相反表达式为(A)。Ax10 Bx10 Cx=0|x0&x10 9字符串“a+b=12n”的长度为(B)。A6 B 7 C8 D 9 10在下列符号常量定义中。错误的定义语句格式为(C)。Aconst M1=10;Bconst int M2=20;Cconst M3 10 Dconst char mark=3;11带有随机函数的表达式rand()%20 的值在(C)区间内,A119 B120 C019 D020 12当处理
3、特定问题时的循环次数已知时,通常采用(A)循环来解决。Afor Bwhile Cdo-while Dswitch 13在 switch 语句的每个case 块中,假定都是以break 语句结束的,则此switch 语句容易被改写为(B)语句。Afor Bif Cdo Dwhile 14 for 语句能够被改写为(D)语句。A复合Bif Cswitch Dwhile 15下面循环语句执行结束后输出的i 值为(B)。for(int i=0;in/2)coutiendl;break;An/2 B n/2+1 Cn/2-1 Dn-1 16在下面循环w 语句中内层循环体S 语句的执行次数为(D)。for
4、(int i=0;in;i+)for(int j=i;jn;j+)S;An2 B(n+1)/2 Cn(n-1)/2 Dn(n+1)/2 17在下面的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
5、_来定义整型变量。38在 switch 语句中,每个语句标号所含保留字case后面的表达式必须是_整型 _。39作为语句标号使用的C 保留字 case和 default 只能用于 _switch_语句的定义体中。40在 switch 语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)_不停止 _执行。41若 do 循环的“尾”为“while(+i10)”,并且 i 的初值为0,同时在循环体不会修改i的值,由循环体将被重复执行_10_次后正常结束。42当在程序执行到_break_语句时,将结束本层循环语句或switch 语句的执行。43
6、在程序中执行到_return_语句时,将结束所在函数的执行过程,返回到调用该函数的位置。44在程序执行完_主(main)_函数调用后,将结束整个程序的执行过程,返回到操作系统或 C 语句集成开发环境界面窗口。三、写出下列每个程序运行后的输出结果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(%sn,switch end.);输出结果为:11
7、 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.Press any key to continue 4.#include void m
8、ain()int n=10,y=1;while(n-)y+;y+;printf(y=%dn,y);输出结果为:y=21.Press any key to continue 5.#include void main()int f,f1,f2,i;f1=f2=1;printf(%d%d,f1,f2);for(i=3;i=10;i+)f=f1+f2;printf(%d,f);if(i%5=0)printf(n);f1=f2;f2=f;printf(n);输出结果为:1 1 2 3 5 8 13 21 34 55 Press any key to continue 6.#include#include
9、 void main()int i,n;for(n=2;n=20;n+)int temp=(int)sqrt(n);/sqrt(n)求出 n 的平方根并取整for(i=2;itemp)printf(%d,n);printf(n);输出结果为:2 3 5 7 11 13 17 19 Press any key to continue 7.#include#include const int M=20;void main()int i,c2,c3,c5;c2=c3=c5=0;for(i=1;i=M;i+)if(i%2=0)c2+;if(i%3=0)c3+;if(i%5=0)c5+;printf(%
10、d%d%dn,c2,c3,c5);输出结果为:10 6 4 Press any key to continue 8.#include#include const int M=20;void main()int i,s;for(i=1,s=0;i15;i+)if(i%2=0|i%3=0)continue;printf(%d,i);s+=i;printf(%dn,s);输出结果为:1 5 7 11 13 37 Press any key to continue C 语言程序设计形成性考核册参考答案作业二一、选择题1.在下面的一维数组定义中,(C)语句有语法错误。Aint a=0;C int a;n
11、 2在下面的二维数组定义中,(C)语句是正确的。Aint a;Cint a=1,3,5,2;D int a=3,4,2,8,6;”,则元素a 的值为(C)。A2 B4 C6 D8 4假定一个二维数组的定义语句为“int a=3,4,2,8,6;”,则元素a 的值为(A)。A0 B4 C8 D6 5将两个字符串连接起来组成一个字符串时,选用(C)函数。Astrlen()B strcap()C strcat()Dstrcmp()二、填空题1假定一维数组的定义为“char*a;”,则该数组所含元素的个数为_8_。2假定一维数组的定义为“char*a;”,则该数组所占存储空间的字节数为_32_。3假定
12、二维数组的定义为“int a”,则该数组所占存储空间的字节数为_60_。4假定二维数组的定义为“char a;”,则该数组所所含元素的个数为_M*N_。5假定二维数组的定义为“double a;”,则每个数组元素的行下标取值范围在_0M-1_ 之间。6假定二维数组的定义为“double a;”,则每个数组元素的列下标取值范围在_0N-1_ 之间。7使用“typedef char BB;”语句定义 _BB_为含有 10 行 50 列的二维字符数组类型。8存储字符 a需要占用存储器的_1_个字节空间。9空字符串的长度为_0_。10存储一个空字符串需要占用_1_个字节。11字符串”a:数据”的长度为
13、 _11_。12用于存储一个长度为n 的字符串的字符数组的长度至少为_n+1_。13 strcmp 函数用于进行两个字符串之间的_大小比较 _。14 Strcpy 函数用于把一个字符串_复制到 _另一个字符数组空间中。15一个二维字符数组a 能够存储 _ 10_个字符串。16一个二维字符数组a 能够存储的每个字符串的长度至多为_19_.三、写出下列每个程序运行后的输出结果1.#include void main()int a=12,39,26,41,55,63,72,40,83,95;int i,i1=0,i2=0;for(i=0;i10;i+)if(a%2=1)i1+;else i2+;pr
14、intf(%d%dn,i1,i2);输出结果为:6 4 Press any key to continue 2.#include#include void main()int i;char*a=student,worker,cadre,soldier,peasant;char*p1,*p2;p1=p2=a;for(i=0;i0)p1=a;if(strcmp(a,p2)0)p2=a;printf(%s%sn,p1,p2);输出结果为:worker cadre Press any key to continue 3.#include int a=4,5,6,15,20,13,12,7,8,9;vo
15、id main()int i,s0,s1,s2;s0=s1=s2=0;for(i=0;i10;i+)switch(a%3)case 0:s0+=a;break;case 1:s1+=a;break;case 2:s2+=a;break;printf(%d%d%dn,s0,s1,s2);输出结果为:42 24 33 Press any key to continue 4.#include void main()char a=abcdbfbgacd;int i1=0,i2=0,i=0;while(a)if(a=a)i1+;if(a=b)i2+;i+;printf(%d%d%dn,i1,i2,i);
16、输出结果为:2 3 11 Press any key to continue 5.#include void main()int a=1,2,7,8,5,6,10,6,9,12,3,4;int m=a;int ii=0,jj=0;int i,j;for(i=0;i3;i+)for(j=0;jm)m=a;ii=i;jj=j;printf(%d%d%dn,ii,jj,a);输出结果为:2 1 12 Press any key to continue 6.#include void main()int a,b;for(a=1,b=2;b50;)printf(%d%d,a,b);a=a+b;b=a+b
17、;printf(n);输出结果为:1 2 3 5 8 13 21 34 Press any key to continue 四、写出下列每个函数的功能1.#include 来源:(http:/ C 语言程序设计形成性考核册答案(2)_雪夜流浪 _新浪博客int SA(int a,int b)if(ab)return 1;else if(a=b)return 0;else return-1;函数功能为:根据实参a大于、等于或小于实参b,返回 1,0 或-1 2.#include int SC(int a,int b,int c)if(a=b&a=c)return a;if(b=a&b=c)ret
18、urn b;return c;函数功能为:返回实参a、b、c 中的最大数3.double SF(double x,int n)/n为大于等于0 的整数double p=1,s=1;for(i=1;i=n;i+)p*=x;s+=p/(i+1);return s;函数功能为:计算 x+x2/2+x3/3+xn/(n+1)的值4.#include int SC(int x)int a=(int)sqrt(x);int i=2;while(i=a)if(x%i=0)break;i+;if(i=0)return 0;else return 1;函数功能为:判断一个整数是否是素数5.#include vo
19、id trans(int x)char a;int i=0,rem;do rem=x%16;x=x/16;if(rem0)printf(%c,a);printf(n);函数功能为:将一个整数化成十六进制数五、根据下列每个题目要求编写程序1.编写一个函数,函数头格式为“void fun4(char*a,int b)do if(*a=0&*a=9)b+;while(*a+);2.编写一个函数,函数头格式为“double Mean(double a,int m,int n)”,要求返回二维数组a中所有元素的平均值,假定在计算过程是采用变量v 存放平均值。#include const int M=2,
20、N=3;double Mean(double a,int m,int n)double v=0;for(int i=0;im;i+)for(int j=0;j5 的最小 n 值。#include void main()double sum=0;int n=1;while(true)if(sum+1/(double)n 5)break;else sum+=1/(double)n;n+;printf(%d,%lfn,n,sum);5.编写一个主函数,求满足不等式22+42+n21000 的最大 n 值,假定分别用i 和 s 为取偶数值和累加值的变量,并限定使用do 循环编程。#include vo
21、id main()int s=0,i=2;do s+=i*i;if(s+(i+2)*(i+2)=1000)break;else i+=2;while(true);printf(i=%d,s=%d,i,s);6.编写一个主函数,计算并输出n 的值,其中n 值由键盘输入。#include void main()int s=0,n;printf(请输入 n 的值:);scanf(%d,&n);for(int i=1;i=n;i+)s+=i*i;printf(n=%d,s=%d,n,s);C 语言程序设计形成性考核册参考作业一、选择题1.在下面的(C)函数声明语句存在语法错误。AAA(int a,in
22、t b);B AA(int,int)CAA(int a;int b)DAA(int a,int)2在下面的(C)不能作为函数的返回类型。Avoid Bint Cnew Dlong 3下面正确的函数原型语句是(B)。Aint Function(void a);Bvoid Function(int);Cint Function(a);Dvoid int(double a);4函数调用func(exp1,exp2),exp3*exp4-exp5)中所含实参的个数为(B)个。A1 B2 C4 D5 5下面的标识符中,(C)是文件级作用域。A函数形参B语句标号C外部静态类标识符D自动类标识符6下面的标识
23、符中,(B)具有全局级作用域。A函数形参B全局变量C内部静态类标识符D自动变量符7假定 p 是一个指向float 型数据的指针,则p+1 所指数据的地址比p 所指数据的地址大(C)字节。A1 B2 C4 D8 8假定 a 为一个字符数组名,则a8的地址比该数组的首地址大(B)个字节。A4 B8 C16 D32 9假定 a 为一个数组名,则下面的(B)表示有错误。Aai B*a+C*a D*(a+1)10用 calloc函数创建具有10 个整型元素的一维数组的正确语句是(C)。Aint*p=calloc(10,2);Bint*p=callo(10;Cint*p=calloc(10,4);Dint
24、*p=malloc(10);11假定变量m 定义为“int m=7;”,则定义p 的正确语句为(B)。Aint p=&m;Bint*p=&m;Cint&p=*m;Dint*p=m;12假定 k 是一个 double类型的变量,则定义指向k 的变量 p 的正确语句为(B)。Adouble p=&k;Bdouble*p=&k;Cdouble&p=*k;Dchar*p=”Thank you!”;13假定一条定义语句为“int a10,x,*pa=a;”,若要把数组a 中下标为3 的元素赋值给x,则不正确的语句为(D)。Ax=pa3;Bx=*(a+3);Ca=a3;Dx=*pa+3;14假定有定义“i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电大 语言 作业 答案
限制150内