一、选择题
1,下面关于关键字的描述及使用中,错误的是( )
A, volatile可用于定义多线程应用中的共享变量 B,const可用于定义全局变量
C,一个变量既可以是const,同时也是volatitle D,register static int i=0
答案:B
int b=i,volatile 指出 i 是随时可能发生变化的,每次使用它的时候必须从 i的地址中读取,因而编译器生成的汇编代码会重新从i的地址读取数据放在 b 中。而优化做法是,由于编译器发现两次从 i读数据的代码之间的代码没有对 i 进行过操作,它会自动把上次读的数据放在 b 中。而不是重新从 i 里面读。这样以来,如果 i是一个寄存器变量或者表示一个端口数据就容易出错,所以说 volatile 可以保证对特殊地址的稳定访问。
register变量是直接放在寄存器中的,这样就大大提高了变量存取的速度,但是静态变量不能定义为register
2,假设有10个记录,它的初始关键字序列为{55,2,6,4,32,12,9,73,26,37},用插入排序对改关键字序列排序,则第5次排序结果为()
答案是2,4,6,12,32,55,9,73,26,37
插入排序概念:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。
插入排序包括:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。
这里只讲下直接插入排序。先附上一张图
再附上C++代码:
void zjinsert (int arr[],int n)
{
int i,j;temp;
for (i=1;i<n;i++)
{
temp = arr[i];
j=i-1;
while (j>-1 &&temp<arr[j])
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=temp;
}
}
3,中断响应时间是指()
A,从中断处理开始到中断处理结束 B,从发出中断请求到中断处理结束
C,从发出中断请求到进入中断处理 D,从进入中断处理到中断处理结束
答案:C
4,ftp及http协议使用的默认端口号是()
答案是21 8080
FTP协议代理服务器常用端口号:21
HTTP协议代理服务器常用端口号:80/8080/3128/8081/9080
5,SQL语言具有()功能
A,关系规范化 数据操纵 数据控制 B,数据定义 数据操纵 数据控制
C,数据