3。typedef unsigned char BYTE
int examply_fun(BYTE gt_len; BYTE *gt_code)
{
BYTE *gt_buf;
gt_buf=(BYTE *)MALLOC(Max_GT_Length);
......
if(gt_len>Max_GT_Length)
{
return GT_Length_ERROR;
}
.......
}
答案:要释放内存
问答题:
1.IP Phone的原理是什么?
答案:IPV6
2.TCP/IP通信建立的过程怎样,端口有什么作用?
答案:三次握手,确定是哪个应用程序使用该协议
1. 用宏定义写出swap(x,y)
#define swap(x, y)
x $denghao$ x + y;
y $denghao$ x - y;
x $denghao$ x - y;
2.数组a[n],存放了1至n-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(n)函数原型:
int do_dup(int a[],int n)
3 一语句实现x是否为2的若干次幂的判断
int i $denghao$ 512;
cout << boolalpha << ((i & (i - 1)) ? false : true) << endl;
4.unsigned int intvert(unsigned int x,int p,int n)实现对x的进行转换,p为起始转化位,n为需要转换的长度,假设起始点在右边.如x$denghao$0b0001 0001,p$denghao$4,n$denghao$3转换后x$denghao$0b0110 0001
unsigned int intvert(unsigned int x,int p,int n){
unsigned int _t $denghao$ 0;
unsigned int _a $denghao$ 1;
for(int i $denghao$ 0; i < n; ++i){
_t |$denghao$ _a;
_a $denghao$ _a << 1;
}
_t $denghao$ _t << p;
x ^$denghao$ _t;
return x;
}
一. 选择题
1. 在关系数据库德询问优化中,事先处理文件,如排序、建立索引的目的是:()
A.优化表达式 B。减少中间结束 C。扩大缓冲数据 D。 减少扫描文件的时间
2.进程是操作系统中的一个重要概念。进程是一个具有一定独立功能的程序在某个数据集合上的一次(A);进程是一个(B)的概念,而程序是一个(C)的概念;进程的最基本状态有(D)。在一个单处理机,若有6个用户进程,在非管态的某一时刻,处于就绪状态的用户进程最多有(E)个。
供选择的答案
A: (1)单独操作 (2)关联操作 (3) 进行活动 (4)并发活动
B:(1)静态 (2)动态 (3)逻辑 (4) 物
C:(1)物理 (2)逻辑 (3)动态 (4)静态
D:(1)就绪、运行、隐蔽 (2)停止、就绪、运行 (3)运行、就绪、阻塞
(4)就绪、车消、运行
E: (1) 5 (2) 6 (3) 1 (4) 4
3. 有以下几个条件成立:( )
(1)如果小王是工人 ,那么小张不是医生
(2)或者小李是工人,或者小王是工人
(3)如果小张不是医生,那么小赵不是学生
(4)或者小赵是学生,或者小周不是经理
以下哪项如果为真,可得出小李是工人的结论?
(A) 小周不是经理
(B) 小王是工人
(C) 小赵不是学生
(D) 小周是经理
二.简答题
1.下面列举的是常用的排序方法:直接插入排序,二分法插入排序,起泡排序,快速排序,直接选择排序,堆排序,归并排序。试问,哪些排序方法是稳定的?
答:(期待您的高见)
2. 对序列(49,38,65,97,76,27,13,50)采用快速排序法进行排序,以序列的第一个元素为基准元素得到的划分结果是什么?
答:
3. 请仔细阅读下面的SQL,判断其是否有错误,如果有错误,请说明错误在哪里。
Select id , name ,age ,count (*)
From table_name
Where name like %s%
Group by name
4. 请用面向对象分析的方法,分析我用电脑写程序这句话的对象、属性和方法。
三 问答题
电影《达芬奇密码》中讲到了一个非常有意思的数字序列---菲波拉契序列。请用任意计算机语言实现一段小程序,该程序在屏幕上输出1到1000之间的非波拉契序列。
非波拉契序列:1,1,2,3,5,8,13,21,34,……
要求:用程序描述 核心算法。语言不限。
1. C++中如何阻止一个类被实例化?
2. 一般在什么时候构造函数被声明成private呢?
3. 什么时候编译器会生成默认的copy constructor呢?
4. 如果你已经写了一个构造函数,编译器还会生成copy constructor吗?
5. struct和class有什么区别?
答:默认的访问级别不同,struct是public,class是private
6. 没有别的不同了吗?
7. 为什么说如果一个类作为基类,则它的析构函数要声明成virtual的?
8. inline的函数和#define有什么区别?
9. inline是什么意思?
10. 那你说说什么时候会真的被inline,什么时候不会呢?
11. 如果把一个类的成员函数写在类的声明中是什么意思?
12. public继承和private继承有什么架构上的区别?
13. 在多继承的时候,如果一个类继承同时继承自class A和class B,而class A和
B中都有一个函数叫foo(),如何明确的在子类中指出override哪个父类的foo()?
14. 虚拟继承的语法是什么?
15. 部分模版特例化
1.什么是平衡二叉树?编写一个删除平衡二叉树的程序?
2.写一个程序,求有向有权图两点之间的最小权?
3.根据你的理解,写出Cstring类的构造函数和析构函数?
4.使用C语言实现对ini文件的访问,使程序可以对int,double,字符串类进行读写。
5.n×n个方格(n为任意整数),定义若两个格有公共边则称两个格相邻。现将 个格中的N个格子图黑,使每个格子都与黑格子相邻。试编程,使N最小。
1
#define pi 3.14
#define Area(R) pi*R*R
main()
{
int r1=5,r2=2;
double s=0;
s=Area(r1-r2);
printf("The area is %f",s);
}
求结果
2
函数 int compare(int a,int b),定义为该函数的函数指针P:为_______________
3
#include
void sub(char*s,int num)
{
int i ,j=num;
char t;
while(j-->1)
{
for(i=0;i{
if(s[i]{
t=s[i];
s[i]=s[i+1];
s[i+1]=t;
}
}
}
}
main()
{
char*s="CEAeded";
sub(s,6);
printf("%s ",s)
}
求结果
4
交换两个变量的值,不使用第三个变量,即a=3,b=5交换
后b=3,a=5
unsigned char a=3,b=5;
5
#define N 100
void GetMemory1(char*p)
{
p=(char*)malloc(sizeof(char)*N);
strcpy(p,"Have a good day!");
}
char*GetMemory2(void)
{
char p[]="Have a good day!";
return p;
}
void main(void)
{
char*str1=NULL,*str2=NULL;
GetMemory1(str1);
GetMemory2(str2);
printf(" str1:%s",str1);
printf(" str2:%s",str2);
6
构造N个结点的单链表返回链表头指针,要求链表中各结点顺序
与结点数据输入顺序相反,例如输入1,2,3,4,5,形成的链表为
head->5 4 3 2 1 ,补充程序
#define N 10
typedef struct Node
{
int data;
struct Node*next;
}NODE;
int Get_Data(int i);定义省略
Node*Create_u()
{
int i;
NODE*p,*Head=NULL;
for(i=0;i{
VP=New NODE;
P->Data=Get_Data(i);
________________;
________________;
}
return Head;
}
7
N个结点链表,每个结点中存放一个字符,判断链表存放的字符是否
中心对称,即a b c c b a或a b c b a,补充程序
typedef struct Node
{
int data;
struct Node*next;
}NODE;
bool Is_symmeic(NODE*head,*int n)
{
char D[N];
int i,d;
__________;
for(i=0;i{
D[i]=head->data;
head=head->next;
}
if(__________)
{
head=head->next;
}
while(head)
{
_______________;
if(D[i]!=head->data)
{
return false;
}
head=head->next;
}
return true;
}
8
str中只含有大写和小写字母函数change_move(char*str)将字符串中大写改成*并
移到前面小写后返回*的个数
如AabBdcYY改为*****abd,返回5
int chang_move(char*str)
{
int len,i,curstr=-1;
len=strlen(str);
for(i=len-1;i>=0;i--)
{
if(str[i]>='A'&&str[i]<='Z')
{
str[i]='*';
if(cursor==-1)
{
cursor=i;
}
else if(cursor>i)
{
_____________;
str[i]='*';
_____________;
}
}
return____________;
}
9
求两个字符串的第一个公共子串,并返回该子串
如:"a b c d e f g e h i" "a a c d e f * * g e h i"
第一个为"c d e f";不许用strcmp()
char*Maxf(char*str1,char*str2)
{
}