【C语言基础一百题12】93-100题文件和常用库函数

    技术2024-10-30  57

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

    }

    最新回复(0)