【程序93】
题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。
1.程序分析:
2.程序源代码:
#include "stdio.h"
main()
{ FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{printf("cannot open file/n");
exit(0);}
ch=getchar();
ch=getchar();
while(ch!='#')
{fputc(ch,fp);putchar(ch);
ch=getchar();
}
fclose(fp);
}
-----------------------------------------------------------------------------
【程序94】
题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。
1.程序分析:
2.程序源代码:
#include "stdio.h"
main()
{FILE *fp;
char str[100],filename[10];
int i=0;
if((fp=fopen("test","w"))==NULL)
{ printf("cannot open the file/n");
exit(0);}
printf("please input a string:/n");
gets(str);
while(str[i]!='!')
{ if(str[i]>='a'&&str[i]<='z')
str[i]=str[i]-32;
fputc(str[i],fp);
i++;}
fclose(fp);
fp=fopen("test","r");
fgets(str,strlen(str)+1,fp);
printf("%s/n",str);
fclose(fp);
}
-----------------------------------------------------------------------------
【程序95】
题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列)输出到一个新文件C中。
1.程序分析:
2.程序源代码:
#include "stdio.h"
main()
{ FILE *fp;
int i,j,n,ni;
char c[160],t,ch;
if((fp=fopen("A","r"))==NULL)
{printf("file A cannot be opened/n");
exit(0);}
printf("/n A contents are :/n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{c[i]=ch;
putchar(c[i]);
}
fclose(fp);
ni=i;
if((fp=fopen("B","r"))==NULL)
{printf("file B cannot be opened/n");
exit(0);}
printf("/n B contents are :/n");
for(i=0;(ch=fgetc(fp))!=EOF;i++)
{c[i]=ch;
putchar(c[i]);
}
fclose(fp);
n=i;
for(i=0;ifor(j=i+1;jif(c[i]>c[j])
{t=c[i];c[i]=c[j];c[j]=t;}
printf("/n C file is:/n");
fp=fopen("C","w");
for(i=0;i{ putc(c[i],fp);
putchar(c[i]);
}
fclose(fp);
}
-----------------------------------------------------------------------------
【程序96】
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出 平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。
1.程序分析:
2.程序源代码:
#include "stdio.h"
struct student
{ char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
main()
{int i,j,sum;
FILE *fp;
/*input*/
for(i=0;i<5;i++)
{ printf("/n please input No. %d score:/n",i);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{ printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].avr=sum/3.0;
}
fp=fopen("stud","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error/n");
fclose(fp);
}
-----------------------------------------------------------------------------
【程序97】
题目: 连续显示系统时间
1.程序分析: time()函数
2.程序源代码:
#include
#include
#include
int main()
{
time_t t=time(NULL);
while(1)
{
time(&t);
puts(ctime(&t));
system("cls");
}
system("pause");
return 0;
}
-----------------------------------------------------------------------------
【程序98】
题目: 用系统函数system()显示日期。
1.程序分析:
2.程序源代码:
#include
#include
void main()
{
puts("i am a boy");
system("DATE");
}
-----------------------------------------------------------------------------
【程序99】
题目: random函数
1.程序分析:
2.程序源代码:
#include
#include
#include
void main()
{
int i;
srand((unsigned)time(NULL));
for(i=0;i<=9;i++)printf(" %d ",rand());
}
-----------------------------------------------------------------------------
【程序100】
题目: 计算一个循环需要多长时间
1.程序分析:
2.程序源代码:
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
{
long i = 10000000L;
clock_t start, finish;
double duration;
/* 测量一个事件持续的时间*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i-- )
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds/n", duration );
system("pause");
}