linux及C试题(含答案)

  • 格式:doc
  • 大小:33.50 KB
  • 文档页数:7

华清远见嵌入式学院《Linux及C》考试题(B卷)

一、选择题(23题,每空2分,共46分)

1. 在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项( D )。

A.-m B.-d C.-f D.-p

2. 任何时候用户需要回到用户主目录时可以使用命令 ( A ) 。

A. cd B. pwd C. path D. cd .

3. 将当前目录下的文件shell.sh移动到目录/home/linux下的命令为( B ) 。

A. cp shell.sh /home/linux B. mv shell.sh /home/linux

C. ls shell.sh / home/linux/she ll.sh D. mv /root/shell.sh /home/linux/shell.sh

4. 下面( C )命令不能用来显示文件的内容。

[A] more [B] less [C] find [D] cat

5. /etc/shadow文件中存放( B )。

A.用户账号基本信息 B.用户口令的加密信息 C.用户组信息 D.文件系统信息

6. LINUX所有服务的启动脚本都存放在( B )目录中。

A./etc/rc.d/init.d B./etc/init.d C./etc/rc.d/rc D./etc/rc.d

7. 若要将当前目录中的my文件压缩成my,则实现的命令为( C )。

A.tar -cvf my my B.tar -zcvf my my

C.tar -zcvf my my D.tar -cvf my my

8. 以下程序的运行结果为( C )

#include

#include

int SubCount(char *dest, int count)

{

strcpy(dest,"555");

count++;

return 0;

}

int main()

{

int count = 3;

char caBuf[8];

SubCount(caBuf,count);

printf("%d\n",count); return 0;

}

[A] 8 [B] 4 [C] 3 [D] 5

9. 下面的代码输出是( A )

void foo(void)

{

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

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

}

[A] > 6 [B] <= 6

10. C语言中,逻辑“真”等价于( C )。

[A] 大于零的数 [B] 大于零的整数 [C] 非零的数 [D] 非零的整数

11. 删除文件命令为( D )

A.mkdir B.move C.mv D.rm

12. 假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是( D )。

[A].fileB也随之被删除

[B].因为fileB未被删除,所以fileA会被系统自动重新建立

[C].fileB会随fileA的删除而被系统自动删除

[D].fileB仍存在,但是属于无效文件

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

[A] 良好的可移植性 [B] 单用户 [C] 多用户 [D] 多任务

14. 在C语言中,要求运算数必须是整型的运算符是( D )。

[A] / [B] ++ [C] != [D] %

15. 下述程序的输出结果是( C )。

int main(void)

{

int Y=100;

while(Y--);

printf(“Y=%d”,Y);

}

[A] Y=0 [B] Y=1 [C] Y=-1 [D] Y=随机数

16. 目前流行的两种软件包管理机制,Debian使用( D )软件包,Redhat使用( B )软件包。

[A] tgz [B] rpm [C] tar [D] deb

17. 在给定文件中查找与设定条件相符字符串的命令为( A )。

A.grep B.gzip C.find D.sort

18. 刷新文件时间戳可以使用的命令为( D )。

A.chmod B.more C.ls D.touch

19. 文件exer1的访问权限为744,现要取消文件所有者的执行权限,同时增加同组用的写权限,下列命令中正确的是( C )。

A. chmod u+x g+w exer1 B. chmod 646 exer1

C. chmod a-x g+w exer1 D. chmod g+w exer1

20. Linux终端执行temp=world;echo hello $temp 上述命令执行的结果为(C)。

[A] . helloworld [B]. hello$temp [C]. hello world [C]. hello

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

union u_union

{

unsigned int ivar;

char cvar;

short svar;

}uu;

uu.ivar = 0x12345678;

iu.cvar = ( D );

A.0x12345678 B.0x5678 C.0x12 D.0x78

22. /*pointer and function */

main()

{

int a[50],n;

...........

fun(n,&a[9]);

...........

}

Which is incorrect ( D )

[A] void fun(int m,int x[]); [B]. void fun(int s,int h[41]) ;

[C]. void fun(int p,int *s) ; [D]. void fun(int n,int a) ;

23. 一位法官在审理一起盗窃案中,对涉及到的四名嫌疑犯甲、乙、丙、丁进行了审问。四人分别供述如下: 甲说:“罪犯在乙、丙、丁三人之中。”

乙说:“我没有做案,是丙偷的。”

丙说:“在甲和丁中间有一人是罪犯。”

丁说:“乙说的是事实。”

经过充分的调查,证实这四人中有两人说了真话,另外两人说的是假话。

那么,请你对此案进行裁决,确认谁是罪犯?( A )

[A]、乙和丁是盗窃犯 [B]、乙和丙是盗窃犯

[C]、乙是盗窃犯 [D]、甲和丁是盗窃犯

二、填空题(6题,每题2分,共12分)

1. 管道 就是将前一个命令的标准输出作为后一个命令的标准输入

2. make工程管理器根据( 时间戳 )来自动发现更新过的文件从而减少编译的工作量。

3. 将命令“command”的标准输出重定向到文件“file”中的方法是 command > file 。

4. GCC编译器中 -S 选项完成的工作是 只激活预处理和编译,而不进行链接,生成汇编代码

5. 在Linux下调试c程序时,在提示符(gdb)下输入b 10表示

将断点设置在第十行

6. 给了一个结构体,

struct A{

char a ;

char b ;

char c ;

short d;

int e;

short f;

};

求sizeof(struct A) = 24

三.简答题(3题,每题4分,共12分)

1. 什么是链接?符号链接与硬链接的区别是什么?

链接是指用一个i节点对应多个文件名。硬链接是把文件的i节点号指向该i节点,

且链接计数器值加1。删除链接文件时计数器值减1,当其值为0时,i节点被释放。

符号链接是只有文件名的一个链接文件,并不指向一个真正的i节点。在删除符号链接文件时与硬链接文件有区别。

2. 配置Ubuntu主机上网简要操作步骤是什么?

1. 修改/etc/network/interfaces配置文件

2. 重启网络服务:sudo /etc/init.d/networking restart

3.系统中的gcc软件太老了,我该怎么更新它?

1.sudo apt-get update

2.sudo apt-get install –reinstall gcc

四、编程题(3题,每题10分,共30分)

1.给定一个字符串“I love china”,编写程序完成以单词为单位的逆序,如“china love i”,并要求允许使用第三方变量保存数据,但可以使用辅助变量指针等。

这道题主要考察字符串的遍历查找以及分类处理,首先确定算法,我们可以这样处理字符串:

1. 将字符串整体导致:“anihc evol i”

2. 然后再次遍历字符串,将每个单词倒置:“china love i”

确定完算法后就可以用程序进行操作了,以下是程序的实现过程:

#include < stdio.h>

#define N 32

int s *head, char *tail);

int main()

{

char buff[N];

char *head = buff,

*tail = buff;

//先讲尾指针定位到字符串尾部。

While(‘\0’!= *tail)

tail ++;

//调用swap函数将整个字符串倒置。