欢迎光临散文网 会员登陆 & 注册

C语言练习题3

2023-03-03 16:06 作者:屋漏天晴好  | 我要投稿

1.输入三个数,显示其中的最大值。(两种方法,if语句和条件表达式)

#include <stdio.h>

main()

{

      int a,b,c,d;

      scanf ("%d%d%d",&a,&b,&c);

//    d=a;

//    if (a<b)     d=b;

//    if (d<c)     d=c;

      d=a<b?b:a;

      d=d<c?c:d;

      printf ("%d",d);

}

2.输入三个数,按照从大到小的顺序排序。

#include <stdio.h>

main()

{

      int a,b,c,d;

      scanf ("%d%d%d",&a,&b,&c);

      if (a<b)     d=a,a=b,b=d;

      if (b<c)     d=b,b=c,c=d;

      if (a<b)     d=a,a=b,b=d;

          

      printf ("%d,%d,%d",a,b,c);

}

3.输入一个字符,判断为字母、数字或其他。

#include <stdio.h>

main()

{

      int a;

      scanf ("%c",&a);

      if(a>='a'&&a<='z'||a>='A'&&a<='Z') printf("是字母");

      else if(a>='0'&&a<='9') printf("是数字");

      else  printf("其他字符");

               

}

4.利用switch输入一个成绩,90分以上输出优秀,80-89分输出良好,60-70输出一般,60分以下输出不及格。

#include <stdio.h>

main()

{   

      int a;

      printf("请输入考试成绩:");

      scanf("%d",&a);

      switch(a/10)

      {

      case 6:

     case 7:printf("一般");break;

      case 8:printf("良好");break;

      case 9:

     case 10:printf("优秀");break;

      default:printf("不合格");

      }

}

5.输入三个数,求其最大值,最小值,并按从大到小的顺序进行排序。

#include <stdio.h>

main ()

{

      int a,b,c,min,max;

      scanf("%d%d%d",&a,&b,&c);

      max=a;

      if(max<b) max=b;

      if(max<c) max=c;

      min=a;

      if(min>b) min=b;

      if(min>c) min=c;

      b=a+b+c-min-max;

      printf("最小值%d\n",min);

      printf("最大值%d\n",max);

      printf("排序%d,%d,%d",max,b,min);

}

6.输入一个5位数,判断其是否为回文数。(回文数个位和万位,十位和千位相等如12321,45654等)

#include <stdio.h>

main()

{

      int a;

      printf("请输入一个5位数");

      scanf("%d",&a);

      if (a>=10000 && a<=99999)

           if(a/10000 == a%10 &&

           a%10000/1000 == a%100/10)

           printf("是回文数") ;

           else

           printf("不是回文数") ;

      else

           printf("不是五位数") ;

}

7.输入一个年份,判断其是否为闰年(能被四整除但是不能被100整除或者能被400整除)

#include <stdio.h>

main()

{

      int a;

      scanf ("%d",&a);

//    if(a%4!=0 ||a%400!=0 && a%100==0 )

//         printf("平年");

//    else

//         printf("闰年");

      if(a%4==0&&a%100!=0||a%400==0)

      printf("是闰年");

      else

       printf("是平年");

}

8.输入一个加减乘除和两个数,利用switch求其结果是什么。

#include <stdio.h>

main()

{

      float a,b;

      char f;

//    printf("请输入算术符(+-*/)");

//    f=getchar();

//    printf("请输入a和b的值");

      scanf("%f%c%f",&a,&f,&b);

      switch(f)

{    case '+' : printf("%f%c%f=%f",a,f,b,a+b);break;

      case '-' : printf("%f%c%f=%f",a,f,b,a-b);break;

      case '*' : printf("%f%c%f=%f",a,f,b,a*b);break;

      case '/' :

      if (b==0) printf("无意义");

      else

      printf("%f%c%f=%f",a,f,b,a/b);break;

      }

           }

9.从键盘输入一个人的月收入(38500以内),输出应交的个人所得税,个税起征点为3500元。

所得税=月收入-3500元

税率%

m<=1500

3

M>1500&&m≤4500

10

m>4500&&m≤9000

20

m>9000&&m≤35000

25

 

#include <stdio.h>

main()

{

     float m,n;

      scanf ("%f",&m);

      m=m-3500;

      if (m<=4500)

           if(m<=1500) n=0.03;

           else    n=0.1;

      else if (m<=9000) n=0.2;

      else n=0.25;

      printf ("个人所得税为%f",m*n);

}

10.计算1+2+3+4……+100的值。

#include <stdio.h>

main()

{

      int a,sum=0;

      for(a=1;a<=100;a++)

      {

           sum = sum +a;

      }

      printf("%d",sum);

}

11.计算1*2*3*4*……*9*10的值。

#include <stdio.h>

main()

{

      int a=1,sum=1;

      while(a<=10)

      {

           sum=sum*a;

           a++;

      }

      printf("%d",sum);

}

12.显示26个小写字母。

#include <stdio.h>

main()

{

      int a=97;

      do

      {

           printf("%-2c",a);

           a++;

      }while(a<='z');

}

13.在所有三位数中,显示百位和个位相等的所有数。

#include <stdio.h>

main()

{

      int a;

      for(a=100;a<=999;a++)

      {

           if(a/100 == a%10)

                 printf("%4d",a);

      }

}

14.统计1-100所有能被7整除的数有多少个。

#include <stdio.h>

main()

{

      int a,count=0;

      for(a=1;a<=100;a++)

      {

           if(a%7==0)

           count++;

      }

      printf("%d",count);

}

15.输入一串字符以*结尾,只显示其中所有的字母。

#include <stdio.h>

main()

{

      int a;

      do

      {

           a=getchar();

           if(a>='a' && a<='z' || a>= 'A' && a<='Z')

                 printf("%c",a);

      }while(a!='*');

}

16.输入一串字符以*结尾,统计其中字母和数字各有多少个。

#include <stdio.h>

main()

{

      int a,s=0,n=0;

      do

      {

           scanf("%c",&a);

           if(a>='a' && a<='z' || a>= 'A' && a<='Z')

                 n++;

           if(a>='0' && a<='9')

                 s++;

      }while(a!='*');

      printf("数字%d个,字母%d个",s,n);

}

17.输入一个数求其阶乘。(如5!=5*4*3*2*4)

#include <stdio.h>

main()

{

      int a,sum=1;

      scanf("%d",&a);

      for(;a>=1;a--)

      {

           sum = sum * a;

      }

      printf("%d",sum);

}

18.   输出99乘法口诀表

#include <stdio.h>

main()

{

      int a,b;

      for(a=1;a<=9;a++)

      {

           for(b=1;b<=a;b++)

                 printf("%2d*%d=%-3d",a,b,a*b);    

           printf("\n");

      }

}

19.百钱买百鸡问题

#include <stdio.h>

main()

{

      int g,m;

      for(g=0;g<=20;g++)

           for(m=0;m<=33;m++)

                 if((100-g-m)%3==0 && g*5+m*3+(100-g-m)/3==100)

                      printf("g=%d,m=%d,x=%d\n",g,m,100-g-m);

}

20.鸡兔同笼问题

#include <stdio.h>

main()

{

      int j,t;

      for(j=1;j<=35;j++)

//         for(t=1;t<=35;t++)

//               if(j*2+t*4==94 && j+t ==35)

//                    printf("j=%d,t=%d",j,t);

      if(j*2+(35-j)*4==94)

           printf("j=%d,t=%d",j,35-j);

}

21.矩阵星号输出问题

#include <stdio.h>

main()

{

      int a,b;

      for(a=1;a<=9;a=a+2)

      {   

           for(b=1;b<=a;b++)

           printf("*");

      printf("\n");

          

           }

      }

21.矩阵星号输出问题2

#include <stdio.h>

main()

{

      int a,b;

      for(a=9;a>=1;a=a-2)

      {   

           for(b=1;b<=(9-a)/2;b++)

           printf(" ");

            

           for(b=a;b>=1;b--)

           printf("*");

      printf("\n");

          

           }

      }

23.输出从1-100所有的素数(素数也叫质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。)

方法1:

#include <stdio.h>

main()

{

      int i,j,count=0;

      for(i=1;i<=100;i++)

      {

                 for(j=2;j<i;j++)

                      if(i%j==0) count++;

      if(count==0)

      printf("%3d",i);

      count=0;

      }

           }

方法2:

#include <stdio.h>

#include <math.h>

main()

{

      int a,b=0,i,j;

      for (j=101;j<200;j=j+2)

      {for(i=2;i<j;i++)

      {b=0;

      if (j%i==0) {b++;break;}

       }

      if (b==0) printf("%5d",j);

      }

          

          

}

24.任意输入两个数求最大公约数。

#include <stdio.h>

main()

{

      int a,b,i,t;

      scanf("%d%d",&a,&b);

      for(i=a;i>=1;i--)

           if(a%i==0&&b%i==0) break;

      printf ("%3d",i);

}

 

25.任意输入两个数求最小公倍数。

#include <stdio.h>

main()

{

      int a,b,i;

      scanf("%d%d",&a,&b);

      for(i=a;;i++)

      if(i%a==0 && i%b==0) break;

      printf("%d",i) ;

      }

 

26.用1-4进行组合,输出所有的三位数。

#include <stdio.h>

#include <math.h>

main()

{

      int i,k,j,a=0;

      for (i=1;i<5;i++) 

      for(j=1;j<=4;j++)

      for(k=1;k<=4;k++)

           if (i!=j&&j!=k&&i!=k)

           printf("%d%d%d ",i,j,k);

}

27.数组排序问题

#include <stdio.h>

#include <math.h>

main()

{

      int i,k,j,a[7]={8,9,7,6,3,4};

      for (i=0;i<7;i++) 

           for(k=0;k<6;k++)

          

                 if(a[k]<a[k+1])

                      j=a[k],a[k]=a[k+1],a[k+1]=j;

          

      for (i=0;i<7;i++)

           printf("%3d",a[i]);

}

2222222222222222

#include <stdio.h>

main()

{

      int i,a[5];

      for(i=0;i<=4;i++)

      scanf("%1d",&a[i]);

      for(i=4;i>=0;i--)

                 printf("%d",a[i]);

}

28.   输入10个数求和

#include <stdio.h>

main()

{

      int i,j,a[10],sum=0;

      for(i=0;i<=9;i++)

      {

           scanf("%d",&a[i]);

           sum = sum + a[i];

      }

      printf("%d",sum);

}

29.   输入5个数求最大值

#include <stdio.h>

main()

{

      int i,max,a[5],sum=0;

      for(i=0;i<=4;i++)

           scanf("%d",&a[i]);

      max=a[0];

      for(i=0;i<=4;i++)

      if(max<a[i])    max = a[i];

          

           printf("%d",max);

}

30.   输入5个数,从大到小排列

#include <stdio.h>

main()

{

      int t,i,j,a[5];

      for(i=0;i<=4;i++)

           scanf("%d",&a[i]);

          

      for(i=0;i<=4;i++)

           for(j=i;j<=4;j++)

                 if(a[i]<a[j+1])

           t = a[i],a[i] = a[j+1],   a[j+1]= t;

      for(i=0;i<=4;i++)

      printf("%d",a[i]);

}

31.二维数组的输入和输出

#include <stdio.h>

main()

{

      int i,j,a[4][5];

      for(i=0;i<=3;i++)

           for(j=0;j<=4;j++)

                 scanf("%1d",&a[i][j]);    

                

                

                                 

      for(i=0;i<=3;i++)

      {    for(j=0;j<=4;j++)

           {   

                 printf("%3d",a[i][j]); 

           }

          

      }

}

常见数据类型

int :整型数据,通常为默认类型;

float :单精度浮点型;

double :双精度浮点型;

char :字符型数据,属于整型数据一种;

常见进制

八进制:0开头

十进制:直接写

十六进制:0x或0X开头

printf函数

概念:标准的输出函数

格式:printf("格式说明",变量列表)

常见的格式说明符:

%d 整型

%c 字符型

%f 浮点型 

scanf函数

概念:C语言中标准的输入函数 接收用户从键盘上输入的内容

格式:scanf("格式控制",地址列表) 

跳转结构

continue :结束当前循环,开始下一轮循环

break :跳出当前循环或switch结构

goto :无条件跳转语句

分支结构

if :条件语句,后面不需要放分号

else :条件语句否定分支(与if连用)

switch :开关语句(多重分支语句)

case :开关语句中的分支标记

default :开关语句中的“其他”分支,可选。

循环结构

for:循环结构,for(1;2;3)4;

执行顺序为1->2->4->3->2...循环,

其中2为循环条件;

do :do循环结构,do 1 while(2);

执行顺序是1->2->1...循环,

2为循环条件;

while :while循环结构,

while(1) 2; 的执行顺序是1->2->1...循环,

1为循环条件;

 

 


C语言练习题3的评论 (共 条)

分享到微博请遵守国家法律