【程序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");
}