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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

全国计算机等级《二级C语言程序设计》终极押密卷1整理版.docx

1、全国计算机等级二级C语言程序设计终极押密卷1整理版2013年9月全国计算机等级二级C语言程序设计终极押密卷(1)一、选择题(每小题1分,共40分)1两个或两个以上模块之间关联的紧密程度称为(A)。A. 耦合度 B. 内聚度C. 复杂度 D. 数据传输特性 (模块的独立性是指每个模块保证完成系统要求的独立功能,并且与其他模块的联系少且接口简单。衡量软件的模块独立性有内聚性和耦合性两个定性度量标准。耦合性是模块间互相连接紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,以利于提高模块的独立性。) 2简单的交换排序方法是(D)。A. 快速排序

2、 B. 选择排序C. 堆排序 D. 冒泡排序 解析:所谓的交换排序方法是指借助数据元素之间的互相交进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序通过相邻元素的交换,逐步将线性表变成有序是一种最简单的交换排序方法。 3若i和k都是int类型变量,有以下for语句:for(i=0,k=-1;k=1;k+)printf(*n);下面关于语句执行情况的叙述中正确的是(D)。A. 循环体执行两次 B. 循环体执行一次C. 循环体一次也不执行 D. 构成无限循环 (循环条件k=1这个循环条件是一个为值1的赋值表达式,因此永真,为死循环,答案D)4若有定义语句:“int kl=10,k2=20;”,执

3、行表达式(kl=klk2)&(k2=k2k1)后,kl和k2的值分别为(A)。A. 0和1 B. 0和20 C. 10和1 D. 10和20解析:此表达式为逻辑表达式,k1=k1k2的意义是,如果k1k2,则k1为真,同理k2=k2k1,如果k2k1,则k2为真。所以答案为A。 5下列叙述中正确的是(A)。A. 为了建立一个关系,首先要构造数据的逻辑关系B. 表示关系的二维表中各元组的每一个分量还可以分成若干数据项C. 一个关系的属性名表称为关系模式D. 一个关系可以包括多个二维表 解析:元组分量的原子性要求二维表中元组的分量是不可分割的基本数据项。关系的框架称为关系模式。一个称为关系的二维表

4、必须同时满足关系的7个性质。 6有以下程序段 #include main() . while(getchar()!=n); 以下叙述中正确的是(C)。A. 此while语句将无限循环B. getchar()不可以出现在while语句的条件表达式中C. 当执行此while语句时,只有按回车键程序才能继续执行D. 当执行此while语句时,按任意键程序就能继续执行 解析:主要是考查while和getchar函数,getchar函数是输入字符函数,while是循环语句,所以当输入的字符为换行符时将执行 7若有定义“int b8,*p=b;”,则p+6表示(B)。A. 数组元素b6的值 B. 数组元素

5、b6的地址C. 数组元素b7的地址 D. 数组元素b0的值加上6解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中p+6指的是将指针向后移动了6个存储单元,即指向b6,存放的是b6的地址。 8以下程序段中,与语句“kab?(bc?1:O):0;”功能相同的是(A)。A. if(ab)&(bc)k=1; else k=0; B. if(ab)(bc)k=1; else k=0; C. if(ac)k=1;D. if(ab)k=1; else if(bb?c:d可以看成,当ab时取C的值,否则取d的值。在本题中k=ab?(bc?1

6、:0):0可以看做:当bc时为真,则k=ab?1:0。当bb?0:0。也就是说,当ab并且bC时,k=1,否则k=0。所以A选项符合题意。9有以下程序: #includestruct ordint X,y;)dt2=1,2,3,4; main()struct ord*p=dt; printf(%d,+(p-x);printf(%dn,+(p-y); 程序运行后的输出结果是(D)。A. 1,2 B. 4,1 C. 3,4 D. 2,3解析:p一x的值为1,+(p-x)作用是取p-x的值加1作为表达式的值即值为2,同理+(p-y)的值为3。所以选D。 10设有定义:“structchar mark

7、pl2;int numl;double num2;tl,t2;”,若变量均已正确赋初值,则以下语句中错误的是(C)。A. t1=t2; B. t2num1=tlnuml;C. t2mark=tlmark;D. t2num2=tlnum2; 解析:结构体不能通过结构体名字整体赋值,通过结构体名成员名的方式赋值。所以C选项错11若有定义语句:“int x=10;”,则表达式x-=x+x的值为(B)。A. -20 B. -l0 C. 0 D. 10解析:表达式x-=x+X可以写成x=x-(x+x),所以X的值为-l0。12有下列程序: int fun(int x,int n) static int

8、sum=0,i; for(i=0;in;i+) sum+=xi: 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); 程序执行后的输出结果是(C)。 、A. 45 B. 50 C. 60 D. 55解析:在函数int fun(int x,int n)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数int fun(int x,int n)的功能是求出数组x各个元素的和,所以在主函数中,调用函数fun(

9、a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。13若有定义语句:“int year=2009,*p=&year;”,以下不能使变量year中的值增至2010的语句是(C)。A. *p+=1; B. (*p)+;C. +(*p); D. *+P解析:此题考查的是指针的自加,*p+=1,即为*p=*p+1,其中B和D都相等,所以答案选择C 14有以下程序 #includevoid fun(int x)if(x/Z1)fun(x/Z); printf(%d,x); main()fun(7);print

10、f(n);程序运行后的输出结果是( D )。A. 1 3 7 B. 7 3 1 C. 7 3 D. 3 7解析:本程序主要考查递归函数。fun(7),首先将参数代入函数,因为(72)1,所以执行f(3),依此类推直到f(15),(152)1,所以执行打印函数,此时X值为3,然后退出f(15),返回f(3),打印x值即7。所以选D。 15右两个关系R和S如下: 则由关系R得到关系S的操作是(C)。A. 自然连接 B. 并 C. 选择 D. 投影解析:选择:是在数据表中给予一定的条件进行筛选数据。投影:是把表中的某几个属性的数据选择出来。连接:有自然连接、外连接,内连接等,连接主要用于多表之间的数

11、据查询。并:与数学中的并是一样的。两张表进行并操作,要求它们的属性个数相同并且需要相容。16有以下程序: #includemain()int b33=(0,1,2,0,1,2,0,1,2,i,j,t=l; for(i=0;i3;i+)for(j=1;j=i;j+)t+=bibji; printf(%dn,t); 程序运行后的输出结果是(C)。A. 1 B. 3 C. 4 D. 0解析:本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。17有以下程序 #includemain()char cl,c2; c1=A+8-4 c2=A+8-5; printf(C,dn,cl,c

12、2); 已知字母A的ASCIl码为65,程序运行后的输出结果是(A)。A. E,69 B. D,69 C. E,D D. 输出无定值 解析:本值输出两个值,c为输出一个字母,04d输出一个数字。“A”的ASCIl码为65,再加 4之后为69,也就是字母E,所以本题A正确。18数据库设计中,用ER图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的(C)。A. 需求分析阶段 B. 逻辑设计阶段C. 概念设计阶段 D. 物理设计阶段 解析:E-R(EntityRelationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。19数据库DB、数据

13、库系统DBS、数据库管理系统DBMS之间的关系是(C)。A. DB包含DBS和DBMS B. DBMS包含DB和DBS C. DBS包含DB和DBMS D. 没有任何关系 解析:数据库系统DBS包括数据库DB和数据库管理系统DBMS!20若有以下定义和语句: char s 10=abcd!,*s2=nl23; Drintf(%d%dn,strlen(sl),strlen(s2); 则输出结果是(A)。A. 5 5 B. 10 5 C. 10 7 D. 5 8解析:n和分别为转义字符,各占据一个字符的位置21以下选项中表示一个合法的常量是(说明:符号口表示空格)(B)。A. 9口9口9 B. 0

14、Xab C. 123E02 D. 27e解析:当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数22有以下程序: #includeint f(int m) static int n=0; n+=m; return n; main() int n=0; printf(%d,f(+n); printf(%dn,f(n+); 程序运行后的输出结果是(A)。 A. 1,2 B. 1,1 C. 2,3 D. 3,3解析:由题可知,输出是调用了f函数,其中有f(+n)和f(n+),其中n=0,所以输出的结果为l,2。23有以下程序 #includemain()char a3O,b30;

15、 scanf(%S,a); gets(b); printf(%sn%sn,a,b); 程序运行时若输入: how are you? I am fine则输出结果是(B)。A. how are you? I am fine B. how are you?I am fineC. how are you?I am fine D. how are you?解析:此题主要考查scanf函数和gets函数的区别。答案为B。 scanf(,&a)一遇到空格就认不出来,例如你输入hi nihao则scanf只能取到hi,而若换成gets则都能去 24下列叙述中正确的是(D)。A. 可以用关系运算符比较字符串的

16、大小B. 空字符串不占用内存,其内存空间大小是0C. 两个连续的单引号是合法的字符常量D. 两个连续的双引号是合法的字符串常量 解析:比较两个字符串大小用函数strcomp(S,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。 25有下列程序: 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); 程序执行后的输出结果是(B)。A. x=4 B. x=8 C. x=6 D. x=12解析:在第1次外层for循环中,首先x+得到x=1。进入到内

17、层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。 26有以下程序: #include main() FILE*fp; int k,n,i,a6=1,2,3,4,5,6; fp=fopen(d2dat,w); for(

18、i=0;i6;i+) fprintf(fp,%dn,ai); fclose(fp); fp(i=0;i3;i+) fscanf(fp,%d%d,&k,&n); fclose(fp); printf(%dn,%dn,k,n); 程序运行后的输出结果是(C)。A. 1, 2 B. 3,4 C. 5,6 D. 123,456解析:此题是考查fprintf和fscanf,其中fprintf是向文件输出,文件为da2dat文件,fscanf是向文件输入,所以根据程序循环写入和写出可知答案为C。 27设x=011050,则x=x01252的值是(A)。A. 0000001000101000 B. 1111

19、110100011001C. 0000001011100010D. 1100000000101000解析:本题主要考查按位与运算,x=Oll050的二进制形式为00010010000101000,Ol252的二进制形式为0000001010101010,两者相与得0000001000101000。 28设有以下语句 char chl,ch2; scanf(%c%C,&chl,&ch2); 若要为变量chl和ch2分别输入字符A和B,正确的输入形式应该是(B)。A. A和B之间用逗号间隔 B. A和B之间不能有任何间隔符C. A和B之间可以用回车间隔 D. A和B之间用空格间隔 解析:scanf

20、输入函数中,格式控制J必须严格按照函数中的要求进行输入,在scanf(%c%c, &chl,ch2)的格式控制语句中没有任何字符进行间隔,所以在输入时也不能使用任何字符进行间隔,所以答案选择B。 29下列叙述中正确的是(C)。 A. 对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)解析:分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏

21、情况只需比较log2n次。 30某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)(D)。A. 3 B. 4 C. 6 D. 7解析:有一个叶子节点而节点的总个数为7,根据题意,这个二叉树的深度为731有以下程序 #include#incl udemain()char a10=”abcd”; printf(d,dn,strlen(a),sizeof(a); 程序运行后的输出结果是(B)。A. 7,4 B. 4,10 C. 8,8 D. 10,10解析:strlen是求字符串的长度,结果为4,sizeof是求数组的长度,而数据在定义时已给出长度为1032相对于数

22、据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和(D)。A. 可重用性差 B. 安全性差 C. 非持久性 D.冗余性 解析:文件系统所管理的数据文件基本上是分散、相互独立的。相对于数据库系统,以此为基础的数据处理存在3个缺点:数据冗余大、数据的不一致性、程序与数据的依赖性强33有以下程序: #includcvoid fun(int *p)printf(%dn,p5); main()int a10=1,2,3,4,5,6,7,8,9,10; fun(&a3); 程序运行后的输出结果是(B)。A. 5 B. 6 C. 8 D. 9解析:由题可知,fun(&a3)是将&a3作为参数,而fun

23、(int*p)后执行的语句为p5,由数组a可知输出的为6。34有以下程序: #includemain() char s=012xyO8s34f4w2; int i;n=0; , for(i=0;si!=0;i+)if(si=0&si6 B. (3!=4)2 C. 3=4 D.E. 3 F. (32为假39若有定义和语句:int a,b;scanf(%d,%d,&a,&b);以下选项中的输人数据,不能把值3赋给变量a、5赋给变量b的是(C)。A. 3,5, B. 3,5,4 C. 3,5 D. 3,5解析:在输入3和5之间除逗号外不能有其他字符。40数据库管理系统中负责数据模式定义的语言是(C)

24、。A. 数据定义语言 B. 数据管理语言C. 数据操纵语言 D. 数据控制语言解析:模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。 二、基本操作题(共18分)41请补充main()函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。 例如,当strM=abcdefl23ABCD,结果输出:ABCDEFl23ABCD。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在横线上填人所编写的若干表达式或语句。 试题程序: #incl

25、ude#include#include#define M 80void main()int j; char strM=abcdefl23ABCD; char*pf=str; system(CLS); printf(*original string*n); puts(str); 【1】 while(*(pf+j)if(*(pf+j)=a&*(pf+j)=Z) *(pf+j)= 【2】 ; 【3】 ; elsej+; printf(*new string*n); puts(str); system(pause);【1】j=0【2】*(pf+j)-32【3】j+【解析】由程序中可知,变量j为字符数组

26、的下标,其初始值为0。因此【l】处填“j=0”;大写字母的ASCIl码值比小写字母的4、32,要将小写字母变为大写字母,因此,【2】处填“*(pf+j)-32”;要将字符串数组中的所有小写字母变为大写字母,需要检查其中的每一个字符,因此,【3】处填“j+”。 三、程序改错题(共24分)42下列给定的程序中,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。 例如,排序前的数据为:11 32-5 2 14则排序后的数据为:-5 2 11 14 32请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #define M 20void proc(int a,int n)

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

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