【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编17及答案解析.doc
《【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编17及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级(C语言)机试历年真题试卷汇编17及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级(C 语言)机试历年真题试卷汇编 17及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列叙述中正确的是( )。(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的2.下列各序列中不是堆的是( )。(分数:2.00)A.(91,85,53,36,47,30,24,12)B.(91,85,53,47,36,30,24,12)C.(
2、47,91,53,85,30,12,24,36)D.(91,85,53,47,30,12,24,36)3.设循环队列为 Q(1:m),其初始状态为 front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为( )。(分数:2.00)A.4B.6C.m一 5D.m一 64.定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是( )。(分数:2.00)A.一 369B.369C.0369D.整数集合1,2,3,4,55.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依
3、次入栈,然后再依次出栈,则元素出栈顺序是( )。(分数:2.00)A.12345ABCDEB.EDCBA54321C.ABCDE12345D.54321EDCBA6.如下所示的系统结构图的最大出扇数是( )。 (分数:2.00)A.nB.1C.3D.47.软件设计中模块划分应遵循的准则是( )。(分数:2.00)A.低耦合、低内聚B.高耦合、高内聚C.低耦合、高内聚D.内聚与耦合无关8.软件的生命周期是指( )。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件从需求分析、设计、实现到测试完成的过程C.软件的开发过程D.软件的运行维护过程9.在数据库设计中,描述数
4、据间内在语义联系得到 ER图的过程属于( )。(分数:2.00)A.逻辑设计阶段B.需求分析阶段C.概念设计阶段D.物理设计阶段10.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是( )。(分数:2.00)A.一对多B.一对一C.多对一D.多对多11.以下叙述中错误的是( )。(分数:2.00)A.使用三种基本结构构成的程序只能解决简单问题B.结构化程序由顺序、分支、循环三种基本结构组成C.C语言是一种结构化程序设计语言D.结构化程序设计提倡模块化的设计方法12.C源程序中不能表示的数制是( )。(分数:2.00)A.十进制B.八进制C.二进
5、制D.十六进制13.关于 C语言标识符,以下叙述中错误的是( )。(分数:2.00)A.标识符可全部由数字组成B.标识符可全部由下画线组成C.标识符可全部由小写字母组成D.标识符可全部由大写字母组成14.若有定义语句:int x=10;,则表达式 x一=x+x 的值为( )。(分数:2.00)A.10B.一 20C.0D.一 1015.以下叙述中正确的是( )。(分数:2.00)A.分支结构是根据算术表达式的结果来判断流程走向的B.在 C语言中,逻辑真值和假值分别对应 1和 0C.对于浮点变量 x和 y,表达式:x=y 是非法的,会出编译错误D.关系运算符两边的运算对象可以是 C语言中任意合法
6、的表达式16.与数学表达式 x=y=z 对应的 C语言表达式是( )。(分数:2.00)A.(x=y)(y=x)B.(x=y=z)C.(x=y)!(y=z)D.(x=y)&(y=z)17.有以下程序: #include main() int a=010,b=0X10,c=10; printf(“d,d,dn“,a,b,c); 程序的运行结果是( )。(分数:2.00)A.10,10,10B.8,16,10C.8,10,10D.8,8,1018.设有定义:int a,b;float x,y;,则以下选项中对语句所做的注释叙述错误的是( )。(分数:2.00)A.scanf(“dd“,&a,&b,
7、&x);*多余的输入项不能获得输入数据*B.scanf(“ddf“,a,&b);*多余的格式符f 完全不起作用*C.scanf(“dfd“,&a,&b,&x);*输入项与格式符类型不匹配,变量 b和 x得不到正确的输入数据*D.scanf(“Input:dd“,&a,&b);*格式串中允许加入格式符以外的字符串*19.有以下程序: #include main() int x=1,y=0; if(!x)y+; else if(x=0) if(x)y+=2: else y+=3; printf(“dn“,y); 程序运行后的输出结果是( )。(分数:2.00)A.0B.2C.1D.320.若有以下
8、程序: #include main() int s=0,n; for(n=0;nA.6B.18C.10D.2421.对于 while(!E)s,若要执行循环体 s,则 E的取值应为( )。(分数:2.00)A.E等于 1B.E不等于 0C.E不等于 1D.E等于 022.以下叙述中正确的是( )。(分数:2.00)A.三种循环 for、while、do-while 可以互相嵌套B.循环发生嵌套时,最多只能两层C.循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误D.for语句的圆括号中的表达式不能都省略掉23.有以下程序: #include main() int a=1,b=1; whil
9、e(a 一一) b 一一: printf(“d dn“,a,b); 程序的运行结果是( )。(分数:2.00)A.一 11B.0 0C.一 1 0D.1 124.以下数组定义中错误的是( )。(分数:2.00)A.int x23=1,2,3,4,5,6;B.int x3=0;C.int x3=1,2,3,4,5,6;D.int x23=1,2,3,4,5,6;25.有以下程序: #include main() char *p1=0: int *p2=0: float *p3=0: printf(“d d dn“,sizeof(p1),sizeof(p2),sizeof(p3); 程序运行后的输
10、出结果是( )。(分数:2.00)A.4 4 4B.1 4 8C.1 2 4D.1 1 426.设已有定义:float x则以下对指针变量 p进行定义且赋初值的语句中正确的是( )。(分数:2.00)A.float *p=&x;B.int *p=(float)x;C.float p=x;D.float *p=1024;27.设有定义:char*c;。以下选项中能够使字符型指针 c正确指向一个字符串的是( )。(分数:2.00)A.char str=“string“;c=strB.scanf(“s“,c);C.c=getchar();D.*c=“string“;28.有以下程序(说明:字母 A的
11、 ASCII码值是 65): #include void fun(char *s) while(*s) if(*s2)printf(“c“,*s); s+; main() char a=“BYTE“: fun(a);printf(“n“); 程序运行后的输出结果是( )。(分数:2.00)A.BYB.BTC.YTD.YE29.以下叙述正确的是( )。(分数:2.00)A.C语言函数不可以单独编译B.C语言程序是由过程和函数组成的C.C语言函数可以嵌套调用,例如:fun(fun(x)D.C语言中除了 main函数外,其他函数不可作为单独文件形式存在30.有以下程序: #include int f
12、(int x); main() int n=1,m; m=f(f(f(n); printf(“dn“,m); int f(int x) return x*2; 程序运行后的输出结果是( )。(分数:2.00)A.4B.2C.8D.131.有以下程序: #includestdioh void fun(int a,int n) int i,t; for(i=0;in2;i+) t=ai; ai=an 一 1一 i; an 一 1一 i=t; main() int k10=1,2,3,4,5,6,7,8,9,10,i; fun(k,5); for(i=2;i8;i+) printf(“d“,ki);
13、printf(“n“); 程序的运行结果是( )。(分数:2.00)A.345678B.876543C.1098765D.32167832.若有定义语句: int year=2009,*p=year; 以下各项中不能使变量 year中的值增至 2010的语句是( )。(分数:2.00)A.(*p)+;B.*p+;C.+(*p);D.*p+=1;33.以下程序中,函数 scmp的功能足返回形参指针 s1和 s2所指字符串中较小字符串的首地址: #includestdioh #includestringh char *scrap(char *s1,char *s2) if(strcmp(s1,s2
14、)0)return(s1); else return(s2); void main() int i; char string20,str320; for(i=0;i3;i+) gets(stri); strcpy(string,scmp(str0,str1); *库函数 strcpy功能是对字符串进行复制* strcpy(string,scmp(string,str2); printf(“sn“,string); 若运行时依次输入 abcd、abba 和 abc三个字符串,则输出结果为( )。(分数:2.00)A.abcdB.abbaC.abbcD.abca34.以下对一维数组 a的正确说明是
15、( )。(分数:2.00)A.char a(10);B.int a;C.int k=5,ak;D.char a3=a,b,c;35.设有定义: char p=1,2,3,*q=p; 以下不能计算出一个 char型数据所占字节数的表达式是( )。(分数:2.00)A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizenf(p0)36.以下叙述中正确的是( )。(分数:2.00)A.两个字符串可以用关系运算符进行大小比较B.函数调用 strlen(s);会返回字符串 s实际占用内存的大小(以字节为单位)C.C语言本身没有提供对字符串进行整体操作的运算符D.拼接两个字
16、符串时,结果字符串占用的内存空间是两个原串占用空间的和37.以下叙述中正确的是( )。(分数:2.00)A.局部变量不能被说明为 staticB.只有全局变量才有自己的作用域,函数中的局部变量没有作用域C.只有在函数内部定义的变量才是局部变量D.只要是用户定义的标识符,都有一个有效的作用域38.有以下程序段: int *p; p=_malloc(sizeof(int); 若要求使 p指向一个 int型的动态存储单元,在横线处应填入的是( )。(分数:2.00)A.(int *)B.intC.int *D.(* int)39.有以下程序: #include typedef struct stu
17、char name10; char gender; int score; STU; void f(STU a,STU *b) *b=a: printf(“s c d“,b 一name,b 一gender,b 一score); main() STU a=“Zhao“,M,290,b=“Qian“,f,350; f(a,&b); printf(“s c dn“,bname,bgender,bscore); 程序运行后的输出结果是( )。(分数:2.00)A.Zhao m 290 Zhao m 290B.Qian f 350 Zhao m 290C.Qian f 350 Qian f 350D.Zh
18、ao m 290 Qian f 35040.以下程序用来统计文件中字符的个数(函数 feof用于检查文件是杏结束,结束时返回非零): #include main() FILE *fp;long num=0; fp=fopen(“fnamedat“,“r“); while(_) fgetc(fp);hum+; printf(“num=dn“,num); fclose(fp); 下面选项中,填入横线处不能得到正确结果的是( )。(分数:2.00)A.feof(fp)=NULLB.!feof(fp)C.feof(fp)D.feof(fp)=0二、程序填空题(总题数:1,分数:2.00)41.下列给定
19、程序中,函数 fun的功能是建立一个 NXN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为 1;从外向内第 2层元素的值全部为 2;第 3层元素的值全部为 3,以此类推。例如,若 N=5,生成的矩阵为: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! 试题程序: #includestdioh #define N 7 *found* void fun(int(*a)【1】) int i,j,k,m; if(N2=0)m=N2
20、; else m=N2+1; for(i=0;im;i+) *found* for(j=【2】;jNi;j+) aij=aNi 一 1j=i+1; for(k=i+1;kNi;k+) *found* aki=akNi 一 1=【3】; main() int xNN=0,i,j; fun(x); printf(“The result is:n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“3d“,xij); printf(“n“); (分数:2.00)_三、程序修改题(总题数:1,分数:2.00)42.下列给定程序中,函数 fun的功能是:求 k!(k13),
21、所求阶乘的值作为函数值返回。例如,若k=10,则应输出 3628800。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includeconioh #includestdioh long fun(int k) *found* if k1 return(k*fun(k 一 1); return 1; void main() int k=10: printf(“d!=1dn“,k,fun(k); (分数:2.00)_四、程序设计题(总题数:1,分数:2.00)43.编写一个函数,该函数可以统计一个长度为 2的字符串在
22、另一个字符串中出现的次数。 例如,假定输入的字符串为“asd asasdfgasd as zx67 asd mklo”,子字符串为”as”,则应当输出 6。 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序:#includeconioh #includestdioh #includestringh #includestdlibh int fun(char *strchar *substr) void main() FILE *wf; char str81,substr3;int n; system(“CLS“); printf(“
23、输入主字符串:“); gets(str); printf(“输入子字符串:“); gets(substr); puts(str);puts(substr); n=fun(str,substr); printf(“n=dn“,n); * wf=fopen(“outdat“,“w“); n=fun(,“asd asasdfg asd as zx67 asdmklo“,“as“);fprintf(wf,“d“,n); fclose(wf); * (分数:2.00)_国家二级(C 语言)机试历年真题试卷汇编 17答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.0
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 语言 历年 试卷 汇编 17 答案 解析 DOC
