【计算机类职业资格】二级C语言笔试-252及答案解析.doc
《【计算机类职业资格】二级C语言笔试-252及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-252及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言笔试-252 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设有以下语句: charx=3,y=6,z; z=xy2; 则 z的二进制值是( )。(分数:2.00)A.00010100B.00011011C.00011100D.000110002.以下有关宏的描述不正确的是( )。(分数:2.00)A.宏定义不做语法检查B.双引号中出现的宏名不进行替换C.宏名无类型D.宏名必须用大写字母表示3.程序设计的任务包括( )。(分数:2.00)A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确4.有以下
2、程序 #includestdio.h main() int k=5,n=0; while(k0) switch(k) defhult:break; case 1:n+=k: case 2: case 3:n+=k; k-; printf(“%d/n“,n); 程序运行后的输出结果是(分数:2.00)A.0B.4C.6D.75.以下程序的运行结果是( )。 #includestdio.h main() int a=3,b=4,c=8,d=4,m=1,n=3; printf(“%d/n“,(m=ab)&(n=cd); (分数:2.00)A.0B.1C.2D.36.下列选项中,不属于数据模型所描述的
3、内容的是( )。(分数:2.00)A.数据类型B.数据操作C.数据结构D.数据约束7.下列说法正确的是( )。(分数:2.00)A.auto和 register将声明的对象说明为自动存储类对象,这些对象可用在函数中或函数外B.将变量其定义为 static类型,则其初值默认为随机值C.typedef说明符并不会为对象预留存留空间D.如果一个对象被声明为 register,则埘它应用一元运算符&,意征取得其存储的地址8.若已包括头文件stdio.h和string.h,运行下面程序的输出结果是( )。 chars110=“12345“,s210=“089“,s3=“67“; strcat(strcp
4、y(s1,s2),s3); puts(s1);(分数:2.00)A.08967B.0894567C.089567D.0895679.设 y为整型变量,a=6,a 的地址为 E2000,b=14,b 的地址为 E2001;执行语句 b=&a;y=&a;后 Y的值为( )。(分数:2.00)A.E2000B.E2001C.6D.1410.设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是( )。(分数:2.00)A.(EXP=0)B.(EXP!=0)C.(EXP=1)D.(EXP!=1)11.有下列程序: main() int m,n,p; scanf(“m=%dn=%d
5、p=%d“,&m,&n,&p); printf(“%d%d%d/n“,m,n,p); 若想从键盘上输入数据,使变量 m中的值为 123,n 中的值为 456,P 中的值为 789, 则正确的输入是( )。(分数:1.00)A.m=123n=456p=789B.m=123 n=456 p=789C.m=123,n=456,p=789D.123 456 78912.以下程序段的输出结果为( )。 static char a=“programme“; char*p; p=a; for(p=a;pa+8;p+=2) putchar(*p);(分数:1.00)A.programmeB.pormC.有语法
6、错误D.prog13.以下函数 findmin拟实现存数组中查找最小值作为函数值返回,但程序中有错导致不能实现预定功能。#define MAX 2147483647 int findmin(int x,int n) int i,min; min=MAX; for(i=0;in;i+) if(minxi)min=xi; 造成错误的原因是( )。(分数:1.00)A.定义语句 int i,min;中 min未赋初值B.赋值语句 min=MAN;中,不应给 min赋 MAX值C.语句 if(minXi)min=Xi;中判断条件设置错误D.赋值语句 min=MAX;放错了位置14.有以下程序 #inc
7、ludestdio.h main() int y=9; for(;y0;y-) if(y%3=0)printf(“%d“,-y); 程序的运行结粜是( )。(分数:1.00)A.741B.963C.852D.87542115.下列关于 C语言数据文件的叙述中正确的是( )。(分数:1.00)A.文件由 ASCII码字符序列组成,C 语言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件16.若要求从键盘读入含有窄格字符的字符串,应使用函数(
8、 )。(分数:1.00)A.getc()B.gets()C.getchar()D.scanf()17.若有以下程序段: struct st int n; int*m: ; int a=2,b=3,c=5; struct st s3=(101,&a,102,&c,103,&b); main() struct st*p; p=s; 则以下表达式中值为 5的是( )。(分数:1.00)A.(*p).mB.*(p+1)-mC.*(p+)-nD.(p+)(*m)18.线性表常采用的两种存储结构是( )。(分数:1.00)A.散列方法和索引方式B.链表存储结构和数组C.顺序存储结构和链式存储结构D.线性存
9、储结构和非线性存储结构19.在软件生产过程中,需求信息的来源是( )。(分数:1.00)A.程序员B.项目经理C.设计人员D.软件用户20.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。(分数:1.00)A.需求分析B.详细设计C.软件设计D.概要设计21.对关系 S和 R进行集合运算,结果中既包含 S中的所有元组也包含 R中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.积运算22.以下程序的输出结果是( )。 int x;int*y;*p; int dt4=1,2,3,4; struct st aa4=2,&dt
10、0,3,&dt0,4,&dt0,5,&dt0,; p=aa; pfintf(“%d/n“,+(p-x); (分数:2.00)A.1B.2C.3D.423.以下关于 long、int 和 short类型数据占用内存大小的叙述中正确的是( )。(分数:2.00)A.均占 4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C语言编译系统决定24.有以下程序: #includestdio.h main() FILE *pf; char*s1=“China“,*s2=“Beijing“: pf=fopen(“abc.dat“,“wb+“); fwrite(s2,7,1,pf);
11、rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abc.dat文件的内容是( )。(分数:2.00)A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina25.有以下定义和语句: struct students int num;char name20;char c; struct int grade1;int grade2;s; ; struct students w,*pw; *pw=w; 下列赋值语句不正确的是( )。(分数:2.00)A.num=1002;B.grad
12、e1=85;C.pw-num=1002;D.s.grade2=85;26.有以下程序段 int j;float y; char name50; scanf(“%2d%f%s“,&j,&y,name); 当执行上述程序段,从键盘上输入 55566 7777abc后,y 的值为( )。(分数:2.00)A.55566.0B.566.0C.7777.0D.566777.027.当 a=4,b=5,c=7,d=6 时,执行下面一段程序: if(ab) if(cd)x=1; else if(ac) if(bc)x=2: else x=3; else x=4; else x=5; 程序执行后,x 的值为(
13、 )。(分数:2.00)A.1B.2C.3D.428.下列工具中,不属于结构化分析的常用工具的是( )。(分数:2.00)A.数据流图B.数据字典C.判定树D.S图29.以下选项中,能用作数据常量的是( )。(分数:2.00)A.018B.011C.0.8e2.5D.25L30.在下列叙述中,错误的是( )。(分数:2.00)A.C语言中,二维数组或多维数组是按行存放的B.赋值表达式 b12=a23是正确的C.char a1;a0=A与 int a1;a0=A等价D.数组名后的方括号内可以为常量表达式,也可以为变量31.下列合法的标识符是( )。(分数:2.00)A.123B.#256C.55
14、D.abhj1_2_332.下列程序的运行结果是( )。 void fun(int*s,int*p) static int t=3; void main() int a=2,3,4,5,k,x; printf(“%d,“,x): (分数:2.00)A.5,4,3,2,B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,33.在 C语言程序中,以下说法正确的是( )。(分数:2.00)A.函数的定义和函数的调用均不可以嵌套B.函数的定义不可嵌套,但函数的调用可以嵌套C.函数的定义可以嵌套,但函数的调用不可以嵌套D.函数的定义和函数的调用均可以嵌套34.对建立良好的程序设计风格,下面描述正
15、确的是( )。(分数:2.00)A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无35.数据库的故障恢复一般是由( )来执行恢复。(分数:2.00)A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户36.已知 char*S,下面正确的语句是( )。(分数:2.00)A.s=“ABCDEF“;B.*s= “ABCDEF“;C.*s=“ABCDEF“;D.*s=A;37.以下程序运行后的输出结果是( )。 #includestdio.h void reverse(int a,int n) int i,t; for(i=0;in/2
16、;i+) t=ai;ai=an-1-i;an-1-i=t; main() int b10=10,9,8,7,6,5,4,3,2,1;int i,s=0; reverse(b,10); for(i=0;i3;i+)s+=bi; printf(“%d/n“,s); (分数:2.00)A.27B.6C.25D.3038.软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需求评审和( )。(分数:2.00)A.阶段性报告B.需求分析C.需求总结D.都不正确39.设有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法进行排序,经过初始建堆后关
17、键码值 B在序列中的序号是( )。(分数:2.00)A.1B.3C.7D.940.若变量已正确定义,有以下程序段: i=0; do printf(“%d,“,i);while(i+); printf(“%d/h“,i); 其输出结果是( )。(分数:2.00)A.0,0B.0,1C.1,1D.程序进入无限循环二、填空题(总题数:15,分数:30.00)41.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_42.在最坏情况下,堆排序需要比较的次数为 1。(分数:2.00)填空项 1:_43.数据库系统的三级模式分别为 1 模式、内模式与外模式。(分数
18、:2.00)填空项 1:_44.软件开发环境是全面支持软件开发全过程的 1 集合。(分数:2.00)填空项 1:_45.关系代数是关系操作语言的一种传统表示方式,它以集合代数为基础,它的运算对象和运算结果均为 1。(分数:2.00)填空项 1:_46.已知 a=1,b=2,则表达式(a&b)&b|b 的结果为 1。(分数:2.00)填空项 1:_47.若 int x=1,y=2;则计算表达式 y+=y-=x*=y后的 y值是 1。(分数:2.00)填空项 1:_48.以下程序段的运行结果是_。 #includestdio.h main() int x=2,y=1: switch(x) case
19、 1: switch(y) case 0:printf(“x=2,y=1/n“);break; case 1:printf(“y=1/n“);break; case 2:printf(“x=2/n“); (分数:2.00)_49.以下程序统计从终端输入的字符中大写字母的个数。用#号作为输入结束标志,请填空。 #includestdio.h #includectype.h main() int num26,i;char c; for(i=0;i26;i+) numi=0; _; while(c!=# if(isupper(c) numc-65+=1; for(i=0;i26;i+) if(num
20、i) printf(“%c,%d/n“,i+65,numi); (分数:2.00)填空项 1:_50.以下程序运行后的输出结果是_。 struct NODE int k; struct NODE*link; ; main() struct NODEm5,*p=m,*q=m+4; int i=0: while(p!=q) p-k=+i;p+;q-k=1+;q-; q-k=i: for(i=0;i5;i+)printf(“%d“,mi.k); printf(“/n“); (分数:2.00)填空项 1:_51.下面程序将二维数组 a的行和列元素互换后存放到另一个二维数组 b中,请填空。 main()
21、 int a23=1,2,3,4,5,b32,i,j; for(i=0;i2;i+) for(j=0;j3;j+) _; (分数:2.00)填空项 1:_52.下面程序的输出结果是_。 #includestdio.h main() static char a=“china“; char*ptr=a; while(*ptr) printf(“%c“,*ptr-32); ptr+; (分数:2.00)填空项 1:_53.下面程序中的数组 a包括 10个整数元素,从 a中第二个元素起,分别将后项减前项之差存入数组 b,并按每行 4个元素输出数组 b,请填空。 main() int a10,b10,i
22、; for(i=0;i10;i+) scanf(“%d“,&ai); for(i=1;i10;i+) _; for(i=0;i9;i+) printf(“%d“,bi); if(i%4=0)printf(“/n“); (分数:2.00)填空项 1:_54.下面程序的运行结果是_。 #define POW(r)r*r main() int x=2,y=3,t; t=POW(x+y); printf(“%d/n“,t); (分数:2.00)填空项 1:_55.写出下列程序的执行结果。 swap(p1,p2) int*p1,*p2; int p; p=*p1;*p1=*p2;*p2=p; main(
23、) int a,b,*p1,*p2; scanf(“%d%d“,&a,&b); p1=&a;p2=&b; if(ab)swap(p1,p2); printf(“/na=%d,b=%d/n“,a,b); 若 a=7,b=8,则程序的运行结果为_。(分数:2.00)填空项 1:_二级 C语言笔试-252 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.设有以下语句: charx=3,y=6,z; z=xy2; 则 z的二进制值是( )。(分数:2.00)A.00010100B.00011011 C.00011100D.00011000解析:解析本
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 252 答案 解析 DOC
