[计算机类试卷]国家二级(C语言)机试模拟试卷144及答案与解析.doc
《[计算机类试卷]国家二级(C语言)机试模拟试卷144及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)机试模拟试卷144及答案与解析.doc(30页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)机试模拟试卷 144及答案与解析 一、选择题 1 设数据结构 B=(D, R),其中 D: a, b, c, d, e, f R=(f, a), (d, b), (e, d), (c, e), (a, c) 该数据结构为 ( )。 ( A)线性结构 ( B)循环队列 ( C)循环链表 ( D)非线性结构 2 下列叙述中错误的是 ( )。 ( A)循环队列空的条件是队头指针与队尾指针相同 ( B)若二叉树没有叶子结点,则为空二叉树 ( C)带链栈的栈底指针是随栈的操作而动态变化的 ( D)若带链队列中 只有一个元素,则队头指针与队尾指针必定相同 3 某带链栈的初始状态为 to
2、p=bottom=NuLL,经过一系列正常的入栈与退栈操作后, top=bottom=20。该栈中的元素个数为 ( )。 ( A) 1 ( B) 0 ( C) 20 ( D)不确定 4 设一棵度为 3的树,其中度为 2, 1, 0的结点数分别为 3, 1, 6。该树中度为 3的结点数为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D)不可能有这样的树 5 下面描述错误的是 ( )。 ( A)模块的独立性与模块的信息隐蔽和局部化无关 ( B)内聚性和耦合性是模块独立程度的定性度量标准 ( C)一个模块的内聚性越高则该模块的独立性越强 ( D)一个模块的耦合性越高则该模块的独立性越弱
3、6 下面属于黑盒测试方法的是 ( )。 ( A)错误推测法 ( B)基本路径测试 ( C)判定覆盖 ( D)条件覆盖 7 下面模型中为概念模型的是 ( )。 ( A)实体一联系模型 ( B)层次模型 ( C)关系模型 ( D)网状模型 8 学生关系模式中有 D(D#, Dn, D1, DAddr。 )(其属性分别为系编号、系名称、系主任和系地址 )和 S(S#, Sn, SG, Date, Maj, D#)(其属性分别为学号、姓名、性别、入学日期、专业和系编号 )两个关系,关系 S的主键 (码 )是 S#,关系 S的外键 (码 )是 ( )。 ( A) D# ( B) Maj ( C) D1
4、( D) Dn 9 关系的实体完整性要求关系中不能为空的属性是 ( )。 ( A)主键属性 ( B)外键属性 ( C)全部属性 ( D)候选键属性 10 学生选修课程的关系模式为 SC(S#, Sn, Sd, Sa, C#, G)(其属性分别为学号、姓名、所在系、年龄、课程号和成绩 ); C(C#, Cn, P#)(其属性分别为课程号、课程名、先选课 )。关系模式中包含对主属性部分依赖的是 ( )。 ( A) S#Sd ( B) (S#, C#)C ( C) C#Cn ( D) C#P# 11 以下叙述中错误的是 ( )。 ( A) main()是 C语言主函数的起始 ( B) main()作
5、为主函数必须位于源程序的起始位置行 ( C) main()是 C程序执行的起始行 ( D) main是不可替代的主函数名 12 以下叙述中错误的是 ( )。 ( A)在一个程序中,每个模块均可以独立编译运行 ( B)程序 “模块化 ”有利于任务的分解简化 ( C)允许对函数单独进行编译,是 C语言实现 “模块化 ”的基础 ( D)采用模块化结构,可以提高编程效率 13 以下关于注释的叙述中错误的是 ( )。 ( A)注释的边界符号 “ ”和 “*”之间不允许加入空格 ( B) C语言允许注释出现在程序中任意合适的地方 ( C)注释的内容仅用于阅读,对程序的运行不起作用 ( D)注释的边界符号
6、“ *”和 “* ”必须成对出现且可以嵌套 14 以下是正确 C语言标识符的是 ( )。 ( A) _8_ ( B) 8 ( C) 8 ( D) -8- 15 算术运算符和圆括号有不同的运算优先级,对于表达式: a+b+c*(d+e),关于执行顺序,以下说法正确的是 ( )。 ( A)先执行 (d+e)得 r2,再执行 c*r2得 r3,再执行 a+b得 r1,最后执行 r1+r3得表达式最后结果 ( B)先执行 a+b得 r1,再执行 (d+e)得 r2,再执行 c*r2得 r3,最后执行 r1+r3得表达式最后结果 ( C)先执行 (d+e)得 r2,再执行 c木 r2得 r3,再执行 b
7、+r3得 14,最后执行 a+14得表达式最后结果 ( D)先执行 a+b得 r1,再执行 r1+c得 r5,再执行 (d+e)得 r2,最后执行 r5*r2得表达式最后结果 16 设有定义语句: double x=123 456: 则语句 printf(“ 6 2f, 3 0f n“, x, x); 的输出结果是 ( )。 ( A) 123 46, 123 0 ( B) 123 45, 123 ( C) 123 46, 123 ( D) 123 45, 123 17 有如下程序 #include stdio h main() int x=072: printf(“ d n“, x+1); 程
8、 序运行后的输出结果是 ( )。 ( A) 073 ( B) 73 ( C) 142 ( D) 59 18 有以下程序 #include stdi0 h void main() double x=3 14159: printf(“ f n“, (int)(x*1000+0 5) (dfuble)1000); 程序运行后的输出结果是 ( )。 ( A) 3 142000 ( B) 3 141000 ( C) 3 143000 ( D) 3 140000 19 以下选项中错误的是 ( )。 ( A) printf(“ s n“, s); ( B) printf(“ d c n“, s, s); (
9、 C) printf(“ c n“, s-32); ( D) pfinff(“ c n“, 65); 20 若有定义: int a, b, c;,想通过语句: scanf(“ d, d d“, &a, &b, & ( A);把 1、 2、 3分别输入给变量 a、 b、 c,则正确的键盘输入是 ()。 ( B) 1, 2, 3回车 ( C) 1, 2 tab 3回车 ( D) 1回车 tab 2 tab 3 ( E) D 21 有以下程序 #include stdio h main() int a=1, b=2, c=3, d=4, r=0; if(a!=1)r=1; if(b=2)r=2; e
10、lse if(c!=3)r=3; else if(d=4)r=4; pfinff(“ d n“, r); 执行后的输出结果是 ( )。 ( A) 0 ( B) 4 ( C) 1 ( D) 2 22 若有如下形式的函数 int fun(int a, int*p, int n) 调用函数之前需要对函数进行声明,则以下选项中错误 的是 ( )。 ( A) int fun(int, int, int); ( B) int fun(int a, int*p, int n); ( C) int fun(int a, int*, int); ( D) int fun(int, int*, int); 23
11、有以下程序 #include stdio h main() int i, j=0; char a=“abl23c4d56efTgh89“; for(i=0; ai; i+) if(ai =0&ai =9) aj+j=ai; aj= 0; pfinff(“ s“, a); 程序执行后的输出结果是 ( )。 ( A) 123456789abcdefgh ( B) abcdefgh ( C) 123456789 ( D) 1234567896effgh89 24 有以下程序 #include stdio h main() int a=-2, b=2; for(;, +a&-b; ) printf(“
12、 d, d, “, a, b); 程序执行后的输出结果是 ( )。 ( A) 0, 1, ( B) -1, 1, 0, 1, ( C) -1, 1, 0, 0, ( D) -1, 1, 25 若有以下程序 #include stdio h int fun(int x) int y; y=x+: return y; main() int k; for(k=0; k 3; k+)pfinff(“ d, “, fun(k)+k); k+; 执行后的输出结果是 ( )。 ( A) 1, 5, ( B) 0, 6, ( C) 0, 4, ( D) 1, 7, 26 有以下程序 #include stdi
13、o h int*f(int*s) s+=2; s1+=6; *s=7; return s; main() int a5=1, 2, 3, 4, 5, *p=a; p=f(p); pfinff(“ d, d, d, d“, a0, a1, *p, P1); 程序执行后的输出结果是 ( )。 ( A) 1, 2, 7, 10 ( B) 7, 8, 7, 8 ( C) 1, 2, 1, 2 ( D) 7, 10, 7, 10 27 有以下程序 #include stdio h main() int a=6, i; for(i=1; i =3; i+) if(a =5)break; if(a 2)a+
14、=2; continue; a=(a-3, a+4); pfinff(“ d, d“, i, a); 程序执行后的输出结果是 ( )。 ( A) 0, 6 ( B) 1, 6 ( C) 8, 6 ( D) 4, 2 28 以下表达式中,其值不等于数值 3的是 ( )。 ( A) o+3 ( B) D-A ( C) 3-0 ( D) d-a 29 有以下程序 #include stdio h void fun(int a, int n, int flag) int i=0, j, t; for(i=0; i n-1; i+) for(j=i+1; j n; j+) if(flag) if(ai
15、aJ) t=ai; ai=aj; aj=t; else if(ai aj) t=ai; ai=aj; aj=t; main() int c10=7, 9, 10, 8, 3, 5, 1, 6, 2, 4, i; fun(c, 10, 0); fun(c, 5, 1); for(i=0; i 10; i+) printf(“ d, “, Ci); 程序运行结果正确的是 ( )。 ( A) 6, 7, 8, 9, 10, 5, 4, 3, 2, 1, ( B) 5, 4, 3, 2, 1, 6, 7, 8, 9, 10, ( C) 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, (
16、D) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 30 下面关于编译预处理的命令行中,正确的是 ( )。 ( A) #define int INT ( B) #define eps0 001 ( C) #DEFINE TRUE ( D) #define E2 88 31 有如下程序 #include stdio h main() int i, data; scanf(“ d“, &data); for(i=0; i 5; i+) if(i data&i 2)|(i data&i 3=0)continue; printf(“ d, “, i); 程序运行时,从键盘输入: 13回
17、车后,程序输出结果为 ( )。 ( A) 0, 2 4, ( B) 1, 3, 5, ( C) 0, 1, 2 3, 4, 5, ( D) 0, 1, 2, 3, 32 设变量 n已正确定义并赋值,以 下不能实现自然数 1到 n累加求和的程序段是( )。 ( A) int sum=1, i=0; while(i =n) i+; sum+=i; ( B) int sum=0, i=1; while(i =n) sum+=i; i+; ( C) int sum=0, i=0; while(i n) i+; sum+=i; ( D) int sum=1, i=1; while(i n) i+; su
18、m+=i; 33 关于数组和指针,以下说法错误的是 ( )。 ( A)数组名本身就是一个指针,指向数组内 存的起始位置 ( B)既可以读人数据到数组中,也可以读入数据到未赋初值的指针中 ( C)可以让一个指针指向一个同类型的数组 ( D)指针可以指向同类型的数组中的任意一个元素 34 有下列程序 #include stdio h int*f(int*s) s+=1; s1+=6; *s+=7; return s; main() int a5=1, 2, 3, 4, 5, *p; p=f(&a1); printf(“ d, d, d, d“, a1, a2, *p, P1); 程序 执行后的输出
19、结果是 ( )。 ( A) 3, 9, 10, 5 ( B) 2, 16, 4, 5 ( C) 2, 10, 10, 5 ( D) 10, 9, 4, 5 35 有以下程序 #include stdio h double fun1(double a, int n) int i; double sum=0 0; for(i=0; i n; i+) sum+=ai n; return sum; void fun2(double a, in tn, double*p, double*q) int i; *p=*q=a0; for(i=1; i n; i+) if(ai *p)*p=ai; else
20、if(ai *q)术 q=ai; voicmain() double a=1, 2, 3, 4, 5; double mx, mn, av; av=fun1(a, 5); fun2(a, 5, &mx, &mn); printf(“ f f f n“, av, mx, mn); 程序的运行结果是 ( )。 ( A) 5 0000003 0000001 000000 ( B) 3 0000005 0000001 000000 ( C) 1 0000005 0000003 000000 ( D) 3 0000001 0000005 000000 36 设有函数说明语句: int fun(int,
21、int); 以及函数指针定义语句: int(*f)(int, int); 若要使函数指针指向函数 fun的入口地址,以下选项中正确的是 ( )。 ( A) f=fun(); ( B) *f=fun; ( C) f=fun; ( D) *f=fun(); 37 有如下程序 #include stdio h struet group int first, second, third; ; struet group get_rain_maxsum(int*array, int len) int i; struet group re$; res first=array0; res second=arr
22、ay0; res third=array0; for(i=1; i len; i+) if(arrayi res first) res first=arrayi; if(arrayi res second) res second=arrayi; res third+=arrayi; return res; main() int array5=9, 1, 3, 4; struet group res=get_min_max_sum(array, 5); printf(“main= d, max= d, sum= d n“, res first, res second, res third); 程
23、序运行后的输出结果是 ( )。 ( A) min=0, max=9, sum=17 ( B) min=1, max=9, sum=16 ( C) min=1, max=4, sum=15 ( D) min=0, max=4, sum=16 38 若有语句: void*p=malloc(80);,则以下叙述错误的是 ( )。 ( A)可以通过指针 p直接访问用 malloc开辟的这块内存 ( B) P所指内存可以通过强制类型转换当作具有 20个 int型元素的一维数组来使用 ( C) P所指内存可以通过强制类型转换当作具有 10个 double型元素的一维数组来使用 ( D) P所指内存可以通过
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 模拟 144 答案 解析 DOC
