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

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

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

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

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

    1、二级 C语言笔试-12 及答案解析(总分:96.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.若有以下定义,则对 a数组元素的正确引用是( )。 int a5,*p=a;(分数:2.00)A.* printf(“%c,“,b+); printf(“%d/n“,b-a); (分数:2.00)A.3,2B.50,2C.2,2D.2,503.下列关于软件测试的目的和准则的叙述中,正确的是( )。(分数:2.00)A.软件测试是证明软件没有错误B.主要目的是发现程序中的错误C.主要目的是确定程序中错误的位置D.测试最好由程序员自己来检查自己的程序4.下面程序的输 m

    2、结果是( )。 typedef union double x3; int y4; char z10; M; M t; main() Printf(“%d/n“,sizeof(t);(分数:2.00)A.32B.26C.24D.45.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则下面程序的运行结果是( )。#includestdio.h main() char c; int v0=1,v1=0,v2=0; do switch(c=getchar() casea:caseA: casee:caseE: casei:caseI: caseo:caseO: caseu:c

    3、aseU:v1+=1: default:v0+=1;v2+=1; while(c!=/n); printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2); (分数:2.00)A.v0=7,v1=4,v2=7B.v0=8,v1=4,v2=8C.v0=11,v1=4,v2=11D.v0=13,v1=4,v2=126.下列程序段选择项,使 i的运行结果为 3的程序段是( )。(分数:2.00)A.int i=0,j=O; (i=2,(j+)+i);B.int i=1,j=0; j=i=(i=3)*2);C.int i=0,j=1; (j=1)?(i=1):(i=3);D.int i

    4、=1,j=1; i+=j+=1;7.有以下程序: #includestdio.h main() int aa55=1,2,3,4,5,6,1,8,5,9,10,2,1,2,5,6; int i,s=0; for(i=0;i4;i+) s+=aai2; printf(“%d“,s); 程序运行后的输出结果是( )。(分数:2.00)A.26B.19C.10D.208.有以下程序: #include stdio.h main() int a=1,b=2; for(;a12;a+) b+=a*2;a+=3; printf(“%d,%d/n“,b,a); 程序运行后的输出结果是( )。(分数:2.00

    5、)A.32,13B.46,10C.72,13D.72,109.以下函数定义的类型符是( )。 fff(double x) printf(“%f“,x+x); (分数:2.00)A.与 x类型相同B.void类型C.int类型D.无法确定10.算法的有穷性是指( )。(分数:2.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用11.下列能正确定义字符串的语句是( )。(分数:1.00)A.char str=/64;B.char str=“kx43“;C.char str=“;D.char str=“/0“;12.下述程序

    6、的输出结果是( )。 #includestdio.h void main() int a5=1,2,3,4,5; int *p=a,*q=p; printf(“%d,“,*(p+); printf(“%d“,*q);(分数:1.00)A.2,2B.1,1C.3,4D.1,213.有以下程序: #includestring.h void f(char p10,int n) /* 字符串从小到大排序 */ char t10;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strcmp(pi,pj)0strcpy(t,pi);strcpy(pi,pj);s

    7、trcpy(i,t); main() char p510=“abc“,“aabdfg“,“abbd“,“dcdbe“,“cd“; f(p,5); printf(“%d/n“,strlen(p0); 程序运行后的输出结果( )。(分数:1.00)A.2B.4C.6D.314.有以下程序: #includestring.h int a=4; int f(int n) int t=0;static int a=5; if(n%2) int a=6;t+=a+; elseint a=7;t+=a+; return t+a+; main() int s=a,i=0; for(;i2;i+)s+=f(i)

    8、; printf(“%d/n“,s); 程序运行后的输出结果是( )。(分数:1.00)A.24B.28C.32D.3615.若有以下定义和语句: int a=010,b=010,c=10; printf(“%d,%d,%d/a“,a,b,c); 则输出结果是( )。(分数:1.00)A.8,10,10B.10,10,10C.8,8,10D.8,16,1016.下列关于栈的描述中,正确的是( )。(分数:1.00)A.在栈中只能插入元素B.在栈中只能删除元素C.只能在一端插入或删除元素D.只能在一端插入元素,而在另一端删除元素17.当把 4个表达式用做 if语句的控制表达式时,有一个选项与其他

    9、 3个选项含义不同,这个选项是( )。(分数:1.00)A.k%2B.k%2=1C.(k%2)!=0D.!k%2=118.下面结构体的定义语句中,错误的是( )。(分数:1.00)A.struct ordint x;int y;int z;struct ord a;B.struct ordint x;int y;int z;ord a;C.struct ordint x;int y;int z;a;D.structint x;int y;int z;a;19.设有输入语句 scanf(“a=%d,b=%d,c=%d“, strcpy(str+1,strcat(p1,p2); printf(“%

    10、s“,str);(分数:1.00)A.xyzWHOwhoB.zWHOwhoC.zWHOwhoD.xWHOwho21.下面程序的输出结果是( )。 #includestdio.h main() int x=7,y=3; printf(“%d“,y=x/y); (分数:2.00)A.0B.2C.3D.不确定的值22.以下程序的输出结果是( )。 #includestdio.h main() int a=1,b=3; if(+a0) else printf(“%d,%d/n“,b,a);(分数:2.00)A.2,2B.1,3C.3,2D.3,123.在 E-R图中,用( )来表示实体之间联系。(分数

    11、:2.00)A.矩形B.菱形C.椭圆形D.正方形24.在一棵二叉树中,叶子结点共有 30个,度为 1的结点共有 40个,则该二叉树中的总结点数共有( )个。(分数:2.00)A.89B.93C.99D.10025.下列不能正确计算代数式 (分数:2.00)A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)26.详细设计主要确定每个模块具体执行过程,也称过程设计,下列不属于过程设计工具的是( )。(分数:2.00)A.DFD图B.PAD图C.N-S图D.PDL27.设有如

    12、下关系表,由关系 R和 S通过运算得到关系 T,则所使用的运算为( )。 (分数:2.00)A.T=RSB.T=RSC.T=RSD.T=R/S28.下面程序的输出结果是( )。 #includestdio.h main() int a=1,2,3,4,5,6,7,8,7,10,*p; p=a; printf(“%d/n“,*p+8); (分数:2.00)A.0B.1C.10D.929.以下语句段执行后的输出结果是( )。 #includestdio.h main() int k=3; if(k) printf(“#“) else printf(“(分数:2.00)A.#B. printf(“%

    13、d,%d/n“,(+x,y+),z+2); 执行后的输出结果是( )。(分数:2.00)A.3,5B.2,5C.3,3D.1,534.执行以下程序段的输出结果是( )。 int m=0x12,n=0x12; m=m-n; printf(“%X/n“,m);(分数:2.00)A.0X0B.0X12C.0x0D.035.对下述程序的判断中,正确的是( )。 #includestdio.h void main() char *P,s256; p=s; while(strcmp(s,“the end“) printf(“Input the string:“); gets(s); while(*P) p

    14、utchar(*p+);(分数:2.00)A.此程序循环接收字符串并输出,直到接收到字符串“the end”为止B.此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止C.此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作D.此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连接在一起的字符串36.在数据库系统中,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述是( )。(分数:2.00)A.外模式B.逻辑模式C.概念模式D.物理模式37.若有定义 int(*pt)3;,则下列说法不正确

    15、的是( )。(分数:2.00)A.int(*pt)3是一个数组指针B.指针 pt指向一个有 3个整型变量的数组C.定义了一个名为*pt、具有三个元素的整型数组D.定义了一个名为 pt的指针变量,它可以指向每行有三个整数元素的二维数组38.已知字母 a的 ASCII码为十进制数 97,下面程序的输出结果是( )。 #includestdio.h main() char c1,c2; c1=a+6-0; c2=a+3-0; printf(“%c,%c/n“,c1,c2); (分数:2.00)A.输出无定值B.d,eC.e,fD.g,d39.下述程序的输出结果是( )。 #includestdio.

    16、h void main() char a=3,b=1; char c=ab2; printf(“%d“,c); (分数:2.00)A.1B.7C.3D.240.下面程序段的运行结果是( )。 #includestdio.h void main() char str=“ABC“,*p=str; pfintf(“%d/n“,*(p+3); (分数:2.00)A.67B.0C.字符C的地址D.字符C二、B填空题/B(总题数:13,分数:26.00)41.对长度为 8的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_42.软件指的是计算机系统中与硬件相互依赖的另一部

    17、分,包括程序、数据和 1 的集合。(分数:2.00)填空项 1:_43.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于 1 测试。(分数:2.00)填空项 1:_44.一个项目具有一个项目经理,一个项目经理可管理多个项目,则实体“项目经理”与实体“项目”的联系属于 1 的联系。(分数:2.00)填空项 1:_45.在结构化分析使用的数据流图中,使 1 解释其中的图形元素。(分数:2.00)填空项 1:_46.若 s是 int型变量,且 s=8,则 s%3+(s+1)%3表达式的值为 1。(分数:2.00)填空项 1:_47.若 x和 n均是 int型变量,且 x=12,n=5

    18、,则执行 y=x%=(n%=2)表达式后 y的值为 1。(分数:2.00)填空项 1:_48.下列程序的输出结果是_。 int t(int x,int y,int cp,int dp) cp=x% y+y*y; dp=x+x-y*y; main() im a=4,b=3,c=9,d=8; t(a,b,c,d); printf(“%d%d/n“,c,d); (分数:2.00)填空项 1:_49.下面 fun函数的功能是将形参 x的值转换成二进制数,所得二进制数的每一位数放在数组中返回,二进制数的最低位放在下标为 0的元素中,其他依此类推。请填空。 Fun(int x,int b) int k=0

    19、,r; do r=x%2; _=r; x/=2; while(x); (分数:2.00)填空项 1:_50.有以下定义和语句,则 sizeof(a.share)的值是_。 struct date unsigned int day; unsigned int mouth; unsigned int year; unionint share1; float share2; share; a;(分数:2.00)填空项 1:_51.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。 #include“string.h“ #include“stdio.h“ sort(char *a,int n)

    20、 int i,j; char *p; for(j=1;j=n-1;j+) for(i=0;in-j;i+) if(_)0) p=ai; ai=ai+1; ai+1=p; main() int i; char *book=“itisme“,“itisyou“,“howareyou“,“fine“,“goodnight“,“goodbye“; sort(_); for(i=0;i6;i+) printf(“%s/n“,booki); (分数:2.00)填空项 1:_52.以下程序用以删除字符串中所有的空格,请填空。 #includestdio.h main() char s100=“Our tea

    21、cher teach C language!“;int i,j; for(i=j=0;si!=/0;i+) if(si!=)_ sj=/0; printf(“%s/n“,s); (分数:2.00)填空项 1:_53.下面程序把从终端读入的文本(用作为文本结束标志)复制到一个名为 bi.dat的新文件中。请填空。 #includestdio.h FILE *fp; main() char ch; if(fp=fopen(_)=NULL)exit(0); while(ch=getchar()!=)fputc(ch,fp);_;(分数:2.00)填空项 1:_二级 C语言笔试-12 答案解析(总分:

    22、96.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.若有以下定义,则对 a数组元素的正确引用是( )。 int a5,*p=a;(分数:2.00)A.* printf(“%c,“,b+); printf(“%d/n“,b-a); (分数:2.00)A.3,2B.50,2C.2,2 D.2,50解析:解析 自增运算符“+”,出现在变量之前,表示先使变量的值加 1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,冉使变量的值加 1。例如题中的“b+”,题中第一条语句先输出字符 b的值,此时变量 b=2,因此输出值为 2;再使 b的值加 1,b

    23、=3,因此第二条语句输出:b-a=3-1=2。3.下列关于软件测试的目的和准则的叙述中,正确的是( )。(分数:2.00)A.软件测试是证明软件没有错误B.主要目的是发现程序中的错误 C.主要目的是确定程序中错误的位置D.测试最好由程序员自己来检查自己的程序解析:解析 软件侧试的目的: 软件测试是为了发现错误而执行程序的过程; 一个好的测试用例能够发现至今尚未发现的错误; 一个成功的测试是发现了至今尚未发现的错误。 软件侧试的准则: 所有测试都应追溯到需求; 严格执行测试计划,排除测试的随意性; 充分注意测试中的群集现象;程序员应避免检查自己的程序; 穷举测试不可能; 妥善保存测试计划、测试用

    24、例、出错统计和最终分析报告,为维护提供方便。4.下面程序的输 m结果是( )。 typedef union double x3; int y4; char z10; M; M t; main() Printf(“%d/n“,sizeof(t);(分数:2.00)A.32B.26C.24 D.4解析:解析 本题考查的是联合所占的存储空间。sizeof(t)=sizeof(double)*3=8*3=24。联合体所占的存储空间墩决于所占空间最大的成员所占的空间。5.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则下面程序的运行结果是( )。#includestdio.h

    25、 main() char c; int v0=1,v1=0,v2=0; do switch(c=getchar() casea:caseA: casee:caseE: casei:caseI: caseo:caseO: caseu:caseU:v1+=1: default:v0+=1;v2+=1; while(c!=/n); printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2); (分数:2.00)A.v0=7,v1=4,v2=7B.v0=8,v1=4,v2=8C.v0=11,v1=4,v2=11D.v0=13,v1=4,v2=12 解析:解析 本题考查的是 switc

    26、h语句的应用。分析程序,do-while 语句是先执行 do后面的语句再判断是否符合 while的条件。V2+=1;语句无论读入的是什么字母(包括回车符),此语句都要执行,语句default:v0+=1;亦是如此;而语句 caseU:v1+=1;只有在读入的字母是a、A、e、E、i、I、o、O、u、U时才会执行。6.下列程序段选择项,使 i的运行结果为 3的程序段是( )。(分数:2.00)A.int i=0,j=O; (i=2,(j+)+i);B.int i=1,j=0; j=i=(i=3)*2);C.int i=0,j=1; (j=1)?(i=1):(i=3);D.int i=1,j=1;

    27、 i+=j+=1; 解析:解析 要解答本题,必须一项一项计算出语句的运算结果,才能选择正确的答案。选项 A):i 被赋初值为 2,在后面的运算中没有发生任何变化还是 2;选项 B)的运算结果为:i=3*2=6;选项 C):初始时给 j赋值为 1,即 j=1为真,所以取第一个表达式的值,即 i=1作为返回值;选项 D)的运算结果为:i=i+(j+1)=3。7.有以下程序: #includestdio.h main() int aa55=1,2,3,4,5,6,1,8,5,9,10,2,1,2,5,6; int i,s=0; for(i=0;i4;i+) s+=aai2; printf(“%d“,

    28、s); 程序运行后的输出结果是( )。(分数:2.00)A.26B.19 C.10D.20解析:解析 本题考查二维数组元素的引用。 二维数组可以看成是一个矩阵,aai2其实就是第 i行的第 3个元素,for 循环内的 s+=aai2其实就是将矩阵第 3列的数相加,即 s=3+1+10+5=19。8.有以下程序: #include stdio.h main() int a=1,b=2; for(;a12;a+) b+=a*2;a+=3; printf(“%d,%d/n“,b,a); 程序运行后的输出结果是( )。(分数:2.00)A.32,13 B.46,10C.72,13D.72,10解析:解

    29、析 在这段程序中变量 a的初值等于 1,变量 b的初值等于 2。第 1次执行 for循环语句后,变量 a的值等于 4,变量 b的值等于 4。第 2次执行 for循环后,变量 a等于 8,变量 b的值等于 14。第 3次执行 for循环后,变量 a等于 12,变量 b的值等于 32。第 4次执行 for循环后,变量 a等于 13,不满足循环的条件,这时退出 for循环,此时变量 b的值依然等于 32。因而程序输出变量 a,b的值分别为13,32。9.以下函数定义的类型符是( )。 fff(double x) printf(“%f“,x+x); (分数:2.00)A.与 x类型相同B.void类型

    30、C.int类型 D.无法确定解析:解析 在函数定义时,由于函数没有说明其类型,所以系统默认一律自动按整型处理。10.算法的有穷性是指( )。(分数:2.00)A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:解析 算法的基本特征主要包括以下四个方面: 可行性:针对实际问题而设计的算法,执行后能够得到满意的结果。 确定性:算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。 有穷性:算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。 拥有足够的情报:要使算法有效必需为算法提供足昭的情报当算

    31、法拥有足够的情报时,此算法才最有效的:而当提供的情报不够时,算法可能无效。11.下列能正确定义字符串的语句是( )。(分数:1.00)A.char str=/64;B.char str=“kx43“;C.char str=“;D.char str=“/0“; 解析:解析 字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不能用一对大括号对括起来。12.下述程序的输出结果是( )。 #includestdio.h void main() int a5=1,2,3,4,5; int *p=a,*q=p; printf(“%d,“,*(p+); printf(“%d“,*q);(分数:1

    32、.00)A.2,2B.1,1C.3,4D.1,2 解析:解析 题干中,*(p+)就是数组元素 a0,输出 a0,之后指针 p的值加 1,*q 即是数组元素a1。13.有以下程序: #includestring.h void f(char p10,int n) /* 字符串从小到大排序 */ char t10;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strcmp(pi,pj)0strcpy(t,pi);strcpy(pi,pj);strcpy(i,t); main() char p510=“abc“,“aabdfg“,“abbd“,“dcdbe

    33、“,“cd“; f(p,5); printf(“%d/n“,strlen(p0); 程序运行后的输出结果( )。(分数:1.00)A.2B.4C.6D.3 解析:解析 strcmp(str1,str2)是比较字符串 str1和 str2,若 str1str2,返回值为正数;f()函数的功能就是将字符串按照从小到大的顺序进行排列,需要注意的是比较的足字符串中每个字符的 ASCII值的大小,所以元素 p0是“abc”,它的长度为 3。14.有以下程序: #includestring.h int a=4; int f(int n) int t=0;static int a=5; if(n%2) in

    34、t a=6;t+=a+; elseint a=7;t+=a+; return t+a+; main() int s=a,i=0; for(;i2;i+)s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是( )。(分数:1.00)A.24B.28 C.32D.36解析:解析 本题考查的是外部变量的应用。因为程序的初始 int a=4;语句定义了外部变量 a,在以后的执行过程中,当 i=0时,调用 f(0)函数,执行的语句是 else int a=7;t+=a+;,此处程序中又定义了变量 a,所以原来定义的外部变量在此不起作用,得到 t=7,返回值语句 return t+

    35、a+;处,外部变量a起作用,返回值为 7+5=12:当 i=1时,调用 f(1)函数,执行的是语句 elseinta=6:t+=a+;,此处程序中又定义了变量 a,所以原来定义的外部变量在此不起作用,得到 t=6,返回值语句 return t+a+;处,外部变量 a起作用,返回值为 6+6=12;因此 s=4+12+12=28。15.若有以下定义和语句: int a=010,b=010,c=10; printf(“%d,%d,%d/a“,a,b,c); 则输出结果是( )。(分数:1.00)A.8,10,10B.10,10,10C.8,8,10D.8,16,10 解析:解析 以数字“0”开头的

    36、是八进制整型常量,以“0x”或“0X”开头的是十六进制整型常量。“%d”代表用十进制整型格式输出。题中的“010”、“0x10”转换成十进制数后分别是 8和 16。16.下列关于栈的描述中,正确的是( )。(分数:1.00)A.在栈中只能插入元素B.在栈中只能删除元素C.只能在一端插入或删除元素 D.只能在一端插入元素,而在另一端删除元素解析:解析 栈实际也是线性表只不过是一种特殊的线性表。栈是只能在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈项,另一端为栈底。当表中没有元素时称为空栈。栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从

    37、而也是最后才能被删除的元素。17.当把 4个表达式用做 if语句的控制表达式时,有一个选项与其他 3个选项含义不同,这个选项是( )。(分数:1.00)A.k%2 B.k%2=1C.(k%2)!=0D.!k%2=1解析:解析 整数 k对 2求余数的两个结果只能是 0和 1,所以选项 A)表示 k除以 2的余数,其结果是0或 1。在选项 B)、C)和 D)中包括算术求余运算符“%”,关系等于运算符“”和关系不等于运算符“!=”以及逻辑非运算符“!”。而逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、int y;int z;st

    38、ruct ord a;B.struct ordint x;int y;int z;ord a; C.struct ordint x;int y;int z;a;D.structint x;int y;int z;a;解析:解析 在选项 B)中,即使在定义完结构体 ord后,不能把 ord看成是一种数据类型。19.设有输入语句 scanf(“a=%d,b=%d,c=%d“, strcpy(str+1,strcat(p1,p2); printf(“%s“,str);(分数:1.00)A.xyzWHOwhoB.zWHOwhoC.zWHOwhoD.xWHOwho 解析:解析 程序中,strcat(p1

    39、,p2)实现将以 p2为首地址的字符串连接到以 p1为首地址的字符串后面,并取消原来 p1字符串后面的串结束标志,得到 WHOwho:strcpy(str+1,streat(p1,p2)实现将 WHOwho拷贝到以 shr+1开头的地址单元中,最后得到 xWHOwho。21.下面程序的输出结果是( )。 #includestdio.h main() int x=7,y=3; printf(“%d“,y=x/y); (分数:2.00)A.0B.2 C.3D.不确定的值解析:解析 程序运行初始时,x 被赋值 7,y 被赋值 3,因为 y为整型变量,因此表达式:y=x/y=7/3=2。22.以下程序

    40、的输出结果是( )。 #includestdio.h main() int a=1,b=3; if(+a0) else printf(“%d,%d/n“,b,a);(分数:2.00)A.2,2B.1,3C.3,2 D.3,1解析:解析 解答本题的关键在于读懂 if语句条件中的表达式。初始时 a=1,b=3,所以+a=20,因此+a0 为假,因为是进行逻辑与( p=a; printf(“%d/n“,*p+8); (分数:2.00)A.0B.1C.10D.9 解析:解析 “*”号的优先级比“+”的优先级高,所以先执行“*P”:指针 P指向的是数组的首地址,因此*p=1;再加 8得 9。29.以下语

    41、句段执行后的输出结果是( )。 #includestdio.h main() int k=3; if(k) printf(“#“) else printf(“(分数:2.00)A.#B.),因此执行程序时会出错。30.设有表示学生选课的三张表,学生表(学号,姓名,性别),课程表(课程号,课程名),选课成绩表(学号,课程号,成绩),则选课成绩表的关键字为( )。(分数:2.00)A.课程号,成绩B.学号,成绩C.学号,课程号 D.学号,课程号,成绩解析:解析 关键字是指属性或属性的组合,其值能够惟一地标识一个元组,而在选课成绩表中学号和课程号的组台可以对元组进行惟一的标识。所以学号与课程号组合作

    42、为选课成绩表的主31.对下列二叉树进行中序遍历的结果是( )。(分数:2.00)A.ABCDEFGHB.ABDGEHCFC.GDBEHACF D.GDHEBFCA 解析:解析 遍历就是不重复地访问二叉树的所有结点。 二叉树遍历的方法有 3种:前序遍历、中序遍历和后序遍历。记住 3种遍历的顺序: 前序,访问根按前序遍历左子树按前序遍历右子树。 中序,按中序遍历左子树访问根按中序遍历右子树。 后序,按后序遍历左子树按后序遍历右子树访问根。 所以对该二叉树的中序遍历结果为 GDBEHACF。32.下列说法正确的是( )。(分数:2.00)A.main函数必须放在 C程序的最后面B.main函数必须放

    43、在 C程序的最前面C.main函数可以放在 C程序的中间部分,但在执行 C程序时是从程序开头执行的D.main函数可以放在 C程序的中间部分,但在执行 C程序时是从 main函数开始的 解析:解析 每个 C程序有且只有一个主函数(main),且程序必须从 main()函数开始执行。别外 main()函数可以放在程序中的任意位置。33.有以下程序: main() int y=1,x=2,z=3; printf(“%d,%d/n“,(+x,y+),z+2); 执行后的输出结果是( )。(分数:2.00)A.3,5B.2,5C.3,3D.1,5 解析:解析 本题考查逗号表达式。逗号表达武的求解步骤是

    44、先求解表达式 1,然后依次求解表达式 2,直到表达式 N的值。整个逗号表达式的值就足最后一个表达式 N的值。(+x,y+)这个表达式的返回值是y+,先使用 y的债,然后将 y加 1,所以输出第一个值为 1。第二个输出的值为 z+2=3+2=5。34.执行以下程序段的输出结果是( )。 int m=0x12,n=0x12; m=m-n; printf(“%X/n“,m);(分数:2.00)A.0X0B.0X12C.0x0D.0 解析:解析 格式字符 X或 x是以十六进制无符号形式输出整型数(注:输出时不显示前导 0x或 0X)。35.对下述程序的判断中,正确的是( )。 #includestdi

    45、o.h void main() char *P,s256; p=s; while(strcmp(s,“the end“) printf(“Input the string:“); gets(s); while(*P) putchar(*p+);(分数:2.00)A.此程序循环接收字符串并输出,直到接收到字符串“the end”为止 B.此程序循环接收字符串,接收到字符串“the end”则输出,否则程序终止C.此程序循环接收字符串并输出,直到接收字符串“the end”为止,但因为代码有错误,程序不能正常工作D.此程序循环接收字符串并将其连接在一起,直到接收字符串“the end”为止,输出连

    46、接在一起的字符串解析:解析 strcmp(str1,str2)是比较字符串 str1和 sir2,当两字符串相等时,返回值为 0,不相等时返回值为非 0;所以此段程序的功能是在未接收到字符串“the end”时,读入字符并输出。36.在数据库系统中,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述是( )。(分数:2.00)A.外模式 B.逻辑模式C.概念模式D.物理模式解析:解析 外模式也称子模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,它是由概念模式推导出来的,是数据库用户的数据视图,是与某一应用有关的麴据的逻辑表示。一个概念模式可以有若干个外模式。37.若有定义 int(*pt)3;,则下列说法不正确的是( )。(分数:2.00)A.int(*pt)3是一个数组指针B.指针 pt指向一个有 3个整型变量的数组C.定义了一个名为*pt、具有三个元素的整型数组D.定义了一个名为 pt的指针变量,它可以指向每行有三个整数元素的二维数组 解析:解析


    注意事项

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




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

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

    收起
    展开