2014年9月全国计算机二级C语言冲刺题.docx_第1页
2014年9月全国计算机二级C语言冲刺题.docx_第2页
2014年9月全国计算机二级C语言冲刺题.docx_第3页
2014年9月全国计算机二级C语言冲刺题.docx_第4页
2014年9月全国计算机二级C语言冲刺题.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

一、选择题(每小题1分,共40小题,共40分)1.算法的空间复杂度是指( )。A.算法程序的长度B.算法程序中=的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.下列叙述中正确的是( )。A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率3.简单的交换排序方法是( )。A.快速排序B.选择排序C.堆排序D.冒泡排序4.关于结构化程序设计原则和方法的描述错误的是( )。A.选用的结构只准许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用GOT0语句D.语言中若没有控制结构,应该采用前后一致的方法来模拟5.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和( )。A.可重用性差B.安全性差C.非持久性D.冗余性6.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是( )。A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念7.对如下二叉树进行后序遍历的结果为( )。A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指( )。A.模块间的关系B.系统结构部件转换成软件的过程描述C.软件层次结构D.软件开发过程9.两个或两个以上模块之间关联的紧密程度称为( )。A.耦合度B.内聚度C.复杂度D.数据传输特性10.下列描述错误的是( )。A.继承分为多重继承和单继承B.对象之间的通信靠传递消息来实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合11.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系12.下列合法的声明语句是( )。A.int_abc=50;B.double int=3+5e2.5;C.long do=1L:D.float 3_asd=3e-3;13.设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是( )。A.x&YB.x=YC.xy+z&y-zD.!(x14.若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为( )。ch=b;k=10:printf(%X,%o,ch,ch,k);printf(k=%dn,k);A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为0值或不定值C.62,142,k一%dD.62,142,k一%l015.有下列程序: 、fun(int X,int y)return(x+y);)main() int a=1,b=2,c=3,sum;sum=fun(a+,b+,a+b),c+);printf(%dn,sum);执行后的输出结果是( )。A.6B.7C.8D.916.假定x和Y为double型,则表达式x=2,yx+3/2的值是( )。A.3.500000B.3C.2.000000D.3.00000017.有如下程序:main()int x=1,a=0,b=0;switch(x)case 0:b+;case l:a+;case 2:a+;b+;)printf(a=%d,b=%dn,a,b);)该程序的输出结果是( )。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=218.下列程序的输出结果是( )。main()int i=1,j=2,k=3;if(i+= =1&(+j= =3= =k+= =3)printf(%d%d%dn,i,J,k);)A.1 2 3B.2 3 4C.2 2 3D.2 3 319.下列程序的输出结果是( )。#includemain() int a=0,i;for(i=1;i5;i+) switch(i) case 0:case 3:a+=1;case l:case 2:a+=2;default:a+=3;)printf(%d,i);)A.19 B.1 C.6 D.820.有以下程序:main()int X,i;for(i=1;i=50;i+)x=i;if(X%2=O)if(x%3=O)if(X%7=0) .printf(%d,i);)输出结果是( )。A.28B.27C.42D.4121.以下程序的输出结果是( )。main()int a33=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;B.q-:next=r;q-next=r-next;r-next=q;C.q-:next=r-next;r-next=q;p-next=r;D.q-:next=q;p-next=r;q-next=r-next;26.有下列程序:main()int i,j,x=0;for(i=0,i2;i+)x+;for(j=0;j=3;j+)if(j%2)continue;x+:)x+:printf(x=%dnx);程序执行后的输出结果是( )。A.x=4B.x=8C.x=6D.x=1227.有下列程序:int funl(double a)return a*=a; 、int fun2(double x,double y)double a=0,b=0;a=funl(x);b=funl(y);return(int)(a+b);)main()double w;w=fun2(1.1,2.0),程序执行后变量w中的值是( )。 、A.5.21 B.5 C.5.0 D.0.028.有下列程序:main()int i,s=0,t=1,2,3,4,5,6,7,8,9;for(i=0;i9;i+=2)s+=*(t+i);printf(%dn,s);程序执行后的输出结果是( )。A.45B.20C.25D.3629.有下列程序:int fun(int n)if(n= =1)return l;elsereturn(n+fun(n-1):main() int x;seanf(%d,&x);x=fun(x);printf(%dn,x);执行程序时,给变量x输入l0,程序的输出结果是( )。A.55B.54C.65D.4530.有下列程序:int fun(int x,int n) static int sum=0,i;for(i=0;i return sum;main()int a3=1,2,3,4,5),b3=6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(%dn,s);程序执行后的输出结果是( )。 、A.45B.50C.60D.5531.有下列程序:main()f char*P=3697,2584);int i,j;long num=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);)程序执行后的输出结果是( )。A.35 B.37 C.39 D.397532.以下程序的输出结果是( )。main() char st20=hell0Ot”;printf(%d%dn,strlen(st),sizeof(st);A.9 9B.5 20C.13 20D.20 2033.若有下的定义:int t32;,能正确表示t数组元素地址的表达式是( )。A.&t32B.t3C.tlD.t2234.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。A.文件开始B.文件末尾C.文件当前位置D.以上都不对35.下述程序的输出结果是( )。#includemain()int i;for(i=1;i=20)&(i*i=lOO)break;printf(%dn,i*i);)A.49B.36C.25D.6436.若有定义“int b8,*p=b;”,则p+6表示( )。A.数组元素b6的值B.数组元素b6的地址C.数组元素b7的地址D.数组元素b0的值加上637.设变量已正确定义,则以下能正确计算f=n!的程序是( )。A.f=0; for(i=1;i1;i+)f*=i;D.f=1;for(i=n;i=2;i-)f*=i;38.下述程序执行的输出结果是( )。#includemain()char a24; ,strcpy(a。are);strcpy(a1,you);ao3=&;printf(%sn,a);)A.are&youB.youC.areD.&39.设x=011050,则x=x&01252的值是( )。A.0000001000101000B.1111110100011001C.0000001011100010D.110000000010100040.在“文件包含,预处理语句的使用形式中,当#include后面的文件名用(双引号)括时,寻找被包含文件的方式是( )。A.直接按系统设定的标准方式搜索目录B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录二、基本操作题(共18分)请补充函数proc(),该函数的功能是计算下面公式SN的值:SN=1+1/3十4/5+.+2N-1/SN-1例如,当N=20时,SN=29.031674。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:#include#include#includedouble proc(int n)double s=1.0,sl=0.0;int k;for(【1】;k=n;k+)sl=S;【2】return 【3】 ;)void main()int k=0:double sum;system(CLS);printf(nPlease input N=);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,则应输出0.817962。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#includedouble proc(int n)double y=1.0;f|*found*int J=1; .int i;for(i=2;inext=q,这时r指向的节点为q;p-next=r,这时P指向的节点为r;q-next:r-next,因为r节点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。26.B。【解析】在第1次外层for循环中,首先x+得到x=1。进入到内层for循环,只有循环j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量x的值自加两次,当退出内层for循环时,x=3,然后执行x+,得到x=4。在进入执行第2次外层for循环中,首先x+得到x=5。进入到内层for循环,只有循环变量J的值为奇数时,变量X的值才自加1,所以在内层for循环执行过程中,变量X的值自加l两次,当退出内层for循环时,x=7,然后执行x+,得到x=8,所以打印输出变量x的值为8。27.C。【解析】子函数funl(double a)的功能是返回a的平方值的整数部分。子函数fun2(double X, double y)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量W的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。28.c。【解析】在for循环语句中自变量i从0开始,每次自加2,执行s+=*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素。所以程序运行的结果是l+3+5+7+9=25,即变量S的值等于25。29.A。【解析】本题在函数int fun(int n)的定义中又出现了对函数fun的调用,所以函数fun是递归函数。因而在主函数中调用x=fun(x)时,当输入10赋给变量X时,递归调用的过程为fun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)=10+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=5530.C。【解析】在函数int fun(int x,int n)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数int fun(int x,int n)的功能是求出数组x各个元素的和,所以在主函数中,调用函数fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。31.D。【解析】执行第一次for循环时,用表达式piJ!=o来判断字符串数组指针P是否到达字符串的结尾,如果没有到达,继续执行while中的语句。if语句表示(pij-o)除2的余数不为0时,即字符串所有奇数,执行后面的语句。所以退出第1次for的循环体时,输出为397,执行第2次循环体。对字符串“2584”进行处理,输出结果为5,因而最后输出结果为3975。32.B。【解析】从题目中可知,O、t、分别为一个字符,而sizeof是求字节个数的函数,其中包括O占的字节,strlen函数是求数组长度的函数;其以0结束,因此strlen的值为5,sizeof的值为20。33.C。【解析】数组的下标是从0开始的,A中越界,行下标和列下标都不能越界;B中,虽然是个地址,但是也同样越界了;选项c中表示的是第一个的首地址;选项D表示的为其元素的值,并不是地址。34.B。【解析SEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。35.C。【解析】当if执行到第一个满足(i*i=20)&(i*i=100)这个条件的i出现时,通过break语句跳出循环,执行下面的prinlf语句。36.B。【解析】指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中p+6指的是将指针向后移动了6个存储单元,即指向b6,存放的是b6的地址。37.D。【解析】由n!的数字定义可知n!=n*(n-1)*(n-2)*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以l,2,3,n,最后计算得到f=n!=0,所以选项A不正确。在选项B中,f的初值为l,在for循环语句中,f依次乘以l,2,3,(n-1),最后计算得到f=(n-1)!,所以选项B不正确。在选项C中,f的初值为l,在for循环语句中,f依次乘以n,n+1,n+2,所以选项C不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n-1,n-2,2,最后计算得到f=n!,所以选项D正确。38.A。【解析strcpy实现的功能是复制,该操作把are复制到a中,aE03 E33一&,且strcpy(aEl, you)把you复制到al中,故输出a为“are&you”。39.A。【解析】本题主要考查按位与运算,x=Oll050的二进制形式

温馨提示

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

评论

0/150

提交评论