二级C语言真题3及答案解析.docx
《二级C语言真题3及答案解析.docx》由会员分享,可在线阅读,更多相关《二级C语言真题3及答案解析.docx(51页珍藏版)》请在冰豆网上搜索。
二级C语言真题3及答案解析
二级C语言真题2015年09月-(3)及答案解析
(1/40)单项选择题
第1题
下列叙述中正确的是______。
A.程序可以作为算法的一种表达方式
B.算法的有穷性是指算法的规模不能太大
C.算法的复杂度用于衡量算法的控制结构
D.算法的效率与数据的存储结构无关
下一题
(2/40)单项选择题
第2题
某循环队列的存储空间为Q(1:
m),初始状态为front=rear=m。
现经过一系列的入队操作和退队操作后,front=m-1,rear=m,则该循环队列中的元素个数为______。
A.m-1
B.1
C.m
D.0
上一题下一题
(3/40)单项选择题
第3题
能从任意一个结点开始没有重复地扫描到所有结点的数据结构是______。
A.循环链表
B.双向链表
C.二叉链表
D.有序链表
上一题下一题
(4/40)单项选择题
第4题
某棵树中共有25个结点,且只有度为3的结点和叶子结点,其中叶子结点有7个,则该树中度为3的结点数为______。
A.不存在这样的树
B.7
C.8
D.6
上一题下一题
(5/40)单项选择题
第5题
在最坏情况下,二分查找法的时间复杂度为______。
A.n/2log2n
B.n/2
C.log2n
D.n
上一题下一题
(6/40)单项选择题
第6题
某二叉树共有730个结点,其中度为1的结点有30个,则叶子结点个数为______。
A.不存在这样的二叉树
B.351
C.1
D.350
上一题下一题
(7/40)单项选择题
第7题
软件开发中需求分析的主要任务是______。
A.定义和描述目标系统“做什么”
B.获取需求
C.给出软件解决方案
D.需求评审
上一题下一题
(8/40)单项选择题
第8题
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是______。
A.学生成绩管理系统
B.ERP系统
C.办公自动化系统
D.UNIX系统
上一题下一题
(9/40)单项选择题
第9题
医生可以为病人开不同的药,而同一种药也可由不同医生开给病人,则实体医生和实体药之间的联系是______。
A.多对多
B.一对一
C.多对一
D.一对多
上一题下一题
(10/40)单项选择题
第10题
学生选课成绩表的关系模式是SC(S#,C#,G),其中S#为学号,C#为课号,G为成绩,检索课号为2且成绩及格的学生学号的表达式为______。
A.πS#(σC#=2∧G≥60(SC))
B.σG≥60(SC)
C.σC#=2∧G≥60(SC)
D.πS#(σC#=2(SC))
上一题下一题
(11/40)单项选择题
第11题
若想定义int型变量a,b,c,d并都赋值为1,以下写法中错误的是______。
A.inta=b=c=d=1;
B.inta=1,b=1,c=1,d=1;
C.inta,b,c,d;a=b=c=d=1;
D.inta,b,c,d=1;a=b=c=d:
上一题下一题
(12/40)单项选择题
第12题
若有定义:
charc;doubled;程序运行时输入:
12<回车>,能把字符1输入给变量c、数值2输入给变量d的输入语句是______。
A.scanf("%d%lf",&c,&d);
B.scanf("%c%lf",&c,&d);
C.scanf("%c%f",&c,&d);
D.scanf("%d%f",&c,&d);
上一题下一题
(13/40)单项选择题
第13题
输出语句:
printf("%d\n",11+011);的输出结果是______。
A.20
B.22
C.022
D.021
上一题下一题
(14/40)单项选择题
第14题
以下叙述正确的是______。
A.有些算法不能用3种基本结构来表达
B.C语言程序不编译也能直接运行
C.结构化程序的3种基本结构是循环结构、选择结构、顺序结构
D.如果C语言程序实现的算法很简单,则计算机不进行任何代码转换就能执行程序
上一题下一题
(15/40)单项选择题
第15题
若有定义:
doublex;,则表达式:
x=0,x+10,x++的值是______。
A.11.0
B.10.0
C.0.0
D.1.0
上一题下一题
(16/40)单项选择题
第16题
有以下程序:
#include
main()
{ intx=1,y=0,a=0,b=0;
switch(x)
{ case1:
switch(y)
{case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是______。
A.a=2,b=2
B.a=2,b=1
C.a=1,b=1
D.a=1,b=0
上一题下一题
(17/40)单项选择题
第17题
以下程序段中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);printf("*");
该程序段的输出结果是______。
A.*
B.****
C.**
D.********
上一题下一题
(18/40)单项选择题
第18题
有以下程序:
#include
main()
{ charc;
for(;(c=getchar())!
=´#´;)
{if(c>=´a´&&c<=´z´)c=c-´a´+´A´;
putchar(++c);
}
}
执行时输入:
aBcDefG##<回车>,则输出结果是______。
A.AbCdEFg
B.ABCDEFG
C.BCDEFGH
D.bcdefgh
上一题下一题
(19/40)单项选择题
第19题
有以下程序:
#include
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));pfintf("%d\n",m);
}
intf(intx)
{returnx*2;}
程序运行后的输出结果是______。
A.4
B.2
C.8
D.1
上一题下一题
(20/40)单项选择题
第20题
关于地址和指针,以下叙述正确的是______。
A.可以通过强制类型转换让char型指针指向double型变量
B.函数指针p指向一个同类型的函数f时,必须写成:
p=&f;
C.指针p指向一个数组f时,必须写成:
p=&f;
D.一个指针变量p可以指向自身
上一题下一题
(21/40)单项选择题
第21题
有以下程序:
#include
#defineN4
intfun(inta[][N])
{inti,j,x=0;
for(i=0;ifor(j=0;jif(i==j)
x+=a[N-1-j][i];
returnx;
}
main()
{intx[N][N]={{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,17}},y;
y=fun(x);
pfintf("%d\n",y);
}
程序运行后的输出结果是______。
A.34
B.35
C.28
D.59
上一题下一题
(22/40)单项选择题
第22题
有以下程序:
#include
#defineN3
voidfun(intx[][N],int*r1,int*r2)
{inti,j;
*r1=*r2=0;
for(i=0;i{j=N-(i+1);
if(x[*r1][*r2]}
}
main()
{ inta[N][N]={1,5,7,9,2,6,4,3,8},i,j;
fun(a,&i,&j);
printf("%d\n",a[i][j]);
}
程序运行后的输出结果是______。
A.8
B.6
C.7
D.9
上一题下一题
(23/40)单项选择题
第23题
对于以下函数声明
voidfun(intarray[4],int*ptr);
以下叙述中正确的是______。
A.array,ptr都是指针变量
B.调用fun函数时,实参的值将逐一复制给array
C.调用fun函数时,array按值传送,ptr按地址传送
D.array是数组,ptr是指针,它们的性质不同
上一题下一题
(24/40)单项选择题
第24题
设有定义:
intx[10],*p=x,i;,若要为数组x读入数据,以下选项正确的是______。
A.for(i=0;i<10;i++)scanf("%d",p+i);
B.for(i=0;i<10;i++)scanf("%d",*p+i);
C.for(i=0;i<10;i++)scanf("%d",*(p+i));
D.for(i=0;i<10;i++)scanf("%d",x[i]);
上一题下一题
(25/40)单项选择题
第25题
有以下程序:
#include
main()
{ chars[]="012xy\08s34f4w2";
inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>=´0´&&s[i]<=´9´)n++;
printf("%d\n",n);
}
程序运行后的输出结果是______。
A.7
B.0
C.3
D.8
上一题下一题
(26/40)单项选择题
第26题
有以下程序段:
charstr[4][12]={"aaa","bbb","ccc","ddd"},*p[4];
inti;
for(i=0;i<4;i++)p[i]=str[i];
以下选项中不能正确引用字符串的是______。
A.*p[3]
B.p[3]
C.str[2]
D.*p
上一题下一题
(27/40)单项选择题
第27题
有以下程序:
#include
intmul(intval)
{ staticintinit=1;
returninit*=val;
}
main()
{ inti;
for(i=1;i<=5;i++)
printf("%d,",mul(i));
}
程序运行后的输出结果是______。
A.1,2,6,24,120,
B.1,2,3,4,5,
C.1,1,1,1,1,
D.1,2,4,6,8,
上一题下一题
(28/40)单项选择题
第28题
有以下程序:
#include
voidfun(intn)
{ staticintk=0;
if(n<0){printf("-");n=-n;}
k+=n%10;printf("%d,",k);
if(n/10)fun(n/10);
}
main()
{ intx=-12;
fun(x);printf("\n");
}
程序运行后的输出结果是______。
A.-2,3,
B.-1,-2,
C.-2,-3,
D.-2,1
上一题下一题
(29/40)单项选择题
第29题
有以下程序:
#include
structS{intn;inta[20];};
voidf(structS*p)
{inti,j,t;
for(i=0;in-1;i++)
for(j=i+1;jn;j++)
if(p->a[i]>P->a[j]){t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}
}
main()
{inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};
f(&s);
for(i=0;i}
程序运行后的输出结果是______。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.2,3,1,6,8,7,5,4,10,9,
D.10,9,8,7,6,1,2,3,4,5,
上一题下一题
(30/40)单项选择题
第30题
有以下程序:
#include
typedefstruetstu{
charname[10];
chargender;
intscore;
}STU;
voidf(STUa,STU*b,STUc)
{*b=c=a;
printf("%s,%c,%d,",b->name,b->gender,b->score);
printf("%s,%c,%d,",c.name,c.gender,c.score);
}
main()
{STUa={"Zhao",´m´,290},b={"Qian",´f´,350t,c={"Sun",´m´,370};
f(a,&b,c);
printf("%s,%c,%d,",b.name,b.gender,b.score);
printf("%s,%c,%d\n",c.name,c.gender,c.score);
}
程序运行后的输出结果是______。
A.Zhao,m,290,Zhao,m,290,Zhao,m,290,Sun,m,370
B.Zhao,m,290,Zhao,m,290,Zhao,m,290,Zhao,m,290
C.Zhao,m,290,Zhao,m,290,Qian,f,350,Sun,m,370
D.Zhao,m,290,Zhao,m,290,Qian,f,350,Zhao,m,290
上一题下一题
(31/40)单项选择题
第31题
有以下程序:
#include
#defineSUB(x,y)(x)*(y)
main()
{inta=3,b=4;
printf("%d\n",SUB(a++,b++));
}
程序运行后的输出结果是______。
A.15
B.12
C.16
D.20
上一题下一题
(32/40)单项选择题
第32题
有以下程序:
#include
main()
{structcm{intx;inty;}a[2]={4,3,2,1};
printf("%d\n",a[0].y/a[0].x*a[1].x);
}
程序运行后的输出结果是______。
A.1
B.4
C.0
D.3
上一题下一题
(33/40)单项选择题
第33题
以下选项中的编译预处理命令行,正确的是______。
A.#defineE2.38
B.##definePI_21.56
C.#defineintINT
D.#DEFINETRUE
上一题下一题
(34/40)单项选择题
第34题
设有以下程序段:
structbook
{ floatprice;
charlanguage;
chartitle[20];
}ree,*ptr;
ptr=&rec;
要求输入字符串给结构体变量rec的title成员,错误的输入语句是______。
A.scanf("%s",ptr.title);
B.scanf("%s",rec.tide);
C.scanf("%s",(*ptr).title);
D.scanf("%s",ptr->title);
上一题下一题
(35/40)单项选择题
第35题
有以下程序:
#include
#include
structcomputer
{charCPU[10];};
main()
{
struetcomputerpc1,pc2;
strcpy(pc1.CPU,"3.2G");
strcpy(pc2.CPU,"?
?
?
?
");
pc1=pc2;
printf("%s\n",pc1.CPU);
}
程序运行后的输出结果是______。
A.?
B.3.2G
C.?
?
?
?
D.?
.2G
上一题下一题
(36/40)单项选择题
第36题
有以下程序:
#include
main()
{
inta=2,b;
b=(a>>=1)+4;
printf("%d,%d",a,b);
}
程序运行后的输出结果是______。
A.1,5
B.2,4
C.2,6
D.2,5
上一题下一题
(37/40)单项选择题
第37题
若要建立下图所示的存储结构,以下正确的程序段是______。
图片
A.char**q,*p,c;
p=&c;q=&p;
B.char**q,*p,c;
p=&c;q=*p;
C.char*q,*p,c;
p=&c;*q=p;
D.char*q,*p,c;
q=p;p=*c;
上一题下一题
(38/40)单项选择题
第38题
有以下程序:
#include
structtt
{intx;structtt*y;}s[3]={1,0,2,0,3,0};
main()
{structtt*p=s+1;
p->y=s;
printf("%d,",p->x);
p=p->y;
printf("%d\n",p->x);
}
程序运行后的输出结果是______。
A.2,3
B.2,1
C.1,2
D.3,1
上一题下一题
(39/40)单项选择题
第39题
有以下程序:
#include
main()
{intx=3,y=5;
X=x^y;y=x^y;x=x^y;
printf("%d,%d\n",x,y);
}
程序运行后的输出结果是______。
A.3,5
B.5,3
C.35,35
D.8,8
上一题下一题
(40/40)单项选择题
第40题
有以下程序:
#include
structtt
{intx;structtt*y;}s[2]={1,0,2,0};
main()
{ structtt*p=s;
p->y=s;
printf("%d",++p->x);
}
程序运行后的输出结果是______。
A.2
B.0
C.1
D.3
上一题下一题
(1/1)程序填空题
第41题
考生文件夹
函数fun的功能是:
在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。
例如,主函数中给出了4名学生的数据,则程序运行的结果为:
学号:
N1002学号:
N1006
共有2位学生有不及格科目
请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:
源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include
typedefstruet
{charnum[8];
doublescore[2];
/*********found*********/
}__1__;
intfun(STUstd[],intn)
{inti,k=0;
for(i=0;i/**********found**********/
if(std[i].seore[0]<60__2__std[i].score[1]<60)
{k++;printf("学号:
%s",std[i].num);}
/**********found**********/
return__3__;
}
main()
{STUsta[4]={"N1001",76.5,82.0,"N1002",53.5,73.0,
"N1005",80.5,66.0,"N1006",81.0,56.0};
printf("\n共有%d位学生有不及格科目\n",fun(std,4));
}
上一题下一题
(1/1)程序改错题
第42题
考生文件夹
给定程序MODI1.C中,函数fun的功能是判断整数n是否是“完数”。
当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。
例如:
6的因子包括1、2、3,而6=1+2+3,所以6是完数。
如果是完数,函数返回值为1,否则函数返回值为0。
数组a中存放的是找到的因子,变量k中存放的是因子的个数。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
intfun(intn,inta[],int*k)
{ intm=0,i,t;
t=n;
/**********found**********/
for(i=0;iif(n%i==0)
{a[m]=i;m++;t=t-i;}
/**********found**********/
k=m;
/**********found**********/
if(t=0)return1;
elsereturn0;
}
main()
{intn,a[10],flag,i,k;
printf("请输入一个整数:
");scanf("%d",&n);
flag=fun(n,a,&k);
if(flag)
{ printf("%d是完数,其因子是:
",n);
fur(i=0;iprintf("\n");
}
elseprintf("%d不是完数.\n",n);
}
_________________
上一题下一题
(1/1)程序设计题
第43题
考生文件夹
请编写函数fun:
在形参指针所指的4个整数中找出最大值和最小值,最大的放在a中,最小的放在d中。
注意:
部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
给定源程序:
#include
voidNONO();
voidfun(int*a,int*b,int*c,int*d)
{
}
main()
{in