【C语言】入门基础编程题一附答案

第一题:打印出所有的“水仙花数”,所谓“水仙花数”
是指一个3位数,其各位数字立方之和等于该数本身。
#include <stdio.h>
int main()
{
        int a,b,c;
    int i,s;
    for(i=100;i<1000;i++)
    {
        s=i;
        a=s%10;
        s=s/10;
        b=s%10;
        s=s/10;
        c=s%10;
        if(pow(a,3)+pow(b,3)+pow(c,3)==i)
                 printf("%d\n",i);
    }

第二题:键盘输入长方体的长宽高l、w、h,求其体积及表面积。要求用自定义
函数val(l,w,h)计算长方体的体积和表面积,计算结果使用全局变量带回主函数。
#include <stdio.h>
int s=0;
int v=0;
int val(int l,int w,int h);
int  main()
{
    int l,w,h;
    printf("请输入长宽高:");
    scanf("%d %d %d",&l,&w,&h);
    val(l,w,h);
    printf("长方体的表面积为:%d\n长方体的体积为:%d",s,v);    
}
int val(int l,int w,int h)
{
    s=((l*w)+(h*w)+(l*h)*2);
    v=l*w*h;    
}
第三题:编写一个函数,将三个数按由小到大的顺序排列并输出。
在main函数中输入三个数,调用该函数完成这三个数的排序。
#include <stdio.h> 
int val(int x,int y,int z);
int main()
{
    int x,y,z,x1,z1,y1;
    printf("请输入3个数:");
    scanf("%d %d %d",&x,&y,&z);
    val(x,y,z); 
    
}
int val(int x,int y,int z)
{
    if(x>y)
    {
        if(x>z)
        {
            if(y>z)
            printf("%d  %d  %d  \n",z,y,x);
            else//y小于等于z
            printf("%d  %d  %d\n",y,z,x);
        }
        else//x小于等于z 
          printf("%d  %d  %d\n",y,x,z);      
    }
    else//x小于等于y 
    {
        if(y>z)
        {
            if(x>z)
              printf("%d  %d  %d\n",z,x,y);
            else//x小于等于z 
              printf("%d  %d  %d\n",x,z,y);
        }
        else//y小于等于z 
          printf("%d  %d  %d\n",x,y,z);
    }
}
第四题:编程实现电脑随机出10道一位整数的加、减法运算,每题10分。小学生
从键盘输入答案,统计小学生最后得分。
#include <stdio.h>
#include <time.h>
int main()
{
    int a,b,c,i,s1,s2;
    int sum=0;
    srand(time(0));
    for(i=0;i<10;i++)
    {
        a=rand()%1000;
        b=rand()%1000;
        c=rand()%2;
        if(c==0)
        {
            printf("%d+%d=",a,b);
            scanf("%d",&s1);
            if(s1==(a+b))
            {
              sum=sum+10;
              printf("恭喜你答对了!+10分\n"); 
            }
        }
        else
        {
            if(a>=b)
            {
              
              printf("%d-%d=",a,b);
              scanf("%d",&s1);
              if(s1==(a-b))
              {
                sum=sum+10; 
                printf("恭喜你答对了!+10分\n"); 
              }    
            } 
        }
    }
    system("cls");//清屏 
    printf(" 你的总分为:%d\n",sum);    
}
第五题:编写程序输出下面图形 。
         *
        ***
     *****
     *******
      *****
       ***
        *

#include <stdio.h>
int main()
{
    int i;
    int n,n1,n2;
    int j;
    printf("请输入你想输出星号行数(注:必须为奇数):");
    scanf("%d",&n);
    n1=n/2+1;
    n2=n/2;
    for(i=1;i<=n1;i++)
    {
        for(j=0;j<n1+i-1;j++)
        {
            if(n1-i>j)
              printf(" ");
            else
              printf("*");
        }
        printf("\n");
    }
    for(i=n2;i>0;i--)
    {
        for(j=0;j<n1+i-1;j++)
        {
            if(n1-i>j)
              printf(" ");
            else
              printf("*");
        }
        printf("\n");
    }
     
}
第六题:设椭圆方程为:x2/a2+y2/b2=1,其中a,b从键盘输入。编程求椭圆的面积。(待定!!)
#include <stdio.h>
#include <math.h> 
#define N 200
int main()
{
    int a,b,i;
    double d,s,x,y1,y2;
    s=0;
    x=0;
    printf("请输入a,b:");
    scanf("%d %d",&a,&b); 
    d=a/N; 
    for(i=0;i<N;i++)
    {
        y1=sqrt((1-pow(x+d,2)/pow(a,2))*pow(b,2));//上底 
        y2=sqrt((1-pow(x,2)/pow(a,2))*pow(b,2));//下底
        s=s+(y1+y2)*d/2;
        x=x+d;
    }
    printf("椭圆的面积为:%lf\n",s*4);
    
}
第七题:产生40个[0,9]之间的随机数,统计每个数字出现的次数。
#include <stdio.h>
#include <time.h>
int main()
{
    int val[10]={0},i,a;
    srand(time(0));
    for(i=0;i<40;i++)
    {
        a=rand()%10;
        val[a]++;
        printf("%d  ",a);
    }
    printf("\n");
    for(i=0;i<10;i++)
    {
        printf("%d出现的次数:%d\n",i,val[i]);
    }
    printf("\n");
}
第八题:int x[6]={5,2,9,4,11,6}求数组中所有下标为偶数的数组元素阶乘的和并输出
(用自定义函数求阶乘的和,数组名做函数参数,返回值是和)。
#include <stdio.h>
int val();
int main()
{
    int x[6]={5,2,9,4,11,6};
        int sums;
        sums=val(x[6]);
        printf("阶乘和为:%d",sums);    
}
int val()
{
    int x[6]={5,2,9,4,11,6};
    int i,n,j;
    long s=1;
    long sum=0;
    for(i=0;i<6;i++)
    {
        s=1;
        if(i%2==0)
        {
            
            n=x[i];
            printf("下标为偶数对应的值为:%d\n",n);
            for(j=1;j<=n;j++)
                
            {
                s=s*j;
                
            }
            printf("阶乘为:%d\n",s);
        }
        else
        {
            continue;
        }
        sum=sum+s;
    }
    return sum;
}
 


版权声明:本文为m0_63949551原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。