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

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

1、国家二级( C语言)机试模拟试卷 6及答案与解析 一、选择题 1 算法的有穷性是指( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 2 在数据管理技术发展的三个阶段中,数据共享最好的是( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)三个阶段相同 3 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n 1)/2的排序方法是( )。 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 4 结构化程序设计的基本原则不包括( )。

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

3、 9 有三个关系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 10 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字(键或码)为( )。 ( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 11 以下叙述中正确的是( )。 ( A)实用的 C语言源程序总是由一个或多个函数组成 ( B)用户自己定义的函数只能调用库函数 ( C)不同函数的形式参数不能使用相同名称

4、的标识符 ( D)在 C语言的函数内部,可以定义局部嵌套函数 12 以下叙述中错误的是( )。 ( A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( B) C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( C)用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 ( D)语言源程序经编译后生成后缀为 .obj的目标程序 13 设有两行定义语句: int scanf; float case; 则以下叙述正确的是( )。 ( A)第 2行语句不合法 ( B)两行定义语句都合法 ( C)第 1行语句不合法 ( D)两行定

5、义语句都不合法 14 以下能正确表述算式 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 有如下程序 #include main() int x = 0x13; printf(“%dn“, x+1); 程序运行后的输出结果是( )。 ( A) 20 ( B) 14 ( C) 12 ( D) 13 16 若有定义语句 char c=101; 则变量 c在内存中占( )。 (

6、A) 1个字节 ( B) 2个字节 ( C) 3个 字节 ( D) 4个字节 17 设有定义: double x=2.12;,以下不能完整输出变量 x值的语句是( )。 ( A) printf(“x=%5.0fn“,x); ( B) printf(“x=%fn“,x); ( C) printf(“x=%lfn“,x); ( D) printf(“x=%0.5fn“,x); 18 若有定义和语句: int a, b; scanf(“%d,%d,“, 以下选项中的输入数据,不能把值 3赋给变量 a、 5赋给变量 b的是( )。 ( A) 3 ,5 ( B) 3,5 ( C) 3,5, ( D) 3

7、,5,4 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 22 以下程序段中的变量已正确定义 for( i=0; i int f ( in

8、t m ) static int n=0; n+=m; return n; main() int n=0; printf ( “%d,“, f(+n) ); printf ( “%dn“, f(n+) ); 程序运行后的输出结果是( )。 ( A) 1,2 ( B) 1,1 ( C) 2,3 ( D) 3,3 29 有以下程序 #include int m1(int x,int y) return x main() char* p1 = 0; int* p2 = 0; double* p3 = 0; printf(“%d,%d,%dn“, sizeof(p1), sizeof(p2), siz

9、eof(p3); 程序运行后的输出结果是( )。 ( A) 4,4,4 ( B) 1,4,8 ( C) 0,0,0 ( D) 1,2,4 34 有以下程序 #include int fun( char s ) char *p = s; while( *p != 0 ) p+; return ( p-s ); main() printf(“%dn“, fun(“0ABCDEF“) ); 程序运行后的输出结果是( )。 ( A) 7 ( B) 6 ( C) 1 ( D) 0 35 若有以下程序段 char str412= “aa“,“bbb“,“ccccc“,“d“ , *strp4; int i

10、; for( i = 0; i必须放在 C程序的开头 ( D) C语言的预处理不能实现宏定义和条件编译的功能 37 有以下程序 #include #define PT 3.5 ; #define S(x) PT*x*x ; main() int a=1, b=2; 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) stru

11、ct 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); 程序运行后的输出结果是( )。 ( A) 1,2 ( B)

12、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的功能是:计算 NN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。 例如,若 N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 首先累加 1、 5、 9,然后累加 3、 5、 7,函数返回值

13、为 30。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include #define N 4 fun(inttN, int n) int i,sum; /*found*/ 【 1】 for(i=0; i #include #include void fun(char*str) main() char str81; char Msg=“Input a string: ”; int n; prinff(Msg); gets(str); puts(str); fun(str); prinff(

14、“*slx: s n”, str); 国家二级( C语言)机试模拟试卷 6答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有 穷性是指算法程序的运行时间是有限的。 2 【正确答案】 D 【试题解析】 在最坏的情况下,堆排序需要比较的次数为 O(nlog2n),所以选择D)。 3 【正确答案】 D 【试题解析】 在最坏的情况下,堆排序需要比较的次数为 O(nlog2n),所以选择D)。 4 【正确答案】 A 【试题解析】 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto语句,所以选择 A)。 5

15、 【正确答案】 A 6 【正确答案】 C 【试题解析】 在数据流图中,用标有名字 的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择 C)。 7 【正确答案】 C 【试题解析】 软件设计中,模块划分应遵循高内聚低耦合的准则,答案选 C)。 8 【正确答案】 C 【试题解析】 E R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于辑设计阶段。 9 【正确答案】 D 【试题解析】 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以 B)错误。笛卡尔积是 用 R集合中元素为第一元素,

16、 S集合中元素为第二元素构成的有序对,所以 C)错误。根据关系 T可以很明显的看出是从关系 R与关系 S中取得相同的关系组所以取得是交运算,选择 D)。 10 【正确答案】 C 【试题解析】 学号是学生表 S的主键,课号是课程表 C的主键,所以选课表 SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择 C)。 11 【正确答案】 A 【试题解析】 一个 C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,选项 A)正确;除了 main函数不能被其他函数调 用之外,用户自定义函数可以调用其他任意函数,选项 B)错误;函数是一个独立的模块,不同函数之间的定义相互没

17、有影响,所以标识符可以相同,选项 C)错误;函数体内部只可以调用但是不可以定义其他函数,选项 D)错误;答案选 A)。 12 【正确答案】 A 【试题解析】 C语言程序编译时将每条可执行语句转换为二进制的机器指令,但非执行语句 (如注释语句 )不被编译。所以选项 A)错误。 13 【正确答案】 A 【试题解析】 本题考查用户标识符,用户自己定义的标识符不能与关键字相同,并且尽量避免和预定义标识符相 同。本题中 scanf为预定义标识符,可以作为用户标识符 ;case为关键字,不能作为用户标识符,故而答案选 A)。 14 【正确答案】 A 【试题解析】 考查算术表达式的写法, C中没有 ,需要用

18、数值 3.14代替, C中sin函数的参数为弧度,角度 30转成弧度应为 3.14*30/180。故而选 A)。 15 【正确答案】 A 【试题解析】 由两个双引号 “引起来的是一个字符串常量,而字符变量只能存放单个字符常量,答案选 A)。 16 【正确答案】 A 【试题解析】 考查运算符与表达式, A) 中先计算 (x=y),为 0,将 0赋值给 z,表达式值为 0, A)错;选项 B)、 C)、 D)均涉及到逗号表达式,整个逗号表达式的值为最后一个表达式的值,所以均为 12。选 A)。 17 【正确答案】 A 【试题解析】 考查 scanf的格式输入。如果 scanf的 “内有普通字符,则

19、程序调试的时候必须原样输入,所以字符数组 name接受到的字符为 Lili,答案选 A)。 18 【正确答案】 A 【试题解析】 考查数据的输入, printf(“%d, “,b=a+b);先计算 b=a+b,得出b=1,再输出 b值。 语句 printf(“%dn“,a=2*b);先计算 a=2*b,得出 a=2,再输出a值。所以输出结果为 A)。 19 【正确答案】 A 【试题解析】 考查条件表达式。条件表达式的形式为: 表达式 1 ? 表达式 2 : 表达式 3 ,计算 “表达式 1“的值,若为 “真 “,取 “表达式 2“的值作为整个条件表达式的值;若为 “假 “,取 “表达式 3“的

20、值作为整个条件表达式的值。本程序中要选能判定 (x-y)为 “真 “的语句,即 x! =y,或者 (x-y 0),选 A)。 20 【正确答案】 A 【试题 解析】 考查条件运算符。条件表达式的形式为: 表达式 1 ? 表达式 2 : 表达式 3 ,计算 “表达式 1“的值,若为 “真 “,取 “表达式 2“的值作为整个条件表达式的值;若为 “假 “,取 “表达式 3“的值作为整个条件表达式的值。字符参与运算时一般计算其 ASCII码,并且一个字母的小写 -大写 =32( ASCII码),该程序将大写字母转成对应的小写字母,答案选 A)。 21 【正确答案】 A 【试题解析】 考查循环嵌套。循

21、环嵌套执行次数为 外层循环次数 *内层循环次数。但是本题中循环次数与输出结果没有关系,两层循环之后 只是执行了一个空语句 ;,然后输出一个 * 。故而答案选 A)。 22 【正确答案】 A 【试题解析】 已经证明,由顺序、分支、循环这三种基本结构组成的算法可以解决任何复杂的问题。选项 A)叙述有误。 23 【正确答案】 A 【试题解析】 考查 while循环的执行过程。先计算括号内表达式的值,若不为0,则执行循环体语句,若为 0则跳出 while循环,所以条件表达式的执行次数总是比循环体的执行次数多一次,答案选 A)。 24 【正确答案】 A 【试题解析】 考查二维数组的初始化。初始化 二维数

22、组的时候可以对其部分元素赋初值,还可以对数组的全部元素赋初值。若全部赋初值,则第一维的元素个数可以不指定,但是第二维元素个数不可以省略,所以答案选 A)。 25 【正确答案】 A 【试题解析】 同类元素的集合称为数组,数组元素在内存中占据连续的存储空间,答案 A)正确。在使用逗号运算符的情况下,一条语句可以定义多个数组,选项 B)错。方括号中可以为整型变量或者常量表达式,选项 C)错。数组元素在数组中的下标为整型常量或者变量构成的整型表达式,不能为浮点数,选项D)错。答案选 A)。 26 【正确答 案】 A 【试题解析】 二维数组的第一维数据表示行数,第二维数据表示列数,所以num24中的数据

23、应为两行四列,和大括号中定义的内容不一致,选项 A)错误,答案选 A)。 27 【正确答案】 A 【试题解析】 二维数组的第一维数据表示行数,第二维数据表示列数,所以x23中的数据应为两行三列,和定义内容不符,选项 A)错误,答案选 A)。 28 【正确答案】 A 【试题解析】 函数 fun()的功能是统计字符串数组每个字符串首字母为 T的字符串个数,所以答案选 A)。 29 【正确答案】 A 【试题解析】 调用函数的时候只有保证调用语句的函数名和被调函数的函数名、参数列表一致才能保证调用的正确性, A)正确。 C语言对大小写敏感,选项 B)错。用户自定义的函数名需要遵循用户标识符的命名规则,

24、由字母、数字、下划线组成并且第一个字符不能为数字,选项 C)错。一个函数每次只能使用一个return语句,但是该函数体中可以有多个返回点,也就是有多条 return语句,每次只从其中一点返回,选项 D)错。答案选 A)。 30 【正确答案】 A 【试题解析】 二维数组赋初值的时候没有赋值的 元素默认为 0。函数 fun()将数组a中的主对角线上的元素赋值给数组 b,所以输出结果为 1,0,7,0,答案选 A)。 31 【正确答案】 A 【试题解析】 考查数组名作为函数参数。数组名作为函数参数时,只传递数组的首地址而不检查形参数组的长度,所以形参表中可以不给出形参数组的长度,形参数组和实参数组长

25、度也可以不同,选项 D)错; a10、 a、 *a做形参都是接受实参数组首地址,效果一样, A)正确。传递给形参的实参可以是数组名,还可以是指向该数组的指针变量,选项 B)错。数组名可以看做一个指针常量,对 其进行自加自减运算相当于指针变量的自加自减,选项 C)错。答案选 A)。 32 【正确答案】 A 【试题解析】 不可以把一个 int型数据直接赋值给一个指针变量,只能用取地址运算符 “是将空指针赋给指针变量,表示该指针变量当前未指向任何变量,语句 p=0;本身不正确,两者不等,故选项 C)、 D)错。答案选 A)。 35 【正确答案】 A 【试题解析】 在指针运算中, “*“为取值运算符,

26、 “表示把空指针赋给指针变量 p,而若要 p指向变量 x的地址需使用“p= “的形式,所以答案选 A)。 36 【正确答案】 A 【试题解析】 考查文件包含处理。文件包含命令的功能是把指定的文件添加到预处 理部分,从而把指定的文件和当前的源程序文件连接起来,该文件则包含了程序要调用的函数的声明。由此,选项 B)、 C)、 D)表述错误。答案选 A)。 37 【正确答案】 A 【试题解析】 宏定义不是 C语句,结尾不加 “;“,所以该程序会出现编译错误,答案选 A)。 38 【正确答案】 A 【试题解析】 分号代表该结构体定义语句的结束,选项 A)的结构体没有定义完全就用该结构体另外定义变量,用

27、法有误,所以答案选 A)。 39 【正确答案】 A 【试题解析】 考查结构体变量作为函数实参整体传递,也是 一种值传参,形参的变化不能影响到实参,所以调用函数 f(a)对 a中的数据没有影响,输出结果为1,2,答案选 A)。 40 【正确答案】 A 【试题解析】 字符常量与其 ASCII码值一一对应,在计算的时候,可以使用该字符的 ASCII码参与运算,输出时会根据格式控制符输出对应的字符或者 ASCII码。右移运算符 “的运算规则是把左边运算数的各二进制位全部右移 n位, n取决于 “右边的数值。字符 a的 ASCII码值为 8,对应二进制为 1000,所以a3=1,输出的字符 c的 ASC

28、II码值为 1,答案选 A)。 二、程序填空题 41 【正确答案】 (1)sum=0 (2)tii (3)1 【试题解析】 填空 1:变量 sum存储主对角线与反向对角线元素之和,所以为其赋初值 0。 填空 2:主对角线元素的行下标和列下标是相同的,所以应填入 tii。 填空 3:反向对角线元素的行下标和列的下标之和为 n 1,所以应填入 1。 三、程序修改题 42 【正确答案】 (1)int fun(int n) (2)if(n=1) 【试题解析】 (1)有参函数要定义形参变量类型 ,由于主函数中传递的参数为 int型,所以形参定义为 int型。 (2)n: 1是赋值表达式,不能作为判断条件, =用于比较判断。 四、程序设计题 43 【正确答案】 void fun(char*str) im i=0 char*p=str; while(*p)*遍历字符串 * *如果当前元素不为空格 */ if(*p!=) /*将当前元素保存到 str中 * stri=*p; i+; p+; stri= 0; /*字符串最后加上结束标记符 0*/ 【试题解析】 题目要求删除空格,也就是重新保存空格以外的其他字符。通过循环删除字符串中的每一个空格,将非空格字符进行重新保存。

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

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

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