[计算机类试卷]国家二级(C语言)笔试模拟试卷152及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷152及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷152及答案与解析.doc(28页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 152及答案与解析 1 下列叙述中正确的是 ( )。 ( A)一个算法的空间复杂度大,则其时间复杂度必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 2 下列叙述中正确的是 ( )。 ( A)一个逻辑数据结构只能有一种存储结构 ( B)逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一 个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 3 对长度为 n的线性表进行顺
2、序查找,在最坏的情况下需要比较的次数为 ( )。 ( A) 125 ( B) n/2 ( C) n ( D) n+1 4 简单的交换排序方法是 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 5 设计程序时,应采纳的原则之一是 ( )。 ( A)程序的结构应有助于读者的理解 ( B)限制 GOTO语句的使用 ( C)减少或取消注释行 ( D)程序越短越好 6 关 于结构化程序设计原则和方法的描述错误的是 ( )。 ( A)选用的结构只准许有一个入口和一个出口 ( B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 ( C)不允许使用 GOTO语句 ( D)语
3、言中所没有的控制结构,应该采用前后一致的方法来模拟 7 下列特征中不是面向对象方法的主要特征的是 ( )。 ( A)多态性 ( B)继承 ( C)封装性 ( D)模块化 8 在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送 ( )。 ( A)调用语句 ( B)命令 ( C) N令 ( D)消息 9 下列描述错误的是 ( )。 ( A)继承分为多重继承和单继承 ( B)对象之间的通信靠传递消息来实现 ( C)在外面看不到对象的内部特征是基于对象的 “模块独立性好 ”这个特征 ( D)类是具有共同属性、共同方法的对象的集合 10 下列叙述中正确的是 ( )。 ( A)软件交付使用后
4、还需要进行维护 ( B)软件一旦交付使用就不需要再进行维护 ( C)软件交付使用后其生命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 11 下列说法不正确的是 ( ) ( A) C语言程序是以函数为基本单位的,整个程序由函数组成 ( B) C语言程序的一条语句可以写在不同的行上 ( C) C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 ( D) C语言程序的每个语句都以分号结束 12 下列程序的执行结果是 ( ) #include stdio.h main() int a,b,c; a=b=2; c=(a+) -1;printf(“%d,%d“,a,c); c
5、+=-a+(+b);printf(“%d,%d“,a,c); ( A) 3,14,1 ( B) 3,14,2 ( C) 2,04,1 ( D) 2,14,1 13 若 w、 x、 y、 z、 m均为 int型变量,则执行下列的语句后 m的值是 ( ) w=2,x=3,y=4,z=5; m=(w x)?w:x; m=(m z)?m:z; m=(m y)?m:y; ( A) 2 ( B) 3 ( C) 5 ( D) 4 14 若有定义: int a=4,b=5;float x=3.4,y=2.1;,则下列表达式的值为 ( ) (float) (a+b)/2+(int)%(int)y ( A) 5.
6、5 ( B) 55 ( C) 5.500000 ( D) 55.00000 15 在 ASCII代码表中每一个大写字母比它相应的小写字母的 ASCII码 ( ) ( A)小 32 ( B)小 64 ( C)大 32 ( D)大 1 16 下列不是合法的 C语言语句是 ( ) ( A) a=5 ( B) int i; i+; ( C) ; ( D) ; 17 下列写法正确的是 ( ) ( A) main() int i=3,j; j=5 ( B) main() int i=3; ( C) main() ( D) main() ; 18 下列程序的输出结果是 ( ) main() int a,b,
7、d=25; a=d/10%9; b=a printf(“%d,%dn“,a,b); ( A) 6,1 ( B) 2,1 ( C) 6,0 ( D) 2,0 19 下列程序的输出结果是 ( ) #include stdio.h main() int a=3,b=2,c=1; if(a b) if(b 0) c=0; else c+; printf(“%dn“,c); ( A) 0 ( B) 2 ( C) 1 ( D) 3 20 下列程序的功能是给 r输入数据后计算半径为 r的圆面积 s。程序在编译时出错。 main() /* Beginning */ int r; float s; scanf(
8、“%d“, S=*r*r; printf(“s=%fn“,s); 出错的原因是 ( ) ( A)注释语句书写位置错误 ( B)存放圆半径的变量 r不应该定义为整型 ( C)输出语句中格式描述符非法 ( D)计算圆面积的赋值语句中使用了非法变量 21 下列程序的运行结果是 ( ) #include stdio.h main() int x=5,a=1,b=2,c=5,d=0; if(a b) if(b!=3) if(!c) x=1; else if(d) x=l; else x=-1; printf(“%d“,x); ( A) -1 ( B) 0 ( C) 1 ( D)不确定的值 22 要求通过
9、 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,下列正确的程序段是 ( ) ( A) while(ch=getchar ()!=N)printf(“%c“,ch); ( B) while(ch=getchar()!=N) printf(“%c“,ch); ( C) while(ch=getchar()=N) printf(“%c“,ch); ( D) while(ch=getchar() =N)printf(%c,ch); 23 不能与 dowhile(exp) 语句中的 (exp)等价的表达式是 ( ) ( A) (!exp=0) ( B) (exp 0exp 0)
10、 ( C) (exp=0) ( D) (exp!=0) 24 有下列程序: main() inti; for(i=1;i =40;i+) if(i+ +%5=0) if(+i%8=0) printf(“%d“,i); printf(“n“); 执行后的输出结果是 ( ) ( A) 5 ( B) 24 ( C) 32 ( D) 40 25 下列选项中不是字符常量的是 ( ) ( A) V ( B) x2a ( C) a ( D) 0 26 有下列程序: main() int i,j; for(i=1;i 4;i+) for(j=i;j 4;j+)printf(“%d*%d=%d“,i,j,i*j
11、); printf(“n“); 程序运行后的输出结果是 ( ) ( A) 1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 3*1=3 ( B) 1*1=1 1*2=2 1*3=3 2*2=4 2*3=6 3*3=9 ( C) 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ( D) 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 27 下列说法不正确的是 ( ) ( A)调用函数时,实参可以是表达式 ( B)调用函数时,实参与形参可以共用内存单元 ( C)调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等 ( D)调用
12、函数时,实参与形参的类型必须一致 28 下列叙述错误的是 ( ) ( A)函数名是属于用户标识符,需符合 C语言对标识符的规定 ( B)形参只能是变量 ( C)为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同 名 ( D)函数中定义的变量可以与其他函数中的变量同名 29 下列程序段中,不能正确赋值的是 ( ) ( A) char*p,ch; p= scanf(“%c“, ( B) char*p; p=(char*)malloc(1); scanf(“%C“,p); ( C) char*p; *p=getchar(); ( D) char*p,ch; p= *p=getchar()
13、; 30 若有定义 float a15,*p=a;,且数组 a的首地址为 300H,则 p+13所指向的数组元素的地址为 ( ) ( A) 334H ( B) 30DH ( C) 352H ( D) 31AH 31 若有说明: int a3=0,0;则不正确的叙述是 ( ) ( A)数组 a的每个元素的初值都是 0 ( B)数组 a的第一维大小为 1 ( C)数组 a的行数为 1 ( D)只有元素 a00和 a01可得到初值 0,其余元素均得不到初值 0 32 在 C语言中,引用数组元素时,其数组下标的数 据类型允许是 ( ) ( A)整型表达式 ( B)整型常量 ( C)整型常量或整型表达式
14、 ( D)任何类型的表达式 33 对于下列字符串,说明表达式 strlen(s) 值的是 ( ) char s10=(a,n,a,b,t,c; ( A) 10 ( B) 1 ( C) 6 ( D) 7 34 若已包括头文件 string.h且已有定义 char s118,s2=“ABCDE“和 int i,现要将字符串 “ABCDE“赋给 s1,下列语句错误的是 ( ) ( A) strcpy(s1,s2) ( B) strcpy(s1,“ABCDE“); ( C) s1=“ABCDE“; ( D) for(i=0;i 6;i+) s1i=s2i; 35 下列叙述中不正确的是 ( ) ( A)
15、在 C语言中调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 ( B)在 C的函数中,最好使用全局变量 ( C)外部变量可以在函数之间传递数据 ( D)自动变量实质上是一个函数内部的局部变量 36 在 “文件包含 ”预处理语句的使用形式中,当 #include后面的文件名用 (尖括号 ) 括起时,寻找被包含文件的方式是 ( ) ( A)仅仅搜索当前目录 ( B)仅仅搜索源程序所在目录 ( C)在标准目录下查找指定的文件 ( D)先在源程序所在目录搜索,如查找不到,再按系统指定的标准目录查找 37 根据下列的定义,能打印出字母 P的语句是 ( ) struct stu char na
16、me10; int age; ; stmct stu s10=“John“,11, “Paul“,12, “Mary“,11, “adam“,12 : ( A) printf(“%c“,s3.name); ( B) printf(“%c“,s3.name1); ( C) printf(“%c“,s2.name11); ( D) printf(“%c“,s1.name0); 38 下列程序的运行结果为 ( ) #include stdio.h main() struc tdate int year,month,day; )today; printf(“%dn“,sizeof(struct dat
17、e); ( A) 8 ( B) 6 ( C) 10 ( D) 12 39 在位运算中,操作数每左移两位,其结果相当于 ( ) ( A)操作数乘以 2 ( B)操作数除以 2 ( C)操作数除以 4 ( D)操作数乘以 4 40 若以 “a+”方式打开一个已存在的文件,则下列叙述正确的是 ( ) ( A)文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作 ( B)文件打开时,原有文件内容不被删除,只能进行 读操作 ( C)文件打开时,原有文件内容被删除,只能进行写操作 ( D)以上三种说法都不正确 41 软件定义时期主要包括 _和需求分析两个阶段。 42 为了便于对照检
18、查,测试用例应由输入数据和预期的 _两部分组成。 43 数据的逻辑结构有线性结构和 _两大类。 44 某二叉树中度为 2的结点有 18个,则该二叉树中有 _个叶子结点。 45 在 E-R图中,矩形表示 _。 46 表示 “整数 x的绝对值大于 5”时值为 “假 ”的 C语言表达式是 _。 47 设 y为血型变量,请写出描述 “y是偶数 ”的表达式 _。 48 下列程序的运行结果是 _。 main() int x 1,y 2,Z 3; printf(“%d,“x y?y:x); printf(“%d,“,z y?x+:y+); printf(“%d,%d“,x,y); 49 下列程序段中循环体的
19、执行次数是 _。 a 15; b 0, dob+ 2;a- 2+b;while(a 0); 50 语 句 “int(*ptr)();“的含义是 _是指向函数的指针,该函数返回一个 int型数据。 51 下列程序的输出结果是 _。 #include stdio.h int t(int x,int y,int cp,int dp) cp x*x+y*y; 如: dp x*-y*y; main() int a 1,b 8,c 7,d 9; t(a,b,c,D) ; printf(“%d%dn“,c,D) ; 52 13在内存中占 1个字节, “12“在内存中占 _个字节。 53 #define命令出
20、现在程序中函数的外面,宏名的有效范围为 _。 54 下列程序段的运行结果是 _。 char str口 “ABCD“,*p str; printf(“%dn“,*(p+3); 55 下列程序中的数组 a包括 10个整数元素,分别将前项和后项之和存入数组 b,并按每行 4个元素输出数组 b。请填空。 #include stdioh main() int a10,b10,i; for(i 0;i 10;i+) scanf(“%d“, for(i 0;i 9;i+) for(i;0;i 9;i+) if(i%4 0)primf(“n“); printf(“%3d“,bi; 56 以下程序的功能是:求出
21、数组 x中各相邻两个元素的和依次存放到 a数组中,然后输出。请填空。 main( ) int x10, a9,i; for(i=0;i 10;i+) scanf(“%d“, xi); for( 11 ;i 10;i+) ai-1=xi+ 12 ; for(i=0;i 9;i+) printf(“%d“,ai); printf(“); 57 以下程序的功能是建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为 -1时,表示输入结束 (链表头结点的 data域不放数据,表空的条件是 ph- next=NULL),请填空。 #include stdio.h struct list
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 152 答案 解析 DOC
