【一】问答题(82分)
-
引用和指针的区别?(4分)
-
C++程序有哪几种内存区域?(4分)
-
阐述C++中多态的实现机制?(4分)
-
什么是函数的调用约定?列举三种调用约定的方式(4分)
-
assert宏有什么作用?大量使用assert会对编译后的release版程序大小有影响吗?(4分)
-
阐述windows的消息机制?SendMessage和PostMessage的区别?(4分)
-
MFC如何实现消息映射的?(4分)
-
CObject的作用是什么?CCmdTarget呢?(4分)
-
什么是动态创建?阐述MFC的动态创建机制?(4分)
-
创建线程的API函数是什么?假设hThread是个线程句柄,下面这条语句的作用是什么?
WaitForSingleObject(hThread, INFINITE); (4分)
-
列出4种线程之间同步的方式?比较它们之间主要异同点?(4分)
-
TCP和UDP协议的区别?基于TCP的数据传输过程中,发送端在计时器的时限内未受到接收方的确认,那么原因可能是什么?(4分)
-
arp协议有什么作用?什么是arp高速缓存?(4分)
-
基于流的协议传输数据是无边界保护的,基于数据报的协议是有边界保护的,怎么理解?(4分)
-
路由器和交换机的区别?(2分)
-
IP层的作用是什么?IP协议数据报首部固定长度是多少字节?(4分)
-
子网掩码的作用是什么?主机A的IP地址是128.30.33.138,子网掩码是255.255.255.128,那么主机A所在的子网网络地址是多少?(4分)
-
数据库的触发器是什么?SQL-SERVER中按照触发的时机不同分成哪两种触发器?(4分)
-
有三张表 学生信息表(Student):学号(S#),姓名(SNAME),性别(SEX)
课程表(Course):课程编号(C#),课程名称(CNAME)
选课表(SC):学号(S#),课程编号(C#),成绩(SCORE)
-
请指出每张表的主键和选课表的外键?(2分)
-
写出SQL语句输出没有选修课程的学生的学号,姓名(最好使用子查询)(2分)
-
写出SQL语句输出各科成绩平均分高于60分的学生的学号,平均分(2分)
-
写一条linux shell命令将列出当前目录下所有文件的信息并保存到文件fileInfo.data中。(2分)
-
写一条linux shell命令将当前目录下的文件test的权限改成所有用户都可以读写以及执行。(2分)
-
写一条linux shell命令查找当前目录下的文件test中包含linux字符串的所有行。(2分)
【二】编程题(10分)
-
已知链表的节点类型
struct node
{
int data; //数据域
node * next; //指针域
};
表示链表的结构体类型为:
struct list
{
node* pHead //头节点
};
请实现如下原型的反转(reverse)一个链表的功能函数
void Reverse_List(list* pList);
-
已知二维数组int a[5][8],请用一个一层循环初始化数组所有元素值为0
【三】下面程序或语句有什么错误,并解释为什么?(8分)
1.实现交换两个整数的函数
void swap(int *pa, int *pb)
{
int* temp;
*temp = *pa;
*pa = *pb;
*pb = *temp;
}
2.
void main()
{
int a[3][3] =
{
{1, 1},
{1, 1},
{1, 1}
};
for (int i = 0; i<3; i++)
for (int j=0; j<3; j++)
a[j][i] = i*j;
}