小工具知识网

当前位置: 首页 > 行业知识 > C语言基础100例子

行业知识

C语言基础100例子

2026-11-05 00:39:52 来源:互联网转载

C语言基础100例子

      • 题目1:有1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
      • 题目2:企业发放的奖金根据利润提成。
      • 题目3:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
      • 题目4:输入某年某月某日,判断这一天是这一年的第几天?
      • 题目5:输入三个整数x,y,z,请把这三个数由小到大输出。
      • 题目6:用号输出字母C的图案。
      • 题目7:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
      • 题目8:输出9*9口诀。
      • 题目9:要求输出国际象棋棋盘。
      • 题目10:打印楼梯,同时在楼梯上方打印两个笑脸。
      • 题目11:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不***,问每个月的兔子总数为多少?(输出前40个月即可)
      • 题目12:判断 101 到 200 之间的素数。
      • 题目13:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
      • 题目14:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
      • 题目15:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
      • 题目16:输入两个正整数m和n,求其最大公约数和最小公倍数。
      • 题目17:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
      • 题目18:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
      • 题目19:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
      • 题目20:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
      • 题目21:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
      • 题目22:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
      • 题目23:打印出如下图案(菱形)。
      • 题目24:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
      • 题目25:求1+2!+3!+...+20!的和。
      • 题目26:利用递归方法求5!。
      • 题目27:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
      • 题目28:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
      • 题目29:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
      • 题目30:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
      • 题目31:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
      • 题���32:删除一个字符串中的指定字母,如:字符串 "aca",删除其中的 a 字母。

        题目1:有1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

        **程序分析:**可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。

        ()
        #include int main(){    int i,j,k;    printf("\n");    for(i=1;i // 以下为三重循环        for(j=1;j            for (k=1;k // 确保i、j、k三位互不相同                if (i!=k&&i!=j&&j!=k) {                     printf("%d,%d,%d\n",i,j,k);                }            }        }    }}    double i;    double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;    printf("你的净利润是:\n");    scanf("%lf",&i);    bonus1=100000*0.1;    bonus2=bonus1+100000*0.075;    bonus4=bonus2+200000*0.05;    bonus6=bonus4+200000*0.03;    bonus10=bonus6+400000*0.015;    if(i        bonus=i*0.1;    } else if(i        bonus=bonus1+(i-100000)*0.075;    } else if(i        bonus=bonus2+(i-200000)*0.05;    } else if(i        bonus=bonus4+(i-400000)*0.03;    } else if(i        bonus=bonus6+(i-600000)*0.015;    } else if(i1000000) {        bonus=bonus10+(i-1000000)*0.01;    }    printf("提成为:bonus=%lf",bonus);     printf("\n");}    int  i, j, m, n, x;    for (i = 1; i z) { /*交换z,y的值*/        t=y;y=z;z=t;    }    printf("从小到大排序: %d %d %d\n",x,y,z);}
        请输入三个数字:132从小到大排序: 1 2 3

        题目6:用号输出字母C的图案。

        **程序分析:**可先用’*'号在纸上写出字母C,再分行输出。

        程序源代码:

        #include "stdio.h"int main(){    printf("用 * 号输出字母 C!\n");    printf(" ****\n");    printf(" *\n");    printf(" * \n");    printf(" ****\n");}
        用 * 号输出字母 C! **** * *  ****

        题目7:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

        **程序分析:**字符共有256个。不同字符,图形不一样。

        VC6.0下出现中文乱码(原因+解决方法):

        176的16进制是B0,219的16进制是DB,0xB0DB是"佰"字的内码,所以输出的就是"佰"了。

        主要原因是文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,要显示扩展的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。具体修改控制台的默认代码页步骤如下:

        • 1.点击运行界面左上角标题栏图标【c:\】,选择默认值一项
        • 2.修改默认代码页,936(ANSI/OEM-简体中文GBK)为437 OEM-美国
        • 3、关闭后重新运行一下即可
          #includeint main(){    char a=176,b=219;    printf("%c%c%c%c%c\n",b,a,a,a,b);    printf("%c%c%c%c%c\n",a,b,a,b,a);    printf("%c%c%c%c%c\n",a,a,b,a,a);    printf("%c%c%c%c%c\n",a,b,a,b,a);    printf("%c%c%c%c%c\n",b,a,a,a,b);    return 0;}

          [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I15dxGHg-1665651728902)(C:\Users\11910\AppData\Roaming\Typora\typora-user-images\image-20221013110321372.png)]

          题目8:输出9*9口诀。

          **程序分析:**分行与列考虑,共 9 行 9 列,i 控制行,j 控制列。

          程序源代码:

          #includeint main(){    int i,j,result;    printf("\n");    for (i=1;i        for(j=1;j            result=i*j;            printf("%d*%d=%-3d",i,j,result); /*-3d表示左对齐,占3位*/        }    printf("\n"); /*每一行后换行*/    }}    int i,j;    for(i=0;i        for(j=0;j    int i,j;    printf("\n"); /*输出两个笑脸*/    for(i=1;i        for(j=1;j    int f1=1,f2=1,i;    for(i=1;i        printf("%12d%12d",f1,f2);        if(i%2==0) printf("\n");        f1=f1+f2;        f2=f1+f2;    }        return 0;}    int i,j;    int count=0;        for (i=101; i        for (j=2; j        // 如果 j 能被 i 整除再跳出循环            if (i%j==0)                 break;        }    // 判断循环是否提前跳出,如果 j            count++;            printf("%d ",i);        // 换行,用 count 计数,每五个数换行            if (count % 5 == 0)             printf("\n");        }    }        return 0;}    int i,x,y,z;    for(i=100;i        x=i%10;        y=i/10%10;        z=i/100%10;                if(i==(x*x*x+y*y*y+z*z*z))        printf("%d\n",i);            }    return 0;}    int n,i;    printf("请输入整数:");    scanf("%d",&n);    printf("%d=",n);    for(i=2;i        while(n%i==0)        {            printf("%d",i);            n/=i;            if(n!=1) printf("*");        }    }        printf("\n");    return 0;}    int score;    char grade;    printf("请输入分数: ");    scanf("%d",&score);    grade=(score=90)?'A':((score=60)?'B':'C');    printf("%c\n",grade);    return 0;}    int a,b,t,r,n;    printf("请输入两个数字:\n");    scanf("%d %d",&a,&b);    if(at=b;b=a;a=t;}    r=a%b;    n=a*b;    while(r!=0)    {        a=b;        b=r;        r=a%b;    }    printf("这两个数的最大公约数是%d,最小公倍数是%d\n",b,n/b);        return 0;}    char c;    int letters=0,spaces=0,digits=0,others=0;    printf("请输入一些字母:\n");    while((c=getchar())!='\n')    {        if((c='a'&&c    int s=0,a,n,t;    printf("请输入 a 和 n:\n");    scanf("%d%d",&a,&n);    t=a;    while(n0)    {        s+=t;        a=a*10;        t+=a;        n--;    }    printf("a+aa+...=%d\n",s);    return 0;}    int i,j,k,n,sum;    int a[256];    for(i=2;i        sum=a[0]=1;        k=0;        for(j=2;j            if(i%j==0)            {                sum+=j;                a[++k]=j;            }                    }        if(i==sum)        {            printf("%d=%d",i,a[0]);            for(n=1;n    float h,s;    h=s=100;    h=h/2; //第一次反弹高度    for(int i=2;i        s=s+2*h;        h=h/2;    }    printf("第10次落地时,共经过%f米,第10次反弹高%f米\n",s,h);    return 0;}    int day, x1 = 0, x2;    day=9;    x2=1;    while(day0) {        x1=(x2+1)*2;  // 第一天的桃子数是第2天桃子数加1后的2倍        x2=x1;        day--;    }    printf("总数为 %d\n",x1);        return 0;}    char i,j,k;    for(i='x';i        for(j='x';j            if(i!=j) {                for(k='x';k                    if(i!=k&&j!=k) {                        if(i!='x'&&k!='x'&&k!='z') {                            printf("顺序为:a--%c\tb--%c\tc--%c\n",i,j,k);                        }                    }                }            }        }    }}    int i,j,k;    for(i=0;i        for(j=0;j            printf(" ");        }        for(k=0;k            printf("*");        }        printf("\n");    }    for(i=0;i        for(j=0;j            printf(" ");        }        for(k=0;k            printf("*");        }        printf("\n");    }  }    int i,t;    float sum=0;    float a=2,b=1;    for(i=1;i        sum=sum+a/b;        t=a;        a=a+b;        b=t;    }    printf("%9.6f\n",sum);  }    int i;    long double sum,mix;    sum=0,mix=1;    for(i=1;i        mix=mix*i;        sum=sum+mix;    }      printf("%Lf\n",sum);  }    int i;    int fact(int);    for(i=0;i        printf("%d!=%d\n",i,fact(i));    }}int fact(int j){    int sum;    if(j==0){        sum=1;    } else {        sum=j*fact(j-1);    }    return sum;}    int i=5;    void palin(int n);    printf("请输入5个字符:");    palin(i);    printf("\n");}void palin(n)int n;{    char next;    if(n        next=getchar();        printf("相反顺序输出结果:");        putchar(next);    } else {        next=getchar();        palin(n-1);        putchar(next);    }}    int c;    if(n==1) c=10;    else c=age(n-1)+2;    return(c);}int main(){    printf("%d\n",age(5));}    long a,b,c,d,e,x;    printf("请输入 5 位数字:");    scanf("%ld",&x);    a=x/10000;        /*分解出万位*/    b=x%10000/1000;   /*分解出千位*/    c=x%1000/100;     /*分解出百位*/    d=x%100/10;       /*分解出十位*/    e=x%10;           /*分解出个位*/    if (a!=0){        printf("为 5 位数,逆序为: %ld %ld %ld %ld %ld\n",e,d,c,b,a);    } else if(b!=0) {         printf("为 4 位数,逆序为: %ld %ld %ld %ld\n",e,d,c,b);    } else if(c!=0) {         printf("为 3 位数,逆序为:%ld %ld %ld\n",e,d,c);    } else if(d!=0) {         printf("为 2 位数,逆序为: %ld %ld\n",e,d);    } else if(e!=0) {         printf("为 1 位数,逆序为:%ld\n",e);    }}    long ge,shi,qian,wan,x;    printf("请输入 5 位数字:");    scanf("%ld",&x);    wan=x/10000;        /*分解出万位*/    qian=x%10000/1000;  /*分解出千位*/    shi=x%100/10;       /*分解出十位*/    ge=x%10;            /*分解出个位*/    if (ge==wan&&shi==qian) { /*个位等于万位并且十位等于千位*/        printf("这是回文数\n");    } else {        printf("这不是回文数\n");    }}    char i,j;    printf("请输入第一个字母:\n");    scanf("%c",&i);    getchar();//scanf("%c",&j);的问题,第二次是读入的一个换行符,而不是输入的字符,因此需要加一个getchar() 吃掉换行符    switch(i)    {        case 'm':            printf("monday\n");            break;        case 'w':            printf("wednesday\n");            break;        case 'f':            printf("friday\n");            break;        case 't':            printf("请输入下一个字母\n");            scanf("%c",&j);            if (j=='u') {printf("tuesday\n");break;}            if (j=='h') {printf("thursday\n");break;}        case 's':            printf("请输入下一个字母\n");            scanf("%c",&j);            if (j=='a') {printf("saturday\n");break;}            if (j=='u') {printf("sunday\n"); break;}        default :            printf("error\n"); break;    }    return 0;}    int hash [256];    if(NULL == charSet)        return str;    for(int i = 0; i 

上一篇:微擎手机购买攻略,选购指南与步骤,轻松挑选心仪手机!

下一篇:我会拼写用英语怎么读?