LINUX c试题

更新时间:2024-04-09 02:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华清远见嵌入式学院第一学期期中考试

一、选择题(20题,共44分)

1. 常见的Linux发行版本有很多,下面不是Linux发行版本的是( )。

[A] Red Hat Linux [B] Ubuntu Linux [C] X Window [D] SuSE Linux

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

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

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

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

4. 查看创建目录命令mkdir的帮助文档,可以使用命令( )。

[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir

5. 假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下( 选出其中的编号为1、3、5的文件。

[A] file_*.txt [B] flie_?.txt [C] file_[135].txt [D] file_[^135].txt

6. 文件权限 r-x-wxr--对应的八进制表示形式为( )

[A] 0536 [B] 0654 [C] 0656 [D] 0534

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

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

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

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

)通配符可以挑

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

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

10. 下面函数的功能是( )。

int fun (char*x) {

char*y=x; while(*y++); return(y-x-1); }

[A] 求字符串的长度

[B] 比较两个字符串的大小 [C] 将字符串x复制到字符串y

[D] 将字符串x连接到字符串y后面

11. C语言程序的三种基本程序是( )。

[A] 顺序结构,选择结构,循环结构 [B] 递归结构,循环结构,转移结构 [C] 嵌套结构,递归结构,顺序结构 [D] 循环结构,转移结构,顺序结构

12. 执行下面语句后的输出结果为( )。

int i = -1; if (i < =0) printf(“****\\n”); i = 2; else printf(“%%%%\\n”);

[A] **** [B] %% [C] %%%%

13. 下面的程序运行结果为( )。

[D] 有语法错误。不能正确执行 int main(void)

{

int x = 3, y = 1, z = 0;

if(x = y + z) printf(“****”); else printf(“####”);

}

[A] 语法有错误,不能编译 [B] **** [C] #### [D] 能编译,不能连接

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

int main(void) {

int Y=100; while(Y--);

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

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

15. 结构体DATA定义如下,则sizeof(struct DATA)的值为(

struct DATA {

float f1; int i; char c2; };

[A] 6 [B] 8 [C] 12 [D] 16

16. 下述程序第二次的输出结果为( )。

int main(void) { extern int a; int b=0; static int c; a+=3; //a =8

other(); // a = 13 b=5

)。

b+=3; b =3; other(); }

int a=5; other() { int b=3; static int c=2; a+=5; b+=5; c+=5; //a = 13 b = 8, c =7 //18 13 printf(\ c=b; c = 8 }

[A] 13,0,13 [B] 18,8,13 [C] 13,8,13 [D] 18,8,0

17. 以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:( )。

#include int main(void) { char s[80] ; int i, j ; gets(s) ; for ( i = j = 0 ; s [i] != ?\\0? ; i++ ) if ( s [i] != ?c? ) ; s [ j ] = ?\\0? ; puts ( s ) ; return 0 ; }

[A] s [ j++] = s [ i ] [B] s [ ++j ] = s [ i ] [C] s [ j ] = s [ i ]; j++ [D] s [ j ] = s [ i ]

18. 下面程序的功能是将已按升序排好序的两个字符串a和b中的字符,按升序归并到字符串c中,请

为程序中的空白处选择适当的语句。

#include int main(void) { char a[ ] = “acegikm”; char b[ ] = “bdfhjlnpq”;

char c[80], *p;

int i = 0, j= 0, k = 0;

while( a[i] != ?\\0? && b[j] != ?\\0? ) { if ( a[i] < b[j] ) { ( ① ) } else { ( ② ) } k++; }

c[k] = ?\\0?;

if ( ③ ) p = b + j;

else p = a + i; strcat ( c , p ); puts ( c ); }

① [A] c[k] = a[i]; i++; [C] c[k] = a[i]; j++; ② [A] c[k] = a[i]; i++; [C] c[k] = a[i]; j++; ③ [A] a[i] = ?\\0?

[B] c[k] = b[j]; i++; [D] c[k] = a[j]; j++; [B] c[k] = b[j]; i++;

[D] c[k] = b[j]; j++; [B] a[i] != ?\\0?

[C] b[j] = ?\\0? [D] b[j] != ?\\0?

19. 在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要

使用的存储类别是( )。

[A] extern [B] register [C] auto [D] static

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

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( “M,M, M\\n”,a,b,c); }

[A] 5, 2, 3 [B] -5, -12, -7 [C] -5, -12, -17 [D] 5, -2, -7

二、判断题(6题,每题2分,共12分)

1. FAT32是Linux系统中广泛使用的一种文件格式。( F ) 2. Linux系统的文件组织结构犹如倒置的树。( T )

3. Linux操作系统将所有硬件都视为文件来处理,包括硬盘分区、CD-ROM、软驱以及其他USB移动

设备等,将其挂载到文件系统目录树中的一个子目录中。( T )

4. Shell是一个命令编译器,将用户命令编译成二进制程序,交给操作系统执行。( F ) 5. 在默认情况下,所定义的Shell变量的作用域是局部有效。( T ) 6. 使用DHCP服务配置动态IP的过程,就犹如一个租借过程。( T )

三、填空题(6题,第5题4分,其余每题2分,共14分)

1. 条件“2 < x < 3或x < -10”的C语言表达式为( (x>2 && x<3 ) ||x<10) )。

2. 若有以下定义和语句,则*p[0]引用的是a数组元素中的( NO.0 ),*(p[1]+1)引用的是a数组

元素中的( NO.3 )。

int *p[3], a[6], i;

for( i = 0; i < 3; i++) p[i] = &a[2*i];

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

1,2

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; }

4. shell脚本的本质是( 命令行解释器 )。

5. gcc的编译步骤按先后顺序分别为( 预处理,编译,链接,运行 )。

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

四、简答题(2题,每题5分,共10分)

1. Shell是Linux内核与硬件的外部保护层,请在下图中标出Shell、Linux内核、硬件的位置,并简要介

用户1控制用户2 ?控制交互... ?控制用户n ?绍三者的交互过程。 LINUX shell linux 内核 硬件

2. 大多Linux文件系统目录结构都遵循一定的标准,请根据右侧的目录职能描述,将左侧目录名连线。

/home E A:存放系统中最常用的可执行文件(二进制)

/root H /dev C /mnt F

B:存放Linux内核和系统启动文件,包括Grub、lilo启动器程序 C:存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty等 D:存放系统的所有配置文件,例如passwd存放用户账户信息,hostname

存放主机名等

E:用户主目录的默认位置

F:该目录通常用于作为被挂载的文件系统的挂载点 H:根用户(超级用户)的主目录

/boot B /etc D /bin A

五、编程题(3题,第1题6分,2/3每题7分,共20分)

1. 打印出所有的“水仙花”数。所谓“水仙花”数是指一个3位数,其各个位数字立方和等于该数本身。

2. 下面findmax函数将计算数组中的最大元素及其下标值,请编写该函数。 #include

void findmax ( int s[ ], int t, int *k ) {

Int i;

}

int main (void) { int a[10] = {12, 23, 34, 45, 56, 67, 78, 89, 11, 22}, k=0; findmax ( a, 10, &k ); printf ( “ 最大元素为:%d, 其下标值为:%d\\n”, a[k], k );

}

return 0;

3. 打印杨辉三角形前10行。(提示:定义数组a[10][10])

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

本文来源:https://www.bwwdw.com/article/vagr.html

Top