zoukankan      html  css  js  c++  java
  • C语言经典例题100(87~100)

    八十七、回答结果(结构体变量传递)

    输出依然为3,a。函数f传递的是变量a的一个副本复制。

    #include "stdio.h"
    struct student
    { int x;
    char c;
    } a;
    main()
    {a.x=3;
    a.c='a';
    f(a);
    printf("%d,%c",a.x,a.c);
    }
    f(struct student b)
    {
    b.x=20;
    b.c='y';
    }

    八十九、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

    #include<stdio.h>
    
    //先设计一个判断数字是否为4位的函数
    int Judge_Num(unsigned int a)
    {
        int n=a/1000;
        if((n>=1)&&(n<=9))
            return 1;
        else 
            return 0;
    }
    
    //编码函数
    unsigned int Code_Num(unsigned int a)
    {
        unsigned int b[4],m=a;
        int i;
        for(i=0;i<4;i++)
        {
            b[i]=m%10;
            b[i]=(b[i]+5)%10;
            m=(m-m%10)/10;
        }
        return b[3]+b[2]*10+b[1]*100+b[0]*1000;
    }
    
    int main()
    {
        unsigned x,y;
        unsigned int Code_Num(unsigned int a);
        printf("请输入一个四位数
    ");
        scanf("%d",&x);
        if(Judge_Num(x))
        {
            y=Code_Num(x);
            printf("原数为%d,加密后为%d。
    ",x,y);
        }
        else
        {
            printf("原数为%d,位数不为4。
    ",x);
        }
        getch();
        return 0;
    }
    
        

    九十、读结果。

    54321

    #include "stdio.h"
    #define M 5
    main()
    {int a[M]={1,2,3,4,5};
    int i,j,t;
    i=0;j=M-1;
    while(i<j)  
    {t=*(a+i);
    *(a+i)=*(a+j);
    *(a+j)=t;
    i++;j--;
    }
    for(i=0;i<m;i++)  
    printf("%d",*(a+i));
    }

    九十六、计算字符串中子串出现的次数。

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        char str[]="i a m xyz amtys 1280i a m!OPi a m**";
        char str1[]="i a m ";
        int i,j,k;
        int len=strlen(str);
        int len1=strlen(str1);
        i=j=k=0;
        while(i<len)
        {
            if(str[i]!=str1[j])
            {
                i++;
                continue;
            }
            else
            {
                for(j=0;j<len1;i++,j++)
                {
                    if(str[i]==str1[j])
                        continue;
                    else
                        break;
                }
                if(j==len1)
                {
                    j=0;
                    k++;
                }
            }
        }
        printf("出现次数为%d.
    ",k);
        getch();
        return 0;
    }
    
    
    
            
            

    九十七、从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        char c;
        FILE *fp;
        fp=fopen("ex97.txt","wb");
        if(fp==NULL)
        {
            printf("File Open Error!
    ");
            exit(1);
        }
        printf("please input a string ending by '#'.
    ");
        while((c=getchar())!='#')
            putc(c,fp);
        fclose(fp);
        return 0;
    }

    九十八、从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
        char str[1000];
        FILE *fp;
        int i=0;
        printf("input a string.
    ");
        gets(str);
        
        while(str[i]!='')
        {
            if((str[i]>='A')&&(str[i]<='Z'))
                str[i]+=32;
            i++;
        }
        puts(str);
        fp=fopen("test.txt","w");
        if(fp==NULL)
            printf("File Open Error!
    ");
        else
        {
            fputs(str,fp);
            fclose(fp);
        }
        getch();
        return 0;
    }

    九十九、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中。

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    //字符串按字母顺序排列
    void sort_char(char *s1)
    {
        int len=strlen(s1);
        int i,j;
        char c;
        for(i=0;i<len-1;i++)
            for(j=i+1;j<=len-1;j++)
            {
                if(s1[i]<s1[j])
                {
                    c=s1[j];
                    s1[j]=s1[i];
                    s1[i]=c;
                }
            }
    }
    
    
    int main()
    {
        char sa[200],sb[200];
        FILE *fpa,*fpb,*fpc;
        int i=0;
        void sort_char(char *s1);
        fpa=fopen("a.txt","rb");
        fpb=fopen("b.txt","rb");
        fpc=fopen("c.txt","w");
        if(fpa==NULL)
        {
            printf("File A Open Error!
    ");
            exit(1);
        }
        if(fpb==NULL)
        {
            printf("File B Open Error!
    ");
            exit(1);
        }
        if(fpc==NULL)
        {
            printf("File C Open Error!
    ");
            exit(1);
        }
        fgets(sa,200,fpa);
        fgets(sb,200,fpb);
        strcat(sa,sb);
        sort_char(sa);
        puts(sa);
        fputs(sa,fpc);
    
        getch();
        return 0;
    }

    一百、有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件"stud"中。

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #define MAX_Size 5
    
    struct student
    {
        int num;
        char name[20];
        float score[3];
        float ave;
    }stu[MAX_Size];
    
    int main()
    {
        int i;
        FILE *fp;
        struct student s1;
        printf("请输入各学生的信息:
    ");
        for(i=0;i<MAX_Size;i++)
        {
            printf("请输入第%d个学生的学号:
    ",i+1);
            scanf("%d",&stu[i].num);
            printf("请输入第%d个学生的姓名:
    ",i+1);
            scanf("%s",stu[i].name);
            printf("请输入第%d个学生第1门课的成绩:
    ",i+1);
            scanf("%f",&stu[i].score[0]);
            printf("请输入第%d个学生第2门课的成绩:
    ",i+1);
            scanf("%f",&stu[i].score[1]);
            printf("请输入第%d个学生第3门课的成绩:
    ",i+1);
            scanf("%f",&stu[i].score[2]);
        }
        for(i=0;i<MAX_Size;i++)
        {
            stu[i].ave=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;
        }
        if((fp=fopen("stu.txt","w"))==NULL)
        {
            printf("file open error!
    ");
            exit (0);
        }
        else
        {
            for(i=0;i<MAX_Size;i++)
            {
                fwrite(&stu[i],sizeof(struct student),1,fp);
            }
    
            fclose(fp);
        }
        getch();
        return 0;
    }
  • 相关阅读:
    webpack-dev-server
    python 基础语言 学习笔记
    react 避免重复渲染
    获取cookie
    解决 canvas 在高清屏中绘制模糊的问题
    h5页面点击事件ios没反应 移动端兼容性问题
    rem 刷新闪烁问题
    谷歌禁止input自动填充表单信息
    react 循环产生定时器
    IOS开发-UI学习-UIWebView,简单浏览器的制作
  • 原文地址:https://www.cnblogs.com/tsembrace/p/3268593.html
Copyright © 2011-2022 走看看