收藏 分享(赏)

2014年计算机二级C语言考试上机冲刺试题及答案5.doc

上传人:dreamzhangning 文档编号:2637027 上传时间:2018-09-24 格式:DOC 页数:13 大小:95.50KB
下载 相关 举报
2014年计算机二级C语言考试上机冲刺试题及答案5.doc_第1页
第1页 / 共13页
2014年计算机二级C语言考试上机冲刺试题及答案5.doc_第2页
第2页 / 共13页
2014年计算机二级C语言考试上机冲刺试题及答案5.doc_第3页
第3页 / 共13页
2014年计算机二级C语言考试上机冲刺试题及答案5.doc_第4页
第4页 / 共13页
2014年计算机二级C语言考试上机冲刺试题及答案5.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、12014 年计算机二级 C 语言考试上机冲刺试题及答案 5一、选择题(每小题 1 分,共 40 小题,共 40 分)1.冒泡排序在最坏情况下的比较次数是( ) 。A.n(n+1)/2 B.nlog2n C.n(n-1)/2 D.n/22.下列叙述中正确的是( )。A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构3.某二叉树共有 7 个结点,其中叶子结点只有 l 个,则该二叉树的深度为(假设根结点在第 1 层)( ) 。A.3 B.4 C.6 D.74.在软件开发中,需求分析阶段产生的主要文档是( )。

2、A.软件集成测试计划 B.软件详细设计说明书C.用户手册 D.软件需求规格说明书5.结构化程序所要求的基本结构不包括( ) 。A.顺序结构 B.GOT0 跳转 C.选择(分支)结构 D.重复(循环) 结构6.下面描述中错误的是( )。A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具7.负责数据库中查询操作的数据库语言是( ) 。A.数据定义语言 B.数据管理语言 C.数据操纵语言 D.数据控制语言8.一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是(

3、 ) 。A.1:1 联系 B.1:m 联系 C.m :1 联系 D.m:n 联系9.有三个关系 R、S 和 T 如下:由关系 R 和 S 得到关系 T 的操作是( ) 。A.自然连接 B.交 C.除 D.并10.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是( )。A.-369 B.369 C.0.369 D.整数集合1,2,3,4,5211.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的事( ) 。A.C 语言程序仅可以编译执行B.C 语言程序仅可以解释执行C.C 语言程序既可以编译执行又可以解释执行D.以上说法都不对12.以下叙述中错误的是(

4、) 。A.C 语言的可执行程序是由一系列机器指令构成的B.用 C 语言编写的源程序不能直接在计算机上运行C.通过编译得到的二进制目标程序需要连接才可以运行D.在没有安装 C 语言集成开发环境的机器上不能运行 C 源程序生成的.exe 文件13.以下选项中不能用做 C 程序合法常量的是( )。A.1,234 B.123 C.123 D. “x7G”14.以下选项中可用做 C 程序合法实数的是( )。AleO B.3.0e0.2 C.E9 D.9.12E15.若有定义语句:“int a=3,b=2,c=1;” ,以下选项中错误的赋值表达式是( ) 。A.a=(b=4)=3; B.a=b=c+1:

5、C.a=(b=4)+C; D.a=1+(b=c 一 4);16.有以下程序段:char name20】;int num;scanf(“name=%S num=%d“,name,当执行上述程序段,并从键盘输入:name=Lili mum=1001后,name 的值为( )。A.Lili B.name=Lili C.Lili num= D.name=Lili num=100117.if 语句基本形式是:if( 表达式)语句,以下关于“表达式 ”值的叙述中正确的是( )。A.必须是逻辑值 B.必须是整数值 C.必须是正数 D.可以是任意合法的数值18.有以下程序:#includemain()int

6、X=011;printf(“%dn“,+x);程序运行后的输出结果是( ) 。A.12 B.11 C.10 D.919.有以下程序:#include,main()int S;scanf(“%d“,while(sO)switch(s)3case l:printf(“%d“,s+5);case 2:printf(“%d“ ,s+4);break;case 3:printf(“%d“ ,s+3);default:(“%d“,s+1);break;scanf(“%d“,运行时,若输入 1 2 3 4 5 0,由输出结果是( )。A.6566456 B.66656 C.66666 D.666665620

7、.有以下程序段:int i,n;for(i=0;i=0while(i 在程序中下划线处应填人的是( ) 。A.x+i B.scanf(“%S“,a);gets(b);printf(“%sn%sn“,a,b);程序运行时若输入:how are you? I am fine则输出结果是( )。A.how are you? I am fineB.how are you?I am fineC.how are you?I am fineD.how are you?32.设有如下函数定义:int fun(int k)if(kx);printf(“%dn“,+(p-y);程序运行后的输出结果是( ) 。A.

8、1,2 B.4,1 C.3,4 D.2,338.有以下程序:#includestruct Sint a,b;)data2=10,100,20,200);main()struet S p=datal;printf(“%dn“,+(p.a);程序运行后的输出结果是( ) 。A.10 B.11 C.20 D.21839.有以下程序:#includemain()unsigned char a=8,C;C=a3:printf(“%dn“,c);程序运行后的输出结果是( ) 。A.32 B.16 C.1 D.040.设 fp 已定义,执行语句 “fp=fopen(“file“,“w“);”后,以下针对文本

9、文件 file 操作叙述的选项中正确的是( ) 。A.写操作结束后可以从头开始读B.只能写不能读C.可以在原有内容后追加写D.可以随意读和写二、基本操作题(共 18 分)请补充函数 proc(),函数 proc()的功能是求 7 的阶乘。注意:部分源程序给出如下。请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的横线上填入所编写的若干表达式或语句。试题程序:#includelong proc(int n)if( 【1】 )return(n*proc( 【2】 );else if(【3】)return l;void main()int k=7:printf(“%d!=%l

10、dn“,k,proc(k);三、程序改错题(共 24 分)下列给定的程序中,函数 proc()的功能是:用选择法对数组中的 m 个元素按从小到大的顺序进行排序。例如,排序前的数据为:11 32-5 2 14则排序后的数据为:-5 2 11 14 32请修改程序中的错误,使它能得到正确结果。注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include9#define M 20void proc(int a,int n)int i,j,t,P;/*found*for(j=0;j p=j;for(i=j;i if(ai p=i;t=ap;a p=aEj3;/*f

11、ound*ap=t;void main()int arrM=11,32,-5,2,14 ,i ,m=5;printf(“排序前的数据:“);for(i=0;i printf(“%d“,arri);printf(“n“);proc(arr,m);printf(“排序后的顺序:“);for(i=0;i printf(“%d“,arri);printf(“n“);四、程序设计题(共 18 分)请编写函数 proc(),该函数的功能是:将放在字符串数组中的 M 个字符串(每串的长度不超过 N),按顺序合并组成一个新的字符串。例如,若字符串数组中的 M 个字符串为:ABCDBCDEFGCDEFGHI则合

12、并后的字符串内容应该是 ABCDBCDEFGCDEFGHl。注意:部分源程序给出如下。请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。试题程序:#include#include#define M 3#define N 20void proc(char arrMN, char*b)void main()10char strMN=“ABCD“ ,“BCDEFG“,“CDEFGHl“),i;char arr100=“#“;printf( ”The strin9:kn”);for(i=0;i puts(stri);printf(“n“);proc

13、(str,arr);printf(“The A string:n“);printf(“%S“,arr);printf(“nn“);参考答案一、选择题1.C。 【解析】对 n 个结点的线性表采用冒泡排序,在最坏情况下,需要经过 n/2 次的从前往后的扫描和n/2 次的从后往前的扫描,需要的比较次数为 n(n-1)/2 a2.B。 【解析】有一个根节点的数据结构不一定是线性结构 a3.D。 【解析】有一个叶子节点而节点的总个数为 7,根据题意,这个二叉树的深度为 7。4.D。 【解析】软件需求分析阶段所生成的说明书为需求规格说明书。5.B。 【解析】结构化程序包含的结构为顺序结构、循环结构、分支结

14、构。6.A。 【解析】软件系统的总体结构图是软件架构设计的依据,它并不能支持软件的详细设计。7.C。 【解析】负责数据库中查询操作的语言是数据操作语言。8.D。 【解析】由于一个老师能教多门课程,而一门课程也能有多个老师教,所以是多对多的关系,也就是 m:n 的关系。9.C。 【解析】由图所知,其中, C 中只有一个属性,是除操作。10.B。 【解析】其中 A 选项是有符号的,C 选项是小数,D 选项是结合并不是类的实例化对象,只有 B 完全符合。11.A。 【解析】解释执行是计算机语言的一种执行方式。由解释器现场解释执行,不生成目标程序。如BASIC 便是解释执行。一般解释执行效率较低,低于

15、编译执行。而 C 程序是经过编译生成目标文件然后执行的,所以 C 程序是编译执行。12.D。 【解析】IEXE 文件是可执行文件, Windows 系统都能直接运行 EXE 文件,而不需要安装 C 语言集成开发环境。1113.A。 【解析】A 选项中逗号是一个操作符。14.A。 【解析】C 语言中实数的指数计数表示格式为字母 e 或者 E 之前必须有数字,且 e 或 E 后面的指数必须为整数。所以选项 A 正确。15.A。 【解析】由等式的规则可知, A 选项错误。先对括号的 b 进行等式运算,得出 b=4,然后计算得出a=4=3,所以会导致错误。答案选择 A。16.A。 【解析】考查简单的

16、C 程序。由题可知,程序中输入 name 的值为 Lili,所以输出的必定是 Lili,答案选择 A。17.D。 【解析】考查 if 循环语句。 if(表达式) ,其中表达式是一个条件,条件中可以是任意的合法的数值。18.C。 【解析】考查简单的 c 程序,题目中 x=011 而输出函数中是 +x,说明是先加 l,所以为 l0,答案选择 C。19.A。 【解析】根据题意,当 s=1 时,输出 65;当 s=2 时,输出 6;当 S=3 时,则输出 64;当 S=4 时,输出 5;当 s=5 时,输出 6;当 s=0 时,程序直接退出。所以最后答案为 6566456,A 选项正确。20.A。 【

17、解析】程序中的 if 循环是固定地执行 8 次,属于计数器,程序是从中随机抽取一个数,然后对 5进行求余再输出,共抽取 8 个数。所以答案为 A。21.B。 【解析】考查简单的 C 程序数组和循环。for 循环是指 i=0,如果 s/3!=0,则 i 自动加 1。if 循环指的是 si中的元素大于等于 0 且小于等于 9,则 n 加 l,所以答案为 B。22.D。 【解析】此题考查的是基本的循环,答案为 D。23.B。 【解析】此题考查的是 putchar()函数,此函数是字符输出函数,并且输出的是单个字符。所以答案为 B。24.C。 【解析】由题中给出数组要给下标为 6 的数组赋值,其中 x

18、6实际上是第 6 个数,下标为 5,因为数组是从 0 开始计算,所以正确的表示方法为 C。25.D。 【解析fun()函数的意思是当*s%2= =0 的时候就输出并且 s 自加 l 次,然后判断。所以可知只有第 2和第 4 个位置上的才符合要求,所以答案为 D。26.C。 【解析】主要是考查 while 和 getchar 函数,getchar 函数是输入字符函数,while 是循环语句,所以当输入的字符为换行符时将执行。27.D。 【解析】因为 x!=0,所以下列的循环不执行,只执行 y+,最后结果为 0。28.C。 【解析】答案 C 的意思是*P 指向数组的第一个值。29.C。 【解析】此

19、程序是进行将小写字母变成大写操作,所以答案为 C。1230.A。 【解析】程序主要是为数组赋值。答案为 A。31.B。 【解析】此题主要考查 scanf 函数和 gets 函数的区别。答案为 B。32.B。 【解析】此题考查简单的循环,当执行 n=fun(3),则函数 fun 执行 3 次。33.B。 【解析】此题考查的是函数 fun(),fun(b,c)=5,然后 fun(2*a,5)=fun(8,5)=6。34.D。 【解析】函数 fun()是 2 的次方的运算,而 s*=fun(),所以答案为 64。35.B。 【解析】此程序考查带参数的宏定义, S(k+j)展开后即 4*(k+j)*k

20、+j+1,所以结果为 l43,答案为 B。36.C。 【解析】结构体不能通过结构体名字整体赋值,通过结构体名.成员名的方式赋值。所以 C 选项错误。37.D。 【解析】p 一x 的值为 1,+(p-x) 作用是取 p-x 的值加 1 作为表达式的值即值为 2,同理+(p-y)的值为 3。所以选 D。38.D。 【解析】考查结构体的应用,答案为 21。39.C。 【解析】题中定义了无符号数, c=a3;是指右移 3 位,然后输出。结果为 C。40.B。 【解析】考查基础知识, fp=fopen(“file“,“w“);指的是写操作之后只可以读。所以答案为 B。二、基本操作题程序填空题【l】n1【

21、 2】n-1【3】n= =1【解析】本题求阶乘是由函数递归调用来实现的。阶乘公式为 N!=N*(N-1)!,因此【l】处填“n1”;由递归的性质可知【2】处填“n-1 ”;直到 N=1 时结束递归调用,因此【3】处填“n= =l” 。三、程序改错题(1)错误:for(j=0;j 正确:for(j=0;j (2)错误:ap=t;正确:aj=t;【解析】for 循环结束的标志是 for 后的一个语句,如果 for 后面直接跟一个分号,说明是一个空循环不执行任何功能,因此“for(j=0;j四、程序设计题void proc(char arrMN, char*b)int i,j,k=0;for(i=0;i for(j=0;arrij!=0 ;j+) /由于每行的个数不等,因此用 aij!=0来作为循环结束的条件bk+=arrij; /把二维数组中的元素放到 b 的一维数组中,bk=0; /最后把 b 赋 0 作为字符串结束的标志)【解析】字符串数组中每一行都是一个一个完整的字符串,其结束标志为0 。因此通过字符串的结束标志来判断每一个字符串是否结束,将字符串数组中的所有字符串均赋值新的一维数组 b 来完成字符串的合并。13

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报