一、选择题
1.在大多数Linux发行版中,以下哪个属于块设备(block devices):( )
A.串行口 B.硬盘 C.虚拟终端 D.打印机
2.在bash中,export命令的作用是:( )
A.在子shell中运行命令
B.使在子shell中可以使用命令历史记录
C.为其他应用程序设置环境变量
D.提供NFS分区给网络中的其他系统使用
3.一台主机要实现通过局域网与另一个局域网通信,需要做的工作是:( )
A.配置域名服务器、
B.定义一条本机指向所在网络的路由
C.定义一条本机指向所在网络网关的路由
D.定义一条本机指向目标网络网关的路由
4.下列关于链接描述,错误的是:( )
A.硬链接就是让链接文件的i节点号指向被链接文件的i节点
B.硬链接和符号链接都是产生一个新的i节点
C.链接分为硬链接和符号链接
D.硬链接不能链接目录文件
5.DNS域名系统主要负责主机名____之间的解析:( )
A.IP地址 B.MAC地址 C.网络地址 D.主机别名
6.使用socket编程时,Server端进行socket调用的正确序列是:( )
A.socket,listen,bind,accept
B.socket,bind,listen,accept
C.socket,accept,bind,listen
D.listen,bind,socket,accept
7.下列关于动态联编的描述中,错误的是:( )
A.动态联编是以虚函数为基础
B.动态联编是运行时确定所调用的函数代码的
C.动态联编调用函数操作是指向对象的指针或对象引用
D.动态联编是编译时确定操作函数的
8.在C语言中,以下说法正确的是:( )
A.普通实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元
D.形参在函数调用前它就占用存储单元
二、简答题
1.什么是C语言的地址对齐:
2.用户进程间通信主要哪几种方式:
3.头文件中的ifndef/define/endif有什么作用:
4.描述Linux的开机到登陆界面的启动过程:
5.以下为Windows NT下的32位C程序,请计算sizeof的值:
char str[] = "hello";
char *p = str;
int n = 10;
请计算:
sizeof(str) = ____
sizeof(p) = ____
sizeof(n) = ____
6.请描述postMessage和sendMessage的区别:
三、分析题
1.请分析以下函数实现什么功能:
long Divisor(long dwFirst, long dwSecond)
{
if(dwFirst < dwSecond)
{
long temp = dwFirst;
dwFirst = dwSecond;
dwSecond = temp;
}
if(dwSecond == 0)
{
return dwFirst;
}
if(dwFirst % 2 == 0)
{
if(dwSecond % 2 == 0)
{
return (Divisor(dwFirst >> 1, dwSecond >> 1) << 1);
}
else
{
return Divisor(dwFirst >> 1, dwSecond);
}
}
else
{
if(dwSecond % 2 == 0)
{
return Divisor(dwFirst, dwSecond >> 1);
}
else
{
return Divisor(dwSecond, dwFirst - dwSecond);
}
}
}
2.请分析以下函数调用存在哪些问题:
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
四、软件编程
1.已知strcpy函数的原型是char *strcpy(char *strDest, char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。不调用C++/C的字符串库函数,
请编写strcpy实现体。
1.在大多数Linux发行版中,以下哪个属于块设备(block devices):( )
A.串行口 B.硬盘 C.虚拟终端 D.打印机
2.在bash中,export命令的作用是:( )
A.在子shell中运行命令
B.使在子shell中可以使用命令历史记录
C.为其他应用程序设置环境变量
D.提供NFS分区给网络中的其他系统使用
3.一台主机要实现通过局域网与另一个局域网通信,需要做的工作是:( )
A.配置域名服务器、
B.定义一条本机指向所在网络的路由
C.定义一条本机指向所在网络网关的路由
D.定义一条本机指向目标网络网关的路由
4.下列关于链接描述,错误的是:( )
A.硬链接就是让链接文件的i节点号指向被链接文件的i节点
B.硬链接和符号链接都是产生一个新的i节点
C.链接分为硬链接和符号链接
D.硬链接不能链接目录文件
5.DNS域名系统主要负责主机名____之间的解析:( )
A.IP地址 B.MAC地址 C.网络地址 D.主机别名
6.使用socket编程时,Server端进行socket调用的正确序列是:( )
A.socket,listen,bind,accept
B.socket,bind,listen,accept
C.socket,accept,bind,listen
D.listen,bind,socket,accept
7.下列关于动态联编的描述中,错误的是:( )
A.动态联编是以虚函数为基础
B.动态联编是运行时确定所调用的函数代码的
C.动态联编调用函数操作是指向对象的指针或对象引用
D.动态联编是编译时确定操作函数的
8.在C语言中,以下说法正确的是:( )
A.普通实参和与其对应的形参各占用独立的存储单元
B.实参和与其对应的形参共占用一个存储单元
C.只有当实参和与其对应的形参同名时才共占用存储单元
D.形参在函数调用前它就占用存储单元
二、简答题
1.什么是C语言的地址对齐:
2.用户进程间通信主要哪几种方式:
3.头文件中的ifndef/define/endif有什么作用:
4.描述Linux的开机到登陆界面的启动过程:
5.以下为Windows NT下的32位C程序,请计算sizeof的值:
char str[] = "hello";
char *p = str;
int n = 10;
请计算:
sizeof(str) = ____
sizeof(p) = ____
sizeof(n) = ____
6.请描述postMessage和sendMessage的区别:
三、分析题
1.请分析以下函数实现什么功能:
long Divisor(long dwFirst, long dwSecond)
{
if(dwFirst < dwSecond)
{
long temp = dwFirst;
dwFirst = dwSecond;
dwSecond = temp;
}
if(dwSecond == 0)
{
return dwFirst;
}
if(dwFirst % 2 == 0)
{
if(dwSecond % 2 == 0)
{
return (Divisor(dwFirst >> 1, dwSecond >> 1) << 1);
}
else
{
return Divisor(dwFirst >> 1, dwSecond);
}
}
else
{
if(dwSecond % 2 == 0)
{
return Divisor(dwFirst, dwSecond >> 1);
}
else
{
return Divisor(dwSecond, dwFirst - dwSecond);
}
}
}
2.请分析以下函数调用存在哪些问题:
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
四、软件编程
1.已知strcpy函数的原型是char *strcpy(char *strDest, char *strSrc);
其中strDest是目的字符串,strSrc是源字符串。不调用C++/C的字符串库函数,
请编写strcpy实现体。