計算機等級二級C語言程序設計100例九

字號:

【程序91】
    題目:時間函數(shù)舉例1
    1.程序分析:
    2.程序源代碼:
    以下是引用片段:
    #include "stdio.h"
    #include "time.h"
    void main()
    { time_t lt; /*define a longint time varible*/
    lt=time(NULL);/*system time and date*/
    printf(ctime(<)); /*english format output*/
    printf(asctime(localtime(<)));/*tranfer to tm*/
    printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/
    }
    【程序92】
    題目:時間函數(shù)舉例2
    1.程序分析:
    2.程序源代碼:
    以下是引用片段:
    /*calculate time*/
    #include "time.h"
    #include "stdio.h"
    main()
    { time_t start,end;
    int i;
    start=time(NULL);
    for(i=0;i<3000;i++)
    { printf("/1/1/1/1/1/1/1/1/1/1/n");}
    end=time(NULL);
    printf("/1: The different is %6.3f/n",difftime(end,start));
    }
    【程序93】
    題目:時間函數(shù)舉例3
    1.程序分析:
    2.程序源代碼:
    以下是引用片段:
    /*calculate time*/
    #include "time.h"
    #include "stdio.h"
    main()
    { clock_t start,end;
    int i;
    double var;
    start=clock();
    for(i=0;i<10000;i++)
    { printf("/1/1/1/1/1/1/1/1/1/1/n");}
    end=clock();
    printf("/1: The different is %6.3f/n",(double)(end-start));
    }
    【程序94】
    題目:時間函數(shù)舉例4,一個猜數(shù)游戲,判斷一個人反應快慢。(版主初學時編的)
    1.程序分析:
    2.程序源代碼:
    以下是引用片段:
    #include "time.h"
    #include "stdlib.h"
    #include "stdio.h"
    main()
    {char c;
    clock_t start,end;
    time_t a,b;
    double var;
    int i,guess;
    srand(time(NULL));
    printf("do you want to play it.(’y’ or ’n’) /n");
    loop:
    while((c=getchar())==’y’)
    {
    i=rand()0;
    printf("/nplease input number you guess:/n");
    start=clock();
    a=time(NULL);
    scanf("%d",&guess);
    while(guess!=i)
    {if(guess>i)
    {printf("please input a little smaller./n");
    scanf("%d",&guess);}
    else
    {printf("please input a little bigger./n");
    scanf("%d",&guess);}
    }
    end=clock();
    b=time(NULL);
    printf("/1: It took you %6.3f seconds/n",var=(double)(end-start)/18.2);
    printf("/1: it took you %6.3f seconds/n/n",difftime(b,a));
    if(var<15)
    printf("/1/1 You are very clever! /1/1/n/n");
    else if(var<25)
    printf("/1/1 you are normal! /1/1/n/n");
    else
    printf("/1/1 you are stupid! /1/1/n/n");
    printf("/1/1 Congradulations /1/1/n/n");
    printf("The number you guess is %d",i);
    }
    printf("/ndo you want to try it again?(/"yy/".or./"n/")/n");
    if((c=getch())==’y’)
    goto loop;
    }
    【程序95】
    題目:家庭財務管理小程序
    1.程序分析:
    2.程序源代碼:
    以下是引用片段:
    /*money management system*/
    #include "stdio.h"
    #include "dos.h"
    main()
    {
    FILE *fp;
    struct date d;
    float sum,chm=0.0;
    int len,i,j=0;
    int c;
    char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];
    pp: clrscr();
    sum=0.0;
    gotoxy(1,1);printf("|---------------------------------------------------------------------------|");
    gotoxy(1,2);printf("| money management system(C1.0) 2000.03 |");
    gotoxy(1,3);printf("|---------------------------------------------------------------------------|");
    gotoxy(1,4);printf("| -- money records -- | -- today cost list -- |");
    gotoxy(1,5);printf("| ------------------------ |-------------------------------------|");
    gotoxy(1,6);printf("| date: -------------- | |");
    gotoxy(1,7);printf("| | | | |");
    gotoxy(1,8);printf("| -------------- | |");
    gotoxy(1,9);printf("| thgs: ------------------ | |");
    gotoxy(1,10);printf("| | | | |");
    gotoxy(1,11);printf("| ------------------ | |");
    gotoxy(1,12);printf("| cost: ---------- | |");
    gotoxy(1,13);printf("| | | | |");
    gotoxy(1,14);printf("| ---------- | |");
    gotoxy(1,15);printf("| | |");
    gotoxy(1,16);printf("| | |");
    gotoxy(1,17);printf("| | |");
    gotoxy(1,18);printf("| | |");
    gotoxy(1,19);printf("| | |");
    gotoxy(1,20);printf("| | |");
    gotoxy(1,21);printf("| | |");
    gotoxy(1,22);printf("| | |");
    gotoxy(1,23);printf("|---------------------------------------------------------------------------|");
    i=0;
    getdate(&d);
    sprintf(chtime,"M.d.d",d.da_year,d.da_mon,d.da_day);
    for(;;)
    {
    gotoxy(3,24);printf(" Tab __browse cost list Esc __quit");
    gotoxy(13,10);printf(" ");
    gotoxy(13,13);printf(" ");
    gotoxy(13,7);printf("%s",chtime);
    j=18;
    ch[0]=getch();
    if(ch[0]==27)
    break;
    strcpy(chshop,"");
    strcpy(chmoney,"");
    if(ch[0]==9)
    {
    mm:i=0;
    fp=fopen("home.dat","r+");
    gotoxy(3,24);printf(" ");
    gotoxy(6,4);printf(" list records ");
    gotoxy(1,5);printf("|-------------------------------------|");
    gotoxy(41,4);printf(" ");
    gotoxy(41,5);printf(" |");
    while(fscanf(fp,"ss%f/n",chtime,chshop,&chm)!=EOF)
    { if(i==36)
    { getch();
    i=0;}
    if ((i6)<17)
    { gotoxy(4,6+i);
    printf(" ");
    gotoxy(4,6+i);}
    else
    if((i6)>16)
    { gotoxy(41,4+i-17);
    printf(" ");
    gotoxy(42,4+i-17);}
    i++;
    sum=sum+chm;
    printf("s %-14s %6.1f/n",chtime,chshop,chm);}
    gotoxy(1,23);printf("|---------------------------------------------------------------------------|");
    gotoxy(1,24);printf("| |");
    gotoxy(1,25);printf("|---------------------------------------------------------------------------|");
    gotoxy(10,24);printf("total is %8.1f$",sum);
    fclose(fp);
    gotoxy(49,24);printf("press any key to.....");getch();goto pp;
    }
    else
    {
    while(ch[0]!=’/r’)
    { if(j<10)
    { strncat(chtime,ch,1);
    j++;}
    if(ch[0]==8)
    {
    len=strlen(chtime)-1;
    if(j>15)
    { len=len+1; j=11;}
    strcpy(ch1,"");
    j=j-2;
    strncat(ch1,chtime,len);
    strcpy(chtime,"");
    strncat(chtime,ch1,len-1);
    gotoxy(13,7);printf(" ");}
    gotoxy(13,7);printf("%s",chtime);ch[0]=getch();
    if(ch[0]==9)
    goto mm;
    if(ch[0]==27)
    exit(1);
    }
    gotoxy(3,24);printf(" ");
    gotoxy(13,10);
    j=0;
    ch[0]=getch();
    while(ch[0]!=’/r’)
    { if (j<14)
    { strncat(chshop,ch,1);
    j++;}
    if(ch[0]==8)
    { len=strlen(chshop)-1;
    strcpy(ch1,"");
    j=j-2;
    strncat(ch1,chshop,len);
    strcpy(chshop,"");
    strncat(chshop,ch1,len-1);
    gotoxy(13,10);printf(" ");}
    gotoxy(13,10);printf("%s",chshop);ch[0]=getch();}
    gotoxy(13,13);
    j=0;
    ch[0]=getch();
    while(ch[0]!=’/r’)
    { if (j<6)
    { strncat(chmoney,ch,1);
    j++;}
    if(ch[0]==8)
    { len=strlen(chmoney)-1;
    strcpy(ch1,"");
    j=j-2;
    strncat(ch1,chmoney,len);
    strcpy(chmoney,"");
    strncat(chmoney,ch1,len-1);
    gotoxy(13,13);printf(" ");}
    gotoxy(13,13);printf("%s",chmoney);ch[0]=getch();}
    if((strlen(chshop)==0)||(strlen(chmoney)==0))
    continue;
    if((fp=fopen("home.dat","a+"))!=NULL);
    fprintf(fp,"ss%6s",chtime,chshop,chmoney);
    fputc(’/n’,fp);
    fclose(fp);
    i++;
    gotoxy(41,5+i);
    printf("s %-14s %-6s",chtime,chshop,chmoney);
    }}}
    【程序96】
    題目:計算字符串中子串出現(xiàn)的次數(shù)
    1.程序分析:
    2.程序源代碼:
    以下是引用片段:
    #include "string.h"
    #include "stdio.h"
    main()
    { char str1[20],str2[20],*p1,*p2;
    int sum=0;
    printf("please input two strings/n");
    scanf("%s%s",str1,str2);
    p1=str1;p2=str2;
    while(*p1!=’/0’)
    {
    if(*p1==*p2)
    {while(*p1==*p2&&*p2!=’/0’)
    {p1++;
    p2++;}
    }
    else
    p1++;
    if(*p2==’/0’)
    sum++;
    p2=str2;
    }
    printf("%d",sum);
    getch();}
    【程序97】
    題目:從鍵盤輸入一些字符,逐個把它們送到磁盤上去,直到輸入一個#為止。
    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);
    }
    【程序98】
    題目:從鍵盤輸入一個字符串,將小寫字母全部轉換成大寫字母,然后輸出到一個磁盤文件“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);
    }
    【程序99】
    題目:有兩個磁盤文件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);
    }
    【程序100】
    題目:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)(包括學生號,姓名,三門課成績),計算出
    平均成績,況原有的數(shù)據(jù)和計算出的平均分數(shù)存放在磁盤文件"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("stuN");
    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);
    }