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

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

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

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

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

    1、二级 C 语言笔试-169 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下程序viod fun(int a, int b, int c)a=456; b=567; c=678; )main()int x=10, y=20, z=30;fun(x, y, z);printf(“%d, %d, %d/n“, x, y, z);输出的结果是( )。(分数:2.00)A.30,20,10B.10,20,30C.456,567,678D.678,567,4562.有以下结构说明和变量定义,指针 p、q、r 分别指向链表中的 3 个连续结点。s

    2、truct nodeint data; struct node*next; ) *p, *q, *r; 现要将 q 所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是( )。(分数:2.00)A.p-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next;3.下列程序的输出结果是( )。int f1(int x, int y)return xy? x: y; int f2(int x, int y)return xy? y: x; main()int a=4, b=3, c=5, d=2, e, f, g;e=f2(

    3、f1(a, b), f1(c, d);f=f1(f2(a, b), f2(c, d);g=a+b+c+d-e-f;printf(“%d, %d, %d/n“, e, f, g);(分数:2.00)A.4,3,7B.3,4,7C.5,2,7D.2,5,74.设有二元关系 R 和三元关系 S,下列运算合法的是( )。(分数:2.00)A.RSB.RSC.R-SD.RS5.有下列程序:main()int k=5, n=0;while(k0)switch(k)default: break;case 1: n=n+k;case 2:case 3: n+=k;k-;printf(“%d/n“, n);程序

    4、运行后的输出结果是( )。(分数:2.00)A.0B.4C.6D.76.栈和队列的共同特点是( )。(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点7.在单链表中,增加头结点的目的是( )。(分数:2.00)A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性的链式存储实现8.语句 int(*ptr)()的含义是( )。(分数:2.00)A.ptr 是一个返回值为 int 的函数B.ptr 是指向 int 型数据的指针变量C.ptr 是指向函数的指针,该函数返回一个 int 型数据D.ptr 是一个函数名,

    5、该函数的返回值是指向 int 型数据的指针9.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,下列正确的程序段是( )。(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“, ch);B.while(ch=getchar()!=N)printf(“%c“, ch);C.while(ch=getchar()=N)printf(“%c“, ch);D.while(ch=getchar()=N)printf(“%c“, ch);10.下述程序的输出结果是( )。#includestdio.hmain()im a23=1, 2,

    6、 3, 4, 5, 6, (*p)3, i;p=a;for(i=0; i3; i+)if(i2)p1i=p1i-1;elsep1i=1; printf(“%d/n“, a01+a11+a12); (分数:2.00)A.8B.7C.12D.911.设 fun()函数的定义形式为( )。void fun(char ch,float x)则下列对函数 fun 的调用语句中,正确的是(分数:1.00)_12.已知有如下结构体:struct skint a;float b;data, *p;若有 p=data, 则对 data 的成员 a 引用正确的是( )。(分数:1.00)A.(*p). dataa

    7、B.(*p). a;C.p-data. aD.data. a13.下述程序的输出结果是( )。#includestdio.hvoid main()int b6=2, 4, 6, 8, 10, 12;int *p=b,*q=p;printf(“%d,“, *(p+); printf(“%d,“, *q);(分数:1.00)A.4,4B.2,2C.4,5D.2,414.两个或两个以上模块之间联系的紧密程度称为( )。(分数:1.00)A.耦合性B.内聚性C.复杂性D.数据传输特性15.下列程序的输出结果是( )。#includestdio.hmain()int a=3, b=2, c=1;if(a

    8、b)if(b0)c=0;else c+;printf(“%d/n“, c); (分数:1.00)A.2B.0C.1D.不确定的值16.关系数据库管理系统能实现的专门关系运算包括( )。(分数:1.00)A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表17.下述程序的输出结果是( )。#includestdio.hmain()char ch25=“1234“, “5678“), *p2;int i, j, s=0;for(i=0; i2; i+)pi=chi;for(i=0: i2; i+)s=pij=0;printf(“%d“, s);(分数:1.00)A.63

    9、57B.6135C.1357D.69135718.设 a=1, b=2, c=3, d=4,则表达式:“ab?a: bb?a: cd?a: d”的结果为( )。(分数:1.00)A.4B.3C.2D.119.有以下程序:main()int a=2, 4, 6, 8, 10), y=0, X, *p;p=a1;for(x=1; x3; x+) y+=px;printf(“%d/n, y“);程序运行后的输出结果是( )。(分数:1.00)A.10B.11C.14D.1520.有以下程序:#includestdio.hStruct stuint num;char name-10;int age;

    10、void fun(struct stu *p)printf(“%s/n“, (*p). name); main()struct stu students3=9801, “Zhang“, 20, 9802, “Wang“, 19, 9803, “ Zhao“, 18fun(students+2); 输出的结果是( )。(分数:1.00)A.ZhangB.ZhaoC.WangD.1821.有以下程序:#includestdio.hint abc(int u, int v);main()int a=24, b=16, c;c=abc(a, b);printf(“%d/n“, c);int abc(i

    11、nt u, int v)int w;while(v)w=u%v; u=v; v=w; return;输出结果是( )。(分数:2.00)A.6B.7C.8D.922.以下程序的输出结果是( )。main()int a=7, b=8,*p, *q, *r;p=a; q=b;r=P; p=q; q=r;printf(“%d, %d, %d, %d/n“, *p, *q, a, b);(分数:2.00)A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,723.执行下述程序后,输出的结果是( )。#includestdio.h#define S(X)X*Xvoid main()in

    12、t a=9, k=3, m=2;a/=S(k+m)/S(k+m);printf(“%d“, a);(分数:2.00)A.1B.4C.9D.024.下列说法不正确的是( )。(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等D.调用函数时,实参与形参的类型必须一致25.有定义:“int a=2, b=3, c=4;”,则下列选项中值为 0 的表达式是( )。(分数:2.00)A.(!a=1)(!b=0)B.(ab)!c|1C.abD.a|(b+b)(c-a)26.以下能正确定义二维数组

    13、的是( )。(分数:2.00)A.int a3;B.int a3=2*3;C.int a3=;D.int a23=1, 2, 3, 4;27.下列程序的运行结果为( )。#includestdio.hmain()struct dateint year, month,day;today;printf(“%d/n“, size of(struct date);(分数:2.00)A.8B.6C.10D.1228.若有以下说明,则( )不是对 strcpy 库函数正确的涮用。strcpy 库函数用于复制一个字符串:char*str1=“abcd“, str210, *str3=“hijklmn“, *

    14、str42, *str5=“aaaa“;(分数:2.00)A.strcpy(str2, str1)B.strcpy(str3, str1)C.strcpy(str1, str2)D.strcpy(str5, str1)29.若有定义:“int a=4, b=5; float x=3.4, y=2.1;”,则下列表达式的值为( )。(float)(a+b)/2+(int)x%(int)y;(分数:2.00)A.5.5B.55C.5.500000D.55.0000030.若已包括头文件string.h且已有定义 char s118, s2=“ABCDE“和 int i,现要将字符串”ABCDE”赋

    15、给 s1,下列语句错误的是( )。(分数:2.00)A.strcpy(s1, s2)B.strcpy(s1, “ABCDE“);C.s1=“ABCDE“;D.for(i=0; i6; i+)s1i=s2i31.下列选项中不是字符常量的是( )。(分数:2.00)A./vB./x2aC.aD.“/0“32.数据的存储结构是指( )。(分数:2.00)A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据33.在位运算中,操作数每左移两位,其结果相当于( )。(分数:2.00)A.操作数乘以 2B.操作数除以 2C.操作数除以 4D

    16、.操作数乘以 434.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是( )。(分数:2.00)A.acbedB.decabC.deabcD.cedba35.以下叙述中不正确的是( )。(分数:2.00)A.在不同的函数中可以使用相同名字的变量B.函数中的形式参数是局部变量C.在一个函数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效36.有下列程序:void sort(int a, int n)int i, j, t;for(i=0; in=1; i+)for(j=i+1; jn; j+)if(aiaj)t=ai;

    17、ai=aj; aj=t; )main()int aa10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10), i;sort(aa+2, 5);for(i=0; i10; i+)printf(“%d, “, aai);printf(“/n“);程序运行后的输出结果是( )。(分数:2.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10,D.1,2,9,8,7,6,5,4,3,1037.有下列程序:main()char p=a, b, c), q=“abc“;printf(“%d%d/n“, s

    18、izeof(p), sizeof(q);程序运行后的输出结果是( )。(分数:2.00)_38.有下列程序:fun(int x, int y)static int m=0, i=2;i+=+m;m=i+x+y; return m;main()int j=1, m=1, k;k=fun(j, m); printf(“%d,“ , k); k=fun(j, m);printf(“%d/n“, k); 执行后的输出结果是( )。(分数:2.00)A.5,5B.5,11C.11,11D.11,539.以下程序的输出结果是( )。main()int i, k, a10, p3;k=5;for(i=0;

    19、i10; i+)ai=i;for(i=0; i3; i+)pi=ai*(i+1);for(i=0; i3; i+)k+=pi*2;printf(“%d/n“, k);(分数:2.00)A.20B.21C.22D.2340.下列程序的输出结果是( )。main()int a, b, d=25;a=d/10%9; b=a(-1);printf(“%d, %d/n“, a, b); (分数:2.00)A.6,1B.2,1C.6,0D.2.0二、填空题(总题数:14,分数:30.00)41.在一个容量为 32 的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共有 1 个元素

    20、。(分数:2.00)填空项 1:_42.一棵二叉树第 6 层(根结点为第一层)的结点最多为 1 个。(分数:2.00)填空项 1:_43.度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_44.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。(分数:2.00)填空项 1:_45.在面向对象的程序设计中,类描述的是具有相似性质的=组 1。(分数:2.00)填空项 1:_46.数据管理技术发展经过人工管理、文件系统和数据系统 3 个阶段,其中数据独立性最高的阶段是 1。(分数:2.00)填空项 1:_47.已有定义:“double *p

    21、;”,请写出完整的语句,利用 malloc 函数使 p 指出一个双精度型的动态存储单位 1。(分数:2.00)填空项 1:_48.若 a=1,b=2,则表达式!(x=a)|(y=b)0 的值是 1。(分数:2.00)填空项 1:_49.在循环中,continue 语句与 break 语句的区别是: 1 语句只是结束本次循环,然后进行循环的条件判定。(分数:2.00)填空项 1:_50.下列程序的运行结果是_。#define POWER(x) (x)*(x)main()int i=1; printf(“%d, %d“, POWER(i+), i);(分数:2.00)填空项 1:_51.下列程序的

    22、输出结果是_。#includestdio.hfun()static int a=0;a+=3; printf(“%d“, a); main()int cc; for(cc=1; cc5; cc+)fun();printf(“/n“);(分数:2.00)填空项 1:_设有以下程序:main()int a, b, k=4, m=8, *p1=. k, *p2=m;a=m;b=(*p1)/(*p2)+7;printf(“a=%d/n“, a);printf(“b=%d/n“, b);执行该程序后,a 的值为_,b 的值为_。(分数:4.00)填空项 1:_填空项 1:_52.以下程序运行后的输出结果

    23、是_。main()int a=0;a+=(a=8);printf(“%d/n“, a);(分数:2.00)填空项 1:_53.设有如下程序:main()int n1, n2;scanf(“%d“, n2);while(n2 !=0)n1=n2%10;n2=n2/10;printf(“%d“, n1);程序运行后,如果从键盘上输入 1298,则输出结果为_。(分数:2.00)填空项 1:_二级 C 语言笔试-169 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.有以下程序viod fun(int a, int b, int c)a=456;

    24、b=567; c=678; )main()int x=10, y=20, z=30;fun(x, y, z);printf(“%d, %d, %d/n“, x, y, z);输出的结果是( )。(分数:2.00)A.30,20,10B.10,20,30 C.456,567,678D.678,567,456解析:解析 本题考查实参与形参调用,从实参传递到形参时,只是数值的传递,调用函数中值的改变不会影响主函数中的值,因此原样输出。2.有以下结构说明和变量定义,指针 p、q、r 分别指向链表中的 3 个连续结点。struct nodeint data; struct node*next; ) *p

    25、, *q, *r; 现要将 q 所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是( )。(分数:2.00)A.p-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next; 解析:解析 本题考查链表结点的删除,q 一next 中存放的是 r 所指结点的首地址,将 r 所指结点的首地址存于 p-next 中,则实现删除 q 所指点的功能,并保持链表连续,p 所指点与 r 所指结点相连。3.下列程序的输出结果是( )。int f1(int x, int y)return xy? x: y; int f2(int x, i

    26、nt y)return xy? y: x; main()int a=4, b=3, c=5, d=2, e, f, g;e=f2(f1(a, b), f1(c, d);f=f1(f2(a, b), f2(c, d);g=a+b+c+d-e-f;printf(“%d, %d, %d/n“, e, f, g);(分数:2.00)A.4,3,7 B.3,4,7C.5,2,7D.2,5,7解析:解析 根据函数的定义可知,如果 xy 成立,则函数 f1 返回 x 的值,函数 f2 返回 y 的值。所以f1(a, b)=4, f1(c, d)=5, f2(a, b)=3, f2(c, d)=2, 故 e=

    27、f2(4, 5)=4, f=f1(3, 2)=3, g=4+3+5+2=4=3=7。4.设有二元关系 R 和三元关系 S,下列运算合法的是( )。(分数:2.00)A.RSB.RSC.R-SD.RS 解析:解析 本题给出的两个关系 R 与 S 的表结构是不同的(R 是二元关系,S 是三元关系),它们不能进行、-运算。而两个不同结构的关系是可以进行笛卡尔积()运算的。5.有下列程序:main()int k=5, n=0;while(k0)switch(k)default: break;case 1: n=n+k;case 2:case 3: n+=k;k-;printf(“%d/n“, n);程

    28、序运行后的输出结果是( )。(分数:2.00)A.0B.4C.6D.7 解析:解析 本题主要考查 while 循环语句和 switch case 语句的使用方法。其执行步骤为:k=5 时,跳出 switch 语句,然后 k 自减 1;当 k=4 时,跳出 switch 语句,然后 k 自减 1;当 k=3 时,n=n+k=0+3=3,跳出 switch 语句,然后 k 自减 1;当 k=2 时,n=n+k=3+2=5,跳出 switch 语句,然后 k 自减 1;当 k=1 时,case 1: n=n+k=5+1=6,没有 break 继续执行 ease 3;n=n+k=6+1=7,跳出 sw

    29、itch 语句,然后 k 自减 1;当 k=0 时,退出循环,所以输出结果为 7。6.栈和队列的共同特点是( )。(分数:2.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素 D.没有共同点解析:解析 栈是限定只在表尾进行插入或删除操作的线性表,因此栈是先进后出的线性表,队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,在表的后端(rear)进行插入操作,队列具有先进先出(FIFO)的特点。综上所述可知,栈和队列只允许在端点处插入和删除元素。7.在单链表中,增加头结点的目的是( )。(分数:2.00)A.方便运算的实现 B.使单链表至少有一个结点C.标

    30、识表结点中首结点的位置D.说明单链表是线性的链式存储实现解析:解析 根据单位链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点的目的是为了便于运算的实现。8.语句 int(*ptr)()的含义是( )。(分数:2.00)A.ptr 是一个返回值为 int 的函数B.ptr 是指向 int 型数据的指针变量C.ptr 是指向函数的指针,该函数返回一个 int 型数据 D.ptr 是一个函数名,该函数的返回值是指向 int 型数据的指针解析:解析 本题考查的是指向函数的指针。函数指针定义的基本格式为:类型标识符(*指针变量名)( )。“类型标识符”为函数返回值的类型。9.

    31、要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,下列正确的程序段是( )。(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“, ch); B.while(ch=getchar()!=N)printf(“%c“, ch);C.while(ch=getchar()=N)printf(“%c“, ch);D.while(ch=getchar()=N)printf(“%c“, ch);解析:解析 while 循环的执行过程如下:计算 while 后面圆括号中表达式的值。当值为非 0 时,执行步骤;当值为 0 时,执行步骤。执行

    32、循环体一次。转去执行步骤。退出循环。在选项 A 中,表达式(ch=getchar()!=N表示输入的字符不等于 N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达武不成立,即输入的字符等于 N,则退出循环。所以选项 A 为正确答案。10.下述程序的输出结果是( )。#includestdio.hmain()im a23=1, 2, 3, 4, 5, 6, (*p)3, i;p=a;for(i=0; i3; i+)if(i2)p1i=p1i-1;elsep1i=1; printf(“%d/n“, a01+a11+a12); (分数:2.00)A.8B.7 C.12D.

    33、9解析:解析 根据判断本题共进行三次 for 循环,第一次执行 for 循环,p10=p10-1=3;第 2 次执行 for 循环,p11=p11-1=4;第 3 次执行 for 循环,p12=1,最后输出的是 a01+a11+a12=2+4+1=7。11.设 fun()函数的定义形式为( )。void fun(char ch,float x)则下列对函数 fun 的调用语句中,正确的是(分数:1.00)_解析:解析 由题目的已知条件函数 fun 的定义形式 void fun(char ch, float x)12.已知有如下结构体:struct skint a;float b;data, *

    34、p;若有 p=data, 则对 data 的成员 a 引用正确的是( )。(分数:1.00)A.(*p). dataaB.(*p). a; C.p-data. aD.data. a解析:解析 本题主要考查结构指针:p=data,访问结构体的成员。它可以通过结构变量访问,即data,可以用等价的指针形式:(*p).a 和 p-a 来访问结构体变量中的成员。13.下述程序的输出结果是( )。#includestdio.hvoid main()int b6=2, 4, 6, 8, 10, 12;int *p=b,*q=p;printf(“%d,“, *(p+); printf(“%d,“, *q);

    35、(分数:1.00)A.4,4B.2,2C.4,5D.2,4 解析:解析 首先定义了一个指向一维数组 b 的指针 p,一个指向指针 p 的指针变量 q;输出*(p+)是先输出*p 即 b0的值,再将指针 p 指向数组的下一个元素 b1;输出*q 是输出指针 p 所指单元的内容。14.两个或两个以上模块之间联系的紧密程度称为( )。(分数:1.00)A.耦合性 B.内聚性C.复杂性D.数据传输特性解析:解析 耦合性用来表示模块间互相连接的紧密程度的度量,它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。15.下列程序的输出结果是( )。#includestdio.hmain()int

    36、 a=3, b=2, c=1;if(ab)if(b0)c=0;else c+;printf(“%d/n“, c); (分数:1.00)A.2B.0C.1 D.不确定的值解析:解析 第一个 if 语句,先判断条件,发现 ab 不成立,不再执行下列的语句,直接执行最后的printf 输出语句,然后结束程序,整个过程 C 的值没有发生变化。16.关系数据库管理系统能实现的专门关系运算包括( )。(分数:1.00)A.排序、索引、统计B.选择、投影、连接 C.关联、更新、排序D.显示、打印、制表解析:解析 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。17.下述程序的输出结果是(

    37、)。#includestdio.hmain()char ch25=“1234“, “5678“), *p2;int i, j, s=0;for(i=0; i2; i+)pi=chi;for(i=0: i2; i+)s=pij=0;printf(“%d“, s);(分数:1.00)A.6357B.6135C.1357 D.691357解析:解析 本题先将指针 p 指向二维数组 ch25,相当于 p0=“1234“,p1=“5678“;通过双重for 循环,将 p 中的字符隔一个输出一个,通过“s=pij-0;”语句将所要输出的字符转换成相应的十进制数。18.设 a=1, b=2, c=3, d=

    38、4,则表达式:“ab?a: bb?a: cd?a: d”的结果为( )。(分数:1.00)A.4B.3C.2D.1 解析:解析 在三目运算符中,优先级相同,按从右到左的结合性计算,ab?a: (cd?a: d)cd 成立所以取值 a,同理可得,选择 D 选项。19.有以下程序:main()int a=2, 4, 6, 8, 10), y=0, X, *p;p=a1;for(x=1; x3; x+) y+=px;printf(“%d/n, y“);程序运行后的输出结果是( )。(分数:1.00)A.10B.11C.14 D.15解析:解析 由题目的语句 p=a1可知,p 指向 a 数组中下标为

    39、1 的元素“4”,又因为 p 为指针变量,所以 px与*(p+x)等价,因而在 for 循环语句中,第一次循环 p1指向 a 数组中下标为 2 的元素“6”,第二循环 p2指向 a 数组中下标为 3 的元素“8”,所以 y=6+8=14,因而选项 C 为正确答案。20.有以下程序:#includestdio.hStruct stuint num;char name-10;int age; void fun(struct stu *p)printf(“%s/n“, (*p). name); main()struct stu students3=9801, “Zhang“, 20, 9802, “

    40、Wang“, 19, 9803, “ Zhao“, 18fun(students+2); 输出的结果是( )。(分数:1.00)A.ZhangB.Zhao C.WangD.18解析:解析 从实参传递过去的是结构体系数组的第 3 个元素,所以输出的 name 为 Zhao。21.有以下程序:#includestdio.hint abc(int u, int v);main()int a=24, b=16, c;c=abc(a, b);printf(“%d/n“, c);int abc(int u, int v)int w;while(v)w=u%v; u=v; v=w; return;输出结果是

    41、( )。(分数:2.00)A.6B.7C.8 D.9解析:解析 abc 函数是求 u、v 的最大公约数,当 v=16 时,循环成立,执行其后的语句,即 w=u%v, u=v; v=w; w=24%16=8, u=16, v=8,接着返回到 while 中,当 v=8 时,循环成立,执行其后的语句,即w=u%v; u=v; v=w; w=16%8=0, u=8, v=0,接着再返回到 while 中,当 v=0 时,循环不成立,退出循环。22.以下程序的输出结果是( )。main()int a=7, b=8,*p, *q, *r;p=a; q=b;r=P; p=q; q=r;printf(“%d

    42、, %d, %d, %d/n“, *p, *q, a, b);(分数:2.00)A.8,7,8,7B.7,8,7,8C.8,7,7,8 D.7,8,8,7解析:解析 在“r=p;p=q;q=r;”三个语句是表示 p 与 q 交换,经过交换后 p 指向 b 的地址,q 指向a 的地址,因此最后输出为 8,7,7,8,故选择 C 选项。23.执行下述程序后,输出的结果是( )。#includestdio.h#define S(X)X*Xvoid main()int a=9, k=3, m=2;a/=S(k+m)/S(k+m);printf(“%d“, a);(分数:2.00)A.1B.4C.9D.

    43、0 解析:解析 本题主要是考查带参数的宏的定义过程如下:int a=a/S(k+m)/s(k+m)=a/(k+m*k+m/k+m)=9/(3+2*3+2/3+2*3+2)=0。24.下列说法不正确的是( )。(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元 C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等D.调用函数时,实参与形参的类型必须一致解析:解析 本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致;形参在运算过程中会发生改变,但

    44、不一定会影响到实参值,所以可知两者不共用内存单元。25.有定义:“int a=2, b=3, c=4;”,则下列选项中值为 0 的表达式是( )。(分数:2.00)A.(!a=1)(!b=0) B.(ab)!c|1C.abD.a|(b+b)(c-a)解析:解析 本题考查逻辑与运算“”与逻辑或运算“”。在选项 A 中,因为!a=o,所以关系表达式!a=1 为 0,又因为逻辑与运算符“”两边的表达式只要一个等于零,则整个表达式为零,所以选项 A 正确。在选项 B 中,关系表达式 ab 为真,表达式(ab) !c 为假,而表达武(ab)!|1为真,所以整个表达式的值为真。选项 C 中,ab 的结果为

    45、真。在选项 D 中,a|(b+b)(c-a)的结果为真。26.以下能正确定义二维数组的是( )。(分数:2.00)A.int a3;B.int a3=2*3; C.int a3=;D.int a23=1, 2, 3, 4;解析:解析 选项 A 中对于二维数组,必须通过赋值的个数来确定其长度,没有赋值则无法确定,选项C 中赋的是空值,也不能确定其行下标,而选项 D 中定义的两行三列,而赋值的却是三行两列。27.下列程序的运行结果为( )。#includestdio.hmain()struct dateint year, month,day;today;printf(“%d/n“, size of

    46、(struct date);(分数:2.00)A.8B.6 C.10D.12解析:解析 struet date 中包含 year、month、day 这 3 个整型变量,一个整型变量占 2 个字节;sizeof 是求所占字节数的运算符。28.若有以下说明,则( )不是对 strcpy 库函数正确的涮用。strcpy 库函数用于复制一个字符串:char*str1=“abcd“, str210, *str3=“hijklmn“, *str42, *str5=“aaaa“;(分数:2.00)A.strcpy(str2, str1)B.strcpy(str3, str1)C.strcpy(str1, str2) D.strcpy(str5, str1)解析:解析 strcpy(s1,s2)函


    注意事项

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




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

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

    收起
    展开