欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言笔试-291及答案解析.doc

    • 资源ID:1326094       资源大小:99.50KB        全文页数:27页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言笔试-291及答案解析.doc

    1、二级 C 语言笔试-291 及答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序段:char ch;int k;ch=a;k=12;printf(“%c,%d,“,ch,ch,k);printf(“k=%d/n”,k);已知字符 a 的 ASC十进制代码为 97,则执行上述程序段后输出结果是( )。(分数:1.00)A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=122.以下正确的程序段是( )。(分数:1.00)A.char str20;B.

    2、cha r*p;scanf(“%s“,int j,k;j=i;k=+i;p=f(j,k);printf(“%d“,p);int f(int a,int b)int c;if(a,b)c=1;else if(a=b)c=0;else c=-1;return(c);(分数:1.00)A.-1B.1C.2D.编译出错,无法运行4.以下程序的运行结果是( )。int k=0;void fun(int m)m+=k;k+=m;printf(“m=%d b%d“,m,k+);main()int i=4;fun(i+);printf(“i=%d k=%d/n“,i,k);(分数:1.00)A.m=4 k=5

    3、 i=5 k=5B.m=4 k=4 i=5 k=5C.m=4 k=4 i=4 k=5D.m=4 k=5 i=4 b=55.有以下程序:#includevoid fun(char*t,char*s)while(*t!=0)t+;while(*t+=*s+)!=0);main()char ss10=”acc”,aa10=”bbxxyy”;fun(ss,a(分数:1.00)A.;printf“%s,%s/n“,ss,aa);6.若有以下说明和定义:union dtint a;char b;double c;data;以下叙述中错误的是( )。(分数:1.00)A.data 的每个成员起始地址都相同B

    4、.变量 data 所占内存字节数与成员 C 所占字节数相等C.程序段:data a=5;printf(“%f/n“,datac);输出结果为 5.000000D.data 可以作为函数的实参7.软件开发模型包括( )。瀑布模型 扇形模型 快速原型法模型 螺旋模型(分数:1.00)A.、B.、C.、D.、8.下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )。(分数:1.00)A.016 0x8f 018B.0abc 017 0xaC.010-0x11 0x16D.0a12 7ff-1239.以下定义语句中正确的是( )。(分数:1.00)A.char a=Ab=B;B.float

    5、a=b=100;C.int a=10,*b=D.float*a,b=10.程序流程图中带有箭头的线段表示的是( )。(分数:1.00)A.图元关系B.数据流C.控制流D.调用关系11.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaedlf,则其后序遍历的结点访问顺序是( )。(分数:1.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca12.以下程序的输出结果是( )。#include main()int a=15,b=21,m=0;switch(a%3)case 0:m+;break;case 1:m+; switch(b%

    6、2)default:m+; case 0:m+;break;printf(“%d/n“,m);(分数:1.00)A.1B.2C.3D.413.有以下程序:#include main()int x=1,y=0,a=0,b=0;switch(X)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“a=%d,b=%d/n”,a,b);程序的运行结果是( )。(分数:1.00)A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=114.以下合法的字符型常量是(

    7、)。(分数:1.00)A./x13B./081C.65D./n15.关系数据模型( )(分数:1.00)A.只能表示实体间的 1:1 联系B.只能表示实体间的 1:n 联系C.只能表示实体间的 m:n 联系D.可以表示实体间的上述 3 种联系16.以下叙述中正确的是( )。(分数:1.00)A.构成 C 程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.函数定义的格式是 Kelse return f(n-1)+1;main()int i,j=0;for i=1;i3;i+)j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是(

    8、 )。(分数:1.00)A.4B.3C.2D.118.下面程序段的输出为( )。#include “stdio h“main()printf(“11%d/n“,122);(分数:1.00)A.0B.47C.48D.2419.若有以下的说明,对初值中整数 2 的正确引用方式是( )。static structchar ch;int i;double x;a23=aa,1,3,4,5,b,2,7,9,8,c,31,93;(分数:1.00)A.a01.chB.a01.iC.a00.iD.a02.i20.以下 scanf 函数调用语句中对结构体变量成员的引用不正确的是( )。struct pupilc

    9、har name20;int age;int sex;pup51,*p;p=pup;(分数:1.00)A.scanf(“%s“,pup0.name);B.scanf(“%d,C.scanf(“%d”,char k100=0,*p=k;int i;fori=0;i3;i+)P=strcat(p,ai);i=strlen(p);printf(“%d/n“,i)=;则程序段的输出结果是( )。(分数:1.00)A.18B.19C.20D.2122.有以下程序段:char ch;int k;ch=a;k=12;printf(“%c,%d,“,ch,ch);printf(“k=%d/n“,k);已知字符

    10、 a 的 ASC码值为 97,则执行上述程序段后输出结果是( )。(分数:1.00)A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=1223.有以下程序:main()int i,j,X=0;for(i=0;i2;i+)X+;for(j=0;j3;j+)if(i%2)continue;X+;X+;printf(“X=%d/n“,X);程序执行后的输出结果是( )。(分数:1.00)A.X=4B.X=8C.X=6D.X=1224.有以下程序:char fun(char x,char y)if (xy)r

    11、eturn x;return y;main()int a=9,b=8,C=7;printf(“%c/n”,fun(fun(a,b),fun(b,c);程序的执行结果是( )。(分数:1.00)A.函数调用出错B.8C.9D.725.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是( )。(分数:1.00)A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b26.下列程序的输出结果是( )。#include“stdio.h”#define M(x,y)x%ymain()int a,m=12,n=100;a=M(n,m);printf(“%d/n“,a-);(分

    12、数:1.00)A.2B.3C.4D.527.设变量 a、b、C、d 和 y 都已正确定义并赋值。若有以下 if 语句:if (ab)if(c=d)y=0;else y=1;该语句所表示的含义是( )。(分数:1.00)A.B.C.D.28.x,y,z 被定义为 int 型变量,若从键盘给 x,y,z 输入数据,正确的输入语句是( )。(分数:1.00)A.INPUT x、y、z;B.scanf“%d%d%d“,C.scanf(“%d%d%d“,x,y,z);D.read(“%d%d%d“,29.以下叙述中错误的是( )。(分数:1.00)A.gets 函数用于从终端读入字符串B.getchar

    13、 函数用于从磁盘文件读入字符C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件30.有以下程序段:int j;float y;char name50;scanf(“%2d%f%s“,fputc(A,fp):fputc(/n,fp);fputc(b,fp);fputc(/nfp);fputc(C,fp);fclose(fp);(分数:1.00)A.7 字节 7 字节B.7 字节、5 字节C.5 字节、7 字节D.5 字节、5 字节35.设有如下三个关系表,下列操作中正确的是( )。(分数:1.00)A.T=RSB.T=RSC.T=RSD.T=R/S36

    14、.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及( )。(分数:1.00)A.数据的存储结构B.计算方法C.数据映像D.猡辑存储37.栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E 入栈前,栈中元素可以出栈,则出栈序列可能是( )。(分数:1.00)A.ABCEDB.DCBEAC.DBCEAD.CDABE38.有以下程序:main()int a32=0,(*ptr)21,i,j;for(i=0;i2;i+)ptr=a+i;scanf(“%d“,ptr);ptr+;fori=0;i3;i+)for(j=0;j2;j+)printf(“%2d“,ai

    15、j);printf(“/n“);若运行时输入:1 2 3,则输出结果为( )。(分数:1.00)A.产生错误信息B.10 2000C.123000D.10203039.下列叙述中错误的是( )。(分数:1.00)A.一个 C 语言程序只能实现一种算法B.C 程序可以由多个程序文件组成C.C 程序可以由一个或多个函数组成D.一个 C 函数可以单独作为一个 C 程序文件存在40.下列选项中错误的说明语句是( )。(分数:1.00)A.char a=t,o,y,o,u;B.char a=“;toyou/O“;C.char a=“toyou/O“;D.char a=toyou/O;二、填空题(总题数:

    16、14,分数:28.00)41.有序线性表进行二分查找的前提是该线性表必须是 1 存储的。(分数:2.00)填空项 1:_42.在树形结构中,树根结点没有 2 。(分数:2.00)填空项 1:_43.测试用例包括输入值集和 3 值集。(分数:2.00)填空项 1:_44.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 4 。(分数:2.00)填空项 1:_45.一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于 5 的联系。(分数:2.00)填空项 1:_46.以下程序运行后的输出结果是 6 。main()char c;int n=100;

    17、float f=10;double x;x=f*=n/=(c=50);printf(“%d %f/n“,n,x);(分数:2.00)填空项 1:_47.有以下程序:main()char a,b,c,d;scanf(“%c,%c,%d,%d“,printf(%c,%c,%c,%c/n”,a,b,c,d);若运行时从键盘上输入:6,5,65,66。则输出结果是 7 。(分数:2.00)填空项 1:_48.已知字符A的 ASC代码值是 65,字符变量 c1 的值是A,c2 的值是D。执行语句printf(“%d,%d,c1,c2-2);后,输出结果是 8 。(分数:2.00)填空项 1:_49.以下

    18、程序运行后的输出结果是 9 。main()int a,b,c;a=10;b=20;c=(a%b1)|(a/b1);printf(“%d%d%d/n“,a,b,c);(分数:2.00)填空项 1:_50.有以下程序:main()int n=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf(“%d/n“,x);执行后输出的结果是 10 。(分数:2.00)填空项 1:_51.以下 isprime 函数的功能是判断形参 a 是否为素数,如果是素数,函数返回 1,否则返回 0。请填空。int isprime(int a)int i;for(i=2;ia/2

    19、;i+)if(a%=0) 11 ;12 ;(分数:2.00)填空项 1:_52.有以下程序:main()int a=1,b=3,c=5;int *pl=*P=*pl*(*p2);printf(“%d/n“,c);执行后的输出结果是 13 。(分数:2.00)填空项 1:_53.有以下程序:main()int t=1,i=5;for(;i=0;i-)t*=i;printf(“%d/n“,c);执行后输出结果是 14 。(分数:2.00)填空项 1:_54.以下说明语句中, 15 是结构体类型名。typedef structint n;char ch8;PER;(分数:2.00)填空项 1:_二级

    20、 C 语言笔试-291 答案解析(总分:68.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.有以下程序段:char ch;int k;ch=a;k=12;printf(“%c,%d,“,ch,ch,k);printf(“k=%d/n”,k);已知字符 a 的 ASC十进制代码为 97,则执行上述程序段后输出结果是( )。(分数:1.00)A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=12 解析:解析 本题主要考查的是标准输出函数 printf。printf 函数在进行参

    21、数匹配时,并不会检查参数类型是否一一匹配,也不会检查参数个数是否一致,而是从它认为应该是第 1 个参数地址的内存位置开始,依次将内存中的内容逐个匹配给格式化字符串内所给定的各个类型。因此,前一个 princf 调用,两个 ch分别匹配给%c 和%d,而参数 k 多余,被抛弃。所以会输出“a,97,”(字符 a 的 ASC值为 97)。后一个printf 很正常,这里就不解释了。故应该选择 D)。2.以下正确的程序段是( )。(分数:1.00)A.char str20;B.cha r*p;scanf(“%s“,int j,k;j=i;k=+i;p=f(j,k);printf(“%d“,p);in

    22、t f(int a,int b)int c;if(a,b)c=1;else if(a=b)c=0;else c=-1;return(c);(分数:1.00)A.-1 B.1C.2D.编译出错,无法运行解析:解析 函数调用相当于 f(2,3),程序运算应得结果为“-1”。4.以下程序的运行结果是( )。int k=0;void fun(int m)m+=k;k+=m;printf(“m=%d b%d“,m,k+);main()int i=4;fun(i+);printf(“i=%d k=%d/n“,i,k);(分数:1.00)A.m=4 k=5 i=5 k=5B.m=4 k=4 i=5 k=5

    23、C.m=4 k=4 i=4 k=5D.m=4 k=5 i=4 b=5解析:解析 由于在 main()函数中,变量 i=4,所以就调用 fun(4),则输出“m=4 k=4”。然后变量 k增 1 等于 5,变量 i 增 1 等于 5,所以 main()函数的“printf(“i=%d k=%d/n“,i,k);”语句输出“i=5 k=5”。5.有以下程序:#includevoid fun(char*t,char*s)while(*t!=0)t+;while(*t+=*s+)!=0);main()char ss10=”acc”,aa10=”bbxxyy”;fun(ss,a(分数:1.00)A.;p

    24、rintf“%s,%s/n“,ss,aa);解析:解析 函数 fun 的功能是将 aa 连接在 ss 的后面。6.若有以下说明和定义:union dtint a;char b;double c;data;以下叙述中错误的是( )。(分数:1.00)A.data 的每个成员起始地址都相同B.变量 data 所占内存字节数与成员 C 所占字节数相等C.程序段:data a=5;printf(“%f/n“,datac);输出结果为 5.000000D.data 可以作为函数的实参 解析:解析 选项 A),共用体的每个成员的起始地址都相同;选项 B),共用体变量所占的内存长度等于最长的成员的长度;选项

    25、 C)因为每个成员的起始地址相同,所以整型数 5 以浮点型输出时为 5.000000;选项 D)C 语言规定,不能把共用体变量作为函数的参数。7.软件开发模型包括( )。瀑布模型 扇形模型 快速原型法模型 螺旋模型(分数:1.00)A.、B.、C.、 D.、解析:解析 软件开发模型包括瀑布模型、快速原型法模型和螺旋模型。8.下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )。(分数:1.00)A.016 0x8f 018B.0abc 017 0xaC.010-0x11 0x16D.0a12 7ff-123 解析:解析 八进制中,不可能包括 8 以上的数字,它的范围只在 07 之间,

    26、以 0 开头。同样,十六进制是以 0x 开头,数字在 09 和 AF 之间。9.以下定义语句中正确的是( )。(分数:1.00)A.char a=Ab=B;B.float a=b=100;C.int a=10,*b= D.float*a,b=解析:解析 本题考核的知识点是变量定义的基本概念。选项 A)中定义两个变量 a 和 b,并赋初值,C语言中可以同时定义多个变量,但变量之间必须用“,”隔开,显然,选项 A)中少了一个逗号“,”,故选项 A)不正确;选项 B)中定义变量时用了连续的赋值语句,这在定义变量时是不正确的,故选项 B)不正确,选项 D)定义一个指针,然后定义了一个变量并让这个变量的

    27、初值为该指针变量,显然这时的指针变量还没初始化就被赋值给变量,是不对的,故选项 D)不正确,所以,4 个选项中选项 C)符合题意。10.程序流程图中带有箭头的线段表示的是( )。(分数:1.00)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 程序流程图是人们对解决问题的方法、思路或算法的一种图形方式的描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容;流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流;带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之问用带有箭头的线段表示调用关系。11.若某二叉树

    28、的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaedlf,则其后序遍历的结点访问顺序是( )。(分数:1.00)A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca 解析:解析 前序遍历的第一个结点 a 为树的根结点;中序遍历中 a 的左边的结点为 a 的左子树,a 右边的结点为 a 的右子树;再分别对 a 的左右子树进行上述两步处理,直到每个结点都找到正确的位置。12.以下程序的输出结果是( )。#include main()int a=15,b=21,m=0;switch(a%3)case 0:m+;break;case 1:m+; swit

    29、ch(b%2)default:m+; case 0:m+;break;printf(“%d/n“,m);(分数:1.00)A.1 B.2C.3D.4解析:解析 考查 Switch 语句的使用。Switch 语句的条件是“a%3=15%3=0”,所以执行 case 0 后面的语句,m+;m=1,然后就执行 break,跳出 Switch 语句,所以最后输出 m 的值为 1。13.有以下程序:#include main()int x=1,y=0,a=0,b=0;switch(X)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+

    30、;break;case 3:a+;b+;printf(“a=%d,b=%d/n”,a,b);程序的运行结果是( )。(分数:1.00)A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1 解析:解析 本题主要考查的是 swifch 语句的嵌套。首先看外层 SWitch,因为 x 初始时为 1,进入外层case 1 分支,这里又是一个 switch 语句。因为 y 初始时为 0,进入内层 case 0 分支,执行a+;break;,因为遇到 break,所以此时应该跳出内层 SWitch 语句,跳出来后由于没有碰到 break;语句,所以应执行外层 case 2 分支,a+:

    31、b+;break;,此时又遇到 break;所以跳出外层 switch 语句。由此可见,整个 Switch 语句中,a 被增 1 两次,b 被增 1 一次,所以执行最后一条 printf 语句输出a=2,b=1。14.以下合法的字符型常量是( )。(分数:1.00)A./x13 B./081C.65D./n解析:解析 C 语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在 C 语言中还允许用一个“/”开头的字符序列来表示字符常量。其中,形式“/ddd”表示 1-3 位八进制数所代表的字符;形式“/xhh”表示 1-2 位十六进制数所代表的字符。在本题中,/x13表示回车符,是一个

    32、字符常量;。/081用八进制数所代表的字符,但形式不正确,因为八进制数所代表的字符中不会出现数字“8”;65不是一个字符,而是一个十进制数字;“/n”是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。15.关系数据模型( )(分数:1.00)A.只能表示实体间的 1:1 联系B.只能表示实体间的 1:n 联系C.只能表示实体间的 m:n 联系D.可以表示实体间的上述 3 种联系 解析:解析 数据模型用来表示实体间的联系,但不同的数据库管理系统支持不同的数据模型。常用的数据模型有层次模型、网状模型和关系模型,层次模型不能表示多对多联系,网状模型和关系模型都能表示任意一种联系。16.以下

    33、叙述中正确的是( )。(分数:1.00)A.构成 C 程序的基本单位是函数 B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.函数定义的格式是 Kelse return f(n-1)+1;main()int i,j=0;for i=1;i3;i+)j+=f(i);printf(“%d/n“,j);程序运行后的输出结果是( )。(分数:1.00)A.4B.3 C.2D.1解析:解析 在 main 函数中,对 f(1)和 f(2)的值进行了累加。f(1)=1,f(2)=f(1)+1=2,最后,j 的值为 1+2=3。18.下面程序段的输出为( )。#include “s

    34、tdio h“main()printf(“11%d/n“,122);(分数:1.00)A.0B.47C.48 D.24解析:解析 考查位运算的运算原理。为左移运算符,运算符的左边是移位对象;右边是整型表达式,代表左移的位数,左移时,右端(低位)补 0;左端(高位)移出的部分舍弃。19.若有以下的说明,对初值中整数 2 的正确引用方式是( )。static structchar ch;int i;double x;a23=aa,1,3,4,5,b,2,7,9,8,c,31,93;(分数:1.00)A.a01.chB.a01.i C.a00.iD.a02.i解析:解析 考查结构体数组对结构体成员的

    35、引用。结构体数组中对结构体成员的引用要先引用到数组元素,然后像对待普通的结构体变量一样来对待结构体数组元素。20.以下 scanf 函数调用语句中对结构体变量成员的引用不正确的是( )。struct pupilchar name20;int age;int sex;pup51,*p;p=pup;(分数:1.00)A.scanf(“%s“,pup0.name);B.scanf(“%d,C.scanf(“%d”,char k100=0,*p=k;int i;fori=0;i3;i+)P=strcat(p,ai);i=strlen(p);printf(“%d/n“,i)=;则程序段的输出结果是( )

    36、。(分数:1.00)A.18B.19 C.20D.21解析:解析 字符串连接函数 strcat 的调用形式如下:strcat(s1,s2)。此函数将 s2 所指字符串的内容连接到 s1 所指的字符串后面,并自动覆盖 s1 串末尾的尾标,函数返回 s1 的地址值。22.有以下程序段:char ch;int k;ch=a;k=12;printf(“%c,%d,“,ch,ch);printf(“k=%d/n“,k);已知字符 a 的 ASC码值为 97,则执行上述程序段后输出结果是( )。(分数:1.00)A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为零值或

    37、不定值C.a,97,12k=12D.a,97,k=12解析:解析 考查 prinf 函数的相关知识。输出格式控制符%c 表示将变量以字符的形式输出;输出格式控制符%d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k=12。所以选项 D)为正确答案。23.有以下程序:main()int i,j,X=0;for(i=0;i2;i+)X+;for(j=0;j3;j+)if(i%2)continue;X+;X+;printf(“X=%d/n“,X);程序执行后的输出结果是( )。(分数:1.00)A.X=4B.X=8 C.X=6D.X=1

    38、2解析:解析 本题考查的是 for 循环的嵌套。外循环的循环变量 i 从 0 递增到 1 会循环 2 次,内循环的循环变量 j 从 0 递增到 3 会循环 4 次。但是内循环中有一条 if 语句,每当 j%2 为真,即 j 为奇数时会跳过下面的 x+;语句,所以 4 次内循环只有 2 次执行到 x+;语句,再加上外循环中包含的 2 条 x+;语句,所以每次外循环会使 x 自增 4 次,2 次外循环下来 x 的值为 8。故应该选择 B)。24.有以下程序:char fun(char x,char y)if (xy)return x;return y;main()int a=9,b=8,C=7;p

    39、rintf(“%c/n”,fun(fun(a,b),fun(b,c);程序的执行结果是( )。(分数:1.00)A.函数调用出错B.8C.9D.7 解析:解析 本题考核的知识点是函数的返回值以及返回值作为函数的参数。经过分析得出函数 fun()的功能是比较形参 x 和形参 y 的大小,返回较小的一个。函数 fun()有两个参数。本题中,首先定义了三个整型变量 a、b 和 c,分别赋初值为 9、8 和 7。然后执行函数 fun(fun(a,b),fun(b,c)。在该函数中分别将 fun(a,b)和 fun(b,c)函数的返回值作为该函数的两个实参。在函数 fun(a,b)中,由于 a)b,故返

    40、回较小值 b 即 8,在函数 fun(b,c)中,由于 bc,故返回较小值 c 即 7,因此调用函数fun(fun(a,b),fun(b,c)返回 8、7 中较小者 7。25.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是( )。(分数:1.00)A.a:=b+1B.a=b=c+2 C.int 18.5%3D.a=a+7=c+b解析:解析 选项 A)中包含一个不合法的运算符“:=”;选项 C)应改为(int)18.5%3;选项 D)可理解为两个表达式:a+7=c+b 和 a=a+7,其中第一个是错的,因为 C 语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是

    41、选项 B),它实际上相当于 a=(bc+2),进而可分解为两个表达式:b=c+2 和 a+b。26.下列程序的输出结果是( )。#include“stdio.h”#define M(x,y)x%ymain()int a,m=12,n=100;a=M(n,m);printf(“%d/n“,a-);(分数:1.00)A.2B.3C.4 D.5解析:解析 带参数的宏定义命令行形式如下:#deftne 宏名(形参表)。替换文本在编译的时候编译预处理程序用“替换文本”来替换宏,即 M(n,m)被替换为 n%m,之后计算,将计算的结果赋给 a。注意,宏替换是在编译时由预处理程序完成的,函数调用是在程序运行

    42、时进行的,在函数的调用过程中需要占用一系列的处理时间。27.设变量 a、b、C、d 和 y 都已正确定义并赋值。若有以下 if 语句:if (ab)if(c=d)y=0;else y=1;该语句所表示的含义是( )。(分数:1.00)A.B.C. D.解析:解析 考查 if 语句的使用。整个语句都是以 acb 为假设的,在 acb 的情况下,如果 c=d,则y=0;否则 y=1。所以答案为选项 C)。28.x,y,z 被定义为 int 型变量,若从键盘给 x,y,z 输入数据,正确的输入语句是( )。(分数:1.00)A.INPUT x、y、z;B.scanf“%d%d%d“, C.scanf

    43、(“%d%d%d“,x,y,z);D.read(“%d%d%d“,解析:解析 考查格式输入函数 scanf 的使用。scanf 函数的一般格式是:scanf(格式控制,地址表列),该格式中,地址表列中应是变量地址,而不是变量名。29.以下叙述中错误的是( )。(分数:1.00)A.gets 函数用于从终端读入字符串B.getchar 函数用于从磁盘文件读入字符 C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件解析:解析 getchar 函数的作用是从终端读入一个字符。30.有以下程序段:int j;float y;char name50;scanf

    44、(“%2d%f%s“,fputc(A,fp):fputc(/n,fp);fputc(b,fp);fputc(/nfp);fputc(C,fp);fclose(fp);(分数:1.00)A.7 字节 7 字节B.7 字节、5 字节 C.5 字节、7 字节D.5 字节、5 字节解析:解析 以“wt”方式写入的是字符文件,转义字符。/n被看做两个字符来处理。而“wb”方式写入的是二进制文件,转义字符/n是一个字符。35.设有如下三个关系表,下列操作中正确的是( )。(分数:1.00)A.T=RSB.T=RSC.T=RS D.T=R/S解析:解析 对于两个关系的合并操作可以用笛卡儿积表示。设有 n 元

    45、关系 R 和 m 元关系 S,它们分别有 p 和 q 个元组,则 R 与 S 的笛卡儿积记为 RS,它是一个 m+n 元关系,元组个数是 pq,由题意可得,关系 T 是由关系 R 与关系 S 进行笛卡儿积运算得到的。36.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及( )。(分数:1.00)A.数据的存储结构 B.计算方法C.数据映像D.猡辑存储解析:解析 数据结构作为计算机的一门学科,主要研究和讨论以下三个方面的问题:数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;对各种

    46、数据结构进行的运算。37.栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E 入栈前,栈中元素可以出栈,则出栈序列可能是( )。(分数:1.00)A.ABCEDB.DCBEA C.DBCEAD.CDABE解析:解析 栈操作原则上“后进先出”,栈底至栈顶依次存放元素 A、B、C、D,则表明这 4 个元素中D 是最后进栈,B、C 处于中间,A 最早进栈,所以出栈时一定是先出 D,再出 C,最后出 A。38.有以下程序:main()int a32=0,(*ptr)21,i,j;for(i=0;i2;i+)ptr=a+i;scanf(“%d“,ptr);ptr+;fori=0;i3;i+)for

    47、(j=0;j2;j+)printf(“%2d“,aij);printf(“/n“);若运行时输入:1 2 3,则输出结果为( )。(分数:1.00)A.产生错误信息B.10 2000 C.123000D.102030解析:解析 本题主要考查的是 scanf()函数的输入原理。scanf()函数执行时,先从键盘缓冲区中读取用户输入的数据,若缓冲区为空或输入数据少于所需数据,则暂停程序等待用户的输入,直到用户输入回车符,scanf()将继续到键盘缓冲区中读取输入,如此反复直到满足 scanf()函数所需数据,程序才继续执行下面的语句,而 scanf()没有取完的数据仍然会保存在键盘缓冲区内,到程序结束时还没取完就会被释放掉,不会影响其他的程序运行。另外,scanf()函数将取到的数据匹配给第 2 个及其后面的指针参数所指的内存地址中去。39.下列叙述中错误的是( )。(分数:1.00)A.一个 C 语言程序只能实现一种算法 B.C 程序可以由多个程序文件组成C.C 程序可以由一个或多个函数组成D.一


    注意事项

    本文(【计算机类职业资格】二级C语言笔试-291及答案解析.doc)为本站会员(appealoxygen216)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开