计算机类 Linux认证 其他认证
2103期 第1期 期末考试(面试精选:C,LINUX,数据结构部分) 32 题 含答案 其他认证
1 单选题 1 / 32
下面关于i节点描述错误的是
A i节点和文件是一一对应的(每个文件都有唯一一个索引结点号与之对应,而对于一个索引结点号,却可以有多个文件名与之对应) B i节点能描述文件占用的块数 C i节点描述了文件大小和指向数据块的指针 D 通过i节点实现文件的逻辑结构和物理结构的转换
查看答案 A. i节点和文件是一一对应的(每个文件都有唯一一个索引结点号与之对应,而对于一个索引结点号,却可以有多个文件名与之对应)
2 单选题 2 / 32
假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下哪个通配符可以只挑选出其中的编号为1、3、5的文件?
A file_*.txt B flie_?.txt C file_[135].txt D file_[^135].txt
查看答案 C. file_[135].txt
3 单选题 3 / 32
Linux文件权限一共10位长度,分成四段,第三段表示的内容是
A 文件类型 B 文件所有者的权限 C 文件所有者所在组的权限 D 其他用户的权限
查看答案 C. 文件所有者所在组的权限
4 单选题 4 / 32
如果有定义:char **a[3][4], sizeof(a)的结果是:
A 4 B 12 C 48 D 64
查看答案 C. 48
5 单选题 5 / 32
有程序如下: int main(void) { unsignedchar a = 0xa5; unsignedchar b = ~a>> 4+1; printf("%d\n",b); return0; }其执行结果是
A 245 B 246 C 2 D 250
查看答案 D. 250
6 单选题 6 / 32
有程序如下: int main(void) { char*a[] = {"hello", "the", "world"}; char**pa = a; pa++; printf("%s\n",*pa); return0; }其执行结果是
A theworld B the C ello D elloworld
查看答案 B. the
7 单选题 7 / 32
在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )
A HL->next=P; P->=H->next; B p->next=HL; HL=p; C p->next=HL->next;HL->next=P D p->next=HL->next; p=HL;
查看答案 C. p->next=HL->next;HL->next=P
8 单选题 8 / 32
在32平台下,结构体data定义如下: struct data { char a; int b; short c; }; 则其大小为
A 8 B 10 C 12 D 16
查看答案 C. 12
9 单选题 9 / 32
阅读如下程序: int a=5; void show_val(void) { int b=3; static int c=2; a += 5; b += 5; c += 5; printf("%d,%d,%d\n",a,b,c); c = b; } int main(void) { int b=0; static int c; a += 3; show_val(); // show values b += 3; show_val (); // show values again return 0; } 则其执行结果是
A 13,0,13 B 18,8,13 C 13,8,13 D 18,8,0
查看答案 B. 18,8,13
10 单选题 10 / 32
以下程序输出的结果是 int main(void){ intb = 3; intarr[] = {6, 7, 8, 9, 10}; int*ptr = arr; *(ptr++)+= 123; printf("%d%d\n", *ptr, *(++ptr)); return0; }
A 8 8 B 130 8 C 7 7 D 7 8
查看答案 A. 8 8
11 单选题 11 / 32
二叉树中前序遍历的非递归算法是利用以下哪种数据结构
A 顺序表 B 队列 C 栈 D 树
查看答案 C. 栈
12 单选题 12 / 32
有以下代码: void sub(int x, int y, int *z) { *z = y–x; } int main(void) { int a, b, c; sub(10, 5, &a); sub(7, a, &b); sub(a, b, &c); printf(“%4d,%4d,%4d\n”,a,b,c); } 则其执行结果是
A 5,2,3 B -5,-12,-7 C -5,-12,-17 D 5,-2,-7
查看答案 B. -5,-12,-7
13 单选题 13 / 32
有一棵二叉树如下:
用中序遍历法遍历之,则遍历的次序是
A ABCDEFG B CBEGDFA C CBAEDGF D CEGDFBA
查看答案 B. CBEGDFA
14 单选题 14 / 32
设栈最大长度为3,入栈序列为1,2,3,4,5,6,,则不可能得出栈序列的是
A 1,2,3,4,5,6 B 2,1,3,4,5,6 C 3,4,2,1,5,6 D 4,3,2,1,5,6
查看答案 D. 4,3,2,1,5,6
15 单选题 15 / 32
假设执行语句S的时间为O(1),则执行下列程序段的时间为 for(i=1;i<=n;i++) for(j=i; j<=n; j++) S;
A O(n) B O(n2 ) C O(n*i) D O(n+1)
查看答案 B. O(n2 )
16 填空题 16 / 32
分析sizeof的结果(在32位平台下) int a[10] = {0}; sizeof(int) = __ sizeof(char*) = __ sizeof(char**) = __ sizeof(a) = __ sizeof(a[0]) = __
查看答案 17 主观题 17 / 32
一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H(key)= key % 13并用线性探查法解决冲突,请画出散列表(空单元用‘#’代表)
查看答案 18 未知题型 18 / 32
请举出const关键字在C语言中的三种用途。
查看答案 (暂无答案)
19 主观题 19 / 32
.写出在双向循环链表中,在指针p指向的节点之前插入一个q节点的算法。
查看答案 q->prior=p->prior; (p->prior)->next=q; q->next=p; p->prior=q;
20 主观题 20 / 32
Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子: #define dPS struct s * typedef struct s * tPS; 以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?
查看答案 无
21 主观题 21 / 32
全局变量可不可以定义在可被多个.c文件文件包含的头文件中?为什么?
查看答案 无
22 主观题 22 / 32
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
查看答案 无
23 主观题 23 / 32
队列和栈有什么区别?
查看答案 无
24 主观题 24 / 32
请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句
查看答案 无
25 主观题 25 / 32
如何输出源文件的文件名和目前执行行的行数?
查看答案 printf("the file name: %s\n",__FILE__); printf("the file name: %d\n",__LINE__);
26 主观题 26 / 32
程序片段一: void GetMemory(char *p, int nNum) { p = (char *)malloc(sizeof(char) * nNum); } void Test(void) { char *str = NULL; GetMemory(str, 100); strcpy(str, "hello"); }
查看答案 值传递不能改变str的值,,所以实参str的值仍然为NULL,不能进行引用
27 主观题 27 / 32
下面的代码会在哪一行崩溃,为什么? struct s { inti; int*p; }; int main(void) { structS s; int*p = &s.i; p[0]= 4; p[1]= 3; s.p= p; s.p[1]= 1; s.p[0]= 2; return0; }
查看答案 s.p 和s.p[1]指向同一个地方,s.p[1] = 1就让s.p指向内存地址为1的位置,s.p[0]=2相当于*((int*) 1)=2;
28 主观题 28 / 32
下面的代码片段的输出是什么,为什么? char *ptr; if ((ptr = (char *)malloc(0)) == NULL) puts("Got a null pointer"); else puts("Got a valid pointer");
查看答案 Got a valid pointer,malloc申请失败时,返回NULL,否则返回申请到的起始地址。
29 主观题 29 / 32
int main(void) { int a[5]={1,2,3,4,5}; int *ptr =(int *)(&a +1); pinrtf(“%d,%d”,*(a+1),*(ptr1-1)); }输出是什么,请简要说明原因
查看答案 无
30 简答题 30 / 32
将一句话中的单词倒置,标点符号不用倒换,例如”I come from Tianjin!”倒换之后变成“Tianjin ! from come I”
查看答案 无
31 简答题 31 / 32
编写程序把字符串转换成整型数 如:int atoi( const char * str)
查看答案 (暂无答案)
32 简答题 32 / 32
编写一个函数bubble_sort(),用冒泡法将数组int a[] = {49, 38, 65, 97, 76, 13, 27} 按升序排序。
查看答案 #define SIZE 7 void show(int num[]) { int i; printf("\t"); for(i=SIZE; i>0; --i) { printf("%4d", num[SIZE-i]); } printf("\n"); return; } void bubble_sort(int num[]) { int i, j; for(i=SIZE; i>0; --i) { int flag = 0; for(j=0; j<i-1; j++) { int tmp; if(num[j] > num[j+1]) { tmp = num[j]; num[j] = num[j+1]; num[j+1] = tmp; flag = 1; } } show(num); if(flag == 0) //nerver been changed break; } return; } int main(void) { /* original data */ int array[SIZE] = {49, 38, 65, 97, 76, 13, 27}; printf("the original numbers are:\n"); show(array); /* bubble sorting */ printf("steps of bubble sorting:\n"); bubble_sort(array); return 0; }