【计算机类职业资格】二级C语言笔试-149及答案解析.doc
《【计算机类职业资格】二级C语言笔试-149及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-149及答案解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-149 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下选项中不合法的标识符是(分数:2.00)A.ptintB.FORC.&aD._002.下面程序中有错误的行是(每行程序前面的数字表示行号)1 main()2 3 int a3=1;4 int i;5 scanf(“%d“,&(分数:2.00)A.;&3.阅读下面程序段,则执行后的结果为#inclide“stdio.h“main()int m=4,n=2,k;k=fun(m,n);printf(“%d/n“,k);fun(int m,int n)return(m*
2、m*m-n*n*n);(分数:2.00)A.64B.8C.56D.04.以下合法的十六进制数是(分数:2.00)A.0xB.0x4deC.0x1hD.oX775.下面程序的运行结果是#includestdio.hmain()static char a=“Languagef“ ,b=“programe“;char *p1,*p2; int k;p1=a;p2=b;for(k=0;k=7;k+)if(*(p1+k)=*(p2+k) printf(“%c“,*(p1+k);(分数:2.00)A.gaeB.gaC.LanSuageD.有语法错6.下列叙述中正确的是(分数:2.00)A.在面向对象的程序
3、设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对7.以下定义语句中正确的是(分数:2.00)A.int a=b=0;B.char A=65+1,b=b;C.float a=1,*b=&a,*c=&b;D.double a=0.0;b=1.1;8.主程序调用 findmax 函数求出数组中最大元素在数组中的下标,括号中需填写的内容是#includestdio.hfindmax(int*s,int t,int*k)int p;for(p=0,*k=p;pt;p+)if(sps*k)(
4、 );main()int a10,i,k;for(i=0;i10;i+)scanf(“%d“,&ai);findmax(a,10,&k);printf(“%d%d/n“ ,k,ak);(分数:2.00)A.k=pB.*k=pC.k=p-sD.*k=p-s9.结构化程序设计方法的 3 种基本控制结构中不包括(分数:2.00)A.循环结构B.递归结构C.顺序结构D.选择结构10.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计11.定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句的
5、输出结果是( )。for(i=0; i3; i+)printf(“%d“,xi2-i);(分数:1.00)A.1 5 9B.1 4 7C.3 5 7D.3 6 912.如果需要打开一个已经存在的非空文件“Demo”进行修改,下面选项中正确的是(分数:1.00)A.fp=fopen(“Demo“,“r“);B.fp=fopen(“Demo“,“ab+“);C.fp=fopen(“Demo“,“w+“);D.fp=fopen(“Demo“,“r+“);13.以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是abs(int x)if(x=0)return x;e
6、lse return-x;main()int y,z,(*p)(int x)=abs;scanf(“ %d“ ,&y);z=( *p)(y); (分数:1.00)A.printf(“%d%d/n“,&p,z)B.Printf(“%d%d/n“,p,z)C.printf(“%d%d/n“,*p,z)D.printf(“%d%d/n“,p,*z)14.设已执行预编译命令#includestring.h,以下程序段的输出结果是char s=“ an apple“ ;printf(“%d/n“,strlen(s);(分数:1.00)A.7B.8C.9D.1015.x,y,z 被定义为 int 型变量,
7、若从键盘给 x,y,z 输入数据,正确的输入语句是(分数:1.00)A.INPUTx、y、z;B.scanf(“%d%d%d“,&x,&y,&z);C.scanf(“%d%d%d“,x,y,z);D.read(“%d%d%d“,&x,&y,&z);16.下述程序的输出结果是#includestdio.hvoid main()int a5=2,4,6,8,10;int*p=a,*q=&p;printf(“%d,“,*(p+);pfintf(“%d“,*q);(分数:1.00)A.4,4B.2,2C.4,5D.2,417.软件工程的出现是由于(分数:1.00)A.程序设计方法学的影响B.软件产业化
8、的需要C.软件危机的出现D.计算机的发展18.下面程序段的输出为#nclude“stdio.h“main()printf(“%d/n“,122);(分数:1.00)A.0B.47C.48D.2419.在数据管理技术的发展过程中,可实现数据共享的是(分数:1.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.系统管理阶段20.以下叙述正确的是(分数:1.00)A.continue 语句的作用是结束整个循环的执行B.只能在循环体内和 swish 语句体内使用 break 语句C.在循环体内使用 break 语句或 continue 语句的作用相同D.从多层循环嵌套中退出时,只能使用 go
9、to 语句21.设变量 a、b、c、d 和 y 都已正确定义并赋值。若有以下 if 语句if(ab)if(c=d)y=0;else y=1;该语句所表示的含义是(分数:2.00)A.B.C.D.22.有三个关系 R、S 和 T 如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系 R 和 S 通过运算得到关系 T,则所使用的运算为(分数:2.00)A.并B.自然连接C.笛卡尔积D.交23.请阅读以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switc
10、h(y)case 0:a+;break;case 2:a+,b+;break;printf(“a=%d,b=%d/n“,a,b);上面程序的输出结果是(分数:2.00)A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=224.设有定义 int n=0,*p=&n,*q=&p;,则下列选项中正确的赋值语句是(分数:2.00)A.p=1;B.*q=2;C.q=p;D.*p=5;25.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是(分数:2.00)A.auto 和 registerB.extern 和 registerC.auto 和 staticD.static
11、 和 register26.下面程序的运行结果是#includestdio.hvoid delch(char *s)int i,j;char *a;a=S;for(i=0,j=0;ai!=/0;i+)if(ai=0 &aai=9)sj=ai; j+;sj=/0;main()char *item=“a34bC“;delch(item);printf(“/n%s|,item);(分数:2.00)A.abcB.34C.a34D.a34bc27.有以下程序段char ch; int k;ch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知
12、字符 a 的 ASCII 码值为 97,则执行上述程序段后输出结果是(分数:2.00)A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=1228.下列数据结构中,按先进后出原则组织数据的是(分数:2.00)A.线性链表B.栈C.循环链表D.顺序表29.在下列关于二叉树的叙述中,正确的一项是(分数:2.00)A.在二叉树中,任何一个结点的度都是 2B.二叉树的度为 2C.在二叉树中至少有一个结点的度是 2D.一棵二叉树的度可以小于 230.执行下面的程序后,a 的值为main()int a,b;for(
13、a=1,b=1;a=10;a+)if(b%3=1)b+=3;continue;b-=5;(分数:2.00)A.7B.8C.9D.1031.能正确表示逻辑关系:“a10 或 a0”的 C 语言表达式是(分数:2.00)A.a=10 or a=0B.a=0|a=10C.a=10&a=0D.a=10a=032.以下叙述中正确的是(分数:2.00)A.C 程序中的注释只能出现在程序的开始位置和语句的后面B.C 程序书写格式严格,要求一行内只能写一个语句C.C 程序书写格式自由,一个语句可以写在多行上D.用 C 语言编写的程序只能放在一个程序文件中33.以下程序运行后,输出结果是#define PT 5
14、.5#define S(x) PT*x*x#includestdio.hmain()int a=1,b=2;printf(“%4.1f/n“,s(a+b);(分数:2.00)A.49.5B.9.5C.22D.45.034.下面叙述正确的是(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上三种描述都不对35.以下程序的输出结果是#includestdio.hinfun(int n,int *s)int n,f2;if(n=0n=1)*s=1;elsefun(n-1,&f1);
15、fun(n-2,&f2);*s=f1+f2;void main()int x;fun(6,&x);pfintf(“/n%d“,x);(分数:2.00)A.7B.13C.9D.1036.下列对于软件测试的描述中正确的是(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则37.若有以下的说明,对初值中整数 2 的正确引用方式是static structchar ch;int i;double x;a23=a,1,3,45,b,2,7,98,c,31,93;(分数:2.00)
16、A.a01.chB.a01.iC.a00.iD.a02.i38.以下叙述中错误的是(分数:2.00)A.gets 函数用于从终端读入字符串B.getehar 函数用于从磁盘文件读入字符C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件39.以下正确的程序段是(分数:2.00)A.cgar str20;scanf(“%s“,&str);B.char *p;scanf(“%s“,p);C.cha str20;scanf(“%s“,&str2)D.char str20,*p=str;scanf(“%s“,p2);40.若有以下定义的语句struct stu
17、dentint age;int num;struct student stu3=1001,20,1002,19,1003,21;main()stmct student *p;p=stu;则以下不正确的引用是(分数:2.00)A.(p+)-numB.p+C.(*p).numD.P=&stu.age二、填空题(总题数:14,分数:30.00)41.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于_。(分数:2.00)填空项 1:_42.按“先进后出”原则组织数据的数据结构是_。(分数:2.00)填空项 1:_43.软件危机出现于 60 年代末,为了解决软件危机,人们提出了_的原理来设计软件
18、,这就是软件工程诞生的基础。(分数:2.00)填空项 1:_44._(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。(分数:2.00)填空项 1:_45.数据库设计分为以下 6 个设计阶段:需求分析阶段、_、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(分数:2.00)填空项 1:_46.以下条件表达式可计算:1+|a|的值,请填空。a=0? 6 : 7 (分数:4.00)填空项 1:_47.下面程序的运行结果是_。#includestdio.hmain()int y,a;y=2,a=1;while(y-!=-1)doa*=y;a+;while(y-);printf(“%d
19、,%d“,a,y);(分数:2.00)填空项 1:_48.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“This is YES.”与“This is NO.”。空白处需要填入的内容是#includestdio.hvoid YesNo(char ch)switch(ch)casey:caseY:printf(“/n This is YES./n“);casen:caseN:Printf(“/nThis is NO./n“);main()char ch;printf(“/nEnter a chary,Yorn,N:“);ch=_;printf(“ch;%c“,c
20、h);YesNo(ch);(分数:2.00)填空项 1:_49.定义 int a=5,b;,则执行表达式 b=+a*-a 之后,变量 b 的值为_。(分数:2.00)填空项 1:_50.以下程序的输出结果是_。#include stdio.hvoid swap(int *a, int *b)int *t;int i=3,j=5,*p=&i,*q=&j;swap(p,q); printf(“%d %d/n“,*p,*q);(分数:2.00)填空项 1:_51.下面的程序实现的是从指针 p 所指向的地址的 n 个数中,找出最大的和最小的数据,请填空。fun(int *p,int n)int *q;
21、int max,min;max=min=*p;for(q=p;_;q+)if(*qmax)max=*q;else if(*qmin)min=*q;(分数:2.00)填空项 1:_52.下面程序的输出结果是_。main()static char a=“language“,b=“program“;char *ptrl=a,*ptr2=b;int kfor(k=0;k7;k+)if(*(ptrl+k)=*(ptr2+k)printf(“%c“,*(ptr1+k);(分数:2.00)填空项 1:_53.已知 bead 指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next)
22、,数据域为整型。以下函数求出链表中所有连接点数据域的和值作为函数值返回。请在横线处填入正确内容。int data; struct link *next;main()struct link *head;sam(_);stmct link *p;int s=0;p=head-next;while(p)s+=p-data;p=p-next;return(s);(分数:2.00)填空项 1:_54.以下程序的功能是从名为 filea.dat 的文本文件中逐个读入字符并显示在屏幕上。请填空。majn()FILE *fp; char ch;fp=fopen(_);ch=fgetc(fp);whle(!fe
23、of(fp) putchar(ch); ch=f8etc(fp); putchar(/n); fclose(fp);(分数:2.00)填空项 1:_二级 C 语言笔试-149 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.以下选项中不合法的标识符是(分数:2.00)A.ptintB.FORC.&a D._00解析:命题目的 考查 C 语言标识符。解题要点 C 语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。因为选项 C)中的标识符的第一个字符为“&“,所以 C)为本题的正确答案。2.下面程序
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 149 答案 解析 DOC
