经典重庆
标题:
[原创]C语言_学习题套_第十一套
[打印本页]
作者:
文木四水
时间:
2007-2-1 13:25
标题:
[原创]C语言_学习题套_第十一套
<p>第十一章<br/>题目:文件操作<br/>语言和环境<br/>实现语言<br/>C 语言<br/>B、环境要求<br/> 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>>4;<br/>推荐实现步骤<br/>程序总体结构<br/>定义一个用于存放从文件中读取字符的全局数组:<br/>char temp[50][80];<br/>编写main 函数<br/>1) 以只读方式打开input.txt文件;<br/>2) 将文件中的数据读出并存放到数组中(每次最多读取80个字符,3) 循环读取):<br/>fgets(temp
,80,fp)<br/>4) 调用转换函数trans () 以将数组中的字符进行转换<br/>5) 将数组中的数据写入文件中:<br/>fprintf(fp,”%s”,temp
);<br/>编写trans函数<br/>将数组中的字符进行转换:<br/>for(i=0;i<strlen(temp[j]);i++)<br/> temp[j]
+=(temp[j]
>>4);/*ASCII码值右移4位加上原字符的ASCII码值*/<br/>程序运行参考界面图如下所示:</p><p>命名提示符<br/>D:\>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:\></p><p></p><p>注意事项<br/>A、请注意在代码中添加必要的注释;<br/>B、请注意代码的书写、命名符合规范。</p>
作者:
文木四水
时间:
2007-2-1 13:26
解://第十一套 从文本文件中读出数据,进行转换后存入另一文本文件,并都输出<br/>#include<stdio.h><br/>#include<string.h><br/>char temp[50][80];<br/>void trans();<br/>void main()<br/>{<br/> FILE *fp1;<br/> int i=0,n;<br/> if((fp1=fopen("input.txt","r"))==NULL)<br/> {<br/> printf("input.txt文件不存在!\n");<br/> exit(1);<br/> }<br/> else <br/> {<br/> while(!feof(fp1))<br/> {<br/> fgets(temp
,80,fp1);<br/> i++;<br/> <br/> }<br/> printf("原始数据:\n");<br/> for(n=0;n<i;n++)<br/> { <br/> printf("%s",temp[n]);<br/> }<br/> trans(i); <br/> }<br/> fclose(fp1);<br/> printf("转换生成数据:\n");<br/> for(n=0;n<i;n++)//输入数据<br/> {<br/> printf("%s",temp[n]);<br/> }<br/> if((fp1=fopen("input.txt","r+"))==NULL)<br/> {<br/> printf("打开文件出错");<br/> exit(1);<br/> }<br/> else<br/> {<br/> for(n=0;n<i;n++)<br/> {<br/> fprintf(fp1,"%s",temp[n]);<br/> }<br/> }<br/> fclose(fp1);<br/> getch();<br/>}<br/>void trans(int num)<br/>{<br/> int i,n;<br/> for(i=0;i<num;i++)<br/> {<br/> for(n=0;n<strlen(temp
);n++)<br/> {<br/> temp
[n]+=(temp
[n]>>4);<br/> }<br/> }<br/>}
欢迎光临 经典重庆 (http://bbs.jdcq.net/)
Powered by Discuz! X3.1