电1C语言实验报告(12)
《计算方法与程序设计实验》
if((fp1=fopen(\{
while((ch=fgetc(fp2))!=EOF) fputc(ch,fp1); } else {
printf(\}
fclose(fp1); fclose(fp2);
printf(\if((fp=fopen(\{
printf(\exit(1); }
for(i=0;(ch=fgetc(fp))!=EOF;i++) {
c[i]=ch;
putchar(c[i]); }
putchar('\\n'); fclose(fp);}
Key:第一空应填:(fp=fopen(\ 第二空应填:putc(c[i],fp); 第三空应填:&&
第四空应填:fputc(ch,fp1);
注意:若此程序运行前,先用C++集成开发环境新建文本文件b.dat,其内容为qwerty。则每次运行结果为:
3. 从磁盘文件 file1.dat 中读入一行字符到内存,将其中的小写字母全改成大写字母, 然后输出到磁盘文件file2.dat 中。 具体要求如下:
(1)用fgetc()和fputc()实现字符的输入和输出。
(2)用条件运算符判断输入的字符是否是小写字母,若是,则减去32(大小写字母的 ASCII 码相差32);否则不改变。最后输出此字符。
(3)分别用以下数据运行该程序:c,F。/*此要求似乎与题意不符,建议去掉*/ 【程序源代码1:将该行字符存入字符数组中】 #include
FILE *fp; int i;
char c[N];
36
《计算方法与程序设计实验》
if((fp=fopen(\{
printf(\exit(0); }
printf(\
for(i=0;(c[i]=fgetc(fp))!=EOF;i++) {
putchar(c[i]);
c[i]=c[i]>='a'&&c[i]<='z'?c[i]-32:c[i]; }
putchar('\\n'); fclose(fp);
if((fp=fopen(\{
printf(\exit(0); }
printf(\for(i=0;c[i]!='\\n';i++) {
fputc(c[i],fp); putchar(c[i]); }
putchar('\\n'); fputc('\\n',fp); fclose(fp); }
注意:若此程序运行前,先用C++集成开发环境新建文本文件file1.dat,若其内容为: aS12 DF-
【程序源代码2:只显示修改后的该行字符】 #include \main() { FILE *fp1,*fp2; char ch;
fp1=fopen(\ if(fp1==NULL)
{ printf(\ exit(0); }
fp2=fopen(\ if(fp2==NULL)
{ printf(\ exit(0); }
printf(\
while((ch=fgetc(fp1))!= '\\n') { ch=ch>='a'&&ch<='z'?ch-32:ch; fputc(ch,fp2);
37
《计算方法与程序设计实验》
putchar(ch); }
putchar('\\n'); fclose(fp2); fclose(fp1); }
4. 密码管理。(本实验强调文件的操作,密码设置和密码字符串的加密自己设计和实现,本实验进行不加密存储和校验) 具体要求如下:
(1)设置密码长度为6~12 个字符。
(2)加密存储到1 个ASCII 文件。本实验直接利用fputs()函数,将假定已加密的密码存储在文件password 中。
(3)密码校验。使用同一个加密算法对登录密码加密然后和设置的原始密文比较进行校验。 【程序源代码】 #include void getpass(char *s) { FILE *fp; int i=0; if((fp=fopen(\ { printf(\ printf(\ while((s[i]=getch())!='\\r') { putchar('*'); i++; } s[i]=0; putchar('\\n'); show(s); fputs(s,fp); fclose(fp); } int main() { int i; char pass[50],t[50]; while(1) { getpass(pass); i=strlen(pass); if(i>=6&&i<=12)break; } printf(\ printf(\ i=0; while(1) { while((t[i]=getch())!='\\r') { putchar('*'); 38 《计算方法与程序设计实验》 i++; } t[i]=0; putchar('\\n'); show(t); if(!strcmp(t,pass))break; printf(\ printf(\ return 0;} 输出截图 } 5. 假设有若干个学生,每个学生有 3 门功课,从键盘上输入学生有关信息(学号、姓 名、成绩),并计算其平均成绩,将原有数据和平均分保存在磁盘文件record 中。 具体要求如下: (1)学生有关信息采用结构体类型存储。 (2)fwrite()函数实现数据块输出到文件record。 (3)结合循环结构实现数据输入和输出。 【程序源代码】 #include typedef struct{int num;char name[10];float score[3],ave;}STU; main() {FILE *fp; int i,j; STU st[N]; if((fp=fopen(\ { printf(\ for(i=0;i { printf(\ scanf(\ getchar(); printf(\ gets(st[i].name); st[i].ave=0; for(j=0;j<3;j++) { printf(\ scanf(\ st[i].ave+=st[i].score[j];} st[i].ave/=j; fwrite(&st[i],sizeof(STU),1,fp);} fclose(fp);} 输出截图 39 《计算方法与程序设计实验》 6. 假设有 10 个学生记录从键盘输入到文件record 中,在实验3(实验3建议改为本实验的第5题)的基础之上,将第1、3、5、7、9 号记录学生信息读出显示在屏幕。 具体要求如下: (1)用fread()函数实现从文件record 中数据块读。 (2)用随机方式读文件,采用fseek()函数定位文件读写位置。 【程序源代码】 #include typedef struct{int num;char name[10];float score[3],ave;}STU; main() {FILE *fp; int i=1,j; STU st; if((fp=fopen(\ { printf(\while(fread(&st,sizeof(st),1,fp)==1) { printf(\ printf(\ for(j=0;j<3;j++) printf(\ printf(\ fseek(fp,sizeof(STU),SEEK_CUR); i+=2;} fclose(fp); } 输出截图 7.有两个磁盘文件,各自存放已排好序的若干字符(如a1.dat中放\,a2.dat中放\),要求将两个文件合并,合并后仍然保持有序(如\),存放在a3.dat文件中。 【程序如下】 #include {FILE *in1,*in2,*out; int i,j,n; char q[10],t; if((in1=fopen(\if((in2=fopen(\if((out=fopen(\i=0; while(!feof(in1)){q[i]=fgetc(in1);i++;} while(!feof(in2)){q[i]=fgetc(in2);i++;} i--; 40
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




