二级C语言真题2及答案解析.docx
《二级C语言真题2及答案解析.docx》由会员分享,可在线阅读,更多相关《二级C语言真题2及答案解析.docx(50页珍藏版)》请在冰豆网上搜索。
二级C语言真题2及答案解析
二级C语言真题2015年03月-
(2)及答案解析
(1/40)单项选择题
第1题
下列叙述中正确的是______。
A.每一个结点有两个指针域的链表一定是非线性结构
B.所有结点的指针域都为非空的链表一定是非线性结构
C.循环链表是循环队列的链式存储结构
D.线性结构的存储结点也可以有多个指针
下一题
(2/40)单项选择题
第2题
使用白盒测试方法时,设计测试用例应根据______。
A.程序的内部逻辑
B.程序的复杂结构
C.程序的功能
D.使用说明书
上一题下一题
(3/40)单项选择题
第3题
在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者看病,而一名患者可在多个科室治疗。
则实体医生和患者之间的联系是______。
A.多对多
B.多对一
C.一对多
D.一对一
上一题下一题
(4/40)单项选择题
第4题
设序列长度为n,在最坏情况下,时间复杂度为O(log2n)的算法是______。
A.二分法查找
B.顺序查找
C.分块查找
D.哈希查找
上一题下一题
(5/40)单项选择题
第5题
设数据集合为D={1,3,5,7,9},D上的关系为R,下列数据结构B=(D,R)中为非线性结构的是______。
A.R={(5,1),(7,9),(1,7),(9,3)}
B.R={(9,7),(1,3),(7,1),(3,5)}
C.R={(1,9),(9,7),(7,5),(5,3)}
D.R={(1,3),(3,5),(5,9)}
上一题下一题
(6/40)单项选择题
第6题
深度为7的二叉树共有127个结点,则下列说法中错误的是______。
A.该二叉树有一个度为1的结点
B.该二叉树是满二叉树
C.该二叉树是完全二叉树
D.该二叉树有64个叶子结点
上一题下一题
(7/40)单项选择题
第7题
某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为______。
A.DCBA
B.BDCA
C.ABCD
D.BADC
上一题下一题
(8/40)单项选择题
第8题
下面能作为软件需求分析工具的是______。
A.PAD图
B.程序流程图
C.甘特图
D.数据流程图(DFD图)
上一题下一题
(9/40)单项选择题
第9题
下面不属于对象主要特征的是______。
A.唯一性
B.多态性
C.可复用性
D.封装性
上一题下一题
(10/40)单项选择题
第10题
关系R经过运算σ(A=B∧G>4∧D>3)(R)的结果为______。
图片
A.(c,c,11,4)
B.(e,e,6,1)
C.(a,a,2,4)
D.(a,a,2,4)和(e,e,6,1)
上一题下一题
(11/40)单项选择题
第11题
简单程序设计步骤中不包括______。
A.编码
B.确定算法
C.安装编译程序
D.调试
上一题下一题
(12/40)单项选择题
第12题
若想给已定义为int型的变量a,b,c,d赋值为1,以下选项中错误的语句是______。
A.d=1,c=d,b=c,a=b;
B.a=b=c=d=1;
C.a=1,b=a,c=b,d=c;
D.a=b,b=c,c=d,d=1;
上一题下一题
(13/40)单项选择题
第13题
有C语言表达式2*3+4+15%3,关于其执行顺序,以下叙述正确的是______。
A.先执行2*3得6,再执行6+4得10,再执行15%3得0,最后执行10+0得10
B.先执行2*3得6,再执行15%3得5,最后执行6+4+5得15
C.先执行15%3得0,再执行2*3得6,最后执行6+4+0得10
D.先执行15%3得3,再执行4+3得7,再执行2*3得6,最后执行6+7得13
上一题下一题
(14/40)单项选择题
第14题
若有定义:
inta;floatb;doublec;,程序运行时输入:
1,2,3<回车>,能把1输入给变量a、2输入给变量b,3输入给变量C的输入语句是______。
A.scanf("%d,%f,%lf",&a,&b,&c);
B.scanf("%d%f%lf",&a,&b,&c);
C.scanf("%d,%lf,%lf",&a,&b,&c);
D.scanf("%d,%f,%f",&a,&b,&c);
上一题下一题
(15/40)单项选择题
第15题
以下选项中,合法的C语言实数是______。
A.E1
B.le0
C.0.10E
D.2.le0.2
上一题下一题
(16/40)单项选择题
第16题
关于程序中的注释,以下叙述正确的是______。
A.注释的内容必须放在一对/*和*/之间
B.注释必须置于所说明的语句前或语句后
C.注释中间可以嵌套另一个注释
D.注释内容错误会导致编译出错
上一题下一题
(17/40)单项选择题
第17题
有以下程序:
#include
main()
{ inta,b;
for(a=0;a<3;a++)
{ scanf("%d",&b);
switch(b)
{ default:
printf("%d,",b++);
case1:
printf("%d,",b++);
case2:
printf("%d,",b++);
}
}
}
程序运行时输入:
123<回车>,则输出结果是______。
A.1,2,3,2,3,3,
B.1,2,3,
C.1,2,2,3,4,5,
D.1,1,1,2,2,3
上一题下一题
(18/40)单项选择题
第18题
以下非法的定义语句是______。
A.longb=0L;
B.unsignedinta=-100u;
C.shortc2=0123;
D.intd=0x0;
上一题下一题
(19/40)单项选择题
第19题
有以下程序:
#include
main()
{ inta=0,b=0;
for(;a<5;a++)
{ if(a%2==0)continue;
b+=a;
break;
}
printf("%d\n",b);
}
程序运行后的输出结果是______。
A.1
B.4
C.0
D.10
上一题下一题
(20/40)单项选择题
第20题
有以下程序:
#include
main()
{ charc;
c=getchar();
do{
putchar(c++);
}while((c=getchar())!
=´#´);
}
程序运行时从第一列开始输入:
abcdefg##<回车>,则输出结果是______。
A.bcdefgh$
B.bcdefgh
C.abcdefg#
D.abcdefg
上一题下一题
(21/40)单项选择题
第21题
有如下程序:
#include
main()
{
chara=´0´,b=´a´;
inti;
for(i=0;i<4;i++)
{
if(i%3)putchar(a+i);
elseputchar(b+i);
}
}
程序运行后的输出结果是______。
A.a12d
B.ab3d
C.10ab
D.11ac
上一题下一题
(22/40)单项选择题
第22题
有以下程序:
#include
main()
{
charch=´M´;
while(ch!
=´K´)
{
putchar(ch);
ch--;
}
}
程序运行后的输出结果是______。
A.ML
B.MK
C.OP
D.mm
上一题下一题
(23/40)单项选择题
第23题
有以下程序:
#include
intk=5;
voidf(int*s)
{ s=&k;
*s=k;
}
main()
{ intm=3;
f(&m);
printf("%d,%d\n",m,k);
}
程序运行后的输出结果是______。
A.3,3
B.5,5
C.3,5
D.5,3
上一题下一题
(24/40)单项选择题
第24题
有如下程序:
#include
intsum_mod(inta,intb)
{
returna+b%2;
}
main()
{
inti;
for(i=0;i<5;i++)
printf("%d",sum_mood(i,4));
printf("\n");
}
程序运行后的输出结果是______。
A.12345
B.01234
C.45678
D.43210
上一题下一题
(25/40)单项选择题
第25题
以下对指针变量的操作中,错误的程序段是______。
A.intx=0,*p;*p=x;
B.intx=1,*p,*q=&x;p=q;
C.int*p,*q;q=p=NULL;
D.intp,*q;q=&p;
上一题下一题
(26/40)单项选择题
第26题
有如下程序段:
int*p,a=1;
p=&a;
*p=10;
则变量a的值为______。
A.不能确定
B.1
C.10
D.11
上一题下一题
(27/40)单项选择题
第27题
有以下程序:
#include
inta=2;
intf(intk)
{ staticintn=0;
intm=0;
n++;a++;m++;k++;
returnn+m+a+k;
}
main()
{ intk;
for(k=0;k<2;k++)printf("%d,",f(k));
printf("\n");
}
程序运行后的输出结果是______。
A.6,9,
B.6,10,
C.6,6,
D.6,7,
上一题下一题
(28/40)单项选择题
第28题
有以下程序:
#include
voidf(intx[],intn)
{ if(n>1)
{ printf("%d,",x[0]);
f(&x[1],n-1);
printf("%d,",x[0]);
}
else
printf("%d,",x[0]);
}
main()
{intz[3]={4,5,6};
f(z,3);
printf("\n");
}
程序运行后的输出结果是______。
A.6,5,4,6,5,4,
B.4,5,6,5,4,
C.4,5,6,4,5,6,
D.6,5,4,5,6,
上一题下一题
(29/40)单项选择题
第29题
有如下程序:
#include
#include
main()
{
chara[]="1234",*b="ABC";
printf("%d,%d,%d,%d\n",strlen(a),sizeof(a),strlen(b),sizeof(b));
}
程序运行后的输出结果是______。
A.4,5,1,3
B.4,3,2,1
C.4,5,3,3
D.4,5,3,4
上一题下一题
(30/40)单项选择题
第30题
有以下程序:
#include
int*sum(intdata)
{
staticintinit=1;
init+=data;
return&init;
}
main()
{
inti,*p;
for(i=1;i<=3;i++)sum(i);
p=sum
(1);
printf("%d\n",*P);
}
程序运行后的输出结果是______。
A.8
B.9
C.10
D.7
上一题下一题
(31/40)单项选择题
第31题
以下对C语言函数的叙述中正确的是______。
A.调用函数时,只能把实参的值传给形参,形参的值不能传给实参
B.函数既能嵌套定义,又能递归定义
C.函数必须有返回值,否则不能使用
D.程序中有调用关系的所有函数必须放在同一个源程序中
上一题下一题
(32/40)单项选择题
第32题
有以下程序:
#include
#defineS(x)x/x*x
main()
{ intk=6,j=3;
printf("%d,%d\n",S(k+j),S(j+k));
}
程序运行后的输出结果是______。
A.27,27
B.9,9
C.27,29
D.29,29
上一题下一题
(33/40)单项选择题
第33题
若有定义:
typedefint*T;
T*a[20];
则以下与上述定义中a类型完全相同的是______。
A.int**a[20];
B.int(*a)[20];
C.int*(*a)[20];
D.int*a[20];
上一题下一题
(34/40)单项选择题
第34题
设有以下程序段:
structperson
{
floatweight;
charsex;
charname[10];
}rec,*ptr;
ptr=&rec;
从键盘读入字符串给结构体变量rec的name成员,错误的输入语句是______。
A.scanf("%s",rec->name);
B.scanf("%s",rec.name);
C.scanf("%s",(*ptr).name);
D.scanf("%s",ptr->name);
上一题下一题
(35/40)单项选择题
第35题
有如下程序:
#include
structpair
{
intfirst,second;
};
structpairget_min_max(int*array,intlen)
{
inti;
structpairres;
res.first=array[0];
res.second=array[0];
for(i=1;i{
if(array[i]res.first=array[i];
if(array[i]>res.second)
res.second=array[i];
}
returnres;
}
main()
{
intarray[6]={19,21,3,4};
structpairmin_max=get_min_max(array,6);
printf("rain=%d,max=%d\n",min_max.first,min_max.second);
}
程序运行后的输出结果是______。
A.min=0,max=6
B.min=1,max=20
C.min=1,max=19
D.min=0,max=21
上一题下一题
(36/40)单项选择题
第36题
有以下程序:
#include
main()
{
inti;
FILE*fp;
for(i=0;i<3;i++)
{
fp=fopen("res.txt","w");
fputc(´K´+i,fp);
fclose(fp);
}
}
程序运行后,在当前目录下会生成一个res.txt文件,其内容是______。
A.EOF
B.M
C.KLM
D.L
上一题下一题
(37/40)单项选择题
第37题
有如下定义:
structst
{intn;floatt;}a[20];
FILE*fp;
若文件已正确打开,则以下将文件内容读入数组a中的语句错误的是______。
A.for(i=0;i<20;i++)
fread(a[i],sizeof(structst),1L,fp);
B.fread(a,sizeof(structst),20L,fp);
C.for(i=0;i<20;i+=2)
fread(&a[i],2*sizeof(structst),1L,fp);
D.for(i=0;i<20;i++,i++)
fread(&a[i],sizeof(structst),2L,fp);
上一题下一题
(38/40)单项选择题
第38题
有以下程序段:
intm=33,n=66;
m=m^n;n=n^m;m=m^n;
执行上述语句后,m和n的值分别是______。
A.m=66,n=66
B.m=33,n=66
C.m=66,n=33
D.m=33,n=33
上一题下一题
(39/40)单项选择题
第39题
有以下程序:
#defineOut(n)n%2==0?
"%c":
"%d"
#include
main()
{ intx;
for(x=65;x<69;x++)
printf(Out(x),x);
}
程序的运行结果是______。
A.ABCD
B.A66C68
C.65666768
D.65B67D
上一题下一题
(40/40)单项选择题
第40题
有如下定义:
struetst
{intx;floaty;}rec,*px;
若要使指针px指向rec的成员x,正确的赋值语句是______。
A.px=(struet*)&rec.x;
B.px=(structst*)rec.x;
C.px=&rec.x;
D.*px=rec.x;
上一题下一题
(1/1)程序填空题
第41题
考生文件夹
给定程序中,函数fun的功能是:
计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:
46、30、32、40、6、17、45、15、48、26,平均值为30.500000。
移动后的输出为:
46、32、40、45、48、30、6、17、15、26。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#defineN10
doublefun(double*x)
{ inti,j;doubles,av,y[N];
s=0;
for(i=0;i/**********found**********/
av=__1__;
for(i=j=0;iif(x[i]>av){
/**********found**********/
y[__2__]=x[i];
x[i]=-1;}
for(i=0;i/**********found**********/
if(x[i]!
=__3__)y[j++]=x[i];
for(i=0;ireturnav;
}
main()
{ inti;doublex[N];
for(i=0;iprintf("\n");
printf("\nTheaverageis:
%f\n",fun(x));
printf("\nTheresult:
\n",fun(x));
for(i=0;iprintf("\n");
}
_________________
上一题下一题
(1/1)程序改错题
第42题
考生文件夹
下列给定程序中,函数fun的功能是:
根据整形参m的值,计算如下公式的值。
图片
例如,若m中的值为5,则应输出0.536389。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
doublefun(intm)
{ doubley=1.0;
inti;
/**********found**********/
for(i=2;i/**************found********************/
y-=1/(i*i);
return(y);
}
main()
{ intn=5;
printf("\nTheresultis%lf\n",fun(n));
}
_________________
上一题下一题
(1/1)程序设计题
第43题
考生文件夹
编写函数fun,它的功能是:
求小于形参n,同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如,若n为1000时,程序输出应为:
s=153.909064。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include
#include
doublefun(intn)
{
}
main() /*主函数*/
{ voidNONO();
printf("s=%f\n",fun(1000));
NONO();
}
voidNONO()
{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
*/
FILE*fp,*wf;
inti,n;
doubles;
fp=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d",&n);
S=fun(n);
fprintf(wf,"%f\n",s);
}
fclose(fp);
fclose(wf);
}
_________________
上一题交卷
交卷
答题卡
答案及解析
(1/40)单项选择题
第1题
下列叙述中正确的是______。
A.每一个结点有两个指针域的链表一定是非线性结构
B.所有结点的指针域都为非空的链表一定是非线性结构
C.循环链表是循环队列的链式存储结构
D.线性结构的存储结点也可以有多个指针
参考答案:
D您的答案:
未作答
答案解析:
一个非空的数据结构如果满足以下两个条件:
有且只有一个根节点;每一