计算机二级考试模拟题五.docx
《计算机二级考试模拟题五.docx》由会员分享,可在线阅读,更多相关《计算机二级考试模拟题五.docx(22页珍藏版)》请在冰豆网上搜索。
计算机二级考试模拟题五
计算机二级考试模拟题五
一、选择题(1~10每小题2分,11~50题每小题1分,共60分)
1.如果进栈序列为e1,e2,,e3,e4,则可能的出栈序列是()
A.e3,e1,e4,e2B.e4,e3,e2,e1C.e3,e4,e1,e2D.任意顺序
2.用链表表示线性表的优点是()
A.便于随机存取B.花费的存储空间较顺序存储少
C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同
3.算法的空间复杂度是指()
A.算法程序的长度B.算法程序中的指令条数
C.算法程序所占的存储空间D.执行过程中所需要的存储空间
4.下列叙述中,错误的是()
A.线性表是由n个数据元素组成的一个有限序列
B.线性表是一种线性结构,数据元素之间的相对位置是线性的
C.线性表的所有结点有且只有一个前驱和一个后继
D.线性表可以是空表
5.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()
A.冒泡排序为n/2B.冒泡排序为n
C.快速排序为nD.快速排序为n(n-1)/2
6.下面对对象概念描述错误的是()
A.任何对象都必须有继承性B.对象是属性和方法的封装体
C.对象间的通信靠消息传递D.操作是对象的动态性属性
7.下列描述中正确的是()
A.程序就是软件B.软件开发不受计算机系统的限制
C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合
8.为了使模块尽可能独立,要求()
A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
9.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是()
A.选择B.连接C.投影D.并
10.客观世界中任何一个事物都可以看成一个对象。
但是从计算机的角度看,一个对象应该包含两个要素:
一个是(),另一个是需要进行的操作。
A.语句B.命令C.算法D.数据
11.C语言程序的基本单位是()
A.程序行B.语句C.函数D.字符
12.下列可用于C语言标志符的一组是()
A.voidB.a_6&sysForC.2asizeof_abcD.Intdefine_sizeof
13.下列数据中,为不合法的C语言实型数据的是()
A.0.123B.123e3C.2.1e3.5D.789.0
14.若变量已正确定义并赋值,下面符合C语言的表达式是()
A.a=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
15.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()
A.1B.2C.2.0D.2.5
16.下列语句中符合C语言语法的赋值语句是()
A.a=7+b+c=a+7;B.a=7+b++=a+7;
C.a=7+b,b++,a+7;D.a=7+b,c=a+7;
17.若变量c为char类型,能正确判断出c为小写字母的表达式是()
A.’a’<=c<=’z’B.(c>=’a’)||(c<=’z’)
C.(‘a’<=C)and(‘z’>=C)D.(c>=’a’)&&(c<=’z’)
18.有以下程序
#include
main()
{
inta,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf(“%d,%d\n”,a,b);
}
输出结果是()
A.2,1B.3,2C.4,3D.2,-1
19.以下语句的输出结果是()
printf(“%d\n”,strlen(“\t\”\065\xff\n”));
A.5B.14C.8D.输出项不合法,无正常输出
20.若有说明语句:
“inta,b,c,d=&c;”,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()
A.scanf(“%d%d%d”,&a,&b,d);B.scanf(“%d%d%d”,&a,&b,&d);
C.scanf(“%d%d%d”,a,b,d);D.scanf(“%d%d%d”,a,b,*d);
21.已有定义“inta=-2;”和输出语句“printf(“%81x”,a);”,以下正确的叙述是()。
A.整型变量的输出形式只有%d一种
B.%x是格式符的一种,它可以适用于任何一种类型的数据
C.%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的
D.%81x不是错误的格式符,其中数字8规定了输出字段的宽度
22.以下程序的输出结果是()。
main()
{
inta=100,x=10,y=20,ok1=5,ok2=0;
if(xif(y!
=10)
if(!
ok1)
a=1;
else
if(ok2)a=10;
a=-1;
printf(“%d\n”,a);
}
A.1B.0C.-1D.值不确定
23.若运行时给变量x输入12,则以下程序的运行结果是()。
main()
{
intx,y;
scanf(“%d”,&x);
y=x>12?
x+10:
x-12;
printf(“%d\n”,y);
}
A.0B.22C.12D.10
24.请读程序:
#include
main()
{
inta,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5;
}
printf(“%d”,a);
}
上面程序的输出结果是()。
A.7B.8C.9D.10
25.有以下程序
main()
{
inti=1,j=1,k=2;
if((j++||k++)&&i++)
printf(“%d,%d,%d\n”,i,j,k);
}
执行后输出结果是()。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
26.以下程序的输出结果是()。
#include
inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;
main()
{
p=(int*)malloc(sizeof(int));
f(p,a);
printf(“%d\n“,*p);
}
f(int*s,intp[][3])
{s=p[1][1];}
A.1B.4C.7D.5
27.若有以下定义:
intt[3][2];能正确表示t数组元素地址的表达式是()。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
28.合法的数组定义是()。
A.inta[]=“string“;B.inta[5]={0,1,2,3,4,5};
C.chara=“string“;D.inta[]={0,1,2,3,4,5};
29.由以下程序
main()
{
chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};
inti,j;
i=sizeof(a);
j=strlen(a);
printf(“%d,%d\b“,i,j);
}
程序运行后的输出结果是()。
A.9,9B.8,9C.1,8D.9,8
30.下面程序运行后的输出结果是()。
fut(int**s,intp[2][3])
{
**s=p[1][1];
}
main()
{
inta[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&p,a);
printf(“%d\n“,*p);
}
A.1B.7C.9D.11
31.若有以下定义和语句:
char**s1=“12345“,*s2=“1234“;
printf(“%d\n“,strlen(strcpy(s1,s2)));
则输出结果是()。
A.4B.5C.9D.10
32.下列选项中正确的语句组是()。
A.chars[8];s={“Beijing“};
B.char*s;s={“Beijing“};
C.chars[8];s=“Beijing“;
D.char*s;s=“Beijing“;
33.当执行下面的程序时,如果输入ABC,则输出结果是()。
#include“stdio.h“
#include“string.h“
main()
{
charss[10]=“12345“;
gets(ss);
strcat(ss,“6789“);
printf(“%s\n“,ss);
}
A.ABC6789B.ABC67
C.12345ABC6D.ABC456789
34.以下程序的输出结果是()。
main()
{
intw=5;
fun(w);
printf(“\n”);
}
fun(intk)
{
if(k>0)
fun(k-1);
printf(“%d”,k);
}
A.54321B.012345C.12345D.543210
35.函数调用strcat(strcpy(str1,str2),str3)的功能是()。
A.将串str1复制到串str2中后再连接到串str3之后
B.将串str1连接到串str2之后再复制到串str3之后
C.将串str2复制到串str1中后再将串str3连接到串str1之后
D.将串str2连接到串str1中后再将串str1复制到串str3中
36.以下错误的是()。
A.main(){intx,y,z;x=0;y=x-1;z=x+y;}
B.main(){intx,y,z;x=0,y=x+1;z=x+y;}
C.main(){intx;inty;x=0,y=x+1;z=x+y;}
D.main(){intx,y,z;x=0;y=x+1;z=x+y,}
37.若有函数内部说明:
inta[3][4];则数组a中各元素()。
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
38.以下程序的输出结果是()。
#include
#include
fun(char*w,intn)
{
chart,*s1,*s2;
s1=w;s2=w+n-1;
while(s1{
t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{
char*p;
p=“1234567”;
fun(p,strlen(p));
puts(p);
}
A.1234567B.7654321C.1711717D.7177171
39.以下函数的返回值是()。
charfun(char*p);
{returnp;}
A.无确切的值B.形参p中存放的地址值
C.一个临时存储单元的地址D.形参p自身的地址值
40.以下程序的输出结果是()。
main()
{
intk=4,m=1,p;
p=func(k,m);printf(“%d,”,p);
p=func(k,m);printf(“%d\n”,p);
}
func(inta,intb)
{
staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A.8,17B.8,16C.8,20D.8,8
41.下列程序对输出结果是()。
fun()
{
staticintx=5;
if(x++>5)printf(“%d”,x);
elseprintf(“%d”,x++);
}
main()
{
fun();fun();
}
A.67B.69C.68D.78
42.下列叙述中错误的是()。
A.scanf()函数可以用来输入任何类型的多个数据
B.数组名作函数参数时,也采用“值传送”方式
C.如果形参发生改变,不会改变主调函数的实参值
D.函数的实参数与形参的类型一致
43.以下叙述中不正确的是()。
A.在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
44.下列程序对输出结果是()。
voidreverse(inta[],intn)
{
inti,t;
for(i=0;i{
t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;
}
}
main()
{
intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf(“%d\n”,s);
}
A.22B.10C.34D.30
45.以下程序运行后的输出结果是( )
voidss(char*s,chart)
{
while(*s)
{
if(*s==t)*s=t-'a'+'A';
s++;
}
}
main()
{
charstr1[100]="abcddfefdbd",c='d';
ss(str1,c);
printf("%s\n",str1);
}
A.ABCDDEFEDBD B.abcDDfefDbD C.abcAAfefAbA D.Abcddfefdbd
46.若有以下定义和语句,则值为3的表达式是( )
inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.p+=2,*(p++) B.p+=2,*++p C.p+=3,*p++ D.p+=2,++*p
47.如下程序的输出结果是( )
#include
main()
{
int**k, *j,i=100;
j=&i;
k=&j;
printf("%d\n",**k);
}
A.运行错误 B.100 C.i的地址 D.j的地址
48.若有以下说明,则数值为4的的表达式是( )
intw[3][4]={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
A.*w[1]+1 B.p++,*(p+1) C.w[2][2] D.p[1][1]
49.若有定义和语句,则输出结果是( )
int**pp,*p,a=10,b=20;
pp=&p;p=&a;
p=&b;
printf("%d\n",*p,**pp);
A.10,20 B.10,10 C.20,10 D.20,20
50.设有以下语句()
charx=3,y=6,z;
z=x^y<<2;
则z的二进制值是()
A.00000010100B.00011011C.00011100D.00011000
二、填空题(每空2分,共40分)
1.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____。
2.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为____。
3.在面向对象方法中,类之间共享属性和操作的机制称为______。
4.在软件测试过程中,单元测试的目的是_____,多采用白盒测试法。
5.数据库系统中实现各种数据管理功能的核心软件称为_____。
6.设a、b、c为整型数,且a的值为2,b的值为3,c的值为4,表达式:
a*=16+(b++)-(++c)的值是_________。
7.以下程序的输出结果是_________。
main()
{
inti=010,j=10;
printf(“%d,%d\n”,i,j);
}
8.以下程序的运行结果是-----------。
#include
voidmain(void)
{
intx,y=-2,z=0;
if((z=y)<0)x=4;
elseif(y==0)x=5;
elsex=6;
printf(“\t%d\t%d\n”,x,z);
if(z=(y==0))
x=5;
x=4;
printf(“\t%d\t%d\n”,x,z);
if(x=z=y)x=4;
printf(“\t%d\t%d\n”,x,z);
}
9.下列程序是将一个十进制正整数转化为一个八进制数,在程序的空白处应填入的语句是
()。
#include
main()
{
inti=9,a,b[10]={0};
scanf(“%d”,&a);
sub(a,b);
for(i>=0;i--)printf(“%d”,b\[i\]);
}
sub(intc,intd[])
{
inte,i=0;
while(c!
=0)
{
e=c%8;
d[i]=e;
_________;
i++;
}
return;
}
10.以下函数的功能是__________。
floatav(a,n)
floata[];
intn;
{
inti;floats;
for(i=0,s=0;ireturns/n;
}
11.以下程序的输出结果是__________。
#definePR(ar)printf("%d,",ar)
main()
{
intj,a[]={1,3,5,7,9,11,15},*p=a+5;
for(j=3; j; j--)
switch(j)
{
case1:
case2:
PR(*p++);break;
case3:
PR(*(--p));
}
printf("\n");
}
12.在以下程序中,select函数的功能是:
在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空
#defineN3
#defineM3
select(inta[N][M],intn)
{
inti,j,row=1.colum=1;
for(i=0;i for(j=0;i 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);
}
13.执行以下程序后,a的值为__________,b的值为_________。
main()
{
inta,b,k=4,m=6,*p1=&k,*p2=&m;
a=(*p1)%(*p2);
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
14.若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是_________。
intw[0]={23,54,10,33,47,98,72,80,61},*p=w;
15.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。
st=(char*)___________;
16.以下程序的输出结果是___________。
intast(intx,inty,int*cp,int*dp)
(*cp=x+y;*dp=x-y;)
main()
{
inta,b,c,d;
a=4;b=3;
ast(a,b,&c,&d);
printf("%d%d\n",c,d);
}
17.以下程序输出的结果是__________。
main()
{
inta[10]={19,23,44,17,37,28,49,36},*p;
p=a;
printf("%d\n",(p+=3)[3]);
}
18.设有以下结构体类型:
structst
{
charname[8];
intnum;
floats[4];
}student[50];
并且结构体数组sutdent中的元素都已有值,若要将这些元素写在硬盘文件fp中,请将以下fweite语句补充完整:
fwritr(student,_______,1fp);
19.以下函数creat用来建立一个带头结点的单链表,新产生的结点总是插在链表的末尾,单链表的头指针作为函数值返回.请填空.
#include
structlist
{
c