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

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

1、国家二级( C语言)机试模拟试卷 7及答案与解析 一、选择题 1 算法的有穷性是指( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 2 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n 1)/2的排序方法是( )。 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 3 下列关于栈的叙述正确的是( )。 ( A)栈按 “先进先出 “组织数据 ( B)栈按 “先进后出 “组织数 据 ( C)只能在栈底插入数据 ( D)不能删除数据 4 下面属于整数类的实例是(

2、)。 ( A) 0x518 ( B) 0.518 ( C) -518 ( D) 518E-2 5 结构化程序设计的基本原则不包括( )。 ( A)多态性 ( B)自顶向下 ( C)模块化 ( D)逐步求精 6 软件设计中模块划分应遵循的准则是( )。 ( A)低耦合低内聚 ( B)高耦合高内聚 ( C)低耦合高内聚 ( D)内聚与耦合无关 7 程序流程图中带有箭头的线段表示的是( )。 ( A)图元关系 ( B)数据 流 ( C)控制流 ( D)调用关系 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于( )。 ( A)需求分析阶段 ( B)概念设计阶段 ( C)逻辑设计阶段 (

3、D)物理设计阶段 9 有三个关系 R、 S和 R如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 10 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字(键或码)为( )。 ( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 11 以下叙述中错误的是( )。 ( A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( B) C程序经过编译、链接步骤之后才能

4、形成一个真正可执行的二进制机器指令文件 ( C)用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 ( D)语言源程序经编译后生成后缀为 .obj的目标程序 12 以下选项中叙述正确的是( )。 ( A)函数体必须由 开始 ( B) C程序必须由 main语句开始 ( C) C程序中的注释可以嵌套 ( D) C程序中的注释必须在一行完成 13 设有两行定义语句: int scanf; float case; 则以下叙述正确的是( )。 ( A)第 2行语句不合法 ( B)两行定义语句都合法 ( C)第 1行语句不合法 ( D)两行定义语句都不合法 14 以下能正确表述

5、算式 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) 15 若变量已正确定义,以下选项中非法的表达式是( )。 ( A) a=1/2*(x=y=20,x*3) ( B) a!=4|b ( C) a % 4 ( D) A + 32 16 设有定义: int x=11,y=12,z=0;,以下表达式值不等于 12的是( )。 ( A) z=(x=y) ( B) (z=x,y) ( C

6、) z=(x,y) ( D) (z,x,y) 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 以下不能输出小写字母 a的选项是( )。 ( A) printf(“%cn“,“a“); ( B) printf(“%cn“,A+32); ( C) putchar(97); ( D)

7、putchar(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 for( ; y0; y-) if(y%3=0) printf(“%d“, -y); 程序的运行结果是( )。 ( A) 852 ( B) 963 ( C) 741 ( D) 875421 24 有以下程序 #include main() int a3=0

8、, i, j, k=2; for( i=0; i int m1(int x,int y) return x void swap( int *p,int *q) int *t; *t=*p; *p=*q; *q=*t; main() int i=10,j=20, *a= swap(a,b); printf(“i=%d j= %dn“, i,j ); ( B) #include void swap( int *p,int *q) int t; t=*p; *p=*q; *q=t; main() int i=10,j=20, *a= swap(a,b); printf(“i=%d j= %dn“,

9、i,j ); ( C) #include #include void swap( int *p,int *q) int *t; t=(int *)malloc(sizeof(int); *t=*p; *p=*q; *q=*t; free(t); main() int i=10,j=20; swap( printf(“i=%d j= %dn“, i,j ); ( D) #include void swap( int *p,int *q) int t; t=*p; *p=*q; *q=t; main() int i=10,j=20 , *x= swap(x,y); printf(“i=%d j=

10、%dn“, i,j ); 35 设有定义: int x=0, *p; 紧接着的赋值语句正确的是( )。 ( A) p=NULL; ( B) *p=NULL; ( C) p=x; ( D) *p=x; 36 以下叙述中正确的是( )。 ( A)在 C语言中,预处理命令行都以 “#“开头 ( B)预处理命令行必须位于 C源程序的起始位置 ( C) #include 必须放在 C程序的开头 ( D) C语言的预处理不能实现宏定义和条件编译的功能 37 有以下程序 #include #define PT 3.5 ; #define S(x) PT*x*x ; main() int a=1, b=2;

11、printf(“%4.1fn“ , S(a+b); 程序运行后的输出结果是( )。 ( A)程序有错无输出结果 ( B) 31.5 ( C) 7.5 ( D) 14.0 38 下面结构体的定义语句中,错误的是( )。 ( A) struct ord int x;int y;int z; struct 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 typ

12、edef 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); 程序运行后的输出结果是( )。 ( 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

13、 ( D) 0 二、程序填空题 41 下列给定程序中,函数 fun的功能是:把形参 a所指数组中的偶数按原顺序依次存放到 a0、 a1、 a2 中,把奇数从数组中删除,偶数的个数通过函数值返回。 例如,若 a所指数组中的数 据最初排列为: 9、 1、 4、 2、 3、 6、 5、 8、 7,删除奇数后 a所指数组中的数、据为: 4、 2、 6、 8,返回值为 4。 请在下划线处填人正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行。也不得更改程序的结构 ! 试题程序: #inchde #define N 9 intfunont a,int n) int

14、 i,j; j=0; for(i=0; i #include #include doublefun(int m) double t=1 0; int i; for(i=2 i #include voidfun(char*s, Chart) voidmain() char s100, t100; prinff(“nPlease enter stringS: ”); scanf(“ s“,s); fun(s,t); printf(“nThe resuIt is: sn”, t); 国家二级( C语言)机试模拟试卷 7答案与解析 一、选择题 1 【正确答案】 A 2 【正确答案】 D 【试题解析】

15、在最坏的情况下,堆排序需要比较的次数为 O(nlog2n),所以选择D)。 3 【正确答案】 B 【试题解析】 栈是按照 “先进后出 “的原则组织数据的,只能在栈顶插入或删除数据,所以选择 B)。 4 【正确答案】 A 5 【正确答案】 A 【试题解析】 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto语句,所以选择 A)。 6 【正确答案】 C 【试题解析】 软件设计中,模块划 分应遵循高内聚低耦合的准则,答案选 C)。 7 【正确答案】 C 【试题解析】 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择 C)。 8 【正

16、确答案】 C 【试题解析】 E R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于辑设计阶段。 9 【正确答案】 D 【试题解析】 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以 B)错误。笛卡 尔积是用 R集合中元素为第一元素, S集合中元素为第二元素构成的有序对,所以 C)错误。根据关系 T可以很明显的看出是从关系 R与关系 S中取得相同的关系组所以取得是交运算,选择 D)。 10 【正确答案】 C 【试题解析】 学号是学生表 S的主键,课号是课程表 C的主键,所以选课表 SC的关键字就应

17、该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择 C)。 11 【正确答案】 A 【试题解析】 C语言程序编译时将每条可执行语句转换为二进制的机器指令,但非执行语句 (如注释语句 )不被编译。所以选项 A) 错误。 12 【正确答案】 A 13 【正确答案】 A 【试题解析】 本题考查用户标识符,用户自己定义的标识符不能与关键字相同,并且尽量避免和预定义标识符相同。本题中 scanf为预定义标识符,可以作为用户标识符 ;case为关键字,不能作为用户标识符,故而答案选 A)。 14 【正确答案】 A 【试题解析】 考查算术表达式的写法, C中没有 ,需要用数值 3.14代替, C中

18、sin函数的参数为弧度,角度 30转成弧度应为 3.14*30/180。故而选 A)。 15 【正确答案】 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

19、【正确答案】 A 33 【正确答案】 A 34 【正确答案】 A 35 【正确答案】 A 36 【正确答案】 A 37 【正确答案】 A 38 【正确答案】 A 39 【正确答案】 A 40 【正确答案】 A 二、程序填空题 41 【正确答案】 (1)ai 2 (2)ai (3)j 【试题解析】 填空 1: if语句用来判断数组元素是否为偶数,模 2为 0的数为偶数,所以填入 ai 2。 填空 2:保存为偶数的数组元 素。 填空 3:通过 return语句将偶数个数作为函数值返回。 三、程序修改题 42 【正确答案】 (1)t-=1 0 i; (2)return t; 【试题解析】 (1)公式的和存放在变量 t中,运算通过循环语句进行,并要进行类型转换,因此应改为 t一 =1 0/i;。 (2)循环结束后将和值作为函数值返回。 四、程序设计题 43 【正确答案】 void fun(char*s, char t) int i, j=0; for(i=0; si!= 0; i+) if(i 2=0 &si 2=0) *将 s所指字符串中下标和 ASCII码值都为偶数的字符放人数组 t中 * tj+=si; tj= 0;木在字符串最后加上结束标识符 */ 【试题解析】 循环语句遍历字符串,条件语句找出下标和 ASCII码值同时为偶数的字符,并存入数组中。

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

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

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