一、选择题(每题2分,共计70分)
1.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及
A)数据的存储结构
B)计算方法
C)数据映象
D)逻辑存储
2.串的长度是
A)串中不同字符的个数
B)串中不同字母的个数
C)串中所含字符的个数且字符个数大于零
D)串中所含字符的个数
3.在计算机中,算法是指
A)加工方法
B)解题方案的准确而完整的描述
C)排序方法
D)查询方法
4.以下不属于对象的基本特点的是
A)分类性
B)多态性
C)继承性
D)封装性
5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作
A)软件投机
B)软件危机
C)软件工程
D)软件产生
6.下面不属于软件设计原则的是
A)抽象
B)模块化
C)自底向上
D)信息隐蔽
7.开发大型软件时,产生困难的根本原因是
A)大系统的复杂性
B)人员知识不足
C)客观世界千变万化
D)时间紧、任务重
8.下列SQL语句中,用于修改表结构的是
A)ALTER
B)CREATE
C)UPDATE
D)INSERT
9.数据库、数据库系统和数据库管理系统之间的关系是
A)数据库包括数据库系统和数据库管理系统
B)数据库系统包括数据库和数据库管理系统
C)数据库管理系统包括数据库和数据库系统
D)3者没有明显的包含关系
10.关系模型允许定义3类数据约束,下列不属于数据约束的是
A)实体完整性约束
B)参照完整性约束
C)域完整性约束
D)用户自定义的完整性约束
11.下列用于printf函数的控制字符常量中,代表"竖向跳格"的转义字符常量是
A)\b
B)\t
C)\v
D)\f
12.以下程序的输出结果是
main()
{ int a=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A)30
B)31
C)32
D)33
13.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是
A)n=(n*100+0.5)/100.0
B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0
D)n=(n/100+0.5)*100.0
14.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A)x&&y
B)x<=y
C)x||++y&&y-z
D)!(x
15.若变量已正确说明为int类型,要通过语句scanf("%d %d %d ",&a,&b,&c);给a赋值3,b赋值5,c赋值8,不正确的输入形式是
A)3
5
8
B)3,5,8
C)3
58
D)35
8
16.设有程序段
int k=10;
while(k=0)k=k-1;
则下面描述中正确的是
A)while循环执行10次
B)循环是无限循环
C)循环体语句一次也不执行
D)循环体语句执行一次
17.对表达式for(表达式1; ;表达式3)可理解为
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
18.以下程序的输出结果是
main()
{ int a,i;a=0;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
} printf("%d\n",a);
}
A)31
B)13
C)10
D)20
19.若有如下语句
int x=3;
do{ printf("%d\n",x-=2);}
while(!(--x));
则上面程序段
A)输出的是1
B)输出的是1和-2
C)输出的是3和0
D)是死循环
20.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的语句是
#include
main()
{ int a,b,t;
scanf("%d%d",&a,&b);
while()
{ f(a>b)
{ =a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A)!a=b
B)a!=b
C)a==b
D)a=b
21.有以下程序
void fun(int a,int b,int c)
{a=456,b=567,c=678;}
main()
{ int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出结果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
22.若有说明:int a[][4]={0,0};则下面不正确的叙述是
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
23.有以下程序
main()
{ char a[]={ ′a′,′b′,′c′,′d′, ′e′, ′f′, ′g′,′h′,′\0′}; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d,%d\b",i,j);
}
程序运行后的输出结果是
A)9,9
B)8,9
C)1,8
D)9,8
24.已知学生记录描述为
struct student
{ int no;
char name[20],sex;
struct
{ int year,month,day;
} birth;
};
struct student s;
设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是
A)year=1984;month=11;day=12;
B)s.year=1984;s.month=11;s.day=12;
C)birth.year=1984;birth.month=11;birth.day=12;
D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;
25.以下程序的运行结果是
#define MIN(x,y)(x)<(y)?(x):(y)
main()
{ int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10
B)15
C)100
D)150