Linux及C考试题附答案(2)

2019-08-03 12:07

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

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

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

那么,请你对此案进行裁决,确认谁是罪犯?( A ) [A]、乙和丁是盗窃犯 [B]、乙和丙是盗窃犯 [C]、乙是盗窃犯 [D]、甲和丁是盗窃犯

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

1. 对文件file创建一个符号链接link( ln –s file link )。

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

的( a[3] )。

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

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

1,2 int main(void) {

int a[3][4] = {1,2,3,4

,5,6,7,8, 9,10,11,12};

}

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 (*p)[4], i, j; p = a;

scanf(“%d,%d”,&i,&j); printf(“%d\\n”, *(*(p+i)+j)); return 0;

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

int main (void)

{ }

2、现在有一个简单的工程项目,由main.c fun.c 和fun.h三个文件组成。其中main.c中包含主函数和fun.h的头文件,fun.c中为功能函数的实现,fun.h中为fun.c中功能函数的声明 。请写一个makefile实现这几个文件的编译。

$(CC)=gcc test:fun.o main.o

$(CC) fun.o main.o -o test *.o:*.c

$(CC) –c $(<) –o $@ main.o:main.c

gcc -c main.c -o main.o

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

1. 编写一个shell脚本完成如下功能 :

1.在家目录下创建文件夹filer

2.遍历当前文件夹下的文件,如果是普通文件则放入创建的filer中 3.打印出放入filer文件夹中的文件数目

# !/bin/bash mkdir ~/filer num=0 filelist=`ls` for file in $filelist do

if test -f $file then

cp $file ~/filer num=`expr $num + 1 ` fi

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;

done echo $num

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

int main() {

int i , j, a[10][10] = {0};

for ( i=0; i<10; i++) {

a[i][0] = 1;

for ( j=1; j<=i; j++) {

a[i][j] = a[i-1][j-1] + a[i-1][j]; } }

for ( i=0; i<10; i++) {

for ( j=0; j<=i; j++) {

printf(“4d”, a[i][j]); }

printf(“\\n”); }

3.创建一个结构体数组,数组名为student,成员包含学号,姓名,成绩(数据类型自己设定)。写一个程序,要求可以循环的从终端输入学生信息。完成输入后自动打印出所输入的学生信息,打印结果按学生成绩从低到高打印。 Struct Student{

Int num; Char name[64]; Int salary; }student[N];

Sort(struct Student * p,int n) {

Int i,j;

Struct student tmp; For(i = 0;i < n -1;i++) {

For(j = 0;j < n - i - 1;j++) {

If(p[j].salary > p[j + 1].salary) {

tmp P[j] } } }

}

Int main() {

Int i = 0,j;

While((scanf(“%d%s%d”,student[i].name,student[i].name,student[i].salary)) == 3) {

if(i < N) {

i++;

= p[j + 1]; = tmp;

P[j + 1] = p[j];

} else

{Puts(“list full”);} }

Sort(student,i); for(j = 0;j < i;j++ ) {

Printf(“num:%d\\nname:%s\\n,salary:%d\\n”,student[j].num,student[j].name,student[j].salary);

} }


Linux及C考试题附答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:运动会启动仪式演讲稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: