经典重庆

标题: [原创]C语言_学习题套_第十一套 [打印本页]

作者: 文木四水    时间: 2007-2-1 13:25
标题: [原创]C语言_学习题套_第十一套
<p>第十一章<br/>题目:文件操作<br/>语言和环境<br/>实现语言<br/>C 语言<br/>B、环境要求<br/>&nbsp;Turbo C 2.0 或 Turbo C 3.0<br/>要求<br/>请编写一个C 语言程序,从输入文件读取字符,然后对它进行相应的转换,最后显示输出并写入输出文件。<br/>程序的功能要求如下:<br/>从 input.txt 中读取一篇文章存入数组temp中;<br/>以行为单位读取输入文件,把所有字符的ASCII码值右移4位,然后把右移后的字符的ASCII码值和原字符的ASCII码值相加;<br/>显示输出转换后的字符,并写入output.txt文件中;<br/>输入文件的存放格式是:每行宽度均小于80个字符,最多50行。<br/>算法说明<br/>字符的ASCII码值右移4位,可以如下实现:<br/>int temp;<br/>temp=temp&gt;&gt;4;<br/>推荐实现步骤<br/>程序总体结构<br/>定义一个用于存放从文件中读取字符的全局数组:<br/>char&nbsp; temp[50][80];<br/>编写main 函数<br/>1)&nbsp;以只读方式打开input.txt文件;<br/>2)&nbsp;将文件中的数据读出并存放到数组中(每次最多读取80个字符,3)&nbsp;循环读取):<br/>fgets(temp,80,fp)<br/>4)&nbsp;调用转换函数trans () 以将数组中的字符进行转换<br/>5)&nbsp;将数组中的数据写入文件中:<br/>fprintf(fp,”%s”,temp);<br/>编写trans函数<br/>将数组中的字符进行转换:<br/>for(i=0;i&lt;strlen(temp[j]);i++)<br/>&nbsp;temp[j]+=(temp[j]&gt;&gt;4);/*ASCII码值右移4位加上原字符的ASCII码值*/<br/>程序运行参考界面图如下所示:</p><p>命名提示符<br/>D:\&gt;fileoperate<br/>Input data:<br/>Like most languages,C has two flavors of numeric data types:<br/>integers and real numbers. Unlike many languages,they come<br/>in an array of different sizes.<br/>Output data:<br/>Paqk “suz{”rgtmlgmkz.”G”ngz”{~u”lrg}uyz”ul”t|skyoi”jg{g”{Cwkz=ot{knkyz”gtj”ykgr”t|shkyz0”Ztroqk”sgtC”rgtnm|gmkz.”{nkC”iusk”ot”gt”gyygC”ul”jollkykt{“zoz0</p><p>D:\&gt;</p><p></p><p>注意事项<br/>A、请注意在代码中添加必要的注释;<br/>B、请注意代码的书写、命名符合规范。</p>
作者: 文木四水    时间: 2007-2-1 13:26
解://第十一套&nbsp;&nbsp; 从文本文件中读出数据,进行转换后存入另一文本文件,并都输出<br/>#include&lt;stdio.h&gt;<br/>#include&lt;string.h&gt;<br/>char temp[50][80];<br/>void trans();<br/>void main()<br/>{<br/>&nbsp;FILE *fp1;<br/>&nbsp;int i=0,n;<br/>&nbsp;if((fp1=fopen("input.txt","r"))==NULL)<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("input.txt文件不存在!\n");<br/>&nbsp;&nbsp;exit(1);<br/>&nbsp;}<br/>&nbsp;else <br/>&nbsp;{<br/>&nbsp;&nbsp;while(!feof(fp1))<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;fgets(temp,80,fp1);<br/>&nbsp;&nbsp;&nbsp;i++;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;printf("原始数据:\n");<br/>&nbsp;&nbsp;for(n=0;n&lt;i;n++)<br/>&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;printf("%s",temp[n]);<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;trans(i); <br/>&nbsp;}<br/>&nbsp;fclose(fp1);<br/>&nbsp;printf("转换生成数据:\n");<br/>&nbsp;for(n=0;n&lt;i;n++)//输入数据<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("%s",temp[n]);<br/>&nbsp;}<br/>&nbsp;if((fp1=fopen("input.txt","r+"))==NULL)<br/>&nbsp;{<br/>&nbsp;&nbsp;printf("打开文件出错");<br/>&nbsp;&nbsp;exit(1);<br/>&nbsp;}<br/>&nbsp;else<br/>&nbsp;{<br/>&nbsp;&nbsp;for(n=0;n&lt;i;n++)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;fprintf(fp1,"%s",temp[n]);<br/>&nbsp;&nbsp;}<br/>&nbsp;}<br/>&nbsp;fclose(fp1);<br/>&nbsp;getch();<br/>}<br/>void trans(int num)<br/>{<br/>&nbsp;int i,n;<br/>&nbsp;for(i=0;i&lt;num;i++)<br/>&nbsp;{<br/>&nbsp;&nbsp;for(n=0;n&lt;strlen(temp);n++)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;temp[n]+=(temp[n]&gt;&gt;4);<br/>&nbsp;&nbsp;}<br/>&nbsp;}<br/>}




欢迎光临 经典重庆 (http://bbs.jdcq.net/) Powered by Discuz! X3.1