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

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

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

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

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

    1、二级 C语言笔试-473 及答案解析(总分:93.00,做题时间:90 分钟)一、选择题(总题数:40,分数:63.00)1.软件是指A) 程序 B) 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(分数:2.00)A.B.C.D.2.树是结点的集合,它的根结点的数目是( )。A) 有且只有 1个 B) 1 或多于 1C) 0或 1 D) 至少有 2个(分数:1.00)A.B.C.D.3.在数据处理中,其处理的最小单位是( )。 A) 数据 B) 数据项 C) 数据结构 D) 数据元素(分数:2.00)A.B.C.D.4.源程序的文档化不包括( )。A) 符号名的命名要有

    2、实际意义 B) 正确的文档形式C) 良好的视觉组织 D) 正确的程序注释(分数:2.00)A.B.C.D.5.有 3个关系 R、S 和 T如下:(分数:1.00)A.B.C.D.6.下列描述错误的是( )。A) 继承分为多重继承和单继承B) 对象之间的通信靠传递消息来实现C) 在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D) 类是具有共同属性、共同方法的对象的集合(分数:2.00)A.B.C.D.7.下列说法不正确的是( )。A) C程序是以函数为基本单位的,整个程序由函数组成B) C语言程序的一条语句可以写在不同的行上C) C程序的注释行对程序的运行功能不起任何作用,所以注

    3、释应该尽可能少写D) C程序的每个语句都以分号结束(分数:2.00)A.B.C.D.8.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是_。A) C语言程序仅可以编译执行 B) C 语言程序仅可以解释执行C) C语言程序既可以编译执行,又可以解释执行 D) 以上说法都不对(分数:1.00)A.B.C.D.9.下列不正确的转义字符是( )。A) / B) t C) /n D) 088(分数:2.00)A.B.C.D.10.设有如下说明:typedef struet STlong a;int b;char c2; NEW;则下面叙述中正确的是( )。A) 以上的说明形式非法

    4、 B) ST 是一个结构体类型C) NEW是一个结构体类型 D) NEW 是一个结构体变量(分数:1.00)A.B.C.D.11.若变量已正确定义并赋值,以下符合 C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B.C.D.12.有以下程序:#includestdio.hmain()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+;print

    5、f(“a=%d,b=%d/n“,a,b);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2C) a=1,b=1 D) a=2,b=1(分数:1.00)A.B.C.D.13.下列叙述中正确的是( )。 A) 调用 printf()函数时,必须要有输出项 B) 使用 putchar()函数时,必须在之前包含头文件 stdio.h C) 在 C语言中,整数可以以二进制、八进制或十六进制的形式输出 D) 调节 getchar()函数读入字符时,可以从键盘上输入字符所对应的 ASCII码(分数:1.00)A.B.C.D.14.设有如下程序段:int x=2002, y=2003;print

    6、f(“ % d/n“, (x, y);则以下叙述中正确的是_。A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为 2002D) 输出值为 2003(分数:1.00)A.B.C.D.15.两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是( )。main()int x;scanf(“%d“,if(x+2)printf(“%d“,x);else printf(“%d/n“,x-);A) 4和 2 B) 4和 1 C) 4和 0 D) 3和 1(分数:1.00)A.B.C.D.16.若有以下说明和定义:union dtint a; ch

    7、ar b; double c; data;以下叙述中错误的是( )。A) data的每个成员起始地址都相同B) 变量 data所占的内存字节数与成员 c所占字节数相等C) 程序段:data.a=5; printf(“%f/n“,data.c);输出结果为 5.000000D) data可以作为函数的实参(分数:1.00)A.B.C.D.17.假定所有变量均已正确说明,下列程序段运行后 x的值是( )。ab+c0;x12;if(!A) x-;elsex5;if(C) x3;elsex4;A) 11 B) 4 C) 12 D) 3(分数:1.00)A.B.C.D.18.若有条件表达式(exp)?a

    8、+:b-,则以下表达式中能完全等价于表达式(exp)的是A) (exp=0) B) (exp!=0) C) (exp=1) D) (exp!=1)(分数:1.00)A.B.C.D.19.若执行下列程序时从键盘上输入 2,则输出结果是( )。#inclUdestdio.hmain()int a;scanf(“%d“,if(a+3)printf(“%d/n“,A);else printf(“%d/n“,a-);A) 1 B) 3 C) 2 D) 4(分数:1.00)A.B.C.D.20.若有定义 int x,y;并已正确给变量赋值,则下列选项中与表达式(x-y)?(x+):(y+)中的条件表达式(

    9、x-y)等价的是( )。 A) (x-y0) B) (x-y0) C) (x-y0|x-y0) D) (x-y=0)(分数:1.00)A.B.C.D.21.设有程序段:int k=12;while(k=1)k=k-1;则下列描述中正确的是( )。A) while循环执行 10次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次(分数:2.00)A.B.C.D.22.设有语句:if(a=1)b=2;c=3;,以下语句中与之等价的是( )。A) if(a=1)b=2;c=3; B) if(a!=1);elseb=2;c=3; C) if(a=1)c=3;b=2; D) (

    10、a=1)?b=2:a:=a;c=3;(分数:2.00)A.B.C.D.23.若有代数式 (分数:2.00)A.B.C.D.24.有以下程序:#include sldio.hmain()int x=0,y=5,z=3;while(z-0printf(“%d,%d,%d/n“,x,y,z);程序执行后的输出结果是( )。A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5(分数:1.00)A.B.C.D.25.有下列程序:main()int i,j;for(i1;i4;i+)for(ji;j4;j+) printf(“%d*%d%d“,i,j,i*j);printf(“/

    11、n“);程序运行后的输出结果是( )。A) 1*11 1*22 1*332*12 2*243*13B) 1*11 1*22 1*332*24 2*363*39C) 1*111*22 2*241*33 2*36 3*39D) 1*112*12 2*243*13 3*26 3*39(分数:2.00)A.B.C.D.26.设变量已正确定义,则以下能正确计算 f=n!的程序段是( )。A) f=0; for(i=1; in;i+)f*=i; B) f=1; for(i=1; in; i+)f*=i;C) f=1; for(i=n; i1; i+)f*=i; D) f=1; for(i=n; i=2;

    12、i-)f*=i;(分数:1.00)A.B.C.D.27.消除 SQL SELECT查询结果中的重复记录,可采取的方法是_。A) 通过指定主关键字 B) 通过指定唯一索引C) 使用 DISTINCT短语 D) 使用 UNIQUE短语(分数:2.00)A.B.C.D.28.有以下程序#include stdio.hmare()int x=1,y=2,z=3;if(xy)if(yz) printf(“%d“,+z);else printf(“%d“,+y);printf(“%d/n“,x+);程序的运行结果是_。A) 331 B) 41 C) 2 D) 1(分数:2.00)A.B.C.D.29.有以

    13、下函数int fun(char *x,char *y)int n=0;while(*x=*y) y+; n+;return n;函数的功能是( )。A)查找 x和 y所指字符串中是否有/0B)统计 x和 y所指字符串中最前面连续相同的字符个数C)将 y所指字符串赋给 x所指存储空间D)统计 x和 y所指字符串中相同的字符个数(分数:2.00)A.B.C.D.30.设有定义:char s8;int i=O;,以下不能将行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。A) gets(s); B) white(si+=getchar()!=/n);si=/0;C) scanf(“

    14、%s“,s); D) d0scanf(“%c“,while(si+!=/n;si=/0;(分数:2.00)A.B.C.D.31.下列二维数组初始化语句中,不正确的是( )。A) int b2=1,2,3,4,5,6,7;B) int b35=0,0,0;C) int b4=1,2,3,4,5,6;D) int b32=(1,2),(3,4),(5,6);(分数:2.00)A.B.C.D.32.设有定义语句:int x6 = 2,4,6,8,5,7 , * p=x,i;要求依次输出 x数组 6个元素中的值,不能完成此操作的语句是( )。A) for(i=0; i 6;i+) printf(“%2

    15、d“,* (p+);B) for(i =0;i 6;i + ) printf( “%2d“ , * (p +i);C) for(i =0;i 6;i + ) printf(“ %2d“ , * p + );D) for(i =0;i 6;i + ) printf(“%2d“ ,( * p) + );(分数:1.00)A.B.C.D.33.有下列程序:fun(int x)int p;if(x=0x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的输出结果是( )。A) 7 B) 3 C) 2 D) 0(分数:2.0

    16、0)A.B.C.D.34.若有定义:char*x=“abcdefghi“;,以下选项中正确运用了 strcpy函数的是_。A) char y10;strcpy(y,x4);B) char y10;strcpy(+y,x1);C) char y10,*s;strcpy(s=y+5,x);D) char y10,*s;strcpy(s=y+1,x+1);(分数:2.00)A.B.C.D.35.若有 char s33=“AAA“,“BBB“,“CCC“;说明语句,则与它等价的语句是( )。 A) char*s=“AAA“,“BBB“,“CCC“; B) char*s3=“AAA“,“BBB“,“CC

    17、C“; C) char s5=“AAA“,“BBB“,“CCC“;D) char s3=“AAA“,“BBB“,“CCC“;(分数:2.00)A.B.C.D.36.有以下程序#includestdio.hmain()struct nodeint n;struct node *next; *p;struct node x3=2,x+1,4,x+2,6,NULL;p=x;printf(“%d,“,p-n);printf(“%d/n“,p-next-n);程序运行后的输出结果是( )。A)2,3 B)2,4 C)3,4 D)4,6(分数:2.00)A.B.C.D.37.有以下程序:main()uns

    18、igned char a=2,b=4,c=5,d;d=a|b;d=c;printf(“%d/n“,d);程序运行后的输出结果是_。A) 3 B) 4 C) 5 D) 6(分数:2.00)A.B.C.D.38.有以下程序:#includestdio.hmain()FILE *fp;int i,a6=1,2,3,4,5,6;fp=fopen(“d2.dat“,“w“);fprintf(fp,“%d%d%d/n“,a0,a1,a2);fprintf(fp,“%d%d%d/n“,a3,a4,a5);fclose(fp);fp=fopen(“d2.dat“,“r“);fscanf(fp,“%d%d/n“

    19、,for(i=0;in/2;i+)t=ai; ai=an-1 -i;an-1-i =t;main()int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,8);for(i=6;i10;i+)s+=bi;printf(“%d/n“,s);A) 22 B) 10 C) 34 D) 30(分数:2.00)A.B.C.D.40.有以下程序:#include stdio.hvoid sum(int *a)a0=a1; main()int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=2;i=0;i-) sum(printf(“%d/n“,

    20、aa0);执行后的输出结果是( )。A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)41.在 E-R图中,矩形表示 1。(分数:2.00)填空项 1:_42.某二叉树有 5个度为 2的结点及 3个度为 1的结点,则该二叉树中共有 1 个点。(分数:2.00)填空项 1:_43.设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_44.软件是 1 数据和文档的集合。(分数:2.00)填空项 1:

    21、_45.一棵二叉树第 6层(根结点为第一层)的结点最多为_个。(分数:2.00)填空项 1:_46.以下程序运行时若从键盘输入:10 20 30回车。输出结果是_。#includestdio.hmain()int i=0,j=0,k=0;scanf(“%d%*d%d“,i,j,k);printf(“%d%d%d/n“,i,j,k);(分数:2.00)填空项 1:_47.设有定义:float x=123.4567;,则执行以下语句后的输出结果是 1。printf(“%f/n“,(int)(x*100+0.5)/100.0);(分数:2.00)填空项 1:_48.设 x、y、z 均为 int型变量

    22、,请写出描述“x 或 y中至少有一个小于 z“的表达式 1。(分数:2.00)填空项 1:_49.下列程序的输出结果是_。#include stdio.hmain ()int x=3,y=2,z=1;if (xy)if(y0) z=0;else z+=1;printf(“%d/n“,z);(分数:2.00)填空项 1:_50.当执行以下程序时,输入 1234567890回车,则其中 while循环体将执行_次。#includestdio.hmain()char ch;while(ch=getchar()=0)printf(“#“);(分数:2.00)填空项 1:_51.51. 以下程序的输出结

    23、果是U /U。#include stdio.hmain()int j,a=1,3,5,7,9,11,13,15,*P=a+5;for(j=3; j;j-)switch(i)case 1:case 2: printf(“%d“,*p+); break;case 3: printf(“%d“,* (-p);(分数:2.00)填空项 1:_52.下面程序的功能是输出数组 s中最大元素的下标,请填空。main( )int k,p,s =1,-9,7,2,-10,3;for(p=0,k=p;p6;p+)if(spsk)_printf(“%d/n“,k);(分数:2.00)填空项 1:_53.53. 有两

    24、个 C程序文件 T18.c和 myfun.c同在 VC系统目录(文件夹)下,其中 T18.c文件如下:#include stdio.h#include “myfun.c“main( )fun(); prinff(“/n“); myfun.c文件如下:void fun( )char s80,c;int n=0;while(c=getchar()! :/n) sn+ =c;n-;while ( n=0) prinff(“%c“ , s n- );当编译连接通过后,运行程序 T18时,输入“Thank!”,则输出结果是U /U。(分数:2.00)填空项 1:_54.54. 以下程序运行后的输出结果是

    25、U /U。main()int i,n=0,0,0,0,0;for(i=1;i=4;i+)ni=ni-1*2+1;printf(“%“,ni);(分数:2.00)填空项 1:_55.执行以下程序的输出结果是_。#include#define M 5#define N M+Mmain()int k;k=N*N*5; printf(“%d/n“,k);(分数:2.00)填空项 1:_二级 C语言笔试-473 答案解析(总分:93.00,做题时间:90 分钟)一、选择题(总题数:40,分数:63.00)1.软件是指A) 程序 B) 程序和文档C) 算法加数据结构 D) 程序、数据与相关文档的完整集合(

    26、分数:2.00)A.B.C.D. 解析:解析 软件是程序、数据与相关文档的集合,相对于计算机硬件而言,软件是逻辑产品而不是物理产品,是计算机的无形部分。2.树是结点的集合,它的根结点的数目是( )。A) 有且只有 1个 B) 1 或多于 1C) 0或 1 D) 至少有 2个(分数:1.00)A.B.C. D.解析:解析树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为 0。3.在数据处理中,其处理的最小单位是( )。 A) 数据 B) 数据项 C) 数据结构 D) 数据元素(分数:2.00)A.B. C.

    27、D.解析:解析 数据元素是由多个数据项组成,数据是能够被计算机识别、存储和加工处理的信息载体,数据处理的最小单位是数据项。4.源程序的文档化不包括( )。A) 符号名的命名要有实际意义 B) 正确的文档形式C) 良好的视觉组织 D) 正确的程序注释(分数:2.00)A.B. C.D.解析:解析 源程序的文档化主要包括 3点:符号名应具有一定实际的含义,便于理解程序功能;正确的程序注释;良好的视觉组织(利用空格、空行、缩进等技巧使程序层次清晰)。5.有 3个关系 R、S 和 T如下:(分数:1.00)A.B.C.D. 解析:解析 关系 R与 S经交运算后所得到的关系由那些既在 R内又在 S内的有

    28、序组所组成,记为RS。6.下列描述错误的是( )。A) 继承分为多重继承和单继承B) 对象之间的通信靠传递消息来实现C) 在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D) 类是具有共同属性、共同方法的对象的集合(分数:2.00)A.B.C. D.解析:解析 对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。7.下列说法不正确的是( )。A) C程序是以函数为基本单位的,整个程序由函数组成B) C语言程序的一条语句可以写在不同的行上C) C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D) C程序

    29、的每个语句都以分号结束(分数:2.00)A.B.C. D.解析:解析 本题涉及 C语言基本的 3个知识点:C 语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;C 语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。8.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是_。A) C语言程序仅可以编译执行 B) C 语言程序仅可以解释执行C) C语言程序既可以编

    30、译执行,又可以解释执行 D) 以上说法都不对(分数:1.00)A. B.C.D.解析:解析 编译型语言编写的程序在执行之前,需要一个专门的编译过程把程序编译成机器语言的文件,比如 exe文件,再次运行时便不需要重新翻译,直接使用编译的结果便可以了,因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。解释则不同,解释型语言的程序不需要编译,在运行程序的时候才翻译,比如解释型 basic语言,专门有一个解释器能够直接执行 basic程序,每个语句都是执行的时候才翻译。这样,解释型语言每执行一次便需要翻译一次,效率低。9.下列不正确的转义字符是( )。A) / B) t C) /n

    31、 D) 088(分数:2.00)A.B.C.D. 解析:解析 /是反斜线转义字符;/t是水平跳格转义字符;/n是换行转义字符;C 语言中没有规定088为转义字符。10.设有如下说明:typedef struet STlong a;int b;char c2; NEW;则下面叙述中正确的是( )。A) 以上的说明形式非法 B) ST 是一个结构体类型C) NEW是一个结构体类型 D) NEW 是一个结构体变量(分数:1.00)A.B.C. D.解析:解析 typedef 关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用 typedef进行定义的话,则 struct ST为结构体类型

    32、,现在用 typedef定义后,相当于用 NEW代表了 struct ST这一结构体类型,故 NEW为结构体类型。11.若变量已正确定义并赋值,以下符合 C语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B. C.D.解析:解析 选项 A中包含一个不合法的运算符“:=”;对于选项 C,应改为(int)18.5%3;对于选项D,可理解为两个表达式:a+7=c+b 和 a=a+7,因为 C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等,所以 a+7=c+h是错的。因此,正确答案是选项 B,它相当于 a=

    33、(b=c+2),可分解为两个表达式:b=c+2 和 a=b。12.有以下程序:#includestdio.hmain()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);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2C) a=1,b=1 D) a=2,b=1(分数:1.00)A.B.C.D. 解析:解析 本题考查 switch语句。x=1,因此第一个 switc

    34、h语句是执行 case 1:后面的语句,进入嵌入的 switch 语句;y=0,执行 case 0:后面的语句,得 a=1,遇到 break语句退出嵌入的 switch语句。由于第一个 switch语句的 case 1:后面没有 break语句,因此继续执行 case 2:后面的语句,得a=2,b=1,遇到 break语句退出第一个 switch语句。结果为 a=2,b=1。13.下列叙述中正确的是( )。 A) 调用 printf()函数时,必须要有输出项 B) 使用 putchar()函数时,必须在之前包含头文件 stdio.h C) 在 C语言中,整数可以以二进制、八进制或十六进制的形式

    35、输出 D) 调节 getchar()函数读入字符时,可以从键盘上输入字符所对应的 ASCII码(分数:1.00)A.B. C.D.解析:解析 选项 A),若 printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项 C),在 C语言中,整数可以十进制、八进制或十六进制的形式输出;选项 D),getchar 函数是从标准输入设备读取一个字符。14.设有如下程序段:int x=2002, y=2003;printf(“ % d/n“, (x, y);则以下叙述中正确的是_。A) 输出语句中格式说明符的个数少于输出项的个数

    36、,不能正确输出B) 运行时产生出错信息C) 输出值为 2002D) 输出值为 2003(分数:1.00)A.B.C.D. 解析:解析 printf 函数的输出项(x,y)是逗号表达式,因此 y的值是整个表达式的值,故输出值为2003。15.两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是( )。main()int x;scanf(“%d“,if(x+2)printf(“%d“,x);else printf(“%d/n“,x-);A) 4和 2 B) 4和 1 C) 4和 0 D) 3和 1(分数:1.00)A. B.C.D.解析:解析 本题考查 if else语句。首先 sca

    37、nf函数通过键盘读入 x的值。当 x=3时,第一个 if语句,先判断条件,取 x的值 3和 2比较,然后将 x的值加 1,发现条件成立,执行下列的 printf语句,输出x的值 4。当 x=1时,第一个 if语句,先判断条件,取 x的值 1和 2比较,然后将 x的值加 1(x的值变为2),发现条件不成立,执行下列的 else语句,先输出 x的值 2,再将 x的值减 1。16.若有以下说明和定义:union dtint a; char b; double c; data;以下叙述中错误的是( )。A) data的每个成员起始地址都相同B) 变量 data所占的内存字节数与成员 c所占字节数相等C

    38、) 程序段:data.a=5; printf(“%f/n“,data.c);输出结果为 5.000000D) data可以作为函数的实参(分数:1.00)A.B.C. D.解析:解析 共用体成员 a,b,c 共占用同一个内存空间,所以 data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量 data所占的内存字节数与成员所占字节数相等;由于各成员变量的类型不一致,所以它们的存储方式也不相同,整型占用 2个字节的存储空间,double型占用 8个字节的存储空间;data 可以作为函数的实参,此时 data作为一个地址进行地址传送;执行data.a=5;printf

    39、(“%f/n“,data.c);系统不能自动将整型变量转换为浮点型值,printf 函数只是将内存中的数据以不同类型输出,而不能将内存中的整型数据自动转换为等值的浮点数,故选项 C)错误。17.假定所有变量均已正确说明,下列程序段运行后 x的值是( )。ab+c0;x12;if(!A) x-;elsex5;if(C) x3;elsex4;A) 11 B) 4 C) 12 D) 3(分数:1.00)A.B. C.D.解析:解析 本题考查 if else语句。第一个 if语句,先判断条件,发现 aO,则!a 成立,执行下列的语句, x-,得 x11;第二个 if语句,判断条件,发现 c0,则条件不

    40、成立,执行下列的 else语句,得 x4。18.若有条件表达式(exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是A) (exp=0) B) (exp!=0) C) (exp=1) D) (exp!=1)(分数:1.00)A.B. C.D.解析:解析 条件运算符要求有 3个操作对象,称三目(元)运算符,它是 C语言中唯一的一个三目运算符。条件表达式的一般形式为:表达式 1?表达式 2:表达式 3。其求解顺序是:先求解表达式 1,若为非 0(真)则求解表达式 2,此时表达式 2的值就作为整个条件表达式的值。若表达式 1的值为 0(假),则求解表达式 3,表达式 3的值就是整个条

    41、件表达式的值,注意+、-的用法。19.若执行下列程序时从键盘上输入 2,则输出结果是( )。#inclUdestdio.hmain()int a;scanf(“%d“,if(a+3)printf(“%d/n“,A);else printf(“%d/n“,a-);A) 1 B) 3 C) 2 D) 4(分数:1.00)A.B. C.D.解析:解析 本题考查 if else语句。程序中首先使用函数 scanf()通过键盘读入 a的值,并通过第 1个 if语句,先判断条件,取 a的值 2和 3比较,然后将 a的值加 1,发现条件成立,执行下列的 printf语句,输出 a的值 3。20.若有定义 i

    42、nt x,y;并已正确给变量赋值,则下列选项中与表达式(x-y)?(x+):(y+)中的条件表达式(x-y)等价的是( )。 A) (x-y0) B) (x-y0) C) (x-y0|x-y0) D) (x-y=0)(分数:1.00)A.B.C. D.解析:解析 条件表达式的形式如下:“表达式 1?表达式 2;表达式 3”。其含义为当“表达式 1”的值为非零时,求出“表达式 2”的值,此时“表达式 2”的值就是整个条件表达式的值;当“表达式 1”的值为零时,则求“表达式 3”的值,这时“表达式 3”的值就是整个表达式的值。本题条件表达式的执行顺序是先求解表达式“x-y”的值,若其值为非 0(可

    43、以是正数,也可以是负数),则再求表达式“x+”的值,其值就是条件表达式的值;若表达式“x-y”的值为 0,则再求表达式“y+”的值,其值就是条件表达式的值。因此,本题的答案为选项 C)。21.设有程序段:int k=12;while(k=1)k=k-1;则下列描述中正确的是( )。A) while循环执行 10次 B) 循环是无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次(分数:2.00)A.B.C. D.解析:解析 本题考查 while循环。while 循环的控制表达式 k=1是个赋值表达式而不是逻辑表达式,所以循环体一次也不执行。22.设有语句:if(a=1)b=2;c=3

    44、;,以下语句中与之等价的是( )。A) if(a=1)b=2;c=3; B) if(a!=1);elseb=2;c=3; C) if(a=1)c=3;b=2; D) (a=1)?b=2:a:=a;c=3;(分数:2.00)A.B.C.D. 解析:解析 在 C语言中,用分号表示一条语句的结束,用把几条语句放在一块表示一个语句块,其整体表示一个功能。因而在题目给出的四个选项中,选项 A)、B)、C)均与题中所给不同,而选项 D)相同。23.若有代数式 (分数:2.00)A.B.C. D.解析:24.有以下程序:#include sldio.hmain()int x=0,y=5,z=3;while(

    45、z-0printf(“%d,%d,%d/n“,x,y,z);程序执行后的输出结果是( )。A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5(分数:1.00)A.B. C.D.解析:解析 当 x=0,y=5,z=3 时,z-0for(i1;i4;i+)for(ji;j4;j+) printf(“%d*%d%d“,i,j,i*j);printf(“/n“);程序运行后的输出结果是( )。A) 1*11 1*22 1*332*12 2*243*13B) 1*11 1*22 1*332*24 2*363*39C) 1*111*22 2*241*33 2*36 3*39D)

    46、 1*112*12 2*243*13 3*26 3*39(分数:2.00)A.B. C.D.解析:解析 外层 for循环的自变量 i从 1开始,每次循环后增 1,直到 i等于 3结束。对于外层循环自变量 i 的每一个值,内层循环的自变量i 每次从 i开始,每次循环后增 1,直到 j等于 3结束。所以在每次外循环开始后,内层循环在一行先打印门两个乘数的积,然后回车换行,下次循环从下一行开始打印输出结果。26.设变量已正确定义,则以下能正确计算 f=n!的程序段是( )。A) f=0; for(i=1; in;i+)f*=i; B) f=1; for(i=1; in; i+)f*=i;C) f=1

    47、; for(i=n; i1; i+)f*=i; D) f=1; for(i=n; i=2; i-)f*=i;(分数:1.00)A.B.C.D. 解析:解析 n! =n,(n-1)*2*1,由于选项 A)中 f的初值为 0,所以循环 n次后,f 的值依然为 0,故选项 A)错误;选项 B)中循环的终止条件是 in,即只执行 n-1次循环,得到的 f值为(n-1)*2*1 的结果,故选项 B)错误;在选项 C)中,当 n1 时,由于初值 i=n符合条件 i1,且增量为+1,故循环中永远不会出现不满足条件 i1 的值,出现死循环。27.消除 SQL SELECT查询结果中的重复记录,可采取的方法是_。A) 通过指定主关键字 B) 通


    注意事项

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




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

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

    收起
    展开