[计算机类试卷]国家二级(C语言)机试模拟试卷8及答案与解析.doc

上传人:towelfact221 文档编号:503217 上传时间:2018-11-29 格式:DOC 页数:23 大小:83.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试模拟试卷8及答案与解析.doc_第1页
第1页 / 共23页
[计算机类试卷]国家二级(C语言)机试模拟试卷8及答案与解析.doc_第2页
第2页 / 共23页
[计算机类试卷]国家二级(C语言)机试模拟试卷8及答案与解析.doc_第3页
第3页 / 共23页
[计算机类试卷]国家二级(C语言)机试模拟试卷8及答案与解析.doc_第4页
第4页 / 共23页
[计算机类试卷]国家二级(C语言)机试模拟试卷8及答案与解析.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、国家二级( C语言)机试模拟试卷 8及答案与解析 一、选择题 1 下列叙述中正确的是( )。 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)算法的时间复杂度与空间复杂度没有直接关系 2 算法的有穷性是指( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 3 对长度为 n的线性表 排序,在最坏情况下,比较次数不是 n(n 1)/2的排序方法是( )。 ( A)快速排序 (

2、B)冒泡排序 ( C)直接插入排序 ( D)堆排序 4 结构化程序设计的基本原则不包括( )。 ( A)多态性 ( B)自顶向下 ( C)模块化 ( D)逐步求精 5 在面向对象方法中,不属于 “对象 “基本特点的是( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识唯一性 6 程序流程图中带有箭头的线段表示的是( )。 ( A)图元关系 ( B)数据流 ( C)控制流 ( D)调用关系 7 软件设计中模块划分应遵循的准则是( )。 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 8 数据库应用系统中的核心问题是( )。 ( A)数据库

3、设计 ( B)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 9 在数据库设计中,将 E-R图转换成关系数据模型的过程属于( )。 ( A)需求分析阶段 ( B)概念设计阶段 ( C)逻辑设计阶段 ( D)物理设计阶段 10 有三个关系 R、 S和 R如下:由关系 R和 S通过运算得到关系 T,则所使用的运 算为( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 11 以下叙述中正确的是( )。 ( A)实用的 C语言源程序总是由一个或多个函数组成 ( B)用户自己定义的函数只能调用库函数 ( C)不同函数的形式参数不能使用相同名称的标识符 ( D)在 C语言的

4、函数内部,可以定义局部嵌套函数 12 以下叙述中错误的是( )。 ( A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( B) C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( C) 用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 ( D)语言源程序经编译后生成后缀为 .obj的目标程序 13 有以下程序 #include main() char c1,c2; c1=A+8-4; c2=A+8-5; printf( “%c,%dn“,c1,c2); 已知字母 A的 ASCII码为 65,程序运行后的输出结果是(

5、 )。 ( A) E,68 ( B) D,69 ( C) E,D ( D)输出无定值 14 设有两行定义 语句: int scanf; float case; 则以下叙述正确的是( )。 ( A)第 2行语句不合法 ( B)两行定义语句都合法 ( C)第 1行语句不合法 ( D)两行定义语句都不合法 15 以下能正确表述算式 sin(2r+30)的 C语言表达式是( )。 ( A) sin(2*3.14*r+3.14*30/180.0) ( B) sin(2*r+ 30 ) ( C) sin(2*3.14*r+ 30 ) ( D) sin(2*3.14*r+30*3.14/360.0) 16

6、以下选项中,合法 的一组 C语言数值常量是( )。 ( A) 12. 0Xa23 4.5e0 ( B) 028 .5e-3 -0xf ( C) .177 4e1.5 0abc ( D) 0x8A 10,000 3.e5 17 设有定义: char s81; int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是( )。 ( A) scanf(“%s“,s); ( B) while(si+=getchar()!=n);si=0; ( C) gets(s); ( D) do scanf(“%c“, while(si+!=n); si=0; 18 以下能正确输

7、出字符 a 的语句是( )。 ( A) printf(“%s“, “a“); ( B) printf(“%s“, a); ( C) printf(“%c“, “a“); ( D) printf(“%d“, a); 19 若有定义 int x,y; 并已正确给变量赋值,则以下选项中与表达式 (x-y)?(x+) : (y+)中的条件表达式 (x-y) 等价的是( )。 ( A) (x-y0) ( B) (x-y0) ( D) (x-y=0) 20 有以下程序 #include main() char a=H; a = ( a=A char a=A, b=B; void fun1() a=C; b

8、=D; main() fun1( ); printf(“%c %c “,a,b); fun2(E, F); 程序的运行结果是( )。 ( A) C D E F ( B) A B E F ( C) A B C D ( D) C D A B 30 有以下程序 #include int m1(int x,int y) return x main() char c25=“6938“,“8254“ , *p2; int i, j, s=0; for( i=0; i0 ; j+=2 ) s=10*s+pij-0; printf(“%dn“,s); 程序运行后的输出结果是( )。 ( A) 6385 ( B

9、) 9824 ( C) 4528 ( D) 6938 33 设有定义: int x=0, *p; 紧接着的赋值语句正确的是( )。 ( A) p=NULL; ( B) *p=NULL; ( C) p=x; ( D) *p=x; 34 有以下程序 #include void fun(char *p) +p; printf(“%sn“,*p); main() char *a = “Morning“, “Afternoon“, “Evening“, “Night“; fun(a); 程序的运行结果是( )。 ( A) Afternoon ( B) fternoon ( C) Morning ( D)

10、 orning 35 有以下程序 #include #include void fun( double *p1,double *p2,double *s) s = (double *)calloc( 1,sizeof(double) ); *s = *p1 + *( p2+1 ); main() double a2 = 1.1, 2.2 , b2 = 10.0, 20.0 , *s=a; fun( a, b, s ); printf( “%5.2fn“, *s); 程序的输出结果是( )。 ( A) 1.10 ( B) 11.10 ( C) 12.10 ( D) 21.10 36 若要使用 C

11、数学库中的 sin函数,需要在源程序的头部加上 #include 关于引用数学库,以下叙述正确的是( )。 ( A)通过引用 math.h文件,说明 sin函数的参数个数和类型,以及函数返回值类型 ( B)将数学库中 sin函数链接到编译生成的可执行文件中,以便能正确运行 ( C)将数学库中 sin函数的源程序插入到引用处,以便进行编译链接 ( D)实际上,不引用 math.h文件也能正确调用 sin函数 37 设有宏定义: #define IsDIV(k,n) ( ( k%n=1) ? 1 : 0) 且变量 m已正确定义并赋值,则宏调用: IsDIV(m,5) int y;int z; st

12、ruct ord a; ( B) struct ord int x;int y;int z; struct ord a; ( C) struct ord int x;int y;int z; a; ( D) struct int x;int y;int z; a; 39 有以下程序 #include typedef struct int b, p; A; void f(A c) /* 注意: c是结构变量名 */ int j; c.b += 1; c.p+=2; main() int i; A a=1,2; f(a); printf(“%d,%dn“, a.b, a.p); 程序运行后的输出结

13、果是( )。 ( A) 1,2 ( B) 2,4 ( C) 1,4 ( D) 2,3 40 有以下程序 #include main() unsigned char a=8, c; c = a3; printf(“%dn“, c); 程序运行后的输出结果是( )。 ( A) 1 ( B) 16 ( C) 32 ( D) 0 二、程序填空题 41 给定程序中,函数 fun的功能是:判定形参 a所指的 NN(规定 N为奇数 )的矩阵是否是 “幻方 ”,若是,则函数返回值为 1; 若不是,则函数返回值为 0。 “幻方 ”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下 3

14、3的矩阵就是一个 “幻方 ”: 4 9 2 3 5 7 8 1 6 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include #define N 3 int fun(int(*a)N) int i,j, m1, m2, low, eolum; m1=m2=0; for(i=0; i #include char*fun(char*s, char*t) char*p, *r,*a; /*found*/ a=Null; while(*s) p=s; r=t; while(*r) /*fo

15、und*/ if(r=p)r+;p+; else break; if(*r= 0)a=s; S+: return a; void main() char s100, t100,*p; printf(“nPlease enter string S: “) scanf(“ s“, s); printf(“nPlease enter substring t: “); scanf(“ s”,t); p=-fun(s, t); if(p) pfintf(“nThe result is: sn“,p); else pfintf(“nNotfound!n“); 四、程序设计题 43 编写函数 fun,其功能

16、是:删除一个字符串中指定下标的字符。其中, a指向原字符串,删除指定字符后的字符串存放在 b所指的数组中, n放指定的下标。 例如,输入一个字符串 “wodd”,然后输入 3,则调用该函数后的结果为 “word”。 注意;部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括 号中填入你编写的若干语句。 试题程序: #include #include #define LEN 20 void fun(char a, ehar b, int n) void main() char strlLEN, str2LEN; int n: printf(“Enterth

17、e strlng: n”); gets(str1) printf(“Enter the position of the string deleted: ”); scanf(“ d”, n); fun(str1, str2, n); printf(“The new string is: s、 n”,str2); 国家二级( C语言)机试模拟试卷 8答案与解析 一、选择题 1 【正确答案】 D 2 【正确答案】 A 3 【正确答案】 D 【试题解析】 在最坏的情况下,堆排序需要比较的次数为 O(nlog2n),所以选择D)。 4 【正确答案】 A 【试题解析】 结构化程序设计的思想包括:自顶 向下

18、、逐步求精、模块化、限制使用 goto语句,所以选择 A)。 5 【正确答案】 A 6 【正确答案】 C 【试题解析】 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择 C)。 7 【正确答案】 C 【试题解析】 软件设计中,模块划分应遵循高内聚低耦合的准则,答案选 C)。 8 【正确答案】 A 9 【正确答案】 C 【试题解析】 E R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于辑设计阶段。 10 【正确答案】 D 【试题解析】 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并

19、且在结果中把重复的属性列去掉,所以 B)错误。笛卡尔积是用 R集合中元素为第一元素, S集合中元素为第二元素构成的有序对,所以 C)错误。根据关系 T可以很明显的看出是从关系 R与关系 S中取得相同的关系组所以取得是交运算,选择 D)。 11 【正确答案】 A 【试题解析】 一个 C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,选项 A)正确;除了 main函数不能被其他函数调 用之外,用户自定义函数可以调用其他任意函数,选项 B)错误;函数是一个独立的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项 C)错误;函数体内部只可以调用但是不可以定义其他函数,选项 D)错

20、误;答案选 A)。 12 【正确答案】 A 【试题解析】 C语言程序编译时将每条可执行语句转换为二进制的机器指令,但非执行语句 (如注释语句 )不被编译。所以选项 A)错误。 13 【正确答案】 A 14 【正确答案】 A 【试题解析】 本题考查用户标识符,用户自己定义的标识符不能与关键字相同,并且尽量避免和预定义标识符相同。本题中 scanf为预定义标识符,可以作为用户标识符 ;case为关键字,不能作为用户标识符,故而答案选 A)。 15 【正确答案】 A 【试题解析】 考查算术表达式的写法, C中没有 ,需要用数值 3.14代替, C中sin函数的参数为弧度,角度 30转成弧度应为 3.

21、14*30/180。故而选 A)。 16 【正确答案】 A 17 【正确答案】 A 【试题解析】 函数 scanf()输入字符串时默认空格为间隔符,所以不能输入空格,答案选 A)。 18 【正确答案】 A 19 【正确答案】 A 20 【正确答案】 A 21 【正确答案】 A 22 【正确答案】 A 23 【正确答案】 A 24 【正确答案】 A 25 【正确答案】 A 26 【正确答案】 A 27 【正确答案】 A 28 【正确答案】 A 29 【正确答案】 A 30 【正确答案】 A 31 【正确答案】 A 32 【正确答案】 A 33 【正确答案】 A 34 【正确答案】 A 35 【正

22、确答案】 A 36 【正确答案】 A 37 【正确答案】 A 38 【正确答案】 A 39 【正确答案】 A 40 【正确答案】 A 二、程序填空题 41 【正确答案】 (1)0 (2)| (3)1 【试题解析】 填空 1:变量 row存放每行的总和,变量 colum存放每列的总和,应给 row、 colum赋初值为 0,因此应该填 0。 填空 2: if判断每行的总和是否与列的总和相等、每行的总和与对角线的总和是否相等,两个条件若有一个不满足,即返回 0,因此应该填写 |. 填空 3:矩阵是 “幻方 ”函数 返回 1,因此应该填写 1。 三、程序修改题 42 【正确答案】 (1)a=NULL

23、; (2)if(*r=*P) 【试题解析】 (1)指针指向空值的关键字应为 NULL。 (2)指针变量 r和 P指向两个字符串中的字符, r和 P所指向的字符相同,则指针后移指向下一个字符,故应为 if(*r=*p)。 四、程序设计题 43 【正确答案】 void fun(char a, char b, int n) int i, k=0; for(i=0;ai!= 0; i+) if(i!=n) *将不是指定下标的字符存人数组 b中 * bk+=ai; bk= 0; /*在字符串最后加上结束标识符 * 【试题解析】 根据题意要删除字符串中指定下标的字符,也就是保留非指定下标的字符,所以 if语句为 if(i!=n),在字符串末尾加上字符串结束标识符 0。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1