ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:149.50KB ,
资源ID:502832      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-502832.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级(C语言)机试历年真题试卷汇编8及答案与解析.doc)为本站会员(ideacase155)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级(C语言)机试历年真题试卷汇编8及答案与解析.doc

1、国家二级( C语言)机试历年真题试卷汇编 8及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)每一个节点有两个指针域的链表一定是非线性结构 ( B)所有节点的指针域都为非空的链表一定是非线性结构 ( C)循环链表是循环队列的链式存储结构 ( D)线性结构的存储节点也可以有多个指针 2 使用白盒测试方法时,设计测试用例应根据 ( )。 ( A)程序的内部逻辑 ( B)程序的复杂结构 ( C)程序的功能 ( D)使用说明书 3 在医院,每个医生只属于某一个诊疗科,医生同一天可 为多位患者看病,而一名患者可在多个科室治疗。则;体医生和患者之间的联系是 ( )。 ( A)多对多 (

2、B)多对一 ( C)一对多 ( D)一对一 4 设序列长度为 n,在最坏情况下,时间复杂度为 O(10g2n)的算法是 ( )。 ( A)二分法查找 ( B)顺序查找 ( C)分块查找 ( D)哈希查找 5 设数据集合为 D=1, 3, 5, 7, 9, D上的关系为 R,下列数据结构 B=(D, R)中为非线性结构的是 ( )。 ( A) R=(5, 1), (7, 9), (1, 7), (9, 3) ( B) R=(9, 7), (1, 3), (7, 1), (3, 5) ( C) R=(1, 9), (9, 7), (7, 5), (5, 3) ( D) R=(1, 3), (3,

3、5), (5, 9) 6 深度为 7的二叉树共有 127个节点,则下列说法中错误的是 ( )。 ( A)该二叉树有一个度为 1的节点 ( B)该二叉树是满二叉树 ( C)该二叉树是完全二叉树 ( D)该二叉树有 64个叶子节点 7 某二叉树的中序序列为 BDCA,后序序列为 DCBA,则前序序列为 ( )。 ( A) DCBA ( B) BDCA ( C) ABCD ( D) BADC 8 下面能作为软件需求分析工具的是 ( )。 ( A) PAD图 ( B)程序流程图 ( C)甘特图 ( D)数据流程图 (DFD图 ) 9 下面不属于对象主要特征的是 ( )。 ( A)唯一性 ( B)多态性

4、 ( C)可复用性 ( D)封装性 10 关系 R经过运算 (A=B C4 D3)(R)的结果为 ( )。 ( A) (c, c, 11, 4) ( B) (e, e, 6, 1) ( C) (a, a, 2, 4) ( D) (a, a, 2, 4)和 (e, e, 6, 1) 11 简单程序设计 步骤中不包括 ( )。 ( A)编码 ( B)确定算法 ( C)安装编译程序 ( D)调试 12 若想给已定义为 int型的变量 a, b, c, d赋值为 1,以下选项中错误的语句是( )。 ( A) d=1, c=d, b=c, a=b; ( B) a: b=c=d=1; ( C) a=1,

5、b=a, c=b, d=c; ( D) a=b, b=c, c=d, d=1; 13 有 C语言表达式 2*3+4+15 3,关于其执行顺序,以下叙述正确的是 ( )。 ( A)先执行 2*3得 6,再执行 6+4得 10,再执行 15 3得 0, 最后执行 10+0得10 ( B)先执行 2 * 3得 6,再执行 15 3得 5,最后执行 6+4+5得 15 ( C)先执行 15 3得 0,再执行 2 * 3得 6,最后执行 6+4+0得 10 ( D)先执行 15 3得 3,再执行 4+3得 7,再执行 2 * 3得 6,最后执行 6+7得 13 14 若有定义: int a; float

6、 b; double c;,程序运行时输入: 1, 2, 3,能把1输入给变量 a、 2输入给变量 b、 3输入给变量 c的输入语句是 ( )。 ( A) scanf(“ d, f, If“, a, b, c); ( B) scanf(“ d f If“, a, b, c); ( C) seanf(“ d, If, If“, a, b, c); ( D) scanf(“ d, f, f“, a, b, c); 15 以下选项中,合法的 C语言实数是 ( )。 ( A) E1 ( B) le0 ( C) 0 10E ( D) 2 1e0 2 16 关于程序中的注释,以下叙述正确的是 ( )。 (

7、 A)注释的内容必须放在一对 *和 *之间 ( B)注释必须置于所说明的语句前或语句后 ( C)注释中间可以嵌套另一个注释 ( D)注释内容错误会导致编译出错 17 有以下程序: #include main() int a, b; for(a=0; a,则输出结果是 ( )。 ( A) 1, 2, 3, 2, 3, 3, ( B) 1, 2, 3, ( C) 1, 2, 2, 3, 4, 5, ( D) 1, 1, 1, 2, 2, 3 18 以下非法的定义语句是 ( )。 ( A) long b=0L; ( B) unsigned int a=一 100u; ( C) short c2=01

8、23; ( D) int d=00; 19 有以下程序: #include main() int a=0, b=0; for(; a main() char e; e=getchar(); do putchar(e+); while(e=getchar()!=#); 程序运行时从第一列开始输入: abcdefg#,则输出结果是 ( )。 ( A) bcdefgh$ ( B) bedefgh ( C) abcdefg# ( D) abcdefg 21 有如下程序: #include main() char s=0, b=a; int i; for(i=0; i main() char ch=M;

9、 while(ch!=K) putehar(ch); ch一一; 程序运行后的输出结果是 ( )。 ( A) ML ( B) MK ( C) OP ( D) mm 23 有以下程序: #include int k=5; void f(int, *s) s=&k; *s=k: main() int m=3; f(&m); printf(“ d, d n“, m, k); 程序运行后的输出结果是 ( )。 ( A) 3, 3 ( B) 5, 5 ( C) 3, 5 ( D) 5, 3 24 有如下程序: #include int sum_mod(int a, int b) return a+b 2

10、: main() int i; for(i=0; i int a=2; int f(int k) static int n=0; int m=0; n+; a+; m+; k+; return n+m+a+k; main() int k; for(k=0; k void f(int x, int n) if(n1) printf(“ d, “, x0); f(&x1, n一 1); printf(“ d, “, x0); else printf(“ d, “, x0); main() int z3=4, 5, 6; f(z, 3); printf(“ n“); 程 序运行后的输出结果是 ( )

11、。 ( A) 6, 5, 4, 6, 5, 4, ( B) 4, 5, 6, 5, 4, ( C) 4, 5, 6, 4, 5, 6, ( D) 6, 5, 4, 5, 6, 29 有如下程序: #include #include main() char a=“1234“, *b=“ABC“; printf(“ d, d, d, d n“, strlen(a), sizeof(a), strlen(b), sizeof(b); 程序运行后的输出结果是 ( )。 ( A) 4, 5, 1, 3 ( B) 4, 3, 2, 1 ( C) 4, 5, 3, 3 ( D) 4, 5, 3, 4 30

12、有以下程序: #include int*sum(int data) static int init=1; init+=data; retum&init; main() int i, *p; for(i=1; i #define S(x)x x*x main() int k=6, j=3; printf(“ d, d n“, S(k+j), S(j+k); 程序运行后的输出结果是 ( )。 ( A) 27, 27 ( B) 9, 9 ( C) 27, 29 ( D) 29, 29 33 若有定义: typedef int * T; T*a20; 则以下与上述定义中 a类型完全相同的是 ( )。

13、( A) int*a20; ( B) int(*a)20; ( C) int*(*a)20; ( D) int*a20; 34 设有以下程序段: struct person float weight; char sex; char name10; rec, *ptr; ptr=&rec; 从键盘读入字符串给结构体变量 rec的 name成员,错误的输入语句是 ( )。 ( A) scanf(“ s“, rec一 name); ( B) scanf(“ s“, rec name); ( C) scanf(“ s“, (*ptr) name); ( D) scanf(“ s“, ptr一 name

14、); 35 有如下程序: #include struet pair int first, second; ; struct pair get_min_max(int*array, int len) int i; struct pair res; res first=array0; res second=array0; for(i=1; ires second) res.second=array i; return res; main() int array6=19, 21, 3, 4; struct pair min_max=get_min_max(array, 6); printf(“min

15、= d, max= d n“, min_max first, min_max second); 程序运行后的输出结果是 ( )。 ( A) min=0, max=6 ( B) min=1, max=20 ( C) min=1, max=19 ( D) min=0, max=21 36 有以下程序: #include main() int i; FILE*fp; for(i=0; i main() int x; for(x=65; x #include #define N 10 double fun(double*x) int i, j; double 8, av, yN; s=0; for(i

16、=0; iav) *found* y【 2】 =xi; xi=一 1; for(i=0; i #include double fun(int n) main() *主函数 * void NONO(); printf(“s= f n“, fun(1000); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*fp * wf; int i, n; double s; fo=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; iav)表达的是当 x数组中的数大于平均值时,

17、应该把这些大于平均值的数放在 y数组的前半部分,因而此空应该填j+。 填空 3:此空表明当 xi不等于什么时, xi中的数要赋值给 y数组,由题意可知此空只能填写一 1。 三、程序修改题 42 【正确答案】 (1)for(i=2; im; i+)改为 for(i=2; i=m; i+) (2)y一 =1 (i*i)改为 y一 =1 0 (i*i); 【试题解析】 (1)使用 for循环计算公式,必须计算到 m,所以应改为 for(i=2;i=m; i+)。 (2)在除法运算中,如果除数和被除数都是整数,那么所除结果也是整数,因此应改为 y一 =1 0 (i*i)。 四、程序设计题 43 【正确答案】 double fun(int n) double sum=0 0; int i; for(i=21; i=n; i+) if(i 3=0) (i 7=0)sum+=i;同时能被 3与 7整除 return sqrt(sum); 【试题解析】 本题考查算术运算的算法,首先利用一个 for循环判断小于 n且能同时被 3和 7整除的整数,并将满足条件的整数累加到 sum,之后调用 sqrt函数计算 sum的平方根,并作为函数的返回值。

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