《Linux及C考试题附答案(共10页).doc》由会员分享,可在线阅读,更多相关《Linux及C考试题附答案(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上华清远见嵌入式学院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 m
2、kdir -p D man mkdir4. 假设目录中存在若干文件file_num.txt(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 mai
3、n(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,%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. 执行下面语句后的
4、输出结果为( D )。int 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 语法有错误,不能编译
5、B hello world 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(v
6、oid)char s80; abd abd0int i, j; s2 = s3 = dgets(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 Bs +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;wh
8、ile( 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(7,
9、 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、乙是盗窃犯 D、
10、甲和丁是盗窃犯二、填空题(每空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(“%d,%d”,&i
11、,&j);printf(“%dn”, *(*(p+i)+j); return 0;4. shell脚本的本质是( shell命令的有序集合 )。5. 将历史纪录追加到文件file.txt内( history file.txt )。6. make工程管理器根据( 时间戳 )来自动发现更新过的文件从而减少编译的工作量。三、简答题(2题,每题5分,共10分)1、下面findmax函数将计算数组中的最大元素及其下标值,请编写该函数。#include void findmax ( int s , int t, int *k ) int main (void)int a10 = 12, 23, 34, 4
12、5, 56, 67, 78, 89, 11, 22, k;findmax ( a, 10, &k );printf ( “ 最大元素为:%d, 其下标值为:%dn”, ak, k );return 0;2、现在有一个简单的工程项目,由main.c fun.c 和fun.h三个文件组成。其中main.c中包含主函数和fun.h的头文件,fun.c中为功能函数的实现,fun.h中为fun.c中功能函数的声明 。请写一个makefile实现这几个文件的编译。$(CC)=gcctest:fun.o main.o$(CC) fun.o main.o -o test*.o:*.c $(CC) c $()
13、o $main.o:main.c gcc -c main.c -o main.o四、编程题(每题10分,共30分)1. 编写一个shell脚本完成如下功能 :1. 在家目录下创建文件夹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行。
14、(提示:定义数组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=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,成员包含学号,姓名,成绩(数据类型自己设定)。写一个程序,要求可以循环的从终端输入学生信息
15、。完成输入后自动打印出所输入的学生信息,打印结果按学生成绩从低到高打印。Struct StudentInt num;Char name64;Int salary;studentN;Sort(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);专心-专注-专业