1、Linux及C考试题附答案华清远见嵌入式学院Linux及C考试题(A卷)1-5 CBCDB 6-10 DBADD11-15 CCCAA16-20 C ADD C D A21-23 DBA一、选择题(23题,每空2分,共46分) 1. 常见的Linux发行版本有很多,下面不是Linux发行版本的是( C)。A Red Hat Linux B Ubuntu Linux C unix D 红旗 2. 下面不是对Linux操作系统特点描述的是( B )。A 良好的可移植性 B 稳定性低 C 多用户 D 多任务3. 嵌套创建目录的命令可以使用( C )。A mkdir h B help mkdir C
2、mkdir -p D man mkdir4. 假设目录中存在若干文件(num表示文件编号,18),使用以下( D )通配符可以挑选出其中的编号为1、2、3、5、6、7的文件。A file_*.txt B flie_.txt C file_1-7.txt D file_48.txt5. 文件权限 r-x-w-r-对应的八进制表示形式为( B ) A 0536 B 0524 C 0656 D 0534 6. 目前流行的两种软件包管理机制,Debian使用( D )软件包。A zip B rpm C tar D deb7. 下述程序第二次的输出结果为( B )。int main(void) exte
3、rn 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,%dn,a,b,c); c=b; A 13,0,13 B 18,8,13 C 13,8,13 D 18,8,08. C语言程序的三种基本程序是( A )。A 顺序结构,选择结构,循环结构B 递归结构,循环结构,转移结构C 嵌套结构,递归结构,顺序结构D 循环结构,转移结构,顺序结构9. 执行下面语句后的输出结果为( D )。i
4、nt i = -1; if (i =0) printf(“*n”); i = 2; else printf(“%n”);A 乱码 B % C % D 有语法错误,不能正确执行10. 在C语言中,要求运算数必须是整型的运算符是( D )。A / B + C != D %11. 下面的程序运行结果为( C )。 char *RetMenory(void) char p = “hello world”; return p; void Test(void) char *str = NULL; str = RetMemory(); puts(str); A 语法有错误,不能编译 B hello worl
5、d C结果不可预知 D hello world+乱码12. 下述程序的输出结果是( C )。int main(void) int Y=100;while(Y-);printf(“Y=%d”,Y);A Y=0 B Y=1 C Y=-1 D Y=随机数13. 结构体DATA定义如下,则sizeof(struct DATA)的值为( C )。struct DATA float f1; int i;char c2; ;A 6 B 8 C 12 D 1614. 以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:( A )。#include int main(void) char s8
6、0; abd abd0 int i, j; s2 = s3 = d gets(s); for ( i = j = 0; s i!= 0; i+ ) if ( s i!= c ) Sj+ = si ; 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 15. 下面函数的功能是( A )。int fun (char*x)char*y=x;while(*y+);return(y-x-1);A 求字符串的长度B 比较两个字符串的大小C 将字符串x复制到字符串yD 将字符串x连接到字符
7、串y后面16. /* Address */unsigned short *a = (unsigned short *)0x800;unsigned short *b= a+1;b = ( C )A 0x800 B 0x801 C 0x802 D 0x80417. 下面程序的功能是将已按升序排好序的两个字符串a和b中的字符,按升序归并到字符串c中,请为程序中的空白处选择适当的语句。 #include int main(void) char a = “acegikm”; char b = “bdfhjln pq”; char c80, *p; int i = 0, j= 0, k = 0; whi
8、le( ai != 0 & bj != 0 ) if ( ai 6)puts(6):puts(6 B =6 21. 假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是( D )。A.fileB没有任何影响 B.因为fileB未被删除,所以fileA会被系统自动重新建立C.fileB会随fileA的删除而被系统自动删除 D.fileB仍存在,但是属于无效文件22. 以下程序的运行结果为( B )void sub(int x, int y, int *z) *z = y x; int main(void) int a,b,c; sub(10, 5, &a); sub
9、(7, a, &b); sub(a, b, &c); printf( “%4d,%4d,%4dn”,a,b,c); A 5, 2, 3 B -5, -12, -7 C -5, -12, -17 D 5, -2, -723、一位法官在审理一起盗窃案中,对涉及到的四名嫌疑犯甲、乙、丙、丁进行了审问。四人供述如下:甲说:“罪犯在乙、丙、丁三人之中。”乙说:“我没有做案,是丙偷的。”丙说:“在甲和丁中间有一人是罪犯。”丁说:“乙说的是事实。”经过充分的调查,证实这四人中有两人说了真话,另外两人说的是假话。那么,请你对此案进行裁决,确认谁是罪犯( A )A、乙和丁是盗窃犯 B、乙和丙是盗窃犯 C、乙是盗
10、窃犯 D、甲和丁是盗窃犯二、填空题(每空2分,共14分) 1. 对文件file创建一个符号链接link( ln s file link )。2. 若有以下定义和语句,则*p0引用的是a数组元素中的( a0 ),*(p1+1)引用的是a数组元素中的( a3 )。 int *p3, a6, i;for( i = 0; i 3; i+) pi = &a2*i; 3. 若有以下输入(代表回车换行符),则下面程序的运行结果为( 7 )。1,2int main(void) int a34 = 1,2,3,4,5,6,7,8,9,10,11,12; int (*p)4, i, j; p = a; scanf
11、(“%d,%d”,&i,&j); printf(“%dn”, *(*(p+i)+j); return 0;4. shell脚本的本质是( shell命令的有序集合 )。5. 将历史纪录追加到文件内( history )。6. make工程管理器根据( 时间戳 )来自动发现更新过的文件从而减少编译的工作量。三、简答题(2题,每题5分,共10分)1、下面findmax函数将计算数组中的最大元素及其下标值,请编写该函数。 #include void findmax ( int s , int t, int *k ) int main (void) int a10 = 12, 23, 34, 45,
12、56, 67, 78, 89, 11, 22, k; findmax ( a, 10, &k ); printf ( “ 最大元素为:%d, 其下标值为:%dn”, ak, k ); return 0;2、现在有一个简单的工程项目,由 和三个文件组成。其中中包含主函数和的头文件,中为功能函数的实现,中为中功能函数的声明 。请写一个makefile实现这几个文件的编译。 $(CC)=gcctest: $(CC) -o test*.o:*.c $(CC) c $() o $: gcc -c -o 四、编程题(每题10分,共30分)1. 编写一个shell脚本完成如下功能 :1.在家目录下创建文件夹
13、filer2.遍历当前文件夹下的文件,如果是普通文件则放入创建的filer中3.打印出放入filer文件夹中的文件数目# !/bin/bashmkdir /filernum=0filelist=lsfor file in $filelistdoif test -f $file thencp $file /filernum=expr $num + 1 fidoneecho $num 2.打印杨辉三角形前10行。(提示:定义数组a1010) 11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1int main() int i , j, a1010 = 0; for ( i=
14、0; i10; i+) ai0 = 1; for ( j=1; j=i; j+) aij = ai-1j-1 + ai-1j; for ( i=0; i10; i+) for ( j=0; j=i; j+) printf(“4d”, aij); printf(“n”); 3.创建一个结构体数组,数组名为student,成员包含学号,姓名,成绩(数据类型自己设定)。写一个程序,要求可以循环的从终端输入学生信息。完成输入后自动打印出所输入的学生信息,打印结果按学生成绩从低到高打印。Struct StudentInt num;Char name64;Int salary;studentN;Sort(
15、struct Student * p,int n)Int i,j;Struct student tmp;For(i = 0;i n -1;i+)For(j = 0;j pj + 1.salary)tmp = pj + 1;Pj + 1 = pj;Pj = tmp;Int main()Int i = 0,j;While(scanf(“%d%s%d”,studenti.name,studenti.name,studenti.salary) = 3)if(i N)i+;elsePuts(“list full”);Sort(student,i);for(j = 0;j i;j+ ) Printf(“num:%dnname:%sn,salary:%dn”,studentj.num,studentj.name,studentj.salary);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1