单项选择题
1. 在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。
A)冒泡排序
B)选择排序
C)快速排序
D)归并排序
2. 下列叙述中正确的是( )。
A)算法的效率只与问题的规模有关,而与数据的存储结构无关
B)算法的时间复杂度是指执行算法所需要的计算工作量
C)数据的逻辑结构与存储结构是一一对应的
D)算法的时间复杂度与空间复杂度一定相关
3. 以下叙述中,不属于面向对象方法的优点的是( )
A)可重用性好
B)与人类习惯的思维方法一致
C)可维护性好
D)有助于实现自顶向下、逐步求精
4. 下列对于软件测试的描述中正确的是( )。
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则
5. 在软件设计中,不属于过程设计工具的是( )。
A)PDL(过程设计语言)
B)PAD图
C)N-S图
D)DFD图
6. 下列选项中不属于软件生命周期开发阶段任务的是( )。
A)软件测试
B)概要设计
C)软件维护
D)详细设计
7. 关系数据库管理系统所管理的关系是( )。
A)若干个二维表
B)一个DBF文件
C)一个DBC文件
D)若干个DBC文件
8. 使用视图之前,应首先( )。
A)新建一个数据库
B)新建一个数据库表
C)打开相关的数据库
D)打开相关的数据表
9. 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和( )。
A)编码设计
B)测试阶段
C)运行阶段
D)物理设计
10. 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是( )。
A)并
B)交
C)投影
D)笛卡儿乘积
11. 算法中,对需要执行的每一步操作,必须给出清楚、严格的规定。这属于算法的( )。
A)正当性
B)可行性
C)确定性
D)有穷性
12. 以下选项中可作为C语言合法常量的是( )。
A)-80.
B)-080
C)-8e1.0
D)-80.0e
13. 以下选项中不合法的标识符是( )。
A)print
B)FOR
C)&a
D)_00
14. 设变量已正确定义并赋值,以下表达式正确的是( )。
A)x=y*5=x+z
B)int(15.8%5)
C)x=y+z+5,x+y
D)x=25%5.0
15. 有以下程序:
#include main()
{char c1='1',c2='2';
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
}
当运行时输入:a<回车>后,以下叙述正确的是( )。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
16. 下列定义变量的语句中错误的是( )。
A)int_int;
B)double int_;
C)char For;
D)float US$;
17. 已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是( )。
A)kk>='A'&&kk<='Z'
B)!(kk)='A'||kk<='Z')
C)(kk+32) >='a'&&(kk+32) <='z'
D)isalpha(kk)&&(kk<91)
18. 有以下程序;
main()
{int i;
for(i=0;i<3;i++)
switch(i)
{
case 0;printf(¨%d¨,i);
case 2;printf(¨%d¨,i);
default;printf(¨%d¨.i);
}
}
程序运行后的输出结果是( )。
A)022111
B)021021
C)000122
D)012
19. 在嵌套使用if语句时,C语言规定else总是( )。
A)和之前与其具有相同缩进位置的if配对
B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对
D)和之前的第一个if配对
20. 下面程序的运行结果是( )。
#includecs main()
{int i;
for(i=1;i<5;i++)
{if(i%3==0)
break;
printf(¨%d¨,i);}}
A)123
B)12
C)23
D)12345
21. 有以下程序;
main()
{int i,S=0;
for(i=1;i<10;i+=2)s+=i+1;
printf("%d\n",s);
}
程序执行后的输出结果是( )。
A)自然数1~9的累加和
B)自然数1-10的累加和
C)自然数1-9中奇数之和
D)自然数1-10中偶数之和
22. 设有以下定义:
int a=0;double b=1.25;char c='A';
#define d 2
则下面语句中错误的是( )。
A)a++;
B)b++;
C)c++;
D)d++;
23. 设有如下程序段:
char s[20]="Beijing",*p;
p=s;
执行P=S;语句后,以下叙述正确的是( )。
A)可以用*p表示s[0]
B)S数组中元素的个数和p所指字符串长度相等
C)s和p都是指针变量
D)数组s中的内容和指针变量p中的内容相同
24. 下面的函数调用语句中func函数的实参个数是( )。
func{f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)))};
A)3
B)4
C)5
D)8
25. 若要求定义具有10个inf型元素的一维数组a,则以下定义语句中错误的是( )。
A)#define N 10
int a[N];
B)#define n 5
int a [2*n];
C)int a [5+5];
D)int n=10,a[n];
26. 有以下程序:
#include void fun(int a,int b)
(int t;
f=a;a=b;b=t;
)
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;i<10;i+=2)fun(c[i],c[i+1]);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是( )。
A)1,2,3,4,5,6,7,8,9,0,
B)2,1,4,3,6,5,8,7,0,9,
C)0,9,8,7,6,5,4,3,2,1,
D)0,1,2,3,4,5,6,7,8,9,
27. 若有定义语句:int k [2][3],*pk[3];,则以下语句中正确的是( )。
A)pk=k;
B)pk[01=&k[1][2];
C)pk=k[0];
D)pk[1]=k;
28. 已有定义:int i,a[10],*p;,则合法的赋值语句是( )。
A)p=100;
B)p=a[5]
C)p=a[2]+2
D)p=a+2;
29. 有以下程序:
main()
{int i,S=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf(¨%d\n¨,s);
}
程序执行后的输出结果是( )。
A)45
B)20
C)25
D)36
30. 有以下程序:
main()
{ int i,t[][3]={9,8,7,5,5,4,3,2,1};
for(i=0;i<3;i++)printf("%d".t[2-i][i]);
}
程序执行后的输出结果是( )。
A)7 5 3
B)3 5 7
C)3 6 9
D)7 5 1
31. 有以下程序:
main()
{char a[7]="a0\0a0\0";int i,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是( )。
A)2 2
B)7 6
C)7 2
D)6 2
32. 有以下程序:
void f(int b[])
{int i;
for(i=2;i<6;i++)
b[i]*=2;
}
main[]
(int a[10]={1,2,3,4,5,6,7,8,9,10},i;
f(a);
for(i=0;i<10;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是( )。
A)1,2,3,4,5,6,7,8,9,10,
B)1,2,6,8,10,12,7,8,9,10,
C)1,2,3,4,10,12,14,16,9,10,
D)1,2,6,8,10,12,14,16,9,10,
33. 有以下程序:
#include int fun(int a.int b)
{if(b==0)return a;
else return(fun(--a,--b));
}
main()
{printf("%d\n",fun(4,2));}
程序的运行结果是( )。
A)1
B)2
C)3
D)4
34. 有以下程序:
int a=2;
int f(int*a)
{return(*a)++;}
main()
{int s=0;
{int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
执行后输出结果是( )。
A)10
B)9
C)7
D)8
35. 有以下程序:
#define f(x)x*x
main()
{int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出结果是( )。
A)28
B)22
C)16
D)4
36. 有以下程序:
#include struct st
{int x,y;}data[2]={1,10,2,20};
main()
{struct st*p=data;
printf("%d,",p->y);printf("%d\n",(++p)- >x);
}
程序的运行结果是( )。
A)10,1
B)20,1
C)10,2
D)20,2
37. 有以下程序:
typedef struct{int b,p;}A;
void f(A C] /*C是结构变量名*/
{int j;
c.b+=1;c.p+=2;
}
main()
{int i;
A a={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);
}
程序运行后的输出结果是( )。
A)2,3
B)2,4
C)1,4
D)1,2
38. 有以下程序:
#include #include typedef struct{char name[9];char sex;float score[2];}STU;
void f(STU a)
{STU b={"Zhao",'m',85.0,90.0};int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for (i=0;i<2;i++)a.score[i]=b.score[i];
}
main()
{
STU c={"Qian",'f',95,92};
f(c);
printf(1.%s,%c,%d,%d¨,c.name,c.sex,c.score[0],cscore[1]);
}
程序运行后的输出结果是( )。
A)Qian,f,95,92
B)Qian,m,85,90
C)Zhao,f,95,92
D)Zhao,m,85,90
39. 表达式0x13&0x17的值是( )。
A)0x17
B)0x13
C)0xf8
D)0xec
40. 若fp是指向某文件的指针,且已读到文件末尾,则表达式feof(fp)的返回值是( )。
A)EOF
B)-1
C)非零值
D)NULL
填空题
1. 按“先进后出”原则组织数据的数据结构是______。
2. 数据结构分为线性结构和非线性结构,带链的队列属于______。
3. 一棵二叉树第六层(根结点为第一层)的结点数最多为______个。
4. 在两种基本测试方法中,______测试的原则之一是保证所测模块中每一个独立路径至少要执行一次。
5. 在关系模型中,把数据看成是二维表,每一个二维表称为一个______。
6. 为表示关系x>y>z的c语言表达式是______。
7. 有以下程序:
main()
{ int a=3,b=4,C=5,d=2;
if(a>b)
if(b>c)
printf(¨%d¨,d++ +1);
else
printf(¨%d¨,++d+1);
printf(¨%d\n¨,d);
}
程序运行后的输出结果是______。
8. 以下程序运行后的输出结果是______。
main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
int i=0,j=0,s=0;
while(i++<4)
{ if(i==2||i==4)continue;
j=0;
do
{ s+=a[i][j];
j++;
}while(j<4);
}
printf(¨%d¨,s);}
9. 有以下程序:
main()
{ inf a[3][3],*p,i;
P=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d¨,a[1][i]);
}
程序运行后的输出结果是______。
10. 以下程序的输出结果是______。
#include main()
{int a[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
11. 有如下程序:
main()
{int i,a[][3]={2,7,9,15,3,6,1,5,10},b[3]={0};
for(i-0;i<3;i++)
{for(j=0;j<3;j++)b[i]+=a[i][j];
printf("%d"),b[1];}
}
程序执行后的输出结果是______。
12. 有以下程序:
void change(int k[]){k[0]=k[5];}
main()
{int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;
while(n<=4)(change(&x[n]);n++;}
for(n=0;n<5;n++)printf(¨%d¨,x[n]);
printf("\n");
程序运行后输出的结果是______。
13. 已知字母A的ASCII码为65。以下程序运行后的输出结果是______。
main()
{char a,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf(¨%d%c\n¨,a.b);
}
14. 下面程序的输出结果是______。
#include main()
{char c[9]={'T','h','a''\0,",'y','0','u'};
printf("%s\n",c);}
15. 有以下程序:
#include main()
{ int a[]={1,2,3,4},y,*p=&a[3];
--P;y=*p;printf("y=%d\n",y);
}
程序的运行结果是______。