c语言实验报告 第十章,C语言程序设计实验报告册(第十次).doc

C语言程序设计实验报告册(第十次).doc

C语言程序设计

实验报告册

《C语言程序设计》实 验 报 告

学号: 姓名: 班级: 成绩:

实验名称: 文件实验地点:所使用的开发工具及环境:pc机一套实验目的:

1.熟悉文件和文件指针的概念以及文件指针的定义方法。

2.掌握文件打开和关闭的概念和方法。

3.掌握常用的关于文件操作库函数的使用。

实验内容:

1、程序调试题(文件名为test1-1.c)

磁盘上有一个名为test1-1.c的C程序文件,其中函数fun的功能是:在字符串a中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前字符串为:123aBYdZf,调用后字符串中的内容为:f123aBYdZ。

在main函数中,从文本文件test1-1.txt中读出字符串放入一维数组a中,调用fun函数构成新的数组,在主函数中输出处理后的结果。

请改正程序中的错误,使它能得出正确结果。

注意:不得增行或删行,也不得更改程序结构。

源程序如下:

#include

#include

#include

fun(char *p)

{ char max,*q; int i=0;

max=p[i];

while(p[i]!=0)

{if(max>p[i])

{ max=p[i];

q=p+1;

}

i++;

}

while(q>p)

{*q=*(q-1);

q++;

}

p[0]=max;

}

void main( )

{ FILE *fp;

char a[255];

int i=0;

if((fp=fopen("test1-1.txt","r"))==NULL)

{ printf("Cannot open the file.\n");

exit(0);

}

while(1)

{ a[i++]=fgets(fp);

if(a[i]==EOF) break;

i++;

}

a[i]="\0";

printf("The original string :" );

puts(a);

fun(a);

printf("The string of changing is :: %s\n\n",a);

fclose(fp);

}

2.程序调试题(文件名为test2-1.c)

磁盘上有一个名为test2-1.c 的C程序文件,其中函数fun的功能是:统计数组a中素数的个数,并将个数作为函数值返回。

在main函数中,从文件test2-1.txt中读出10个整数放入整型数组中,调用fun函数,将整型数组的10个数及素数的个数输出到屏幕上。

请改正程序中的错误,使它能得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构。

源程序如下:

#include

#include

int fun(int *a,int n)

{int i,j,cnt=0;

for(i=0;i

{ for(j=2;j<=i/2;j++)

if(i%j==0) continue;

if(j>a[i]/2) cnt++;

}

return cnt;

}

void main( )

{int a[10],i,cnt;

file *fp;

if((fp=fopen("test2-1.txt","r"))==NULL)

{printf("Cannot open the file.\n");

exit(0);

}

for(i=0;i<10;i++)

{scanf(fp,"%d",a+i);

printf("%5d",a[i]);

}

cnt=fun(a,10);

printf("\ncnt=%d\n",cnt);

fclose(fp);

}

3.编程题(test1-2.c)

编写程序,实现矩阵(3行列)的转置(即行列互换)

例如,输入如下的矩阵:

100 200 300

400 500 600

700 800 900

则程序输出:

100 400 700

200 500 800

300 600 900

注意:部分源程序给出如下。

请勿改动主函数main 和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值