【计算机类职业资格】二级C语言分类模拟题578及答案解析.doc

上传人:priceawful190 文档编号:1325607 上传时间:2019-10-17 格式:DOC 页数:13 大小:57.50KB
下载 相关 举报
【计算机类职业资格】二级C语言分类模拟题578及答案解析.doc_第1页
第1页 / 共13页
【计算机类职业资格】二级C语言分类模拟题578及答案解析.doc_第2页
第2页 / 共13页
【计算机类职业资格】二级C语言分类模拟题578及答案解析.doc_第3页
第3页 / 共13页
【计算机类职业资格】二级C语言分类模拟题578及答案解析.doc_第4页
第4页 / 共13页
【计算机类职业资格】二级C语言分类模拟题578及答案解析.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、二级 C 语言分类模拟题 578 及答案解析(总分:38.50,做题时间:90 分钟)一、选择题(总题数:30,分数:38.50)1.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:1.00)A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA2.有以下程序 #include stdio.h main() int x,y,z; x=y=1; z=x+,y+,+y; printf(“%d,%d,%d/n“,x,y,z); 程序运行后的输出结果是_。(分数:1.00)A.2,

2、3,1B.2,3,2C.2,3,3D.2,2,13.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 _(分数:1.00)A.PAD 图B.N-S 图C.结构图D.数据流图4.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 i=n1; j=n2; while (ij) t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i+; j-; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i, *p=a; fun(p, 0, 3); fun(p, 4, 9); fun

3、(p, 0, 9); for(i=0; i10; i+) printf(“%d“, *(a+i); 程序的输出结果是(分数:1.00)A.0987654321B.4321098765C.5678901234D.09876512347.合法的八进制数是(分数:2.00)A.0B.028C.-077D.01.08.有以下程序: #includestdio.h struct S int a,b;data2=10,100,20,200; main() struct S p=data1; printf(“%d/n“,+(p.a); 程序运行后的输出结果是_。(分数:1.00)A.10B.11C.20D.

4、219.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 _(分数:1.00)A.等于原来关系中的元组个数B.大于原来关系中的元组个数C.小于原来关系中的元组个数D.不能确定元组个数10.若有定义:“double a=22;int i=0,k=18;”,则不符合 C 语言规定的赋值语句是_。(分数:1.00)A.a=a+,i+;B.i=(a+k)=(i+k);C.i=a%11;D.i=!a;11.有以下程序: #includestdio.h #define S(x)4*(x)*x+1 main() int k=5, j=2; printf(“%d/n“, S(k+j); 程序运行后的

5、输出结果是_。(分数:1.00)A.197B.143C.33D.2812.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据13.有以下程序: # include stdio.h main() char s=“012xy/08s34f4w2“; int i;n=0; for(i=0;si!=0;i+) if(si=“0“ si=“9“)n+; printf(“%d/n“,n); 程序运行后的输出结果是_。(分数:1.00)A.0B.3C.7D.814.在 C 语言中,函数调用时_。(分数:2.00)A.实

6、参和形参各占独立的存储单元B.实参和形参共用存储单元C.由系统自动确定实参和形参是否共用存储单元D.由用户指定实参和形参是否共用存储单元15.有以下程序: #include stdio.h int sub(double a, double b) return (int)(a - b -1.3); main( ) printf(“%d/n“, sub(3.2,4.1); 程序运行后的输出结果是_。(分数:1.00)A.-2B.1.7C.-3D.2.016.在软件设计中,不属于过程设计工具的是_。(分数:1.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图D.DFD 图17.定义无符号

7、整数类为 UInt,下面可以作为类 UInt 实例化值的是_。(分数:1.00)A.-369B.369C.0.369D.整数集合1,2,3,4,518.以下不构成无限循环的语句或语句组是_。(分数:1.00)A.n=0;while1n+;B.n=0;do +n; while(n=0);C.n=10;while(n); n-;D.for(n=0,i=1; ;i+)n+=i;19.有以下程序: #includestdio.h #define MIN(x, y)(x)(y)?(x):(y) main() int i, j, k; i=10; j=15; k=10*MIN(i, j); printf(

8、“%d/n“, k); 程序的运行结果是(分数:2.00)A.15B.100C.10D.15020.有以下程序 #include stdio.h #include string.h typedef struct char name9;char sex;float score2; STU; void f(STU a) STU b=“Zhao“,“m“,85.0,90.0; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; main() STU c=“Qian“,“f“,95.0,92.0; f

9、(c); printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1); 程序的运行结果是_。(分数:1.00)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,9021.下面对软件特点描述错误的是_。(分数:1.00)A.软件没有明显的制作过程B.软件是一种逻辑实体,不是物理实体,具有抽象性C.软件的开发、运行对计算机系统具有依赖性D.软件在使用中存在磨损、老化问题22.有以下程序: #includestdio.h void f(int x,int n) if(n1) pri

10、ntf(“%d,“,x0); f( printf(“%d,“,x0); else printf(“%d,“,x0); main() int z3=4,5,6; f(z,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,6,5,4,B.4,5,6,5,4,C.4,5,6,4,5,6,D.6,5,4,5,6,23.若 a 是数值类型,则逻辑表达式(a=1)|(a!=1)的值是_。(分数:1.00)A.1B.0C.2D.不知道 a 的值,不能确定24.下列叙述中正确的是_。(分数:2.50)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈

11、中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化25.有以下程序 #includestdio.h main() int x32=0, i; for(i=0; i3; i+)scanf(“%d“, xi); printf(“%3d%3d%3d/n“, x00, x01, x10); 若运行时输入:2 4 6回车,则输出结果为_。(分数:2.00)A.2 0 4B.2 0 0C.2 4 0D.2 4 626.有以下程序 #includestdio.h void fun(int

12、 x, int y, int *c, int *d) *c=x+y; *d=x-y; main() int a=4, b=3, c=0, d=0; fun(a, b, printf(“%d%d/n“, c, d); 程序的输出结果是_。(分数:2.00)A.7 1B.4 3C.3 4D.0 027.有函数调用语句:func(exp1, exp2), (exp3, exp4, exp5);,此函数调用语句含有的实参个数是(分数:2.00)A.1B.2C.4D.528.若有定义和语句: ( ) int * * pp, * p,a10,b20 ppprintf(“%d,%d”n“,* p,* * p

13、p); 则输出结果是(分数:1.00)A.10, 10B.10,20C.20,10D.20,2029.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_B.8_8C.voidD.unsigned30.有以下程序: #includestdio.h main() int a=1, b=0; if(-a)b+; else if(a=0) b+=2; else b+=3; printf(“%d/n“, b); 程序运行后的输出结果是_。(分数:1.00)A.0B.1C.2D.3二级 C 语言分类模拟题 578 答案解析(总分:38.50,做题时间:90 分钟)一、选择题(总题数:30,分

14、数:38.50)1.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是_。(分数:1.00)A.12345ABCDEB.EDCBA54321 C.ABCDE12345D.54321EDCBA解析:解析 栈按后进先出的原则组织数据,因此入栈最晚的最先出栈,因此本题答案为 B。2.有以下程序 #include stdio.h main() int x,y,z; x=y=1; z=x+,y+,+y; printf(“%d,%d,%d/n“,x,y,z); 程序运行后的输出结果是_。(分数:1.00)A.2,3,1 B.2,3,2C.2

15、,3,3D.2,2,1解析:解析 对于表达式“z=x+,y+,+y;”,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式改成“(z=x+),(y+),(+y)”。然后从左向右先计算表达式 z=x+,因为 x+先使用后自增,所以 z 的值为 1,x 的值为 2。再计算逗号表达式第二个表达式 y+,此时 y 的值为 1,y+的值为 2。最后计算第三个表达式+y,y 的值为 3,故本题答案为 A。3.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 _(分数:1.00)A.PAD 图B.N-S 图 C.结构图D.数据流图解析:4.已有定义:

16、int x=3,y=4,z=5;,则表达式!(x+y)+z-1 i=n1; j=n2; while (ij) t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; i+; j-; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i, *p=a; fun(p, 0, 3); fun(p, 4, 9); fun(p, 0, 9); for(i=0; i10; i+) printf(“%d“, *(a+i); 程序的输出结果是(分数:1.00)A.0987654321B.4321098765C.5678901234 D.0987651234解

17、析:7.合法的八进制数是(分数:2.00)A.0 B.028C.-077D.01.0解析:8.有以下程序: #includestdio.h struct S int a,b;data2=10,100,20,200; main() struct S p=data1; printf(“%d/n“,+(p.a); 程序运行后的输出结果是_。(分数:1.00)A.10B.11C.20D.21 解析:解析 声明 data 是结构数组 s。初始化后得 data0.a=10;data0.b=100;data1.a=20;data1.b:200。主函数中 p=data1;即 p.a=data1.a;p.b=d

18、ata1.b;执行语句printf(“%d/n“,+(p.a);打印输出时 p.a 先增 1 再打印。p.a=data1.a=20,先增 1 等于 21。所以选择D 选项。9.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 _(分数:1.00)A.等于原来关系中的元组个数 B.大于原来关系中的元组个数C.小于原来关系中的元组个数D.不能确定元组个数解析:10.若有定义:“double a=22;int i=0,k=18;”,则不符合 C 语言规定的赋值语句是_。(分数:1.00)A.a=a+,i+;B.i=(a+k)=(i+k);C.i=a%11; D.i=!a;解析:解析 运算符

19、%要求两个运算对象都为整型。选项 C 中 a 为 double 型,不符合要求。11.有以下程序: #includestdio.h #define S(x)4*(x)*x+1 main() int k=5, j=2; printf(“%d/n“, S(k+j); 程序运行后的输出结果是_。(分数:1.00)A.197B.143 C.33D.28解析:解析 此程序考查带参数的宏定义,S(k+j)展开后即 4*(k+j)*k+j+1,所以结果为 143,答案为B。12.下列关于栈的叙述正确的是_。(分数:2.00)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.

20、不能删除数据解析:解析 栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为 B。13.有以下程序: # include stdio.h main() char s=“012xy/08s34f4w2“; int i;n=0; for(i=0;si!=0;i+) if(si=“0“ si=“9“)n+; printf(“%d/n“,n); 程序运行后的输出结果是_。(分数:1.00)A.0B.3 C.7D.8解析:解析 考查简单的 C 语言程序数组和循环。for 循环是指 i=0,如果 si!=0,则 i 自动加 1。if循环指的是 si中的元素大干等于 0 且小

21、于等于 9,则 n 加 1,所以答案为 B。14.在 C 语言中,函数调用时_。(分数:2.00)A.实参和形参各占独立的存储单元 B.实参和形参共用存储单元C.由系统自动确定实参和形参是否共用存储单元D.由用户指定实参和形参是否共用存储单元解析:15.有以下程序: #include stdio.h int sub(double a, double b) return (int)(a - b -1.3); main( ) printf(“%d/n“, sub(3.2,4.1); 程序运行后的输出结果是_。(分数:1.00)A.-2 B.1.7C.-3D.2.0解析:解析 sub()函数输出(i

22、nt)(a-b-1.3)将结果强制转化为整型,因此可以排除 B、D 选项,(a-b-1.3)=-2.2,(int)(-2.2)=-2,sub)(32,41)=-2,故答案为 A 选项。16.在软件设计中,不属于过程设计工具的是_。(分数:1.00)A.PDL(过程设计语言)B.PAD 图C.N-S 图D.DFD 图 解析:17.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是_。(分数:1.00)A.-369B.369 C.0.369D.整数集合1,2,3,4,5解析:解析 只有选项 B 中 369 可以用无符号整数来表示和存储。选项 A 中-369 有负号,选项 C 中0

23、.369 是小数都不能用无符号整数类存储。选项 D 是一个整数集合,得用数组来存储。18.以下不构成无限循环的语句或语句组是_。(分数:1.00)A.n=0;while1n+;B.n=0;do +n; while(n=0); C.n=10;while(n); n-;D.for(n=0,i=1; ;i+)n+=i;解析:解析 选项 B 中 do 后面的语句只执行了一次便结束了循环;A 选项中条件 while1永远成立,因此是死循环;C 选项中 n 的值为 10,而循环体为空语句,所以 while(n)永远为真,进入死循环;D 选项中for 语句第二个表达式为空,因此没有判定条件,进入死循环。因此

24、本题答案为 B。19.有以下程序: #includestdio.h #define MIN(x, y)(x)(y)?(x):(y) main() int i, j, k; i=10; j=15; k=10*MIN(i, j); printf(“%d/n“, k); 程序的运行结果是(分数:2.00)A.15 B.100C.10D.150解析:20.有以下程序 #include stdio.h #include string.h typedef struct char name9;char sex;float score2; STU; void f(STU a) STU b=“Zhao“,“m“

25、,85.0,90.0; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; main() STU c=“Qian“,“f“,95.0,92.0; f(c); printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1); 程序的运行结果是_。(分数:1.00)A.Qian,f,95,92 B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90解析:解析 本题考查的是结构体变量用作函数参数。结构体变量用作函

26、数参数时是传值调用,即在函数内部无论怎样修改形参结构体变量的内容,都不会影响到调用函数时传递给函数的实参结构体变量。因此,本题的 f()函数没有任何实际作用,它改变不了什么内容。故本题的结果是定义结构体 c 时给出的初始值,应该选择 A。21.下面对软件特点描述错误的是_。(分数:1.00)A.软件没有明显的制作过程B.软件是一种逻辑实体,不是物理实体,具有抽象性C.软件的开发、运行对计算机系统具有依赖性D.软件在使用中存在磨损、老化问题 解析:解析 软件具有以下特点:软件是一种逻辑实体,具有抽象性;软件没有明显的制作过程;软件在使用期间不存在磨损、老化问题;对硬件和环境具有依赖性;软件复杂性

27、高,成本昂贵;软件开发涉及诸多的社会因素。故 D 选项正确。22.有以下程序: #includestdio.h void f(int x,int n) if(n1) printf(“%d,“,x0); f( printf(“%d,“,x0); else printf(“%d,“,x0); main() int z3=4,5,6; f(z,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,6,5,4,B.4,5,6,5,4, C.4,5,6,4,5,6,D.6,5,4,5,6,解析:解析 本题考查了函数的递归调用,在 main 函数中调用 f(z,3

28、)后,系统进入 f()函数,随后进入if 语句,输出 x0;再进入 f()函数时,存在 for(i=0; i3; i+)scanf(“%d“, xi); printf(“%3d%3d%3d/n“, x00, x01, x10); 若运行时输入:2 4 6回车,则输出结果为_。(分数:2.00)A.2 0 4 B.2 0 0C.2 4 0D.2 4 6解析:解析 本题中输入的 3 个数据 2, 4, 6 分别赋给了 x00,x10,x020。x01】仍为初始时的 0,因此输出时的结果为 A 选项。26.有以下程序 #includestdio.h void fun(int x, int y, in

29、t *c, int *d) *c=x+y; *d=x-y; main() int a=4, b=3, c=0, d=0; fun(a, b, printf(“%d%d/n“, c, d); 程序的输出结果是_。(分数:2.00)A.7 1 B.4 3C.3 4D.0 0解析:解析 函数 fun 将前两个参数的和赋值给 c,两数的差赋值给 d,所以结果为 A。27.有函数调用语句:func(exp1, exp2), (exp3, exp4, exp5);,此函数调用语句含有的实参个数是(分数:2.00)A.1B.2 C.4D.5解析:28.若有定义和语句: ( ) int * * pp, * p

30、,a10,b20 ppprintf(“%d,%d”n“,* p,* * pp); 则输出结果是(分数:1.00)A.10, 10B.10,20C.20,10D.20,20 解析:29.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_ B.8_8C.voidD.unsigned解析:解析 C 语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B 中以数字 8 开头,所以错误。C、D 选项中用的是关键字 void 与 unsigned,所以错误。所以选择 A 选项。30.有以下程序: #includestdio.h main() int a=1, b=0; if(-a)b+; else if(a=0) b+=2; else b+=3; printf(“%d/n“, b); 程序运行后的输出结果是_。(分数:1.00)A.0B.1C.2 D.3解析:解析 主要考查 if(-a),意思为如果-a 为真,将会一直进行下列语句,所以答案为 C。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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