模拟试题二.docx
《模拟试题二.docx》由会员分享,可在线阅读,更多相关《模拟试题二.docx(19页珍藏版)》请在冰豆网上搜索。
模拟试题二
第2套全真模拟试卷
一、选择题
(1)下列选项中不属于算法的特性的是
A)确定性B)可行性C)有输出D)无穷性
(2)下列叙述中正确的是
A)线性表是线性结构B)栈与队列是非线性结构
C)线性链表是非线性结构D)二叉树是线性结构
(3)设有下列二叉树:
对此二叉树中序遍历的结果为
A)ABCDEFB)DAECFC)BDAECFD)DBEFCA
(4)结构化程序设计主要强调的是
A)程序的规模B)程序的易读性
C)程序的执行效率D)程序的可移植性
(5)在面向对象设计中,对象有很多基本特点,其中“从外面看只能看到对象的外部特性,而对象的内部对外是不可见的”这一性质指的是对象的
A)分类性B)标识唯一性C)多态性D)封装性
(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)以下叙述中正确的是
A)C语言的源程序不必通过编译就可以直接执行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
(13)以下定义语句中正确的是
A)chara=´A´b´B´;B)floata=b=10.0;
C)inta=10,*b=&a;D)float*a,b=&a;
(14)有以下程序:
main()
{inta;charc=10;
floatf=100.0;doublex;
a=f/=c*=(x=6.5);
printf(*%d%d%3%3.1f%3.1f\n",ac,f,x);
}
程序运行后的输出结果是
A)16516.5B)1651.56.5
C)1651.06.5D)2651.56.5
(15)数据库设计的根本目标是要解决
A)数据共享问题B)数据安全问题
C)大量数据存储问题D)简化数据维护
(16)设有定义:
floata=2,b=4,h=3;,以下C语言表达式中与代数式1(a+b)h计算结果不相
2
符的是
A)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)
(17)有以下程序
main()
{
intm=0256,n=256;
printf("%o%o\n",m,n);
}
程序运行后的输出结果是
A)02560400B)0256256C)256400D)400400
(18)数据库系统的核心是
A)数据模型B)数据库管理系统C)数据库D)数据库管理员
(19)以下叙述中错误的是
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户定义的标识符中,大、小写字母代表不同标识
(20)有以下程序:
main()
{
chark;inti;
for(i=1;i<3;i++)
}
scanf("%c",&k);
switch(k)
{
case´0´:
printf("another\n");
case´1´:
printf("number\n");
}
}
}
程序运行时,从键盘键入:
01<回车>,程序执行后的输出结果是
A)anotherB)anotherC)anotherD)number
numbernumbernumbernumber
anothernumber
(21)以下叙述中正确的是
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要有输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
(22)有以下程序
main()
{inti=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出的结果是
A)16B)12C)28D)21
(23)已定义ch为字符型变量,以下赋值语句中错误的是
A)ch=´\´;B)ch=62+3;C)ch=NULL;D)ch=´\xaa´;
(24)有以下程序
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66<回车>。
则输出结果是
A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,6
(25)以下能正确定义二维数组的是
A)inta[][3];B)inta[][3]={2*};C)inta[][3]={};D)inta[2][3]={{1},{2},{3,4};
(26)以下程序的输出结果是
#include
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;
}
i+=11;a+=i;
}
printf("%d\n",a);
}
A)21B)32C)33D)11
(27)若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是
A)int*i=NULL;B)float*f=NULL;
scanf(%d",i);*f=10.5
C)chart=´m´,*c=&t;D)long*L;
*c=&t;L=´\0´;
(28)有以下程序:
#include
main()
{printf("%d\n",NULL);}
程序运行后的输出结果是
A)0B)1C)-1D)NULL没定义,出错
(29)有以下程序
main()
{char*s[]={"one","two","three"},*p;
p=s[1];
printf("%c,%s\n",*(p+1),s[0];
}
执行后输出结果是
A)n,twoB)t,oneC)w,oneD)o,two
(30)以下不能正确定义二维数组的选项是
A)inta[2][2]={{1},{2}};B)inta[][2]={1,2,3,4};
C)inta[2][2]={{1},2,3};D)inta[2][]={{1,2},{3,4}};
(31)设有定义:
inta=2,b=3,c=4;,则以下选项中值为0的表达式是
A)(!
a==1)&&(!
b==0)B)(a>b)&&!
c||1
C)a&&bD)a||(b+b)&&(c-a)
(32)设有以下定义和语句
inta[3][2]={1,2,3,4,5,6},*p[3];
p[0]=a[1];
则*(p[0]+1)所代表的数组元素是
A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]
(33)有以下程序
main()
{
intaa[4][4]={{1,2,3,4},{,5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0
for(i=0;i<4;i++)s+=aa[i][1];
printf("%d\n",s);
}
程序运行后的输出结果是
A)11B)19C)13D)20
(34)有以下程序
intf1(intx,inty){returnx>y?
x:
y;}
intf2(intx,inty){returnx>y?
y:
x;}
main()
{
inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
程序运行后的输出结果是
A)4,3,7B)3,4,7C)5,2,7D)2,5,7
(35)设变量已正确定义,则以下能正确计算f=n!
的程序段是
A)f=0;B)f=1;
for(i=1;i<=n,i++)f*=i;for(i=1;iC)f=1;D)f=1;
for(i=n;i>1;i++)f*=i;for(i=n;i>2;i--)f*=i;
(36)以下叙述中正确的是
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
(37)设有以下语句
typedefstructs
{intg.charh;}T;
则下面叙述中正确的是
A)可用S定义结构体变量B)可以用T定义结构体变量
C)S是struct类型的变量D)T是structs类型的变量
(38)以下叙述中错误的是
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D)可以通过赋初值饿方式确定数组元素的个数
(39)有以下程序
intfa(intx)
{returnx*x;}
intfb(intx)
{returnx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)=f1(x);}
main()
{inti;
i=f(fa,fb,2);printf("%d\n",i);
}
程序运行后的输出结果是
A)-1B)1C)4D)8
(40)有以下程序
structs
{intx,y;}data[2]={10,100,20,200};
main()
{structx*p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是
A)10B)11C)20D)21
(41)有以下程序
voidss(char*s,chart)
{
while(*s)
{
if(*s==t)*s=t-´s´+´A´;
s++;
}
}
main()
{
charstrl[100]="abcddfefdbd",c=´d´;
ss(strl,c);printf("%s\n",strl);
}
程序运行后的输出结果是
A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd
(42)有以下程序
main(intargc,char*srgv[])
{intn,i=0;
while(atgv[1][i]!
=´\0´)
{n=fun();i++;}
printf("%d\n",n*argc);
}
intfun()
{structints=0;
s+=1;
returns;
}
假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令
exam123<回车>
则运行结果为
A)6B)8C)3D)4
(43)已定义以下函数:
fun(char*p2,char*p1)
{while((*p2=*p1!
=´\0´){p1++;p2++})
函数的功能是
A)将p1所指字符串复制到p2所指内存空间
B)将p1所指字符串的地址赋给指针p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有´\0´
(44)有以下程序
main()
{
intx[]=(1,3,5,7,2,4,6,0),i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<8;i++)
printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是
A)75310246B)01234567C)76310462D)13570246
(45)设有如下定义
structss
{charname[10];
intage;
charsex;
}std[3],*p=std;
下面各输入语句中错误的是
A)scanf("%d",&(*p).age);B)scanf("%s",&std.name);
C)scanf("%c",&std[0].sex);D)scanf("%c",&(p->sex));
(46)有以下结构体说明和变量定义,如图所示,指针p、q、r分别指向一个链表中的三个
连续结点。
structnode
{
intdata;
structnode*next;
}*p,*q,*r;
datanextdatanextdatanext
↑p↑q↑r
现要将q和r所指结点的先后位置交换,同时要保持链表的连续,以下错误的程序段
是
A)r->next=q;q->next=r->next;p->next=r;
B)q->next=r->next;p->next=r;r->next=q;
C)p->next=r;q->next=r->next;r->next=q;
D)q->next-r->next;r->next=q;p->next=r
(47)以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
#include
voidf(charp[][10],intn)
{
chart[20];inti,j;
for(i=0;ifor(j=i+1;jif(strcmp(p[i],p[j])<0)
{strcpy(t,p[i]),strcpy(p[i],p[j]);strcpy(p[j],t);}
}
main()
{
charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"};inti;
f(p,5);printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是
A)6B)4C)5D)3
(48)~(50)以下程序的功能是:
建立一个带有头结点的单向链表,并将存储在数组中的
字符依次转存到链表的各个结点中,请从与下划线处号码对应的一组选项中选择出正确的选项。
#include
structnode
{chardata;structnode*next;}
(48)CreatList(char*s)
}
structnode*h,*p,*q;
h=(structnode*)malloc(sizeof(structnode));
p=q=h;
while(*s!
=´\0´)
{
p=(structnode*)malloc(sizeod(structnode));
p->data=(49);
q->next=p;
q=(50);
s++;
}
p->next=´\0´;
returnh;
}
main()
}
charstr[]="linklist";
structnode*head;
head=CreatList(str);
...
}
(48)A)char*B)structnodeC)sructnode*D)char
(49)A)*sB)sC)*s++D)(*s)++
(50)A)p->nextB)pC)sD)s->next
二、填空题
(1)算法的复杂度主要包括空间复杂度和_________复杂度。
(2)在面对对象方法中,类的实例称为_______。
(3)对于软件测试,从是否需要执行被测软件的角度,可以分为静态测试和动态测试。
代
码检查属于_____测试。
(4)实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。
(5)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于______。
(6)若有语句
inti=-19,j=i%4;
printf("%d\n",j);
则输出的结果是______。
(7)以下程序运行后的输出结果是_______。
#includeS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
(8)以下程序的输出结果是_______。
main()
{inta=0;
a+=(a=8);
printf("%d\n",a);
}
(9)若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a
if(aprintf("%d%d%d\n",a,b,c);
}
执行后输出的结果为_________。
(10)以下程序的功能是计算:
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);
}
(11)若有以下程序
main()
{chara;
a=´H´-´A´+´0´;
printf("%c\n",a);
}
执行后输出结果是________。
(12)以下程序的输出结果是________。
main()
{char*p="abcdefgh",*r;
long*q;
q=(long*)p;
q++;
r=(char*)q;
printf("%s\n",r);
}
(13)以下程序中,for循环体执行的次数是_________。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i{...}
...
}
(14)以下程序通过函数SunFun求∑
0f(x)。
这里f(x)=x2+1,由F函数实现。
请填空
main()
{
printf("Thesum=%d\n",SunFun(10));
}
SunFun(intn)
}
intx,s=0;
for(x=0;x<=n;x++)
s+=F(_______);
returns;
}
F(intx)
}
return(_______);
}
(15)以下程序运行后的输出结果是_________。
structNODE
{
intnum;
structNODE*next;
};
main()
{structNODEs[3]={{1,´\0´},{2,´\0´},{3,´\0´}},*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s;
q=p->next;
r=q->next;
sum+=r->next->next->num;
printf("%d\n",sum);
}
(16)以下程序中,select函数的功能是:
在N行M列的二维数组中,选出一个最大值作
为函数值返回,并通过形参传回此最大值所在的行下标。
请填空。
#defineN3
#defineM3
selecr(inta[N][M],int*n)
{inti,j,row=1,colum=1;
for(i=0;ifor(j=0;jif(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);
}
(17)设有以下定义
stuctss
{intinfo;structss*link;}x,y,z;
且已建立如下图所示链表结构:
xyz
请写出删除结点y的赋值语句________。
(18)已有文本文件test.txt,