C语言程序设计经典例题100道(三)

  1. 编写C语言程序,从键盘输入一个整数n,然后计算n的阶乘n!,并输出结果到屏幕上。如果整数n小于0,则输出“数据有误”。

#include<stdio.h>
int main()
{
    int n;
    int i=1;
    int product=1;
    printf("请输入一个整数:");
    scanf("%d",&n);
    if((n<0)||(n>12))
    {
        printf("数据有误");
        return 1;
    }
    while(i<=n)
    {
    product=product*i;
    i++;
}
printf("%d!=%d",n,product);
return 0; 
}

运行结果

注意:在使用int类型的情况下,该程序可以计算出正确阶乘结果的最大n值是12.

  1. 编写C语言程序,从键盘输入一个整数n,然后判断n是素数还是合数并输出结果到屏幕中。如果整数n小于2则输出“数据有误”。

提示: 素数又称质数,指在大于1的整数中,除了1和该数自身外,无法被其他整数整除的数(或者说是只有1与该数本身两个正因数的数)。大于1的整数若不是素数,则称为合数。

#include<stdio.h>
int main()
{
    int n;
    int i=2;
    printf("请输入一个整数:");
    scanf("%d",&n);
    if(n<2)
    {
        printf("数据有误");
        return 1;
    }
    while(i<n)
    {
        if (n%i==0)
    {
        printf("%d是合数",n);
        break;
        }    
        i++;
}
if(i==n)
{
    printf("%d是素数",n);
    }
return 0; 
}

运行结果

  1. 编写C语言程序,从键盘输入一个八进制整数,然后分别以十进制和十六进制的格式输出该整数到屏幕中。

提示:(1)函数scanf()使用格式描述符”%o“(小写字母o)从键盘接收一个八进制整数到整数类型的变量中。

(2)函数printf()使用格式描述符”%d”或“%i”输出整型变量的十进制数值。

(3)函数printf()使用格式描述符”%o”输出整型变量的八进制数值。

(4)函数printf()使用格式描述符”%x”或“%X”输出整型变量的十六进制数值。

#include<stdio.h>
int main()
{
    int number;
    printf("请输入一个八进制整数:");
    scanf("%o",&number);
    printf("八进制数:%o\n",number);
    printf("十进制数:%d\n",number);
    printf("十六进制数:%x\n",number);
    return 0;
}

运行结果

  1. 编写C语言程序,从键盘输入一个整数n,然后模拟抛硬币n次,并统计正面和反面的次数。如果整数n<1,则输出“数据有误”。

提示:需要使用以下3给函数:srand()、rand()、time()

rand()函数需要的头文件是<stdlib.h>

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int n;
    int coin;
    int i;
    int front=0;
    int back;
    printf("请输入模拟抛硬币次数:");
    scanf("%d",&n);
    if(n<1)
    {
        printf("非法数据");
        return 1;
    }
    srand(time(NULL));
    for(i=1;i<=n;i++)
    {
        printf("第%d次;",i);
        coin=rand()%2;
        if(coin==0)
        {
            printf("正面\n");
            front++; 
        }
        else
        {
            printf("反面\n");
            back++;
        }
    }
    printf("正面次数:%d\n",front);
    printf("反面次数:%d\n",back);
    return 0;
}

运行结果

  1. 编写C语言程序,从键盘输入2个整数min和max,然后输出10个在min和max之间的随机整数n(min<n<max)。如果整数min和max不满足条件“0<min<max",则输出”非法数据“。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int min;
    int max;
    int i;
    int n;
    srand(time(NULL));
    printf("请输入整数min和max:");
    scanf("%d%d",&min,&max);
    if((min<0)||(min>max))
    {
        printf("非法数据");
        return 1;
    }
    for(i=1;i<=10;i++)
    {
        n=rand()%(max-min+1)+min;
        printf("第%d个随机数;%d\n",i,n);
    }
    return 0;
}

运行结果

  1. 编写C语言程序,从键盘输入2个整数m和n,如果m小于n则交换m和n的值,以确保m不小于n,然后计算m减去n的差,并输出结果到屏幕中。

#include<stdio.h>
int main()
{
    int m;
    int n;
    printf("请输入整数m:");
    scanf("%d",&m);
    printf("请输入整数n:");
    scanf("%d",&n);
    if(m>n)
    {
        printf("%d-%d=%d\n",m,n,m-n);
    }
    else
    {
        printf("%d-%d=%d\n",n,m,n-m);
    }
    return 0;
}

运行结果

  1. 编写C语言程序,从键盘上输入圆的半径r,然后计算该圆的周长和面积,并输出结果到屏幕中。如果半径r小于0,则输出”非法数据“。

#include<stdio.h>
int main()
{
    double r;//定义圆半径
    double c;//定义圆周长
    double s;//定义圆面积
    double pi=3.14;//定义圆周率
    printf("请输入圆的半径r:");
    scanf("%lf",&r);
    if(r<0)
    {
        printf("非法数据");
        return 1 ; 
    }
    else
    {
        c=2*pi*r;
        printf("圆的周长是:%f\n",c);
        s=pi*r*r;
        printf("圆的面积是:%f\n",s);
    }
    return 0;
}

运行结果

  1. 编写C语言程序,从键盘输入一个U盘的标称容量size(单位:GB),然后计算其实际容量并输出结果到屏幕中,结果保留到小数点后3位。如果标称容量size小于0,则输出”非法数据“。

提示:衡量信息容量的基本单位是字节(Byte),1个字节相当于8个二进制位,即:

1Byte=8bits

1个字节的容量是比较小的,因此计算机系统通常使用K,M,G,T等倍率前缀配合字节来描述信息容量:

1TB=GB=MB=KB=B=1099 511 627 776 Byte

而计算机的硬盘、U盘以及光盘等外部存储设备的生产商对于存储产品的容量定义是

1TB=GB=MB=KB=B=1 000 000 000 000Byte

使用,如果在市场上购买一个标称容量位32GB的U盘,那么在计算机上的程序软件显示,该U盘只有大约29.8CB的容量而已。

#include<stdio.h>
int main()
{
    double size;
    printf("请输入U盘容量(GB):");
    scanf("%lf",&size);
    if(size<0)
    {
        printf("非法数据");
        return 1 ; 
    }
    else
    {
        size=size*1000*1000*1000;
        size=size/1024/1024/1024;
        printf("U盘的实际容量是:%.3f\n",size);
        
    }
    return 0;
}

运行结果

  1. 编写C语言程序,输出三角形的九九乘法表,要求左对齐。

提示:使用换码序列‘\t’实现每列数据左对齐。

#include<stdio.h>
int main()
{
    int n=9;
    int i,j;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
        printf("%d*%d=%d\t",j,i,i*j);
    }
    printf("\n");
}
return 0;
}

运行结果

  1. 编写C语言程序,输出所有三位水仙花数。每行输出一个三位水仙花数。

提示:一个n位整数如果等于它的n个数字的n次方之和,则称该n位数位n位水仙花数。

例如:153=++=1+125+27,所以称153是一个三位水仙花数。

#include<stdio.h>
int main()
{
    int a,b,c,i;
    for(i=100;i<=999;i++)
    {
        c=i%10;
        b=(i%100)/10;
        a=i/100;
        if(a*a*a+b*b*b+c*c*c==i)
        {
            printf("%d=%d^3+%d^3+%d^3\n",i,a,b,c);
        }
}
return 0;
}

运行结果

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值