【计算机类职业资格】二级C语言笔试-358及答案解析.doc
《【计算机类职业资格】二级C语言笔试-358及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-358及答案解析.doc(42页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-358 及答案解析(总分:105.00,做题时间:90 分钟)一、选择题(总题数:50,分数:64.00)1.在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的。”这一性质指的是对象的A) 分类性 B) 标识惟一性 C) 多态性 D) 封装性(分数:1.00)A.B.C.D.2.C 语言结构体类型变量在程序运行期间( )。A) TC 环境在内存中仅仅开辟一个存放结构体变量地址的单元B) 所有的成员一直驻留在内存中C) 只有最开始的成员驻留在内存中D) 部分成员驻留在内存中(分数:1.00)A.B.C.D.3.有以下程序段i
2、nt m=0,n=1;char c=b;scanf(“%d%c%d“, printf(“%d/n“,c程序运行后的输出结果是( )。A) 0 B) 70 C) 35 D) 1(分数:1.00)A.B.C.D.5.下列程序的输出结果是main()double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;printf(“%d/n“,d*y);A) 3 B) 3.2 C) 0 D) 3.07(分数:1.00)A.B.C.D.6.能正确表示“当 x 的取值在1,10和100,110范围内为真,否则为假”的表达式是( )。A) (x=1)scanf(“%f,%f,%f“,if(a
3、b)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;)printf(“%f/n%f/n%f/n“,a,b,c);A) 1.00 B) 1.002.00 3.003.00 2.00C) 1 D) 3.0000003 2.0000002 1.000000(分数:1.00)A.B.C.D.8.以下程序的功能是计算 s=1+12+123+1234+12345。main()int t=0,s=0,i;for(i=1;i=5;i+)t=i+;s=s+t;printf(“s=d%/n“,s);则程序运行后的输出结果是A) t B) t*10 C) t*100
4、D) t+10(分数:1.00)A.B.C.D.9.若 x 和 y 都是 int 型变量,x100,y200,且有程序片段:printf(“%d“,(x,y);上面程序片段的输出结果 ( )A) 200B) 100C) 100 200D) 输出格式符不够,输出不确定的值(分数:1.00)A.B.C.D.10.有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向一个链表中的三个连续结点。struct nodeint data;struct node*next;*p,*q,*r;(分数:1.00)A.B.C.D.11.以下对枚举类型名的定义中正确的是( )。A) enum a=one,
5、two,three;B) enum aone=9,two=-1three=200;C) enum a=“one“,“two“,“four“;D) enum a“nine“,“two“,“three“;(分数:1.00)A.B.C.D.12.下列数据结构中,能用二分法进行查找的是( )。A) 顺序存储的有序线性表 B) 结性链表C) 二叉链表 D) 有序线性链表(分数:2.00)A.B.C.D.13.若有代数式 (分数:1.00)A.B.C.D.14.下列选项中错误的说明语句是A) char a =t,o,y,o,u,/0; B) char a =“toyou/0“;C) char a =“to
6、you/0“; D) char a =toyou/0;(分数:2.00)A.B.C.D.15.有以下程序:main()char s=“159“,*p;p=s;printf(“%c“,*p+);printf(“%c“,*p+);程序运行后的输出结果是 _。A)15 B)16 C)12 D)59(分数:1.00)A.B.C.D.16.union dtint a;char b;double c;data;以下叙述中错误的是A) data 的每个成员起始地址都相同B) 变量 data 所占内存字节数与成员 c 所占字节数相等C) 程序段:data.a=5;printf(“%f/n“,data.c);输
7、出结果为 5.000000D) data 可以作为函数的实参(分数:2.00)A.B.C.D.17.若变量 c 为 char 类型,能正确判断出 c 为小写字母的表达式是_。A) a=cz B) (ca)|(c=z)C) (ac)and (z=C) D) (c=a)strcpy(p+strlen(q),r); strcat(p,q);printf(“%d%d/n“,sizeof(p),strlen(p);程序运行后的输出结果是_。A) 20 9B) 9 9C) 20 11D) 11 11(分数:2.00)A.B.C.D.23.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是(
8、 )。A函数的实参和其对应的形参共占同一存储单元 B形参只是形式上的存在,不占用具体存储单元C同名的实参和形参占同一存储单元 D函数的形参和实参分别占用不同的存储单元(分数:1.00)A.B.C.D.24.若有以下的说明和语句,则在执行 for 语句后,*(*(pt+1)+2)表示的数组元素是( )。int t33,*Pt3,k;for(k=0;k3;k+) ptk=A) t20 B) t22 C) t12 D) t21(分数:2.00)A.B.C.D.25.下列程序的输出结果是_。#includestdio.hmain()unionint k;char i2;*s,a;s=printf (
9、“%d %d/n“ , sizeof (p) , sizeof (q);程序运行后输出结果是A) 4 4 B) 3 3 C) 3 4 D) 4 3(分数:1.00)A.B.C.D.29.在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是A) O(n) B) O(n2) C) O(log2n) D) O(nlog2n)(分数:2.00)A.B.C.D.30.若有以下定义:float x;int a,b,c2;,则正确的 switch 语句是 ( )A) switch(x) case 1.0:printf(“*/n“); case 2.0:printf(“*/n“);B) swi
10、tch(int(x)case 1:printf(“*/n“);case 2:printf(“*/n“);C) switch(a+b)case 1:printf(“*/n“);case 1+2:printf(“*/n“);D) switch(a+B) case 1:printf(“*/n“);case c:printf(“*/n“);(分数:1.00)A.B.C.D.31.在单链表中,增加头结点的目的是A) 方便运算的实现 B) 使单链表至少有一个结点C) 标识表结点中首结点的位置 D) 说明单链表是线性表的链式存储实现(分数:1.00)A.B.C.D.32.设有定义:char*c;,以下选项中
11、能够使字符型指针 c 正确指向一个字符串的是( )。 A) charstr=“string“;c=str; B) scanf(“%s“,c); C) c=getchar(); D) char str=“string“;strcpy(“C,str“)(分数:2.00)A.B.C.D.33.fgetc 函数的作用是从指定文件读入一个个字符,该文件的打开方式必须是_。A) 只读 B) 追加 C) 读或读写 D) 以上均正确(分数:2.00)A.B.C.D.34.C 语言运算对象必须是整型的运算符是_。A) %= B) / C) = D) =(分数:2.00)A.B.C.D.35.若有下列说明和语句,
12、则对结构体变量 st 中成员 i 的引用方式不正确的是( )。Stmct stuint i;int name;st,*p;p=A) st.i B) *p.i C) (*p).i D) p-i(分数:1.00)A.B.C.D.36.若有以下说明和定义:union dtint a; char b; double c; data; 以下叙述中错误的是( )。A) data 的每个成员起始地址都相同B) 变量 data 所占内存字节数与成员 c 所占字节数相等C) 程序段:data.a=5; printf(“%f/n“, data.c);输出结果为 5.000000D) data 可以作为函数的实参(
13、分数:1.00)A.B.C.D.37.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有以下 if 语句:if(ab)if(c=d)y=0; else y=1; 该语句所表示的含义是(分数:1.00)A.B.C.D.38.有以下程序#includestdio.hmain()FILE*fp;int i,a6=1,2,3,4,5,6;fp=fopen(“d3dat“,“w+b“);fwrite(a,sizeof(int),6,fp);fseek(fp,sizeof(int),3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动 3 个 int 型数据*/fread(a,siz
14、eof(int),3,fp);fclose(fp);for(i=0;6;+)printf(“%d,“,ai);程序运行后的输出结果是A) 4,5,6,4,5,6, B) 1,2,3,4,5,6,C) 4,5,6,1,2,3, D) 6,5,4,3,2,1,(分数:2.00)A.B.C.D.39.下列叙述中正确的是_。A) 算法的效率只与问题的规模有关,而与数据的存储结构无关B) 算法的时间复杂度是指执行算法所需要的计算工作量C) 数据的逻辑结构与存储结构是一一对应的D) 算法的时间复杂度与空间复杂度一定相关(分数:2.00)A.B.C.D.40.下列叙述中正确的是( )。A) break 语句
15、只能用于 switch 语句体中B) continue 语句的作用是使程序的执行流程跳出包含它的所有循环C) break 语句只能用在循环体内和 switch 语句体内D) 在循环体内使用 break 语句和 continue 语句的作用相同(分数:2.00)A.B.C.D.41.程序中若有如下说明和定义语句Char fun(char *);main()char *s=“one“, a5=0(*f1)()=fun, ch;以下选项中对函数 fun 的正确调用语句是A) (*f1)(A) ; B) *fl(*s); C) fun(printf(“% d/n“, x/y程序运行后的输出结果是_。A
16、) 3 B) 2 C) -1 D) 0(分数:1.00)A.B.C.D.44.若有说明:int a3=1,2,3,4,5,6,7;则数组 a 第一维的大小是( )。A) 2 B) 3 C) 4 D) 无确定值(分数:1.00)A.B.C.D.45.请选出正确的程序段A) int*p; scanf(“%d“,p); B) int*s,k;*s=100;C) int *s,k;char*p,c;s=printf(“%d %d/n“,strlen(p),strlen(q);以下叙述中正确的是A) 在给 p 和 q 数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B) 由于 p 数组中没
17、有字符申结束符,长度不能确定;但 q 数组中字符串长度为 3C) 由于 q 数组中没有字符串结束符,长度不能确定:但 p 数组中字符串长度为 3D) 由于 p 和 q 数组中都没有字符串结束符,故长度都不能确定(分数:1.00)A.B.C.D.48.有以下程序:int *flint *x, int *y)if(*x*y)return x;elsereturn y;main()int a=7,b=8,*p,*q,*r;p= q=r=f(p, q);printf(“%d, %d, %d/n“,*p,*q,*r);执行后输出结果是( )。A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8
18、,7,8(分数:1.00)A.B.C.D.49.有以下程序#includestdio.hint fun(int x;int y)if(xy)reurn(x);else return(x+y)/2);main()int a=4,b=5,c=6;printf(“%d/n“,fun(2*a,fun(b,c);程序运行后的输出结果是_。A) 3 B) 6 C) 8 D) 12(分数:2.00)A.B.C.D.50.以下能正确定义一维数组的选项是( )。A) int a5=0,1,2,3,4,5); B) char a=0,12,3,4,5);C) char a=A,B,C); D) int a5=“0
19、123“;(分数:1.00)A.B.C.D.二、填空题(总题数:20,分数:41.00)51.对于顺序存储的栈,因为栈的空间是有限的,在 1 运算时,可能发生栈的上溢。(分数:2.00)填空项 1:_52.以下程序中,select 函数的功能是:在 N 行 M 列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#define N 3#define M 3select(int aNM,int *n)int i,j,row=1,colum=1;for(i=0;iN;i+)for(j=0;jM;j+)if(aijarowcolum)row=i;colum=j;
20、*n=_;return(_);main()int aNM=9,11,23,6,1,15,9,17,20,max,n;max=select(a,printf(“%d“,x);main()fun(11);pfintf(“/n“);(分数:2.00)填空项 1:_56.下列程序的输出结果是_。#includestdiohmain()char b=“Hello you“;b5 =0;printf(“%s/n“,b);(分数:2.00)填空项 1:_57.有以下程序:#include stdio.hint sub(int n)return(n/10 + n% 10); main( )int x,y;se
21、anf(“ %d“ , y = sub (sub(sub (x);printf(“ %d /n“;,y);若运行时输入:1234回车,程序的输出结果是_。(分数:2.00)填空项 1:_58.单独测试一个模块时,有时需要一个 1 程序驱动被测试的模块。(分数:4.00)填空项 1:_59.以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1 时,表示输入结束(链表头结点的 data 域不放数据,表空的条件是 ph-next=NULL),请填空。#include stdio.hstruct list int data;struct list *next;s
22、truct list *creatlist( )struct list *p,*q,*ph;int a;ph=(struct list*)malloc(sizeof(struct list);p=q=ph;printf(“Input an integer number;entre-1 to end:/n“);scanf(“%d“,a);while(a!=-1)p=(struct list*)malloc(sizeof(struct list);_=a;q-next=p;_=p;scanf(“%d“,a);p-next=/0;return(ph);main( )stuct list * head
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 358 答案 解析 DOC
