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

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

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

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

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

    1、二级 C 语言笔试-362 及答案解析(总分:109.00,做题时间:90 分钟)一、选择题(总题数:50,分数:73.00)1.计算机的软件系统一般分为 ( )A) 系统软件、应用软件与各种字处理软件B) 操作系统、用户软件与管理软件C) 系统软件与应用软件D) 操作系统、实时系统与分的系统(分数:1.00)A.B.C.D.2.为了避免在嵌套的条件语句 if-else 中产生二义性,C 语言中规定的 if-else 配对原则是_。A) else 子句与缩排位置相同的 if 配对B) else 子句与其之前最近的未被配对的 if 配对C) else 子句与其之后最近的 if 配对D) else

    2、 子句与同一行上的 if 配对(分数:1.00)A.B.C.D.3.以下不正确的转义字符是( )。 A) / B) /t C) /n D) 088(分数:1.00)A.B.C.D.4.有以下程序段int k=0, a=1, b=2, c=3;k=ab ? b:a; k=kc ? c:k;执行该程序段后,k 的值是A) 3 B) 2 C) 1 D) 0(分数:1.00)A.B.C.D.5.设函数 fun 的定义形式为:void funlchar ch, float x)则以下对函数 fun 的调用语句中,正确的是( )。A) fun (“abc“, 30); B) t=fun(D, 16.5);

    3、C) fun(65, 2.8); D) fun(32, 32);(分数:2.00)A.B.C.D.6.在 C 语言中,运算对象必须是整型数的运算符是A) % B) / C) %和/ D) *(分数:1.00)A.B.C.D.7.以下程序的输出结果是 ( )fun (int x,int y, int z)z=x * xy * y;main( )int a31;fun(5,2,a);print(“%d“,a);A) 0B) 29C) 31D) 无定值(分数:1.00)A.B.C.D.8.设函数 fun 的定义形式为void fun(char ch, float x) 则以下对函九 fun 的调节器

    4、用语句中,正确是A) fun(“abc“,3.0); B) t=fun(D,16.5);C) fun(65,2.8): D) fun(32,32);(分数:1.00)A.B.C.D.9.软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需求评审和( )。 A) 阶段性报告 B) 需求分析 C) 需求总结 D) 都不正确(分数:2.00)A.B.C.D.10.支持子程序调用的数据结构是A) 栈 B) 树 C) 队列 D) 二叉树(分数:2.00)A.B.C.D.11.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5 的值的函数 f,正确的宏定义语

    5、句为( )。A) #definef(x)5*x*x+5*x+5 B) #definef5*x*x+5*x+5C) #definef(a)(5*a*a+5*a+5) D) #define(5*x*x+5*x+5)f(x)(分数:2.00)A.B.C.D.12.有以下程序段:typedef struct node(int data;struct node*next;)*NODE;NODE P;以下叙述中正确的是_。A) P 是指向 struct node 结构变量的指针的指针B) NODE p;语句出错C) P 是指向 struct node 结构变量的指针D) P 是 struct node 结

    6、构变量(分数:2.00)A.B.C.D.13.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填 _。struct linkchar data;_;node;(分数:2.00)A.B.C.D.14.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)t=v;V=W;W=t;main()int x=1,y=3,z=2;if(xy) f(x,y);else if(yz) f(y,z);else f(x,z);printf(“%d,%d%d/n“,x,y,Z);执行后输出结果是( )。A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1(分数:

    7、1.00)A.B.C.D.16.有以下程序main()char ch=“uvwxyz“,*pc;pc=ch; printf(“%c/n“,*(pc+5);程序运行后的输出结果是_。(A) z(B) 0(C) 元素 ch5地址(D) 字符 y 的地址(分数:2.00)A.B.C.D.17.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是A) 数组 a 和 b 的长度相同 B) a 数组长度小于 b 数组长度C) a 数组长度大于 b 数组长度 D) 上述说法都不对(分数:1.00)A.B.C.D.18.下列函数的功能是fun(char *Da,char *b)while(

    8、*b=*a)!=/0) a+;b+;A) 将 a 所指字符串赋给 b 所指空间B) 使指针 b 指向 a 所指字符串C) 将 a 所指字符串和 b 所指字符串进行比较D) 检查 a 和 b 所指字符串中是否有/0(分数:2.00)A.B.C.D.19.有如下程序main()char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0; j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是A) 69825 B) 63825 C) 6385 D)

    9、693825(分数:2.00)A.B.C.D.20.下面程序的运行结果是_。main()char ch7=“65ab21“;int i,s=0;for(i=0;chi=“0B) scanf(“%d %d %d“,C) scanf(“%d,%d,%d“,D) scanf(“i=%d,j=%d,k=%d“,(分数:2.00)A.B.C.D.23.C 语言中,系统的标准输入文件是指A) 键盘 B) 显示器 C) 软盘 D) 硬盘(分数:1.00)A.B.C.D.24.以下错误的定义语句是( )。A) int X3=0,1,1,2,3; B) int X43=1,2,3,1,2,3,1,2,31,2,

    10、3C) int X4=1,2,3,1,2,3,1,2,3,1,2,3; D) int X3=1,2,3,4;(分数:1.00)A.B.C.D.25.在长度为 64 的有序线性表中进行顺序查找,最坏情况下需要比较的次数为( )。A) 63 B) 64 C) 6 D) 7(分数:2.00)A.B.C.D.26.下列程序的运行结果是( )。main()int x=1,y=3,a=0;while(x+!=(y-=1)a+=1;if(yx)break;printf(“%d,%d,%d/n“,x,y,a);A) 2,3,2 B) 2,3,1 C) 1,3,3 D) 3,1,2(分数:2.00)A.B.C.

    11、D.27.下列叙述中正确的是( )。A) break 语句只能用于 switch 语句体中B) continue 语句的作用是使程序的执行流程跳出包含它的所有循环C) break 语句只能用在循环体内和 switch 语句体内D) 在循环体内使用 break 语句和 continue 语句的作用相同(分数:2.00)A.B.C.D.28.有以下程序:#include stdio.hmain()unsigned char a,b;a=413;b=4printf(“%d%d/n“,a,b);执行后的输出结果是( )。A) 7 0 B) 0 7 C) 1 1 D) 43 0(分数:2.00)A.B.

    12、C.D.29.若有以下定义语句:double a5,*pa; int i0;对 a 数组元素错误的引用是 ( )A) ai B) a5 C) p4 D) pi(分数:1.00)A.B.C.D.30.以下正确的程序段是A) char str1 =“12345“,str2 =“abcdef“;B) char str10,*st=“abcde“;strcat(str,st);C) char str10=“ “。*st=“abcde“;strcat(str,st);D) char*st1=“12345“,*st2=“abcde“;strcat(st1,st2);(分数:1.00)A.B.C.D.31.

    13、设有定义语句:char b=/123;则变量 b 包括( )。A) 4 个字符 B) 3 个字符 C) 2 个字符 D) 一个字符(分数:1.00)A.B.C.D.32.以下选项中与 if(a=1)a=b;else a+;语句功能不同的 switch 语句是( )、A) switch(a)case 1:a=b;break;default:a+;B) switch(a=1)case 0:a=b; break;case 1:a+;C) switch(a)default:a+;break;case 1:a=b;D) switch(a=1)case 1:a=b;break;case 0:a+;(分数:

    14、1.00)A.B.C.D.33.已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=142;则以下不符合 c 语言语法的表达式是_。A) x%(-3) B) w+=-2C) k=(a=2,b=3,a+b) D) a+=a-=(b=4)*(a=3)(分数:1.00)A.B.C.D.34.有以下程序段main( )int a=5,*b,*c;c= b=程序在执行了 c=b=语句后,表达式:*c 的值是A)变量 a 的地址B)变量 b 中的值C)变量 a 中的值D)变量 b 的地址(分数:1.00)A.B.C.D.35.设有定义:char *c;,以下

    15、选项中能够使字符型指针 c 正确指向一个字符串的是A) char str=“string“; c=str; B) scanf(“%s“, c);C) c=getchar(); D) *c=“string“;(分数:2.00)A.B.C.D.36.若有定义语句:int a23,*p3;,则以下语句中正确的是_。A) p=a; B) p0=a;C) p0=a12;D) p1=a;(分数:2.00)A.B.C.D.37.有以下程序main()int i,s=0,t=1,2,3,4,5,6,7,8,9 ;for(i=0;i9;i=2) s=*(ti);printf(“%d/n“,s);A) 45 B)

    16、 20 C) 25 D) 36(分数:1.00)A.B.C.D.38.下面程序的输出是_。main()int k=11;printf(“k=%d,k=%o,k=%x/n“,kkk);A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=B(分数:2.00)A.B.C.D.39.有下列程序:#includestdio.hvoid fun(int*a,int*b)int*c;c=a;a=b;b=c;main()int x=3,y=5,*p=i6;i+)printf(“%2d“,*(p+);B) for(i=0;i

    17、6;i+)printf(“%2d“,*(p+i);C) for(i=0;i6;i+)printf(“%2d“,*p+);D) for(i=0;i6;i+)printf(“%2d“,(*p)+);(分数:2.00)A.B.C.D.41.下列二维数组初始化语句中,不正确的是( )。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.42.对关系 S 和关系 R 进行集合运算,结果中既包含 S 中元组也包含 R 中元组,这种集合运

    18、算称为( )。A) 并运算 B) 交运算 C) 差运算 D) 积运算(分数:2.00)A.B.C.D.43.有以下程序main()int a=1,b;for(b=1;b10;b+)if(a8)break;if(a%2=1)a+=5;continue;a-=3;printf(“%d/n“,b);程序运行后的输出结果是A) 3 B) 4 C) 5 D) 6(分数:1.00)A.B.C.D.44.设有下列二叉树:(分数:1.00)A.B.C.D.45.循环链表的主要优点是_。A) 不再需要头指针了B) 己知某个结点的位置后,能够容易找到它的直接前驱C) 在进行插入、删除运算时,能更好地保证链表不断开

    19、D) 从表中任一结点出发都能扫描到整个链表(分数:2.00)A.B.C.D.46.有以下程序:main()int a, b, d=25;a=d/10%9; b=aprintf(“% d, % d/n“, a, b) ;程序运行后的输出结果是_。A) 6, 1 B) 2, 1 C) 6, 0 (D) 2, 0(分数:1.00)A.B.C.D.47.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是A) 提高耦合性、降低内聚性有利于提高模块的独立性B) 降低耦合性、提高内聚性有利于提高模块的独立性C) 耦合性是指一个模块内部各个元素间彼此结合的紧密程度D) 内聚性是指模块间互相连接的紧

    20、密程度(分数:2.00)A.B.C.D.48.表达式(double)(203)的值为 ( )A) 6 B) 6.0 C) 2 D) 3(分数:1.00)A.B.C.D.49.设 x,y 均是 int 类型变量,则以下不正确的函数调用为_。A) getchar(); B) putchar(/108);C) scanf(“%d%*2d%d“, D) putchar(/);(分数:1.00)A.B.C.D.50.下列有关数据库的描述,正确的是A) 数据库是一个 DBF 文件 B) 数据库是一个关系C) 数据库是一个结构化的数据集合 D) 数据库是一组文件(分数:2.00)A.B.C.D.二、填空题(

    21、总题数:20,分数:36.00)51.有以下程序int fa(int x) return x*x;int fb(int x)return x*x*x;int f(int (*f1)(),int(*f2)(),int x)return f2(x)-f1(x);main()int i; i=f(fa,fb,2);printf(“%d/n“i; 程序运行后的输出结果是_。(分数:1.00)填空项 1:_52.下列程序可以判断输入的年份是不是闰年。#include main()int_,leap;scanf(“%d“,if(year%4)leap=0;else if(year%lO0)_;else i

    22、f(year%400)leap=0;elseleap=1;if(_)printf(“%d 年是闰年“,year);elseprintf (“ %d 年不是闰年/n“, year);(分数:4.00)填空项 1:_53.关系表达式 xyz,用 C 语言的表达式为 1。(分数:1.00)填空项 1:_54.下面的 if 语句与 y=(x=10)?3*x-11:(x1)?x:2*x-1;的功能相同,请补充完整。if(_)if(_)y=2*x-1;else y=x;else y=3*x-11;(分数:1.00)填空项 1:_55.以下程序运行结果是_。#includestdio.hmain()int

    23、fun();fun();fun()static int a3=0,1,2;int i;for(i=0;i3;i+)ai+=ai;for(i=0;i3;i+)printf(“%d,“,ai);printf(“/n“);(分数:1.00)填空项 1:_56.下列程序中的函数 strcpy2 ()实现字符串两次复制,即将 t 所指字符串复制两次到 s 所指内存空间中,合并形成一个新字符串。例如,若 t 所指字符串为:efgh,调用 strcpy2 后,s 所指字符串为: efghefgh。请填空。#include stdio.h#include string.hviod strcpy2(char *

    24、s,char *t)charwhile (*s=t);s=_:while(_=*p);main()char str1100=“abcd“, str2=“efgh“;strcpy2 (str1,str2); printf(“%s/n“,str1);(分数:1.00)填空项 1:_57.有以下程序:# include stdio.hmain()int d, n=1234; while(n!=0)d=n%10; n=n/10; printf(“%d“, d); 程序运行后的输出结果是_。(分数:2.00)填空项 1:_58.下列表达式用于判断 y 是否为闰年。闰年的判断条件是:年号能被 4 整除但不

    25、能被 100 整除或年号能被 400 整除,请填空 1。(分数:2.00)填空项 1:_59.若有下列定义和语句:char*s1=“12345“,*s2=“1234“;printf(“%d/n“,strlen(strcpy(s1,s2);则输出结果为_。(分数:2.00)填空项 1:_60.软件维护活动包括以下几类:改正性维护、适应性维护、 1 维护和预防性维护。(分数:2.00)填空项 1:_61.设变量 a 和 b 已正确定义并赋初值。请写出与 a-=a+b 等价的赋值表达式 1。(分数:2.00)填空项 1:_62.设有定义:FILE*fw;,请将以下打开文件的语句补充完整,以便可以向文

    26、本文件 read metxt 的最后续写内容。fw=fopen(“readme.txt“,“_“)(分数:2.00)填空项 1:_63.按“先进后出”原则组织数据的数据结构是 1。(分数:2.00)填空项 1:_64.以下程序运行后的输出结果是_。#include stdio.hmain()int i,m=0,n=0,k=0;for(i=9;i=11;i+)switch(i/10)case 0: m+;n+;break;case 10: n+;break;default: k+;n+;printf(“%d%d%d/n“,m,n,k);(分数:2.00)填空项 1:_65.函数 main()的功

    27、能是:在带头结点的单链表中查找数据域中值最小的结点。请填空。#includestdio.hstruct nodeint data;struct node * next;int main(struct node * first)/*指针 first 为链表头指针*/struct node * p;int m;p=first-next;m=p-data;p=p-next;for(; p!=NULL;p=_)if(p-datam)m=p-data;return m;(分数:2.00)填空项 1:_66.用树型结构表示实体类型及实体间联系的数据模型称为 1。(分数:2.00)填空项 1:_67.有下列

    28、程序,功能是把输入的+进制长整型数以+六进制的形式输出,完成程序#include“stdio.h“main()char b17=“0123456789ABCDEF“;int c50,d,i=0,base=16;long n;scanf(“%1d“,a+=(a=8);printf(“%d/n“,A) ;(分数:2.00)填空项 1:_69.以下程序的运行结果是_。#include stdio.hlong fib(int g)switch(g)case 0:return 0;case 1:case 2:return 1;return(fib(g-1) +fib(g-2);main( )long k

    29、;k=fib(5);printf(“k=%51d/n“,k);(分数:2.00)填空项 1:_70.下面程序的功能是将一个字符串 str 的内容倒序,请填空。#inelude stdioh#include strinshmain()int i,j,_;charstr=“1234567“;for(i=0,j=strlen(str)_;ij; i+,j-)k=stri;stri=strj;strj=k;printf(“%s/n“,str);(分数:2.00)填空项 1:_二级 C 语言笔试-362 答案解析(总分:109.00,做题时间:90 分钟)一、选择题(总题数:50,分数:73.00)1.

    30、计算机的软件系统一般分为 ( )A) 系统软件、应用软件与各种字处理软件B) 操作系统、用户软件与管理软件C) 系统软件与应用软件D) 操作系统、实时系统与分的系统(分数:1.00)A.B.C. D.解析:2.为了避免在嵌套的条件语句 if-else 中产生二义性,C 语言中规定的 if-else 配对原则是_。A) else 子句与缩排位置相同的 if 配对B) else 子句与其之前最近的未被配对的 if 配对C) else 子句与其之后最近的 if 配对D) else 子句与同一行上的 if 配对(分数:1.00)A.B. C.D.解析:3.以下不正确的转义字符是( )。 A) / B)

    31、 /t C) /n D) 088(分数:1.00)A.B.C.D. 解析:解析 /是反斜线转义字符;/t是水平跳格转义字符;/n是换行转义字符;C 语言中没有规定088是转义字符。4.有以下程序段int k=0, a=1, b=2, c=3;k=ab ? b:a; k=kc ? c:k;执行该程序段后,k 的值是A) 3 B) 2 C) 1 D) 0(分数:1.00)A.B. C.D.解析:解析 本题考查的知识点是条件表达式条件运算符?:是 C 语言中唯一的三目运算符,它的规则是先计算左边运算分量,如果为“真”(非 0),则返回中间运算分量的值,否则返回右边运算分量的值。本题中因为 ab 为“

    32、真”,所以第 1 个条件表达式的值为 b 的值 2,所以 k=2。然后又因为 kc 为“假,所以第 2 个表达式的值为 k 的值 2。所以本题应该选择 B。5.设函数 fun 的定义形式为:void funlchar ch, float x)则以下对函数 fun 的调用语句中,正确的是( )。A) fun (“abc“, 30); B) t=fun(D, 16.5);C) fun(65, 2.8); D) fun(32, 32);(分数:2.00)A.B.C.D. 解析:解析 本题考查了函数的定义。题目中定义的函数 fun()有两个参数,一个是字符型变量 ch,另一个是浮点型变量 x,函数类型

    33、是 void 即无返回值。选项 A)调用 fun 的第 1 个参数是字符串常量与字符变量不匹配,所以不正确。选项 B)是有返回值函数的调用形式,不正确。选项 C)的第 1 个参数是错误的字符常量,字符常量是用单引号括起来的一个字符(是转义字符可能有多个字符),故 C 也不正确。选项 D)使用两个整型常量调用 fun 这在 C 语言中是允许的。因为整型到字符型可以自动转换,整型到浮点型也可以自动转换。故应该选择 D)。6.在 C 语言中,运算对象必须是整型数的运算符是A) % B) / C) %和/ D) *(分数:1.00)A. B.C.D.解析:解析 在 C 语言中,“%”运算符两侧的运算数

    34、必须是整型。7.以下程序的输出结果是 ( )fun (int x,int y, int z)z=x * xy * y;main( )int a31;fun(5,2,a);print(“%d“,a);A) 0B) 29C) 31D) 无定值(分数:1.00)A.B.C. D.解析:8.设函数 fun 的定义形式为void fun(char ch, float x) 则以下对函九 fun 的调节器用语句中,正确是A) fun(“abc“,3.0); B) t=fun(D,16.5);C) fun(65,2.8): D) fun(32,32);(分数:1.00)A.B.C.D. 解析:解析 本题考查

    35、了函数的定义。题目中定义的函数 fun()有两个参数,一个是字符型变量 ch,另一个是浮点型变量 x,函数类型是 void 即无返回值。选项 A 调用 fun 的第 1 个参数是字符串常量与字符变量不匹配,所以不正确。选项 B 是有返回值函数的调用形式,不正确。选项 C 的第 1 个参数是错误的字符常量,字符常量是用单引号括起来的一个字符(是转义字符可能有多个字符),故也不正确。选项 D 使用两个整型常量调用 fun 这在 C 语言中是允许的。因为整型到字符型可以自动转换,整型到浮点型也可以自动转换。故应该选择 D。9.软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需

    36、求评审和( )。 A) 阶段性报告 B) 需求分析 C) 需求总结 D) 都不正确(分数:2.00)A.B. C.D.解析:解析 软件需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。 需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。 需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。 编写需求规格说明书作为需求分析的阶段成果,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。 需求评审是

    37、对需求分析阶段的工作进行复审,验证需求文档的一致性、可行性、完整性和有效性。10.支持子程序调用的数据结构是A) 栈 B) 树 C) 队列 D) 二叉树(分数:2.00)A. B.C.D.解析:解析 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。在主程序调用子程序时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点。11.#define 能作简单的替代,用宏来替代计算多项式 5*x*x+5*x+5 的值的函数 f,正确的宏定义语句为( )。A) #definef(x)5*x*x+5*x+5 B)

    38、 #definef5*x*x+5*x+5C) #definef(a)(5*a*a+5*a+5) D) #define(5*x*x+5*x+5)f(x)(分数:2.00)A.B.C. D.解析:解析 带参数宏的格式为:#define 标识符(形参表)形参表达式。其功能:预处理程序将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。12.有以下程序段:typedef struct node(int data;struct node*next;)*NODE;NODE P;以下叙述中正确的是_。A) P 是指向 struct node 结构变量的指针的指针B) NODE p;语句出错C) P 是

    39、指向 struct node 结构变量的指针D) P 是 struct node 结构变量(分数:2.00)A.B.C. D.解析:解析 本题中定义了一个指针类型的“用户类型名”NODE,通过“用户类型名”可以定义该类型的结构体变量。13.已知形成链表的存储结构如下图所示,则下述类型描述中的空白处应填 _。struct linkchar data;_;node;(分数:2.00)A.B.C.D. 解析:解析 在单向链表中,由于每个结点需要存储下个结点的地址,且下一个结点的数据类型与前个结点的数据类型完全相同,故应为 struct link *next。14.设有:int a=1,b=2,c=3

    40、,d=4,m=2,n=2;执行(m=ab)t=v;V=W;W=t;main()int x=1,y=3,z=2;if(xy) f(x,y);else if(yz) f(y,z);else f(x,z);printf(“%d,%d%d/n“,x,y,Z);执行后输出结果是( )。A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1(分数:1.00)A.B.C. D.解析:解析 C 语言规定 else 总是和离它最近的 if 语句配对。分析可以知道,。函数 f()作用是让形参v 和形参 w 的值交换。在主函数中首先定义了 3 个变量 x、y 和 z。然后再执行下面的 if-else

    41、 语句。由程序可以看出第一个 else 和第一个 if 搭配,第二个 else 和第二个 if 搭配。由于调用函数时是进行值传递的。即将实参 x、y、z 传给形参 v 和 w,以后行参和实参再无联系,故通过 if 语句调用 f()函数后,x、y 和 z 的值并没有改变。因此最后输出的 x、y 和 z 的值为 1、3 和 2,所以,4 个选项中选项 C 符合题意。16.有以下程序main()char ch=“uvwxyz“,*pc;pc=ch; printf(“%c/n“,*(pc+5);程序运行后的输出结果是_。(A) z(B) 0(C) 元素 ch5地址(D) 字符 y 的地址(分数:2.0

    42、0)A. B.C.D.解析:17.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是A) 数组 a 和 b 的长度相同 B) a 数组长度小于 b 数组长度C) a 数组长度大于 b 数组长度 D) 上述说法都不对(分数:1.00)A.B.C. D.解析:解析 a 数组存放的是字符串,系统会自动在字符串的最后加上一个“/0”,所以 a 数组的长度为 4,而 b 数组的长度为 3,故 a 数组长度大于 b 数组长度。18.下列函数的功能是fun(char *Da,char *b)while(*b=*a)!=/0) a+;b+;A) 将 a 所指字符串赋给 b 所指空间B)

    43、使指针 b 指向 a 所指字符串C) 将 a 所指字符串和 b 所指字符串进行比较D) 检查 a 和 b 所指字符串中是否有/0(分数:2.00)A. B.C.D.解析:解析 表达式*b=*a 是将 a 所指的字符赋给 b 所指的空间,然后,指针 a 和 b 依次后移,直到到达指针 a 所指字符串的结尾。19.有如下程序main()char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0; j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果

    44、是A) 69825 B) 63825 C) 6385 D) 693825(分数:2.00)A.B.C. D.解析:解析 该题稍微难一点。主要要搞清楚以下几点:定义了一个指针数组 char *p2后,程序中第一个循环 for(i=0;i2;i+)pichi;的作用,是使指针数组的 p0元素(它本身是一个指针)指向了二维数组 ch 的第一行字符串,并使指针数组的 p1元素指向二维数组 ch 的第二行字符串。这样,就使指针数组 p 和二维数组 ch 建立起了一种对应关系,以后对二维数组 ch 的某个元素的引用就有两种等价的形式:chij或 pij。对二维数组 ch 的初始化,使其第一行 ch0中存入

    45、了字符串“6937”,第二行 ch1中的内容为字符串“8254”。程序中第二个循环中的循环体 ss*10+pi j-0;的功能是这样的,每执行一次,将 s 中的值乘以 10(也即将 s 中的数值整体向左移动一位,并在空出来的个位上添一个 0),再将当前 pii中的字符量转换为相应的数字,然后把这个数字加到 s 的个位上。注意到内启循环的循环条件 pij/0是指 pij中的字符只要不是字符串结束标志/0就继续循环。语句 j+2;是使下标 j 每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p0所指向的字符串“6937”中一个隔一个地取出字符

    46、,分别是“6”和“3”,然后从 p1)所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果 s 中的值应该是 6385。20.下面程序的运行结果是_。main()char ch7=“65ab21“;int i,s=0;for(i=0;chi=“0B) scanf(“%d %d %d“,C) scanf(“%d,%d,%d“,D) scanf(“i=%d,j=%d,k=%d“,(分数:2.00)A.B.C. D.解析:解析 scanf 函数的格式控制部分中的非格式字符按原样输入,本题指出键盘输入为:1,2,3回车,各个数据之间用“,”分隔,所以 scanf 函数中应包含“,”,选项 D 中虽然包括“,”号,但是还包含非格式字符 i=、j=和 k=,正确答案为选项 C。23.C 语言中,系统的标准输入文件是指A) 键盘 B) 显示器 C) 软盘 D) 硬盘(分数:1.00)A. B.C.D.解析:解析 此题考查有关标准设备的知识。在多数 C 语言版本中,stdio.h 文件至少定义了 4 种标准设备文件,可以直接引用不必含有打开操作,包括:标


    注意事项

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




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

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

    收起
    展开