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

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

1、国家二级( C语言)机试模拟试卷 2及答案与解析 一、选择题 1 算法的有穷性是指( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 2 构成计算机软件的是( )。 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D)程序、数据及相关文档 3 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n 1)/2的排序方法是( )。 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 4 结构化程序设计的基本原则不包括( )。 ( A)多态性 ( B)自顶向下

2、( C)模块化 ( D)逐步求精 5 在面向对象方法中,不属于 “对象 “基本特点的是( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识唯一性 6 软件生命周期是指( )。 ( A)软件产品从提出、实现、使用、维护到停止使用退役的过程 ( B)软件的需求分析、设计与实现 ( C)软件的开发与管理 ( D)软件的实现和维护 7 程序测试的目的是( )。 ( A)执行测试用例 ( B)发 现并改正程序中的错误 ( C)发现程序中的错误 ( D)诊断和改正程序中的错误 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于( )。 ( A)需求分析阶段 ( B)概念设计阶段

3、 ( C)逻辑设计阶段 ( 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)实用的 C语言源程序总是由一个或多个函数组成 ( B)用户自己定义的函数只能调用库函数 ( C)不同函数的形式参数不能使用相同名称的标识符 ( D)在 C语言的函数内部,可以定义局部嵌套函数 13 设有两行定义语句: int scanf; float case; 则以下叙述正确的是( )。 ( A)第 2行语句不合法 ( B)两行定义语句都合

5、法 ( C)第 1行语句不合法 ( D)两行定义语句都不合法 14 有以下程序 #include main() printf(“%dn“, NULL ); 程序运行后的输出结果是( )。 ( A) 0 ( B)变量无定义,输出不确定 ( C) -1 ( D) 1 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 设有定义: int x=11,y=12

6、,z=0;,以下表达式值不等于 12的是( )。 ( A) z=(x=y) ( B) (z=x,y) ( C) z=(x,y) ( D) (z,x,y) 17 若变量已正确定义为 int型,要通过语句 scanf(“%d,%d,%d“, 给 a赋值 1、给 b赋值 2、给 c赋值 3,以下输入形式中错误的是(注: 代表一个空格符 )( )。 ( A) 123 ( B) 1,2,3 ( C) 1,2,3 ( D) 1,2,3 18 设有定义: double a,b,c; 若要求通过输入分别给 a、 b、 c输入 1、 2、 3,输入形式如下(注:此处 代表一个空格 ) 1.02.03.0 则能进

7、行正确输入的语句是( )。 ( A) scanf(“%lf%lf%lf“, ( B) scanf(“%lf%lf%lf“,a,b,c); ( C) scanf(“%f%f%f“, ( D) scanf(“%5.1lf%5.1lf%5.1lf“, 19 有以下程序 #include main() int x=1, y=0; if (!x) y+; else if (x=0) if (x) y+=2; else y+=3; printf(“%dn“, y); 程序运行后的输出结果是( )。 ( A) 0 ( B) 2 ( C) 1 ( D) 3 20 若有定义 int x,y; 并已正确给变量赋值

8、,则以下选项中与表达式 (x-y)?(x+) : (y+)中的条件表达式 (x-y) 等价的是( )。 ( A) (x-y0) ( B) (x-y0) ( D) (x-y=0) 21 有以下程序 #include main() int i,j,m=1; for(i=1;i0;j- ) if(i*j3) break; m*=i*j; printf(“m=%dn“,m); 程序运行后的输出结果是( )。 ( A) m=6 ( B) m=2 ( C) m=4 ( D) m=5 22 以下叙述中错误的是( )。 ( A)使用三种基本结构构成的程序只能解决简单问题 ( B)结构化程序由顺序、分支、循环三

9、种基本结构组成 ( C) C语言是一种结构化程序设计语言 ( D)结构化程序设计提倡模块化的设计方法 23 有以下程序 #include main() int i, sum; for( i=1; i main() char a20, b =“The sky is blue.“; int i; for (i=0; i表示回车符 ) Fig flower is red. 则输出结果是( )。 ( A) wer is red.Fig flo is blue. ( B) wer is red.Fig flo ( C) wer is red.The sky is blue. ( D) Fig flowe

10、r is red.The sky is blue. 28 以下叙述中正确的是( )。 ( A)调用函数时,函数名必须与被调用的函数名完全一致 ( B)函数调用时,不必区分函数名称的大小写 ( C)函数名允许用数字开头 ( D)在函数体中只能出现一次 return语句 29 有以下程序 #include int m1(int x,int y) return x int f ( int m ) static int n=0; n+=m; return n; main() int n=0; printf ( “%d,“, f(+n) ); printf ( “%dn“, f(n+) ); 程序运行

11、后的输出结果是( )。 ( A) 1,2 ( B) 1,1 ( C) 2,3 ( D) 3,3 32 设有定义: int x=0, *p; 紧接着的赋值语句正确的是( )。 ( A) p=NULL; ( B) *p=NULL; ( C) p=x; ( D) *p=x; 33 以下叙述中正确的是( )。 ( A) int* p1; int * p2; int *p3;都是合法的定义指针变量的语句 ( B)指针变量只能通过求地址运算符( 与 p=0;是等价的语句 ( D)语 句 p=NULL;执行后,指针 p指向地址为 0的存储单元 34 有以下程序 #include void fun( int

12、*s, int n1, int n2 ) int i,j,t; i=n1; j=n2; while( i #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) struct ord int x;int y;i

13、nt 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) 2,4 ( C) 1,4 ( D) 2,

14、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。所指数组中的奇数按原顺序依次存放到 a0、 a1、 a2 中,把偶 数从数组中删除,奇数个数通过函数值返回。 例如,若 a所指数组中的数据最初排列为: 9, 1, 4, 2 3, 6, 5, 8, 7,删除偶数后 a所指数组中的数据为: 9, 1, 3, 5, 7,返回值为 5。 请在

15、下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #inClude #define N 9 intfun (intt a, int n) int i,j; j=0; for=0; i #inchde /*found*/ voidfun(char s,chartl int i, d; d=strlen(s); for(i=0; i d; i+) ti=si; for(i=0; i d; i+) td+i=sd-1-i; /*found*/ t2*d-1= 0; main() char s100, t10

16、0; printf(“nPlease enter string S: ”); scanf(“ s“, s); fun(a, t); printf(“nThe result is: an|, t); 四、程序设计题 43 编写函数 fun,其功能是:从字符串中删除指定的字符。同字母的大、小写按不同字符处理。 例如,若程序执行时输入字符串为: “turbo c and borland c+” 从键盘上输入字符 n,则输出为: “turbo C ad borlad c+” 如果输入的字符在字符串中不存在,则字符串照原样 输出。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内

17、容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include void fun(char S, int C) main() static char str=“turbo c and borland c+”; char ch; printf(“原始字符串: sn”, str); printf(“输入一个字符: n”); scanf(“ c”, 国家二级( C语言)机试模拟试卷 2答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性 是指算法程序的运行时间是有限的。 2 【正确答案】 D 【试题解

18、析】 计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。答案选 D 3 【正确答案】 D 【试题解析】 在最坏的情况下,堆排序需要比较的次数为 O(nlog2n),所以选择D)。 4 【正确答案】 A 【试题解析】 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto语句,所以选择 A)。 5 【正确答案】 A 【试题解析】 对象有如下一些基本特 点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择 A)。 6 【正确答案】 A 7 【正确答案】 C 8 【正确答案】 C 【试题解析】 E R图转换成关系模型数据则是

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

20、 C)。 11 【正确答案】 A 【试题解析】 C语言程序编译时将每条可执行语句转换为二进制的机器指令,但非执行语句 (如注释语句 )不被编译。所以选项 A)错误。 12 【正确答案】 A 【试题解析】 一个 C程序可 以有一个或多个程序文件,所以也可以有一个或多个函数,选项 A)正确;除了 main函数不能被其他函数调用之外,用户自定义函数可以调用其他任意函数,选项 B)错误;函数是一个独立的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项 C)错误;函数体内部只可以调用但是不可以定义其他函数,选项 D)错误;答案选 A)。 13 【正确答案】 A 【试题解析】 本题考查用户标

21、识符,用户自己定义的标识符不能与关键字相同,并且尽量避免和预定义标识符相同。本题中 scanf为预定义标识符,可以作为用户标识符 ;case为关键字,不能作为用户标识符,故而答案选 A)。 14 【正确答案】 A 15 【正确答案】 A 【试题解析】 考查算术表达式的写法, C中没有 ,需要用数值 3.14代替, C中sin函数的参数为弧度,角度 30转成弧度应为 3.14*30/180。故而选 A)。 16 【正确答案】 A 17 【正确答案】 A 18 【正确答案】 A 19 【正确答案】 A 20 【正确答案】 A 21 【正确答案】 A 22 【正确答案】 A 23 【正确答案】 A

22、24 【正确答 案】 A 25 【正确答案】 A 26 【正确答案】 A 27 【正确答案】 A 28 【正确答案】 A 29 【正确答案】 A 30 【正确答案】 A 31 【正确答案】 A 32 【正确答案】 A 33 【正确答案】 A 34 【正确答案】 A 35 【正确答案】 A 36 【正确答案】 A 37 【正确答案】 A 38 【正确答案】 A 39 【正确答案】 A 40 【正确答案】 A 二、程序填空题 41 【正确答案】 (1)1 (2)j+ (3)j 【试题解析】 填空 1:根据题意要保留奇数删除偶数, if语句用来判断数组元素是否为奇数,奇数不能被 2整除,所以填入 i

23、f(i 2=1)。 填空 2:将奇数赋值给数组元素,数组下标递增。 填空 3:数组中奇数的个数通过函数返回值返回,所以填入 j。 三、程序修改题 42 【正确答案】 (1)void fun(char*s, char*t) (2)t2*d=0;或 td+i= 0;或 t2*d=0;或 td+i=0; 【试 题解析】 (1)主函数中调用语句中实参为数组,所以形参应为指针。 (2)字符串连接后字符的个数为 2*d个,数组下标从 0开始,最后一个字符的下标为 2*d一 1,所以结束符 0下标为 2*d。 四、程序设计题 43 【正确答案】 void fun(char s, int c) int i=0: char*p; p=s; while(*p) /*判断是否为结束标识符 * if(*p!=c) /*判断字符串中字符是否与指定字符相同 */ si=*p; /*如不同,将重新组合字符串 * i+: /*如相同,则处理下一个字符 * p+; ) si= 0; 【试题解析】 通过循环将非指定字符重新保存,字符串末尾加上结束标识符。

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

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

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