按关键词阅读: 考核 期末 汇总 题目
1、期末考核内容每人按照老师的要求 , 顺序或随即从下面shell编程部分和环境编程部分分别选择一题 , 然后在课堂上进行编程、演示运行结果 , 并回答老师至少三个问题 。
如不能回答 , 则不通过考核 。
通过考核后 , 应根据两个题目的题目分析、编程思想、相关知识、流程图、算法设计(如有)、源代码及注释 , 完成实践课程报告 , 并打印后提交 。
老师根据平时考勤、演示结果、回答问题情况、实验报告情况打分 。
定于第九周周四上午进行考核 。
请各位同学做好准备 。
Shell编程部分:1、 设计一个程序cuts , 它由标准输入读取数据 , 获取有第一个参数n和第二个参数m所限定范围的数据 , n和m都是整数, 即从输入的字符串中抽取第n个字符至第m个字符 。
2、之间的所有字符(包括这两个字符)并显示出来 。
$ cuts 11 14This is a test of cuts program(回车)test(显示结果)P145 4.18#!/bin/bashread -p 请输入一段内容: TEXTread -p 请输入两个整数 , 中间用空格分开: num1 num2echo $TEXT | cut -b $num1-$num2 2/dev/null2、 利用for循环将当前目录下的.c文件移到指定的目录下 , 并按文件大小排序 , 显示移动后指定目录的内容 。
P144 4.12#!/bin/bashfor file in ls -1 /root/a | grep。
3、.*.cmv /root/a/$file /root/bls -lS /root/b3、 编写一个shell脚本 , 求斐波那契奇数列的前10项及总和 。
P144 4.14#!/bin/bashi=1j=0for ( k=0;
k100”;
如果两个数字的和小于等于100并且大于10 , 就输出“x+y10”;
如果xy , 则求出x除以y的余数并输出“x mod y = ?(把计算的值代替问号)” , 否则求出y除以x的余数并输出“y mod x = ?”.P127 例4.135、 编写一个shell脚本 , 并利用函数实现数列求和运算 。
即主程序接受两个数字 , 分别作为数列头和数列尾 , 如果第一个数字不小于第二个数字则输 。
4、出“wrong number” , 否则将这两个数字传递给函数;函数把这两个数字中间的数字加起来求和 , 并输出 。
如:当输入 3 6时 , 函数计算 3+4+5+6的值并输出 。
#!/bin/shfun()sum=0for i in seq $1 $2dosum=expr $i + $sumdoneecho $sumecho Please input 2 number:read a bexpr $a + 0 1/dev/null 2&1if $? -ne 0 ;
thenecho wrong numberexit 1;
fiexpr $b + 0 1/dev/null 2&1if $? -ne 0 ;
thene 。
5、cho wrong numberexit 1;
fiif $a -ge $b ;
thenecho wrong numberexit 1;
fifun $a $b6、 编写特洛伊木马shell脚本 。
以文本方式登陆界面 , 接收用户输入的名字和密码 。
一旦用户在这种伪装界面登陆 , 就获取用户名和密码 , 并保存在指定的文件中 。
接着睡眠几秒 , 然后显示录入错误的信息 , 使用户以为输入有误 。
最后在调用真正的登陆程序 , 允许用户正常登陆 。
P107 例4.67、 编写shell脚本 , 创建一个5个元素的数组 , 输出各个元素的值8、 编写一个脚本 , 用于统计所指定文件的行数总数 。
输出结果为各个文件的名字+行数 , 以及总行数 。
如:当输入. 。
6、/脚本名 file1 file2 , 脚本计算file1和file2两个文件的总行数#!/bin/bash#statistics the raws of the files you inputusage()echo usage:please input = two filenamestotalline=0if $# -lt 2 ;
thenusagefiwhile $# -ne 0 doline=cat $1 |wc -lecho $1:$linetotalline=$ $totalline+$line shiftdoneecho -echo totalline: $totalline9、 编写一 。
7、个shell脚本 , 根据键盘输入的值 , 给出对应的提示;输入A Z, 输出Uppercase Letter;输入a-z , 输出Lowercase Letter;输入0-9 , 输出Digit;输入其他 , 输出Punctuation, whitespace, or other#!/bin/bashexportLC_ALL=Creadawhile$adocase$ainA-Z)echoUppercaseLetter;
a-z)echoLowercaseLetter;
0-9)echoDigit;
*)echoPunctuation,whitespace,orother;
esacreadadone10、 编写shel 。
8、l脚本 , 提示用户输入用户名 , 并判断此用户名是否存在与系统用户中P123 例4.11Linux环境编程部分:1、 编写一个程序 , 把一个文件的内容复制到另一个文件上 , 即实现简单的copy功能 , 要求:只用open()/read()/write()/close()系统调用 , 程序的第一个参数为源文件 , 第二个参数为目的文件 。
P225 7.3#include #include #include #include #include #include #define BUF_SIZE 1024*8int main()int fds, fdd;
char bufBUF_SIZE;
size_t hasread = 0 。
9、;
fds = open(filea, O_RDONLY);
fdd = open(fileb, O_WRONLY, O_CREAT);
if(fds & fdd)while(hasread = read(fds, buf, sizeof(buf) 0)write(fdd, buf, hasread);
close(fds);
close(fdd);
2、 编写一个程序它利用fork()创建一个子进程;父进程打开一个文件 , 父子进程都向文件中写入信息(利用write) , 表明是在那个进程中;每个进程都打印两个进程的ID号 。
稿源:(未知)
【傻大方】网址:/a/2021/0801/0023374107.html
标题:期末|期末考核题目汇总