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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(二级C语言真题.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

二级C语言真题.docx

1、二级C语言真题二级C语言真题 2017 年09月-(3)一、选择题1、设某棵树的度为 3,其中度为 3,1,0的节点个数分别为 3 ,4 ,15 。则该树中总节点数为 A 22 B 30 C 35 D 不可能有这样的树2、线性表的长度为 n。在最坏情况下,比较次数为 n-1 的算法是 。A 寻找最大项 B 同时寻找最大项与最小项 C 顺序查找 D 有序表的插入3、下列叙述中正确的是 。A 循环队列是队列的链式存储结构B 能采用顺序存储的必定是线性结构C 所有的线性结构都可以采用顺序存储结构D 具有两个以上指针的链表必定是非线性结构4、设表的长度为 n 。在下列结构所对应的算法中,最坏情况下时间

2、复杂度最低的是 A 希尔排序 B 有序链表查找C 堆排序 D 循环链表中寻找最大项5、下面不属于结构化程序设计原则的是 A 模块化 B 自顶向下 C 可继承性 D 逐步求精6、对软件系统总体结构图,下面描述中错误的是 A 深度等于控制的层数B 扇入是一个模块直接调用的其他模块数C 扇出是一个模块直接调用的其他模块数D 原子模块一定是结构图中位于叶子节点的模块7、软件集成测试不采用 。A 一次性组装 B 自顶向下增量组装C 自底向上增量组装 D 迭代式组装8、将数据库的结构划分成多个层次,是为了提高数据库的物理独立性和 A 规范程度 B 操作独立性 C 逻辑独立性 D 降低数据冗余则实体开发人员

3、和实体项目间的联系是D 多对多9、公司的开发人员可以同时参加多个项目的开发, A 一对一 B 一对多 C 多对一10、定义学生选修课程的关系模式如下:SC(S#,Sn,C#,Cn,G.( 其属性分别为学号、姓名、课程号、课程名、成绩 ) 则该关系的主键为 。A S# B C# C S# ,C# D S#, C#, G11 、以下叙述中正确的是 。A C语言源程序即使不编译,也是可以直接运行的B 一个程序要被称为结构化程序,则只能包含循环结构、选择结构、顺序结构 C 使用 N-S流程图只能描述简单的算法D 复杂算法是指不能分解成子任务的算法12 、下面说法正确的是 。A 使用只包含 3种基本结构

4、的算法可以求解复杂的问题B C语言源程序需要把所有过长的函数保存在单独的源文件中才能通过编译C 有一些特殊的程序语法错误,只有在运行时才能被发现D 一些完成简单任务的 C语言程序,可以不包含 main() 函数13 、以下选项中,算术表达式的值与其他3个不同的是 。A3/5. B 3./5 C 3/5D3.0/5.014、以下完全正确的一组常量是 。A-12U 12.E0 B 01a.12e3C0.3L 1.2e-1 D0x0 12315、以下字符常量中,输出后仍是原英文字母的是 。A s B t C n D r16、有以下程序:#include #include main()int s;fl

5、oat n,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t) 1.0e-6)pai+=t;n+=2;s=-s;t=s/n;printf(total=%fn,pai); 程序所计算的是 。A 1-1/2! +1/3! -1/5! +1/7! - B 1+1/3+1/5+1/7+1/9- C 1+1/2+1/3+1/4+1/5- D 1-1/3+1/5-1/7+1/9- 17、有如下程序:#include main()int a=0,b=1;if(a+ & b+)printf(T);elseprintf(F);a=b+;printf(a=%d,b=%dn,a,b);

6、程序运行后的输出结果是 。A Fa=1 ,b=2 B Fa=1 ,b=1 C Ta=0 ,b=2 D Ta=0 ,b=1 18 、以下各选项中的代码段执行后,变量 y的值不为 1的是 。A int x=5,y=0;if(5)y=1; B int x=5,y=0;if(x)y=1;C int x=10,y=0;if(x=y)y=1; D int x=5,y=10;if(x=y)y=1;19、设有定义: int m=1,n=2;则以下 if 语句中,编译时会产生错误信息的是 A if(m n)m- else n-;B if(m=n)m+;n+;C if(m 0 & n 0); else m+;20

7、、有以下程序:#include void main()int i,m=0,n=0,k=0;for(i=9;i =11;i+)switch(i/10)case 0:m+;n+;break;case 10:n+;break; default:k+;n+; printf(%d%d%dn,m,n,k); 程序运行后的输出结果是 。A 4 5 1 B 3 5 4 C 1 5 4 D 1 3 221、有下列程序: #include main() int a=-1,b=2; for(;a+ & b-;) printf(%d,%d,a,b); printf(%d,%d,a,b); 程序执行后的输出结果是 。A

8、 0,1,1,0,1,0 B 0,1,1,0 C22、有以下程序:#include #define N 4int fun(int aN)int i,y=0;for(i=0;i N;i+)y+=a1i+aN-1i;for(i=0;i N-1;i+)aii=aii * aii;return y;main()int y,xNN=11,21,13,4,15,6,17,8,9,1,11,12,3,4,15,6;y=fun(x);printf(%d,%d,%d,y,xN-3N-3,xN-3N-2);程序执行后的输出结果是 。A74,36,17 B 74,6,17 C82,36,17 D82,6,1723、

9、以下程序拟调用 getmax 函数,找出 4个变量中最大的一个,但程序不完整。具体程序如下: #include int getmax(int x,int y)return x y x:y;void main()int a,b,c,d,mx;scanf(%d%d%d%d,&a,&b,&c,&d);printf(max=%dn, );以下选项若填入下划线处,不能实现上述功能的是 。Agetmax(getmax(getmax(a,b),c),d) B getmax(getmax(a,b),getmax(c,d)Cgetmax(a,getmax(b,getmax(c,d) D mx=(getmax(a

10、,b),getmax(c,d)24、以下叙述中错误的是 。A在同一源程序文件中,函数名必须唯一 B凡是带有返回值的库函数,都不能通过加分号而作为独立的语句出现 C不同函数中的形式参数可以同名D返回基本数据类型的库函数的调用,均可以出现在赋值号右边的表达式中25、关于函数返回值,以下说法错误的是 。A函数返回值可以是整个数组B函数返回值可以是一个数C函数返回值可以是一个指针D函数返回值可以是一个函数的入口地址26、有下列程序:#include #define N 4int fun(int aN)int i,y=0;for(i=0;i N;i+)y+=a0i+aN-1i;for(i=1;i N-1

11、;i+)y+=ai0+aiN-1;return y;main()int y,xNN=1,2,3,4,2,1,4,3,3,4,1,2,4,3,2,1;y=fun(x);printf(%d,y);程序执行后的输出结果是 。A40 B35 C 30 D32 27、设有如下程序段:(a)int a2=0;(b)int b=0;(c)char C2=ABC;(d)char d=ABC;则以下叙述正确的是 。A只有数组 a、b的定义是合法的 B数组 a、b、c、d的定义都是合法的C只有数组 c 、 d 的定义是合法的 D只有数组 c 的定义是合法的28 、有以下程序:#include void swap(

12、int *pa,int *pb)int t;t=*pa;*pa=*pb;*pb=t;void fun(int *ds,int n)int i,midx;midx=0;for(i=1;i n;i+)if(dsi dsmidx)midx=i;swap(ds,ds+midx);void main()int data=37,31,26,17,61,12,i;for(i=0;i 5;i+) fun(data+i,6-i);for(i=0;i 6;i+) printf(%3d,datai); printf(n);程序的运行结果是 B37 31 26 17 61 12D12 17 26 31 37 61A6

13、1 37 31 26 17 12C17 61 12 37 31 2630、有以下程序:#include void fun(double x,double *y,double *z)*y=*y-1.0;*z=*z+x;main() double a=2.5,b=9.0,*pa,*pb;pa=&a;pb=&b;fun(b-a,pa,pb); printf(%fn,a); 程序运行后的输出结果是 。A8.000000 B 9.000000 C1.500000 D10.50000031、使用数组名作为函数的实参时,传递给形参的是 A数组第一个元素的值 B数组的首地址C数组中全部元素的值 D数组元素的个

14、数32、有下列程序:34、有以下程序:#include stdio.hmain()char b=abcdefg,*chp=b;while(*chp) if(ehp-b)%3=0) putchar(*chp);+chp; 程序的运行结果是 。Acf Bdefg Cadg Daceg35、有下列程序:#include #include main()char v410,*p4,*t;int i,j;for(i=0;i 4;i+)pi=vi;scanf(%s,pi);for(i=0;i 3;i+)for(j=i+1;j 0)t=pi;pi=pj;pj=t; for(i=0;i 4;i+)printf(

15、%s,pi);程序执行时若输入: Welcome you to Beijing ,则输出结果是 ABeijing Welcome to you B Beijing to Welcome youCWelcome you to Beijing D to you Beijing Welcome36、以下涉及字符串数组、字符指针的程序片段,没有编译错误的是 。Achar line;line=:Bchar *name10,*str;name=Hello World;Cchar str110,str210=prog.c;str1=str2;Dchar name10,*str=Hello World;37、

16、若要使int 型变量a、b、c、d的值都为0,以下写法中错误的是 。Aauto int a,b,c,d;a=b=c=d=0; B auto int a=b=c=d=0;Cauto int a=0,b=a,c=b,d=c; Dstatic int a,b,c,d;38、有如下程序:#include main()int a=1,b;b=(a 2)%3;printf(%d,%d,a,b);程序运行后的输出结果是 。A1,1 B 2,0 C1,0 D2,139、有下列程序:#include main() int x=3,y=5,z1,z2;z1=yxy:z2=xyx;printf(%d,%dn,z1,

17、z2);程序执行后的输出结果是 。A7,7 B 5,3 C8,8 D3,540、有下列程序:#include #include typedef struct stuchar name9;char gender;int score;STU;STU f(STU a)STU c=Sun,f,90;strcpy(a.name,c.name);a.gender=c.gender;a.score=c.score;return a;main() STU a=Zhao,m,85,b=Qian,f,95;b=f(a);printf(%s,%c,%d,%s,%c,%d,a.name,a.gender,a.scor

18、e,b.name,b.gender,b.s core);程序执行后的输出结果是 。AZhao,m,85,Sun,f,90 BZhao,m,85,Qian,f,95CSun,f,90,Sun,f,90 D Sun,f,90,Qian,f,95 二、程序填空题41、下列给定程序中, 函数fun 的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标, 作为函数值返回,并把其串长放在形参 n所指的变量中。 ss 所指字符串数组中共有 M个字符串,且串 长小于 N。请在程序的下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构 !试题程序

19、:#include #include #define M 5#define N 20int fun(char(*ss)N,int*n) int i,k=0,len=N;for(i=0;i ;i+)len=strlen(ssi);if(i=0) *n=len;if(len *n)*n=len;k=i;return( );main()charssMN=shanghai,guangzhou,beijing,tianjing,chongqing; int n,k,i;printf(nThe original strings are:n);for(i=0;i M;i+)puts(ssi);k=fun(s

20、s,&n);printf(nThe length of shortest string is:%dn,n); printf(nThe shortest string is:%sn,ssk);三、程序修改题42 、下列给定程序中函数 fun 的功能是:将 tt 所指字符串中的小写字母全部改为对应的大写字母, 其他字符不变。例如,若输入 “Ab,cD”,则输出 “AB,CD”。 请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构试题程序:#include#include#ineludechar *fun(char tt) int i; f

21、or(i=0;tti;i+)tti+=32; return(tt);main()char tt81;printf(nPlease enter a string:); gets(tt);printf(nThe result string is:n%s,fun(tt); 四、程序设计题(共24分)43 、编写函数 fun ,其功能是:将所有大于 1小于整数m的非素数存入 xx 所指数组中,非素数的个数 通过k返回。例如,若输入 17 ,则应输出: 4 6 8 9 10 12 14 15 16 。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中

22、填入你编写的若干语句 试题程序:#include #include #include void fun(int m , int *k ,int xx)void main()int m,n,zz100; system(CLS);printf(nPlease enter an integer number between 10 and 100:); scanf(%d,&n);fun(n,&m,zz);printf(nnThere are %d non-prime numbers less than %d:,m,n); for(n=0;n m;n+) printf(n%4d,zzn);答案:一、选择

23、题1、B 解析 在树结构中, 一个节点所拥有的后件个数称为该节点的度, 所有节点中最大的度称为树的度, 树中的节点数即为树中所有节点的度数之和再加 1。假设本题中度为 2 的节点数为 n,总节点数为 m, m=33+14+n2+1,叶子节点数 15=m-(3+4+n) ,得n=8,则m=9+4+82+1=30 。故答案为 B选项。2、A 解析 线性表的长度为 n,在最坏情况下,寻找最大项的比较次数为 n-1 。故答案为 A选项。3、C 解析 循环队列就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,它 是队列的顺序存储结构形式。 对于满二叉树与完全二叉树也可以按层次进行顺序

24、存储。 有两个以上指 针的链表,是线性还是非线性,取决于指针域的指向。所有的线性结构都可以采用顺序存储结构。故答案为 C选项。4、D 解析 最坏情况下,希尔排序所需要比较次数为 n1.5 ,循环链表中寻找最大项需要 n-1 次,有序链 表查找需要 n次,堆排序次数为 nlog 2n 。因此循环链表中寻找最大项复杂度最低。故答案为 D选项。5、C 解析 结构化程序设计方法的原则包括:自顶向下、逐步求精、模块化、限制使用 goto 语句。故答 案为C选项。6、B 解析 软件系统总体结构图中,扇入是指调用一个给定模块的模块个数,扇出是指由一个模块直接 调用的其他模块数,深度指控制的层数,原子模块指树

25、中位于叶子节点的模块。故答案为 B选项。7、D 解析 集成测试时将模块组装成程序通常采用两种方式:非增量方式组装和增量方式组装。非增量 方式也称为一次性组装方式, 是将测试好的每一个软件单元一次组装在一起再进行整体测试; 增量方 式是将已测试好的模块逐步组装成较大系统, 在组装过程中边连接边测试, 以发现连接过程中产生的 问题。增量方式包括自顶向下、自底向上、自顶向下与自底向上相结合的混合增量方法。故答案为 D 选项。8、C 解析 数据库系统通常采用三级模式结构并且提供两级映射功能,其中的外模式 / 模式映射保证了 数据库系统具有较高的逻辑独立性,而模式 / 内模式映射保证了数据库系统具有较高

26、的物理独立性。 故答案为 C选项。9、D 解析 开发人员可以参加多个项目,而项目开发人员不止一个,那么开发人员和项目之间是多对多 关系。故答案为 D选项。10、C 解析 本题关系模式 SC(S# ,Sn,C#,Cn,G)( 其属性分别为学号、 姓名、课程号、课程名、成绩) , 单依靠学号不能标识唯一元组, 需要学号、课程号共同来标识唯一元组, 因此学号、课程号(S# 、C#) 为该关系的主键。故答案为 C选项。11、B 解析 C 语言源程序必须经过编译、链接,生成二进制可执行文件,才可以运行,选项 A错误;由 3种基本结构:即循环结构、选择结构、顺序结构构成的程序称为结构化程序,选项 B正确;

27、使用 N-S流程图可以描述任何算法,选项 C错误;可以将复杂算法分解成多个子任务来解决,这种程序的设计 方法称为模块化设计,选项 D错误。故本题答案为 B选项。12、A 解析 由 3种基本结构,即循环结构、选择结构、顺序结构构成的算法称为结构化算法,由 3种基本结构组成的算法可以解决任何复杂的问题,选项 A正确; C语言源程序不需要把过长的函数单独保存 也可以编译,选项 B错误; C语言程序需要经过编译、链接生成二进制文件才可以运行,其中编译阶 段可以检查出语法错误,选项 C错误;每个 C语言程序无论简单还是复杂,都必须包含 main() 函数, 选项 D错误。故本题答案为 A选项。13、C 解析 C语言中除法运算有两个运算数,两个整数的除法运算会舍去小数部分,结果为整数。由于 C语言中浮点数的小数形式必须要有小数点,所以选项

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1