最新第1-4章习题参考答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CC=gcc
ALL:aa bb cc
aa:aa.c
$(CC) -o aa aa.c
bb:bb.c
$(CC) -o bb bb.c
cc:cc.c
$(CC) -o cc cc.c
clean:
rm -f aabb cc

一、选择题
1.下列那个命令不是现实多个环境变量的C
Aset BexportCpwd Denv
三、编程题
1.如果一个用户输入一个参数,则打印“no args”,如果输入两个参数并且第二个命令行参数是-a,则打印“I will deal with -a”,如果是-l则打印“I will deal with -l”
#include <stdio.h>
int main(int argc,char *argv[])
系统调用由两部分组成:
(1)核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。运行在核心态。
(2)接口函数:是提供给应用程序的API,以库函数的形式存在于Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。
4.完成如下命令
(1)新建用户tom和用户组student
#useradd tom
#passwd tom
#groupadd student
(2)新建文件file
#touch file
(3)将文件file改名为test,然后将test拷贝到/home
#mv file test
#cp test /home
2来自百度文库Makefile文件的显式规则是什么?
目标文件:依赖文件列表
<tab>更新目标文件使用的命令
三、编程题
1.编写makefile:当前目录下有文件a1.c a2.c a3.c,其中a1.c中带有main函数,其他文件为用户自定义函数供main函数调用,编写完成对这几个文件的编译工作生成可执行文件a
4.使用time函数获得的时间是算术类型、代表自1970年1月1日零时到当前时间的秒数。
5.把算数类型时间表示转换成结构体类型使用()函数localtime。
6.把算数类型时间表示转换成字符串类型使用()函数ctime。
7.Maketime函数把()类型时间表示转换成()类型时间表示结构体、算术。
8.如果一个C程序的入口表示为main(int argc,char *argv[]),编译该程序后的可执行程序为a.out,那么在命令“./a.out –f foo”后,main中的参数argv[1]指向的字符串是(“-f”)。
{
if(argc==1)
printf("no args\n");
else if(argc==2)
{
if(strcmp(argv[1],"-a")==0)
printf("I will deal with -a\n");
if(strcmp(argv[1],"-l")==0)
printf("I will deal with -l\n");
}
return 0;
}

一、选择题
1.文件系统保存在磁盘的B
A.引导块B.超级块C.i节点块D.数据块
2.Linux文件系统的根目录的i节点号为C
A. 0B. 1 C.2D.3
3.文件描述符的数据类型是B
A. char B.int C.double D.float
4.设置文件偏移量的系统调用是C
A. truncateB. syncC . lseekD.create

一、简答题
1.关于Linux的版本有两种不同的称呼:
一种是内核版本,一种是发行版本。
2.简述Linux操作系统的特点
3.系统调用、库函数的区别和练习
从用户角度观察,系统调用和库函数都以C函数形式出现,提供给用户一种功能实现的接口,需要用户输入指定的参数,调用结束得到指定的返回值。
从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。
4.make。命令用来及时makefile文件中的命令
5.库分为静态库和共享库。
二、简答题
1.静态库和共享库的区别
(1)静态库的代码在编译时就已连接到开发人员开发的应用程序中。
(2)共享库只是在程序开始运行时才载入,在编译时,只是简单地指定需要使用的库函数。
(3)静态库文件以.a结尾,共享库文件以.so结尾。
2.获取某个环境变量值使用函数A
A.getenv B.putenv C.setenv D.unsetenv
二、填空题
1.命令行参数是main。函数的参数
2.Main函数的参数若有两个参数则第一个参数代表命令行参数个数、第二个参数代表指向各命令行参数字符串的指针数组。
3.Linux中日期时间的表示方法有:算术类型、结构体类型、字符串类型。
(4)将/home/test文件的拥有着修改为tom,将文件所属组该为student
#chown tom:student /home/test

一、填空题
1.Vi的三中工作模式:插入模式、命令模式、末行模式。
2.Gcc生成可执行文件的四个步骤:预处理、编译、汇编、链接。
3.Makefile用来描述程序或工程中各个文件之间的相互联系
5.下面那个不是lseek第三个参数的取值C
A.SEEK_SETB.SEEK_CURC.SEEK_NOWD.SEEK_END
6.Sync系统调用的功能是A
A.刷新所有缓存到磁盘B.刷新缓存中某个文件的所有信息到磁盘
C.刷新缓存中某个文件的数据到磁盘D.刷新磁盘中某个文件的属性信息到磁盘
7.Fsync系统调用的功能是B
CC=gcc
BIN=a
$(BIN):a1.o a2.o a3.o
$(CC) -o $(BIN) $^
a1.o:a1.c
$(CC) -c a1.c
a2.o:a2.c
$(CC) -c a2.c
a3.o:a3.c
$(CC) -c a3.c
clean:
rm -f *.o $(BIN)
2.编写makefile:当前目录下有很多独立的程序文件:aa.c bb. C cc .c(即每个文件中都有main函数),分别要生成对应的我可执行文件aabbcc,为了方便用户操作,写一个makefile使得调用make命令会重新编译最新修改的程序文件
相关文档
最新文档