[计算机类试卷]国家二级(C语言)机试模拟试卷1及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷1及答案与解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 1及答案与解析 一、选择题 1 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCDE12345 ( D) 54321EDCBA 2 算法的有穷性是指( )。 ( A)算法程序的运行时间是有限的 ( B)算法程序所处理的数据量是有限的 ( C)算法程序的长度是有限的 ( D)算法只能被有限的用户使用 3 设栈的顺序存储空间 为 S(0:49),栈底指针 bottom=49,栈顶指针 top=
2、30(指向栈顶元素)。则栈中的元素个数为( )。 ( A) 30 ( B) 29 ( C) 20 ( D) 19 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 数据库系统的三级模式不包括( )。 ( A)概念模式 ( B)内模式 ( C)外模式 ( D)数据模式 10 有三个关系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运 算为( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 11 以下叙述中正确的是( )。 ( A)实用的 C语言源程序总是由一个或多个函数组成 ( B)用户自己定义的函数只能调用库函数 ( C)不同函数的形式参数不能使
4、用相同名称的标识符 ( D)在 C语言的函数内部,可以定义局部嵌套函数 12 下列叙述中错误的是( )。 ( A)一个 C语言程序只能实现一种算法 ( B) C程序可以由多个程序文件组成 ( C) C程序可以由一个或多个函数组成 ( D)一个 C函数可以单独作为一个 C程序文件存在 13 以下叙述中正确的是( )。 ( A)关系运算符两边的运算对象可以是语言中任意合法的表达式 ( B)在 C语言中,逻辑真值和假值分别对应 1和 0 ( C)对于浮点变量 x和 y,表达式: x=y 是非法的,会出编译错误 ( D)分支结构是根据算术表达式的结果来判断流程走向的 14 设有两行定义语句: int
5、scanf; float case; 则以下叙述正确的是( )。 ( A)第 2行语句不合法 ( B)两行定义语句都合法 ( C)第 1行语句不合法 ( D)两行定义语句都不合法 15 以下选项 中,合法的一组 C语言数值常量是( )。 ( A) 12. 0Xa23 4.5e0 ( B) 028 .5e-3 -0xf ( C) .177 4e1.5 0abc ( D) 0x8A 10,000 3.e5 16 以下能正确表述算式 sin(2r+30)的 C语言表达式是( )。 ( A) sin(2*3.14*r+3.14*30/180.0) ( B) sin(2*r+ 30 ) ( C) sin
6、(2*3.14*r+ 30 ) ( D) sin(2*3.14*r+30*3.14/360.0) 17 有以下程 序 #include main() int a=1,b=0; printf(“%d,“,b=a+b); printf(“%dn“,a=2*b); 程序运行后的输出结果是( )。 ( A) 1,2 ( B) 1,0 ( C) 3,2 ( D) 0,0 18 设有定义: char s81; int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是( )。 ( A) scanf(“%s“,s); ( B) while(si+=getchar()!=n
7、);si=0; ( C) gets(s); ( D) do scanf(“%c“, while(si+!=n); si=0; 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 if (n/2) int a=6; t += a+; else int a=7; t += a+; return t + a+; main() int s
8、=0, i=0; for (; i void f(int b) int i; for (i=2; i int m1(int x,int y) return x int f(int x); main() int n=1,m; m=f(f(f(n); printf(“%dn“,m); int f(int x) return x*2; 程序运行后的输出结果是( )。 ( A) 8 ( B) 2 ( C) 4 ( D) 1 32 有以下程序 #include #include int fun(int n) int *p; p = (int*)malloc(sizeof(int); *p=n; retu
9、rn *p; main() int a; a = fun(10); printf(“%dn“,a+fun(10); 程序的运行结果是( )。 ( A) 20 ( B) 10 ( C) 0 ( D)出错 33 在 32位编译器上,设有定义 char *str1 = “Hello“, str2 = “Hello“; , 则以下语句 printf(“%d %d“, sizeof(str1), sizeof(str2); 的输出结果是( )。 ( A) 4 6 ( B) 5 5 ( C) 6 6 ( D) 5 6 34 有以下程序(其中的 strstr()函数头部格式为: char *strstr(c
10、har *p1, char *p2) 确定 p2字符串是否在 p1中出现,并返回 p2第一次出现的字符串首地址) #include #include char *a=“you“; char *b=“Welcome you to Beijing!“; main() char *p; p = strstr(b, a) + strlen(a) + 1; printf(“%sn“, p); 程序的运行结果是( )。 ( A) to Beijing! ( B) you to Beijing! ( C) Welcome you to Beijing! ( D) Beijing! 35 设有定义: int
11、x=0, *p; 紧接着的赋值语句正确的是( )。 ( A) p=NULL; ( B) *p=NULL; ( C) p=x; ( D) *p=x; 36 有以下程序 #include #define N 2 #define M N+1 #define MUN (M+1)*M/2 main() printf( “%dn“, MUN ); 程序运行后的输出 结果是( )。 ( A) 8 ( B) 9 ( C) 5 ( D) 6 37 以下叙述中错误的是( )。 ( A) C程序对预处理命令行的处理是在程序执行的过程中进行的 ( B)预处理命令行的最后不能以分号表示结束 ( C) #define M
12、AX 是合法的宏定义命令行 ( D)在程序中凡是以 “#“开始的语句行都是预处理命令行 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 typedef struct int b, p; A; void f(A c) /* 注
13、意: 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 ( D) 0 二、程序填空题 41 给定程序中,函数 fun的功能是:将形参 s
14、所指字符串 中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如, s所指字符串为 asd123fgh543df,理后新字符串为 123543asdfghdf。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include #include #include #include char*fun(char*s) int i, j, k, n; char*p,*t; n=strlen(s)+1; t=(char*)malloc(d*sizeof(char
15、); p=(ehar*)malloe(n*sizeof(char): j=0; k=0; for(i=0; i intfun(inta, int b) int r,t; if(a b) t=a; b=a; a=t; /*found*/ r=a b: while(r!=0) a=b; b=r; r=a b; /*found*/ return(a); void main() int num1, num2, a; printf(“Input num1 num2: “); scanf(“ d d“, 四、程序设计题 43 编写函数 fun,其功能是:将 s所指字符串中除了下标为奇数,同时 ASCII码
16、值也为奇数的字符之外,其余 所有字符全部删除,串中剩余字符所形成的一个新串放在 t所指的数组中。 例如,若 s所指字符串的内容为 “ABCDEFG12345”,其中字符 A的 ASCII码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符 1的 ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后 t所指数组中的内容应为 “135”。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序: #inchde #include void fun(ehar*s, char tD main
17、() char s100, t100; printf(“hiPlease enter string s: ”); seanf(“ s“,s); fun(s,t); prinff(“nThe result is: sn”,t); 国家二级( C语言)机试模拟试卷 1答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 栈 是先进后出的原则组织数据,所以入栈最早的最后出栈,所以选择 B)。 2 【正确答案】 A 【试题解析】 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。 3 【正确答案】 C 【试题解析】 栈底指针 bottom=4
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 答案 解析 DOC
