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

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

1、国家二级( C语言)机试模拟试卷 4及答案与解析 一、选择题 1 算法的有穷性是指( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 2 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n 1)/2的排序方法是( )。 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 3 设数据元素的集合 D= 1,2,3,4,5 ,则满足下列关系 R的数据结构中为线性结构的是( )。 ( A) R= (1,2), (3,4), (5,1) ( B) R= (1,3), (4,

2、1), (3,2), (5,4) ( C) R= (1,2), (2,3), (4,5) ( D) R= (1,3), (2,4), (3,5) 4 结构化程序设计的基本原则不包括( )。 ( A)多态性 ( B)自顶向下 ( C)模块化 ( D)逐步求精 5 在面向对象方法中,不属于 “对象 “基本特点的是( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识唯一性 6 程 序流程图中带有箭头的线段表示的是( )。 ( A)图元关系 ( B)数据流 ( C)控制流 ( D)调用关系 7 构成计算机软件的是( )。 ( A)源代码 ( B)程序和数据 ( C)程序和文档 ( D

3、)程序、数据及相关文档 8 在数据库设计中,将 E-R图转换成关系数据模型的过程属于( )。 ( A)需求分析阶段 ( B)概念设计阶段 ( C)逻辑设计阶段 ( D)物理设计阶段 9 有三个关系 R、 S和 T如下由关系 R和 S通过运算得到关系 T,则所使用的运算为( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 10 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字(键或码)为( )。 ( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,

4、成绩 11 以下叙述中错误的是( )。 ( A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( B) C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( C)用 C语言编写的程序称为 源程序,它以 ASCII代码形式存放在一个文本文件中 ( D)语言源程序经编译后生成后缀为 .obj的目标程序 12 下列叙述中错误的是( )。 ( A)一个 C语言程序只能实现一种算法 ( B) C程序可以由多个程序文件组成 ( C) C程序可以由一个或多个函数组成 ( D)一个 C函数可以单独作为一个 C程序文件存在 13 设有两行定义语句: int sca

5、nf; float case; 则以下叙述正确的是( )。 ( A)第 2行语句不合法 ( B)两行定义语句都合法 ( C)第 1行语句不合法 ( D)两行 定义语句都不合法 14 以下选项中,合法的一组 C语言数值常量是( )。 ( A) 12. 0Xa23 4.5e0 ( B) 028 .5e-3 -0xf ( C) .177 4e1.5 0abc ( D) 0x8A 10,000 3.e5 15 有以下程序 #include main() int x=010, y=10; printf(“%d,%dn“, +x, y-); 程序运行后的输出结果是( )。 ( A) 9,10 ( B) 1

6、1,10 ( C) 010,9 ( D) 10,9 16 以下能正确表述算式 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) 17 设有定义: char s81; int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是( )。 ( A) scanf(“%s“,s); ( B) while(si+=getchar()!=n);si=0; (

7、C) gets(s); ( D) do scanf(“%c“, while(si+!=n); si=0; 18 以下语句的输出结果是 printf(“%dn“, strlen(“t“065xffn“);( )。 ( A) 5 ( B) 8 ( C) 14 ( D)输出项不合法,无正常输出 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 = (

8、 a=A for( ; y0; y-) if(y%3=0) printf(“%d“, -y); 程序的运行结果是( )。 ( A) 852 ( B) 963 ( C) 741 ( D) 875421 22 关于 “while(条件表达式 )循环体 “,以下叙述正确的是( )。 ( A)条件表达式的执行次数总是比循环体的执行次数多一次 ( B)循环体的执行次数总是比条件表达式的执行次数多一次 ( C)条件表达式的执行次数与循环体的执行次数一样 ( D)条件表达式 的执行次数与循环体的执行次数无关 23 若变量已正确定义 for( x=0,y=0; ( y!=99 char *pm=mm; int

9、 i; for(i=0; i int * sum(int data) static int init = 0; init += data; return main() int i, *p; for (i=1; i void fun( int x, int y, int *c, int *d ) *c = x+y; *d = x-y; main() int a=4, b=3, c=0, d=0; fun ( a, b, printf( “%d %dn“ , c, d ); 程序的输出结果是( )。 ( A) 7 1 ( B) 4 3 ( C) 3 4 ( D) 0 0 32 若有说明和语句: c

10、har str=“Hello“, *p; p=str;,则此时 *(p+5)中的值为( )。 ( A) 0 ( B) o ( C) o的地址 ( D)不确定的值 33 设有定义: int x=0, *p; 紧接着的赋值语句正确的是( )。 ( A) p=NULL; ( B) *p=NULL; ( C) p=x; ( D) *p=x; 34 有以下程序 #include void fun(int *s, int n1, int n2) int i, j, t; i=n1; j=n2; while( i main() char c25=“6938“,“8254“ , *p2; int i, j,

11、s=0; for( i=0; i0 ; j+=2 ) s=10*s+pij-0; printf(“%dn“,s); 程序运行后的输出结果是( )。 ( A) 6385 ( B) 9824 ( C) 4528 ( D) 6938 36 以下叙述中正确的是( )。 ( A)在 C语言中,预处理命令行都以 “#“开头 ( B)预处理命令行必须位于 C源程序的起始位置 ( C) #include 必须放在 C程序的开头 ( D) C语言的预处理不能实现宏定义和条件编译的功能 37 有以下程序 #include #define PT 3.5 ; #define S(x) PT*x*x ; main()

12、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;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 有以下

13、程序 #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,3 40 有以下程序 #include main() unsigned char a=8, c; c = a3; printf(“%dn“, c); 程序运行后的输出结果是( )。 ( A) 1

14、( B) 16 ( C) 32 ( D) 0 二、程序填空题 41 给定程序中,函数 fun的功能是:求出形参 ss所指字符串数组中最长字符串的长度,其余字符串左边用字符 *补齐,使其与最长的字符串等长。字符串数组中共有 M个字符串,且串长小于 N。 请在程序的下划线处填人正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include #include #define M 5 #define N 20 void fun(char(*ss)N) int i, j, k=O, n, m, len; for (i=

15、0: in) /*found*/ n=len;【 1】 =i; for(i=0; i=0 j-) ss【 i】【 m】 =ssij; for(j=0; j int fun(int*b) int k, a1, a2, i=0; for(k=10; k void fun(char*a,char*h,char*P) main() char s 81, *t, *f; prinff(“Entera string: n”); gets(s); t=f=s; while(*t) t+; t-; while(*t=*) t-; while(*f=*) f+; fun(s, f,t); prinff(“The

16、 string after deleted: n”); puts(s); 国家二级( C语言)机试模拟试卷 4答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。 2 【正确答案】 D 【试题解析】 在最坏的情况下,堆排序需要比较的次数为 O(nlog2n),所以选择D. 3 【正确答案】 B 【试题解析】 关系 R中的每个结点由两个部分构成,分别是数据域和指针域。选项 B)中可以看出,元素序列为 5 4132 ,符合线性结构的条件。选项A)、选项 C)和选项 D)中分别有两个根结点

17、,不符合线性结构的条件。所以答案选 B)。 4 【正确答案】 A 【试题解析】 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto语句,所以选择 A)。 5 【正确答案】 A 【试题解析】 对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。所以选择 A)。 6 【正确答案】 C 【试题解析】 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字 的箭头表示控制流。所以选择 C. 7 【正确答案】 D 【试题解析】 计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。答案选 D 8 【正确

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

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

20、选 A 14 【正确答案】 A 【试题解析】 考查整型常量、实型常量。选项 B)的 “028“错,以 0开头表示为八进制 整常数,不能出现数字 8;选项 C)的 “4e1.5“错, e后面应为整数, “0abc“错,八进制整常数只能由 07构成;选项 D)的 “10,000“错, C语言没有千分号,所以答案选 A)。 15 【正确答案】 A 【试题解析】 八进制整常数以数字 “0“作为前缀,格式控制符为 “%d“表示按照十进制输出,而且自加自减运算中, +x和 -x都是先计算后使用该变量,而 x+和 x-是先使用该变量再计算,所以在输出的时候输出的是 x自加 1之后的十进制数字,即 9,还有

21、y自减之前的十进制数字,即 10,所以答案选 A 16 【正确答案】 A 【试题解析】 考查算术表达式的写法, C中没有 ,需要用数值 3.14代替, C中sin函数的参数为弧度,角度 30转成弧度应为 3.14*30/180。故而选 A 17 【正确答案】 A 【试题解析】 函数 scanf()输入字符串时默认空格为间隔符,所以不能输入空格,答案选 A 18 【正确答案】 A 【试题解析】 字符串 “t“065xffn“中共有五个转义字符,分别是 t、 “ 、 065、 xff、 n,各代表一个字符, strlen()计 算的是字符串的实际长度(不包含结束标识符),所以输出结果为 5,答案选

22、 A)。 19 【正确答案】 A 【试题解析】 考查条件表达式。条件表达式的形式为: 表达式 1 ? 表达式 2 : 表达式 3 ,计算 “表达式 1“的值,若为 “真 “,取 “表达式 2“的值作为整个条件表达式的值;若为 “假 “,取 “表达式 3“的值作为整个条件表达式的值。本程序中要选能判定 (x-y)为 “真 “的语句,即 x! =y,或者 (x-y 0),选 A)。 20 【正确答案】 A 【试题解析】 考查条件运算符。条件表达式的 形式为: 表达式 1 ? 表达式 2 : 表达式 3 ,计算 “表达式 1“的值,若为 “真 “,取 “表达式 2“的值作为整个条件表达式的值;若为

23、“假 “,取 “表达式 3“的值作为整个条件表达式的值。字符参与运算时一般计算其 ASCII码,并且一个字母的小写 -大写 =32( ASCII码),该程序将大写字母转成对应的小写字母,答案选 A)。 21 【正确答案】 A 【试题解析】 该程序的运行过程是 y从 9开始自减,每次判定 y是否能被 3整除,若是,则输出 -y后的值,能被 3整除的 y值分别为 9、 6、 3,所以答案选A)。 22 【正确答案】 A 【试题解析】 考查 while循环的执行过程。先计算括号内表达式的值,若不为0,则执行循环体语句,若为 0则跳出 while循环,所以条件表达式的执行次数总是比循环体的执行次数多一

24、次,答案选 A)。 23 【正确答案】 A 【试题解析】 for语句的一般形式为 “for(表达式 1; 表达式 2; 表达式 3 ) 循环体语句 “,其执行流程是先计算表达式 1,之后计算表达式 2,根据表达式 2的值来判定是否进行循环,若为真,则执行循环体,循环体执行完毕之后再计算表达式 3的值。该循环的循环条件是 ( y!=99 “,所以该程序会出现编译错误,答案选 A)。 38 【正确答案】 A 【试题解析】 分号代表该结构体定义语句的结束,选项 A)的结构体没有定义完全就用该结构体另外定义 变量,用法有误,所以答案选 A)。 39 【正确答案】 A 【试题解析】 考查结构体变量作为函

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

26、n(3)ssij 【试题解析】 填空 1:变量 k存放最长的字符串的位置,所以应填 k。 填空 2:原字符串利用 for循环移至最右边存放,原字符串长度为 len,所以应填len。 填空 3:字符串左边用字符 *补齐,所以应填 ssij。 三、程序修改题 42 【正确答案】 (1)a2=k 10: (2)return(i); 【试题解析】 (1)a2存放十位数,所以 a2=k 10,其中 0书写错误。 (2)要返回满足条件的个数,即数组 b的元素个数,所以返回的是 i。 四、程序设计题 43 【正确答案】 void fun(char*a, char*h, char*P) int i=0; char*q=a; while(qh) ai=*q; q+; i+; while(qp) if(*q!=*) ai=*q; i+;

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

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

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