C语言相关编程练习题

  1. 编程实现按每5个数据一行方式输出所有能被3和5整除, 但是十位不是0的3位整数。

 #include<stdio.h>

void main( )

{

int i,j=0;

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

     if((i%3==0&&i%5==0)&&((i%100)/10!=0&&(i%100)/10!=3))

     {

        printf("%5d",i);

     j++;

     if(j%5==0)

        printf("\n");

     }

}


2.编程实现从键盘上输入一个二进制数形式字符串,将其转换为十进制整数输出。
 

#include <stdio.h>

#include <math.h>

#include <string.h>

int main()

{

   char s[21];

   long a, i, len, k;

   scanf("%s",s);

   len = strlen(s);

   a = 0; k = 1;

   for(i=len-1; i>=0; i--)

   {

      if(s[i] == '1') a += pow(2.0, len-1-i);

   }

   printf("%ld\n",a);

   return 0;

}


3.给出一百分制成绩, 要求输出成绩等级“A”、“B” 、“C” 、“D”、“E”。90分以上为“A”, 80~89 分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”.

#include<stdio.h>

void main()

{

     float score;

     printf("please input a number:\n");

     scanf("%f",&score);

     if(score>=90)

        printf("A\n");

     else if(score>=80)

        printf("B\n");

     else if(score>=70)

        printf("C\n");

     else if(score>=60)

        printf("D\n");

     else if(score<60)

        printf("E\n");

}

4. 求1! +2! +3! ....+50!(这个编程结果是错误的因为字节装不下那么大的数,但程序没有错)

#include<stdio.h>

void main()

{

 int i,j;

 long int t=1,sum=0;

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

 {

 t=1;

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

 t=t*j;

 sum=sum+t;

 }

 printf("1!+2!+3!...+50!=%d",sum);

}


5  用冒泡法对10个整数排序。

#include<stdio.h>

void main(  )

 {

   int i,j,t;

   int a[10]={8,9,0,7,6,5,4,3,2,1};

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

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

      {

       if(a[j]>a[j+1])

         {

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

       }

      }  

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

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

}


6. 求500以内的素数。

#include <stdio.h>

 int main()

{

int a,i;

    for (a=2;a<=500;a++)

    {

        for (i=2;i<=a-1;i++)

        {

            if (a%i==0) 

            {

                break;

            }

        }

         if(i>=a-1)

            printf("%4d",a);

    }

}


7.编程实现技5 个数据一行的形式输出由1、3、5、7数字组成的互不相同且无重复数字的三位数。

#include <stdio.h>

void main()

{

 int a[4]={1,3,5,7};

 int i,j,k,n=0;

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

 {

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

  {

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

   {

    if(i!=j&&j!=k&&k!=i)   //三个数互不相等

    {

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

          n++;

        if(n%5==0)

               printf("\n");

    }

   }

  }

 }

}

补充:1+3+5+……+99=?

#include<stdio.h>

void main()

 {

    int  i=1,sum=0;

    while(i<100)

       {

         sum=sum+i;

         i=i+2;

        }

     printf(“%d”,sum);

  }

求1×2×3×……×10=?

#include<stdio.h>

void main()

{

     int i,k=1;

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

                      k=k*i;

               printf("k=%d",k);

}

8.求所有的水仙花数(所谓的水仙花数,是这样的一个三位数:这个数等于它的各个位的立方之和。如153=13+53+33 )

#include<stdio.h>

void main()

{

     int i,gw,sw,bw;

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

        {

               gw=i%10;

               sw=(i%100)/10;

               bw=i/100;

               if(gw*gw*gw+sw*sw*sw+bw*bw*bw==i)

                      printf("%4d",i);

        }

}

9.c语言求500以内的素数,并以10个一行输出

#include <stdio.h>

 int main()

{

int a,i,m=0;

    for (a=2;a<=500;a++)

    {

        for (i=2;i<=a-1;i++)

        {

            if (a%i==0) 

            {

                break;

            }

        }

                     if(i>=a-1)

                     {

                            printf("%4d",a);

                     m++;

                     if(m%10==0)

              printf("\n");

                     }

    }

}

10.九九乘法表,左对齐三角形

#include<stdio.h>

       void main()

        {int i,j;

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

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

                    printf(“%d*%d=%2d ”,i,j,i*j);

                printf(“\n”);

              }

       }                 

11.把100~200之间能被7整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。

#Include<stdio.h>

main( )

{ int n,j=0;

   for(n=100;n<=200;n++)

{

 if (n%7!=0)

          continue;   

       printf("%6d",n);

       j++;

       if (j%10==0)

          printf("\n");

      }

printf(" \n j=%d\n",j);

 }

12.判断输入的某个数m是否为素数。若是素数,输出“YES”,若不是,输出“NO”。

#include<stdio.h>

void main( )

{

       int j,m;

  printf("Enter an integer number: ");

  scanf("%d",&m);

  for (j=2; j<=m-1; j++)

     if (m%j==0) break;

  if (j>=m)

    printf("YES\n");

  else

    printf("NO\n");

}

13.编程序求2~10000以内的完全数。(一个数的因子(除了这个数本身)之和等于该数本身。)

例如:6的因子是1、2、3,因子和 1+2+3=6

因此 6 是完全数

#include<stdio.h>

void main( )

{

       int i,j,s;

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

       {

                     s=0;

              for(j=1;j<=i-1;j++)

                     if(i%j==0)

                            s+=j;

                     if(i==s)

                            printf("%6d\n",s);

       }

}

14.输出8*8黑白棋盘

#include<stdio.h>

void main( )

{

       int i,j;

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

       {

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

                     if((i+j)%2==0)

                            printf("■");

                            else

                            printf("  ");

                            printf("\n");

       }

}

15.编程序,输出以下图形。 

*******

 *****

  ***

   *

#include<stdio.h>

void main( )

{

int i,j;

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

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

         printf(" ");

       for (j=1;j<=8-(2*i-1);j++)

         printf("*");

       printf("\n");

     }

 }

16.输出公元1年至5000年(包含)的所有的闰年,并统计输出共有多少个闰年;

#include<stdio.h>

void main( )

{

int i,j=0;

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

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

         {

                printf("%5d",i);

         j++;

         }

         printf("闰年一共有:%5d",j);

}

17.输入一个正整数n (1<n<=10),再输入n 个整数,按逆序(存储)输出这些数。
       如:输入n=5;再输入 2,5,8,1,4存入数组,
       再交换他们的位置      4,1,8,5,2。输出

#include <stdio.h>

void main( )

{

       int i, n, temp;

       int a[10];

       scanf("%d", &n);

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

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

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

       {

              temp=a[i];

              a[i]=a[n-1-i];

              a[n-1-i]=temp;

       }

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

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

       printf("\n");

}

18.编程求出一3x4的矩阵的最大的元素值及其行列号

#include <stdio.h>

void main( )

 {

       int  i,j,row,col,max,a[3][4];

  max=a[0][0];

  row=0 ;

  col=0 ;

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

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

       if(a[i][j]>max) 

          {

                 max=a[i][j]; row=i;col=j;

          }

   printf("row=%d,col=%d",row,col);

  }

19.将一个字符数组中的初值“I am happy!”中的小写字符变大写输出。

#include <stdio.h>

  void  main( )

 {

char  c[10]={'i', ' ',’a’…};

    int  i;

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

        if(c[i]>='a'&&c[i]<='z')c[i]-=32;

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

        printf(“%c”,a[i]);

     printf(“\n”); 

 }

20.从键盘上接收一个字符串,求出串中的字符个数。

#include <stdio.h>

  void  main( )

 {  char  str[30];

    int  i=0;

    scanf(“%s”,str);

    while (str[i] != ‘\0’) i++;

printf(“the string lenth is %d”,i);

 }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值