版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年辽宁省辽阳市全国计算机等级考试C语言程序设计测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列能正确进行字符串赋值的是()。A.B.C.D.
2.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);当执行上述程序段时,从键盘上输入555667777abc后,y的值为()。
A.566.0B.55566.0C.7777.0D.566777.0
3.
4.C语言中的变量只能由字母、数字和下划线组成,且第一个字符()。
A.必须是字母B.必须是下划线C.必须是下划线和字母D.可以是字母.数字或下划线中任一一种
5.设有二维数组A7×8,每个数据元素占8个字节存储单元,顺序存放,A第一个元素A0,0的存储地址为1000,则数组A占用的存储量为()字节。
A.448B.56C.56D.64
6.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
7.有如下程序#include<stdio.h>main(){FILE*fpl;fpl=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为
A.goodabcB.abcdC.abcD.abcgood
8.下列运算符中优先级最低的算符是()。
A.||B.!=C.<;=D.十
9.设有以下程序段:intx=0,s=0;whUe(!x!=0)s+=++x;printf("%d",s);则()。
A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次
10.为了使模块尽可能独立,要求()。
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
11.以下程序的输出结果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
12.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",执行其结果为()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
13.判断一个顺序存储的队列sp为空的条件是()。
A.sp->front=sp->rear
B.sp->front=sp->rear+1
C.sp->front=sp->rear-1
D.sp->front=NULL
14.以下编码方法中,()属于熵编码。
A.哈夫曼编码B.小波变换编码C.线性预测编码D.形成编码
15.标准库函数fgets(str,n,fp)的功能是()。A.从fp所指的文件中读取长度不超过n-1的字符串存入指针str所指的内存
B.从fp所指的文件中读取长度为n的字符串存入指针str所指的内存
C.从fp所指的文件中读取n个字符串存入指针str所指的内存
D.从fp所指的文件中读取长度为n-1的字符串存入指针str所指的内存
16.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同特点
17.向一个栈顶指针为H的链栈中执行出栈运算时,需执行()。
A.p=H;H=H->link;free(p);
B.H=H->link;free(H);
C.p=H;H->link=H->link->link;free(p);
D.p=H;H=H->link;
18.
19.关于排序算法的以下说法,错误的是()
A.归并排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)
B.堆排序平均时间复杂度O(nlogn),最坏时间复杂度O(nlogn)
C.冒泡排序平均时间复杂度O(n^2),最坏时间复杂度O(n^2)
D.快速排序的平均时间复杂度O(nlogn),最坏时间复杂度O(n^2)
20.与单链表相比,双链表的优点之一是()。
A.插入、删除操作更简单B.可以进行随机访问C.可以省略表头指针或表尾指针D.顺序访问相邻结点更灵活
二、2.填空题(20题)21.()是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。
22.下列程序运行时输入1234567<CR>,则输出结果是______。
#include<stdio.h>
main()
{inta=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
23.设有下列程序:
#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>,则程
序的输出结果是______。
24.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
25.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longf1;
myf=【】("test,t","rb");
fseek(myf,(),SEEK_END;f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
26.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar(
n1=ch1-'0';n2-n1*10+(ch2-'0');
printf("%d\n",n2);;
}
程序运行时输入:12<回车>,执行后输出结果是______。
27.需求分析的最终结果是产生【】。
28.下列程序段中循环体的执行次数是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
29.若有如下结构体说明:
structSIRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。
【】t[20]
30.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。
请填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(strl,str2);
printf("%s\n",strl);
}
31.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
32.软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于【】测试。
33.下列程序中的函数stropy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,合并形成一个新字符串。例如,若t所指字符串为:efgh,调用strcpy2后,s所指字符串为:efghefgh。请填空。
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
34.以下程序运行后的输出结果是______。
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
35.对于长度为n的顺序存储的线性表,当随机插入和删除一个元素时,需平均移动元素的个数为【】。
36.对软件是否能达到用户所期望的要求的测试称为【】。
37.数据结构分为逻辑结构和存储结构,循环队列属于______结构。
38.问题处理方案的正确而完整的描述称为______。
39.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。
40.若有以下程序:
intf(intx,inty)
{
return(y-x)*x;
}
main()
{
inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出的结果是【】。
三、1.选择题(20题)41.若有以下类型说明语句:charw;intx;floaty,z;则表达式w*x+z-y的结果为______类型。
A.floatB.charC.intD.double
42.以下程序(程序左边的数字为附加的行号)______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.没有错B.第1行有错C.第6行有错D.第7行有错
43.设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A.k=*p1+*p2B.p2=k;C.p1=p2;D.k=*p1*(*p2);
44.结构化程序设计主要强调的是______。
A.程序的规模B.程序的易读性C.程序的执行效率D.程序的可移植性
45.下列选项中非法的表达式是________。
A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1
46.下列选项中正确的语句是
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
47.设有如下的变量定义,以下符合C语言语法的表达式是______。inti=8,k,a,b;unsignedlongw=5;doublex=1,42,y=5.2;
A.a+=a-=(b=4)*(a=3);B.x%(-3);C.a=a*3=2;D.y=float(i);
48.若有如下程序:main(){inta=6;charch=c;printf("%d\n",(a&2)&&(ch<'m'));}则程序运行后的输出结果是()
A.0B.1C.2D.3
49.信息隐蔽的概念与下述______概念直接相关。
A.软件结构定义B.模块独立性C.模块类型划分D.模拟耦合度
50.在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。在求逻辑值时,逻辑真和逻辑假可分别表示为
A.10B.01C.非0非0D.11
51.设有如下关系表:
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
52.下列叙述中,不属于软件需求规格说明书的作用的是()
A.便于用户,开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
53.树是结点的集合,它的根结点的数目是()。
A.有且只有1个B.1或多于1C.0或1D.至少有2个
54.下面程序的输出是______。main(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A.k=11,k=12,k=11
B.k=11,k=13,k=13
C.k=11,k=013,k=0xb
D.k=11,k=13,k=B
55.若有定义语句:intk[2][3],*pk[3];,则以下语句中正确的是A.pk=k;B.pk[0]=&k[1][2];C.pk=k[0];D.pk[1]=k;
56.程序流程图中有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系
57.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序运行后的输出结果是______。
A.8B.10C.7D.11
58.下列二维数组初始化语句中,不正确的是()。
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={1,2},{3,4,5},{6}};
D.intb[3][2]={(1,2),(3,4),(5,6)};
59.在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码()。
A.小32B.小64C.大32D.大1
60.在16位IBM-PC机上使用C语言,若有如下定义structdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是
A.1B.2C.7D.11
四、选择题(20题)61.以下选项中不能作为C语言合法常量的是
A.’Fab’B.0.7e+9C."\b"D.’\01211’
62.有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是()。
A.自然连接B.交C.除D.并
63.若a是数直类型,则逻辑表达式的值是()。A.1B.0C.2D.不知道a的值,不能确定
64.
65.有3个关系R、S和T如下.
则由关系R和S得到关系T的操作是()。A.自然连接B.差C.交D.并
66.
67.若有以下程序:inta=1,b=2:a=a^b:b=b^a:则执行以上语句后a和b的值分别是()。
A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2.b=1
68.下面结构体的定义语句中,错误的是()。
A.structord{intx;intY;intz;}structorda;
B.structord{intx;imY;imz;};structorda;
C.structord{intx;intY;intZ;}a;
D.struct{intx;intY;intz;}a;
69.(63)线性表的顺序存储结构和线性表的链式存储结构分别是______。
A.顺序存取的存储结构、顺序存取的存储结
B.随机存取的存储结构、顺序存取的存储结构
C.随机存取的存储结构、随机存取的存储结
D.任意存取的存储结构、任意存取的存储结构
70.下面程序运行后的输出结果是()。
structabc
{
inta,b,c;
}
main()
{
structabcs[2]={{1,2,3},{4,5,6}};
intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
A.5B.6C.7D.8
71.(54)在下列几种排序方法中,要求内存量最大的是______。
A.插入排序
B.选择排序
C.快速排序
D.归并排序
72.设有定义:intm=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A.++mB.m+=1C.m++D.m+1
73.
下列程序的运行结果是()。
#include<stdio.h>
main
{staticchara[]="Languagef",b[]="programe":
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=8;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k)):
}
A.gaeB.angC.programD.有语法错
74.在c语言中,只有在使用时才占用内存单元的变量,其存储类型是()。A.aut0和Iegister
B.extern和register
C.aut0和static
D.static和register
75.下面函数的功能是()。
intfunc(char*x)
{char*y=x;
while(*y++);
return(y-x-1);
}
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串x复制到字符串y
D.将字符串x连接到字符串y后面
76.阅读下列程序,当运行函数时,输入abcdefgzl0,则输出为()。
A.abcB.zl0C.abcdefgzl0abcdefgzl0D.abcdefgzl0
77.
78.
79.有以下程序
程序运行后的输出结果是()。
A.15B.12C.16D.20
80.设有图书(图书编号,书名,第一作者,出版社.、读者(借书证号,姓名,单位,职称.和借阅(借书证号,图书编号,借书日期,还书日期.三张表,则表借阅的关键字(键或码.为()。
A.借书证号,图书编号
B.图书编号,借书日期
C.借书日期,还书日期
D.借书证号,借书日期
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为l23456789时,t中的数为l3579。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:
六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函
数时,不得使用c语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******删除*后字符串中的内容应当
是:ABCDEFG。
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.C选项A、B的空间不够;选项D中字符串存储要有结束符ˊ\0ˊ,且要占用一个空间,printf用来输出字符,不能输入字符串。
2.Ascanf是格式输入函数,即按用户指定的格式从键盘上把数据输入指定的变量中。其中,在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。所以j的值为55,y的值为566.0,字符数组name的值为7777abc。故本题答案为A选项。
3.B
4.C
5.A
6.D在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。
7.C解析:主函数中定义了一个文件指针fp1,然后通过fopen()函数,以写的方式打开文件“fl.txt”,并让指针fp1指向它,接着调用fpfintf()函数将“abc”写到文件fp1所指的文件里,由于开始fp1指向文件的“fl.txt”的开始位置,因此“abc”将把文件“fl.txt”里原来的内容“good”覆盖掉,故文件“fl.txt”里最后的内容为“abc”。
8.AC语言中规定运算符的优先顺序:一元算术运算符一>二元算术运算符一>关系运算符一>逻辑运算符一>赋值运算符,A项中为逻辑运算符,B项和c项都为关系运算符,D项为一元运算符。因此最低的是A项。
9.B解析:本题中,逻辑非“!”运算符比不等于“!=”运算符优先级高,因此第一次循环时!x!=0的运算结果为真,s的运算结果为1;第二次循环时!x!=0的运算结果为假,循环结束,输出s的结果为1。
10.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。
11.D因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。
12.D
13.A
14.A
15.Afgets函数的功能是从fp所指文件中读入n-1个字符放入以str为起始地址的空间内,读取长度不超过n-1,读入结束后,自动在最后添加’\\0’,选项A正确。本题答案为A选项。
16.C解析:栈和队列都是操作受限制的线性表,只允许在端点插入和删除。不同点是:栈只允许在表的一端进行插入和删除操作,而队列允许在表的一端进行插入操作,而在另一端进行删除操作。
17.A
18.D
19.A
20.D
21.逻辑独立性逻辑独立性解析:数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时。应用程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。
22.本题考查的重点是scanf函数的调用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上场宽,本题中两个变量的场宽都为2,所以输入1234567<CR>后,变量a的值为12。变址b的值为34,从而输出为1234。\r\n\r\n
23.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。
24.k=p;k=p;解析:为要寻找数组中的最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查是从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k)更大时,应该用p更新k。所以在空框处应填入代码“k=p;”。
25.fopenfopen解析:C语言中的文件分为:ASCII文件与二进制文件。文件在使用前打开,使用后要关闭。打开文件的函数为:fopen(),调用形式为:fp=fopen(“文件名”,“使用文件方式”);关闭文件的函数为:fclose(),调用形式为:fclose(fp);其中fp为文件指针。
26.1212解析:本题考核的知识点是字符类型数据的表示方法和存储形式。字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=ch1-'0'='1'-'0'=49-48=1n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后输出为12。
27.需求规格说明书需求规格说明书解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。
28.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,此时再判断循环条件不满足,退出循环。
29.structSTRUstructSTRU解析:结构体类型是构造数据类型,是用户自己定义的一种类型。
结构体类型的定义:
struct结构体类型名
{
成员项表;
定义结构休变量的的形式为:
struct结构体类型名变量1,变量2,....
其中变量包括:一般变量、指针变量、数组变量等。
30.*t++或*(t++)*t++或*(t++)解析:主函数中定义了两个字符型数组strl和str2,并且给str2赋初值“abc&fgh”,接着调用函数sstrcpy(str1,str2),将字符串str2的值赋给str1。在函数sstrcpy(*s,*t)中,用了一个while循环,每循环一次将形参指针t所指的字符赋给形参指针s所指向的存储空间,然后指针s和指针t都下移到下一个元素。所以空格处应该填*t++或*(t++)。
31.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。
32.黑箱或黑盒黑箱或黑盒解析:黑箱测试是根据程序规格说明所规定的功能来设计测试用例,它不考虑程序的内部结构和处理过程。常用的黑箱测试技术分为等价类划分、边界分析、错误猜测以及因果图等。
33.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函数。strcpy2()中,首先将指针t保存到指针p中,然后进入第1个while()循环,其循环条件为*s++=*t++,其中“*”和“++”运算符的优先级相同,但他们的结合性为从右至左,而“=”运算符优先级比较低,所以原表达式等价于(*s++)=(*(t++)),即将t当前所指内容复制到s当前所指地址中,然后让s和t同时往后移动一位,整个表达式返回的是复制给s的值。所以,当t所指内容是字符串结束符'\\0',时,while循环结束,原先t所指的整个字符串也就复制到s所指的地址中去了。但是,while循环最后一次判断也会让s和t往后移动一位,即此时s指向了字符串结束符'\\0'的后一位。所以第2次复制字符串之前,应先将s指针往回移动一位,故前一空应该填入s-1或其他等价形式。接下来的while循环实现第二次复制,照抄第1次的while循环就行,故后一空应填入*s++。
34.24
35.n/2n/2解析:删除一个元素,平均移动的元素个数为(n-1+n-2+…+0)/n=(n-1)/2;插入一个元素,平均移动元素个数为(n+n-1+n-2+…+1)/n=(n+1)/2;所以总体平均移动元素个数为n/2。
36.有效性测试有效性测试
37.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。
38.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。
39.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。
40.99解析:在主函数中函数f(f(3,4),f(3,5))的返回值赋给do函数的第一个参数为f(3,4)的返回值,函数f(3,4)返回值为(4-3)*3=3,f(3,5)返回值为(5-3)*3=6,那么函数f(f(3,4),f(3,5))等价于函数f(3,6)其返回值为(6-3)*3=9。因此d被赋值为9,所以输出9。
41.A解析:在进行运算时,不同类型的数据参加运算,需要先将其转换成同一类型的数据,然后再进行运算。转换的顺序由低到高为:char,short→int→unsigned→long→double←float,故结果为float型。
42.B解析:字符串复制函数strcpy包含在头文件string.h中,因此,程序中的第1行文件包含命令是错误的。
43.B解析:本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针。而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误。
44.B解析:采用结构化编程方法的好处主要在于:一是便于控制、降低程序的复杂性,因此便于编写程序。二是程序清晰易读,可理解性好。因此,结构化程序设计主要强调的是程序的易读性,而不是程序的规模、程序的执行效率和程序的可移植性。
45.D解析:赋值表达式的左侧不能为常量或表达式,所以D是非法的表达式。
46.D解析:本题考核的知识点是字符欺组初始化及字符型指针的应用。字符数组初始化可以有两种方式:方式一,按单个字符的方式赋初值。方式二,把一个字符串作为初值赋给字符数组。比如:charch[5]=rabc”),选项A属于这种情况,但是选项A定义的字符数组长度为8,由于最后还要加一个“\\0”做结束标志,所以赋给他的字符串长度应小于等于7,所以选项A不正确;在给字符数组赋初值的时候,应该用花括号“{”和“}”将字符串括起来,故选项C不正确。将字符型指针变量指向字符串也有两种方法,一是在定义指针变量时就给其赋初值,比如:char*p='student';二是给指针变量赋值,比如:p='student';(p已经被定义为字符型指针变量;),故选项D正确,而选项C中的花括号是多余的,应该去掉,所以,4个选项中选项D符合题意。
47.A
48.A解析:表达式a&2的值为0,不必再计算表达式ch<'m',整个逻辑表达式的值为0。
49.B解析:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不合晰问的。模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。衡量软件的模块独立性的度量标准是耦合性和内聚性。一个模块的内聚性越强,则该模块的模块独立性越强。而内聚性是信息隐蔽和局部化概念的自然扩长。
50.A解析:在C程序中,判断逻辑值时,用非0表示真,用0表示假。逻辑表达式计算时,逻辑表达式值为真是用1表示的,若逻辑表达式的值为假,则用0表示。
51.B解析:仔细观察3个表可以看到,R,S,T具有相同的关系模式,且T包含了R和S的所有元组,故T=R∪S。
52.D解析:软件需求规格说明书SRS,SoftwareRequirementSpecification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用,①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据。
53.CC。【解析】树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为0。
54.D解析:在C语言格式字符的输出中,“%d”是以带符号的十进制形式输出整数;“%60”是以8进制无符号形式输出整数(不输出前导符o);“%x”是以16进制无符号形式输出整数(不输出前导符Ox)。
55.B答案B
解析:*pk[3]表示的是一个共有3个元素的一维指针数组。pk[0]=&k=[1][2]表示把二维数组中下标为k[1][2]的值赋予pk[0],也就是pk[0]指向k[1][2]这个元素。
56.C解析:程序流程图是软件过程设计中常用的图形描述工具之一。构成程序流程图的最基本符号有:→或↓,表示控制流;□表示加工步骤;
表示逻辑条件。
57.A解析:本题中定义一个全局变量a和一个局部变量a。局部变量和全局变量的不同在于,局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失,而全局变量是在函数外部任意位置上定义的变量,它的作用域从变量定义的位置开始,到整个源文件结束为止。若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽,在该函数内,起作用的将是局部变量,与同名的全局变量不发生任何关系。在程序中首先定义了变量s并赋值为0,接着在嵌套的复合语句{}中定义了变量a并赋初值为5,接着执行语句s+=a+a;在这条语句中a加1,但表达式a++还是原来的值,故s=s+5,s为5,程序执行到外层,此时{}内定义的变量a不再有效,此时的变量a为{}之前定义的且初值为3,接着执行{}后面的语句s+=a++;相当于执行语句s=s+(++);即s=5+3,最后值为8,所以最后输出的s值为8。所以4个选项中A正确。
58.D解析:在对二维数组元素赋初值时,可以只对部分元素赋初值,未赋初值的元素自动取0;C语言规定,对于二维数组,只可以省略第1个方括号中的常量表达式,而不能省略第2个方括号中的常量表达式;赋的初值不能多于事先定义好的数组元素个数。选项D赋值表达式中对每一维的元素赋初值应用{},而不是0。
59.A解析:本题考查大小写字母的ASCII码值的关系。大写字母比它相应的小写字母的ASCII码小32。
60.D解析:结构体变量所占用内存的字节数是其所有成员所占用内存字节数之和。本题中整型变量i所占用的内存是2字节,字符型变量ch所占用的内存是1字节,双精度型变量f所占用的内存是8字节,三者相加即可。
61.A本题考查C语言中常量的定义。常量是指程序在运行过程中,其值不能被改变的量。C语言中常见的常量主要有整型常量、实型常量、字符型常量。整型常量包括十进制整数,如456;八进制整数,以0开头,如0456;十六进制整数,以0x开头,如0x456。实型变量包括十进制小数形式,如.456;指数形式,如456e0,字母e前面必须有数字,e后面的数字必须为整数,如456e-4。字符型常量是用单撇号括起来的一个字符。如,’a’,’A’等。’a’不等于’A’。字符型常量还包括一种转义字符,以’\\’开头,表示将’\\’后面的字符转换成另外的意义。字符串也可以作为常量,用双撇号括起来,如'abc'。本题A选项中单撇号括起来的不是一个字符,而是三个字符,故不是合法常量。B选项是实型变量的指数表示形式。C选项是字符串常量,用双撇号引起来。D选项是字符’\\0’,因为在碰到’\\0’后,字符串结束,因此只读取到’\\
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 9221:2024 EN Furniture - Childrens high chairs - Safety requirements and test methods
- 充电桩安装及安全使用协议范本
- 辽宁省沈阳市沈阳市郊联体2024-2025学年高二上学期11月期中生物试题 含解析
- 2024年度企业级区块链技术研发与许可合同3篇
- 2024年度学校食堂电梯安装与使用合同
- 二零二四年度国际海鲜产品买卖合同
- 担保公司2024年度服务合同担保
- 二零二四年度体育赛事组织承揽合同
- 二零二四年文化艺术活动组织策划合同
- 二零二四年度工厂企业水电供应合同
- 第三章 美国经济发展的现状与前景
- 传统文化皮影戏宣传传承PPT模板
- 《中国近代史纲要》社会实践作业
- 小学使用手机利弊班会课件
- 9年级语文部编版上册教案第三单元写作《议论要言之有据》
- 以《中国石拱桥》和《苏州 园林》为例,探究说明文中说明方法的作用
- 马铃薯栽培技术(精编课件)
- 五金手册电子版
- 人教部编版六年级数学下册【全册】完整版优质课件
- 示例-案例分析型文献综述
- 一年级上册《左右》说课课件
评论
0/150
提交评论