您的当前位置:首页正文

苏州大学操作系统实验1

2023-01-13 来源:V品旅游网


实验一 Linux系统

实验目的:

(1) 熟悉Linux操作系统,并尝试在Linux环境下编程。

(2) 使用vi编辑器,了解用C语言编写文本处理程序的具体过程。

实验要求:

(1)根据报告册上的提示进行操作,创建自己的目录,以及输入编译和执行C程序。

(2)使用C语言编写一个词频(限英文文章)统计程序,使之能够给出各个单词在输入文件中的出现次数。

(3)使用C语言编写一个反向打印程序,使之能够按与输入文件中文本行相反的次序来打印(即后出现的文本行先打印)。

问题分析:

1.1实验没有具体要求英语文章是从文件中读出,还是直接由用户从屏幕上输入一篇,因此要根据自己的情况确定读取方式。

1.2统计每个单词出现的次数及频率。

1.3将结果输出到屏幕上,要解决如何不重复输出相同单词出现的频率。

1.4如何把用户输入的文本行以相反的顺序输到屏幕上的算法。

实验程序清单:

#include

#include

void main()

{

char str[500][26]; //定义一个二维字符数组存放单词

const char str1[4]=\"000\"; //定义一个const变量,用于停止输入

const char str2=' '; //定义一个const变量,用于初始化二维数组

int num[500]; //定义一个整型数组,用于单词出现频率的计数

int mark[500]; //定义一个整型数组,用来标记已出现过的单词

int i,j,m,x;

int len;

double q[500]; //定义一个浮点型数组,用来存放出现频率的数值

again:

m=0;j=0;i=0;x=0; //对m,j,i,x进行初始化

for(m=0;m<500;m++) {

num[m]=0;

mark[m]=0;

q[m]=0;

}

for(m=0;m<500;m++) {

strcpy(str[m],&str2);

}

//对num,mark,q数组初始化

//对二维数组str进行初始化

printf(\"请输入英文文章(单词数限制在500以内,每个单词不大于25个字符)\\n\"); //对用户的引导语句

printf(\"输入“000”代表文章输入终止!\\n\"); //对用户的引导语句

for(m=0;m<500;m++) //使用for循环,将用户输入的单词依次放入二维数组

{

scanf(\"%s\

if(strcmp(str[m],str1)==0)//直到用户输入000,结束输入

break;

}

for(i=0;i{

for(j=0;j{

if(strcmp(str[i],str[j])==0)

{

if(j>i) //当j大于i时

{

mark[i]=1; //标记此时的mark

}

num[i]++; //当两个单词相同,num[i]加1

}

}

q[i]=(double)num[i]/m; //获得单词出现的频率

}

for(i=0;i{

if(mark[i]==0) //当标记为0时

{

printf(\"%s出现%d次\ //打印结果

printf(\" 频率为%lf\\n\

}

}

printf(\"重新输入按1,其它键退出程序\"); //用户输入1时,程序结束;其他任意键继续操作

scanf(\"%d\

switch(x) //使用switch语句进行判断

{

case 1: //当检测到x=1时

goto again; //运用goto语句返回again操作

break;

default: //否则结束程序

return;

}

}

(2)

include

int main()

{

int ch=0 ; //初始化为0 ,不然存储字符数据时可以出现问题

char character[1000]; // 定义一个字符数组

int i=0; //用i来对字符计数

printf(\"请输入需要转换的文本内容:\\n\"); //提示语

scanf(\"%c\

while(i < 1000 && ch != '\\n' )// ch读取到换行符的话就表明这一行的结束

{

character[i++]=ch; //把用户输入的字符变量赋给数组character

scanf(\"%c\

}

i--;

printf(\"转换后的文本:\"); //提示语

while(i >= 0) //当i大于等于0时,字符以倒序输出到屏幕上

printf(\"%c\

printf(\"\\n\");

return 0;

}

运行结果

词频统计结果如下:

因篇幅问题不能全部显示,请点此查看更多更全内容