linux基础和c高级测试题


华清远见嵌入式学院第一学期期中考试 一、选择题(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]%%%%[D] 有语法错误。不能正确执行 13. 下面的程序运行结果为()。 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; other(); b+=3; other(); } int a=5; other() { int b=3; static int c=2; a+=5; b+=5; c+=5; printf(“%d,%d,%d\n“,a,b,c); c=b; } [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++; [B] c[k] = b[j]; i++; [C] c[k] = a[i]; j++; [D] c[k] = a[j]; j++; ② [A] c[k] = a[i]; i++; [B] c[k] = b[j]; i++; [C] c[k] = a[i]; j++; [D] c[k] = b[j]; j++; ③ [A] a[i] = ‘\0’[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( “%4d,%4d, %4d\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 系统中广泛使用的一种文件格式。() 2. Linux 系统的文件组织结构犹如倒置的树。() 3. Linux 操作系统将所有硬件都视为文件来处理,包括硬盘分区、CD-ROM、软驱以及其他 USB 移动 设备等,将其挂载到文件系统目录树中的一个子目录中。() 4. Shell 是一个命令编译器,将用户命令编译成二进制程序,交给操作系统执行。() 5. 在默认情况下,所定义的 Shell 变量的作用域是局部有效。() 6. 使用 DHCP 服务配置动态 IP 的过程,就犹如一个租借过程。() 三、填空题(6 题,第 5 题 4 分,其余每题 2 分,共 14 分) 1. 条件“2 < x < 3 或 x < -10”的 C 语言表达式为()。 2. 若有以下定义和语句,则*p[0]引用的是 a 数组元素中的(),*(p[1]+1)引用的是 a 数组元 素中的()。 int *p[3], a[6], i; for( i = 0; i < 3; i++) p[i] = &a[2*i]; 3. 若有以下输入(代表回车换行符),则下面程序的运行结果为()。 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 ... 绍三者的交互过程。 2. 大多 Linux 文件系统目录结构都遵循一定的标准,请根据右侧的目录职能描述,将左侧目录名连线。 /home 存放系统中最常用的可执行文件(二进制) /root 存放 Linux 内核和系统启动文件,包括 Grub、lilo 启动器程序 /dev 存放所有设备文件,包括硬盘、分区、键盘、鼠标、USB、tty 等 /mnt 存放系统的所有配置文件,例如 passwd 存放用户账户信息,hostname 存放主机名等 /boot 用户主目录的默认位置 /etc 该目录通常用于作为被挂载的文件系统的挂载点 /bin 根用户(超级用户)的主目录 四、编程题(3 题,第 1 题 6 分,2/3 每题 7 分,共 20 分) 1.shell 编程: 测试指定目录下的文件属性(不包括读写属性),并生成统计文档 readme.txt 1. 下面 findmax 函数将计算数组中的最大元素及其下标值,请编写该函数。 #include void findmax ( int s[ ], int t, int *k ) { } int main (void) { int a[10] = {12, 23, 34, 45, 56, 67, 78, 89, 11, 22}, k; findmax ( a, 10, &k ); printf (“ 最大元素为:%d, 其下标值为:%d\n”, a[k], k ); return 0; } 2. 打印杨辉三角形前 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
还剩7页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

Manager

贡献于2016-12-21

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf