【计算机类职业资格】二级C语言笔试54及答案解析.doc
《【计算机类职业资格】二级C语言笔试54及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试54及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试 54 及答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.若变量已正确说明为 float 类型,要通过语句 scanf(“%f%f%f“, char ch; float f; a,b,c; 则共用体变量 a,b,c 占用内存的字节数为( )。(分数:1.00)A.1B.2C.4D.611.若有以下说明和语句: int c45,(*p)5; p=c; 能够正确引用 c 数组元素的是( )。(分数:1.00)A.p+lB.*(p+3)C.*(p+1)+3D.*(p0+2)12.下面程序的输出结果是( )。 #define S
2、QR(X) 2*X+1 main() int a,b,C; a=3;b=2;C=1; a* =SQR(b+c)/SQR(b+c); printf(“%d“,a); (分数:1.00)A.3B.18C.21D.2413.以下合法的 C 语言赋值语句是( )。(分数:1.00)A.a=b=58B.k=int(a-:C.a=58,b=20D.+i;14.有以下程序: main() int i; for(i=0;i3;i+) switch(i) case1:printf(“%d“,i); case2:printf(“%d“,i); default:printf(“%d“,i); 执行后输出结果是( )
3、。(分数:1.00)A.011122B.012C.012020D.12015.以下程序中函数 f 的功能是将 n 个字符串按由大到小的顺序进行排序: #include string.h void f(char p10,int n) char t20; int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+ if(strcmp(pi,pj)0) strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t); main() char p10:“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“,);int i; f(p,5); prin
4、tf(“%d/n“,strlen(p0); 程序运行后的输出结果是( )。(分数:1.00)A.6B.4C.5D.316.以下程序的功能是( )。 # include stdio.h main() FILE*fPl; *fp2; fp1:fopen(“file1“,“r“); fp2:fopen(“file2“,“w“); while(! Feof(fP1) fputc(fgetc(fP1),fp2); fclose(fP1);fclose(fp2);(分数:1.00)A.将磁盘文件的内容显示在屏幕上B.将两个磁盘文件合为一个C.将一个磁盘文件复制到另一个磁盘文件中D.将两个磁盘文件合并后送屏
5、幕17.已知字母 A 的 ASCII 码为十进制的 65,下面程序的输出结果是( )。 main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; printf(“%d,“c/n“,ch1,Ch2);(分数:1.00)A.67,DB.B,CC.C,DD.不确定的值18.以下正确的数组定义语句是( )。(分数:1.00)A.int y14=1,2,3,4,5,B.float x3=1,2,3C.long s23=1,1,21,2,3,D.double t3=019.若有说明:int n=2,*p=; p+; main() char s50=“abcdeeffgee“,b
6、=e; a(s,b);printf(“%s/n“,s); 则程序运行后的输出结果是( )。(分数:1.00)A.AbcdeeffgeeB.ABCDeeFFGeeC.abcdEEffgEED.ABCDEEFFGEE27.若有如下程序: int s3 3=a,b,C,d,e,f,g,h,i,*t; main() t:(int*)malloc(sizeof(int); sub(t,s); printf(“%c/n“,*t); sub(int*p,int b3) *p=b21; 则程序运行后的输出结果是( )。(分数:1.00)A.dB.eC.hD.b28.下面程序的输出结果是( )。 func(in
7、t X) static int a=2; return (a+=X); main() int b=2,c=4,d; d=func(b); d=func(c); printf(“%d/n“,d); (分数:1.00)A.4B.6C.8D.1229.能正确表示逻辑关系“a=10 或 a=0”的 C 语言表达式是( )。(分数:1.00)A.a=10ora=10B.a=0|a=10C.a=10 printf(“%d/n“,j); 则输出结果是U 【6】 /U。(分数:2.00)填空项 1:_57.若有如下程序: #include “stdio.h“ main() char s30; Strcpy(
8、Strcpy( strcpy(; printf(“%S/n“,s); 则程序运行后的输出结果是U 【7】 /U。(分数:2.00)填空项 1:_58.以下程序运行后的输出结果是U 【8】 /U。 main() int p711,13,14,15,16,17,18; int i=0,j=0; while(i7 printf(“%d/n“,j); (分数:2.00)填空项 1:_59.有以下程序 main() int n=0,m+1,X=2; if(!n) X-=l; if(m) X-=2; if(X) X-=3; printf(“%d/n“,x); 执行后输出的结果是U 【9】 /U。(分数:2
9、.00)填空项 1:_60.执行以下程序后,输出#号的个数是U 【10】 /U。 #include studio.h main() int i,j; for(i=1;i5;i+) for(j=2;j=i;j+)putchar(#); (分数:2.00)填空项 1:_61.函数 sub 的功能是根据下面近似分式求 的值。 (*)/6=1+1/(2*2)+1/(3*3)+1/(n*n) 现在请在下面的函数中填空,完成求 值的功能。 #include“math.h“ double sub(long m) double sum=0.0,t;long n; for(n=1;n=m;n+) sum+=U
10、【11】 /U; t=sqrt(6*sum); return(t); (分数:2.00)填空项 1:_62.执行以下程序后 sum 的值是U 【12】 /U。 main() int i,sum; for(i=1;i6;i+) sum+=i; printf(“%d/n“,sum); (分数:2.00)填空项 1:_63.下列程序的输出结果是U 【13】 /U。 void fun(int*n) while (*n)-); printf(“%d“,+(*n); main() int a=1000; fun( (分数:2.00)填空项 1:_64.下面程序用来输出结构体变量 a 所占存储单元的字节数,
11、请填空。 main() struct stu char x20;float y; a; printf(“a size:%d/n“,sizeof(U 【14】 /U); (分数:2.00)填空项 1:_65.下面程序的功能是将字符串 a 下标值为偶数的元素由小到大排序,其他元素不变,请填空。 #includestdio.h main() char a=“labchmfye“,t; int i,j; for(i=0;i7;i+=2) for(j=i+2;j9;U 【15】 /U) if(U 【16】 /U) t=ai; ai=aj; aj=t;j+;puts(a); printf(“/n“); (
12、分数:2.00)填空项 1:_66.以下程序中,函数 SumColumMin 的功能是:求出 M 行 N 列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。 #define M 2 #define N 4 void SumColumMin(int aMN,int*Sum) int i,j,k,s=0 for(i=0;iN;i+) k=0; for(j=1;jM;j+) if(ak iaj i)k=j; s+=U 【17】 /U; U 【18】 /U=s; main() int xMN=3,2,5,1,4,l,8,3),s; SumColumMin(U 【19】
13、 /U); printf(“%d/n“,s); (分数:2.00)填空项 1:_67.若有如下程序: main() int a2=1,2,6,9,11,(*t)2; t=a; printf(“%d,%d/n“,*(t1+1),(*t) 1); 则程序运行后输出的结果是U 【20】 /U。(分数:2.00)填空项 1:_二级 C 语言笔试 54 答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.若变量已正确说明为 float 类型,要通过语句 scanf(“%f%f%f“, char ch; float f; a,b,c; 则共用体变量 a,
14、b,c 占用内存的字节数为( )。(分数:1.00)A.1B.2C.4 D.6解析:解析 共用体变量中的所有成员占有同一个存储空间,其字节数与成员中占字节数最多的那个成员相等。char 占 1 个字节, int 占 2 个字节,float 占 4 个字节,因此本题中的共用体变量 a,b,c 占用内存的字节数为 4。11.若有以下说明和语句: int c45,(*p)5; p=c; 能够正确引用 c 数组元素的是( )。(分数:1.00)A.p+lB.*(p+3)C.*(p+1)+3D.*(p0+2) 解析:解析 本题中定义了一个二维数组 c 和一个指针数组 p,并初始化让 p 指向 c。显然此
15、时 p 中的各元素为地址,选项 A 中 p+1,此时其中的 1 代表的长度是整个二维数组 c 的长度,故 p+l 将让 p 指向 c 数组后面的元素,不能引用 c 数组中的成员,故选项 A 错误;同理选项 B 和选项 C 都不正确,选项 D 中 p0指的是指针数组中的第一个元素的地址即 c 的首地址,此时的 1 的长度代表的是数组 C 中一行的长度,故p0+2 代表的是第 3 行的首地址,而*(p0+2)将代表第 3 行的第一个元素的地址,所以,4 个选项中选项 D 符合题意。12.下面程序的输出结果是( )。 #define SQR(X) 2*X+1 main() int a,b,C; a=
16、3;b=2;C=1; a* =SQR(b+c)/SQR(b+c); printf(“%d“,a); (分数:1.00)A.3B.18C.21 D.24解析:解析 以 b+c 代替参数 x,a*=a*(2*b+c+1/2*b+c+1)=3*(2*2+1+1/2*2+1+1)=21。13.以下合法的 C 语言赋值语句是( )。(分数:1.00)A.a=b=58B.k=int(a-:C.a=58,b=20D.+i; 解析:解析 选项 A 和选项 C 中都没有以“;”结束,故选项 A 和选项 C 都不是正确的赋值语句;选项 B中强制转换类型符 int 应用括号括起来,故选项 B 不正确,只有选项 D
17、是合法的 C 语言赋值语句。14.有以下程序: main() int i; for(i=0;i3;i+) switch(i) case1:printf(“%d“,i); case2:printf(“%d“,i); default:printf(“%d“,i); 执行后输出结果是( )。(分数:1.00)A.011122 B.012C.012020D.120解析:解析 for 循环执行了 3 次,第一次时 i 的值为 0,执行其后的 switch 语句,没有匹配的分支,执行 default 语句后的 printf 语句,输出为 0;第二次循环时 i 的值为 1,执行其后的 switch 语句,与
18、第一个分支匹配,执行其后的 primf 语句,输出 1,由于没有遇到 break 语句,所以一直向下执行,又输出了两个 1,第三次循环时 i 值为 2,执行其后的 switch 语句,同理输出两个 2。所以, A 选项是正确的。15.以下程序中函数 f 的功能是将 n 个字符串按由大到小的顺序进行排序: #include string.h void f(char p10,int n) char t20; int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+ if(strcmp(pi,pj)0) strcpy(t,pi);strcpy(pi,pj);strcpy(p
19、j,t); main() char p10:“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“,);int i; f(p,5); printf(“%d/n“,strlen(p0); 程序运行后的输出结果是( )。(分数:1.00)A.6B.4C.5 D.3解析:解析 函数 strcmp(字符串 1,字符串 2)作用是将“字符串 1”和“字符串 2”进行比较,如果“字符串 1”“字符串 2”,返回一个人于 0 的整数值;如果“字符串 1”“字符串 2”,返回一个小于 0 的整数值;如果“字符串 1”“字符串 2”,返回 0。 函数 strcpy(字符串数组名,字符串,整型表达式
20、)的作用是将“字符串”的前“整型表达式”个字符存入到指定的“字符数组”中,若省略“整型表达式”,则将整个“字符串”存入“字符数组”中。 函数 f()的功能是利用选择法把一个具有 n 行的二维数组中按行存放的 n 个字符串由大到小排序。在主函数中定义了一个二维字符数组 p 并给它按行赋初值,然后调用 f()函数,把它按行从大到小排列。字符串比较大小的标准是从第一个字符开始依次向右比较,遇到某一个字符大,该字符所在的字符串就是较大的字符串。由此可知最大的字符串为“dcdbe”,排序后存放在第一行,其首地址为 p0,在输出语句输出的 p0指向的字符串长度是 5。16.以下程序的功能是( )。 # i
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 54 答案 解析 DOC
