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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C语言机试(选择题)模拟试卷 51及答案与解析 一、选择题 1 对长度为 n的线性表作快速排序,在最坏情况下,比较次数为 ( A) n ( B) n-1 ( C) n(n-1) ( D) n(n-1)/2 2 某二叉树共有 12个结点,其中叶子结点只有 1个。则该二叉树的深度为(根结点在第 1层) ( A) 3 ( B) 6 ( C) 8 ( D) 12 3 下列叙述中正确的是 ( A)线性表链式存储结构的存储空间一般要少于顺序存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C) 线 性表链式存储结构的存储空间可以是连续的,也可以是不连续的 ( D)以上说

2、法均错误 4 下列叙述中正确的是 ( A)算法的效率只与问题的规模有关,而与数据的存储结构无关 ( B)算法的时间复杂度是指执行算法所需要的计算工作量 ( C)数据的逻辑结构与存储结构是一一对应的 ( D)算法的时间复杂度与空间复杂度一定相关 5 结构化程序设计中,下面对 goto语句使用描述正确的是 ( A)禁止使用 goto语句 ( B)使用 goto语句程序效率高 ( C)应避免滥用 goto语句 ( D)以上说法均错误 6 下面不属于软件测试实施步骤的是 ( A)集成测试 ( B)回归测试 ( C)确认测试 ( D)单元测试 7 下面不属于软件需求分析阶段主要工作的是 ( A)需求变更

3、申请 ( B)需求分析 ( C)需求评审 ( D)需求获取 8 一般情况下,当对关系 R和 S进行自然连接时,要求 R和 S含有一个或者多个共有的 ( A)记录 ( B)行 ( C)属性 ( D)元组 9 以下叙述中错误的是 ( A)数值型常量有正值和负值的区分 ( B)常量可以用一个符号名来代表 ( C)定义符号常量必须用类型名来设定常量的 类型 ( D)常量是在程序运行过程中值不能被改变的量 10 C语言主要是借助以下哪种手段来实现程序模块化 ( A)定义函数 ( B)定义常量和外部变量 ( C)使用丰富的数据类型 ( D)使用三种基本结构语句 11 以下选项中合法的常量是 ( A) 9

4、9 9 ( B) 2.7e ( C) 0Xab ( D) 123E 0.2 12 C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是 ( A)关键字可用作用户标识符,但失去原有含义 ( B)预定义标识符可用作用户标识符,但失去原有 含义 ( C)在标识符中大写字母和小写字母被认为是相同的字符 ( D)用户标识符可以由字母和数字任意顺序组成 13 以下叙述中正确的是 ( A)每个后缀为 .C的 C语言源程序都可以单独进行编译 ( B)每个后缀为 .C的 C语言源程序都应该包含一个 main函数 ( C)在 C语言程序中, main函数必须放在其他函数的最前面 ( D)在 C语

5、言程序中,只有 main函数才可单独进行编译 14 有表示公司和职员及工作的三张表,职员可在多家公司兼职。其中公司 C(公司号,公司名,地址,注册资本,法人代表,员工数),职员 S(职员号,姓名,性别,年龄,学历),工作 W(公司号,职员号,工资),则表 W的键(码)为 ( A)公司号,职员号 ( B)职员号,工资 ( C)职员号 ( D)公司号,职员号,工资 15 若有定义和语句: inta,b; scanf(“%d,%d,“, 以下选项中的输入数据,不能把值 3赋给变量 a、 5赋给变量 b的是 ( A) 3,5,4 ( B) 3,5 ( C) 3,5, ( D) 3,5 16 C语言中

6、char类型数据占字节数为 ( A) 1 ( B) 2 ( C) 3 ( D) 4 17 以下 叙述中正确的是 ( A)程序必须包含所有三种基本结构才能成为一种算法 ( B)我们所写的每条 C语句,经过编译最终都将转换成二进制的机器指令 ( C)如果算法非常复杂,则需要使用三种基本结构之外的语句结构,才能准确表达 ( D)只有简单算法才能在有限的操作步骤之后结束 18 下列关系表达式中,结果为 “假 “的是 ( A) 3 = 4 ( B) (3 4) = 1 ( C) (3 + 4) 6 ( D) (3 != 4) 2 19 若以下选项中的变量 a,b,y均已正确定义并赋值,则语法正确的 sw

7、itch语句是 ( A) switch( a*a+b*b ) default : break; case 3 : y=a+b; break; case 2 : y=a-b; break; ( B) switch( a+b ) case1 : case3 : y=a+b; break; case0 : case4 : y=a-b; ( C) switch (a+9) case a : y=a-b; case b : y=a+b; ( D) switch a*b case 10 : y=a+b; default : y=a-b; 20 有以下程序 #include main() inta=-2,b

8、=0; while(a+ printf(“%d,%dn“,a,b); 程序运行后输出结果是 ( A) 0,2 ( B) 0,3 ( C) 1,3 ( D) 1,2 21 设有定义: intx=0,*p; 紧接着的赋值语句正确的是 ( A) *p=NULL; ( B) p=NULL; ( C) p=x; ( D) *p=x; 22 下列叙述中正确的是 ( A)空字符串不占用内存,其内存空间大小是 0 ( B)两个连续的单引号( )是合法的字符常量 ( C)可以对字符串进行关系运算 ( D)两个连续的双引号( “)是合法的字符串常量 23 有以下程序 #include main() chara=H

9、; a=(a =A printf(“%cn“,a); 程序运行后的输出结果是 ( A) H ( B) h ( C) A ( D) a 24 有以下程序 #include intf(intx); main() inta,b=0; for(a=0;a 3;a+=1) b+=f(a);putchar(A+b); intf(intx) returnx*x+1; 程序运行后输出结果是 ( A) ABE ( B) BCD ( C) BDI ( D) BCF 25 设有定义: intx23; 则以下关于二 维数组 x的叙述错误的是 ( A)元素 x0可看作是由 3个整型元素组成的一维数组 ( B)数组 x可

10、以看作是由 x0和 x1两个元素组成的一维数组 ( C)可以用 x0=0;的形式为数组所有元素赋初值 0 ( D) x0和 x1是数组名,分别代表一个地址常量 26 设 p是指针变量,语句 p=NULL;等价于 ( A) p = 0; ( B) p = ; ( C) p = “; ( D) p = 0; 27 有以下程序 #include main() inta=10,20,30,40,*p=a,i; for(i=0;i =3;i+)ai=*p;p+; printf(“%dn“,a2); 程序运行后的输出结果是 ( A) 10 ( B) 20 ( C) 30 ( D) 40 28 有以下程序

11、#include #defineN3 voidfun(intaN,intb) inti,j; for(i=0;i N;i+) bi=ai0; for(j=1;j N;j+) if(bi aij)bi=aij; main() intxNN=1,2,3,4,5,6,7,8,9,yN,i; fun(x,y); for(i=0;i N;i+)printf(“%d,“,yi); printf(“n“); 程序运行后的输出结果是 ( A) 3,5,7 ( B) 1,3,5, ( C) 2,4,8, ( D) 3,6,9, 29 有以下程序( strcpy为字符串复制函数, strcat为字符串连接函数 )

12、 #include #include main() chara10=“abc“,b10=“012“,c10=“xyz“; strcpy(a+1,b+2); puts(strcat(a,c+1); 程序运行后的输出结果是 ( A) a12xyz ( B) bc2yz ( C) a2yz ( D) 12yz 30 以下选项中,没有编译错误的是 ( A) char str3 = d, e, b, u, g, 0; ( B) char str15 = “pass“, str26; str2 = str1; ( C) char name10; name = “china“; ( D) char str4

13、; str4 = “hello world“; 31 有以下程序 #include main() char*s=“12134“; intk=0,a=0; while(sk+1) k+; if(k%2=0) a=a+(sk-0+1); continue; a=a+(sk-0); printf(“k=%da=%dn“,k,a); 程序运行后的输出结果是 ( A) k=5 a=15 ( B) k=4 a=12 ( C) k=6 a=11 ( D) k=3 a=14 32 有以下程序 #include main() chara510=“one“,“two“,“three“,“four“,“five“;

14、 inti,j; chart; for(i=0;i 2;i+) for(j=i+1;j 5;j+) if(ai0 aj0) t=ai0; ai0=aj0; aj0=t; puts(a1); 程序运行后的输出结果是 ( A) owo ( B) fwo ( C) two ( D) fix 33 有以下程序 #include inta=1,b=2; voidfun1(inta,intb) printf(“%d%d“,a,b); voidfun2() a=3;b=4; main() fun1(5,6);fun2(); printf(“%d%dn“,a,b); 程序运行后的输出结果是 ( A) 5 6

15、1 2 ( B) 3 4 5 6 ( C) 1 2 5 6 ( D) 5 6 3 4 34 有以下程序 #include voidfunc(intn) staticintnum=1; num+=n; printf(“%d“,num); main() func(3); func(4); printf(“n“); 程序运行后的输出是 ( A) 4 5 ( B) 4 8 ( C) 3 5 ( D) 3 4 35 有以下程序 #include #include voidfun(int*p1,int*p2,int*s) s=(int*)calloc(1,sizeof(int); *s=*p1+*p2;

16、free(s); main() inta2=1,2,b2=40,50,*q=a; fun(a,b,q); printf(“%dn“,*q); 程序运行后的输出结果是 ( A) 42 ( B) 41 ( C) 1 ( D) 0 36 有以下程序 #include structSTUcharname9;charsex;intscore2; voidf(structSTUa) structSTUb=“Zhao“,m,85,90; a1=b; main() structSTUc2=“Qian“,f,95,92,“Sun“,m,98,99; f(c); printf(“%s,%c,%d,%d,“,c0.

17、name,c0.sex,c0.score0,c0.score1); printf(“%s,%c,%d,%dn“,c1.name,c1.sex,c1.score0,c1.score1); 程序运行后输出结果是 ( A) Qian,f,95,92,Sun,m,98,99 ( B) Qian,f,95,92,Zhao,m,85,90 ( C) Zhao,m,85,90,Sun,m,98,99 ( D) Zhao,m,85,90,Qian,f,95,92 37 以下叙述中错误的是 ( A)用 typedef可以说明一种新的类型名 ( B) typedef的作用是用一个新的标识符来代表已存在的类型名 (

18、 C)可以用 typedef说明的新类型名来定义变量 ( D) typedef说明的新类型名必须使用大写字母, 否则会出编译错误 38 以下叙述中错误的是 ( A)只要类型相同,结构体变量之间可以整体赋值 ( B)函数的返回值类型不能是结构体类型,只能是简单类型 ( C)可以通过指针变量来访问结构体变量的任何成员 ( D)函数可以返回指向结构体变量的指针 39 若有定义语句 intb=2; 则表达式 (b main() FILE*fp;inti,a6=1,2,3,4,5,6; fp=fopen(“d2.dat“,“w+“); for(i=0;i 6;i+)fprintf(fp,“%dn“,ai

19、); rewind(fp); for(i=0;i 6;i+)fscanf(fp,“%d“, fclose(fp); for(i=0;i 6;i+)printf(“%d,“,ai); 程序运行后输出结果是 ( A) 1,2,3,4,5,6, ( B) 6,5,4,3,2,1, ( C) 4,5,6,1,2,3, ( D) 1,2,3,3,2,1, 国家 二级 C语言机试(选择题)模拟试卷 51答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较 (n-1)+(n-2)+1=n(n -1)/2,选 D。 2 【正确答案】 D 【

20、试题解析】 二叉树中,度为 0的节点数等于度为 2的节点数加 1,即 n2=n0-1,叶子节点即度为 0, n0=1,则 n2=0,总节点数为 12=n0+n1+n2=1+n1+0,则度为 1的节点数 n1=11,故深度为 12,选 D。 3 【正确答案】 C 【试 题解析】 线性表的顺序存储结构具备如下两个基本特征: ( 1)线性表中的所有元素所占的存储空间是连续的; ( 2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。用一组任意的存储单元来依次存放线性表的结点,这组存储单元既可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。因此 C正确。 4 【正确答案】 B

21、 【试题解析】 算法的效率与问题的规模和数据的存储结构都有关, A错误。算法的时间复杂度,是指执行算法所需要的计算工作量, B正确。由于数据元素在计算机存储空间中的 位置关系可能与逻辑关系不同,因此数据的逻辑结构和存储结构不是一一对应的, C错误。算法的时间复杂度和空间复杂度没有直接的联系, D错误。 5 【正确答案】 C 【试题解析】 结构化程序设计中,要注意尽量避免 goto语句的使用,故选 C。 6 【正确答案】 B 【试题解析】 软件测试主要包括单元测试、集成测试、确认测试和系统测试。 7 【正确答案】 A 【试题解析】 需求分析阶段的工作可概括为 4个方面: 需求获取。 需求分析。

22、编写需求规格说明书。 需求审评。 8 【正确答 案】 C 【试题解析】 自然连接是一种特殊的等值连接,它满足下面的条件: 两关系间有公共域; 通过公共域的等值进行连接,选 C。 9 【正确答案】 C 【试题解析】 数值型常量有整型常量 ,实型常量 ,不论是整型常量还是实型常量都有正值和负值之分 ,所以 A正确。在 C语言的预编译处理中 ,可以用符号名代表一个常量 ,定义时不必指定常量类型 ,所以 C错误 ,B正确。常量的定义就是常量是在程序运行过程中值不能被改变的量 ,所以 D正确。 10 【正确答案】 A 【试题解析】 C语言程序的模块化通过函数来体现 ,所以选择 A。 11 【正确答案】

23、C 【试题解析】 A选项中含有非法的空格 ,所以错误。 C语言中十六进制常量以 0x开头 ,所以 C正确。实型常量中 e的前后必须均有数据 ,且其后必须为整数 ,所以 B和 D错误。 12 【正确答案】 B 【试题解析】 关键字不可用作 C语言的标识符 ,所以 A错误。在标识符中大写字母与小写字母作为不同字符处理 ,所以 C错误。标识符由下划线、字母、数字组成 ,且必须以下划线和字母开始 ,所以 D错误。 13 【正确答案】 A 【试题解析】 一个普通的 C函数可以单独作为一个 C的程序文件存在被包含到其他程序中 ,每个后缀为 .C的 C语言源程序都可以单独进行编译 ,所以 B、 D错误。ma

24、in函数可以放在程序的开始 ,中间 ,最后 ,所以 C错误。 14 【正确答案】 A 【试题解析】 由于职员可以再多加公司兼职,表 W的键(码)应为公司关系和职员关系的主码,即公司号和职员号。 15 【正确答案】 D 【试题解析】 scanf()的格式控制串可以使用其他非空白字符 ,如本题中的逗号 ,但在输入时必须输入这些字符 ,以保证匹配。所以在 3 和 5之间必须输入逗号 ,不能有其他符号 ,才能保证 a和 b的正确赋值。所以选择 D。 16 【正确答案】 A 【试题解析】 每个字符变量被分配一个字节的内存空间。因此 A选项正确。 17 【正确答案】 B 【试题解析】 C语言程序可以不包含

25、三种基本结构 ,也可以包含其中的一种或多种 ,所以 A错误。三种基本结构可以表示任何复杂的算法 ,所以 C错误。正确的算法 ,不管是简单算法还是复杂算法都可以在有限的操作步骤之后结束 ,这是算法的有穷性 ,所以 D错误。 18 【正确答案】 D 【试题解析】 B选项中,关系表达式 (3 4)=1即 1=1,结果为真; C选项中,(3+4) 6即 7 6,结果为真; A选项中, 3 =4结果为真。 D选项中, (3!=4) 2即1 2,结果为假。因此 D选项正确。 19 【正确答案】 A 【试题解析】 switch语句, 其一般形式为: switch(表达式 ) case常量表达式 1: 语句

26、1; case常量表达式 2: 语句 2; case常量表达式 n: 语句 n; default : 语句 n+1; B选项中, case1和 case2有错误,; C选项中, case a和 case b不正确, case后面应该跟常量表达式; D选项中,switch a*b,有误。 因此 A选项正确。 20 【正确答案】 D 【试题解析】 本题重点考察 while语句,变量 a和 b分别赋初值为 -2和 1, while语句的语义是:计算表达式的值,当值为真 (非 0)时, 执行循环体语句。 a+即 a参与运算后, a的值再自增 1。 +b即 b自增 1后再参与其它运算。当表达式的值为 0

27、时,退出循环,最后输出 a和 b的值为 1和 2。因此 D选项正 确。 21 【正确答案】 B 【试题解析】 题目中定义指针变量 p,指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误。不允许把一个数赋予指针变量,被赋值的指针变量前不能再加 “*“说明符,因此 B选项正确。 22 【正确答案】 D 【试题解析】 字符串常量是由一对双引号括起的字符序列。 A选项描述不正确。B选项描述的不够完善;字符常量占一个字节的内存空间。 D选项正确;字符常量是用单引号括起来的一个字符。 C语言字符串比较不能直接用关系运算符进行正确比较。可以用字符串比较函数 strcmp来实现, C选项是错误

28、的;字符串常量占的内存字节数等于字符串中字节数加 1。因此 D选项正确。 23 【正确答案】 B 【试题解析】 条件运算符构成的选择结构的一般形式为:表达式 1? 表达式 2: 表达式 3。 其求值规则为:如果表达式 1的值为真,则以表达式 2 的值作为条件表达式的值,否则以表达式 2的值作为整个条件表达式的值。该题目中首先给字符变量 a赋值为 H。语句 a=(a=A即将大写字母变为小写字母。因此 B选项正确。 24 【正确答案】 C 【试题解析】 在函数 main()中,第一次执行 for 循环时, b的值等于 1,此时输出字母 B;第二次执行 for循环时, b的值等于 3,此时输出字母

29、D;第三次执行for循环时, b的值等于 8,此时输出字母 I。因此 C选项正确 25 【正确答案】 C 【试题解析】 x0可看作是由 3个整型元素组成的一维数组,不可以用语句x0=0;为数组所有元素赋初值 0。因此 C选项正确。 26 【正确答案】 D 【试题解析】 p= NULL;等价 p =0; 因此 D选项正确。 27 【正确答案】 C 【试题解析】 因为指针变量 p的初始值指向数组 a,所以执行 for 循环语句后,数组 a 中的元素的值不变。因此 C选项正确。 28 【正确答案】 D 【试题解析】 函数 fun()的作用是求出二维数组 aN中每一行中的最大元素,所以在 main()

30、函数中执行完 fun(x,y)后,数组 y中的元素为二维数组 xNN每一行的最大元素。因此 D选项正确。 29 【正确答案】 C 【试题解析】 本题考查字符串处理函数 strcpy和 strcat,执行完 strcpy( a+1, b+2 );后, a变为 a2,执行完 strcat( a, c+1 )后, a变为 a2yz,所以答案为 C选项。 30 【正确答案】 A 【试题解析】 B选项中,不能直接将字符数组名直接赋值给另一个字符数组名。C选项赋值错误,不能将一个字符串常量赋值给一个字符指针。 D选项定义 str4时需要定义其长度。 31 【正确答案】 B 【试题解析】 当 k=0时,执行

31、 while一次,得到 k=1, a为 2;当 k=1时,执行while一次,得到 k=2, a为 4;当 k=2时,执行 while一次,得到 k=3, a为 7;当 k=3时,执行 while一次,得到 k=4, a为 12;所以答案为 B选项。 32 【正确答案】 B 【试题解析】 考查二维数组元素的引用。当 i为 0时,代码处理结果为第一个字符串的第一个字符与第四个字符串的第一个字符调换,当 i为 1时,代码处理结果为第而个字符串的第一个字符与第五个字符串的第一个字符调换,所以 a1为fwo。 33 【正确答案】 D 【试题解析】 fun1函数中的 a、 b为局部变量, fun2函数中

32、的 a、 b为全局变量。执行 fun1函数后输出 5,6 执行完 fun2后 a变为 3, b变为 4,所以结果为 3,4 D选项正确。 34 【正确答案】 B 【试题解析】 本题中 num为静态局部变量,执行 fun(3)后,输出 4,执行 fun(4)后输出 8,所以选项 B正确。 35 【正确答案】 C 【试题解析】 本题考查把数组名作为函数参数,执行 fun函数后, s的值并没有发生变化,仍然是指向 a,所以输出结果为 1,选项 C正确。 36 【正确答案】 B 【试题解析】 本题考查把数组名作为函数参数,执行 f函数后,结构体数组 c的第二个元素被改写, c1.name为 Zhao,

33、选项 B正确。 37 【正 确答案】 D 【试题解析】 本题考查 typedef的使用方法, typedef对已存在的类型使用一个新的名字,新类型可以使用小写,所以 D选项错误。 38 【正确答案】 B 【试题解析】 本题考查结构体相关知识,函数返回值可以是结构体,所以 B选项错误。 39 【正确答案】 D 【试题解析】 本题考查位运算 、 /,以及逻辑运算符 |。 b2为 8,3 3 | b为 1,所以结果为 8,所以 D选项正确。 40 【正确答案】 B 【试题解析】 本题考查文件操作函数, fprintf和 rewind函数, rewind函数将文件内部的位置指针重新指向一个流(数据流 /文件)的开头,程序首先是将数组 a的六个数写入 d2文件中,然后又将 a数组从后往前覆盖到 d2中的内容,所以结果为 6,5,4,3,2,1,选项 B正确。

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