【计算机类职业资格】二级C语言笔试-224及答案解析.doc
《【计算机类职业资格】二级C语言笔试-224及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-224及答案解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-224 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.有以下程序#includestdio.h#includestring.hvoid fun(char s10,int n)char t;int i,j;for(i=0;in-1;i+)for(j=i+1,jn;j+)/*比较字符串的首字符大小,并交换字符串的首字符*/if(s0)sj0t=si0; si0=sj0;sj0=t;main()char ss510=“bcc“,“bbcc“,“xy“,“aaaaec“,“aabcc“fun(ss,5);printf(“%s,%
2、s“,ss0,ss4);程序运行结果是( )。(分数:1.00)A.xy,aaaaccB.aaaacc,xyC.XCC,aabccD.acc,xabcc2.有以下计算公式(分数:1.00)A.B.C.D.3.有以下程序#includestdio.hvoid fun(int*a,int n)/*fun 函数的功能是将 a所指数组元素从大到小排序*/int t,i,j;for(i=0;in-1;j+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;)main()int c10=1,2,3,4,5,6,7,8,9,0,i;fun(c+4,6);for(i=0;i10;
3、i+)printf(“%d,“,ci);printf(“/n“);程序运行的结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,9,8,7,6,5,0,4.有以下函数int aaa(char*s)char*t=s;while(*t+);t-;return(t-s);以下关于 aaa函数的功能叙述正确的是( )。(分数:1.00)A.求字符串 s的长度B.比较两个串的大小C.将串 s复制到串 tD.求字符串 s所占字节数5.有以下程序#includestdio.hv
4、oid fun(int n,int*p)int f1,f2;if(n=1|n=2)*p=1;elsefun(n=1, p!=NULL;p=)if(p-datadatam)m=p-data;return m;(分数:2.50)填空项 1:_二级 C语言笔试-224 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.有以下程序#includestdio.h#includestring.hvoid fun(char s10,int n)char t;int i,j;for(i=0;in-1;i+)for(j=i+1,jn;j+)/*比较字符串的首字符
5、大小,并交换字符串的首字符*/if(s0)sj0t=si0; si0=sj0;sj0=t;main()char ss510=“bcc“,“bbcc“,“xy“,“aaaaec“,“aabcc“fun(ss,5);printf(“%s,%s“,ss0,ss4);程序运行结果是( )。(分数:1.00)A.xy,aaaaccB.aaaacc,xyC.XCC,aabccD.acc,xabcc 解析:解析 函数fun(char s10,int n)比较二维字符数组 s10的每个字符串的首字符大小,如果前一个字符串首字符大于后一个字符串的首字符,则交换这两个字符串的首字符。2.有以下计算公式(分数:1.
6、00)A.B. C.D.解析:解析 选项 A、C、D 分别用一个 if else语句、两个 if语句和条件表达式表达了计算公式的含义。3.有以下程序#includestdio.hvoid fun(int*a,int n)/*fun 函数的功能是将 a所指数组元素从大到小排序*/int t,i,j;for(i=0;in-1;j+)for(j=i+1;jn;j+)if(aiaj)t=ai;ai=aj;aj=t;)main()int c10=1,2,3,4,5,6,7,8,9,0,i;fun(c+4,6);for(i=0;i10;i+)printf(“%d,“,ci);printf(“/n“);程序
7、运行的结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,9,8,7,6,5,0, 解析:解析 fun()函数的功能是对数组 a的元素从大到小进行排序。4.有以下函数int aaa(char*s)char*t=s;while(*t+);t-;return(t-s);以下关于 aaa函数的功能叙述正确的是( )。(分数:1.00)A.求字符串 s的长度 B.比较两个串的大小C.将串 s复制到串 tD.求字符串 s所占字节数解析:解析 在 while循环开始前,指针
8、t和 s都指向字符串的起始位置。while 循环的判断条件中,判断 t所指位置是否为字符串的结束标志,同时让 t右移一位。当 while循环结束时,t 自减 1,此时 t指向的位置是字符串的结束标志,故 t-s的值是字符串的长度。5.有以下程序#includestdio.hvoid fun(int n,int*p)int f1,f2;if(n=1|n=2)*p=1;elsefun(n=1,&f1);fun(n-2,&f2);*p=f1+f2;main()int s;fun(3,&,s);printf(“%d“,s);程序的运行结果是( )。(分数:1.00)A.2 B.3C.4D.E解析:解析
9、 在函数 fun中对参数 n的值进行判断,如果其值等于 1或 2,则*p=1,否则,函数 fun进行递归调用 fun(n.1,&f1);fun(n.2,&f2);*p=n+f2;在主函数调用 fun函数时传递给参数 n的值为3,fun 函数又递归用了两次自身 fun(2,&n);fun(1,&f1);所以 n和 f2的值都为 1,通过指针 p的引用,变量 s的值为 2。6.有以下程序#includestdio.hmain()int a=1,b=2,c=3,x;x=(ab)&c;printf(“%d“,x);程序的运行结果是( )。(分数:1.00)A.0B.1C.2D.3 解析:解析 首先计算
10、 1与 2的或运算,再将其结果与 3进行“与”运算,结果为 00000011,即十进制数 3。7.有以下程序#includestdio.hvoid fun(char*p)+p;printf(“%s“,*p);main()char*a=“Morning“,“Afternoon“,“Evening“,“Night“);fun(a):程序的运行结果是( )。(分数:1.00)A.Afternoon B.fternoonC.MorningD.orning解析:解析 执行 fun(a)语句时,p 指向的是字符串数组 a的第一个字符串”Morning”,p 自加 1之后,p指向字符串数组 a的第 2个字符
11、串“Afternoon”。8.设有定义:char p=1,2,3,*q=p;,以下不能计算出一个 char型数据所占字节数的表达式是( )。(分数:1.00)A.sizeof(p) B.sizeof(char)C.sizeof(*q)D.sizeof(p0)解析:解析 选项 A计算的是 p字符数组首地址所占的内存字节数。选项 B、C 和 D都能计算出一个字符型数据所占的字节数。9.有以下程序#includestdio.hmain()FILE*fp;int a10=1,2,3,0,0),i;fp=fopen(“d2.dat,“wb“);fwrite(a,sizeof(int),5,fp);fwr
12、ite(a,sizeof(int),5,fp);fclose(fp);fp=fopen(“d2.dat“,“rb“);fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i10;i+)printf(“%d“,ai);程序的运行结果是( )。(分数:1.00)A.1,2,3,0,0,0,0,0,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,1,2,3,0,0, 解析:解析 本题程序首先用函数 fopen()以“wb”的方式开打文件“d2.dat”,然后调用两次 fwrite函
13、数将数组 a的 5个元素,依次输出到文件 fp中,共 10字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用 head函数从文件印中读取这 10字节的数据到数组 a中。10.以下叙述中错误的是( )。(分数:1.00)A.改变函数形参的值,不会改变对应实参的值B.函数可以返回地址值C.可以给指针变量赋一个整数作为地址值 D.当在程序的开头包含文件 stdio.h时,可以给指针变量赋 NULL解析:解析 指针变量的值只能是存储单元地址,而不能是一个整数,故选项 C错误。11.软件是指( )。(分数:1.00)A.程序B.程序和文档C.算法加数据结构D.程序、数据和相关文档的集合 解析
14、:解析 计算机系统由硬件和软件两部分组成。其中,计算机软件包括程序、数据与相关文档的完整集合。12.有以下程序#includestdio.h#includestring.htypedef structchar name9;char sex;float score2;)STU;STU f(STU a)STU b=“Zhao“,in,85.0,90.0);int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i2;i+) a.scorei=b.scorei;return a;main()STU c=“Qian“,f,95.0,92.0,d;d=f(c);p
15、rintf(“%s,%c,%2.0f,%2.0f“,d.name,d.sex,d.score0,d.score1);程序的运行结果是( )。(分数:1.00)A.qian,f,95,92B.qian,m,85,90C.ZhaO,m,85,90 D.Zhao,f,95,92解析:解析 f()函数的功能是对形参 a的各个成员用结构体变量 b的各个成员进行赋值后,返回变量a。13.以下叙述中正确的是( )。(分数:1.00)A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用 main作为主函数名,程序将从此开始执行,在
16、此结束 D.main可作为用户标识符,用以命名任意一个函数作为主函数解析:解析 C 语言规定必须以 main作为主函数名。程序要从 main()函数开始执行,最后在 main()函数中结束。14.有以下程序#includestdio.hStruct ttint x;struct tt*y;*p;struct tt a4=20,a+1,15,a+2,30,a+3,17,a;main()int i;p=a:for(i=1;i=2;i+)printf(“%d,“,p-x);p=p-y;程序的运行结果是( )。(分数:1.00)A.20,30,B.30,17,C.15,30,D.20,15, 解析:解
17、析 程序的结构体数组 a的元素形成了一个单向的循环链表,每个元素的指针成员都指向下一个元素的地址。15.读取二进制文件的函数调用形式为“fread(buffer,size,count,fp);”,其中 buffer代表的是( )。(分数:1.00)A.一个文件指针,指向待读取的文件B.一个整型变量,代表待读取的数据的字节数C.一个内存块的首地址,代表读入数据存放的地址 D.一个内存块的字节数解析:解析 head 函数中的参数 buffer是内存块的首地址,输入的数据存入此内存块中。16.有以下程序#includestdio.hint a=1:int f(int c)static int a=2
18、;c=c+1:return(a+)+c;main()int i,k=0;for(i=0;i2;i+)(int a=3;k+=f(a);k+=a;printf(“%d/n“,k);程序运行结果是( )。(分数:1.00)A.14 B.15C.16D.17解析:解析 在主函数中,k 的初值为 0,首先调用函数 f(3),返回值为 6,k 的值变为 6,而函数 int fun(int c)中的局部静态变量 a等于 3。第二次调用函数 f(3)时,返回值为 7,所以 k=6+7=13。退出循环语句,k 再加上全局变量 a的值 1,其最终的值为 14。17.以下关于字符串的叙述中正确的是( )。(分数:
19、1.00)A.C语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行字符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小 解析:解析 字符串常量是由双引号括起来的一串字符,所以 A选项错误。任意两个字符串的大小比较要调用字符串比较函数 strcrop(s1,s2)来进行,所以选项 B和 C错误。18.已有定义“char c;”,程序前面已在命令行中包含 ctype.h文件,不能用于判断 c中的字符是否为大写字母的表达式是( )。(分数:1.00)A.isupper(c)B.A-c=Z C.A=c&c=ZD.c=(z-32)&(a-32)=
20、c解析:解析 选项 B先计算关系表达式“A=c”的值是 0还是 1,再比较该值与字符z之间的大小关系,不能实现题目所要求的功能。19.若在定义语句“int a,b,c,*p=&c;”之后,接着执行以下选项中的语句,则能正确执行的语句是( )。(分数:1.00)A.scanf(“%d“,a,b,c);B.scanf(“%d%d%d“,a,b,c);C.scanf(“%d“,p); D.scanf(“%d“,&p);解析:解析 题中整型指针变量 p存放的是变量 c的地址。所以本题答案为 C。20.软件调试的目的是( )。(分数:1.00)A.发现错误B.改正错误 C.改善软件的性能D.验证软件的正
21、确性解析:解析 软件调试的任务是诊断和改正程序中的错误。21.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。(分数:1.00)A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元 解析:解析 在 C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。22.以下关于 long、int 和 short类型数据占用内存大小的叙述中正确的是( )。(分数:1.00)A.均占 4字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C语言编译
22、系统决定 解析:解析 几类整型数所占用的字节数因编译系统或计算机系统的规定不同而有所差异。23.有以下程序段int j;float y;char name50;scanf(“%2d%f%s“,%j,&y,name);当执行上述程序段,从键盘上输入 55566 7777abc后,y 的值为( )。(分数:1.00)A.55566.0B.566.0 C.7777.0D.566777.0解析:解析 变量 j只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量 y中。24.有以下程序#includestdio.hint fun(char s)int n=0:while(*s
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 224 答案 解析 DOC
