C++部分(50分)
1. 下列程序执行后的输出结果是 B(4分)
main()
{ int a[3][3], *p,i; p=&a[0][0];
for(i=0; i<9; i++) p[i]=i+1; printf(―%d \\n‖,a[1][2]); }
A) 3 B)6 C) 9 D) 随机数
2. 设有以下说明语句(4分) struct ex
{ int x ; float y; char z ;} example; 则下面的叙述中不正确的是 B
A) struct是结构体类型的关键字 B) example是结构体类型名C) x,y,z都是结构体成员名 D) struct ex是结构体类型
3. 以下程序运行后,输出结果是 C(4分) main()
{ char *s=‖abcde‖; s+=2;
printf(―%ld\\n‖,s); }
A) cde B) 字符c的ASCII码值 C) 字符c的地址
4. 什么函数不能声明为虚函数?(6分,每点3分) 全局函数和静态函数
出错 D)
5. 引用与指针有什么区别?(12分,每点4分)
1) 当引用被创建时,它必须被初始化。(指针则可以在任何时候被初始化。)
2) 一旦一个引用被初始化为指向一个对象,它就不能被改变为对另一个对象的引用。(指针则可以在任何时候指向另一个对象。)
3) 不可能有N U L L引用。必须确保引用是和一块合法的存储单元关连。
6. 设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有两个普通成员函数setdata()和disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。(20分) #include
void setdata(int n,char na[],int d) {
no=n; deg=d; strcpy(name,na); sum+=d; num++; }
static double avg() {
return sum/num; }
void disp() {
printf(‖ %-5d%-8s=\\n‖,no,name,deg); } };
int Stud::sum=0; int Stud::num=0; void main() {
Stud st[N]; int i,n,d; char na[10]; for(i=0;i printf(―输入学号 姓名 成绩:‖); scanf(―%d%s%d‖,&n,na,&d); st[i].setdata(n,na,d); } printf(―输出数据\\n‖); printf(‖ 学号 姓名 成绩\\n‖); for(i=0;i printf(‖ 平均分=%g\\n\\n‖,Stud::avg()); } 公共部分(50分) 1:当数据库损坏时可以利用_____和______有效的恢复数据库 转储,日志(4分) 2:数据库系统的核心是_______数据库管理系统或DBMS(2分) 3:#include 4:编写一个宏,输入2个参数,输出结果为两个参数的积(6分) 考察定义宏时,是否添加 括号,分号等。 #define TIMES(a,b) ((a)*(b)) 5:写出进程的主要状态。(12分,每点2分) 运行态(running),就绪态(ready),等待态(blocked),挂起(suspend),新建态(new),终止态(exit) 6:简要说明电路交换和存储器转发交换这两面种交换方式,并加以比较。(12分,每点6分) 电路交换是一种直接的交换方式,它为一对需要进行通信的装置(站)之间提供一条临时的专用通道,即提供一条专用的传输通道,即可是物理通道又可是逻辑通道(使用时分或频分复用技术)。这条通道是由节点内部电路对节点间传输路径经过适当选择、连接而完成的,由多个节点和多条节点间传输路径组成的链路,例如,目前公用电话网广泛使用的交换方式是电路交换。 存储转发交换方式又可以分为报文存储转发交换与报文分组存储转发交换,报文分组存储转发交换方式又可以分为数据报与虚电路方式。分组交换属于―存储转发‖交换方式,但它不像报文交换那样以报文为单位进行交换、传输,而是以更短的、标准的―报文分组‖(packet)为单位进行交换传输。分组经过通信网络到达终点有2种方法:虚电路和数据报。 与电路交换相比,报文交换方式不要求交换网为通信双方预先建立,条专用的数据通路,因此就不存在建立电路和拆除电路的过程。 7:主键和唯一索引的区别(8分,每点2分) A 主键顺序为数据的物理顺序 B 主键不能空,唯一索引可以为空 C 主键每个表只能有一个,唯一索引可以多个 D 主键:默认将是聚簇索引 唯一索引: 默认将是非聚簇索引 C++部分(50分) 1. 下列程序执行后的输出结果是 B(4分) main() { int a[3][3], *p,i; p=&a[0][0]; for(i=0; i<9; i++) p[i]=i+1; printf(―%d \\n‖,a[1][2]); } A) 3 B)6 C) 9 D) 随机数 2. 设有以下说明语句 B(4分) struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是 A) struct是结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型