[计算机类试卷]国家二级(C语言)机试模拟试卷154及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷154及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷154及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 154及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 ( B)循环队列中的元素个数随队头指针的变化而动态变化 ( C)循环队列中的元素个数随队尾指针的变化而动态变化 ( D)以上说法都不对 2 下列关于栈的叙述中,正确的是 ( )。 ( A)栈底元素一定是最后入栈的元素 ( B)栈顶元素一定是最先入栈的元素 ( C)栈操作遵循 “先进后出 ”的原则 ( D)以上说法均错误 3 设某二 叉树的后序序列为 CBA,中序序列为 ABC,则该二叉树的前序序列为( )。 ( A) BCA (
2、B) CBA ( C) ABC ( D) CAB 4 结构化程序设计主要强调的是 ( )。 ( A)程序的规模 ( B)程序的效率 ( C)程序设计语言的先进性 ( D)程序易读性 5 为了使模块尽可能独立,要求 ( )。 ( A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 ( B)模块的内聚程度要尽量高,且各模块问的耦合程度要尽量弱 ( C)模块的内聚程度要尽量低,且各模块间的耦合程度要 尽量弱 ( D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 6 在结构化方法中,软件功能属于软件开发中的 ( )阶段。 ( A)详细设计 ( B)需求分析 ( C)总体设计 ( D)编程
3、调试 7 下列叙述中正确的是 ( )。 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上说法均错误 8 关系数据库管理系统所管理的关系是 ( )。 ( A)若干个二维表 ( B)一个 DBF文件 ( C)一个 DBC文件 ( D)若干个 DBC文件 9 结构化程序设计中,下面对 goto语句使用描述正确的是 ( )。 ( A)禁止使用 goto语句 ( B)使用 goto语句程序效率高 ( C)应避免滥用 goto语句 ( D)以上说法均错误 10 设有如下三个关系表: 下列操作中正确的是
4、( )。 ( A) T=RS ( B) T=R S ( C) T=RS ( D) T=R S 11 以下选项中合法的标识符是 ( )。 ( A) _11 ( B) 11 ( C) 1_1 ( D) 1_ 12 以下叙述中错误的是 ( )。 ( A) C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( B) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( C)用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 ( D) C语言源程序经编译后生成后缀为 obj的目标程序 13 若有定义 :int a=0, b=0, c=0
5、,d=0;,有 C语言表达式 (a+&b+)?c+: d+,以下关于其执行顺序的叙述中正确是 ( )。 ( A)先执行 a+,表达式 a+的值为 0,由此即可确定 (a+&b+)值为 0,因此执行 d+ ( B)先执行 a+,表达式 a+的值为 0;再执行 b+,表达式 b+的值为 0,由此可确定 (a+&b+)值为 0,因此执行 d+ ( C)先执行 a+,表达式 a+的值为 1;再执行 b+,表达式 b+的值为 1,由此可确定 (a+&b+)值为 1,因此执行 c+ ( D)先执行 b+,表达式 b+的值为 1;再执行 a+,表达式 a+的值为 1,由此可确定 (a+&b+)值为 1,因此
6、执行 c+ 14 表达式: (int)(double)9 2)一 (9) 2的值是 ( )。 ( A) 0 ( B) 3 ( C) 4 ( D) 5 15 以下选项中叙述正确的是 ( )。 ( A)函数体必须由 开始 ( B) C程序必须由 mflin语句开始 ( C) C程序中的注释可以嵌套 ( D) C程序中的注释必须在一行里完成 16 若有以下程序段: int r=8: printf(“ d n“, r 1); 输出结果是 ( )。 ( A) 16 ( B) 8 ( C) 4 ( D) 2 17 以下能对一维数组 a进行初始化的 语句是 ( )。 ( A) int a5=(0, 1, 2
7、, 3, 4); ( B) int a(5)=; ( C) int a3=0, 1, 2; ( D) int a5=10*1; 18 若有定义: int a; float b; double c;,程序运行时输入: 1 2 3回车,能把 1输入给变量 a、把 2输入给变量 b、把 3输入给变量 c的输入语句是 ( )。 ( A) scanf(“ d f lf“, &a, &b, &c); ( B) scanf(“ d f lf“, &a, &b, &c); ( C) scanf(“ d lf lf“, &a, &b, &c); ( D) scanf(“ d f f“, &a, &b, &c);
8、 19 下列数据中属于 “字符串常量 ”的是 ( )。 ( A) a ( B) ABC ( C) abc 0 ( D) a 20 当变量 C的值不为 2、 4、 6时,值为 “真 ”的表达式是 ( )。 ( A) (c=2) (c=4) (c=6) ( B) (c =2&c =6) (c!一 3) (c!=5) ( C) (c =2&c =6)&!(c 2) ( D) (c =2&c =6)&(c 2!=1) 21 有以下程序: #include stdio h main() float a, b, c, t; a=3; b=7; c=1; if(a b) t=a; a=b; b=t; if(
9、a c) t=a; a=c; c=t; if(b c) t=b; b=c; c=t; printf(“ 5 2f, 5 2f, 5 2f“, a, b, c); 程序运行后的输出结果是 (其中口代表空格 )( )。 ( A)口口 3 00,口口 1 00,口口 7 00 ( B)口口 3 00,口口 7 00,口口 1 00 ( C)口口 1 00,口口 3 00,口口 7 00 ( D)口口 7 00,口口 3 00,口口 1 00 22 有以下程序: #include stdio h main() int a=1, b=0; for(; a 5; a+) if(a 2=0)break; c
10、ontinue; b+=a: printf(“ d n“, b); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 1 ( C) 10 ( D) 4 23 有以下程序: #include stdio h main() int sum=10, n=1; while(n 3) sum=sumn; n+; printf(“ d, d“, n, sum); 程序运行后的输出结果是 ( )。 ( A) 2, 8 ( B) 3, 7 ( C) 3, 8 ( D) 2, 7 24 以下叙述中正确的是 ( )。 ( A)数组说明符的一对方括号中只能使用整型常量,而不能使用表达式 ( B)一条语句只能
11、定义一个数组 ( C)每个数组包含一组具有同一类型的变量,这些变量在内存中占有连续的存储单元 ( D)在引用数组元素时,下标表达式可以使用浮点数 25 以下叙述中正确的是 ( )。 ( A) char c1, c2, *c3, c440;是合法的变量定义语句 ( B)数组下标的下限由数组中第一个非零元素的位置决定 ( C)数组下标的下限由数组中第一个被赋值元素的位置决定 ( D)数组下标的下限是 1 26 设有定义: char p=1, 2, 3, *q=p; 以下不能计算出一个 char型数据所占字节数的表达式是 ( )。 ( A) sizeof(*q) ( B) sizeof(char)
12、( C) sizeof(p) ( D) sizeof(p0) 27 以下叙述中正确的是 ( )。 ( A)语句 char a2=“a“, “b“;是合法的,定义了一个包含两个字符的数组 ( B)语句 int a=0;是不合法的,遗漏了数组的大小 ( C)语句 int a8=0;是合法的 ( D)语句 char a3; a=“ab“;是合法的,因为数组有三个字符空间的容量,可以保存两个字符 28 有以下程序: #include stdio h int k=5: void f(int*s) s=&k; main() int m=3, *p=&m; f(p); printf(“ d d n“, m,
13、 *p); 程序的运行结果是 ( )。 ( A) 3 3 ( B) 5 5 ( C) 3 5 ( D) 5 3 29 有以下程序: #include stdio h main() im x33=1, 2, 3, 4, 5, 6, 7, 8, 9), i; for(i=1; i 3; i+) printf(“ d“, xi3一 i); 程序运行后的输出结果是 ( )。 ( A) 2, 4 ( B) 6, 8 ( C) 3, 7 ( D) 2, 6 30 下列错误的定义是 ( )。 ( A) int *p= i, i; ( B) int *p, i; ( C) int i, *p= i; ( D)
14、 int i, *p; 31 有以下程序: #include stdio h main() int a23=1, 2, 3, 4, 5, 6; int b32, i, j; for(i=0; i =1; i+) for(j=0; j =2; j+) bji=aij; for(i=0; i =2; i+) for(j=0; j =1; j+) printf(“ d“, bij); 程序的运行结果是 ( )。 ( A) 1 2 3 4 5 6 ( B) 1 3 5 2 4 6 ( C) 1 4 2 5 3 6 ( D) 1 3 2 5 4 6 32 若有定义语句: char *s1=“GOOD“,
15、 *s2=“good“; 以下选项中,能够输出 “GOOD“语句是 ( )。 ( A) if(strcmp(s1, s2)!=0)puts(s2); ( B) if(strcmp(s1, s2)!=0)puts(s1); ( C) if(strcmp(s1, s2)=1)puts(s1); ( D) if(strcmp(s1, s2)=0)puts(s1); 33 有以下程序: #include stdio h unsigned fun(unsigned num) unsigned k=1; do k*=num 10; num =10; while(num); return k; main()
16、 unsigned n=26; printf(“ d n“, fun(n); 程序运行后的输出结果是 ( )。 ( A) 12 ( B) 10 ( C) 16 ( D) 8 34 在 C语言中,只有在使用时才占用内存单元的变量的是 ( )。 ( A) auto和 register ( B) extern和 register ( C) auto和 static ( D) static和 register 35 若有如下定义: char *ps=“aa“, “bb“, “cc“, “dd“;, 则以下叙述中正确的是 ( )。 ( A) *ps0是字符 A ( B) *ps0是字符串 “aa“ (
17、C) ps0是字符 A ( D) ps是字符串 “aa“ 36 以下叙述中正确的是 ( )。 ( A)在 C语言中,预处理命令行都以 #开头 ( B)预处理命令行必须位于 C源程序的起始位置 ( C) #include stdio h必须放在 C程序的开头 ( D) C语言的预处理不能实现宏定义和条件编译的功能 37 有以下程序: #include stdio h main() static char a=“Program“, *ptr; for(ptr=a; ptr a+7; ptr+=2) putchar(*ptr); 程序运行后的结果为 ( )。 ( A) Prog ( B) Porm
18、( C) rga ( D) Por 38 有以下程序: #include stdio h main() int i; FILE *fp; for(i=0; i 3; i+) fp=fopen(“res txt“, “w“); fputc(K+i, fp); fclose(fp); 程序运行后,在当前目录下会生成一个 res txt文件,其内容是 ( )。 ( A) M ( B) EOF ( C) KLM ( D) L 39 有以下程序: #include stdio h struct st int x: int y; a2=5, 7, 2, 9; main() printf(“ d n“, a
19、0 y*a1 x); 程序运行后的输出结果是 ( )。 ( A) 10 ( B) 18 ( C) 14 ( D) 63 40 下列关于 C语言文件的叙述中正确的是 ( )。 ( A)文件由一系列数据依次排列组成,只能构成二进制文件 ( B)文件由结构序列组成,可以构成二进制文件或文本文件 ( C)文件由数据序列组成,可以构成二进制文件或文本文件 ( D)文件由字符序列组成,其类型只能是文本文件 二、程序填空题 41 给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和 3门课的成绩。函数 fun的功能是将该学生的各科成绩都乘以一个系数a。 注意:不得增行或删行,也不得更改
20、程序的结构 ! 试题程序: #include stdio h typedef struct int num; char name9; float score3; STU; void show(STU tt) int i; printf(“ d s: “, tt num, tt name); for(i=0; i 3; i+) printf(“ 5 1f“, tt scorei); printf(“ n“); *found* void modify(【 1】 *ss, float a) int i; for(i=0; i 3; i+) *found* ss一【 2】 *=a; main() ST
21、U std=1, “Zhanghua“, 76 5, 78 0, 82 0; float a; printf(“The original number andname and scores: n“); show(std); printf(“Input a number: “); scanf(“ f“, &a); *found* modify(【 3】, a); printf(“A result of modifying: n“); show(std); 三、程序修改题 42 以下给定程序中,函数 fun的功能是:判断输入的任何一个正整数 n,是否等于某个连续正整数序列之和。若是,则 输出所有可
22、能的序列。否则输出 “不能分解 ”。 例如:当输入 100时,输出: 100=9+10+11+12+13+14+15+16 100=18+19+20+21+22 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include stdio h void fun(int n) int j, b, c, m, flag=0; for(b=1 b =n 2; b+) *found* n=m; c=b: while(m !=0&m =c) *found* m=mc; c+ *found* if(m!=0) p
23、rintf(“ d=“, n); for(j=b; j c一 1; j+) printf(“ d+“, j); printf(“ d n“, j); flag=1; if(flag=0) printf(“不能分解 n“); main() int n; printf(“请输入一个整数: “); scanf(“ d“, &n); fun(n); 四、程序设计题 43 规定输入的字符串中只包含字母和 *号。请编写函数 fun,其功能是:使字符串的前导 *号不得多于 n个,若多于 n个,则删除多余的 *号;若少于或等 n个,则不做处理,字符串中间和尾部的 *号不删除。 例如,字符串中的内容为: *A*
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 154 答案 解析 DOC
