LinuxC测试题

LinuxC考试题

一、选择题(每题2分,20题,共40分)

1.在 Shell 环境中的预定义变量中,以下( )用于表示执行上一条命令后的返回状态。  

A.$!   B.$?  C.$$   D.$0

2.下列哪些命令可以测试网络通不通?(  )  

A.ping     B.netstat    C.trace   D.route

3.下面不是对Linux操作系统特点描述的是()

A.良好的可移植性           B.稳定性低

C.多用户                  D.多任务

4.目前流行的两种软件包管理机制,Debian使用()软件包

A.zip   B.rpm   C.tar   D.deb

5.将光盘/dev/hdc卸载的命令是?(  )

A.umount /mnt/cdrom /dev/hdc

B.unmount /dev/hdc

C.umount /dev/hdc

D.unmount /mnt/cdrom /dev/hdc

6.下面代码中p和"hello,world"存储在内存哪个区域? (  )

int main()

{

     char *p = "hello,world";

     return 0;

}

A.栈,堆 B.栈,栈 C.堆,只读存储区 D.栈,只读存储区

7.下列关于makefile描述正确的有?(  )

A.makefile文件保存了编译器和连接器的参数选项

B.主要包含了五个东西:显式规则、隐晦规则、变量定义、指令和注释

C.默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件, 找到了解释这个文件

D.在Makefile不可以使用include关键字把别的Makefile包含进来

8.下述程序第二次的输出结果是( )

int main(){

    extern int a;

    int b=0;

    static int c;

    a+=3;

    other();

    b+=3;

    other();}

    int a=5;

    void other(void){

    int b=3;

    static int c=2;

    a+=5;b+=5;c+=5;

    printf(“%d,%d,%d”,a,b,c);

    c=b;}

A.13,0,13            B.18,8,13

C.13,8,13            D.18,8,0

9.以下程序的运行结果为(    )。

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

10.下面的代码输出是()

void foo(void){

unsigned int a=6; int b=-20;

(a+b>6)?puts(">6"):puts("<6");

A.>6  B.<6

11.在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上传递给形参的是( ) 。

A.数组首地址 B.数组的第一个元素值

C.数组中全部元素的值 D.数组元素的个数

12.int *p[4] 与选择项中的说明 (  ) 等价

A.int p[4] B.int *p C.int *(p[4]) D.int (*p)[4]

13.在给定文件中查找与设定条件相符字符串的

命令为()

A.grep  B.gzip

c.find   D.sort

14.在一个C源程序文件中,若要定义一个只允许

在本源文件中所有函数使用的全局变量,则该变

量需要使用的存储类别是()

A.extern B.static C.auto D.register

15.下面这段C程序的输出是(  )

void foo(int b[][3])

{

++b;

b[1][1] = 9;

}

void main()

{

int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

foo(a);

printf("%d",a[2][1]);

}

A.8 B.9 C.7 D.以上均不对

16.在32为系统下小端系统,并4字节对齐的条件

union u_union

{

  unsigned int iiar

  char cvar;

  short svar;

}uu;

uu.iiar=0x12345678?

uu.cvar=()

A.0x12345678

B.0x5678

C.0x12

D.0x78

17.以下程序的输出结果是(  )

#include <stdio.h>

int main()

{

char str[] = "ABCD", *p = str;

printf("%d\n",*(p+4));

return 0;

}

A. 68 B.0 C.字符'D'的地址 D.不确定的值

18.由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。

下面哪个阶段可以发现被调用的函数未定义?(  )  

A.预处理 B.编译 C.链接 D.执行

19.若要将当前目录中的myfile.txt文件压缩成

myfile.txt.tar.gz,则实现的命令为()

A.tar -cvf myfile.txt myfile.txt.tar.gz

B.tar -zcvf myfile.txt myfile.txt.tar.gz

C.tar -zcvf myfile.txt.tar.gz myfile.txt

D.tar -cvf myfile.txt.tar.gz myfile.txt

20.以下关于头文件,说法正确的是(  )  

A.#include<filename.h>,编译器寻找头文件时,会从当前编译的源文件所在的目录去找

B.#include“filename.h”,编译器寻找头文件时,会从指定的目录去找

C.多个源文件同时用到的全局整数变量,它的声明和定义都放在头文件中,是好的编程习惯

D.在大型项目开发中,把所有自定义的数据类型、全局变量、函数声明都放在一个头文件中,

  各个源文件都只需要包含这个头文件即可,省去了要写很多#include语句的麻烦,是好的编程习惯。

二、代码输出题:(每题3分,5题,共15分)

1

#include <stdio.h>

int main()

{

    int a,b,c;

    a = 1, b = 2, c = 0;

    if(a-- || b++ && --c)

    {

        printf("%d %d %d\n",a,b,c);

    }

    return 0;

}

__________________

2.若有以下输入(<CR>代表回车换行符),则下面程序的运行结果为(      )。

1,2<CR>

int main(void)

{

int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};

int (*p)[4], i, j;

p = a;

scanf(“%d,%d”,&i,&j);

printf(“%d\n”, *(*(p+i)+j));

return 0;

}

________________________

3

#include <stdio.h>

#include <string.h>

int main()

{

    char *p1 = "123", *p2 = "ABC", str[50] = "xyz";

    strcpy(str + 2, strcat(p1,p2));

    printf("%s\n",str);

    return 0;

}

4

#include <stdio.h>

void f(char **p)

{

    *p += 2;

}

int main()

{

    char *a[] = {"123","456","789"}, **p;

    p = a;

    f(p);

    printf("%s\r\n",*p);

    return 0;

}

5

void  fun(char  *w, int  m)

{

char s,*p1, *p2;

p1 = w;   

p2 = w+m-1;    

while (p1<p2)

{

s=*p1;  

*p1=*p2;  

*p2=s;  

p1++;  

p2--;

}

}

main( )

{  

char a[]="123456";    

fun( a, strlen(a) );

puts(a);

} 程序运行后的输出结果是______________________________

三、简答题(4题,每题3分,,第4个6分共15分)

1.简述Linux操作系统的模块结构,并介绍各模块功能。

2.GDB是什么?如何使用GDB调试程序

3.简述条件编译的优势,和使用方法。

4.编程:创建目录dir,将当前路径下的所有普通文件拷贝到dir下(注意文件夹不复制)

四、编程题(1,2,10分,第3题15分,总共35分)

char * reverse (char *),反置字符串s,即可将“break”成为“kaerb

2.下面findmax函数将计算数组中的最大元素的地址,请编写该函数。

3.创建一个结构体指针,malloc出5个结构体的空间,成员包含姓名,成绩(数据类型自己设定),写一个程序,要求可以循环的从终端输入学生信息。完成输入后自动打印出所输入的学生信息,打印结果按学生成绩从低到高打印

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值