[计算机类试卷]国家二级(C语言)笔试模拟试卷150及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷150及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷150及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 150及答案与解析 1 算法的空间复杂度是指 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)执行算法需要的内存空间 2 在结构化程序设计中,模块划分的原则是 ( A)各模块应包括尽量多的功能 ( B)各模块的规模应尽量大 ( C)各模块之间的联系应尽量紧密 ( D)模块内具有高内聚度、模块间具有低耦合度 3 下列叙述中,不属于测试的特征的是 ( A)测试的挑剔性 ( B)完全测试的不可能性 ( C)测试的可靠性 ( D)测试的经济性 4 下面关于对象概念的描述中,错误的是 ( A)对象就是 C语言中的结构体变量
2、( B)对象代表着正在创建的系统中的一个实体 ( C)对象是一个状态和操作 (或方法 )的封装体 ( D)对象之间的信息传递是通过消息进行的 5 下列关于队列的叙述中正确的是 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 6 已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是 ( A) acbed ( B) decab ( C) deabc ( D) cedba 7 某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 ( A) n+1 ( B) n-1 ( C) 2n (
3、D) n/2 8 设有如下三个关系表 下列操作中正确的是 ( A) T=RS ( B) T=R S ( C) T=RS ( D) T=R/S 9 下列叙述中,正确的是 ( A)用 E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系 ( B)用 E-R图只能表示实体集之间一对一的联系 ( C)用 E-R图只能表示实体集之间一对多的 联系 ( D)用 E-R图表示的概念数据模型只能转换为关系数据模型 10 下列有关数据库的描述,正确的是 ( A)数据处理是将信息转化为数据的过程 ( B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变 ( C)关系中的每一列称为元组,一
4、个元组就是一个字段 ( D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 11 下面各选项中,均是 C语言合法标识符的选项组是 ( A) 33 we auto ( B) _23 me _3ew ( C) _43 3e_ else ( D) ER -DF 32 12 下面四个选项中,均是不合法的用户标识符的选项是 ( A) A P_0 do ( B) float la0 _A ( C) b-a goto int ( D) _123 temp int 13 以下对 C语言函数的有关描述中,正确的是 ( A)在 C语言中调用函数时,只能把实参的值
5、传给形参,形参的值不能传送给实参 ( B) C函数既可以嵌套定义又可以递归调用 ( C)函数必须有返回值,否则不能使用函数 ( D)函数必须有返回值,返回值类型不定 14 设变量已正确定义并赋值,以下正确的表达式是 ( A) x=y*5=x+z ( B) int(15.8%5) ( C) x=y+z+5,+y ( D) x=25%5.0 15 现有定义 int a;double b;float c;char k;,则表达式 a/b+c-k值的类型为 ( A) int ( B) double ( C) float ( D) char 16 以下程序的运行结果是 int k=0; void fun
6、(int m) m+=k;k+=m;printf(“m=%d k=%d“,m,k+); main( ) int i=4; fun(i+); printf(“i=%d k=%dn“,i,k); ( A) m=4 k=5 i=5 k=5 ( B) m=4 k=4 i=5 k=5 ( C) m=4 k=4 i=4 k=5 ( D) m=4 k=5 i=4 k=5 17 有以下程序段 int j;float y;char name50; scanf(“%2d%f%s“, j, 当执行上述程序段,从键盘上输入 55566 7777abe后, y的值为 ( A) 55566.0 ( B) 566.0 (
7、C) 7777.0 ( D) 566777.0 18 设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行 (m=a b) if(x y) if(y 0) z=0; else z+=1; printf(“%dn“,z); ( A) 6 ( B) 7 ( C) 8 ( D) 9 20 若有定义 :float x=1.5;int a=1,b=3,c=2;,则正确的 switch语句是 ( A) switch(x) case 1.0:printf(“*n“); case 2.0:printf(“*n“); ( B) switch(int)x); case 1:printf(“*n“
8、); case 2:printf(“*n“); ( C) switch(a+b) case 1:printf(“*n“); case 2+1:printf(“*n“); ( D) switch(a+b) case 1:printf(“*n“); case c:printf(“*n“); 21 以下程序的输出结果是 main( ) int a,i;a=0; for(i=1;i 5;i+) switch(i) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; printf(“%dn“,a); ( A) 31 ( B) 13 ( C) 1
9、0 ( D) 20 22 以下描述中正确的是 ( A)由于 do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 ( B) do-while循环由 d。开始,用 while结束,在 while(表 达式 )后面不能写分号 ( C)在 do-while循环体中,是先执行一次循环,再进行判断 ( D) do-while循环中,根据情况可以省略 while 23 若有以下程序 #include stdio.h int a =2,4,6,8; main( ) int i; int *p=a; for(i=0;i 4;i+) ai=*p; printf(“%dn“,a2);
10、 上面程序的输出结果是 ( A) 6 ( B) 8 ( C) 4 ( D) 2 24 以下数组定义中错误的是 ( A) int x 3=0; ( B) int x23=1,2,3,4,5,6; ( C) int x 3=1,2,3,4,5,6; ( D) int x23=1,2,3,4,5,6; 25 已知字符 A的 ASCII码值是 65,字符变量 c1的值是 A, c2的值是 D。执行语句 printf(“%d,%d“,c1,c2-2) ;后,输出结果是 ( A) A,B ( B) A,68 ( C) 65,66 ( D) 65,68 26 若有定义: int a23;,以下选项中对 a数
11、组元素正确引用的是 ( A) a2!1 ( B) a23 ( C) a03 ( D) a1 2!1 27 下面程序的文件名为 t.exe,在 DOS下输入的命令行参数为 :t to meet me回车 则程序输出的结果是 #include “stdio.h“ main(argc,argv) int argc;char *argv ; int i; printf(“%dn“,argc); ( A) 3 ( B) 4 ( C) 2 ( D)以上答案都不正确 28 阅读下列程序段,则程序的输出结果为 #include “stdio.h“ #define M(X,Y)(X)*(Y) #define N
12、(X,Y)(X)/(Y) main( ) int a=5,b=6,c=8,k; k=N(M(a,b),c); printf(“%dn“,k); ( A) 3 ( B) 5 ( C) 6 ( D) 8 29 以下叙述中错误的是 ( A)改变函数形参的值,不会改变对应实参的值 ( B)函数可以返回地址值 ( C)可以给指针变量赋一个整数作为地址值 ( D)当在程序的开头包含头文件 stdio.h时,可以给指针变量赋 NULL 30 有以下程序 #include stdio.h main( ) FILE *fp;int i,a6=1,2,3,4,5,6; fp=fopen(“d3.dat“,“w+b
13、“); fwrite(a,sizeof(int),6,fp); fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动 3个 int型数据 */ fread(a,sizeof(int),3,fp);fclose(fp); for(i=0;i 6;i+)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, 31 有下面 程序段 #include “stdio.h“ #include “stri
14、ng.h“ main( ) char a320=“china“,“isa“,“bigcountry!“; char k100=0,*p=k; int i; for(i=0;i 3;i+) p=strcat(p,ai); i=strlen(p) ; printf(“%dn“,i); 则程序段的输出结 果是 ( A) 18 ( B) 19 ( C) 20 ( D) 21 32 有以下程序 #include stdio.h void fun(int *a,int n)/*fun函数的功能是将 a所指数组元素从大到小排序 */ int t,i,j; for(i=0;i n-1;j+) for(j=i+
15、1;j n;j+) if(ai aj) t=ai;ai=aj;aj=t; main( ) int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4,6); for(i=0;i 10;i+) printf(“%d,“,ci); printf(“n“); 程序的运行结果是 ( A) 1,2,3,4,5,6,7,8,9,0, ( B) 0,9,8,7,6,5,1,2,3,4, ( C) 0,9,8,7,6,5,4,3,2,1, ( D) 1,2,3,4,9,8,7,6,5,0, 33 有以下程序 #include stdio.h int fun(char s ) int n=0;
16、 while(*s =9s+; retum(n); main( ) char s10=6,1,*,4,*,9,*,0,*; printf(“%dn“,fun(s); 程序的运行结果是 ( A) 9 ( B) 61490 ( C) 61 ( D) 5 34 以下函 数返回 a所指数组中最小的值所在的下标值 fun(int *a,int n) int i,j=0,p; p=j; for(i=j;i n;i+) if(ai ap) _; return(p); 在横线处应填入的是 ( A) i=p ( B) ap=ai ( C) p=j ( D) p=i 35 有以下函数 int aaa(char *
17、s) char *t=s; while(*t+); t-; return(t-s); 以下关于 aaa函数的功能的叙述正确的是 ( A)求字符串 s的长度 ( B)比较两个串的大小 ( C)将串 s复制到串 t ( D)求字符串 s所占字节数 36 有以下程序 #include stdio.h #include string.h typedef stmct char name9;char sex;float score2;STU; void f(STU a) STU b=“Zhao“,m,85.0,90.0; int i; strcpy(a.name,b.name) ; a.sex=b.sex
18、; for(i=0;i 2;i+) a.scorei=b.scorei; main( ) STU c=“Qian“,f,95.0,92.0; f(c);printf(“%s,%c,%2.0f,%2.0fn“,c.name,c.sex,c.score0,c.score1) ; 程序的运行结果是 ( A) Qian,f,95,92 ( B) Qian,m,85,90 ( C) Zhao,f,95,92 ( D) Zhao,m,85,90 37 下列选项中错误的说明语句是 ( A) char a =t,o,y,o,u,0; ( B) char a =“toyou0“; ( C) char a =“t
19、oyou0“; ( D) char a =toyou0; 38 已知 int a=1,b=3则 a b的值为 ( A) 3 ( B) 1 ( C) 2 ( D) 4 39 下列程序的输出结果是 #include “stdio.h“ #define M(x,y) x%y main( ) int a,m=12,n=100; a=M(n,m); printf(“%dn“,a-); ( A) 2 ( B) 3 ( C) 4 ( D) 5 40 有以下程序 #include stdio.h void fun(char *t,char *s) while(*t!=0) t+; while(*t+=*s+)
20、!=0); main( ) char ss10=“acc“,aa10=“bbxxyy“; fun(ss,aa); printf(“%s,%sn“,ss,aa); 程序的运行结果是 ( A) accxyy,bbxxyy ( B) acc,bbxxyy ( C) accxxyy,bbxxyy ( D) accbbxxyy,bbxxyy 41 在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个 _实 际上对应一个处理模块。 42 结构化程序设计的 3种基本结构分别是顺序、选择和 _。 43 二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是 44 一个模块直接
21、调用的其他模块的模块个数称为 _。 45 数据库系统中实现各种数据管理功能的核心软件是 _。 46 x、 y、 x均为 int型变量,描述 “x、 y和 z中至少有两个为正数 ”的表达式是_。 47 与表达式 a+=b等价的另一书写形式是 _。 48 下列程序的输出结果是 _。 #include stdio.h main0 intx 1,y 1,a 1,b 1; switch(x) case1: switch(y) case 0:a+;break; case 1:b+;break; case2: a+;b+;break; printf(“a %d,b %dn“,a,B); 49 C语言用于结构
22、化程序设计的 3种基本结构是 _、选择结构和循环结构。 50 下列循环的循环次数是 _。 ihtk 2; while(k 0) printf(“%d“,k); k-; printf(“n“); 51 若有定义 floatb15,*p b;,且数组 b的首地址为 200H,则 p/13所指向的数组元素的地址为 _。 52 “printf(“%dn“,strlen(“t“023xABCn“);“语句的输出结果是 _。 53 设有下列宏定义: #define A2 #define B A+3 则执行赋值语句: t b*2; t为血型变量后的值是 _。 54 下列程序的功能是将字符串 s中所有的字符
23、c删除。请填空。 #include stdio.h main() char s80; int i,j; gets(S); for(i j0;si!0;i+) if(si! c)_; sj 0; puts(S); 55 下列程序的运行结果是 _。 #include stdio.h func(a,B) static int m 0,i 2; i+ m+1; m i+a+b; return(m); main0 intk 5,m 3,p; p func(k,m); printf(“%d“,p); p func(k,m); printf(“%dn“,p); 国家二级( C语言)笔试模拟试卷 150答案与
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 150 答案 解析 DOC
