[计算机类试卷]国家二级(C语言)笔试模拟试卷4及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷4及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷4及答案与解析.doc(32页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 4及答案与解析 1 下列叙述中正确的是 ( )。 ( A)数据的逻辑结构与存储结构必定一一对应 ( B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 ( C)程序设计语言小的数组般是顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上 3种说法都不对 2 下列数据结构中,能用二分法进行查找的是 ( )。 ( A)顺序存储的有序线性表 ( B)线性链表 ( C)二叉链表 ( D)有序线性链表 3 对于长度为 n的线性表,在最坏情 况下,下列各排序法所对应的比较次数中正确的是 ( )。 ( A)冒泡排序为 n/2 ( B)冒泡排序
2、为 n ( C)快速排序为 n ( D)快速排序为 n(n-1)/2 4 程序设计方法要求在程序设计过程中, ( )。 ( A)先编制出程序,经调试使程序运行结果正确后再画出程序的流程图 ( B)先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( C)先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( D)以上 3种说法都不对 5 下列描述中正确的是 ( )。 ( A)软件工程只是解决软件项目的管理问题 ( B)软件工程主要解决软件产品的生产率问题 ( C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 ( D
3、)软件工程只是解决软件开发中的技术问题 6 在面向对象方法中,实现信息隐蔽是依靠 ( )。 ( A)对象的继承 ( B)对象的多态 ( C)对象的封装 ( D)对象的分类 7 冒泡排序在最坏情况下的比较次数是 ( )。 ( A) n(n+1)/2 ( B) nlog2n ( C) n(n-1)/2 ( D) n/2 8 下列实体的联系中,属于多对多联系的是 ( )。 ( A)学生与课程 ( B)学校与校长 ( C)住院的病人与病床 ( D)职工与工资 9 在面向对象的程序设计中,下列叙述中错误的是 ( )。 ( A)对象是面向对象软件的基本模块 ( B)对象不是独立存在的实体,各个对象之间有关
4、联,彼此依赖 ( C)下一层次的对象可以继承上 层次对象的某些属性 ( D)同样的消息被不同对象接受时,可导致完全不同的行动 10 下列关于 E-R图的描述中正确的是 ( )。 ( A) E-R图只能表 示实体之间的联系 ( B) E-R图只能表示实体和实体之间的联系 ( C) E-R图只能表示实体和属性 ( D) E-R图能表示实体、属性和实体之间的联系 11 以下不合法的用户标识符是 ( )。 ( A) j2_KEY ( B) Double ( C) 4d ( D) _8_ 12 以下叙述中正确的是 ( )。 ( A) C语言的源程序不必通过编译就可以直接运行 ( B) C语言中的每条叫执
5、行语句最终都将被转换成二进制的机器指令 ( C) C源程序经编译形成的二进制代码可以直接运行 ( D) C语言中的函数不可以单独进 行编译 13 按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是 ( )。 ( A)大写字母 ( B)连接符 ( C)数字字符 ( D)下划线 14 以下 4组用户定义标识符中,全部合法的一组是 ( )。 ( A) _main enclude sin ( B) If -max turbo ( C) txt REAL 3COM ( D) int K_2 _001 15 若在定义语句: int a, b, c, *p= c;之后,接着执行以下选项中的语 句,
6、则能正确执行的语句是 ( )。 ( A) scanf(“%d”a, b, c); ( B) scanf(“%d%d%d”,a, b, c); ( C) scanf(“%d”,P); ( D) scanf(“%d”, p); 16 设 a和 b均为 double 型变量,且 a=5.5、 b=2.5,则表达式 (int) a +b/b的值是( )。 ( A) 6.500000 ( B) 6 ( C) 5.500000 ( D) 6.000000 17 若变景均已正确定义井赋值,以下合法的 C语言赋值语句是 ( ) ( A) x=y =5; ( B) x=n%2.5; ( C) x+ n=i; (
7、 D) x=5=4+1; 18 有以下程序: main () int x=102, y=012; printf(“%2d,%2dn”,x,y); 执行后输出结果是 ( )。 ( A) 10,01 ( B) 02,12 ( C) 102,10 ( D) 02,10 19 若有定义: 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“); ca
8、se 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“); 20 有定义语句: “int a=1, b=2, c=3, x; ”,则以下选项中各程序段执行后, x的值不为 3的是 ( )。 ( A) if(c a)x=1; else if (b a) x=2; else x=3; ( B) if(a 3)x=3; else if (a 2) x=2; else x=
9、1; ( C) if(a 3) x=3; if (a 2) x=2; if (a 1) x=1; ( D) if(a b)x=b; if (b c) x=c; if (c a) x=a; 21 下列叙述中正确的是 ( )。 ( A) break语句只能用于 switch语句 ( B)在 switch语句中必须使用 default ( C) break语句必须与 switch语句中的 case配对使用 ( D)在 switch语句中,不一定使用 break语句 22 若整型变量 a、 b、 c、 d中的值依次为: 1、 4、 3、 2。则条件表达式 a b?a:cd?c:d的值是 ( )。 (
10、A) 1 ( B) 2 ( C) 3 ( D) 4 23 设有定义: int a=2,b=3,c=4;,则以下选项中值为 0的表达式是 ( )。 ( A) (!a=1) k=a b ? b:a; k=k c ? c:k; 执行该程序段后, k的值是 ( )。 ( A) 3 ( B) 2 ( C) 1 ( D) 0 25 以下 程序中, while循环的循环次数是 ( )。 main() int i=0; while(i 10) if(i 1) continue; if(i=5) break; i+; ( A) 1 ( B) 10 ( C) 6 ( D)死循环,不能确定次数 26 以下程序的输出
11、结果是 ( )。 main() int a=0,i; for(i=1;i 5;i+) switch(i) casc 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; printf(“%dn“,a); ( A) 31 ( B) 13 ( C) 10 ( D) 20 27 已有定义: char a=“xyz“,b=x,y,z;,以下叙述中正 确的是 ( )。 ( A)数组 a和 b的长度相同 ( B) a数组长度小于 b数组长度 ( C) a数组长度大于 b数组长度 ( D)以述说法都不对 28 有以下程序; void f(int *x,int
12、*y) int t; t=*x; *x=*y; *y=t; main() int a8=1,2,3,4,5,6,7,8,i,*p,*q; p=a; q= while (p q) f(p,q);p+; q-; for(i=0;i 8; i+) printf(“%d,“,ai); 程序运行后的输出结果是 ( )。 ( A) 8,2,3,4,5,6,7,1, ( B) 5,6,7,8,1,2,3,4, ( C) 1,2,3,4,5,6,7,8, ( D) 8,7,6,5,4,3,2,1, 29 若有一些定义和语句: #include stdio.h int a=4,b=3,*p,*q,*w; p=
13、q= w=q; q=NULL; 则以下选项中错误的语句是 ( )。 ( A) *q=0; ( B) w=p; ( C) *p=a; ( D) *p=*w; 30 有以下程序 : main() int y=10; while(y-); printf(“y=%dn“,y); 程序执行后的输出结果是 ( )。 ( A) y=0 ( B) y=-1 ( C) y=1 ( D) while构成无限循环 31 有以 下程序: main() int a10=1,2,3,4,5,6,7,8,9,10),*p= printf(“%dn“,*p+*q); 程序运行后的输出结果是 ( )。 ( A) 16 ( B)
14、 10 ( C) 8 ( D) 6 32 若有以下函数首部: int fun(double x10,int *n) 则下面针对此函数的函数声明语句中正确的是 ( )。 ( A) int fun(double x, int *n); ( B) int fun(double, int); ( C) int fun(double *x, int n); ( D) int fun(double*, int*); 33 以下程序调用 fmdmax函数返回数组中的量大值: findmax(int *a,int n) int *p,*s; for(p=a,s=a;p-a n;p+) if(_)s=p; re
15、turn(*s); main() int x5=12,21,13,6,18; printf(“%dn“,findmax(x,5); 在下划线处应填入的是 ( )。 ( A) p s ( B) *p *s ( C) ap as ( D) p-a p-s 34 有以下程序: main() char a1=M,a2=m; printf(“%cn“,(a1,a2); 以下叙述中正确的是 ( )。 ( A)程序输出大写字母 M ( B)程 序输出小写字母 m ( C)格式说明符不足,编译出错 ( D)程序运行时产生出错信息 35 有以下程序: #include stdio.h int fun(char
16、s) int n=0; while(*s=9s+; return(n); main() char s10=6,1,*,4,*,9,*,0,*; printf(“%dn“,fun(s); 程序的运行结果是( )。 ( A) 9 ( B) 61490 ( C) 61 ( D) 5 36 有以下程序: main() int c=35; printf(“%dn“,c 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 70 ( C) 35 ( D) 1 37 有以下程序; main() char s=“aaiou“,*ps; ps=s; printf(“%cn“,*ps+4); 程序运行后的输出
17、结果是 ( )。 ( A) a ( B) e ( C) u ( D)元素 s4的地址 38 有以下程序: void sort(int a, int n) int i,j,t; for(i=0;i n-1;i+) for(j=i+1;j n;j+) if(ai aj) t=ai; ai=aj; aj=t; main() int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa+2,5); for(i=0;i 10;i+)printf(“%d,“,aai); printf(“n“); 程序运行后的输出结果是( )。 ( A) 1,2,3,4,5,6,7,8,9,10, (
18、B) 1,2,7,6,3,4,5,8,9,10, ( C) 1,2,7,6,5,4,3,8,9,10, ( D) 1,2,9,8,7,6,5,4,3,10, 39 有以下程序: void sum(int a) a0=a-1+a1; main() int a10=1,2,3,4,5,6,7,8,9,10; sum( printf(“%dn“,a2); 程序运行后的输出结果是 ( )。 ( A) 6 ( B) 7 ( C) 5 ( D) 8 40 设有定义语句: char c1=92,c2=92;,则以下表达式中值为零的是 ( )。 ( A) c1c2 ( B) c1 while(*ps) ps+
19、; for(ps-;ps-str =0;ps-) puts(ps); 执行后输出结果是 ( )。 ( A) yz xyZ ( B) z yz ( C) z yz ( D) x xy xyz xyz 42 下面程序的功能是输出以下形式的金字塔图案: * * * * main() int i,j; for(i=1;i =4;i+) for(j=1;j =4-i;j+)printf(“ “); for(j=1;j =( );j+)printf(“*“); printf(“n“); 在下划线处应填入的是 ( )。 ( A) i ( B) 2*1-1 ( C) 2*i+1 ( D) i+2 43 有以下
20、程序段: main() int a=5,*b,*c; c= b= 程序在执行了 “c= b=”语句后,表达式 “*c”的值是 ( )。 ( A)变量 a的地 址 ( B)变量 b中的值 ( C)变量 a中的值 ( D)变量 b的地址 44 有以下程序: #include string.h main() char str20=“Hello“,“beijing“,*p=str; ptintf(“%n“,strlen(p+20); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 5 ( C) 7 ( D) 20 45 有以下程序: point(char *p) p+=3; main() c
21、har b4=a,b,c,d, *p=b; point(p); printf(“%cn“,*p); 程序运行后的输出结果是 ( )。 ( A) a ( B) b ( C) c ( D) d 46 以下叙述中错误的是 ( )。 ( A) C程序必须由一个或一个以上的函数组成 ( B)函数调用可以作为一个独立的语句存在 ( C)若函数有返回值,必须通过咖语句返回 ( D)函数形参的值也可以传回 给对应的实参 47 程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、 p、 q均已正确定义,并用于指向链表结点,指针变量 s总是作为头指针指向链表的第一个结点。 若有以下程序段: q=s;
22、s=s- next; p=s; while (p- next) p=p- next; p- next=q; q- next=NULL; 该程序段实现的功能是 ( )。 ( A)首结点成为尾结点 ( B)尾结点成为首结点 ( C)删除首结点 ( D)删除尾结点 48 有以下程序: #include stdio.h main() int a=1,b=2,c=3,x; x=(ab) printf(“%dn“,x); 程序的运行结果是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 49 有以下程序: #include stdio.h main() FILE *fp; int i,k
23、=0, n=0; fp=fopen(“d1.dat“,“w“); for(i=1;i 4;i+) fprintf(fp,“%d“,i); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d%d“, printf(“%d%dn“,k,n); fclose(fp); 执行后输出结果是 ( )。 ( A) 1 2 ( B) 123 0 ( C) 1 23 ( D) 0 0 50 有以下程序: #include stdio.h main() FILE *fp; int i,k,n; fp=fopen(“data.dar“,“w+“); for(i=1;i
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 答案 解析 DOC
