2021年广东省肇庆市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2021年广东省肇庆市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2021年广东省肇庆市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2021年广东省肇庆市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2021年广东省肇庆市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

2021年广东省肇庆市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________一、单选题(20题)1.若有说明chars1[30]="Thecity",s2[]="isbeautiful";,则在使用函数strcat(s1,s2)后,结果是()。

A.s1的内容更新为Thecityisbeautiful\0

B.s1的内容更新为isbeaut\0

C.s1的内容更新为Thecity\0isbeautiful\0

D.s1的内容更新为Thecityisbeautiful\0

2.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

3.下列二叉排序树中查找效率最高的是()

A.平衡二叉树B.二叉查找树C.没有左子树的二叉排序树D.没有右子树的二叉排序树

4.有以下程序:#include<stdio.h>#include<string.h>main(){charv[4][10]={“efg”,“abcd”,“mnopq”,“hijkl”},*p[4],*t;inti,j;for(i=0;i<4;i++)p[i]=v[i];for(i=0;i<3;i++) for(j=i+1;j<4;j++) if(strcmp(p[i],p[j])>0) {t=p[i];p[i]=p[j];p[j]=t}for(i=0;i<4;i++) printf(“%s”,p[i]);}程序运行后的输出结果是()。

A.efgabcdhijklmnopq

B.abcdefghijklmnopq

C.mnopqhijklefgabcd

D.efgabcdmnopqhijkl

5.函数原形中,下列()是不必要的。

A.函数的类型B.形式参数名C.函数名D.形式参数类型

6.下列程序的输出结果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

7.数组A中,每个元素的长度为3个字节,行下标i从1到8,列下标j从1到10,从首地址SA开始连续存放的存储器内,该数组按行存放,元素A[5][8]的起始地址为()。

A.SA+141B.SA+180C.SA+222D.SA+225

8.x>0&&x<=10的相反表达式为()。

A.x<=0||x>10B.x<=0&&x>10C.x<=0||x<=10D.x>0&&x>10

9.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果从键盘上输入:ab<回车>c<回车>def<回车>则输出结果为______。

A.abcdefB.abcdC.abcdD.abcdef

10.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。

A.3B.5C.7D.9

11.程序设计的任务包括()。

A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确

12.A[N][N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

13.

14.需求分析阶段的任务是确定()

A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能

15.设变量已正确定义并赋值,以下正确的表达式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

16.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错

17.要求当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,以下不满足要求的表达式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)

18.对于下述说明,不能使变量p->b的值增1的表达式是______。structexm{inta;intb;floatc}*p;

A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++

19.下列选项中非法的字符常量是()。

A.'\t'B.'\039'C.','D.'\n'

20.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

二、2.填空题(20题)21.数据库保护分为安全性、控制性、______、并发性控制和数据恢复。

22.【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。

23.下列程序执行后输出的结果是【】。

f(intA)

{staticc=0;

c=a+c++;

return(c);

}

main()

{inta=2,i,k;

for(i=0;i<2;i++)

k=f(a++);

printf("%d\n",k);

}

24.以下程序运行后的输出结果是【】。

main()

{intm=011,n=11;

printf("%d%d\n",++m,n++);

}

25.下列程序段的运行结果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

26.在面向对象的程序设计中,类描述的是具有相似性质的一组【】。

27.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。

28.下面的程序实现字符串的复制。

voidcopy_string(from,to)

【】;

{for(;*from;from++,to++)

*to=*from;

【】;

}

main()

{char*a="Iamwang",*b="youareLi";

printf("%s\n%s\n",a,b);

【】;

printf("%s\n%s\n\n",a,b);

}

29.瀑布模型将软件生存周期划分为【】、开发和运行3个阶段。

30.下面程序的功能是:对字符串从小到大进行排序并输出,请填空。

#include"string.h"

#include"stdio.h"

sort(char*a[],intn)

{inti,j;

char*p;

for(j=1;j<=n-1;j++)

for(i=0;i<n-j;i++)

if(())>0)

{p=a[i];

a[i]=a[i+1];

a[i+1]=p;}

}

main()

{inti;

char*book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};

sort(());

for(i=0;i<6;i++)

printf("%s\n",book[i]);

}

31.在树型结构中,根结点没有【】结点,其余每个结点有且仅有【】个前驱结点;叶结点没有后继结点,其余每个结点的【】结点数不受限制。

32.以下程序的运行结果是【】。

#include<stdio.h>

#include<string.h>

typcdefstructstudent

{charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%1d%s\n",d.sno,p->name);

}

33.下列程序的输出结果是______。

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++)

printf("%d%d",X--,y);

}

34.数据管理技术发展过程经过人工管理、文件系统和数据库系统这3个阶段,其中数据独立性最高的阶段是【】。

35.以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。

#defineN3

#defineM3

select(inta[N][M],int*n)

{inti,j,row=1,colum=1;

for(i=0;i<N;i++)

for(j=0;j<M;j++)

if(a[i][j]>a[row][colum]){row=i;colum=j;}

*n=【】;

return(【】);

}

main()

{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;

max=select(a,&n);

printf(“max=%d,line=%d\n”,max,n);

}

36.设有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

for(i=0;i<2;i++)

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

printf("%s\n",t);

}

程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程

序的输出结果是______。

37.有如下图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

38.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。

39.下列的for语句的循环次数为______。

for(x=1,y=0;(y!=19)&&(x<7);x++);

40.以下程序用来统计文件中字符的个数。请填空。

#include“stadio.h”

main()

{FILE*fp;longnum=0L;

if((fp=fopen(“fname.dat”,“r”))==NULL);

{printf(“0penerror\n”);exit(0);}

while(【】)

{fsetc(fp);num++;}

printf(“num=%1d\n”,num-1);

fclose(fp);

}

三、1.选择题(20题)41.s1和s2已正确确定义并分别指向两个字符串。若要求:当s1所指字符串大于s2所指字符串时,执行语句S;则以下选项中正确的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,s1)>0)S;

D.if(stremp(s1,s2)>0)S;

42.运行以下程序后,如果从键盘上输入china#<回车>,则输了结果为______。#include<stdio.h>main(){intv1=0,v2=0;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:vi++;case'0':v2++;}printf("%d,%d\n",v1,v2);}

A.2,0B.5,0C.5,5D.2,5

43.下列关系运算中,能使经运算后得到的新关系中元组个数少于原来关系中元组个数的是()。

A.选择B.投影C.连接D.并

44.有以下程序

#include<stdio.h>

intf(intx)

{inty;

if(x==0||x==1)return(3);

y=x*x-f(x-2);

returny;

}

main()

{intz;

z=f(3);printf("%d\n",z);

}

程序的运行结果是

A.0B.9C.6D.8

45.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序执行后的输出结果是()。

A.自然数1~9的累加和B.自然数1~10的累加和C.自然数1~9中奇数之和D.自然数1~10中偶数之和

46.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()。

A.for(i=1,p=1;i<=5;i++)p*=i;

B.for(i=1;i<=5;i++){p=1;p*=i;}

C.i=1;p=1;while(i<=5){p*=i;i++;}

D.i=1;p=1;do{p*=i;i++;}while(i<=5);

47.指针变量p的基类型为int,并已指向一连续存储区,若p中当前的地址值为1234,则执行p++后,p中的值为()

A.1234B.1235C.1236D.1237

48.程序的3种基本控制结构的共同点是______。

A.不能嵌套使用B.只能用宋写简单的程序C.已经用硬件实现D.只有一个入口和一个出口

49.下面程序的输出结果是()main(){inta=-1,b=4,k;k=(a++<=0)&&(!(b--<=0));prinft("%d%d\n",k,a,b);}

A.003B.012C.103D.112

50.软件设计中模块划分应遵循的准则是()。A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

51.两次运行下面的程序后,如果从键盘上分别输入7和3,则输出结果是______。main(){intx;scanf("%d",&x);if(++x>5)printf("%d",x);elseprintf("%d\n",x--);}

A.7和5B.6和3C.7和4D.8和4

52.—个数据库系统一般由三级模式组成,其中的模式(也称逻辑模式或概念模式)指的是______。

A.用户使用的数据视图B.所有用户的公共数据视图C.对数据物理结构和存储结构的描述D.一种局部的逻辑数据视图

53.下列字符串不属于标识符的是()

A.sumB.averageC.day_nightD.M,D.JOHN

54.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];则b的值是

A.5B.6C.9D.8

55.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序运行后的输出结果是()。

A.-1B.65535C.32767D.-32768

56.下列程序段的输出结果是______。voidfun(int*x,int*y){printf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}

A.2143B.1212C.1234D.2112

57.若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则值为6的表达式是_______。

A.*p+6B.*(p+6)C.*p+=5D.p+5

58.在C语言中,引用数组元素时,其数组下标的数据类型允许是()

A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式

59.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意顺序

60.为了使模块尽可能独立,要求()。

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

四、选择题(20题)61.若有定义:intX=0,*P=&x;,则语句printf(”%d\n”,*P.的输出结果是()。

A.随机值B.0C.X的地址D.P的地址

62.若有以下定义和语句:

则输出结果是()。

A.107B.105C.55D.58

63.

64.

65.

66.设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.++kB.k+=1C.k++D.k+1

67.有以下程序则以下函数调用语句错误的是()。

A.k=*f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=f(a,b);

68.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}输出结果是()。A.28B.27C.42D.4l

69.

70.

71.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。

A.-3B.9C.-12D.6

72.有以下程序:

程序执行后的输出结果是()。

A.x=4B.X=8C.x=6D.x=12

73.

74.有以下程序:

#include<stdio.h>

intf(intx):

main

{intn=1,m;

m=f(f(f(n)));printf("%d\n",m);

}

intf(intx)

{returnx*2;)

程序运行后的输出结果是()。

A.1B.2C.4D.8

75.请阅读以下程序:

上面程序的输出结果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

76.

77.若变量x、Y已正确定义并赋值,以下符合C语言语法的表达式是()。

A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)

78.若有以下程序段,w和k都是整型变量。

w=k;

LB:if(w==0)gotoLE;

w--;

printf("*");

gotoLB;

LE:

M

则不能与上面程序段等价的循环语句是

A.for(w=k;w!=0;w--)printf("*");

B.w=k;<CR>while(w--!=0)printf("*");w++;

C.w=k;<CR>do{w--;printf("*");}while(w!=0);

D.for(w=k;w;--w)printf("*");

79.信息隐蔽的概念与下述哪一种概念直接相关()。

A.软件结构定义B.模块独立性C.模块类型划分D.模块耦合度

80.设有以下语句:typedefstructTY{charC;inta{41;}CIN;

则下面叙述中正确的是()。

A.CIN是structTr类型的变量

B.TT是struct类型的变量

C.可以用,lr定义结构体变量

D.可以用CIN定义结构体变量

五、程序改错题(1题)81.下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为l23456789时,t中的数为2468。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.有N个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。

参考答案

1.D解析:该函数用来使两个字符串连接成为一个字符串。strcat(str1,str2)将str2中的字符连接到str1的字符后面,并在最后加一个“\\0”。连接后新的字符串存放在strl中。注意:用于字符串处理的函数。

2.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.

3.A

4.Bmain函数中定义一个二维数组v,另外还定义一个指针数组p。通过for循环,将v的各个行(字符串的首地址)赋给P的对应下标的元素。然后通过嵌套的for循环,为该二维数组中存放的各个字符串进行排序。strcmp函数返回值大于0时(p[i]>p[j])交换两个字符串,所以每一轮内嵌的for循环,都将下标为i的字符串放在最终的排序位置上,即排序规则是按字符串升序排列。字符串排序时,是将两个字符串自左向右逐个字符比较(按字符的ASCII值大小),直到出现不同的字符或遇到‘\\0’为止。排序后,再将v中各个排序后的字符串输出。所以程序输出结果为:abcdefghijklmnopq。故本题答案为B选项。

5.A

6.B解析:本题主要考查结构体和联合内存使用的区别:结构中不同的成员分别使用不同的内存空间,一个结构所占内存空间的大小是结构中每个成员所占内存空间大小的总和,结构中每个成员相互独立;联合所占用的内存空间为最长的成员所占用的空间。

7.C

8.A

9.C解析:1.getchar():此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。

2.putchar():此函数的作用是向终端输出一个字符,也可以输出控制字符。本题在输入字符时,ab和c后面的回车符分别赋给了c[2]和c[4],所以,正确答案为C。

10.BB.【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。

11.D程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。程序设计的任务包括选项A)、B)、c)等方面。

12.B

13.B

14.D解析:结构化分析方法,数据流图,数据字典,软件需求规格说明书

评析,需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织,部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能.选项A)软件开发方法是在总体设计阶段完成的任务;选项B)软件开发工具是在实现阶段需完成的任务:选项C)软件开发费用是在可行性研究阶段需完成的任务。

15.A[解析]B)与D)选项中取模运算符%的左右两个操作数均应为整数,所以B)、D)错误。C)选项中不能将x+z的值赋给表达式y*5.所以C)错误。

16.D因为字符数组s[]中的数组名s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位。因而程序编译时出错。

17.D

18.D解析:p->b应作为一个整体看待,++p->b和p->b++都使变量b增1,++(p++)->b先使b增1,再使p后移,D中表达式的含义是使p+1所指结构体变量中的成员b的值增1。

19.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。

20.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

21.

22.黑箱黑箱解析:本题考查了软件测试中的黑箱测试。黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。

23.77解析:在程序执行时,static变量仅初始化一次,下次使用时将使用上次保存的值。

24.10111011解析:前缀自增运算时,表达式的值和变量自增之后的值相同;后缀自增运算时,表达式的值为变量自增之前的值。所以,本题程序输出的两个结果分别是m+1和n的值。而m在初始化时使用的是八进制常量011,转换为十进制为9。故输出结果是1011。

25.8208,20解析:本题考查while循环和++运算符的运用。x=0符合条件x<15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8-20,此时y=8。

26.对象对象解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。

27.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。

28.char*from*to*to='\0'copy_string(ab)char*from,*to\r\n*to='\\0'\r\ncopy_string(a,b)解析:函数copy_string()用到了形参from,to是指针变量,实参a、b是字符串指针,第一个空格应填形参说明语句“char*from,*to”。当from所指的字符串全部复制给to所指的字符串时,有可能to所指原字符串长度大于from所指字符串长度,即可能to所指串的后面字符仍留在复制后的to所指串中。为避免这种情况,必须在from所指串复制完后,马上给to所指串加上串结束符。因此,第二个空格应填*to='\\0'。main()函数应调用copy_string()函数,第三个空格应填copy_string(a,b)。

29.计划计划解析:瀑布模型是B.W.Boehm于1976年提出的。它将软件生存周期划分为计划、开发、运行3个时期,每个时期又分为若干个阶段。

30.strcmp(a[i]a[i+1])book6strcmp(a[i],a[i+1])book,6解析:此程序段的功能是使字符串从大到小进行排列。显然,第一空白处,是利用strcmp函数比较字符串a[i]和a[i+1]的大小,若不符合题意,就进行调换;main函数中,sort函数是对数组book中的字符串按从小到大进行排序,所以第二空白处填入“book,6”(6是指book所指向的字符串的个数)。

31.前驱一后继前驱\r\n一\r\n后继

32.2002Shangxian2002Shangxian解析:strcmp函数用于比较两个字符串的大小,因为=Zhangsan,=Shangxian,所以strcmp(,)>0为真,执行d=b;因为=Anhua,=Shangxian,所以strcmp(,)>0不成立,不执行d=c;最后输出d.sno和的值分别为2002,Shangxian。

33.101091101091解析:for(表达式1;表达式2;表达式3)语句的功能是:首先计算表达式1的值,然后检测表达式2的值,若其值为真,则执行循环体语句,执行完毕后,再计算表达式3的值。然后再检测表达式2的值是否为真,若为真,继续执行循环体语句,若为假,则退出循环;第1次循环x>8成立,输出x=10,y=10后,x的值减1,i=1,执行y=++i操作,y的值变为1;判断条件还成立,输出x=9,y=1,然后x的值减1,循环条件不成立,则退出循环。

34.数据库系统数据库系统解析:在数据库系统管理阶段,通过系统提供的映像功能,数据具有两方面的独立性:一是物理独立性,二是逻辑独立性。数据独立性最高的阶段是数据库系统阶段;

35.rowa[row][colum]row\r\na[row][colum]解析:指针变量作为函数参数及二维数组的一个典型算法——求最大值及其下标。通过对题意的分析,在select()函数中,变量row的作用是用来记录最大元素的行下标,colum的作用是用来记录最大元素的列下标。程序中通过一个循环求得数组元素中最大值的行列下标,分别存放在变量row和colum中,根据题意,应该把行下标赋值给形参指针变量n指向的变量,把最大值a[row][colum]作为函数值返回。

36.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。

37.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。

38.类类解析:在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。

39.66解析:分析程序可知,每循环一次,x的值加1,然后检测循环控制条件(y!=19)&&(x<7),因y的值不变,故满足x<7时循环6次。

40.!feof(fP)!feof(fP)解析:统计文件中字符个数的算法可描述如下:首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.dar”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加1。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。

41.D字符串的比较不能直接用关系运算符,可用字符串比较函数strcmp(char.s1,char*s2)实现,其比较规则是对两个字符串自左至右逐个字符按其对应的ASCII码值进行比较,直到出现不同的字符或遇到'\\0'为止。若对应字符都相同,则两字符串相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。比较的结果由函数值带回。当s1<s2时,返回负数;当s1=s2时,返回0;当s1>s2时,返回正数。所以在此题中要使得s1所指串大于s2所指串,就必定使得strcmp(s1,s2)>0。

42.C

43.A解析:选择运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。因此,一个关系经选择运算后得到的新关系中,元组个数少于原来关系中元组个数。

44.C解析:函数intf(intx)是一个递归函数调用,当x的值等于0或1时,函数值等于3,其他情况下y=x2-f(x-2),所以在主函数中执行语句z=f(3)时,y=3*3-f(3-2)=9-f(1)=9-3=6。

45.D解析:本题考核的知识点是for循环语句和复合赋值+=运算符的应用。本题中,i赋初值为1,并对其每次进行加2操作,即i每次均为1~10之间的奇数,s+=i+1,即s=s+i+1,相当于s等于原来的s每次加上1~10之间的偶数,直到i<10不成立.当i=1时,s=0+1+1=2;当i=3时,s=2+3+1=2+4;当i=5时,s=2+4+5+1=2+4+6;当i=7时,s=2+4+6+7+1=2+4+6+8;当i=9时,s=2+4+6+8+9+1=2+4+6+8+10;当i=11时,i<10不成立,结束循环。所以,4个选项中选项D符合题意。

46.B解析:选项B中for循环了5次,而每次循环的时候,都将p的值重新赋值为1后,再乘以当前数字i,所以最后的结果为5,显然不是5!的值,同样的分析可知选项A、选项C和选项D计算的都是5!。所以,4个选项中选项B符合题意。

47.C

48.D

49.C

50.B解析:耦合性和内聚性足模块独立性的两个定性标准。内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,作为软件结构设计的设计原则,要求每个模块的内部都具有很强的内聚性;耦合性是指模块间相互连接的紧密程度的度量,一个模块与其他模块的耦合性越强则该模块的独立性越弱。一般优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

51.D解析:输入7,先使x加1,条件表达式成立,执行语句printf('%d',x);,输出8;输入3,先使x加1,条件表达式不成立,执行语句printf('%d\\n',x--);,输出4,再将x自减。

52.B

53.D

54.C解析:p=&a[3]将指针指向数组a的第4个元素,p[5]指向数组a的第9个元素,而a[8]=9,所以b=9。

55.B当运算对象为不同的类型时,数据的转换方向为int→unsigned→long→double。本题程序中的变量b为int型,先要转换为unsigned型,int型变量的数值范围为-32768~32767,最高位为符号位,而unsigned所表示的数的范围为0~65535,它的最高位为数值位。由于内存中是以补码形式存储数据的,所以,整型的“-1”在内存中表示为16个1,最高位的“1”表示符号负,将它转换为unsigned类型,即将原符号位表示符号的“1”看成数值,就可得到16个数值位1,即65535。

56.A解析:实参的个数必须与形参的个数一致,实参可以是表达式,在类型上应按位置与形参一一对应匹配。

57.C解析:选项A,*p+6,其值等于1+6=7;选项B,*(p+6),其值等于a[6]=7;选项C,*p+=5,其值等于*p=*p+5=1+5=6;选项D,p+5是个地址值。

58.C解析:C语言规定只能逐个引用数组元素而不能一次引用整个数组,数据元素的表示形式为数组名[下标],下标可以是整型常量或整型表达式。

59.B解析:由栈“后进先出”的特点可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中栈是先进后出的,所以不可能是任意顺序。所以B是正确的。它执行的顺序是:e1进栈→e2进栈→e2出栈→e3进栈→e4进栈→e4出栈→e3出栈→e1出栈,所以只看出栈序列应为e2,e4,e3,e1。

60.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

61.B题中定义的语句等价于以下语句。

故本题定义一个整型变量x和一个指向整型的指针P,并把变量X的地址赋值给P,即P为指向整型变量x的指针,则*P表示P所指向的整型变量x的数值。

62.Cstrlen函数返回字符串的长度,求字符串1长度时,遇到结束标志‘、0’为止,但是长度不包括结束标识。f字符数组sl的后5个元素没有赋值,都为‘\0’,即“abcd!”后为‘\0’。所以sMen(s1)的值为5。字符指针s2所指向的字符串中,、n为转义字符换行符,表示1个字符,\、也为转义字符,代表\,也是l个字符,其后为字符串结束标识‘0’;所以strlen(s2)的值也为5。因此C选项正确。

63.C

64.B

65.C

66.A解析:因为“intk=0;”,所以B)、C)、D)三个选项的表达式的值都等于1,而A)选项的表达式的值等于0。这是因为“k++”这个表达式先进行取k值的运算,然后是k值自加1。故本题答案为A)。

67.AA)选项中*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,因此不能将其赋值给整型变量k。

68.C只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。

69.D

70.A

71.C解析:本题中首先定义一个整型变量a并给它赋初值为3,在表达式中,从右开始执行,即先执行“a-=a*a;”等价于a=a-a*a即a=3-3*3=-6,此时a的值为-6,接着执行“a+=a-;”相当于执行a=a+a即a=-6+(-6)=-12,此时a的值为-12。所以,4个选项中选项C符合题意。

72.Beoulinue的作用是跳出循环体中剩余的1语句而进行下一次循环。第一次执行外循环i的值为0,执行|x++,x的值变为l,第一次执行内层循环j的值为0,不满足if1条件,执行x++,x的值变为2,第二次内循环j的值为1,if条1件成立,跳出本次循环,第三次执行内循环j的值为2,不满足lif条件,x的值变为3,第四次执行内循环j的值为3满足条件1跳出本次内循环,x的值加l,即为4,第一次外循环结束。第1二次执行外循环时,同理,i的值被加了,4次,变为8,所以选择I,B选项。

73.C

74.D本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

75.A考查switch语句的使用。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算

温馨提示

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

评论

0/150

提交评论