计算机类Linux认证其他认证

2103期 第1期 期末考试(面试精选:C,LINUX,数据结构部分)

32 题含答案其他认证
共 32 题返回本类
1单选题1 / 32
下面关于i节点描述错误的是 
查看答案
A. i节点和文件是一一对应的(每个文件都有唯一一个索引结点号与之对应,而对于一个索引结点号,却可以有多个文件名与之对应)
2单选题2 / 32
假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下哪个通配符可以只挑选出其中的编号为1、3、5的文件?
查看答案
C. file_[135].txt
3单选题3 / 32
Linux文件权限一共10位长度,分成四段,第三段表示的内容是
查看答案
C. 文件所有者所在组的权限
5单选题5 / 32
有程序如下:
 int main(void)
 {
      unsignedchar a = 0xa5;
      unsignedchar b = ~a>> 4+1;
           printf("%d\n",b);
      return0;
 }其执行结果是
查看答案
D. 250
6单选题6 / 32
有程序如下:
 int main(void) {
      char*a[] = {"hello", "the", "world"};
      char**pa = a;     pa++;     printf("%s\n",*pa);
      return0;
 }其执行结果是
查看答案
B. the
7单选题7 / 32
在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行(   )
查看答案
C. p->next=HL->next;HL->next=P
8单选题8 / 32
在32平台下,结构体data定义如下:
struct data
{
    char a;
    int b;
    short c;
};
则其大小为
查看答案
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; 
}
则其执行结果是  
查看答案
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
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);
}
则其执行结果是
查看答案
B. -5,-12,-7
13单选题13 / 32
有一棵二叉树如下:
  
用中序遍历法遍历之,则遍历的次序是
查看答案
B. CBEGDFA
14单选题14 / 32
设栈最大长度为3,入栈序列为1,2,3,4,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;
查看答案
B. O(n2)
16填空题16 / 32
分析sizeof的结果(在32位平台下)                    
int a[10] = {0};
sizeof(int)    = __ 
sizeof(char*)  = __ 
sizeof(char**) = __ 
sizeof(a)      = __ 
sizeof(a[0])   = __ 
查看答案
  1. 4
  2. 4
  3. 4
  4. 40
  5. 4
17主观题17 / 32
一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT[0..12],散列函数为H(key)= key % 13并用线性探查法解决冲突,请画出散列表(空单元用‘#’代表)
查看答案
 
78 1503 57452031 233612
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指针。哪种方法更好呢?(如果有的话)为什么?
查看答案
无
22主观题22 / 32
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
查看答案
无
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”
查看答案
无
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;
}
← 上一卷下一卷 →