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

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

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

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

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

    1、二级 C语言笔试-368 及答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:50,分数:69.00)1.若要定义一个具有 5个元素的整型数组,以下错误的定义语句是( )。 A) int a5=0; B) int b=0,0,0,0,0; C) int c2+3; D) int i=5,di;(分数:2.00)A.B.C.D.2.下列数据中,不合法的 C语言实型数据是A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.0(分数:1.00)A.B.C.D.3.以下程序的输出结果是_。#includestdio.h#define SQR(x)x*xmain

    2、()int a;k=3;a=+SQR(k+1);printf(“%d/n“,a) ;A) 8 B) 9 C) 17 D) 20(分数:1.00)A.B.C.D.4.下列程序的执行结果是_。#include stdio.hunion unint i;char c2;void main()union un x;x.c0=10;x.c1=1;printf(“/n%d“,x.i)A) 266 B) 11 C) 265 D) 138(分数:1.00)A.B.C.D.5.下列叙述中错误的是( )。A) 一种数据的逻辑结构可以有多种存储结构B) 数据的存储结构与数据处理的效率无关C) 数据的存储结构与数据处

    3、理的效率密切相关D) 数据的存储结构在计算机中所占的空间不一定是连续的(分数:1.00)A.B.C.D.6.当输入为“quert?”时,下面程序的执行结果是 ( )#indudestdio.hmain()char c;c=getehar();while(c=getchar()!=?)putchar(+c) ;A) Quert B) vfsu C) quert? D) rvfsu?(分数:1.00)A.B.C.D.7.设有以下定义:struck skint a;float b;data;int *p;若要使 p指向 data中的 a域,正确的赋值语句是( )。A) p=default:print

    4、f(“OK“);A) 0 B) 3 C) OK D) 没有任何输出(分数:1.00)A.B.C.D.9.下列叙述中,正确的是A) 用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B) 用 E-R图只能表示实体集之间一对一的联系C) 用 E-R图只能表示实体集之间一对多的联系D) 用 E-R图表示的概念数据模型只能转换为关系数据模型(分数:1.00)A.B.C.D.10.与数学式子 (分数:1.00)A.B.C.D.11.以下选项中,非法的字符常量是_。A) t/ B) /17 C) “/n“ D) /xaa(分数:2.00)A.B.C.D.12.以下程序(函数 fun只对下

    5、标为偶数的元素进行操作)运行后的输出结果是 #includestdio.h void fun(int *a, int n) int i, j, k, t; 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+) printf(“%d, “, aai); printf(“/n“); A) 7,2,5,4,3,6,1 B) 1,6,3,4,5,2,7 C) 7,6

    6、,5,4,3,2,1 D) 1,7,3,5,6,2,1(分数:2.00)A.B.C.D.13.从未排序序列中依次取出元素与已排序序列中的元素作比较,将取出的元素放入已排序序列中的正确位置上,此方法称为_。A) 归并排序 B) 选择排序 C) 交换排序 D) 插入排序(分数:2.00)A.B.C.D.14.若有定义:“int a23;“则对 a数组的第 i行第 j列元素的正确引用为( )。A) *(*(a+i) j) B) (a+i)jC) *(a+i+j) D) * (a+i) +j(分数:1.00)A.B.C.D.15.下面函数调用语句含有实参的个数为func(exp1,exp2),(exp

    7、3,exp4,exp5);A) 1 B) 2 C) 4 D) 5(分数:1.00)A.B.C.D.16.设有如下的变量定义;int i=8,k,a,b;unsinged long w=5;double x=1.42,y=5.2则以下符合 C语言语法的表达式是 ( )A) a+=a-=(b=4)*(a=3) B) x%(-3);C) aa*32 D) yfloat(i)(分数:1.00)A.B.C.D.17.以下语句中存在语法错误的是_。A) char ss620;ss1=“right?“; B) char ss20=“right?“;C) char*ss6;ss1=“right?“; D) c

    8、har*ss=“right?“;(分数:2.00)A.B.C.D.18.有如下程序段int a=14,b=15,x;char c=A;x=(aint f(int n)int t=0; static int a=5;if(n%2) int a=6; t+=a+;else int a=7; t+=a+;return t+a+;main()int s=a,i=0;for(;i2; i+) s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是( )。A) 24 B) 28 C) 32 D) 36(分数:1.00)A.B.C.D.20.下列叙述中正确的是_。A) 软件交付使用后还需要

    9、进行维护B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束D) 软件维护是指修复程序中被破坏的指令(分数:2.00)A.B.C.D.21.设变量已正确定义并赋值,以下正确的表达式是_。A) x=y*5=x+zB) int(15.8%5)C) x=y+z+5,+yD) x=25%5.0(分数:1.00)A.B.C.D.22.有下列二叉树,对此二叉树中序遍历的结果为( )。(分数:2.00)A.B.C.D.23.两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是( )。main()int x;scanf(“%d“, B)c=“97“; C)c=97; D)c

    10、=“a“;(分数:1.00)A.B.C.D.30.下面四个选项中,均是不正确的 8进制数或 16进制数的选项是A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -123(分数:1.00)A.B.C.D.31.avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过 10,则下列函数说明语句错误的是( )。A) int avg(int*a,int n); B) int avg(int a10,int n);C) int avg(int a,int n); D) int avg(int a,int n);

    11、(分数:2.00)A.B.C.D.32.以下程序运行后的输出结果是 #includestdio.h main() int y=10; while(y-); printf(“y=%d/n“, y); A) y=0 B) y=-1 C) y=1 D) while构成无限循环(分数:2.00)A.B.C.D.33.有以下程序#inc1udestdio.hvoid fun(char*s)while(*s)if(*s%20) printf(“%c“,*s);s+ main()char a=“good“;fun(A) ; prntf(“n/“);注意:字母 a的 ASCII码值为 97,程序运行后的输出结

    12、果是_。A) d B) go C) god D) good(分数:2.00)A.B.C.D.34.若有以下定义和语句:int s45,(*ps)5;ps=s;则对 s数组元素的正确引用形式是A) ps+1 B) *(ps+3) C) ps02 D) *(ps+1)+3(分数:1.00)A.B.C.D.35.有以下程序#includestdio.hmain()(int x=1, y=0;if(!x) y+;else if(x=0)if(x)y+=2; else y+=3;printf(“%d/n“, y);程序运行后的输出结果是_。A) 3 B) 2 C) 1 D) 0(分数:1.00)A.B.

    13、C.D.36.以下程序运行后的输出结果是#includestdio.h#includestdlib.hint fun(int n)int *p;p=(int*)malloe( sized ( int );* p=n; return * p;main( )int a;a=fun(10);printf(“%d/n“,a+fun(10);A) 0 B) 10 C) 20 D) 出错(分数:2.00)A.B.C.D.37.以下程序运行后的输出结果是( )。 #includestdio.h void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai;

    14、ai=an-1-i;an-1-i=t; main() int b10=10,9,8,7,6,5,4,3,2,1;int i,s=0; reverse(b,10); for(i=0;i3;i+)s+=bi; printf(“%d/n“,s); A) 27 B) 6 C) 25 D) 30(分数:2.00)A.B.C.D.38.为了使模块尽可能独立,要求( )。A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的偶合程度要尽量弱D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(分数:

    15、1.00)A.B.C.D.39.若变量 a,b已正确定义,且 b已正确赋值,则合法的语句是( )。A) b=double(b); B) +b; C) a=a+=5; D) a=double(b);(分数:2.00)A.B.C.D.40.已经定义 ch为字符型变量,以下赋值表达式中错误的是_。A) ch=/ B) ch=62+3 C) ch=NULL D) ch=/xaa(分数:1.00)A.B.C.D.41.能正确表示“当 x的取值在1,10和100,110范围内为真,否则为假”的表达式是( )。A) (x=1)不能给数组 a输入字符串的语句是( )。A) gets(a) B) gets(a1

    16、0) C) gets(x=(z= =m);printf(“%d“,x);A) 252 B) 1C) 0 D) 运行时出错,x 无定值(分数:1.00)A.B.C.D.48.设有以下语句typedef struct Sint g; char h; T;则下面叙述中正确的是( )A)可用 S定义结构体变量 B)可以用 T定义结构体变量C)S 是 struct类型的变量 D)T 是 struct S类型的变量(分数:1.00)A.B.C.D.49.以下是 if语句的基本形式:if(表达式)语句其中“表达式”_。A) 必须是逻辑表达式 B) 必须是关系表达式C) 必须是逻辑表达式或关系表达式 D) 可

    17、以是任意合法的表达式(分数:1.00)A.B.C.D.50.有以下程序:main()int i;for(i=1;1=40;i+)if(i+%5=0)if(+i%8=0)printf(“%d“,i);printf(“/n“);执行后的输出结果是( )。A) 5 B) 24 C) 32 D) 40(分数:2.00)A.B.C.D.二、填空题(总题数:20,分数:33.00)51.若 a的值为 1,则表达式!a+a 的值是 1。(分数:2.00)填空项 1:_52.当运行以下程序时,输入 abcd,程序的输出结果是:_。insert(char str)int i;i=strlen(str);whil

    18、e(i0)str2*i=stri;str2*i-1=*;i-;printf(“%s/n“,str);main()char str40;scanf(“%s“,str);insert(str);(分数:2.00)填空项 1:_53.已知字母 A的 ASCII码为 65。以下程序运行后的输出结果是_。main()char a,b;a=A+5-3;b=a+6-2;printf(“%d %c/n“,a,B) ;(分数:2.00)填空项 1:_54.有以下程序:#includestcliohmain()char c;while(c=getchar()!=?)putchar(-c);程序运行时,如果从键盘输

    19、入:Y?N?回车,则输出结果为_。(分数:1.00)填空项 1:_55. 1是指一个数据对象中的各个数据元素之间存在的联系。(分数:1.00)填空项 1:_56.下列程序的输出结果是_。#includestdio.hsb(int s,int b)static int n=3;b=sn;n-;return(b);main()int s=1,5,6,8;int i,x=0;for(i=0;i4;i+)x=sb(s,x);printf(“%d“,x);printf(“/n“);(分数:2.00)填空项 1:_57.以下程序中,fun 函数的功能是求 3行 4列二维数组每行元素中的最大值,请填空。vo

    20、id fun(int, int, int(*)4, int*);main()int a34=12, 41, 36, 28, 19, 33, 15, 27, 3, 27, 19, 1, b3, i;fun(3, 4, a, b);for(1=0; i3; i+)printf(“% 4d“, bi);printf(“/n“);void fun(int m, int n, int ar4, int * bar)int i, j, x;for(i=0; im; i+)x=ari0;for(j=0; jn; j+)if(xarij)x=arij;_=x;(分数:2.00)填空项 1:_58.数据库系统的

    21、主要特点为数据集成性、数据的高和低冗余性、数据独立性和数据统一管理和控制。(分数:2.00)填空项 1:_59.下列程序的运行结果是_。main()int s=0,i=1;while(s=10)S=S+i*i;i+;bprintf(“%d“,-i);(分数:2.00)填空项 1:_60.以下程序运行后的输出结果是_。main()int a=3,b=4,c=5,t=99;if(ba a=c;c=t;if(ac b=a;a=t;printf(“%d %d %d/n“,a,b,c);(分数:2.00)填空项 1:_61.以下程序运行后的输出结果是_。#includestdio.hint a=5;vo

    22、id fun(int b)int a=10; a+=b; printf(“%d“, a);main()int c=20;fun(c); a+=c; printf(“%d/n“, a);(分数:2.00)填空项 1:_62.以下程序运行后的输出结果是 1。main( )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);(分数:1.00)填空项 1:_63.若有定义 doublea 5;,则 a

    23、数组元素下标的上限为 1。(分数:2.00)填空项 1:_64.软件工程的出现是由于 1。(分数:1.00)填空项 1:_65.在两种基本测试方法中, 1 测试的原则之一是保证所测模块中每一个独立路径至少执行一次。(分数:2.00)填空项 1:_66.以下程序通过函数指针 p调用函数 fun,请在填空栏内写出定义变量 p的语句。void fun(int*x,int*y)main()int a=10,b=20;_:p=fun; p( double s; REC;void fun1(REC x)x.num=23; x.s=88.5;main()REC a=16, 90.0;fun1(a);prin

    24、tf(“%d/n“, a.num);(分数:2.00)填空项 1:_69.下面程序的功能是:计算 110 之间的奇数之和与偶数之和,请填空。#includestdio.hmain()int a,b,c,i;a=c=0;for(i=0;i=10;i+=2)a+=i;_;c+=b;printf(“偶数之和=%d“,a);printf(“奇数之和=%d“,c-11);(分数:2.00)填空项 1:_70.已有定义如下:struct nodeint data;struct node *next;*P;以下语句调用 malloc函数,使指针 p指向一个具有 struct node类型的动态存储空间。请填

    25、空。p=(struct node *)malloc_;(分数:1.00)填空项 1:_二级 C语言笔试-368 答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:50,分数:69.00)1.若要定义一个具有 5个元素的整型数组,以下错误的定义语句是( )。 A) int a5=0; B) int b=0,0,0,0,0; C) int c2+3; D) int i=5,di;(分数:2.00)A.B.C.D. 解析:解析 定义数组对,元素个数不能为变量,但可以为常量或常量表达式,或在后面有初始化的情况下空缺。因此选项 D)错误,选项 A)、B)、C)正确。选项 A)中没有

    26、被完全赋值,其中没有赋值的几个默认为 0。2.下列数据中,不合法的 C语言实型数据是A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.0(分数:1.00)A.B.C. D.解析:解析 在 C语言中,实数有两种形式表示,即十进制数形式和指数形式,在指数形式中,e3、 2. le3.5、.e3、e 等都是不合法的指数形式。再如 123e3或 123E3都代表 123乘以 10的 3次方。注意,字母 e的前面必须有数字,且 e的后面必须是整数。3.以下程序的输出结果是_。#includestdio.h#define SQR(x)x*xmain()int a;k=3;a=+SQR

    27、(k+1);printf(“%d/n“,a) ;A) 8 B) 9 C) 17 D) 20(分数:1.00)A.B. C.D.解析:解析 本题宏替换中遇到形参 x以实参 k+1代替,其他字符不变。SQR(k+1)展开后应为字符串k+1*k+1。4.下列程序的执行结果是_。#include stdio.hunion unint i;char c2;void main()union un x;x.c0=10;x.c1=1;printf(“/n%d“,x.i)A) 266 B) 11 C) 265 D) 138(分数:1.00)A. B.C.D.解析:解析 由于本题定义的是共用体,所以成员表列中的整

    28、型变量 x与字符数组 c共占用同一个存储单元,且此存储单元为 2个字节,通常 c0位于低字节,c1位于高字节,所以 x.i的值为 266。5.下列叙述中错误的是( )。A) 一种数据的逻辑结构可以有多种存储结构B) 数据的存储结构与数据处理的效率无关C) 数据的存储结构与数据处理的效率密切相关D) 数据的存储结构在计算机中所占的空间不一定是连续的(分数:1.00)A.B. C.D.解析:一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等,选项 A和选项 D正确。采用不同的存储结构,其数据处理的效率不同,因此,在进行数据处理时,选择合适的存储结构是很重要的,选项

    29、 C正确,选项 B错误,应为本题正确答案。6.当输入为“quert?”时,下面程序的执行结果是 ( )#indudestdio.hmain()char c;c=getehar();while(c=getchar()!=?)putchar(+c) ;A) Quert B) vfsu C) quert? D) rvfsu?(分数:1.00)A.B. C.D.解析:7.设有以下定义:struck skint a;float b;data;int *p;若要使 p指向 data中的 a域,正确的赋值语句是( )。A) p=default:printf(“OK“);A) 0 B) 3 C) OK D)

    30、没有任何输出(分数:1.00)A.B.C.D. 解析:解析 在题中,i 的值为 3,由于“case 3:”后面没有 break语句,所以继续向下执行“case 4”后面的语句,由于“case 4:”后面的语句为 break强行退出 switch语句,所以,本题没有任何输出。9.下列叙述中,正确的是A) 用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B) 用 E-R图只能表示实体集之间一对一的联系C) 用 E-R图只能表示实体集之间一对多的联系D) 用 E-R图表示的概念数据模型只能转换为关系数据模型(分数:1.00)A. B.C.D.解析:解析 本题主要考查了用 E-R图

    31、表示实体之间联系的方法。解题要点 两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。10.与数学式子 (分数:1.00)A.B.C. D.解析:解析 本题考查的知识点是表达式的表示。在该题中,x 的 n次方应该调用函数 pow(x,n)计算,故选项 A、B 排除。而在选项 D中, pow(x,n)的参数写反了。选项 C正确。11.以下选项中,非法的字符常量是_。A) t/ B) /17 C)

    32、 “/n“ D) /xaa(分数:2.00)A.B.C. D.解析:解析 C 语言中字符常量是以单引号括起来的单个字符,或以“/”与三位八进制数值或两位十六进制数值代替单个字符。12.以下程序(函数 fun只对下标为偶数的元素进行操作)运行后的输出结果是 #includestdio.h void fun(int *a, int n) int i, j, k, t; 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

    33、; fun(aa, 7); for(i=0; i7; i+) printf(“%d, “, aai); printf(“/n“); A) 7,2,5,4,3,6,1 B) 1,6,3,4,5,2,7 C) 7,6,5,4,3,2,1 D) 1,7,3,5,6,2,1(分数:2.00)A. B.C.D.解析:解析 本题考查的是选择排序法。函数 fun中,变量 i从 0开始,每次增加 2,变量 j从 i开始,每次也是增加 2,所有循环中只对偶数下标的元素进行了处理。函数 fun是一个典型的选择排序法,只不过只对偶数下标的元素进行降序排列,奇数下标的元素不变。发现这一特点后,可以直接写出最后的结果7

    34、,2,5,4,3,6,1。13.从未排序序列中依次取出元素与已排序序列中的元素作比较,将取出的元素放入已排序序列中的正确位置上,此方法称为_。A) 归并排序 B) 选择排序 C) 交换排序 D) 插入排序(分数:2.00)A.B.C.D. 解析:14.若有定义:“int a23;“则对 a数组的第 i行第 j列元素的正确引用为( )。A) *(*(a+i) j) B) (a+i)jC) *(a+i+j) D) * (a+i) +j(分数:1.00)A. B.C.D.解析:解析 本题考查如何通过地址来引用数组元素。通过地址来引用数组元素的方法有下列 5种:aij;*(ai+j);*(*(a+i)

    35、+j);*(aij;*(unsinged long w=5;double x=1.42,y=5.2则以下符合 C语言语法的表达式是 ( )A) a+=a-=(b=4)*(a=3) B) x%(-3);C) aa*32 D) yfloat(i)(分数:1.00)A. B.C.D.解析:17.以下语句中存在语法错误的是_。A) char ss620;ss1=“right?“; B) char ss20=“right?“;C) char*ss6;ss1=“right?“; D) char*ss=“right?“;(分数:2.00)A. B.C.D.解析:解析 数组赋值时需要用表示出来,故选项 A错误

    36、。18.有如下程序段int a=14,b=15,x;char c=A;x=(aint f(int n)int t=0; static int a=5;if(n%2) int a=6; t+=a+;else int a=7; t+=a+;return t+a+;main()int s=a,i=0;for(;i2; i+) s+=f(i);printf(“%d/n“,s);程序运行后的输出结果是( )。A) 24 B) 28 C) 32 D) 36(分数:1.00)A.B. C.D.解析:解析 题目中第 1行声明了一个全局变量 a,在函数 f()中,也声明了一个静态变量 a,这时全局变量被屏蔽,即

    37、在 f()函数中用到的 a是其内部定义的这个静态变量 a,而不是全局变量。但 f()函数的if子句和 else子句又分别了局部变量 a,这时静态变量 a又被屏蔽,即在 if子句中使用的是 if子句自己定义的 a,else 子句也是这样。在主函数中,通过 for语句连续执行了 2次 f()函数,并将返回值累加到 s中,且 s被全局变量 a初始化,即初始值是 4。第 1次调用 f(),参数值为 0,0 能被 2整除,执行if子句,t 被自增 6,a 增 1不会影响外面的变量 a。函数返回 t和静态变量 a的和,即 11,此时,静态变量 a被增 1,这次对 a的改变会带入到下一次 f()函数的调用小

    38、去。第 2次调用 f(),参数值为 1,1 不能被 2整除,执行 else子句,t 被自增 7,a 增 1不会影响外面的变量 a。函数返回 t和静态变量 a的和,此时 a的值为上次调用 f()时增 1后的值 6,即返回 7+6=13。所以,主函数中 s现在的值为 4+11+13=28。故应该选择 B。20.下列叙述中正确的是_。A) 软件交付使用后还需要进行维护B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束D) 软件维护是指修复程序中被破坏的指令(分数:2.00)A. B.C.D.解析:21.设变量已正确定义并赋值,以下正确的表达式是_。A) x=y*5=x+zB

    39、) int(15.8%5)C) x=y+z+5,+yD) x=25%5.0(分数:1.00)A.B.C. D.解析:22.有下列二叉树,对此二叉树中序遍历的结果为( )。(分数:2.00)A.B. C.D.解析:解析 对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左于树根结点右子树”的顺序。本题的遍历顺序是这样的:首先访问左子树;BDEY;在左子树 BDEY中,也按中序遍历,先访问左子树 DY;在左子树 DY中,也按中序遍历,先访问左子树,左子树没有,则访问根结点 D,然后访问右子树 Y;接着访问根 B,再访问右于树 E:访问左子树

    40、BDEY后,接着访问根结点 A,接着访问右子树 CFXZ;右子树 CFXZ的访问顺序同理可得:FCZX。23.两次运行下列的程序,如果从键盘上分别输入 3和 1,则输出结果是( )。main()int x;scanf(“%d“,”,而答案 C中,表达式是不能独立成为语句的,答案 B使用了 C语言的自减运算符它就相当于 D=D-1,所以答案 B为一赋值语句。29.已定义 c为字符型变量,则下列语句中正确的是A)c=97; B)c=“97“; C)c=97; D)c=“a“;(分数:1.00)A.B.C. D.解析:解析 字符常量是用单撇号括起来的个字符或一串字符,故选项 A)不正确。选项 B),

    41、D)均为字符串。而选项 C)是把 ASCII码值为 g7的字符赋给了变量 c。30.下面四个选项中,均是不正确的 8进制数或 16进制数的选项是A) 016 0x8f 018 B) 0abc 017 0xaC) 010 -0x11 0x16 D) 0a12 7ff -123(分数:1.00)A.B.C.D. 解析:解析 8 进制中,不可能包括 8以上的数字,它的范围只在 07 之间,以 0开头。同样,+六进制是以 0x开头,数字在 09 和 af 之间。31.avg函数的功能是求整型数组中的前若干个元素的平均值,设数组元素个数最多不超过 10,则下列函数说明语句错误的是( )。A) int a

    42、vg(int*a,int n); B) int avg(int a10,int n);C) int avg(int a,int n); D) int avg(int a,int n);(分数:2.00)A.B.C. D.解析:解析 C) 选项中,传递的是单值,不符合题目要求。32.以下程序运行后的输出结果是 #includestdio.h main() int y=10; while(y-); printf(“y=%d/n“, y); A) y=0 B) y=-1 C) y=1 D) while构成无限循环(分数:2.00)A.B. C.D.解析:解析 程序中 while循环的条件是“y-”,

    43、循环体是一条空语句。条件中,“-”后置,所以先取出 y的值进行条件判断,然后再对 y进行减 1的操作,因此当 y的值等于 0时,循环条件为假先终止循环,再对 y进行减 1的操作,所以 y的值变为了-1。33.有以下程序#inc1udestdio.hvoid fun(char*s)while(*s)if(*s%20) printf(“%c“,*s);s+ main()char a=“good“;fun(A) ; prntf(“n/“);注意:字母 a的 ASCII码值为 97,程序运行后的输出结果是_。A) d B) go C) god D) good(分数:2.00)A. B.C.D.解析:解

    44、析 本题主要考查函数的调用以及字符的 ASCII码值,由 while循环语句可知,如果字符的ASCII码值为偶数就输出该字符,否则不输出,因为 s的 ASSCII码值为 103;o 的码值为 111,d 的码值为 100,所以程序输出结果是 d,因此,选项 A是正确的。34.若有以下定义和语句:int s45,(*ps)5;ps=s;则对 s数组元素的正确引用形式是A) ps+1 B) *(ps+3) C) ps02 D) *(ps+1)+3(分数:1.00)A.B.C. D.解析:解析 本题首先定义了一个 4 行 5列的数组 s,又定义了一个指向由 5个元素组成的一维数组的指针变量 ps,通

    45、过赋值让 ps指向了数组 s的首地址。此时数组元素 sij的地址为“*(ps+1)+j”,数组元素 sij可表示为*(*(ps+1)+j)。选项 B表示的是数组元素 a30的地址;选项 D表示的是数组元素 s13的地址;选项 A中“ps+1”为指向下一行(第二行)的地址;选项 c中 ps02无条件等价于“*(ps0+2)”又无条件等价于”(*(ps+0)+2)”,即是数组元素 s02。所以,4 个选项中 C为所选。35.有以下程序#includestdio.hmain()(int x=1, y=0;if(!x) y+;else if(x=0)if(x)y+=2; else y+=3;print

    46、f(“%d/n“, y);程序运行后的输出结果是_。A) 3 B) 2 C) 1 D) 0(分数:1.00)A.B.C.D. 解析:解析 根据在 if.else语句中,else 总是和最近的 if配对原则,本题中的层次关系是:if(!x)与elseif(x=0)是一组,位于循环的最外层。而 if(x)与 else是一组,位于 else if(x=0)条件的内层。由此可知条件均不成立,所以 y未进行任何操作,仍为 0。36.以下程序运行后的输出结果是#includestdio.h#includestdlib.hint fun(int n)int *p;p=(int*)malloe( sized ( int );* p=n; return * p;main( )int a;a=fun(10);printf(“%d/n“,a+fun(10);A) 0 B) 10 C) 20 D) 出错(分数:2.00)A.B.C. D.解析:解析 fun 函数中,p 是一个可以指向基类型为 int的指针变量,函数带 10返回。因此,输出10+10的结果 20。37.以下程序运行后的输出结果是( )。 #includestdio.h


    注意事项

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




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

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

    收起
    展开