版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年广东省揭阳市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
2.以下选项中与“(!a==0)”的逻辑值不等价的表达式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
3.
4.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是()。
A.当前结点的所在地址B.后继结点的所在地址C.空指针域D.空闲域
5.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
A.&.B.^C.||D.~
6.以下叙述中错误的是()。
A.由3种基本结构构成的程序只能解决简单问题
B.结构化程序由顺序、分支、循环3种基本结构组成
C.C语言是一种结构化程序设计语言
D.结构化程序设计提倡模块化的设计方法
7.有以下程序:#include<stdio.h>structord{intX,y;)dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d,",++(p->x));printf("%d\n",++(p->y));}程序运行后的输出结果是()。A.1,2B.4,1C.3,4D.2,3
8.有如下说明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
9.若有以下程序段,w和k都是整型变量:┇w=k:LB:if(w==0)gotoLE;W--:printf("*")gotoLB;LE;┇则不能与上面程序段等价的循环语句是()。A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
10.
11.字符(char)型数据在微内存中的存储形式是______。
A.反码B.补码C.EBCDIC码D.ASCII码
12.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序运行时输入k并按<Enter>键,则输出结果为()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
13.在inta=3,int*p=&a;中,*p的值是()
A.变量a的地址值B.无意义C.变量p的地址值D.3
14.已知a,b均被定义为double型,则表达式:b=1,a=b+5/2的值为()。
A.1B.3C.3.0D.3.5
15.程序中主函数的名字为()。
A.mainB.MAINC.MainD.任意标识符
16.以下是一个对数组A(含有n个数值元素)进行排序的算法伪代码,请问它的平均时间复杂度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
17.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是()。
A.G中有弧
B.G中有一条从Vi到Vj的路径
C.G中没有弧
D.G中有一条从Vj到Vi的路径
18.如果定义“班级”关系如下:班级(班级号,总入数,所属学院,班级学生)则使它不满足第一范式的属性是()。
A.班级号B.班级学生C.总入数D.所属学院
19.连通图G中有n个顶点,G的生成树是()连通子图。
A.包含G的所有顶点B.包含G的所有边C.不包含G的所有顶点D.包含G的所有顶点和所有边
20.在深度为5的满二叉树叶中,叶子结点的个数为()。
A.32B.31C.16D.15
二、2.填空题(20题)21.下列程序的输出结果是【】。
intt(intx,inty,ntcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
22.下列程序段中循环体的执行次数是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
23.一个项目有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】的联系。
24.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。
25.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。
26.函数mycmp(char*s,char*t)的功能提比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当s<t时返回负值。请填空。
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return(【】)
}
27.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为【】。
28.数据流图的类型有【】和事务型。
29.对于长度为n的顺序存储的线性表,当随机插入和删除—个元素时,需平均移动元素的个数为【】。
30.以下程序运行后的输出结果是【】。
#defineS(x)4*x*x+1
mah()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
31.若有程序:
main()
{inti,j;
scanq("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求给i赋10,给j赋20,则应该从键盘输入【】。
32.以下程序运行后的输出结果是______。
main()
{inta=3,b=4,c=5,t=99;
i[(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
33.以下程序运行后的输出结果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
34.下列程序的运行结果是______。
main()
{ints=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf("%d",--i);
}
35.在面向对象方法中,类之间共享属性和方法的机制称为______。
36.以下程序运行后的输出结果是【】。
#include<stdio.h>
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
prinff("%d\n",j);
37.以下程序的功能是计算:s=1+12+123+1234+12345。请填空。
main()
{intt=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+______;s=s+t;}
printf("s=%d\n",s);
}
38.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值,请填空。
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(1=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
【】=x;
}
}
39.以下程序的输出结果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
40.下面程序的运行结果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
三、1.选择题(20题)41.有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是
A.x=4B.x=8C.x=6D.x=12
42.uniondt{inta;charb;doublec;}data;以下叙述中错误的是()。
A.data的每个成员起始地址都相同
B.变量data所占内存字节数与成员c所占字节数相等
C.程序段:data.a=5;printf("%f\n",data.C);输出结果为5.0
D.data可以作为函数的实参
43.C语言函数返回值的类型是由______决定的。
A.return语句中的表达式类型B.调用函数的主调函数类型C.调用函数时临时D.定义函数时所指定的函数类型
44.有以下程序:#include<stdio.h>structSTU{charname[10];intnum;intScore;};main(){structSTUs[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550},{"Penghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){t=p[i];p[i]=p[j];p[j]=t;}printf("%d%d\n",s[1].Score,p[1]->Score);}执行后的输出结果是()。
A.550550B.680680C.580550D.580680
45.设有下列二叉树:
对此二叉树中序遍历的结果为______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
46.下列叙述中,不属于软件需求规格说明书的作用的是()
A.便于用户,开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
47.
对两个数组a和b进行下列初始化:
charm[]="1234567";
charn[]={1,2,3,4,5,6,7};
则下列叙述正确的是()。
A.数组m与数组n完全相同B.数组m与数组n长度相同C.数组m比数组n长1D.数组m与数组n中都存放字符串
48.在深度为5的满二叉树中,叶子结点的个数为A.32B.31C.16D.15
49.以下程序运行后的输出结果是()main(){chars[]="1234",*ps;for(ps=s;ps<s+3;ps++)printf("%c",ps);printf("\n");}
A.123B.112123C.1234D.乱码
50.若x、y、z、m均为int型变量,则执行下面语句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
51.以下叙述中正确的是A.全局变量的作用域一定比局部变量的作用域范围大
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
52.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为______。
A.2B.3C.4D.5
53.下面语句的输出结果是______。printf("/od\n",strlen("\t\"\065\xff\n"))
A.14B.8C.5D.输出项不合法,无正常输出
54.以下数据结构中属于线性数据结构的是
A.集合B.线性表C.二叉树D.图
55.使用白盒测试法时,确定测试数据应该根据()和指定的覆盖标准。
A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能
56.算法的空间复杂度是指
A.算法程序的长度B.算法程序中的指令条数C.执行算法程序所占的存储空间D.算法执行过程中所需要的存储空间
57.下列程序的输出结果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}
A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000
58.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是()。
A.赋初值的字符串有错B.6,7C.5,6D.6,6
59.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是()
A.(x>=1)&&(x<=l0)&&(x>=100)&&(x<=110)
B.(x>=0‖(x<=10)‖(x>=100)‖x<=110)
C.(x>)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=)‖x<=10)&&(x>=100)‖x<=110)
60.有以下程序#include<stdio.h>#include<string.h>voidfun(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i];s[j];s[j]=t;}}main(){char*ss[]={"bcc
A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc
四、选择题(20题)61.下列选项中属于面向对象设计方法主要特征的是()。A.继承B.自顶向下C.模块化D.逐步求精
62.有以下程序程序运行后的输出结果是()。
A.9B.10C.8D.7
63.有以下程序程序的运行结果是()。
A.4332B.2344C.1234D.1123
64.有以下程序:main{inta=1,b=3,C=5,*P;int*p1=&a,*p2=&b,*p3=&c;*p=*p1*(*p2);}执行后的输出结果是()。A.1B.2C.3D.4
65.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
66.有以下程序
67.有以下程序段
#include"stdio.h"
main()
{intj,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))
break;
if(i>=j-1)
{printf("%d",j);
k++;}
}
}
程序执行后输出的结果是
A.5359B.5953
C.3595D.9535
68.不能把字符串:Hello!赋给数组b的语句是()。
A.charb[10]={’H’,’e’,’l’,’l’,’o’,’!’};
B.charb[10];b="Hello!";
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
69.若变量已正确定义,在if(W)printf(”%d、n”,k);中,以下不可替代w的是()。A.ab+1:B.ch=getchar()C.a==b+cD.a++
70.
71.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#defineN10
voidmain(int__________)
{inti=0;
while(i<N)
scanf("%d",x+(i++));
}
A.*xB.x[N]C.xD.&x
72.
73.
74.有以下程序
程序运行后的输出结果是()。
A.6,2,3,4,5,B.2,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
75.冒泡排序的时间复杂度为
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
76.
77.
78.有以下程序段:
当执行上述程序段,并从键盘输入:nalne=LilinLim=1001<;回车>;后,name的值为()。
A.name:=Lilinum=1001B.nfll"ne=LiliC.Uli.h.um=D.Lili
79.
80.
五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:从字符串str中,删除所有大写字母F。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
voidproc(char*str)
{
inti,j;
//****found****
for(i=j=0;str[i]一0;i++)
if(str[i]!=F)
//****found****
str[i]=str[i];
str[j]=\0;
}
voidmain
{
charstr[80];
printf("\nEnterastring:");
gets(str);
printf("Theoriginalstring:");
puts(str);
proc(str);
printf("Thestringafterdeleted:");
puts(str);
printf("\n\n");}
六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参m给出了字符串的长度,形参h给出了字符串中前*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:
参考答案
1.C解析:外部变量在编译时由系统分配永久的内存空间,所以外部变量的类型不是自动存储类别。
2.A运算符逻辑非“!”和“==”,逻辑非“!”的优先级高于“==”,选项A等价于“(!a)==0”。如果a不等于0,则表达式为真,否则表达式为假。故本题答案为A选项。
3.C
4.B
5.B按逻辑位运算特点:①用按位与运算将特定位清为0或保留特定位;②用按位或运算将特定的位置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。
6.A由顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A选项错误。故本题答案为A选项。
7.Dp一>x的值为1,++(p->x)作用是取p->x的值加1作为表达式的值即值为2,同理++(p->y)的值为3。所以选D。
8.B解析:在C语言的数组元素的引用方法,我们在前面已经讲过了,比如数组元素a[0],可以用表达式*(p+0),即*p来引用,对于数组元素a[1],可以用表达式*(p+1)来引用,在这里,p+1的值就是数组元素a[1]的地址,对此地址使用“间接访问运算符”:*(p+1)就代表存储单元a[1],注意:一对圆括号不可少。同样,对于数组元素a[2],则可以用表达式。(p+2)来引用…,对于数组元素a[9],可以用表达式,(p+9)来引用。因此,当指针变量p指向a数组的起始地址时,若0≤i<10,则数组元素a[i]可以用*(p+i)来表示。
9.C当循环结束时,w的值应为-1,而其他选项中w的值为0,故选择c选项。
10.B
11.D解析:将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元中。
12.Dmain函数定义一个字符数组s,使用字符串“pmfc”初始化;然后通过getchar读取一个字符k到字符变量c;再将字符串s和字符c传入fun函数。函数fun首先通过while循环遍历字符串s,直到指针a指向字符串结束标识‘\\0’后的一个字符,如下图所示。接着通过while循环逆序遍历字符串s,首先a-1的字符位‘\\0’,它的ASCII值为0,小于b(字符‘k’)的ASCII值107,那么将‘\\0’赋给下标为5的元素位置。接着继续向前遍历,同理,将‘c’(ASCII值为99)赋给下标为4的元素位置,将‘f’(ASCII值为102)赋给下标为3的元素位置。由于‘m’(ASCII值为109)大于b,因此循环结束,将b(字符‘k’)赋给下标为2的元素位置,此时str字符串如下。故本题答案为D选项。
13.D
14.D
15.A
16.B
17.D若G中有一条从Vj到Vi的路径,则图的拓扑序列中顶点Vj在顶点Vi之前。设G(V,E)是一个具有n个顶点的有向图,V中顶点的序列v1,v2,…,vn称为一个拓扑序列,当且仅当该顶点满足下列条件:若在有向图G中,从顶点vi在vj有一条路径,则在拓扑序列中顶点vi必须排在顶点vj之前。
18.B对于关系模式,若其中的每个属性都已不能再分为简单项,则它属于第一范式模式。题目中“班级”关系的“班级学生”属性,还可以进行再分,如学号、姓名、性别、出生日期等,因此不满足第一范式。本题答案为B选项。
19.A
20.C根据二叉树的性质及定义,一棵深度为k且有2k-1个结点的二叉树为满二叉树。满二叉树的叶子结点为最后一层的结点数,又根据满二叉树的性质,在满二叉树的第i层上至多有2i-1个结点。因此深度为5的满二叉树的叶子结点数为25-1=16个。
21.5656解析:本题中a,b,c,d是实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。
22.33解析:本题考查do…while语句形式:
do循环体
while表达式
首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。
23.一对多或1:N一对多或1:N解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有三种,即一对一(1:1)的联系、一对多(1:N)或多对一(N:1)的联系和多对多(N:N)的联系。
24.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。
25.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。
26.*s-*t或-*t+*s*s-*t或-*t+*s解析:函数的两个形参是两个字符指针变量,字符串的首地址是指针变量的值,*s和*t表示字符串数组s和t的第一个字符,在while循环中,是通过s和t值的不断变化来改变指针所指向的字符,要改变s和t所指不同字符的ASCII码的差值,必须使用“*s-*t”得出。
27.33解析:本题考查的是C语言逗号表达式的相关知识。程序在计算逗号表达式时,从左到右计算由逗号分隔各表达式的值,整个逗号表达式的值等于其中最后一个表达式的值。本题中,首先i被赋值为2,再自加1,最后i++的值计算为3。
28.变换型典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
29.n/2n/2解析:删除—个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2:所以总体平均移动元素个数为n/2。
30.8181解析:本题的宏调用S(i+j)将被替换成表达式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本题输出81。
31.i=0j=20i=0,j=20解析:该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以说本题中应该原样输入i=,j=,后面分别给变量0和20,所以说空格处应该填入i=0,j=20。
32.45994599解析:本题是一个陷阱题,以书写格式来考查考生对if语句的理解.if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=a;,执行a=c;c=t;后,a=5、b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面三条语句都被执行,这三条语句构成一次a和b的内容交换。所以最后输出的结果是:4599。
33.20020,0解析:本题考查的知识点是if语句的基本概念。在主函数中首先定义了三个整型变量x、y,t,并分别给它们赋初值为10,20,0,接着执行if语句,在if后面括号内的条件表达式中,条件“x==y”即“10==20”不成立,则不执行其后的语句“t=x”,然后退出if语句,顺序执行语句X=y;y=t;。执行完这两条语句后x的值变为20,y的值变为0,所以最后输出x,y的值为20和0。
34.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,输出结果为3。
35.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。
36.2424解析:本题关键是while循环。
当i=0时,满足条件:i<7&&11%2==1,执行j=0+11=11,i++,i为1;
当i=1时,满足条件:i<7&&13%2=1,执行j=11+13=24,i++,i为2;
当i=2时,不满足条件:i<7&&14%2==1,循环结束。输出j的值24。
37.t*10或10*tt*10或10*t解析:本题要求累加一系列有规律的数,从输出结果来看,s保存的是最终结果,而s在循环体中,每次累加一个t,则说明t在5次循环中分别等于1.12、123、1234、12345;而t每次循环等于“填空内容”加上循环变量i,又因为i在5次循环中分别等于1、2、3、4,5,所以t每次循环要加的“填空内容”应分别为0、10、120,1230,12340,这一系列值正好是前一次t的值的10倍.所以“填空内容”应是t*10。
38.bar[i]bar[i]解析:fun函数中的内层for循环,求出了每一行中的最大值x,内循环结束后就需要把最大值放在存储每行最大值的数组bar[i]中,因此应填bar[i]。
39.77解析:在C语言中,宏定义是直接替换的,所以在刘表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。
40.3030解析:题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。注意:while循环的执行原理。
41.B解析:此程序考察了for循环和x++。对于大循环,有两个x++,其中循环3次,对于小循环,循环三次,但是运行了两次x++,所以最后结果是6+2=8。
42.C
43.D解析:函数值的类型应当是在定义函数时指定的。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型—致,如果不—致,则以函数类型为准,即函数类型决定返回值的类型。
44.C解析:本题是按成员变量Score的值进行由小到大的排序,程序执行后p[5]中各元素分别为:{{'Penghua',20045,537},{'SunDan',20044,550},{'LiSiGuo',20042,580},{'WangYin',20043,680},{'YangSan',20041,703}},所以P[1]->Score=550,s[1].Score=580。
45.B解析:所谓中序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
46.D解析:软件需求规格说明书SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用,①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。
47.C解析:本题考查字符数组和字符串赋值给数组的一些区别。语句“charm[]='1234567';”定义了一个字符型数组并进行了初始化,C语言规定,在字符串的末尾自动加上串结束标记\'\\0\',因此数组m的长度是8;而数组n是按照字符方式对数组进行初始化,系统不会自动加上串结束标记\'\\0\',因此数组n的长度是7。
48.C2(n-1)
=2(5-1)=16
49.D
50.A解析:?:运算符首先执行?之前的表达式,如果表达式的值为真,则返回?和:之间的表达式的值,否则返回:之后的表达式的值。本题中m比x和y都要小,所以,3个表达式都没有改变m的值,故应该选择A。
51.B解析:若在函数中定义与全局变量名字相同的局部变量,则全局变量在该函数中将不起作用,因此全局变量的作用域并不一定比局部变量的作用域大,故选项A不正确;静态变量一旦定义,将在整个程序的运行期间都存布,故选项B正确;函数的形参只在函数调用的时候分配存储空间,在退出函数时收回存储空间,因此是局部的,故选项C不正确;没有赋值的auto型变量的初值是随机的,没有赋值的static型变量的初值是0,故选项D不正确。所以,B选项为所选。
52.C解析:二分法查找是一种线性查找方法,其基本方法是:首先要用要查找的关键码与线性表中间位置结点的关键码值进行比较,这个中间结点把线性表分为两个子表,比较相等则查找完毕,不等则根据查找结果确定下一步的查找应该在哪一个子表中进行,如此下去,直到找到满足条件的结点:或者确定表中没有这样的结点。用二分法查找关键码值11的顺序如下所示,其中[]内为本次栓索的子表,()内为该子表的中间结果。从图中可以看出,经四次查找后,确定表中没有这样的结点。因此本题正确答案为选项C(4)。
第一次:[3,6,8,10,12,(15),16,18,21,25,30]
第二次:[3,6,(8),10,12],15,16,18,21,25,30
第三次:[3,6,8,[(10),(12)],15,16,18,21,25,30]
第四次:[3,6,8,10,[(12)],(15),16,18,21,25,30]查找失败。
53.C解析:在C语言中,以“\\”开头的字符均为转义字符,其中“\\”后可跟1~3位八进制数或在“\\”后跟字母x及1~2位十六进制数,以此来代表一个特定的字符。
54.B解析:所谓的线性结构:如果一个非空的数据结构满足下列两个条件,即
1)有且只有一个根结点;
2)每一个结点最多有一个前件,也最多有一个后件。同时满足两个条件的只有线性表,而其他三种数据结构的结点可能存在多个前件或后件,所以不是线性结构。
55.A白盒测试是把测试对象看作是一个打开的盒子,允许测试人员利用程序内部的逻辑结构及相关信息来设计或选择测试用例,对程序所有的逻辑路径进行测试。所以,白盒测试的对象基本上是源程序,以程序的内
【知识拓展】软件测试按照功能划分可以分成白盒(白箱)测试和黑盒(黑箱)测试。其中黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。
56.D解析:算法的空间复杂度一般是指这个算法执行时所需要的内存空间,其中包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行旱灾程中所需要的额外空间,其中额外空间还包括算法程序执行过程的工作单元以及某种数据结构所需要的附加存储空间。
57.C
58.C解析:本题在定义字符数组时没有定义数组长度,但用字符常量给数组赋了初值,这时初值的个数即为数组的长度,故数组长度为6(包括'\\0')。字符串的长度为有效字符的个数5。strlen(s)返回值为串中字符的个数(不计最后的'\\0'),则输出值为5。sizeof(s)计算数组所占的字节数,包含'\\0',则输出值为6。因此,C选项正确。
59.C解析:本题考查逻辑与(&&)和逻辑或(‖)运算符的使用。x>=1和x<=10是逻辑与的关系,因此C语言表达式应写成'(x>=1)&&(x<=10)',x>:100和x<=110也是逻辑-与的关系,因此C语言表达式应写成“(x>=100)&&(x<=110)”;[1\'10]和[100,110]是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)。
60.A解析:函数fun(char*s[],intn)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行fun(ss,5)语句后,*ss[]={'xy','bcc','bbcc','aabcc','aaaacc'},ss[0],ss[4]的输出结果为xy,aaaacc。
61.A面向对象设计方法的三个基本特性即封装、多态、继承。结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化、限制使用goto语句。故答案为A)。
62.A调用f(a,b)函数返回3,调用f(a,c)函数返回6,因此外层调用f(f(a,b),“a,c));,即调用f(3,6)函数返回9,故本题答案为A)。
63.As[i]元素作为c数组的下标,使C数组元素自增,执行完毕后,c数组元素为04332。按题目要求输出,4332,所以答案选择A)。
64.C本题中指针p1、p2、p3指向a、b、c值所存放的地址空间,然后再将指针变量*p1、*p2中值的乘积赋给指针变量*P,即赋给变量c,输出c的值3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年个人抵押贷款购销协议条款样本版B版
- 2024年展台搭建租赁合同
- 04版加工承揽合同(含加工要求和质量标准)
- 2024专项建筑泥工作业服务协议版B版
- 2024年企业重组与并购合同
- 2024年度出版发行合同标的与属性范例2篇
- 2024年度兽医服务与宠物用品采购合同
- 2024年太阳能安装工程标准协议版B版
- 2(2024版)出版发行合同出版内容与发行方式
- 2024年工程项目追加条款特别合同版B版
- 光伏发电支架组件安装资料
- 商汤集团人脸布控系统.PPT
- 半导体物理 第10章 半导体的光学性质ppt课件
- 安全生产标准化二级通用标准电气
- 仓储(仓库)危险源及风险辨识与评价表
- 回流焊接工艺参数设置与调制规范
- 万能中国地图模板(可修改)
- 冲击钻孔桩施工安全技术交底
- 春秋航空公司客舱服务质量提升研究航空航天专业
- 建筑施工安全隐患排查治理检查记录表
- 【收藏】人工智能商务汇报实用PPT模板
评论
0/150
提交评论