版形考册参考答案.docx
- 文档编号:12365969
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:33
- 大小:289.96KB
版形考册参考答案.docx
《版形考册参考答案.docx》由会员分享,可在线阅读,更多相关《版形考册参考答案.docx(33页珍藏版)》请在冰点文库上搜索。
版形考册参考答案
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
2016版形考册参考答案
C语言程序设计作业1
一、单项选择题(每小题1分,共30分)
1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
A.mainB.MAINC.nameD.function
2.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
A.@B.#C.$D.%
3.由C语言目标文件连接而成的可执行文件的缺省扩展名为()。
A.cppB.exeC.objD.c
4.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
A.尖括号B.双引号C.单引号D.花括号
5.在C语言程序中,单行或行尾注释语句使用的开始标记符为()。
A.*/B./*C.**
6.在printf()函数调用的格式字符串中,每个格式符的先导字符为()。
A.#B.%C.$D.@
7.用于输出表达式值的标准输出函数是()。
A.scanf()B.print()C.printf()D.output()
8.在printf()函数调用的格式字符串中,若使用格式符为"%c",则对应输出的数据类型为()。
A.charB.intC.floatD.double
9.在printf()函数调用的格式字符串中,若使用格式符为"%d",则对应输出的数据类型为()。
A.charB.intC.floatD.double
10.用于从键盘上为变量输入值的标准输入函数是()。
A.printf()B.print()C.scanf()D.output()
11.程序运行中需要从键盘上输入多于一个数据时,各数据之间使用的分隔符是()。
A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车
12.每个C语言程序文件的编译错误分为()类。
A.1B.2C.3D.4
13.short类型的长度为()。
A.1B.2C.4D.8
14.double类型的长度为()。
A.1B.2C.4D.8
15.字符串"a+b=12\n"的长度为()。
A.6B.7C.8D.9
16.运算符优先级最高的是()。
A.()B.=C.+D.<
17.运算符优先级最高的是()。
A.==B.+C.&&D.||
18.已知x的初值为5,则下列各表达式中的最大值为()。
A.x%=3B.x+=10C.x/=2D.x*=4
19.设x和y均为逻辑值,则x&&y为真的条件是()。
A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假
20.设有语句序列为“inta=12;a+=a*a;”,则执行结束后,a的值为()。
A.12B.144C.156D.288
21.x>0&&x<=10的相反表达式为()。
A.x<=0||x>10B.x<=0&&x>10C.x<=0||x<=10D.x>0&&x>10
22.字符串"a+b=12\n"的长度为()。
A.6B.7C.8D.9
23.在下列的符号常量定义中,错误的定义语句格式为()。
A.constMl=10;B.constintM2=20;C.constM310;D.constcharmark='3';
24.带有随机函数的表达式rand()%20所在的值区间是()。
A.1~19B.1~20C.0~19D.0~20
25.当处理特定问题时的循环次数已知时,通常采用语句是()。
A.forB.whileC.do-whileD.switch
26.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。
A.forB.ifC.doD.while
27.for语句能够被改写成的语句是()。
A.复合B.ifC.switchD.while
28.下面循环语句中的循环体被执行的次数为()。
for(inti=0;i A.n/2B.nC.n-1D.n+1 29.在下面循环语句中内层循环体S语句的执行总次数为()。 for(inti=0;i for(intj=i;j A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/2 30.在下面的do循环语句中,其循环体被执行的次数为()。 inti=0;doi++;while(i*i<10); A.4B.3C.1D.2 二、是非判断题(每小题1分,共30分) 1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。 () 2.在C语言程序中,ABC和abc被作为同一个标识符使用。 () 3.若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为。 () 4.在C语言程序中,只有一种使用注释语句的方法。 () 5.在一行中出现多条语句时,注释语句只能为最后一条语句。 () 6.源程序文件被编译成目标文件后,其目标文件中也存在有对应的注释内容。 () 7.一个C语言程序能够包含多个程序文件。 () 8.一个C语言程序能够包含多个用户头文件。 () 9.在C语言程序上机操作的过程中,编译程序的操作步骤之后是运行操作。 () 10.常数是双精度浮点数。 () 11.常数是单精度浮点数。 () 12.浮点数包括单精度浮点数和双精度浮点数两种。 () 13.定点数只有双精度表示,没有单精度表示。 () 14.在一条变量定义语句中,可以同时定义不同类型的变量。 (intx,*p;)() 15.在一条变量定义语句中,当同时定义多个变量时,各变量之间可以使用空格分开。 () 16.定义符号常量有两种方法,一种是采用定义语句的方法,另一种是采用预处理命令的方法。 () 17.表达式(float)25/4的值为。 () 18.表达式(int)%5的值为0。 () 19.表达式x=x+1表示成增量表达式为++x。 () 20.在C语言中,求一个整数的绝对值的数学函数为abs(x)。 () 21.已知x=-25,则fabs(x)的值为。 () 22.若x=5,y=10,则x>y逻辑值为真。 () 23.在for循环语句的头部,for后面括号内的各表达式之间使用逗号分开。 () 24.在for循环语句的头部,for后面括号内共有3个表达式位置。 () 25.for循环语句的循环体,可以是简单语句,也可以是复合语句。 () 26.for循环语句能够被转换为while循环语句。 () 27.while循环是先执行循环体,然后进行循环条件判断。 () 28.do-while循环语句循环体,可以是简单语句,也可以是复合语句。 () 29.break语句可以使用在switch语句中。 () 30.return语句中可以带有返回表达式。 () 三、写出下列每个程序运行后的输出结果(每小题5分,共40分) 1. #include<> voidmain(){ intx=5; switch(2*x-3){ case4: printf("%d",x); case7: printf("%d",2*x+1); case10: printf("%d",3*x-1);break; default: printf("%s","default\n"); } printf("%s\n","switchend."); } 2. #include<> voidmain(){ inti,s=0; for(i=1;i<=6;i++) s+=i*i; printf("s=%d\n",s); } 3. #include<> voidmain(){ inti,s1=0,s2=0; for(i=0;i<10;i++) if(i%2)s1+=i; elses2+=i; printf("%d%d\n",s1,s2); } 4. #include<> voidmain(){ intn=10,y=1; while(n--){y++;y++;} printf("y=%d\n",y); } 5. #include<> voidmain(){ intf,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"); } 6. #include<> #include<> voidmain(){ inti,n; for(n=2;n<=20;n++){ inttemp=(int)sqrt(n); for(i=2;i<=temp;i++) if(n%i==0)break; if(i>temp)printf("%d",n); } printf("\n"); } 7. #include<> constintM=20; voidmain(){ inti,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("%d%d%d\n",c2,c3,c5); } 8. #include<> voidmain(){ inti,s; for(i=1,s=0;i<15;i++){ if(i%2==0||i%3==0)continue; printf("%d",i); s+=i; } printf("%d\n",s); } C语言程序设计作业2 一、单项选择题(每小题1分,共20分) 1.在一个数组中,数组元素a[i]前面的元素个数为()。 A.iB.i+1C.i-1D.2*i 2.假定有一个元素类型为int的数组a[10],它所占用的存储空间的字节数为()。 A.10B.20C.40D.80 3.假定一维数组的定义为“chara[8];”,则该数组a所占用的存储空间的字节数为()。 A.8B.16C.64D.32 4.假定一维数组的定义为“char*a[8];”,则该数组所占用的存储空间的字节数为()。 A.8B.16C.64D.32 5.假定有一个定义语句为“inta[10]={3,4,2,8,6};”,则元素a[3]的值为()。 A.4B.2C.8D.6 6.假定有一个定义语句为“inta[10]={3,4,2,8,6};”,则元素a[5]的值为()。 A.0B.2C.8D.6 7.假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]被初始化为()。 A.6B.2C.7D.8 8.假定二维数组的定义语句为“inta[3][5];”,则该数组所含元素的个数为()。 A.8B.15C.10D.12 9.假定二维数组的定义语句为“chara[M][N];”,则该数组所含元素的个数为()。 A.(M-1)*(N-1)B.M*N-1C.M*ND.M*N+1 10.假定二维数组的定义语句为“int*a[3][5];”,则该数组所占用的存储空间的字节数为()。 A.120B.15C.30D.60 11.在下面的二维数组的定义语句中,语句格式正确的是()。 A.inta[5][];B.inta[][5]; C.inta[][3]={{1,3,5},{2}};D.inta[](10); 12.利用一维字符数组存储一个字符串时,在其末尾自动存储的一个字符是()。 A.空格B.'\0'C.回车D.'\n' 13.对于一个长度为n的字符串,保存它至少需要占用的存储字节数为()。 A.nB.n-1C.n+1D.n+2 14.对于一维字符数组a[N],用来存储一个字符串的长度至多为()。 A.N-2B.NC.N+1D.N-1 15.一个二维字符数组a[M][N]能够存储的字符串个数至多为()。 A.MB.NC.M-1D.N-1 16.对于一个二维字符数组a[M][N],存储每个字符串的长度至多为()。 A.MB.NC.M-1D.N-1 17.若需要求出一个字符串的长度,则选用的函数是()。 A.strlenB.strcmpC.strcatD.strcpy 18.将两个字符串连接起来组成一个字符串时,选用的函数是()。 A.strlenB.strcapC.strcatD.strcmp 19.若需要把一个字符串赋给字符数组,则选用的函数是()。 A.strlenB.strcmpC.strcatD.strcpy 20.若需要比较两个字符串的大小,则选用的函数是()。 A.strlenB.strcmpC.strcatD.strcpy 二、是非判断题(每小题1分,共20分) 1.在一维数组的定义语句中,数组名后带有一对中括号。 () 2.在一维数组的定义语句中,数组名前为元素类型关键字。 (enumAx,a[8];)() 3.在一维数组的定义语句中,不能给数组中每个元素赋初值。 () 4.在一维数组的定义语句中,给数组赋初值的部分是用一对中括号括起来的数据表。 () 5.假定一维数组的定义为“doublea[M];”,则每个数组元素的下标取值范围在0~M-1之间。 () 6.在二维数组的定义语句中,数组名后带有两对中括号。 () 7.在二维数组的定义语句中,数组名前为元素类型关键字。 () 8.在二维数组的定义语句中,不能给数组中每个元素赋初值。 () 9.假定二维数组的定义语句为“doublea[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。 () 10.假定二维数组的定义语句为“doublea[M][N];”,则每个数组元素的行下标取值范围在1~M之间。 () 11.字符串允许为空,并且其长度为0。 () 12.存储一个长度为0的空字符串至少需要占用1个字节的存储空间。 () 13.存储一个长度为0的空字符串至少需要占用2个字符存储空间。 () 14.在C语言程序中,存储字符串的方法是使用字符数组。 () 15.在C语言中,在定义一个字符数组时,可以同时利用一个字符串进行初始化。 () 16.对于一个长度为n的字符串,存储它的字符数组的长度至少为n。 () 17.一个二维字符数组a[10][20]中存储每个字符串的最大长度为19。 () 18.有一个语句为“chars2[4]="abcd";”,s2数组长度是合适的。 () 19.在定义指针变量的语句中,对指针变量可以赋初值。 () 20.在定义指针变量的语句“int*p,**pp;”中,p和pp具有相同的指针类型。 () 三、写出下列每个程序运行后的输出结果(每小题5分,共30分) 1.(练习题第1小题) #include<> voidmain(){ inta[10]={12,39,26,41,55,63,72,40,83,95}; inti,i1=0,i2=0; for(i=0;i<10;i++) if(a[i]%2==1)i1++;elsei2++; printf("%d%d\n",i1,i2); } 2. #include<> #include<> voidmain(){ inti; char*a[5]={"student","worker","cadre","soldier","peasant"}; char*p1,*p2; p1=p2=a[0]; for(i=0;i<5;i++){ if(strcmp(a[i],p1)>0)p1=a[i]; if(strcmp(a[i],p2)<0)p2=a[i]; } printf("%s%s\n",p1,p2); } 3. #include<> inta[10]={4,5,6,15,20,13,12,7,8,9}; voidmain(){ inti,s0,s1,s2; s0=s1=s2=0; for(i=0;i<10;i++){ switch(a[i]%3){ case0: s0+=a[i];break; case1: s1+=a[i];break; case2: s2+=a[i];break; } } printf("%d%d%d\n",s0,s1,s2); } 4. #include<> voidmain(){ chara[]="abcdbfbgacd"; inti1=0,i2=0,i=0; while(a[i]){ if(a[i]=='a')i1++; elseif(a[i]=='b')i2++; i++; } printf("%d%d%d\n",i1,i2,i); } 5.(在二维数组中找最大元素及其下标) #include<> voidmain(){ inta[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}}; intm=a[0][0]; intii=0,jj=0; inti,j; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>m){m=a[i][j];ii=i;jj=j;} printf("%d%d%d\n",ii,jj,a[ii][jj]); } 6.(又是斐波纳契数列! ) #include<> voidmain(){ inta,b; for(a=1,b=2;b<50;){ printf("%d%d",a,b); a=a+b; b=a+b; } printf("\n"); } 四、根据下列毎个题目要求编写程序(毎小题5分,共30分) 1.编写一个函数,函数头格式为“voidfun4(Char*a,intb[])”,分别求出由字符指针a所指向的字符串中包含的每种十进制数字出现的次数,把统计结果保存在数组b的相应元素中。 2.编写一个函数,函数头格式为“doubleMean(doublea[M][n],intm,intn)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程中采用变量v存放平均值。 3.编写一个递归函数“intFF(inta[],intn)”,求出数组a中所有n个元素之积并返回。 4.编写一个主函数,利用while循环,求出并显示不等式1+1/2+1/3+...+1/n≥5的最小n值。 5.编写一个主函数,求满足不等式22+42+...+n2<1000的最大n值,假定分别用i和s作为取偶数值和累加值的变量,并限定使用do循环编程。 6.编写一个主函数,计算并输出12+22+...+n2值,其中n值由键盘输入。 C语言程序设计作业3 一、单项选择题(每小题1分,共20分) 1.假定变量m定义为“intm=7;”,则下面定义语句格式正确的是()。 A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m; 2.一个指针类型的简单变量占用内存中的字节数为()。 A.2B.4C.8D.16 3.假定p是一个指向数据对象的指针,则通过p表示该数据对象为()。 A.p*B.p&C.&pD.*p 4.假定p所指对象的值为25,p+l所指对象的值为42,则表达式*p++的值为()。 A.25B.42C.26D.43 5.假定p所指对象的值为25,p+1所指对象的值为42,则表达式*++p的值为()。 A.25B.42C.26D.43 6.若p指向x,则与x的等价表示为()。 A.pB.*pC.*xD.&x 7.假定a为一个字符数组名,则元素a[8]的地址比该数组的首地址大()。 A.4个字节B.8个字节C.16个字节D.32个字节< 8.假定a为一个数组名,则下面表达式中错误的是()。 A.a[i]B.*a++C.*aD.*(a+l) 9.已知“inta[10],x,*pa=a;”,若要把数组a[3]元素的值赋给x,则不正确的语句为()。 A.x=pa[3];B.x=*(a+3);C.x=a[3];D.x=*pa+3; 10.已知“chara[3][5];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 版形考册 参考答案