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

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

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

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

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

    1、二级 C语言笔试-227 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下选项中能表示合法常量的是(分数:2.00)A.整数:1,200B.实数:1.5E2.0C.字符斜杠:/D.字符串:“/007“2.若有定义语句 int a,b; double x; 则下列选项中没有错误的是(分数:2.00)A.switch(x%2) ease 0: a+; break; ease 1: b+; break; default: a+; b+; B.switch(int)x/2.0) case 0: a+; break; case 1: b+; br

    2、eak; default: a+; b+; C.switch(int)x%2) ease 0: a+; break; ease 1: b+; break; default: a+; b+; D.switch(int)(x)%2) case 0.0: a+; break; ease 1.0: b+; break; default: a+; b+; 3.以下关于结构化程序设计的叙述中正确的是(分数:2.00)A.一个结构化程序必须同时由顺序、分支、循环三种结构组成B.结构化程序使用 goto语句会更便捷C.在 C语言中,程序的模块化是利用函数实现的D.由 3种基本结构构成的程序只能解决小规模的问题

    3、4.表达式 a+=a-=a=9的值是(分数:2.00)A.9B.-9C.18D.05.若要使以下程序的运行结果为 248,应在下画线处填入的是 #includestdio.h main() short c=124; c=c_; printf(“%d/n“, c); (分数:2.00)A.2B.1248C. for(i=0; in-1; i+=2) k=i; for(j=i; jn; j+=2) if(ajak) k=j; t=ai; ai=ak; ak=t; main() int aa10=1, 2, 3, 4, 5, 6, 7, i; fun(aa, 7); for(i=0; i7; i+)

    4、 printf(“%d, “, aai); printf(“/n“); (分数:2.00)A.7,2,5,4,3,6,1B.1,6,3,4,5,2,7C.7,6,5,4,3,2,1D.1,7,3,5,6,2,19.以下程序(库函数 islower(ch)用于判断 ch中的字母是否为小写字母)的输出结果是 #includestdio.h #includectype.h void fun(char *P) int i=0; while(pi) if(pi=“ i+;main() char s1100=“ab cd EFG!“; fun(s1); printf(“%s/n“, s1); (分数:2.

    5、00)A.ab cd EFG!B.Ab Cd EFg!C.aB cD EFG!D.ab cd EFg!10.以下程序段完全正确的是(分数:2.00)A.int *P; scanf(“%d“, B.int *P; scanf(“%d“, p);C.int k, *P= scanf(“%d“, p);D.int k, *P; *P= scanf(“%d“, p);11.以下程序运行后的输出结果是 #includestdio.h #includestring.h main() char x=“STRING“; x0=0; x1=/0; x2=0; printf(“%d%d/n“, sizeof(x)

    6、,strlen(x); (分数:1.00)A.6 1B.7 0C.6 3D.7 112.以下程序运行后的输出结果是 #includestdio.h int f(int x); main() int n=1, m; m=f(f(f(n); printf(“%d/n“, m); int f(int x) return x*2; (分数:1.00)A.1B.2C.4D.813.以下程序(strcat 函数用以连接两个字符串)运行后的输出结果是 #includestdio.h #includestring.h main() char a20=“ABCD/OEFG/0“, b=“IJK“; strcat

    7、(a, b); printf(“%s/n:,(分数:1.00)A.; A) ABCD/0FG/0IJKB.ABCDIJKC.IJKD.EFGIJK14.有以下定义:int a;long b;double x,y;,则以下选项中正确的表达式是(分数:1.00)A.a%(int)(x-y)B.a=x!=yC.(a*y)%bD.y=x+y=x15.下列叙述中正确的是(分数:1.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.上述三种说法都不对16.以下程序在 VC

    8、6平台上编译运行,程序运行后的输出结果是 #includestdio.hmain() int s, t, A=10; double B=6; s=sizeof((分数:1.00)A.; f=sizeof(B.; a+=2; b%=10; printf(“%d, %d/n“, a, b); (分数:1.00)A.5,11B.7,1C.7,11D.6,118.软件测试的目的是(分数:1.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误19.若有以下语句,则以下叙述中正确的是 typedef struct S int g; char h; T;(分数:1.0

    9、0)_20.面向对象方法中,继承是指(分数:1.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制21.下列叙述中正确的是(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.上述 3种说法都不对22.下列选项中,能够满足“若字符串 s1等于字符串 s2,则执行 ST”要求的是(分数:2.00)A.if(strcmp(s1, s2)=0) ST;B.if(s1=s2) ST

    10、;C.if(strcpy(s1, s2)=1) ST;D.if(s1-s2=0) ST;23.以下程序运行后的输出结果是 #includestdio.h int fun() static int x=1; x+=1; return x; main() int i,s=1; for(i=1; i=5;i+) s+=fun(); printf(“%d/n“, s); (分数:2.00)A.11B.21C.6D.12024.若要定义一个具有 5个元素的整型数组,以下错误的定义语句是(分数:2.00)A.int a5=0;B.int b=0, 0, 0, 0, 0;C.int c2+3;D.int i

    11、=5, di;25.下列定义数组的语句中,正确的是(分数:2.00)A.int N=10; int xN;B.#define N 10 int xN;C.int x010;D.int x;26.下面描述中,不属于软件危机表现的是(分数:2.00)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高27.以下程序运行后的输出结果是 #includestdio.hmain() int a=1, b=0; if(!(分数:2.00)A.1)+; else if(a=0) if(A) b+=2; else b+=3; prB.1C.2D.328.软件生命周期是指(分数:2.0

    12、0)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程29.若变量已正确定义,在 if(W) printf(“%d/n“,k);中,以下不可替代 W的是(分数:2.00)A.ab+cB.ch=getchar()C.a=b+cD.a+30.以下不能将 S所指字符串正确复制到 t所指存储空间的是(分数:2.00)A.while(*t=*s) t+; s+;B.for(i=0; ti=si;i+);C.do*t+=*s+; while(*s);D.for(i= 0,j=0;ti+=sj+;);31.有三个关系

    13、R、S 和 T如下: * 则由关系 R和 S得到关系 T的操作是(分数:2.00)A.自然连接B.交C.投影D.并32.以下程序运行后的输出结果是 #includestdio.h main() int y=10; while(y-); printf(“y=%d/n“, y); (分数:2.00)A.y=0B.y=-1C.y=1D.while构成无限循环33.层次型、网状型和关系型数据库划分的原则是(分数:2.00)A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式34.数据库设计中反映用户对数据要求的模式是(分数:2.00)A.内模式B.概念模式C.外模式D.设计模式35.以下

    14、程序运行后的输出结果是 #includestdio.h main() char s=“rstuv“; printf(“%c/n“, *s+2);(分数:2.00)A.tuvB.字符 t的 ASCII码值C.tD.出错36.以下程序运行后的输出结果是 #includestdio.h void fun(int x) if(x/21) fun(x/2); printf(“%d“, x); main() fun(7); printf(“/n“); (分数:2.00)A.1 3 7B.7 3 1C.7 3D.3 737.以下叙述中错误的是(分数:2.00)A.C程序在运行过程中所有计算都以二进制方式进行

    15、B.C程序在运行过程中所有计算都以十进制方式进行C.所有 C程序都需要编译链接无误后才能运行D.C程序中整型变量只能存放整数,实型变量只能存放浮点数38.以下程序运行后的输出结果是 #includestdio.h #includestdlib.h main() int *a, *b, *c; a=b=c(int *) malloc(sizeof(int); *a=1; *b=2; *c=3; a=b; printf(“%d, %d, %d/n“, *a, *b, *c); (分数:2.00)A.3,3,3B.2,2,3C.1,2,3D.1,1,339.以下程序运行后的输出结果是 #includ

    16、estdio.h void f(int *P); main() int a5=1, 2, 3, 4, 5, *r=a; f(r); printf(“%d/n“, *r); void f(int *P) P=p+3; printf(“%d, “, *P); (分数:2.00)A.1,4B.4,4C.3,1D.4,140.有定义语句:int *P4; ,以下选项中与此语句等价的是(分数:2.00)A.int p4;B.int *P;C.int *(P4);D.int(*P)4;二、填空题(总题数:15,分数:30.00)41.一个栈的初始状态为空。首先将元素 5,4,3,2,1 依次入栈,然后退栈

    17、一次,再将元素 A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为 1。(分数:2.00)填空项 1:_42.在长度为 n的线性表中,寻找最大项至少需要比较 1 次。(分数:2.00)填空项 1:_43.一棵二叉树有 10个度为 1的结点,7 个度为 2的结点,则该二叉树共有 1 个结点。(分数:2.00)填空项 1:_44.仅由顺序、选择(分支)和重复(循环)结构构成的程序是 1 程序。(分数:2.00)填空项 1:_45.数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和 1。(分数:2.00)填空项 1:_46.以下程序运行后的输出结果是_。

    18、 #includestdio.h main() int a=200, b=010; printf(“%d%d/n“, a, b); (分数:2.00)填空项 1:_47.以下程序在运行时若输入:1234567,则程序的运行结果是_。 #includestdio.h main() int x, y; scanf(“%2d%1d“, printf(“%d/n“, x+y); (分数:2.00)填空项 1:_48.在 C语言中,当表达式值为 0时表示逻辑值“假”,当表达式值为 1 时表示逻辑值“真”。(分数:2.00)填空项 1:_49.以下程序运行后的输出结果是_。 #includestdio.h

    19、 main() int i, n=0, 0, 0, 0, 0; for(i=1; i=4; i+) ni=ni-1 *3+1; printf(“%d“, ni); (分数:2.00)填空项 1:_50.以下 fun函数的功能是:找出具有 N个元素的一维数组中的最小值,并作为函数值返回。请填空。(设 N已定义) int fun(int xN) int i, k=0; for(i=0; iN; i+) if(xixk) k=_; return xk; (分数:2.00)填空项 1:_51.以下程序运行后的输出结果是_。 #includestdio.h int *f(int *p, int *q);

    20、 main() int m=1, n=2, *r= r=f(r, printf(“%d/n“, *r); int *f(int *p, int *q) return( *p*q) ? p:q; (分数:2.00)填空项 1:_52.以下 fun函数的功能是在 N行 M列的整型二维数组中,选出一个最大值作为函数值返回。请填空。(设 M、N 已定义) int fun(int aNM) int i, j, row=0, col=0; for(i=0;iN;i+) for(j=0;jM;j+) if(aijarowcol)row=i;col=j; return_; (分数:2.00)填空项 1:_53

    21、.以下程序运行后的输出结果是_。 #includestdio.h main() int n2, i, j; for(i=0; i2; i+) ni=0; for(i=0; i2; i+) for(j=0; j2; j+) nj=ni+1; printf(“%d/n“, n1);(分数:2.00)填空项 1:_54.以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。请在输出语句中填写代表最大值的输出项。 #includestdio.h main() int a10, *p, *s; for(p=a;p-a10;p+) scanf(“%d“, p); for(p=a, s

    22、=a;p-a10;p+) if(*p*s) s=p; printf(“max=%d/n“, _); (分数:2.00)填空项 1:_55.以下程序打开新文件 f.txt,并调用字符输出函数将 a数组中的字符写入其中。请填空。 #includestdio.h main() _ *fp; char a5=1, 2, 3, 4, 5, i; fp=fopen(“f.txt“, “w“); for(i=0;i5;i+) fputc(ai, fp); fclose(fp); (分数:2.00)填空项 1:_二级 C语言笔试-227 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:

    23、40,分数:70.00)1.以下选项中能表示合法常量的是(分数:2.00)A.整数:1,200B.实数:1.5E2.0C.字符斜杠:/D.字符串:“/007“ 解析:解析 选项 A中,整型常量中出现了“,”,所以错误。选项 B中,实数的表示形式要求 e(E)前必须有数字,e(E)后必须是整数,而“2.0”是实数,不满足要求。表示字符斜杠,正确的写法是/,所以选项 C错误。选项 D正确地表示了一个字符串常量。2.若有定义语句 int a,b; double x; 则下列选项中没有错误的是(分数:2.00)A.switch(x%2) ease 0: a+; break; ease 1: b+; b

    24、reak; default: a+; b+; B.switch(int)x/2.0) case 0: a+; break; case 1: b+; break; default: a+; b+; C.switch(int)x%2) ease 0: a+; break; ease 1: b+; break; default: a+; b+; D.switch(int)(x)%2) case 0.0: a+; break; ease 1.0: b+; break; default: a+; b+; 解析:解析 switch 语句中要求 switch后的表达式以及 case后的常量表达式必须是整型或

    25、字符型数据,所以选项 A、B、D 均不满足上述要求,只有选项 C满足语法要求。3.以下关于结构化程序设计的叙述中正确的是(分数:2.00)A.一个结构化程序必须同时由顺序、分支、循环三种结构组成B.结构化程序使用 goto语句会更便捷C.在 C语言中,程序的模块化是利用函数实现的 D.由 3种基本结构构成的程序只能解决小规模的问题解析:解析 结构化程序设计由顺序、分支和循环 3种结构组成,但不是必须在每个程序中都同时包含这 3种结构,这 3种基本结构构成的程序也可以解决大规模的问题。结构化程序设计应该尽量避免使用goto无条件转向语句,这个语句会破坏结构化程序的总体结构。故选项 A、B、D 错

    26、误。C 语言中,程序模块化是利用函数来实现的。4.表达式 a+=a-=a=9的值是(分数:2.00)A.9B.-9C.18D.0 解析:解析 赋值运算结合性是从右到左,所以先做“a=9”,再做“a-=a”,展开得到等价的表示为“a=a-a”,所以 a的值变为 0,最后做“a+=a”,即 a=a+a=0+0=0。5.若要使以下程序的运行结果为 248,应在下画线处填入的是 #includestdio.h main() short c=124; c=c_; printf(“%d/n“, c); (分数:2.00)A.2B.1248C. for(i=0; in-1; i+=2) k=i; for(j

    27、=i; jn; j+=2) if(ajak) k=j; t=ai; ai=ak; ak=t; main() int aa10=1, 2, 3, 4, 5, 6, 7, i; fun(aa, 7); for(i=0; i7; i+) printf(“%d, “, aai); printf(“/n“); (分数:2.00)A.7,2,5,4,3,6,1 B.1,6,3,4,5,2,7C.7,6,5,4,3,2,1D.1,7,3,5,6,2,1解析:解析 本题考查的是选择排序法。函数 fun中,变量 i从 0开始,每次增加 2,变量 j从 i开始,每次也是增加 2,所有循环中只对偶数下标的元素进行了

    28、处理。函数 fun是一个典型的选择排序法,只不过只对偶数下标的元素进行降序排列,奇数下标的元素不变。发现这一特点后,可以直接写出最后的结果7,2,5,4,3,6,1。9.以下程序(库函数 islower(ch)用于判断 ch中的字母是否为小写字母)的输出结果是 #includestdio.h #includectype.h void fun(char *P) int i=0; while(pi) if(pi=“ i+;main() char s1100=“ab cd EFG!“; fun(s1); printf(“%s/n“, s1); (分数:2.00)A.ab cd EFG!B.Ab Cd

    29、 EFg!C.aB cD EFG! D.ab cd EFg!解析:解析 函数 fun中 while循环实现的功能是从字符串第一个字符开始,依次取出字符进行判断,若当前的字符等于空格并且当前字符的前一个字符为小写字母的话,就将前一个小写字母转换成大写。实际上 while循环完成的操作是将空格字符前的小写字母转换成大写,所以选择选项 C。10.以下程序段完全正确的是(分数:2.00)A.int *P; scanf(“%d“, B.int *P; scanf(“%d“, p);C.int k, *P= scanf(“%d“, p); D.int k, *P; *P= scanf(“%d“, p);解

    30、析:解析 选项 A、B 中,指针 p是一个变量,但是没有赋值,即 p没有指向一个具体的存储空间,所以不能在 scanf语句中使用指针 p。选项 D中,“*p=“表示错误,“ x0=0; x1=/0; x2=0; printf(“%d%d/n“, sizeof(x),strlen(x); (分数:1.00)A.6 1B.7 0 C.6 3D.7 1解析:解析 本题解题的关键是运算符 sizeof和函数 strlen的区别。运算符 sizeof的功能是求出变量在内存中存放所需的字节数,函数 strlen的功能是求出字符串的实际长度,不包含字符串结束标记/0。程序中使用“char x=“STRING

    31、“; “定义了数组 x,字符串“STRING“在内存中存放实际需要 7个字节(字符/0需要占用 1个字节),所以在定义 x数组时,系统就为 x数组划分了 7个字节的存储空间,所以“sizeof(x)”的值为 7。紧接着执行“x0=0; “,/0的 ASCII码值等于 0,所以该语句的作用是对x0赋予了字符串的结束标记,所以不管 x数组后面元素值是多少,“strlen(x)“求出的结果都是 0。12.以下程序运行后的输出结果是 #includestdio.h int f(int x); main() int n=1, m; m=f(f(f(n); printf(“%d/n“, m); int f

    32、(int x) return x*2; (分数:1.00)A.1B.2C.4D.8 解析:解析 本题解题的关键是程序中 3次调用了函数 f,而且上一次的函数返回值作为本次调用的实参。第 1次调用“f(n)“,n=1 传递给形参 x,所以函数 f返回值为 1*2=2;第 2次调用“f(2)“,2 传递给形参 x,函数的返回值为 2*2=4;第 3次调用“f(4)“,4 传递给形参 x,函数的返回值为 4*2=8。13.以下程序(strcat 函数用以连接两个字符串)运行后的输出结果是 #includestdio.h #includestring.h main() char a20=“ABCD/O

    33、EFG/0“, b=“IJK“; strcat(a, b); printf(“%s/n:,(分数:1.00)A.; A) ABCD/0FG/0IJKB.ABCDIJK C.IJKD.EFGIJK解析:解析 本题的关键是看懂字符数组 a的定义和初始化。程序中对数组 a的定义和初始化语句为“char a20=“ABCD/0EFG/0“”,字符串中字符D后出现字符串结束标记/0,所以 a数组中实际存放的字符串为“ABCD“,语句“strcat(a,b);“实现字符串 a和字符串 b的连接,所以 a中的内容为字符串“ABCDIJK“。14.有以下定义:int a;long b;double x,y;,

    34、则以下选项中正确的表达式是(分数:1.00)A.a%(int)(x-y)B.a=x!=y C.(a*y)%bD.y=x+y=x解析:解析 A 选项中,除数可能为 0,所以选项 A错误。C 语言中,“%”求余运算符要求两个运算量都必须是整型数据,而选项 C中“a*y”是实型数据,所以选项 C错误。选项 D中出现了“x+y=x”错误表示,C 语言中只能对变量赋值,不能对表达式进行赋值,所以选项 D错误。选项 B为正确答案。15.下列叙述中正确的是(分数:1.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针

    35、不变,栈中元素随栈顶指针的变化而动态变化 D.上述三种说法都不对解析:解析 本题考查栈的工作原理。栈是一种特殊的线性表,遵循先进后出的原则。在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化。选项 C正确。16.以下程序在 VC6平台上编译运行,程序运行后的输出结果是 #includestdio.hmain() int s, t, A=10; double B=6; s=sizeof((分数:1.00)A.; f=sizeof(B.; a+=2; b%=10; printf(“%d, %d/n“, a, b); (分数:1.00)A.5,11B.7,1 C.7,11D.6,1解析:解析

    36、a 的初值为 1,b 的初值为 2;循环中通过“b+=a;”完成 a值的累加,变量 a的值每次增加 2,所以 a的取值为 1、3、5、7,当 a=7时跳出循环,循环中变量 b不仅完成累加,还要进行“b%=10”的运算,前两次循环 b的值分别变为 3(2+1)和 6(3+3),做求余运算后 b的值不变,最后一次循环 b=6+5=11;执行“b%=10;”后 b的值变为 1。所以最后 a=7,b=1。18.软件测试的目的是(分数:1.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误 解析:解析 本题考查软件测试的目的,属于记忆型题目。软件测试的目的在于发现

    37、程序中的错误。19.若有以下语句,则以下叙述中正确的是 typedef struct S int g; char h; T;(分数:1.00)_解析:解析 typedef struct Sint g; char h;20.面向对象方法中,继承是指(分数:1.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制 解析:解析 本题考查继承的概念,属于记忆型题目。面向对象方法中,继承是指类之间共享属性和操作的机制。选项 D正确。21.下列叙述中正确的是(分数:2.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B

    38、.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.上述 3种说法都不对解析:解析 本题考查线性表的存储结构。顺序存储结构只存储结点数据,而链式存储结构不仅要存储结点数据,还要存储指向下一个结点的指针,所以线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构。选项 B正确。22.下列选项中,能够满足“若字符串 s1等于字符串 s2,则执行 ST”要求的是(分数:2.00)A.if(strcmp(s1, s2)=0) ST; B.if(s1=s2) ST;C.if(strcpy(s1, s2)=1) ST;D.if

    39、(s1-s2=0) ST;解析:解析 本题考查的是函数 strcmp的使用。strcmp(s1,s2)的值等于 0,说明两个字符串相等;strcmp(s1,s2)的值大于 0,说明字符串 s1大于字符串 s2;strcmp(s1,s2)的值小于 0,说明字符串 s1小于字符串 s2。23.以下程序运行后的输出结果是 #includestdio.h int fun() static int x=1; x+=1; return x; main() int i,s=1; for(i=1; i=5;i+) s+=fun(); printf(“%d/n“, s); (分数:2.00)A.11B.21 C

    40、.6D.120解析:解析 本题考查的是静态存储类型的变量。静态存储变量的特点是只赋一次初值,当函数发生多次调用时,静态存储变量上一次的值会带入到函数本次的调用中。本题程序中,main 函数中 5次调用 fun函数,变量 s完成函数返回值的累加。由于 fun函数中变量 x是静态存储类型的变量,所以 x赋值为 1只在第一次调用 fun函数时执行,第一次调用结束后 x的值变为 2,当第二次调用 fun函数时,x 的值是上一次调用后的结果 2,而不会重新赋值。根据这些特点,可以知道 5次调用 fun函数后,x 值依次变为2、3、4、5、6,s 的初值为 1,所以 1+2+3+4+5+6=21。24.若

    41、要定义一个具有 5个元素的整型数组,以下错误的定义语句是(分数:2.00)A.int a5=0;B.int b=0, 0, 0, 0, 0;C.int c2+3;D.int i=5, di; 解析:解析 本题和 27题类似,考查一维数组的定义,根据 27题的解析,可以判断选项 D是错误的数组定义。25.下列定义数组的语句中,正确的是(分数:2.00)A.int N=10; int xN;B.#define N 10 int xN; C.int x010;D.int x;解析:解析 本题考查的是一维数组的定义。定义一维数组有以下一些要求:一维数组的大小不能动态定义,即在定义数组时,数组的长度只能

    42、由常量来充当,不能使用变量;一维数组在定义的同时初始化可以省略它的长度,由赋值的个数来决定数组的长度;在定义时没有初始化,则数组的长度不能省略。所以选项 A、C、D 均不符合数组定义的要求。26.下面描述中,不属于软件危机表现的是(分数:2.00)A.软件过程不规范 B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高解析:解析 本题考查软件危机的表现形式。软件危机表现在软件需求的增长得不到满足,软件开发的成本和进度无法控制,软件质量难以保证,软件不可维护或者维护的程度很低,软件成本不断提高,软件开发的发展赶不上硬件的发展。所以选项 A不属于软件危机的表现。27.以下程序运行后的输出结

    43、果是 #includestdio.hmain() int a=1, b=0; if(!(分数:2.00)A.1)+; else if(a=0) if(A) b+=2; else b+=3; pr B.1C.2D.3解析:解析 本题解题的关键是嵌套的 if语句中 else和哪个 if配对的问题。程序中,第一个 else与第一个 if配对,第二个 else与第三个 if配对,而第二个 if没有 else与之配对。程序的执行过程为:首先判断条件“!a”,a 的值为 1,“!a”的值为 0,条件为假,执行第一个 else分支。再判断“a=0”,条件仍然为假,由于第二个 if没有 else分支,所以程序

    44、流程跳出 if语句,执行 printf,输出 b的值,b的值没有改变,仍然为 0。28.软件生命周期是指(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程 B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程解析:解析 本题考查软件生命周期的概念,属于记忆型题目。软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的过程。选项 A正确。29.若变量已正确定义,在 if(W) printf(“%d/n“,k);中,以下不可替代 W的是(分数:2.00)A.ab+c B.ch=getchar()C.a=b+cD.a+解析:解析 选项

    45、A中,“ab+c”是错误的表达式,C 语言中的“不等于”运算符的正确表示为“!=”。C 语言中,if 后面的条件可以是任意表达式,只要能作出 0或非 0的判断即可,所以选项B、C、D 都可替代 W。30.以下不能将 S所指字符串正确复制到 t所指存储空间的是(分数:2.00)A.while(*t=*s) t+; s+;B.for(i=0; ti=si;i+);C.do*t+=*s+; while(*s); D.for(i= 0,j=0;ti+=sj+;);解析:解析 选项 A中,“*t=*s“既完成字符的复制,又将当前复制字符的 ASCII码作为循环条件。当 s不断向后移动指向字符串结束标记/

    46、0时,将*s 的值/0赋值给*t,/0的 ASCII码等于 0,条件判断为假跳出循环。选项 B、D 程序算法类似,也是把 s指向的字符赋值到 t指向的存储单元,并对该字符进行0和非 0的判断,若等于字符/0,则跳出循环。选项 C中,使用了 dowhile循环,先执行循环体再进行条件判断。循环中先取出*s 赋值给*t 后,然后 s和 t分别自加 1,指向下一个单元,最后再对*s 的值进行判断,若此时*s 等于/0,则跳出循环,字符/0没有复制到 t指向的存储单元中。所以选项 C不能实现字符串的复制。31.有三个关系 R、S 和 T如下: * 则由关系 R和 S得到关系 T的操作是(分数:2.00)A.自然连接 B.交C.投影D.并解析:解析 本题考查关系运算的理解。选项 B、C、D 都不会使关系的属性值增加,而本题中 T的属性值有所增加,所以选项 A正确。32.以下程序运行后的输出结果是 #includestdio.h main() int y=10; while(y-); printf(“y=%d/n“, y); (分数:2.00)A.y=0B.y=-1 C.y=1D.while构


    注意事项

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




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

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

    收起
    展开