【计算机类职业资格】二级C语言模拟645及答案解析.doc
《【计算机类职业资格】二级C语言模拟645及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言模拟645及答案解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言模拟 645及答案解析(总分:151.00,做题时间:90 分钟)一、选择题(总题数:40,分数:51.00)1.以下各选项企图说明一种新的类型名,其中正确的是 _。(分数:1.00)A.typedef vl int;B.typedef v2=intC.typedef int v3;D.typedef v4:int2.若变量已正确定义,则以下 for循环_: for(x=0,y=0;(y!=123)x+);(分数:1.00)A.执行 4次B.执行 3次C.执行次数不确定D.执行 123次3.设有定义: char*c; 以下选项中能够使 c正确指向一个字符串的是_。(分数:1.00)
2、A.char str()=“string“;c=str;B.scanf(“%s“, c);C.c=getchar();D.*c=“string“;4.若有以下程序段: struct stint n;struct st*next; stmct st a3=5,a1,7,a2,9,“/0“,*p; p=a0; 则以下选项中值为 6的表达式是_(分数:1.00)A.p-nB.(*p).nC.p-n+D.+(p-n)5.以下不能将 s所指字符串正确复制到 t所指存储空间的是_。(分数:1.00)A.while(*t=*s)t+; s+;B.for(i=0; ti=si; i+);C.do*t+=*s+
3、;while(*s);D.for(i=0, j=0; ti+=sj+; );6.有以下程序 #includestdio.h #define SUB(a)(a)-(a) main() int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:1.00)A.0B.-12C.-20D.107.有以下程序: #includestdio.h #includestring.h main() printf“%d/n“, strlen(“%d/n“, strlen(“ATS/n012/|“); 程序运行后的输出结果是_。(分数:1.
4、00)A.3B.8C.4D.98.将 E-R图转换为关系模式时,E-R 图中的实体和联系都可以表示为_。(分数:1.00)A.属性B键C.关系D域9.有以下程序 #includestdio.h main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+;break; case 1: b+;break; case 2:a+;b+;break; case 3:a+;b+; printf(“a=%d,b=%d/n“,a,b); 程序的运行结果是_。(分数:1.00)A.a=2,b=1B.a=2,b=2C.a=1,b=1D.a=
5、1,b=010.有以下程序: #includestdio.h main() int a=3; do printf(“%d,“,a-=2); while(!(-a); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.1B.1,-2,C.3,0,D.1,011.若有数组定义:char array=“China“;,则数组 array所占的空间为_。(分数:1.00)A.4个字节B.5个字节C.6个字节D.7个字节12.若有说明:int a3=1,2,3,4,5,6,7;,则 a数组第一维的大小是_。(分数:1.00)A.2B.3C.4D.无确定值13.以下程序拟实现计算
6、 sum=1+1/2+1/3+1/50。 #includestdio.h main() int i;double sum; sum=1.0; i=1; do i+;sum+=1/i; while(i50); printf(“sum=%lf/n“,sum); 程序运行后,不能得到正确结果,出现问题的语句是_。(分数:1.00)A.sum+=1/i;B.while(i50);C.sum=1.0;D.i+;14.构成计算机软件的是_。(分数:1.00)A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档15.有以下程序 #includestdio.h #define PT 3.5; #de
7、fine S(x)PT*x*x; main() int a=1,b=2;printf(“%4.1f/n“,S(a+b); 程序运行后的输出结果是_。(分数:1.00)A.31.5B.程序有错无输出结果C.7.5D.14.016.设栈的顺序存储空间为 S(0:49),栈底指针 bottom=49,栈顶指针 top=30(指向栈顶元素)。则栈中的元素个数为_。(分数:1.00)A.30B.29C.20D.1917.有以下程序 #include stdio.h void main() char s=“01aXy“;int i,n=0; for(i=0;si!=0;i+) if(s i=“a“ pri
8、ntf(“%d/n“,n); 程序运行后的输出结果是_。(分数:2.50)A.0B.2C.3D.518.有以下程序: #includestdio.h f(int a) int b=0; static int c=3; a=c+, b+; return(a); main() int a=2, i, k; for(i=0; i2; i+) k+f(a+); printf(“%d/n“, k); 程序运行后的输出结果是(分数:1.00)A.3B.6C.5D.419.有以下程序 #include stdio.h main() int i=5; do if(i%3=1) if(i%5=2) printf
9、(“*%d“,i);break;) i+; while(i!=0); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.*7B.*3*5C.*5D.*2*620.有以下程序: #includestdio.h main() short int a=5, b=6, c=7, d=8, m=2, n=2; printf(“%d/n“, (m=ab) 程序运行后的输出结果是(分数:2.00)A.0B.1C.2D.321.若有定义语句:int x3=1,2,3,4,5,6;,则以下选项中与该语句等价的是_。(分数:1.00)A.int x3=1,2,3,4,5,6;B.int x3=
10、1,2,3,4,5,6;C.int x3=1,2,3,4,5,6;D.int x3=1,2,3,4,5,6;22.有以下程序 #includestdio.h main() int i,s=0,t=1,2,3,4,5,6,7,8,9; for(i=0;i9;i+=2)s+=*(t+i); printf(“%d/n“,s); 程序执行后的输出结果是_。(分数:2.00)A.25B.20C.45D.3623.若要使 int型变量 a、b、c、d 的值都为 0,以下写法中错误的是_。(分数:1.00)A.auto int a,b,c,d;a=b=c=d=0;B.auto int a=b=c=d=0;C
11、.auto int a=0,b=a,c=b,d=c;D.static int a,b,c,d;24.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_B.8_8C.voidD.unsigned25.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树D.带链栈26.有以下程序: #includestdio.h void fun(char*c, int d) *c=*c+1, d=d+1; printf(“%c, %c“, *c, d); main() char b=“a“, a=;A“; fun( printf(“%c, %c/n“, b,
12、a); 程序运行后的输出结果是_。(分数:1.00)A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B27.若有代数式 (分数:2.50)A.sqrt(abs(nx+ex)B.sqrt(fabs(pow(n,x)+pow(x,e)C.sqrt(fabs(pow(n,x)+exp(x)D.sqrt(fabs(pow(x,n)+exp(x)28.有以下程序 #include void flint b)int i;for(i=2;i6;i+)bi*=2;main()int a10=1,2,3,4,5,6,7,8,9,10,i;f(a);for(i=0;i10;i+)printf
13、(“%d,“,ai);程序运行后的输出结果是_。 A.1,2,6,8,10,12,7,8,9,10, B.1,2,3,4,5,6,7,8,9,10, C.1,2,3,4,10,12,14,16,9,10, D.1,2,6,8,10,12,14,16,9,10,A B C D A解析 本题主要考查的是:数组名用作函数参数。数组名用作函数参数的情况类似于指针,属于传地址,故对形参数组元素的修改会同时修改实参。本题中,f()函数通过一个 for循环语句,将传入数组的元素从下标 2到下标 5每个各自乘以 2。因此,调用结束时,数组 a中的内容为1,2,6,8,10,12,7,8,9,10,故本题应该选
14、择 A。(分数:1.00)A.1,2,6,8,10,12,7,8,9,10,B.1,2,3,4,5,6,7,8,9,10,C.1,2,3,4,10,12,14,16,9,10,D.1,2,6,8,10,12,14,16,9,10,29.有下列程序: #includestdio.h void fun(int a,int n,int flag) int i=0,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(flag?(aiaj):(aiaj) t=ai;ai=aj;aj=t; main() int c10=7,9,10,8,3,5,1,6,2,4,i; fun
15、(c,10,1); fun(c,8,0); for(i=0;i10;i+) printf(“%d,“,ci); 程序执行后的输出结果是_。(分数:1.00)A.8,7,6,5,4,3,2,1,9,10,B.3,4,5,6,7,8,9,10,2,1,C.9,10,1,2,3,4,5,6,7,8,D.10,9,8,7,6,5,4,3,1,2,30.软件生命周期是指_。(分数:1.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程31.有以下程序: #includestdio.h main() char
16、a510=“China“,“beijing“,“very“,“welcome“,“you“; char *p5;int i; for(i=3;i5;i+) pi=*(a+i); printf(“%s“,pi); printf(“%c“,*pi); 程序执行后的输出结果是_。(分数:1.00)A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy32.以下程序段中的变量已正确定义 for(i=0;i4;i+,i+) for(k=1;k3;k+);printf(“*“); 程序段的输出结果是_。(分数:1.00)A.* *B.*C.*D.*33.设有
17、宏定义: #define IsDIV(k,n)(k%n=1)?1:0) 且变量 m已正确定义并赋值,则宏调用: IsDIV(m,5)IsDIV(m,7) 为真时所要表达的是_。(分数:2.00)A.判断 m被 5和 7整除是否都余 1B.判断 m是否能被 5和 7整除C.判断 m被 5或者 7整除是否余 1D.判断 m是否能被 5或者 7整除34.下面描述中,不属于软件危机表现的是_。(分数:1.00)A.软件过程不规范B.软件开发生产率低C.软件质量难以控制D.软件成本不断提高35.有以下定义和语句: struct workers int num; char name20; char c;
18、struct int day; int month; int year; s; ; struct workers w, *pw; pw= 能给 w中 year成员赋 1980的语句是_。(分数:1.00)A.*pw.year=1980;B.year=1980;C.pw-year=1980D.s.year=1980;36.设有定义: int x=2; 以下表达式中,值不为 6的是_。(分数:2.50)A.2*x, x+=2B.x+, 2*xC.x*=(1+x)D.x*=x+137.某系统结构图如下图所示: (分数:1.00)A.0B.1C.2D.338.VC6.0中 int类型变量所占字节数是(
19、分数:2.00)A.1B.2C.3D.439.以下程序的输出结果是_。 #include stdio.h main() int x, i; for(i=1; i=100; i+) x=i; if(+x% 2=0) if(+x% 3=0) if(+x% 7=0) printf(“% d“, x); printf(“/n“); (分数:2.50)A.3981B.4284C.2668D.287040.若有语句 typedef struct Sint g;char h;T;,则下列叙述中正确的是_。(分数:2.00)A.可用 S定义结构体变量B.可用 T定义结构体变量C.S是 struct类型的变量D
20、.T是 struct S类型的变量二、程序填空题(总题数:1,分数:30.00)41.请补充函数 proc(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是:1 1 2 2 2 3 4 4 5 5 6 6 6 7 7 8 10 10。 删除后,数组中的内容应该是:1 2 3 4 5 6 7 8 10。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的横线上填入所编写的若干表达式或语句。 试题程序: #includestdio.h #d
21、efine M 80 int proc(int arr, int n) int i, t, j=0; t=arr0; for(i=1; in; i+) if( 1) ; else 2; t=arri; arrj+=t; return j; void main() int arrM=1, 1, 2, 2, 2, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 10, 10, i, n=18; printf(“The original data: /n“); for(i=0; in; i+) printf(“%4d“, arri); n=proc(arr, n); printf(
22、“/n/nThe data after deleted; /n“); for(i=0; in; i+) printf(“%4d“, arri); printf(“/n“); (分数:30.00)三、程序修改题(总题数:1,分数:30.00)42.给定程序 MODI1.C中函数 fun的功能是:判断 ch中的字符是否与 str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。 请改正程序中的错误,使它能进行正确的操作。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! #includestdio.h #includestring.h /*found*/
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 模拟 645 答案 解析 DOC
