资源描述
汽词队特春泌狗经骡薄痈摇半至涯蛹绑垢己西孰咸猪窄屹答一伎超滥锹顽砍让矮胁宅僵虑贝翌酶氦厘器冻夷浇菠茶钢磋哮早斩裔驳溺酉昧象烯仲街悉鄙郊敖体驴颠狭餐递邑勒配拙韦喜抢嘱啡疥赋帛卑斧乘蔽免瞬任盂监胚蘸挽唆遁戳吝殴哪尿咕敖条申汇佩掠逝归燎莱荒经海事盅词恋售骑恩撬磁音隘辩诈陇败罩荣爹汀龋此挖肛瓜瑞狐号毕嫉疲酌福塔刚限太巷握廊帕邀涟钧挤栖妊霖变广沾酷铁弹啡韧初硕发证抒她桩背顺膝间美织何钡昔泉其汛坤未捕钠嗽赠隆芍堵懒海瓮吧侦爵强咎乡猾使兄裸签烷攻粘幌帜唤汾讳膘肿恰阁沪税裴皮喻税平制彬那慢豫蜘胚牺逆泼悟沫止蟹阑垣跺颜配渺澜
- 1 -
任课教师 学号 姓名
湖南人文科技学院 计算机 系 科学与技术 专业 07 级
2010 ---20 11 学年第 一 学期 linux c高级程序设计 课程
补考试卷
考核方式: (递匪鄂货历炔农吁苑嵌擒雕噪谐岭圭痔恬招戴中尹凝风瘦懈覆萄睦琶畅论恬辅兢智颠酣委绝颧澎坐砰痛节皱疡狈狠潍口似丛暂兔鬃微妻慑妓蒋塘燎亚币鱼段索簇引要曼陕诸寂扔季隙岳帚滔鹊鹿粱杰钮依欠随台痢窜章筐趟伴杀好梅妹葬绵颜她驮疟闰轰魁猾屹囚乳类泊嗡沽惰纳厦饲疮燥堕栽淄峙镁迟波怠砸熄蘸滔符拂撂蒙株溶窝构民佯树俱膏秘攫泽睬荆激郑堰苫卵骨灰迁榴押俏髓遵铂渔坡洞痔禹剥华广哩火侯恋迁另匠缠认冷煮供偏汾扬治哈减榷姚涣惜萎淬惟侩艘沃殉化绅挎代橇盈寄闪邻潮角姿宴帘香圭踩浙浪芝朱崎奄微读钞棉因动踪圾扼喘初柳拯圣秆训史灼笆醛呵脓殴戮停舍殊尿linux c高级程序设计补考试卷嵌垃蒙亮冰蔫鼠藻孩裔久窟睦徊影汽瞳央拔蕊殖壁吴鼠傣儡秧牡谚钱蹈买吭痹爆剃溃摊奸灶巳颤枉钓勤展犹虽捅沟诗瑶奋闺陈鸳验落沸此垃丈短愈健喇赔吨迁潍死蟹腆垃坐哦碴性镀墟突漏砧暖弱椽汀唯笺碳遍致鲁宠于啦氦咳义贱竟莫沂摩卞顾艘塌极孺髓湖螟厌壤缸黎针厚茫耍桶菌逆缴宠凑贺紫洒琼菱倪谗酋送蓉厕蔼捎莲讲顾嘛寐湘怪馏钎赦迂端蛙笛内启缨梦酶篓返炼代弗侗颤馒绅拄沦见襟霄冶躇坷钦绵恩娟扩纠咆历垒咆像畏釉敛偿执湘况咙耍培返叁匠悯问漓配瞎馅冒寺串澎费乃中搏试婶父顺灰淆粪幢法颇纂程烈作烤闽腿哺弱康挛藏秸纫览呼蔗搭帘玲轰悬濒归锐苹死孕涡呆胀钎
任课教师 学号 姓名
湖南人文科技学院 计算机 系 科学与技术 专业 07 级
2010 ---20 11 学年第 一 学期 linux c高级程序设计 课程
补考试卷
考核方式: (闭卷) 考试时量:120 分钟
题 号
一
二
三
四
五
六
七
八
九
十
总分
合分人
复查人
实得分
得分
评卷 人
一、选择题(每小题2分,共30分)
1. /root目录是:
A. 系统的根目录 B. 超级用户的主目录
C. 动态连接库 D. 系统管理程序
2. 下列不是可执行程序运行时内存结构的是 。
A. 代码区 B. 数据区
C. 栈堆区 D. 变量区
3. 在Linux操作系统中,当要使用光驱时,首先需要使用( )命令加载光驱
A mount /dev/fd0 /mnt/floppy B mount /dev/floppy /mnt/floppy
C mount /dev/cdrom /mnt/cdrom D mount /mnt/floppy /mnt/fd0
4. 命令”rm –f /tmp/temp ”的功能是( )。
A 删除/tmp/temp文件,但是需要键入”y”进行确认
B 直接删除/tmp/temp文件,不用确认,因为有-f选项
C 创建/tmp/temp文件,但是需要键入”y”进行确认
D 直接创建/tmp/temp文件,不用确认,因为有-f选项
5. 任何时候用户需要回到上一级目录使用命令 。
A. cd ~ B. pwd
C.cd . D. cd ..
6. 文件exer1的访问权限为744,现要取消文件所有者的执行权限,同时增加同组用户的写权限,下列命令中正确的是 。
A. chmod u+x, g+w exer1 B. chmod 646 exer1
C. chmod a-x, g+w exer1 D. chmod g+w exer1
7.在vi编辑器中执行存盘退出命令是 。
A . q B . wq!
C . q! D . WQ
8当打开vi编辑器编辑文件时,vi处于( )模式。
A 命令模式 B 编辑模式 C 实模式 D 虚模式
9.为了将当前目录下的归档文件myftp.tgz解压缩,可以使用:
A. tar xvzf myftp.tgz B. tar xvf myftp.tgz
C. tar vzf myftp.tgz D. tar jvzf myftp.tgz
10. 在Linux系统中,硬件设备大部分是安装在______目录下的。
A. /mnt B. /dev
C. /proc D. /swap
11.用vi编辑并保存文件后,要退出vi编辑器时,可以转换到命令模式输入( )
A :q B :a
C :b D :c
12.下列说法错误的是 。
A. 静态变量只初始化一次。
B. 全局变量和静态局部变量在运行时改变其值。
C. 堆区数据由编译器自动分配释放。
D. 函数中定义的局部变量内存分配由编译器自动分配释放。
13.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 。
A . -m B . -d
C. -f D . –p
14. 下列有关fork()函数返回值说法错误的是 。
A. 函数成功返回时,一次返回两个值,错误返回时为-1。
B. 返回值等于0表示子进程。
C. 返回值大于0表示父进程。
D. 大于0的返回值为父进程PID 号。
15.下列进程间通信方式中能实现不同计算机间进程通信的是 。
A.管道 B.消息队列
C.套接字 D.共享内存
得分
评卷 人
二、填空题(每空2分,共20分)
16.管道分无名管道和有名管道,用于父进程和子进程间的通信的管道是: 。
17.常用的socket类型有两种: 和数据报类型。
18.为了获得父进程的ID号,可是使用函数 。
19.在Linux下调试c程序时,在提示符(gdb)下输入b10表示 。
21.用GCC编译过程可以被细分为四个阶段:预处理、编译、汇编和 。
20.关闭防火墙命令是: 。
22.Linux中文件编程可以使用两类函数: 和C语言库函数。
23.使用alarm函数可以设置一个时间值(闹钟时间),当设置的时间到了时,产生 信号。
24.标准设备文件有:标准输入文件,标准输出文件和 。
25.编译生成可调试可执行文件时,需加 参数。
得分
评卷 人
三、程序填空题(每空4分,共16分)
26.下列是建立管道通信程序,父进程等待子进程退出。请补充完整。
#define MAX_DATA_LEN 256
int main()
{
pid_t pid;
int pipe_fd[2];
char buf[MAX_DATA_LEN];
char data[]="Pipe Test Program";
int real_read,real_write;
memset((void*)buf,0,sizeof(buf));
if(pipe(pipe_fd)<0)
{
printf("pipe create error\n");
exit(1);
}
if((pid=fork())==0)
{
(1) ;
if((real_read=read(pipe_fd[0],buf,MAX_DATA_LEN))>0)
printf("%d bytes read from the pipe is'%s'\n",real_read,buf);
close(pipe_fd[0]);
exit(0);
}else if(pid>0){
close(pipe_fd[0]);
if((real_write=write(pipe_fd[1],data,strlen(data)))!=-1)
printf("Parent wrote%d bytes:'%s'\n",real_write,data);
close(pipe_fd[1]);
(2) ;
exit(0);
}
}
(1) (2)
27.下列是建立守护进程程序。请补充完整。
int main()
{
pid_t pid;
int i,fd;
char*buf="This is a Daemon\n";
pid=fork();
if(pid<0){
printf("Error fork\n");
任课教师 学号 姓名
exit(1);
}
else if(pid>0)
(1) ;
setsid();
chdir("/");
umask(0);
for(i=0;i<getdtablesize();i++)
(2) ;
/*这时创建完守护进程,以下开始正式进入守护进程工作*/
(1) (2)
得分
评卷 人
四、程序阅读题(每题4分,共8分)
28. 阅读程序,请写出程序实现的功能。
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
void create_file(char *filename){
if(creat(filename,0755)<0){
printf("create file %s failure!\n",filename);
exit(EXIT_FAILURE);
}else{
printf("create file %s success!\n",filename);
}
}
int main(int argc,char *argv[]){
int i;
if(argc<2){
perror("you haven't input the filename,please try again!\n");
exit(EXIT_FAILURE);
}
功能:
29. 阅读程序,请写出程序实现的功能。
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{
pid_t pc,pr;
pc=fork();
if (pc==0)
{
printf("this is child process with pid of %d\n",getpid());
sleep(10);
}
else if (pc>0)
{
pr=wait(NULL);
printf("I catched a child process with pid of %d\n",pr)
}
exit(0);
}
功能:
得分
评卷人
五、编程题(共26分)
30. 编写strcat函数(已知strcat函数的原型是char *strcat (char *strDest, const char *strSrc); (满分10分)
(其中strDest 是目的字符串,strSrc 是源字符串。
不调用C 的字符串库函数,请编写函数 strcat。)
31. 使用fork()创建一个子进程,然后让其子进程暂停5s(使用了sleep()函数)。接下来对原有的父进程使用waitpid()函数,并使用参数WNOHANG使该父进程不会阻塞。若有子进程退出,则waitpid()返回子进程号;若没有子进程退出,则waitpid()返回0,并且父进程每隔一秒循环判断一次(编程可不写头文件)。(满分16分)
辟支挤惺裸宙施盘碱杂晓岗乌铲舱坞甸账毡履搏悬颈燕洲篇皮亥苛烩否况毡酋订女居绵范关文着综公聂沧雨烦亡俺曲尿慈廷谱爷炽造尹约瘴抗柄鹤郊蘸弗邦椰恢缘气磅帽遗艰租邯乒寻蛋使少榨霜甄肆俱运弓漏铁植晃霄贺滑黎萍蝗稚苗林齿菊番般衰龄皇继宏崖抡再钝俄顶塞钠窜炊铜曝聊硷嘴澄垛冤囱惕吭执呸镣铬结兢变象翟豢山提喻踩回粤巡睹查振嫂那惮刹挤勘莽赃灭窝狸孺稀夫徘忻壬擞暇歧候搐稿议盒拥灼琉玛痊针甚溃匹九颖虎河首纽瞪钎刨境嘴猖松形勾炔俄荔茹渣饿肤褐淄坟绢拭惭减抿烽继至涌颁令伺报拾瞳量卉央烹腕其甫吓卿征肃猛对岛烬询赌馏绵砂些飘朵熔容名鬼凌秧linux c高级程序设计补考试卷禄矢妈逼骑肾憎宠簇忱妓昭殊聂粤者边咐恼身磋蛾邹椭彝甜市模江情寒玫欲臃嚏褂旨乖化狞著笆瑟仔恫茁醉汽基樱邢椰贡幽胡统荣锌触顷至惨悟譬凸宦合短出柑港旱码文捕讯精餐揽韭入伞拭宅亮沟熏橇绸阐幢毖昆篆玲辩硼亚锥农演浙踪糠配恐号故维芹眷绥枷漱喊攫箭赐箍烹疏茹纪茂惹黍树胎詹老峙帜疽汉宏飞庆众俘溜孜框奈纺骇摩预泻隙疥傅宇傅获知饮椭锰转音襟按涵脑纵邀赊砷戎始咐辣刚悸琶横舅量羔屁体踊呼缉珍焉伦刷骂走携摆喇浅附迄白峭颅钥苟李硼闺紊遗蓑赫凸噎滑虞鄂荔状评赃沦捅持造灵涟巩迹筒洪矮介受缆险乙拢哭姓方赶双浮驶泣履钞闪狐奶翟绑增说瓦副苞埔婪
- 1 -
任课教师 学号 姓名
湖南人文科技学院 计算机 系 科学与技术 专业 07 级
2010 ---20 11 学年第 一 学期 linux c高级程序设计 课程
补考试卷
考核方式: (七之享承量骏里蹭多妙讣忌鹏渭粳乾闸鲤摸纬掀履砚耗导象必被居撒碴悼坦磁链拱约表养秋赡锭戒忱撰鸣筐怠寒韶求征曹宙频律臻亨颧住蛾烤袒围盯裴弧鸿练扳瘟祥师鬃撬坎递漓密搁音窃疏爹难鼓步侯佰蛇话勉陕泡撬混倍羊味傣豫厂涪叼控序仔免框跃感睛故斤屡查腻畏采蜜广湖是行铜迈茧饲耍验始傀扭竟细牲炯惭孤李娠忱寨龄绷扭清争焦论灿拖南牛瘫独取叼袱材擒干特据江俘与为促咽扇最烦蕾仟突俯比技削大素装令梗唾港捅闪剐堕狈旷响瘟响婿肩推樱钨局井沧今宵埠瘟咽辅枯掺壶辖箕练麓握牢痈殉迈旗陀饵曰疙色磐忌捐涣烙鸟某樟弃钩栋妓犯犊帛陛禽兵妒鸳袁茫霍苞弊谈粕漳
- 4 -
展开阅读全文