【计算机类职业资格】二级C语言分类模拟题551及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题551及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题551及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言分类模拟题 551 及答案解析(总分:62.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.有如下程序: #include stdio.h main() char a=“3“,b=“A“; int i; for(i=0;i6;i+) if(i%3)putchar(a+i); else putchar(b+i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.A45D78B.ABC678C.34CD78D.34AB782.下列关于线性链表的叙述中,正确的是_。(分数:1.00)A.各数据结点的存储空间可以不连续,但它们的存储
2、顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上 3 种说法都不对3.以下叙述错误的是_。(分数:2.00)A.C 语言区分大小写B.C 程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改C.整数和实数都能用 C 语言准确无误地表示出来D.在 C 程序中,正整数可以用十进制、八进制和十六进制的形式来表示4.有两个关系 R 和 T 如下: R A B C a 1 2 b 4 4 c 2 3 d 3 2 T A C a 2 b 4 c 3 d 2 则由关系 R 得到关系 T 的操
3、作是_。(分数:1.00)A.选择B交C.投影D并5.结构化程序所要求的基本结构不包括_。(分数:1.00)A.顺序结构B.COTO 跳转C.选择(分支)结构D.重复(循环)结构6.C 源程序中不能表示的数制是_。(分数:2.00)A.十六进制B.八进制C.十进制D.二进制7.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.21.84B.“CPP“C.“/1.0D.2MB8.设二叉树共有 150 个结点,其中度为 1 的结点有 10 个,则该二叉树中的叶子结点数为_。(分数:1.00)A.71B.70C.69D.不可能有这样的二叉树9.下列选项中,能正确定义数组的语句是_。(分数:
4、1.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;10.下列程序的输出结果是_。 #includestdio.h main() int i, s=0; for(i=1; i10; i+) if(!(i%2) printf(“%d/n“, s); (分数:2.50)A.4B.39C.45D.611.以下语句的输出结果是_。 printf(“%d/n“,strlen(“/t“/065/xff/n“);(分数:1.00)A.5B.8C.14D.输出项不合法,无正常输出12.下列叙述中正确的是_。(
5、分数:1.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化13.若用数组名作为实参,则传递给形参的是_。(分数:1.00)A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数14.有以下程序: #include stdio.h main() FILE *fp; int i,k,n; fp=fopen(“data.dar“,“w+“); for(i=1;i6;i+) fprint
6、f(fp,“%d “,i); if(i%3=0) fprintf(fp,“/n“); rewind(fp); fscanf(fp,“%d%d“, printf(“%d%d/n“,k,n); fclose(fp); 程序运行后的输出结果是( )。(分数:1.00)A.0 0B.123 45C.1 4D.1 215.以下叙述中正确的是_。(分数:2.50)A.数组下标的下限是 1B.数组下标的下限由数组中第一个非零元素的位置决定C.数组下标的下限由数组中第一个被赋值元素的位置决定D.char c1, c2, *c3,c440;是合法的变量定义语句16.有以下程序 #include int fun(
7、char s)int n=0;while(*s=“9“s+;return(n);main()char s10=“6“,“1“,“*“,“4“,“*“,“9“,“*“,“0“,“*“;printf(“%d/n“,fun(s);程序的运行结果是_。 A.61490 B.61 C.9 D.5A B C D B解析 f 函数将数组字符串转换为对应的整数,遇见不是数字字符停止,所以答案选择 B。(分数:1.00)A.61490B.61C.9D.517.下面程序段的运行结果是 char a =“lanuage“,*p; p=a; while(*p!=“u“)printf(“%c“,*p-32);p+;(分
8、数:2.00)A.LANGUAGEB.languageC.LAND.langUAGE18.有以下程序 #includestdio.h typedef structint b,p;A; void f(A c) /* 注意:c 是结构变量名*/ int j; c.b+=1;c.p+=2; main() int i; A a=1,2; f(A); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:1.00)A.2,4B.1,2C.1,4D.2,319.已定义以下函数: int fun(int *p) return *p; fun 函数返回值是_。(分数:2.50
9、)A.一个整数B.不确定的值C.形参 p 中存放的值D.形参 p 的地址值20.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中 buffer 代表的是_。(分数:2.00)A.一个内存块的字节数B.一个整型变量,代表待读取的数据的字节数C.一个文件指针,指向待读取的文件D.一个内存块的首地址,代表读入数据存放的地址21.在位运算中,操作数每右移两位,其结果相当于 _ 。(分数:2.00)A.操作数乘以 2B.操作数除以 2C.操作数除以 4D.操作数乘以 422.以下叙述中正确的是_。(分数:1.00)A.a 是实型变量,C 允许进行赋值 a=1
10、0,但不可以这样说:实型变量中允许存放整型值B.在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C.执行表达式 a=b 后,在内存中 a 和 b 存储单元中的原有值都将被改变,a 的值已由原值改变为 b 的值,b 的值由原值变为 0D.已有 a=3,b=5,当执行了表达式 a=b,b=a 之后,使 a 中的值为 5,b 中的值为 323.以下选项中,能够正确利用随机函数 rand(),产生一个英文字母的表达式是_。(分数:1.00)A.rand()%2=0?rand()%“A“:rand()%“a“B.rand()%26+“A“|rand()%26+“a“C.rand()%26+“A“
11、B.double int_;C.char For;D.float US$;31.以下程序的输出结果是_。 #includestdjo.h struct st int x;int*y;*p; int dt4=1,2,3,4); struct st aa41=2, main() p=aa; printf(“%d/n“,+(p-x); (分数:2.00)A.1B.2C.3D.432.有以下程序: #includestdio.h #define N 4 main() int aNN=0, i, j, k; for(i=0; iN/2; i+) for(j=i; jN-i; j+) aij=aN-i-1
12、j=i+1; for(k=i+1; kN-i-1; k+) aki=akN-i-1=i+1; for(j=0; jN; j+) printf(“%2d“, a1j); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.1 2 2 1B.1 1 1 1C.2 1 1 2D.2 2 2 233.设有定义:“int a; float b;”,执行“scanf(“%2d%f“, ”语句时,若从键盘输入876543.0回车,a 和 b 的值分别是_。(分数:2.50)A.876 和 543.000000B.87 和 6.000000C.87 和 543.000000D.76 和 5
13、43.00000034.以下选项中叙述错误的是_。(分数:1.00)A.C 程序函数中定义的赋有初值的静态变量,每调用一次函数赋一次初值B.在 C 程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内C.C 程序函数中定义的自动变量,系统不自动赋确定的初值D.C 程序函数的形参不可以说明为 static 型变量35.有以下函数: int aaa(char *s) char *t=s; while(*t+ +); t-; return(t-s); 以下关于 aaa 函数功能叙述正确的是_。(分数:2.50)A.将串 s 复制到串 tB.比较两个串的大小C.求字符串 s 的长度D.
14、求字符串 s 所占字节数36.有以下程序 #includestdio.h int fun(int x,int n) static int sum=0,i; for(i=0;in;i+) sum+=xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(“%d/n“,s); 程序执行后的输出结果是_。(分数:1.00)A.50B.60C.45D.5537.设有以下程序段 int X=0,s=0; while(!X!=0)S+=+X; printf(“%d“,s); 则(分数:2.00)A.
15、运行程序段后输出 0B.运行程序段后输出 1C.程序段中的控制表达式是非法的D.程序段执行无限次38.以下对 C 语言中联合类型数据的正确叙述是_。(分数:2.00)A.定义了联合变量后,即可引用该变量或该变量中的任意成员B.一个联合变量中可以同时存放其所有成员C.联合中的各个成员使用共同的存储区域D.在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变39.有以下定义和语句: struct workers int num; char name20; char c; struct int day; int month; int year; s; ; struct workers w, *
16、pw; pw= 能给 w 中 year 成员赋 1980 的语句是_。(分数:1.00)A.*pw.year=1980;B.year=1980;C.pw-year=1980D.s.year=1980;40.有以下程序: #include stdio.h #define N 4 void fun(int aN,int b) int i; for(i=0;iN;i+ +) bi = aii; main( ) int xN=1,2,3,4,5,6,7,8,9,10,yN,i; fun(x, y); for(i=0;iN;i+ +) printf(“%d,“, yi); printf(“/n“); 程
17、序的运行结果是_。(分数:2.50)A.1,0,7,0,B.1,2,3,4,C.1,4,5,9,D.3,4,8,10,二级 C 语言分类模拟题 551 答案解析(总分:62.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.有如下程序: #include stdio.h main() char a=“3“,b=“A“; int i; for(i=0;i6;i+) if(i%3)putchar(a+i); else putchar(b+i); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.A45D78 B.ABC678C.34CD78D.3
18、4AB78解析:解析 putchar 函数是向标准输出设备上输出一个字符。字符在内存中以 AScII 码方式存储,可以与整数进行加减运算,但是要保证计算结果在 0255 之间。本题执行过程为:i=0,i%3=0,if 条件不成立执行 else 函数体,输出字符 A;i=1,i%3=1,if 条件成立输出字符 4;i=2,i%3=2,if 条件成立输出字符 5;i=3,if 条件不成立,输出字符 D;i=4 和 i=5 时,分别输出字符 7 与 8;i=6 退出 for 循环。所以程序运行后输出结果为 A45D78,故 A 选项正确。2.下列关于线性链表的叙述中,正确的是_。(分数:1.00)A
19、.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素 D.以上 3 种说法都不对解析:解析 线性链表中各个数据节点的存储空间可以不连续,其存储顺序与逻辑顺序也可以不一致,所以 A 和 B 选项错误。线性链表在插入和删除数据时只需要修改指针的指向,即可不需要移动表中的元素。3.以下叙述错误的是_。(分数:2.00)A.C 语言区分大小写B.C 程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改C.整数和实数都能用 C 语言准确无误地表示出来 D
20、.在 C 程序中,正整数可以用十进制、八进制和十六进制的形式来表示解析:4.有两个关系 R 和 T 如下: R A B C a 1 2 b 4 4 c 2 3 d 3 2 T A C a 2 b 4 c 3 d 2 则由关系 R 得到关系 T 的操作是_。(分数:1.00)A.选择B交C.投影 D并解析:解析 关系 T 是由关系 R 的第 1、3 列的元组组成,这是对关系 R 进行投影运算的结果。可以简单理解为:选择运算是对行的操作,投影运算是对列的操作。5.结构化程序所要求的基本结构不包括_。(分数:1.00)A.顺序结构B.COTO 跳转 C.选择(分支)结构D.重复(循环)结构解析:解析
21、 1966 年 Boehm 和 Jacopini 证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。6.C 源程序中不能表示的数制是_。(分数:2.00)A.十六进制B.八进制C.十进制D.二进制 解析:解析 在 C 语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择 D。7.以下选项中,合法的 C 语言常量是_。(分数:1.00)A.21.84 B.“CPP“C.“/1.0D.2MB解析:解析 21.84 是典型的浮点型数据,故 A 选项正确;字符常量是单引号括起来的一个字符,字符串常量是双引号括起来的字符序列
22、,B、C 选项错误;C 语言常量不能直接用未加引号的字母、数字组合,故 D 选项错误。8.设二叉树共有 150 个结点,其中度为 1 的结点有 10 个,则该二叉树中的叶子结点数为_。(分数:1.00)A.71B.70C.69D.不可能有这样的二叉树 解析:解析 在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中最大的度称为树的度。对任何一棵二叉树,度为 0 的结点总是比度为 2 的结点多一个。如果有一棵二叉树,结点总数为150,假设度为 0 的结点个数为 n,则有 n+10+n-1=150,n=70.5,由于结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择 D 选项。9
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 551 答案 解析 DOC
