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

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

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

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

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

    1、二级 C语言笔试-173 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列选项中正确的语句是( )。(分数:1.00)A.chars;s=“BOOK!“;B.char*s;s=“BOOK!“;C.chars10;s=“BOOK“;D.char*s;s=“BOOK!“;2.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合接的紧密程度D.内聚性是指模块间互相连接的紧密

    2、程度3.下列排序方法中,最坏情况下比较次数最少的是( )。(分数:1.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序4.有下列程序:#includestdio.hmain()int a=5,b=1,t;t=(a2)|b;printf(“%d/n“,t);程序运行后的输出结果是( )。(分数:1.00)A.21B.11C.6D.15.有下列程序:#includestdio.hmain()FILE*f;f=fopen(“filea.txt“,“w“);fprintf(f,“abc“);fclose(f);若文本文件 filea.txt中原有内容 hello,则运行以上程序后,文件 f

    3、ilea.txt中的内容为( )。(分数:1.00)A.helloabcB.abcloC.abeD.abchello6.设有宏定义:#define IsDIV(k,n)(k%n=1?1:0)且变量 m已正确定义并赋值,则宏调用:IsDIV(In,5)&IsDIV(m,7)为真时所要表达的是( )。(分数:1.00)A.判断 m是否能被 5或者 7整除B.判断 m是否能被 5和 7整除C.判断 m被 5或者 7除是否余 1D.判断 m被 5和 7除是否都余 17.若有定义语句“double x,t,*px,*py;”执行了“px=&x;py=&y;”后,正确的输入语句是( )。(分数:1.00)

    4、A.scanf(“%f%f“,x,y);B.scanf(“%f%f“&x,&y);C.scan(“%1f%1e“,px,py);D.scanf(“%1f%1f“x,y);8.有下列程序:#includestdio.hmain()int a1,a2char c1,c2;scanf(“%d%c%d%c“,&a1,&c1,&a2,&c2);printf(“%d%c%d%c“,a1,c1,a2,c2);若想通过键盘输入,使得 a1的值为 12,a2 的值为 34,c1 的值为字符 a,c2 的值为字符 b,程序输出结果是“12,a,34,b”则正确输入格式是(以下代表空格,CR代表回车)( )。(分数

    5、:1.00)A.12a36bCRB.12a34bCRC.12,a,34,bCRD.12a34bCR9.下列是 if浯句的基本形式:if(表达式)语句其中“表达式”( )。(分数:1.00)A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式10.有下列程序:#includestdio.hvoid fun(char*s)while(*s)if(*s%2=0)printf(“%c“,*s);s+;main()char a=“good“);fun(a);printf(“/n“);注意:字母 a的 ASCII码值为 97,程序运行后的输出结果是( )。(分

    6、数:1.00)A.dB.goC.godD.good11.下列叙述中错误的是( )。(分数:1.00)A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性12.数据库应用系统中的核心问题是( )。(分数:1.00)A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训13.下列程序段中的变量已正确定义:for(i=0:i4;i+,i+)for(k=1;k3;k+);printf(“*“);程序段的输出结果是( )。(分数:1.00)A.*B.*C.*D.*14.设

    7、有定义“char s8;int i=0;”,下列不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是( )。(分数:1.00)A.gets(s);B.while(si+=getchar()!=/n);si=/0;C.scanf(“%s“,s);D.doscanf(“%c“,&si);while(si+!=/n);si=/015.下列程序段的输出结果是( )。int x=12;double y=3.141593;printf(“%d%8.6f“,x,y);(分数:1.00)A.123.141593B.123.141593C.12,3.141593D.123.141593016

    8、.下列选项合法的标识符是( )。(分数:1.00)A.1_1B.1-1C._11D.1_17.将 E-R图转换为关系模式时,实体和联系都可以表示为( )。(分数:1.00)A.属性B.键C.关系D.域18.有下列程序:#includestdio.hint b=2;int fun(int*k)b=*k+b;returt,(b);main()int a10=1,2,3,4,5,6,7,8),i;for(i=2;i4;i+)b=fun(&ai)+b;printf(“%d“,b);printf(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.10 12B.8 10C.10 28D.10

    9、 1619.有下列程序:#includestdio.h#define PT 3.5;#define S(x)PT*x*x;main()int a=1,b=2;printf(“%4.1f/n“,S(a+b);程序运行后的输出结果是( )。(分数:1.00)A.14.0B.31.5C.7.5D.程序有错无输出结果20.设有定义“int x=2;”,下列表达式中,值不为 6的是( )。(分数:1.00)A.x*=x+1B.x+,2*xC.x*=(1+x)D.2*x,x+=221.设变量已正确定义,下列不能统计出一行中输入字符个数(不包含回车符)的程序段是( )。(分数:1.00)A.n=0;whil

    10、e(ch=getchar( )!=/n)n+;B.n=0;while(getchar( )!=/n)n+;C.for(n=0;getchar( )!=n;n+);D.n=0;for(ch=getchar( );ch!=/n;n+);22.有下列程序:#includestdio.hvoid fun(int*a,int*b)int*c;c=a;a=b;b=c;main()int x=3,y=5,*p=&x,*q=&y;fun(p,q);printf(“%d,%d,“,*p,*q);fun(&x,&y);printf(“%d,%d/n“,*p,*q)程序运行后的输出结果是( )。(分数:1.00)A

    11、.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,323.有下列程序:#includestdio.hvoid f(int*p,int*q)main()int m=1,n=2,*r=&m;f(r,&n);printf(“%d,%d“,m,n);void f(int*p,int*q)p=p+1;*q=*q+1;程序运行后的输出结果是( )。(分数:1.00)A.1,3B.2,3C.1,4D.1,224.有下列程序:#includestdio.hmain()char*a=“abcd“,“ef“,“gh“,“ijk“;int i;for(i=0;i4;i+)printf(“%c“,*

    12、ai);程序运行后的输出结果是( )。(分数:1.00)A.aegiB.dfhkC.abcdD.abcdefghijk25.若有下列定义int x10,*pt=x;则埘 x数组元素的正确引用是( )。(分数:1.00)A.*&x10B.*(x+3)C.*(pt+10)D.pt+326.支持子程序调用的数据结构是( )。(分数:1.00)A.栈B.树C.队列D.二叉树27.有两个关系 R、S 如下:(分数:1.00)A.B.C.D.28.下列选项中,能用做数据常量的是( )。(分数:1.00)A.o115B.o118C.1.5e1.5D.115L29.有下列程序:#includestdio.hi

    13、nt f(int x,int y)return(y-x)*x);)main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%d/n“,d);程序运行后的输出结果是( )。(分数:1.00)A.10B.9C.8D.730.有下列程序:#includestdio.hstruct ordint x,y;)dt2=1,2,3,4;main()struct ord*p=dt;printf(“%d,“,+p-x);printf(“%d,“,+p-y);程序的运行结果是( )。(分数:1.00)A.1,2B.2,3C.3,4D.4,131.有下列程序:#inclu

    14、destdio.hmain()char*s=“ABC“;doprintf(“%d“,*s%10);s+;while(*s);注意:字母 A的 ASCII码值为 65。程序运行后的输出结果是( )。(分数:1.00)A.5670B.656667C.567D.ABC32.有下列程序:#includestdio.hint fun(int x,iny y)if(x=y)return(x);else return(x+y)/2);main()int a=4,b=5,c=6;printf(“%d/n“,fun(2*a,fun(b,c);程序运行后的输出结果是( )。(分数:1.00)A.3B.6C.8D.

    15、1233.有下列程序:#includestdio.hmain()int x;scanf(“%d“,&x);if(x=3);elseif(x!=10)printf(“%d/n“,x);程序运行时,输入的值在哪个范围才会有输出结果( )。(分数:1.00)A.不等于 10的整数B.大于 3且不等 10的整数C.大于 3或等于 10的整数D.小于 3的整数34.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下列属于应用软件的是( )。(分数:1.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序35.某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是( )。(分数:

    16、1.00)A.10B.8C.6D.436.若函数中有定义语句“int k;”,则( )。(分数:1.00)A.系统将自动给 k赋初值 0B.这时 k中的值无定义C.系统将 A动给 k赋初值-1D.这时 k中无任何值37.设函数中有整型变量 n,为保证其在未赋初值的情况下初值为 0,应选择存储类别是( )。(分数:1.00)A.autoB.registerC.staticD.auto或 register38.下列函数按每行 8个输出数组中的数据void fun(int*w,int n)int i;for(i=0;in;i+)_printf(“%d“,wi);printf(“/n“)下画线处应填入

    17、的语句是( )。(分数:1.00)A.if(i/8=0)printf(“/n“);B.if(i/8=0)continue;C.if(i%8=0)printf(“/n“);D.if(i%8=0)continue;39.有下列程序:#includestdio.hmain()int a=1,b=2,c=3,d=0;if(a=1&b+=2)if(b!=2|c-!=3)printf(“%d,%d,%d/n“,a,b,c);else printf(“%d,%d,%d/n“,a,b,c);else printf(“%d,%d,%d/n“,a,b,c);程序运行后的输出结果是( )。(分数:1.00)A.1,

    18、2,3B.1,3,2C.1,3,3D.3,2,140.下列叙述中正确的是( )。(分数:1.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构二、填空题(总题数:15,分数:60.00)41.假设用一长度为 50的数组(数组元素的下标从 0到 49)作为栈的存储空间,栈底指针 bottom指向栈底元素,栈顶指针 top指向栈顶元素,如果 bottom=49,top=30(数组下标),则栈中具有 1 个元素。(分数:4.00)填空项 1:_42.软件测试可以分为白盒测试和黑盒测试。基本路径测试属于

    19、1 测试。(分数:4.00)填空项 1:_43.符合结构化原则的三种基本控制结构是:选择结构、循环结构和 1。(分数:4.00)填空项 1:_44.数据库系统的核心是 1。(分数:4.00)填空项 1:_45.在 E-R图中图形包括矩形框、菱形框、椭网框。其中表示实体联系的是 1 框。(分数:4.00)填空项 1:_46.表达式(int)(double)(5/21+2.5)的值是 1。(分数:4.00)填空项 1:_47.若变量 x、y 已定义为 int类型,X 的值为 99,y 的值为 9,请将输出语句“printf( 1,x/y):”补充完整,其输出的计算结果形式为:x/y=11。(分数:

    20、4.00)填空项 1:_48.有下列程序#includestdio.hmain()char c1,c2;scanf(“%c“&c1);while(c165|c190)scanf(“%c“,&c1);c2=c1+32:printf(“%c,%c/n“,c1,c2);程序运行输入 65回车后,能否输出结果、结束运行(请回答能或不能)_。(分数:4.00)填空项 1:_49.下列程序运行后的输出结果是_。#includestdio.hmain()int k=1,s=0;doif(k%2)!=0)continue;s+=k;k+;whiIe(k10);printf(“s=%d/n“,s);(分数:4.

    21、00)填空项 1:_50.下列程序运行时,若输入 1abcdef2df回车,输出结果为_。#includestdio.hmain()char a=0,ch;while(ch=getchar()!=/n)if(a%2!=0&(ch=a&ch=z)ch=ch-a+A:a+;putchar(ch);printf(“/n“);(分数:4.00)填空项 1:_51.有下列程序,程序执行后输出结果是_。#includestdio.hmain()a0=ai;main()int a10=10,9,8,7,6,5,4,3,2,1,i;for(i=2;i=0;i-)fun(&ai);for(i=0;i10;i+)

    22、printf(“%d“,ai);printf(“/n“)(分数:4.00)填空项 1:_52.请将下列程序中的函数声明语句补充完整。#includestdio.hint_;main()int x,y(*p)( );scanf(“%d%d“,&x,&y);p=max;printf(“%d/n“,(*p)(x,y);mt max(int a,int b)return(ab?a:b);(分数:4.00)填空项 1:_53.下列程序用来判断指定文件是否能正常打开,请填空。#includestdio.hmain()FILE*fp;if(fp=fopen(“test.txt“,“r“)=_)prinff(

    23、“文件打开成功!/n“);elseprintf(“未能打开文件!/n“);(分数:4.00)填空项 1:_54.下列程序的运行结果为_。#includestdio.h#includestdio.hstruct Aint a;char b10;double c;void f(struct A*t):main()struct A a=1001,“ZhangDa“,1098.0;f(&a);printf(“%d,%s,%6.1f/n“,a.a,a.b,a.c);void f(struct A*t)strcpy(t-b,“ChangRong“);(分数:4.00)填空项 1:_55.下列程序把三个 N

    24、ODETYPE型的变量链接成一个简单的链表,并在 while循环中输出链表结点数据域中的数据,请填空。#includestdio.hstruct nodeint data;struct node*next;typede f struct node NODETYPE;main()NODETYPE a,b,c*h,*p; a.data=10; b.data=20; c.data=30;h=&a;a.next=&b;b.next=&c;c.next=/0;p=h;while(p)printf(“%d,“,p-data);_;printf(“/n“):(分数:4.00)填空项 1:_二级 C语言笔试-

    25、173 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列选项中正确的语句是( )。(分数:1.00)A.chars;s=“BOOK!“;B.char*s;s=“BOOK!“;C.chars10;s=“BOOK“;D.char*s;s=“BOOK!“; 解析:解析 在选项 D中,字符指针 s指向字符串常量 BOOK!。故选项 D正确。2.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是( )。(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性 C.耦合性是指一个模块内

    26、部各个元素间彼此结合接的紧密程度D.内聚性是指模块间互相连接的紧密程度解析:解析 耦合是指模块间相互连接的紧密程度,内聚性是指在一个模块内部各个元素间彼此之间结合的紧密程序。高内聚、低耦合有利于模块的独立性。3.下列排序方法中,最坏情况下比较次数最少的是( )。(分数:1.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序 解析:解析 本题考查排序的比较次数,冒泡排序、简单选择排序和直接插入排序在最坏的情况下比较次数为 n(n-1)/2。而堆排序法在最坏的情况下需要比较的次数为 nlog2n。4.有下列程序:#includestdio.hmain()int a=5,b=1,t;t=(

    27、a2)|b;printf(“%d/n“,t);程序运行后的输出结果是( )。(分数:1.00)A.21 B.11C.6D.1解析:解析 本题考查移位运算符。在程序中对 5逻辑左移 2位,其值扩大 4倍等于 20,然后再 1位与运算,其值等于 21。5.有下列程序:#includestdio.hmain()FILE*f;f=fopen(“filea.txt“,“w“);fprintf(f,“abc“);fclose(f);若文本文件 filea.txt中原有内容 hello,则运行以上程序后,文件 filea.txt中的内容为( )。(分数:1.00)A.helloabcB.abcloC.abe

    28、 D.abchello解析:解析 把字符串 abc以只写的方式写入到文件 filea.txt中,覆盖掉原有的字符串 hello。6.设有宏定义:#define IsDIV(k,n)(k%n=1?1:0)且变量 m已正确定义并赋值,则宏调用:IsDIV(In,5)&IsDIV(m,7)为真时所要表达的是( )。(分数:1.00)A.判断 m是否能被 5或者 7整除B.判断 m是否能被 5和 7整除C.判断 m被 5或者 7除是否余 1D.判断 m被 5和 7除是否都余 1 解析:解析 本题考查宏定义,宏定义 IsDIV(k,n)的意思是如果 k对 n求模的余数为 1,其值等于 1,否则其值等于

    29、0。本题中宏调用表达式是两个宏调用之间的逻辑与运算,所以选项 D正确。7.若有定义语句“double x,t,*px,*py;”执行了“px=&x;py=&y;”后,正确的输入语句是( )。(分数:1.00)A.scanf(“%f%f“,x,y);B.scanf(“%f%f“&x,&y);C.scan(“%1f%1e“,px,py); D.scanf(“%1f%1f“x,y);解析:解析 此题主要考查输入函数的格式字符,1f 和 k表示以带小数点的数学形式或指数形式输入浮点数。8.有下列程序:#includestdio.hmain()int a1,a2char c1,c2;scanf(“%d%

    30、c%d%c“,&a1,&c1,&a2,&c2);printf(“%d%c%d%c“,a1,c1,a2,c2);若想通过键盘输入,使得 a1的值为 12,a2 的值为 34,c1 的值为字符 a,c2 的值为字符 b,程序输出结果是“12,a,34,b”则正确输入格式是(以下代表空格,CR代表回车)( )。(分数:1.00)A.12a36bCR B.12a34bCRC.12,a,34,bCRD.12a34bCR解析:解析 从程序的输入格式控制方法判断,输入时各变量之间没有分隔符,当输入相应的变量对应的值时,相应的变量能够得到对应的值,可以输出要求的结束。9.下列是 if浯句的基本形式:if(表达

    31、式)语句其中“表达式”( )。(分数:1.00)A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式 解析:解析 在 C语言中 if关键字后的一对圆括号中的表达式可以是 C语言中任意合法的表达式。10.有下列程序:#includestdio.hvoid fun(char*s)while(*s)if(*s%2=0)printf(“%c“,*s);s+;main()char a=“good“);fun(a);printf(“/n“);注意:字母 a的 ASCII码值为 97,程序运行后的输出结果是( )。(分数:1.00)A.d B.goC.godD.

    32、good解析:解析 在本题中,子函数 fun(char*s)的功能是如果*s 的 ASCII值是偶数,则输出*s,主函数中当实参的值为 good时,g 的 ASCII值是 103,字母 o的 ASCII值是 111,字母 d的 ASCII的值是 100,只有字母 d的 ASCII的值是偶数,所以输出字母 d。11.下列叙述中错误的是( )。(分数:1.00)A.软件测试的目的是发现错误并改正错误 B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性解析:解析 软件测试的目的是为了发现错误及漏洞。软件测试要严格执

    33、行测试计划。程序调式通常也称 Debug,对被调试的程序进行“错误”定位是程序调试的必要步骤。12.数据库应用系统中的核心问题是( )。(分数:1.00)A.数据库设计 B.数据库系统设计C.数据库维护D.数据库管理员培训解析:解析 数据库设计的目的是设计一个能满足用户要求、性能良好的数据库。所以数据库应用系统的核心是数据库设计。13.下列程序段中的变量已正确定义:for(i=0:i4;i+,i+)for(k=1;k3;k+);printf(“*“);程序段的输出结果是( )。(分数:1.00)A.*B.*C.*D.* 解析:解析 本题中第二个 for循环语句的后面有一个分号,所以两个 for

    34、循环语句的执行语句为空。当两个 for循环语句执行完后,再执行 printf语句输出一个星号。所以正确答案为选项 D。14.设有定义“char s8;int i=0;”,下列不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是( )。(分数:1.00)A.gets(s);B.while(si+=getchar()!=/n);si=/0;C.scanf(“%s“,s); D.doscanf(“%c“,&si);while(si+!=/n);si=/0解析:解析 在 scanf()输入函数中,格式字符 s的作用是输入一个字符串,直到遇到空格结束。所以选项 C不能输入包含空格的字

    35、符串。正确答案应该为选项 C。15.下列程序段的输出结果是( )。int x=12;double y=3.141593;printf(“%d%8.6f“,x,y);(分数:1.00)A.123.141593 B.123.141593C.12,3.141593D.123.1415930解析:解析 根据输出函数 printf中对输出数值格式的要求,第一个数和第二个数之间没有空格或分隔号,因而此题答案为选项 A。16.下列选项合法的标识符是( )。(分数:1.00)A.1_1B.1-1C._11 D.1_解析:解析 C 语言中标识符命中的规则是:标识符只能由字母、数字和下画线组成,第一个字符必须为字

    36、母或下画线。所以选项 C正确。17.将 E-R图转换为关系模式时,实体和联系都可以表示为( )。(分数:1.00)A.属性B.键C.关系 D.域解析:解析 在 C语言中,将 E-R图转换为关系模式时,实体和联系都可以表示为关系。18.有下列程序:#includestdio.hint b=2;int fun(int*k)b=*k+b;returt,(b);main()int a10=1,2,3,4,5,6,7,8),i;for(i=2;i4;i+)b=fun(&ai)+b;printf(“%d“,b);printf(“/n“);程序运行后的输出结果是( )。(分数:1.00)A.10 12B.8

    37、 10C.10 28 D.10 16解析:解析 在程序中子函数 fun(int*k)的作用是给静态全局变量加上形参*k 的值。在主函数中进行第一次 for循环时,fun(&a2)的返回值为 5,所以 5+5=10,因而输出结果为 10,第二次 for循环执行时,fun(&a3)的返回值为 14,所以 14+14=28。19.有下列程序:#includestdio.h#define PT 3.5;#define S(x)PT*x*x;main()int a=1,b=2;printf(“%4.1f/n“,S(a+b);程序运行后的输出结果是( )。(分数:1.00)A.14.0B.31.5C.7.

    38、5D.程序有错无输出结果 解析:解析 这个程序有错误不能通过编译。#define 宏定义后不可有分号;用分号隔开后,“int a;”只定义了 a,b 要重新定义。20.设有定义“int x=2;”,下列表达式中,值不为 6的是( )。(分数:1.00)A.x*=x+1B.x+,2*xC.x*=(1+x)D.2*x,x+=2 解析:解析 本题主要考查了复合运算符“*=”和逗号表达式如何正确的求值。逗号表达式的作用是用逗号将表达式连接起来,其有效值为最后一个表达式的值。其运算的结合性从左到右进行运算,选项 D是一个逗号表达式,其值为 4。21.设变量已正确定义,下列不能统计出一行中输入字符个数(不

    39、包含回车符)的程序段是( )。(分数:1.00)A.n=0;while(ch=getchar( )!=/n)n+;B.n=0;while(getchar( )!=/n)n+;C.for(n=0;getchar( )!=n;n+);D.n=0;for(ch=getchar( );ch!=/n;n+); 解析:解析 本题中,第一条语句对变量 n赋初值时为 0,在 for循环中,从 getchar()函数得到一个输入的字符,然后判断这个字符是否为回车换行符,如果不是则变量 n加 1,而在程序运行时,每次输入时是一个字符串,而不是一个字符,因而 for循环语句得不到正确的执行,所以不能够统计出一行中字

    40、符的个数。所以正确答案为选项 D。22.有下列程序:#includestdio.hvoid fun(int*a,int*b)int*c;c=a;a=b;b=c;main()int x=3,y=5,*p=&x,*q=&y;fun(p,q);printf(“%d,%d,“,*p,*q);fun(&x,&y);printf(“%d,%d/n“,*p,*q)程序运行后的输出结果是( )。(分数:1.00)A.3,5,5,3B.3,5,3,5 C.5,3,3,5D.5,3,5,3解析:解析 本题子函数 fun(int*a,int*b)调用的功能是交换形参 a,b 的值,在主函数中调子函数fun(p,q)

    41、和 fun(&x,&y)后,实参 p,q 和&x,&y 的值之间并没有发生交换,所以程序输出的结果为3,5,3,5。23.有下列程序:#includestdio.hvoid f(int*p,int*q)main()int m=1,n=2,*r=&m;f(r,&n);printf(“%d,%d“,m,n);void f(int*p,int*q)p=p+1;*q=*q+1;程序运行后的输出结果是( )。(分数:1.00)A.1,3 B.2,3C.1,4D.1,2解析:解析 本题中子函数 f(int*p,int*q)的功能是对指针 p的值加 1,*q 的值加 1。主函数中调用子函数 f(r,&n)时

    42、,子函数的执行结果是 r值加 1,n 的值加 1。而 m的值并没有发生变化,最后程序输出的结果为 1,3。所以正确答案为选项 A。24.有下列程序:#includestdio.hmain()char*a=“abcd“,“ef“,“gh“,“ijk“;int i;for(i=0;i4;i+)printf(“%c“,*ai);程序运行后的输出结果是( )。(分数:1.00)A.aegi B.dfhkC.abcdD.abcdefghijk解析:解析 *a表示一个字符串数组,for 循环的作用是输出字符串数组中每一个字符串的第一个字符。所以正确答案为选项 A。25.若有下列定义int x10,*pt=

    43、x;则埘 x数组元素的正确引用是( )。(分数:1.00)A.*&x10B.*(x+3) C.*(pt+10)D.pt+3解析:解析 在 C语言中,数组名是一个存放地址值的指针变量名,其地址值是数组第一个元素的地址,也是数组所占一串连续存储单元的起始地址。因为数组的下标是从 0开始的,所以选项 B中,x+3 表示的数组 x10中的第 4个元素的地址,在其前面加上星号,表示是数组 x10中的第 4个元素中的值。所以正确答案为选项 B。选项 A、C 的地址范围超出级数 x10中元素的地址范围,选项 D表示的是地址值。26.支持子程序调用的数据结构是( )。(分数:1.00)A.栈 B.树C.队列D

    44、.二叉树解析:解析 根据栈的定义,栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,主函数会保持当前状态,然后转去执行子函数,把子函数的运行结果返回到主函数,主函数继续向下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。27.有两个关系 R、S 如下:(分数:1.00)A.B. C.D.解析:解析 本题考查关系的运算,一个关系 R通过投影运算后仍为一个关系 R,R从 R指定关系的属性(字段)集合中选取部分属性组成同类的一个新关系。选择运算主要是对关系 R中选择由满足逻辑条件的元组所组成的一个新关系,所以题中关系 S是由 R投影所得。28.下列选项中,能用做数据常量的是( )

    45、。(分数:1.00)A.o115B.o118C.1.5e1.5D.115L 解析:解析 选项 A的第一个字母是 o而不是数字 0,所以不构成数值常量。选项 B中,8 不是八进制数字,八进制数为 O到 7;选项 C中字母 e后面的指数是小数而非整数,不合法,不是一个合法的指数形式的数值常量。在选项 D中,可以在整型常量的后面加一个字母 L,表示这个常量在内存中占 4字节。29.有下列程序:#includestdio.hint f(int x,int y)return(y-x)*x);)main()int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c);printf(“%d/n“,

    46、d);程序运行后的输出结果是( )。(分数:1.00)A.10B.9 C.8D.7解析:解析 在 C语言中子函数 f(int x,int y)的功能是计算 y减去 x的差与 x之积。所以在主函数中,调用 f(a,b)的值等于 3,调用 f(a,c)的值等于 6,然后再调用 f(3,6)的值等于 9,所以正确答案为选项 B。30.有下列程序:#includestdio.hstruct ordint x,y;)dt2=1,2,3,4;main()struct ord*p=dt;printf(“%d,“,+p-x);printf(“%d,“,+p-y);程序的运行结果是( )。(分数:1.00)A.

    47、1,2B.2,3 C.3,4D.4,1解析:解析 在本题中结构体成员访问运算符-的优先级高于+算术运算符,所以表达式+px 的计算过程是首先取出结构体 dt0的成员变量 x的值 1,然后再对其值加 1,得到 2输出。表达式+p-y 的计算过程是首先取出结构体 dt0的成员变量 y的值 2,然后再对其值加 1,得到 3输出。31.有下列程序:#includestdio.hmain()char*s=“ABC“;doprintf(“%d“,*s%10);s+;while(*s);注意:字母 A的 ASCII码值为 65。程序运行后的输出结果是( )。(分数:1.00)A.5670B.656667C.567 D.ABC解析:解析 本题考查 do while语句,至少执行一次循环体,依次输出 ABC这三个字母的 ASCII值对10求模的余数,字母 A的 ASCII值对 10求模的余数为 5,字母 B的 ASCII值对 10求模的余数为


    注意事项

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




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

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

    收起
    展开