【计算机类职业资格】二级C语言笔试-338及答案解析.doc
《【计算机类职业资格】二级C语言笔试-338及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-338及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-338 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设有以下语句:int a=1, b=2, c;c=a(b2);执行后,c 的值为( )。(分数:2.00)A.6B.7C.8D.92.下列程序中 C的二进制值是( )。char a=2, b=4, c;c=ab2;(分数:2.00)A.00000011B.00010100C.00011100D.000110003.设“int x=2, y=1;”,则表达式(!x y-)的值是( )。(分数:2.00)A.0B.1C.2D.-14.下列程序的输出的结果是( )。main
2、()double d=3.2; int x, Y;x=1.2; y=(x+3.8)/5.0;printf(“%d/n“, d*y);(分数:2.00)A.3B.3.2C.0D.3.075.函数 fseek()的正确调用形式是( )。(分数:2.00)A.fseek(位移量,起始点,文件类型指针);B.fseek(文件类型指针,位移量,起始点);C.fseek(文件类型指针,起始点,位移量);D.fseek(起始点,位移量,文件类型指针);6.为了避免在嵌套的条件语句 if else中产生二义性,C 语言规定,else 子句总是与( )配对。(分数:2.00)A.缩排位置相同 ifB.其前面最近
3、的 ifC.其后面最近的 ifD.同一行上的 if7.下列函数的类型是( )。fun(double x)float y;y=3*x=4;return y;(分数:2.00)A.intB.不确定C.voidD.float8.若有以下程序段,w 和 k都是整型变量:w=k;LB: if(w=0)go to LE;W-;printf(“*“)goto LB;LE:则不能与上面程序段等价的循环语句是( )。(分数:2.00)A.for(w=k; w!=0; w-)printf(“*“);B.for(w=k; w; -w)printf(“*“);C.w=k;while(W-! =0)printf(“*“
4、);D.w=k;w+; dow-; printf(“*“); )while(w!=0);9.设有下列程序段:char str=“HelloWorld“;char *ptr;ptr=str;执行上面的程序段后,*(ptr+10)的值为( )。(分数:2.00)A./0B.0C.不确定的值D.0的地址10.有以下程序:fun(int x)int p; if(x=0x=1)return(3);p=x-fun(x-2);return p;main()printf(“%d/n“, fun(7); 程序执行后的输出结果是( )。(分数:2.00)A.7B.3C.2D.011.有下列程序:main()int
5、 y=10;doy-; )while(-y);printf(“%d/n“, -y);当执行程序时,输出的结果是( )。(分数:1.00)A.-1B.1C.4D.012.有以下程序:void swap(char *x, char *y)char t;t= *x; *x *y; *y=t;main()char *s1=“abc“, *s2=“123“;swap(s1, s2);printf(“%s, %s/n“, s1, s2);程序执行后的输出结果是( )。(分数:1.00)A.123,abcB.abc,123C.1bc,a23D.321,cba13.以下叙述中正确的是( )。(分数:1.00)
6、A.预处理命令行必须位于 C源程序的起始位置B.在 C语言中,预处理命令行都以“#”开头C.每个 C程序必须在开头包含预处理命令行:#includestdio.hD.C语言的预处理不能实现宏定义和条件编译的功能14.若有下列定义(设 int类型变量占 2个字节):int i=8, j=9;则下列语句:printf(“i=%d, j=%d/n“, i, j);输出的结果是( )。(分数:1.00)A.i=8, j=9B.i=%d, i=%dC.i=%8, j=%9D.8,915.下面程序的输出是( )。main()int t=1; fun(fun(t); fun(int h)static int
7、 a3=1,2,3;int k;for(k=0; k3; k+)ak+=ak=h;for(k=0; k3; k+)printf(“%d“, ak);printf(“/n“);return(ah); (分数:1.00)A.1,2,3,1,5,9,B.1,3,5,1,3,5,C.1,3,5,0,4,8,D.1,3,5,-1,3,7,16.设在 C语言中,float 类型数据占 4个字节,则 double类型数据占( )个字节。(分数:1.00)A.1B.2C.8D.417.下述程序的运行结果是( )。#includestdio.h#includestring.hmain()char*s1=“abD
8、uj“;char*s2=“ABdUG“;int t;t=strcmp(s1, s2);printf(“%d“, t);(分数:1.00)A.正数B.负数C.零D.不确定的值18.下列程序的运行结果为( )。#define MAX(x, y) (x)(y)?(x):(y)main()int a=2, b=3, c=1, d=3, t;printf(“%d/n“, (MAX(a+b, c+d)*100);(分数:1.00)A.500B.5C.4D.40019.下列叙述正确的是( )。(分数:1.00)A.C语言中的文件是流式文件,因此只能顺序存取数据B.打开一个已存在的文件并进行了写操作后,原有文
9、件中的全部数据必定被覆盖C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失20.按照“先进后出”原则组织数据的结构是( )。(分数:1.00)A.队列B.栈C.双向链表D.二叉树21.下列选项中不属于软件生命周期开发阶段任务的是( )。(分数:2.00)A.软件测试B.概要设计C.软件维护D.详细设计22.语句“printf(“a/bre“/hi/y/bou/n“)”;的输出结果是( )。(分数:2.00)A.a/bre/hi/y/bouB.a/bre/hi/y/bouC.rehiyouD
10、.abrehiy/bou23.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是( )。(分数:2.00)A.e3、e1、e4、e2B.e2、e4、e3、e1C.e3、e4、e2D.任意顺序24.下列程序的运行结果是( )。int y=5, x=14;y=(x=3*y, x+1), x=1);printf(“x=%d, y=%d“, x, y);(分数:2.00)A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=2725.一些重要的程序设计语言(如 C语言和 Pascal语言)允许过程的递归调用。而实现递归调用中的存储分配通常用( )。(分数:2.00)A.
11、栈B.堆C.数组D.链表26.数据库管理系统 DBMS中用来定义模式、内模式和外模式的语言为( )。(分数:2.00)A.CB.BasicC.DDLD.DML27.表达式5-1的值是( )。(分数:2.00)A.整数 4B.字符 4C.表达式不合法D.字符 628.下面的函数调用语句中 func函数的实参个数是( )。func(f2v1, v2), (v3, v4, v5), (v6, max(v7, v8)(分数:2.00)A.3B.4C.5D.829.下列程序执行后的输出结果是( )。void func(int *a, int b)b0=*a+b; )main()int a,bs;a=0;
12、 b0=3;func(a, b); printf(“%d/n“, b0);(分数:2.00)A.6B.7C.8D.930.有以下程序:main()int a=1, b=3, c=5, *p;int *p1=a, *p2=b, *p3=c;*p= *p1*(*p2);printf(“%d/n“, *p);执行后的输出结果是( )。(分数:2.00)A.1B.2C.3D.431.下列程序执行后的输出结果是( )。main()char x=0xFFFF; printf(“%d/n“, x-); (分数:2.00)A.-32767B.FFFEC.-1D.-3276832.下列程序的输出结果是( )。m
13、ain()int p8=11, 12, 13, 14, 15, 16, 17, 18, i=0, j=0;while(i+7)if(pi%2)j+=pi;printf(“%d/n“, j);(分数:2.00)A.42B.45C.56D.6033.下列说法正确的是( )。(分数:2.00)A.在 C语言中,可以使用动态内存分配技术,定义元素个数可变的数组B.在 C语言中,数组元素的个数可以不确定,允许随机变动C.在 C语言中,数组元素的数据类型可以不一致D.在 C语言中,定义一个数组后,就确定了它所容纳的元素的个数34.若有下列定义和语句:int u=011,v=0x11,w=11;printf
14、(“%0, %x, %d/n“, u, v, w);则输出结果是( )。(分数:2.00)A.9,17,11B.9,11,11C.11,11,11D.11,17,1135.有以下程序:main()int i, j, x=0;for(i=0; i2; i+)x+;for(j=0; j=3; j+)if(j=0; j=3; j+)x+;x+;printf(“x=%d/n“, x);程序执行后的输出结果是( )。(分数:2.00)A.x=4B.x=8C.x=6D.x=1236.下列程序的输出结果是( )。#includestdio.h#includestring.hvoid fun(int b)st
15、atic int i=0;dobi+=bi+1;while(+i2);main()int k, a5=1, 3, 5, 4, 9;fun(a);for(k=0; k%5; k+)printf(“%d“, ak);(分数:2.00)A.13579B.48579C.48549D.4899937.表达式“0x11”的值是( )。(分数:2.00)A.0xFFEEB.0x71C.Ox0071D.OxFFEl38.以三级模式为框架形成的 3种数据库中,真实存在于计算机外存的数据库是( )。(分数:2.00)A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库39.下列叙述中正确的是( )。(分数:2
16、.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对40.下列程序的运行结果是( )。#includestdio.hmain()static char a=“Languagef“,b=“programe“;char *p1, *p2; int k;p1=a; p2=b;for(k=0; k=8; k+)if(*(p1+k)=*(p2+k)printf(“%c“, *(p1+k);(分数:2.00)A.gaeB.angC.programD.有语法错二、填空题(总题数:14,分数:30.00)41.长度为 n的顺序存储线性
17、表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动的元素的平均个数为 1。(分数:2.00)填空项 1:_42.软件设计模块化的目的是 1 程序设计的复杂性。(分数:2.00)填空项 1:_43.在算法的 4个特性中,算法必须能执行有限个步骤之后终止指的是算法的 1 特性。(分数:2.00)填空项 1:_44.设一棵完全二叉树共有 500个结点,则在该二又树中有 1 个叶子结点。(分数:2.00)填空项 1:_45.下列表达式用于判断 y是否为闰年。闰年的判断条件是:年号能被 4整除但不能被 100整除或年号能被 400整除,请填空。(分数:2.00)填空项 1:_46.若有定
18、义:“int a=10, b=9, c=8;”接着顺序执行下列语句后,变量 b中的值是_。c=(a-=(b-5);c=(a%11)+(b=3);(分数:2.00)填空项 1:_47.用以下语句调用库函数 malloc,使字符指针 st指向具有 11个字节的动态存储空间,请填空。st=(char*)_。(分数:2.00)填空项 1:_48.表达式 por(2.8,sqrt(float(x)值的数据类型为 1 型。(分数:2.00)填空项 1:_49.下列程序段的输出结果是_。int n=c;switch(n+)default: printf(“error“); break;casea: case
19、A: caseb: caseB: printf(“good“); break;casec: casec: printf(“pass“);cased: caseD: printf(“warn“);(分数:2.00)填空项 1:_50.以下程序的输出结果是_。main()int a=1, b=2;a=a+b; b=a=b; a=a=b;printf(“%d, %d/n“, a, b);(分数:2.00)填空项 1:_51.要求使下列程序输出 5个整数,请填空。for(i=0; i=_; printf(“%d/n“, i+=2); );(分数:2.00)填空项 1:_52.在宏定义#define P
20、I 3.14159 中,用宏名 PI代替一个_。(分数:2.00)填空项 1:_53.下列程序的输出结果是_。#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:_下面 rotate函数的功能是:将 n行 n列的矩阵 A转置 A,例如当 (分数:4.00)填空项 1:_填空项 1:_二级 C语言笔试-338 答案
21、解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设有以下语句:int a=1, b=2, c;c=a(b2);执行后,c 的值为( )。(分数:2.00)A.6B.7C.8D.9 解析:解析 本题考查两个知识点,按位异或和左移把 b左秽 2位化成二进制 c=a(b2)=a(0000102)=a001000=0000001001000=9,故选择 D。2.下列程序中 C的二进制值是( )。char a=2, b=4, c;c=ab2;(分数:2.00)A.00000011 B.00010100C.00011100D.00011000解析:解析 本题
22、主要考查右移运算和按位异或。把 b化为二进制数为 00000100,右移两位后为00000001,a 的二进制为 00000010,两者异或为 00000011。3.设“int x=2, y=1;”,则表达式(!x y-)的值是( )。(分数:2.00)A.0B.1 C.2D.-1解析:解析 因 x为 2,所以!x 时表达式值为 0,因 y为 1,y-表达式的值为 1然后自减 1,y 为 0,所以!xy-时表达武的值为 1。4.下列程序的输出的结果是( )。main()double d=3.2; int x, Y;x=1.2; y=(x+3.8)/5.0;printf(“%d/n“, d*y)
23、;(分数:2.00)A.3B.3.2C.0 D.3.07解析:解析 根据赋值运算的类型转换规则,先将 double型的常量 1.2转换为 int型,因为 x的类型是int,则 x的值为 1;执行语句 y=(x+3.8)/5.0时,即先将整型变量 x的值 1转换为 double型 1.0,然后3.8相加得 4.8,进行除法运算 4.8/5.0结果为 0,即变量 y的值为 0,d*y 的值也为 0,故选 C选项。5.函数 fseek()的正确调用形式是( )。(分数:2.00)A.fseek(位移量,起始点,文件类型指针);B.fseek(文件类型指针,位移量,起始点); C.fseek(文件类型
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 338 答案 解析 DOC
