一 、选择题
(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
A)GEDHFBCA
B)DGEBHFCA
C)ABCDEFGH
D)ACBFEDHG
正确答案: B
(2)树是结点的集合,它的根结点数目是
A)有且只有1
B)1或多于1
C)0或1
D)至少2
正确答案: A
(3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是
A)e3,e1,e4,e2
B)e2,e4,e3,e1
C)e3,e4,e1,e2
D)任意顺序
正确答案: B
(4)在设计程序时,应采纳的原则之一是
A)不限制goto语句的使用
B)减少或取消注解行
C)程序越短越好
D)程序结构应有助于读者理解
正确答案: D
(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和
A)对象成分
B)变量成分
C)语句成分
D)传输成分
正确答案: D
(6)下列叙述中,不属于软件需求规格说明书的作用的是
A)便于用户、开发人员进行理解和交流
B)反映出用户问题的结构,可以作为软件开发工作的基础和依据
C)作为确认测试和验收的依据
D)便于开发人员进行需求分析
正确答案: D
(7)下列不属于软件工程的3个要素的是
A)工具
B)过程
C)方法
D)环境
正确答案: D
(8)单个用户使用的数据视图的描述称为
A)外模式
B)概念模式
C)内模式
D)存储模式
正确答案: A
(9)将E-R图转换到关系模式时,实体与联系都可以表示成
A)属性
B)关系
C)键
D)域
正确答案: B
(10)SQL语言又称为
A)结构化定义语言
B)结构化控制语言
C)结构化查询语言
D)结构化操纵语言
正确答案: C
(11)下列叙述中正确的是
A)C语言编译时不检查语法
B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义
D)C语言的函数可以嵌套调用
正确答案: D
(12)在C语言中,退格符是
A)\n
B)\t
C)\f
D)\b
正确答案: D
(13)以下叙述中正确的是
A)构成C程序的基本单位是函数
B)可以在一个函数中定义另一个函数
C)main()函数必须放在其他函数之前
D)所有被调用的函数一定要在调用之前进行定义
正确答案: A
(14)在C程序中,判逻辑值时,用"非0"表示逻辑值"真", 又用"0"表示逻辑值"假"。 在求逻辑值时,用()表示逻辑表达式值为"真", 又用()表示逻辑表达式值为"假"。
A)1 0
B)0 1
C)非0 非0
D)1 1
正确答案: A
(15)在C语言中,运算对象必须是整型数的运算符是
A)%
B)\
C)%和\
D)**
正确答案: A
(16)字符型数据在机器中是用ASCII码表示的,字符"5"和"7"在机器中表示为
A)10100011和 01110111
B)01000101和01100011
C)00110101和00110111
D)01100101和01100111
正确答案: C
(17)若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后
a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是
A)***a=25,b=13,c=19
B)***a=26,b=14,c=19
C)### a=25,b=13,c=19
D)### a=26,b=14,c=19
正确答案: C
(18)若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
A)2.500000
B)2.750000
C)3.500000
D)0.000000
正确答案: A
(19)下列程序段的输出结果是:
int a=1234;
float b=123.456;
double c=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A)无输出
B)12,123.5,12345.5
C)1234,123.5,12345.5
D)1234,123.4,1234.5
正确答案: C
(20)若运行以下程序时,从键盘输入 ADescriptor<CR>(<CR>表示回车),则下面程序的运行结果是#include <stdio.h>
main()
{char c;
int v0=1,v1=0,v2=0;
do{switch(c=getchar())
{case ′a′:case ′A′:
case ′e′:case ′E′:
case ′i′:case ′I′:
case ′o′:case ′O′:
case ′u′:case ′U′:v1+=1;
default:v0+=1;v2+=1; }
}while(c!=′\n′);
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A)v0=7,v1=4,v2=7
B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11
D)v0=13,v1=4,v2=12
正确答案: D
(21)设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
则
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
正确答案: B
(22)有如下程序
main()
{ float x=2.0,y;
if(x<0.0)y=0.0;
else if(x>10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);}
该程序的输出结果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
正确答案: D
(23)执行下面的程序段后,变量k中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值
B)33
C)30
D)10
正确答案: A
(24)以下程序段的描述,正确的是
x=-1;
do
{x=x*x;}
while(!x);
A)是死循环
B)循环执行两次
C)循环执行一次
D)有语法错误
正确答案: C
(25)以下选项错误的是
A)main()
{ int x,y,z;
x=0;y=x-1;
z=x+y;}
B)main()
{ int x,y,z;
x=0,y=x+1;
z=x+y;}
C)main()
{ int x;int
int y;
x=0,y=x+1;
z=x+y;}
D)main()
{ int x,y,z;
x=0;y=x+1;
z=x+y,}
正确答案: D
(26)有如下程序段
int a=14,b=15,x;
char c=′A′;
x=(a&&b)&&(c<′B′);
执行该程序段后,x的值为
A)ture
B)false
C)0
D)1
正确答案: D
(27)下列程序执行后的输出结果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{ int i=0; func1(i); printf("\n");}
A)hello
B)hel
C)hlo
D)hlm
正确答案: C
(28)以下函数返回a所指数组中最大值所在的下标值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]>a[p])_________;
return(p);}
在下划线处应填入的内容是
A)i=p
B)a[p]=a[i]
C)p=j
D)p=I
正确答案: D
(29)下面说明不正确的是
A)char a[10]="china";
B)char a[10],*p=a;p="china"
C)char *a;a="china";
D)char a[10],*p;p=a="china"
正确答案: D
(30)以下程序的输出结果是
#include <stdio.h>
void prt (int *x, int *y, int *z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
正确答案: B