【计算机类职业资格】二级C语言笔试370及答案解析.doc
《【计算机类职业资格】二级C语言笔试370及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试370及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试 370 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:70.00)1.下列叙述错误的是( )(分数:2.00)A.函数名是属于用户标识符,需符合 C 语言对标识符的规定B.形参只能是变量C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名D.函数中定义的变量可以与其他函数中的变量同名2.若有定义:int a=4,b=5;float x=3.4,y=2.1;,则下列表达式的值为( ) (float) (a+b)/2+(int)%(int)y(分数:2.00)A.5.5B.55C.5.500000D.55.00000
2、3.在 ASCII 代码表中每一个大写字母比它相应的小写字母的 ASCII 码( )(分数:2.00)A.小 32B.小 64C.大 32D.大 14.对于下列字符串,说明表达式 strlen(s) 值的是( ) char s10=(a,/n,a,b,/t,c;(分数:2.00)A.10B.1C.6D.75.有下列程序: main() inti; for(i=1;i=40;i+) if(i+ +%5=0) if(+i%8=0) printf(“%d“,i); printf(“/n“); 执行后的输出结果是( )(分数:2.00)A.5B.24C.32D.406.若 w、x、y、z、m 均为 i
3、nt 型变量,则执行下列的语句后 m 的值是( ) w=2,x=3,y=4,z=5; m=(wx)?w:x; m=(mz)?m:z; m=(my)?m:y;(分数:2.00)A.2B.3C.5D.47.下列写法正确的是( )(分数:2.00)A.main() int i=3,j; j=5 B.main() int i=3;C.main()D.main() ;8.下列不是合法的 C 语言语句是( )(分数:2.00)A.a=5B.int i; i+;C.;D.;9.不能与 dowhile(exp)语句中的(exp)等价的表达式是( )(分数:2.00)A.(!exp=0)B.(exp0exp0)
4、C.(exp=0)D.(exp!=0)10.两个或两个以上模块之间联系的紧密程度称为( )(分数:2.00)A.耦合性B.内聚性C.复杂性D.数据传输特性11.下列不属于软件工程的 3 个要素的是( )(分数:2.00)A.工具B.过程C.方法D.环境12.数据的存储结构是指( )(分数:2.00)A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据13.下列叙述中不正确的是( )(分数:2.00)A.在 C 语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.在 C 的函数中,最好使用全局变量C.外部变量可
5、以在函数之间传递数据D.自动变量实质上是一个函数内部的局部变量14.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,下列正确的程序段是( )(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“,c;B.while(ch=getchar()!=N) printf(“%c“,c;C.while(ch=getchar()=N) printf(“%c“,c;D.while(ch=getchar() =N)printf(%c,c;15.若以“a+”方式打开一个已存在的文件,则下列叙述正确的是( )(分数:2.00)A.文件打开时,
6、原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作B.文件打开时,原有文件内容不被删除,只能进行读操作C.文件打开时,原有文件内容被删除,只能进行写操作D.以上三种说法都不正确16.下列说法不正确的是( )(分数:2.00)A.C 语言程序是以函数为基本单位的,整个程序由函数组成B.C 语言程序的一条语句可以写在不同的行上C.C 语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写D.C 语言程序的每个语句都以分号结束17.设计数据库的存储结构属于( )(分数:2.00)A.需求分析B.概念设计C.逻辑设计D.物理设计18.若有说明:int a3=0,0;则不正确
7、的叙述是( )(分数:2.00)A.数组 a 的每个元素的初值都是 0B.数组 a 的第一维大小为 1C.数组 a 的行数为 1D.只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 019.若有定义 float a15,*p=a;,且数组 a 的首地址为 300H,则 p+13 所指向的数组元素的地址为 ( )(分数:2.00)A.334HB.30DHC.352HD.31AH20.下列程序的执行结果是( ) #includestdio.h main() int a,b,c; a=b=2; c=(a+) -1;printf(“%d,%d“,a,c); c+=-a+(+b);prin
8、tf(“%d,%d“,a,c); (分数:2.00)A.3,14,1B.3,14,2C.2,04,1D.2,14,121.下列说法不正确的是( )(分数:2.00)A.调用函数时,实参可以是表达式B.调用函数时,实参与形参可以共用内存单元C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等D.调用函数时,实参与形参的类型必须一致22.有下列程序: main() int i,j; for(i=1;i4;i+) for(j=i;j4;j+)printf(“%d*%d=%d“,i,j,i*j); printf(“/n“); 程序运行后的输出结果是( )(分数:2.00)A.1*1=
9、1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3B.1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9C.1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9D.1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=923.下列选项中不是字符常量的是( )(分数:2.00)A./VB./x2aC.aD.“/0“24.在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用(尖括号) 括起时,寻找被包含文件的方式是( )(分数:2.00)A.仅仅搜索当前目录B.仅仅搜索源程序所在目录C.在标准目录下查找指定的文件D
10、.先在源程序所在目录搜索,如查找不到,再按系统指定的标准目录查找25.根据下列的定义,能打印出字母 P 的语句是( ) struct stu char name10; int age; ; stmct stu s10=“John“,11, “Paul“,12, “Mary“,11, “adam“,12 :(分数:2.00)A.printf(“%c“,s3.nam;B.printf(“%c“,s3.name1);C.printf(“%c“,s2.name11);D.printf(“%c“,s1.name0);26.下列程序的输出结果是( ) main() int a,b,d=25; a=d/10
11、%9; b=a printf(“%d,%d/n“,a,b);(分数:2.00)A.6,1B.2,1C.6,0D.2,027.算法的空间复杂度是指( )(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间28.下列程序的输出结果是( ) #includestdio.h main() int a=3,b=2,c=1; if(ab) if(b0) c=0; else c+; printf(“%d/n“,c); (分数:2.00)A.0B.2C.1D.329.下列程序的功能是给 r 输入数据后计算半径为 r 的圆面积 s。程序在编译时
12、出错。 main() /* Beginning */ int r; float s; scanf(“%d“, S=*r*r; printf(“s=%f/n“,s); 出错的原因是( )(分数:2.00)A.注释语句书写位置错误B.存放圆半径的变量 r 不应该定义为整型C.输出语句中格式描述符非法D.计算圆面积的赋值语句中使用了非法变量30.在位运算中,操作数每左移两位,其结果相当于( )(分数:2.00)A.操作数乘以 2B.操作数除以 2C.操作数除以 4D.操作数乘以 431.下列描述中正确的是( )(分数:1.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又
13、是物理实体D.软件是程序、数据和相关文档的集合32.数据库技术的根本目标是要解决数据的( )(分数:1.00)A.存储问题B.共享问题C.安全问题D.保护问题33.下列程序段中,不能正确赋值的是( )(分数:1.00)A.char*p,ch; p= scanf(“%c“,&;B.char*p; p=(char*)malloc(1); scanf(“%C“,;C.char*p; *p=getchar();D.char*p,ch; p= *p=getchar();34.将 E-R 图转换到关系模式时,实体与实体间的联系可以表示成( )(分数:1.00)A.属性B.关系C.键D.域35.下列程序的运
14、行结果为( ) #includestdio.h main() struc tdate int year,month,day; )today; printf(“%d/n“,sizeof(struct date); (分数:1.00)A.8B.6C.10D.1236.下列程序的运行结果是( ) #includestdio.h main() int x=5,a=1,b=2,c=5,d=0; if(ab) if(b!=3) if(!c) x=1; else if(d) x=l; else x=-1; printf(“%d“,x); (分数:1.00)A.-1B.0C.1D.不确定的值37.关系数据库管
15、理系统能实现的专门关系运算包括( )(分数:1.00)A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表38.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )(分数:1.00)A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式39.有下列二叉树,对此二叉树前序遍历的结果为( ) (分数:1.00)A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI40.若已包括头文件string.h且已有定义 char s118,s2=“ABCDE“和 int i,现要将字符串 “ABCDE“赋给 s1,下列
16、语句错误的是( )(分数:1.00)A.strcpy(s1,s2)B.strcpy(s1,“ABCDE“);C.s1=“ABCDE“;D.for(i=0;i6;i+) s1=s2;二、B填空题/B(总题数:15,分数:30.00)41.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:2.00)填空项 1:_42.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端称作 1。(分数:2.00)填空项 1:_43.在一个容量为 32 的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共有个元素。(分数:2.00)填空项 1:_44.一
17、棵二叉树第 6 层(根结点为第一层) 的结点最多为_个。(分数:2.00)填空项 1:_45.度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_46.若 a=1,b=2,则表达式!(x=a)(y=b) if(xy) if(y0)z=0; else z+=1; printf(“%d/n“,z); (分数:2.00)填空项 1:_49.在循环中,continue 语句与 break 语句的区别是: 1 语句只是结束本次循环,然后进行循环的条件判定。(分数:2.00)填空项 1:_50.若有定义:int a44=1,2,3,4,0,4,6,8,10,1
18、,3,5,7,则初始化后,a22得到的初值是 1。(分数:2.00)填空项 1:_51.下列语句的输出结果是_。 char s20=“aaaa“,*sp=s; puts(strcat(sp,“AAAAA“);(分数:2.00)填空项 1:_52.下列程序的运行结果是_。 #define POWER(x)(x)*(x) main() int i=1; printf(“%d,%d“,POWER(i+),i); (分数:2.00)填空项 1:_53.下列程序的输出结果是_。 main() int i,sum; for(i=1;i7;i+) sum+=i; printf(“%d“,sum); (分数:
19、2.00)填空项 1:_54.设有下列的程序段: char str=“Hello“; char*ptr; ptr=str; 执行上面的程序段后,*(ptr+5)的值为_。(分数:2.00)填空项 1:_55.下列程序的输出结果是_。 #includestdio.h fun() static int a=0; a+=3;printf(“%d“,a); main() int cc; for(cc=1 ;cc5;cc+)fun(); printf(“/n“); (分数:2.00)填空项 1:_二级 C 语言笔试 370 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:4
20、0,分数:70.00)1.下列叙述错误的是( )(分数:2.00)A.函数名是属于用户标识符,需符合 C 语言对标识符的规定B.形参只能是变量C.为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名 D.函数中定义的变量可以与其他函数中的变量同名解析:解析 本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域连函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。2.若有定义:int a=4,b=5;float x=3.4,y=2.1;,则下列表达式的值为( ) (float) (a+b)/2+(int)%(int)y(分数:2.00)A.5.5
21、B.55C.5.500000 D.55.00000解析:解析 在计算(float)(a+b) /2 时,由于通过强制类型转换将(a+b)转换成了 float 型,所以应先将 2 转换成 float 型,再进行计算,得 4.500000。 在计算(int)x%(int)y 时,先将 x 和 y 通过强制类型转换成血型,再进行求余运算,得 1。 又因为 4.500000 是 float 型,所以将 1 和它相加时,先将 1 换成float 型,再计算,得到 5.500000。 知识扩展 类型转换的一般规则是:低级类型服从高级类型,并进行相应的转换。数据类型的级别由低到高的排序表示为:charint
22、unsignedlongfloatdouble。3.在 ASCII 代码表中每一个大写字母比它相应的小写字母的 ASCII 码( )(分数:2.00)A.小 32 B.小 64C.大 32D.大 1解析:解析 本题考查大小写字母的 ASCII 码值的关系。大写字母比它相应的小写字母的 ASCII 码小32。4.对于下列字符串,说明表达式 strlen(s) 值的是( ) char s10=(a,/n,a,b,/t,c;(分数:2.00)A.10B.1C.6 D.7解析:解析 strlen(s)返回 s 字符串中字符的个数,若 s 是个数组,则返回数组元素的个数。5.有下列程序: main()
23、inti; for(i=1;i=40;i+) if(i+ +%5=0) if(+i%8=0) printf(“%d“,i); printf(“/n“); 执行后的输出结果是( )(分数:2.00)A.5B.24C.32 D.40解析:解析 在 for 循环体中,首先判断自变量 i 能否被 5 整除,然后再自加两次,最后判断 i 能否被8 整除。当 for 循环执行到第 30 次时,i 的值为 30 能被 5 整除,然后 i 经过两次自加 1 运算,值变为32,能被 8 整除,故执行“printf(“%d“,i);语句,即输出 32。本题的答案为选项 C)6.若 w、x、y、z、m 均为 int
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 370 答案 解析 DOC
