计算机二级C语言考试上机冲刺试题1_第1页
计算机二级C语言考试上机冲刺试题1_第2页
计算机二级C语言考试上机冲刺试题1_第3页
计算机二级C语言考试上机冲刺试题1_第4页
计算机二级C语言考试上机冲刺试题1_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机二级C语言考试上机冲刺试题(1)一、选择题(每小题1分,共40小题,共40分)1算法的空间复杂度是指()。A算法程序的长度B算法程序中的指令条数C算法程序所占的存储空间D算法执行过程中所需要的存储空间2下列叙述中正确的是()。A一个逻辑数据结构只能有一种存储结构B逻辑结构属于线性结构,存储结构属于非线性结构C一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率3简单的交换排序方法是()。A快速排序B选择排序C堆排序D冒泡排序4关于结构化程序设计原则和方法的描述错误的是()。A选用的结构只准许有一个入口

2、和一个出口B复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C不允许使用GOT0语句D语言中若没有控制结构,应该采用前后一致的方法来模拟5相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。A可重用性差B安全性差C非持久性D冗余性6面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。A模拟现实世界中不同事物之间的联系B强调模拟现实世界中的算法而不强调概念C使用现实世界的概念抽象地思考问题从而自然地解决问题D不强调模拟现实世界中的算法而强调概念7对如下二叉树进行后序遍历的结果为()。AABCDEFBDBEAFCCABDECFDDEBFCA8软件设计包括软件

3、的结构、数据接口和过程设计,其中软件的过程设计是指()。A模块间的关系B系统结构部件转换成软件的过程描述C软件层次结构D软件开发过程9两个或两个以上模块之间关联的紧密程度称为()。A耦合度B内聚度C复杂度D数据传输特性10下列描述错误的是()。A继承分为多重继承和单继承B对象之间的通信靠传递消息来实现C在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D类是具有共同属性、共同方法的对象的集合11数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。ADB包含DBS和DBMSBDBMS包含DB和DBSCDBS包含DB和DBMSD没有任何关系12下列合法的声明语句是()

4、。Aint_abc=50;Bdoubleint=3+5e25;Clongdo=1L:Dfloat3_asd=3e-3;13设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。Ax&YBx=YCxy+z&y-zD!(xy)&!z1) 14若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为()。ch=b;k=10:printf(X,o,ch,ch,k);printf(k=dn,k);A因变量类型与格式描述符的类型不匹配,输出无定值B输出项与格式描述符个数不符,输出为0值或不定值C62,142,k一dD62,142

5、,k一l015有下列程序:、fun(intX,inty)return(x+y);)main()inta=1,b=2,c=3,sum;sum=fun(a+,b+,a+b),c+);printf(dn,sum);执行后的输出结果是()。A6B7C8D916假定x和Y为double型,则表达式x=2,yx+32的值是()。A3500000B3C2000000D300000017有如下程序:main()intx=1,a=0,b=0;switch(x)case0:b+;casel:a+;case2:a+;b+;)printf(a=d,b=dn,a,b);)该程序的输出结果是()。Aa=2,b=1Ba=1

6、,b=1Ca=1,b=0Da=2,b=218下列程序的输出结果是()。main()inti=1,j=2,k=3;if(i+=1&(+j=3=k+=3)printf(dddn,i,J,k);)A123B234C223D23319下列程序的输出结果是()。#includemain()inta=0,i;for(i=1;i5;i+)switch(i)case0:case3:a+=1;casel:case2:a+=2;default:a+=3;)printf(d,i);)A19B1C6D820有以下程序:main()intX,i;for(i=1;i=50;i+)x=i;if(X2=O)if(x3=O)i

7、f(X7=0)printf(d,i);)输出结果是()。A28B27C42D4121以下程序的输出结果是()。main()inta33=1,2,3,4),5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;jnext=r-next;p-:next=r;rm:next=q;Bq-:next=r;q-next=r-next;r-next=q;Cq-:next=r-next;r-next=q;p-next=r;Dq-:next=q;p-next=r;q-next=r-next;26有下列程序:main()inti,j,x=0;for(i=0,i2;i+)x+;for(j=0;j=3;

8、j+)if(j2)continue;x+:)x+:printf(x=dnx);程序执行后的输出结果是()。Ax=4Bx=8Cx=6Dx=1227有下列程序:intfunl(doublea)returna*=a;、intfun2(doublex,doubley)doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);)main()doublew;w=fun2(11,20),程序执行后变量w中的值是()。、A521B5C50D0028有下列程序:main()inti,s=0,t=1,2,3,4,5,6,7,8,9;for(i=0;i9;i+=2)s+=

9、*(t+i);printf(dn,s);程序执行后的输出结果是()。A45B20C25D3629有下列程序:intfun(intn)if(n=1)returnl;elsereturn(n+fun(n-1):main()intx;seanf(d,&x);x=fun(x);printf(dn,x);执行程序时,给变量x输入l0,程序的输出结果是()。A55B54C65D4530有下列程序:intfun(intx,intn)staticintsum=0,i;for(i=0;in;i+)sum+=xi: returnsum;main()inta3=1,2,3,4,5),b3=6,7,8,9),s=0;

10、s=fun(a,5)+fun(b,4);printf(dn,s);程序执行后的输出结果是()。、A45B50C60D5531有下列程序:main()fchar*P=3697,2584);inti,j;longnum=0;for(i=0;i2;i+)j=0;while(pij!=0)if(pij-t0)2)num=10*num+pjj-0;j+=2;)printf(dn,num);)程序执行后的输出结果是()。A35B37C39D397532以下程序的输出结果是()。main()charst20=hell0Ot”;printf(ddn,strlen(st),sizeof(st);A99B520C

11、1320D202033若有下的定义:intt32;,能正确表示t数组元素地址的表达式是()。A&t32Bt3CtlDt2234函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是()。A文件开始B文件末尾C文件当前位置D以上都不对35下述程序的输出结果是()。#includemain()inti;for(i=1;i=20)&(i*i=lOO)break;printf(dn,i*i);)A49B36C25D6436若有定义“intb8,*p=b;”,则p+6表示()。A数组元素b6的值B数组元素b6的地址C数组元素b7的地址D数组元素b0的值加上637设变量已正确定义

12、,则以下能正确计算f=n!的程序是()。Af=0;for(i=1;i1;i+)f*=i;Df=1;for(i=n;i=2;i-)f*=i;38下述程序执行的输出结果是()。#includemain()chara24;,strcpy(a。are);strcpy(a1,you);ao3=&;printf(sn,a);)Aare&youByouCareD&39设x=011050,则x=x01252的值是()。A0000001000101000B1111110100011001C0000001011100010D110000000010100040在“文件包含,预处理语句的使用形式中,当#includ

13、e后面的文件名用(双引号)括时,寻找被包含文件的方式是()。A直接按系统设定的标准方式搜索目录B先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索C仅仅搜索源程序所在目录D仅仅搜索当前目录二、基本操作题(共18分)请补充函数proc(),该函数的功能是计算下面公式SN的值:SN=1+1/3十4/5+2N-1/SN-1例如,当N=20时,SN=29031674。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:#include#include#includedoubleproc(intn)do

14、ubles=10,sl=00;intk;for(【1】;k=n;k+)sl=S;【2】return【3】;)voidmain()intk=0:doublesum;system(CLS);printf(nPleaseinputN=);scanf(d,&k);sum=proc(k);printf(nS=If,sum);)三、程序改错题(共24分)下列给定程序中,函数proc()的功能是根据整型形参n,计算如下公式的值:Y=1-1(22)+1(33)-1(44)+(-1)(n+1)(nn)例如,n中的值为l0,则应输出0817962。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()

15、函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#includedoubleproc(intn)doubley=10;f|*found*intJ=1;inti;for(i=2;i=n;i+)j=-l*j;*found*y+=1(i*i);)return(y);)voidmain()intn=10:system(CLS):printf(nTheresultislfn,proc(n);)四、程序设计题(共18分)编写一个函数,从传人的M个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下。请勿改动m

16、ain()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:#include#include#includechar*proc(char(*a)81,intnum)voidmain()charssl081,*max;intn,i=0;printf(输入若干个字符串:);gets(ssi);puts(ssi);while(!strcmp(ssi,*)=0)i+:gets(ssEi);puts(ssi);)n=i:max=proe(SS,n);printf(nmax=sn,max);参考答案及专家详解一、选择题1D。【解析】算法的空间复杂度,是指执行这个算法

17、所需的存储空间。算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间、算法执行过程中所需要的额外空间。2D。【解析】数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,用的存储结构有顺序和链式结构。用不同的存储结构,其处理的效率是不同的。3D。【解析】所谓的交换排序方法是指借助数据元素之间的互相交进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序通过相邻元素的交换,逐步将线性表变成有序是一种最简单的交换排序方法。4C。【解析】结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是绝对不允许使用G0T0语句。其

18、他三项为结构化程序设计的原则。5D。【解析】文件系统所管理的数据文件基本上是分散、相互独立的。相对于数据库系统,以此为基础的数据处理存在3个缺点:数据冗余大、数据的不一致性、程序与数据的依赖性强。6C。【解析】面向对象的设计方法的基本原理是:使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念而不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。7D。【解析】所谓的后序遍历是指,首先遍历左子树,然后遍历右子树,最后访问根结点,并且在遍历左、右树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。8B。

19、【解析】软件的过程设计是指系统结构部件转换成软件的过程描述。9A。【解析】模块的独立性是指每个模块保证完成系统要求的独立功能,并且与其他模块的联系少且接口简单。衡量软件的模块独立性有内聚性和耦合性两个定性度量标准。耦合性是模块间互相连接紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,以利于提高模块的独立性。10C。【解析】对象的封装性是指从外面看只能看到对象的外部特性,而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。11C。【解析】数据库系统由如下5个部分组成:数据库(DB)、数据库管理系统(DBMS)、数据库管理员

20、(人员)、系统平台之一硬件平台(硬件)、系统平台之二软件平台(软件)。其中DB(DataBase)即数据库,是统一管理的相关数据的集合DBMS即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用完程序提供访问DB的方法。由以上可知,选C为正确答案。12A。【解析】标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线。B选项int不是表达变量类型的标识符,它不能再用做变量名和函数名。C选项d0是C语言的一个关键字。D选项标识符只能以字母或下划线开始。13D。【解析】本题考查逻辑运算符的使用。当“&”的两个运算对象都是逻辑l时,表达式返回值才是1;“”的两

21、个运算对象至少有一个是逻辑1时,表达式返回值也是l,xy为1,!z为0,1&0为1,0为1,因此,!l为0。 14C。【解析】第l个printf函数,格式说明的个数是2,而输出项的个数是3,所以对于多余的输出项k不予输出;第2个printf函数,有两个说明,第1个后面的字符要原样输出。本题考查printf函数的格式。“x”和“o”分别表示以十六进制和八进制无符合型输出整型数据(不带前导ox或o);printf函数中格式说明符之前插入的任何字符都原样输出;格式说明与输出项的个数也要相等,如果格式说明的个数少于输出项的个数,则对于多余的输出项不予输出。15C。【解析】函数fun(intx,inty

22、)的功能是返回x+Y的值。在主函数中,变量a,b,c的初始值分别为1,2,3。因此逗号表达式“a+,b+,a+b”的值等于5,表达式c+的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等于8。16D。【解析】在x=2,y=x+32中,32=1,2+1=3,因此表达式的值为3,因为X,y为double型变量,故选择D选项。17A。【解析】当X为1时,执行casel,a自加等于l,因为casel后没有break,接着执行case2,此时a的值为2,b自加为1,故选择A选项。18D。【解析】本题考查自增运算符“+”、逻辑与运算符“&”和逻辑或运算符“”。自增运算符“+”出现在变量之前,

23、表示先使用变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,再使用变量的值加l。当逻辑与运算符“&”两边的运算对象都为真时,逻辑表达式的值才为真;当逻辑或运算符“”只要一个值为1,值就为l。根据运算符的优先级,题中应先计算内层括号中的值。+j是先自加后运算,因此运算时j的值等于3,所以表达式+j=3成立,即表达式的值为l;1与任何数都为进行或(11)运算,结果都为1,因此k一3的表达式i+是先运算后自加,因此运算时i为1,所以i+=1成立,自加1后i=2。if语句的条件为真即“1”,所以输出i、j、k的值分别是2,3,3。19A。【解析】本题考查switch语句

24、。当i=1时,执行casel,因为没有遇到break语句,所以依次往下运行,“a=a+2=2,a=a+3=5”;当i=2时,执行case2,因为没有遇到break语句,所以依次往下执行,“a=a+2=7,a=a+3=10”;当i=3时,执行case3,a=a+1=11,因为没有遇到break语句,所以依次往下运行,a=a+2=13,a=a+3=16;当i=4时,执行default,a=a+3=l9,结束循环。20C。【解析】只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。21A。【解析】循环的作用是求行下标

25、从l到2列下标从0到i的元素之和,即s=a10+a11+a2o+a21+a22=3+4+5+6+0一18。22A。【解析】在程序语句中,k的初始值为5,进行第l次while循环后,k自减l为4,非0,执行循环体里的printf语句,输出k,此时k的值变为l。程序执行第2次循环时,k自减l变为0,为假,退出while循环语句。所以程序的最后结果为l。23A。【解析】通过地址来引用数组元素的方法有下列5种:(1)aij;(2)*(ai+j);(3)*(*(a+j)+j);(4)*(aij);(5)(&ao0+3*i+j)。故A正确。24C。【解析】选项A、B的空间不够;字符串存储要有结束符0,且要

26、占用一个空间,printf用来输出字符,不能输入字符串。25D。【解析】由题目中线性链表的定义可知,要将q和r所指的结点交换前后位置,只要使q指向r的后一个结点,P指向r结点,r指向q结点即可。而在选项D中,r-next=q,这时r指向的节点为q;p-next=r,这时P指向的节点为r;q-next:r-next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。26B。【解析】在第1次外层for循环中,首先x+得到x=1。进入到内层for循环,只有循环j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量x的值自加两次,当退出内层for循环时,x=3,然

27、后执行x+,得到x=4。在进入执行第2次外层for循环中,首先x+得到x=5。进入到内层for循环,只有循环变量J的值为奇数时,变量X的值才自加1,所以在内层for循环执行过程中,变量X的值自加l两次,当退出内层for循环时,x=7,然后执行x+,得到x=8,所以打印输出变量x的值为8。27C。【解析】子函数funl(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doubleX,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量W的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为

28、实型数据。所以双精度型变量w的值为50。28c。【解析】在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是l+3+5+7+9=25,即变量S的值等于25。29A。【解析】本题在函数intfun(intn)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量X时,递归调用的过程为fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)=10+

29、9+8+7+fun(6)=10+9+8+7+6+fun(6)=10+9+8+7+6+5+fun(4)=10+9+8+7+6+5+4+fun(3)=10+9+8+7+6+5+4+3+fun(2)=10+9+8+7+6+5+4+3+2+fun(1)=10+9+8+7+6+5+4+3+2=5530C。【解析】在函数intfun(intx,intn)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(intx,intn)的功能是求出数组x各个元素的和,所以在主函数中,调用函数fun(a,5)后,变量sum=1+2+3+

30、4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。31D。【解析】执行第一次for循环时,用表达式piJ!=o来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(pij-o)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。32B。【解析】从题目中可知,O、t、分别为一个字符,而sizeof是求字节个数的函数,其中包括O占的字节,strlen函数是求

31、数组长度的函数;其以0结束,因此strlen的值为5,sizeof的值为20。33C。【解析】数组的下标是从0开始的,A中越界,行下标和列下标都不能越界;B中,虽然是个地址,但是也同样越界了;选项c中表示的是第一个的首地址;选项D表示的为其元素的值,并不是地址。34B。【解析SEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。35C。【解析】当if执行到第一个满足(i*i=20)&(i*i=100)这个条件的i出现时,通过break语句跳出循环,执行下面的prinlf语句。36B。【解析】指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中p+6指的是将指针向后移动了6个存储单元,即指向b6,存放的是b6的地址。37D。【解析】由n!的数字定义可知n!=n*(n-1)*(n-2)*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以l,2,3,n,最后计算得到f=n!=0,所以选项A不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论