c语言练习题(二)

时间:2021-09-17 12:15:25

练习作业 :

1、  输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

#include <stdio.h>

#include <math.h>

#include <string.h>

#define pi 3.14

 

//1、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

void count(){

 

 char s[100];

 int zm=0,kg=0,sz=0,other=0,i;

   printf(" 请输入字符串:");

   gets(s);

   for(i=0;i<strlen(s);i++){

 

     if( s[i]>='A'&& s[i]<='z'){

     zm++;

 

   

   }else if(s[i]==' '){

   

   kg++;

   

   }else if(s[i]>='0' &&s[i]<='9'){

   

   sz++;

   }else{

            other++;

   

   }

 

 

  

   }

   printf("字母有%d个,空格有%d个,数字有%d个,其他字符%d个 ",zm,kg,sz,other);

 

 

}

 

2、  求输入三角形的三条边,求三角形面积

#include <stdio.h>

#include <math.h>

#include <string.h>

 

void  area(){

 

    double p,s,a,b,c;

    printf("请输入长宽 高:");

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

     if(a>0 && b>0 &&c>0 ||a+b>c || a+c>b|| b+c>a){

 

      p=(a+b+c)/2.0;

    s=sqrt(p*(p-a)*(p-b)*(p-c));

 

    printf("三角形的面积为:%lf\n",s);

     }else{

    

       printf("这不是一个三角形");

    

     }

 

 

}

3、  输入一个华氏温度,要求输出摄氏温度,公式为:C=5/9*(F-32) 输出要有文字说明,取两位小数

#include<stdio.h>

#include<math.h>

#include<string.h>

void wendu(){

   double f,c;

   printf("请输入华氏温度:");

  scanf("%lf",&f);

   c=5/9.0*(f-32);

 printf("摄氏温度为:%3.2lf\n",c);

 

 

 

 

}

4、  输入圆的半径和圆柱的高,求圆周长、圆面积、圆柱体积

#include <stdio.h>

#include <math.h>

#include <string.h>

#define pi 3.14

void yuan(){

 

   double a,b,l,s,t;

 printf("请输入半径 高:");

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

 l=2*pi*a;

 s=pi*a*a;

  t=s*b;

      printf("圆的周长、面积和圆柱的体积为:%lf %lf %lf \n",l,s,t);

 

 

 

 

 

}

5、 获取54689这个数的各个转换为中文大写输出

#include<stdio.h>

#include<math.h>

void main(){

char hz[10][3]={"","","","","","","","","",""};

int num=54689;

int i,j;

int m[5];

for(i=0,j=4;i<5;i++,j--){//把数字分解,存入数字

m[i]=num/(pow(10,j));

m[i]=m[i]%10;

 

}

for(i=0;i<5;i++){

printf("%s",hz[m[i]]);

 

 

}

printf("\n");

}

 

 

6、模拟实现简单计算器 要求输入两个数 和一个操作符(+-*/%)进行运算后输出结果

#include<stdio.h>

#include<math.h>

#include<string.h>

#define pi 3.14

voidjishuanq(){

          double a,b,s;

          char c;

  printf("请输入两个数和一个操作符(+-*/),计算结果\n");

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

  printf("%lf %lf %c \n",a,b,c);

  switch(c){

   case '+':

           

            s=a+b;

            printf("结果为%lf\n",s);

            break;

   case '-': s=a-b;

            printf("结果为%lf\n",s);break;

   case '*': s=a*b;

            printf("结果为%lf\n",s);break;

   default:s=a/b;

            printf("结果为%lf\n",s);break;

  }

 

 

 

 

}

7、输入某年某月某日,判断这一天是这一年的第几天?程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

#include <stdio.h>

#include <math.h>

#include <string.h>

void year(){

int a,b,c,tian;

printf("请输入年 月日:");

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

printf("您输入的结果为:%d年 %d月 %d日 \n",a,b,c);

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

 tian=(b-1)*30+c;

 if(b>3){

  tian=tian+1;

  }

 

 

  printf("这是%d年的第%d\n",a,tian);

 

 

 

 

}else{

 

 tian=(b-1)*30+c;

  printf("这是%d年的第%d天\n",a,tian);

 

}

 

 

}

6、  输入一个字符,判断是否是原音字母(a e i o u)。

#include <stdio.h>

#include <math.h>

#include <string.h>

 

voidpd(){

          int i,flag=0;

   char s[100];

   printf(" 请输入字符串:");

   gets(s);

  for(i=0;i<strlen(s);i++){

 

     if(s[i]=='a' ||s[i]=='e' || s[i]=='i' ||s[i]=='o' || s[i]=='u'){

  

      flag=1;

           

           }

 

 

  

   }

 

 

   if(flag==0){

   printf("没有原音字母\n");

   }else{

  

    printf("有原音字母\n");

   }

  

 

 

 

 

}

7、  输入一个成绩转换为优良中差不及格(优>90>良> 80>中> 70>差> 60>不及格)

#include <stdio.h>

#include <math.h>

#include <string.h>

 

voidcji(){

          int s;

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

  scanf("%d",&s);

  if(s>90){

 

  printf("优");

 

  }else if(s>80){

 

   printf("良");

 

  }else if(s>70){

 

   printf("中");

 

  }else if(s>60){

 

   printf("差");

 

  }else{

   printf("不及格");

 

  }

 

 

}

8、  题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

#include <stdio.h>

#include <math.h>

#include <string.h>

void jiangj(){

 

 

  double I,sum=0;

  printf(" 请输入利润:");

  scanf("%lf",&I);

  

 

 if(I>1000000){

  sum=(I-100000)*0.01+(1000000-600000)+(600000-400000)*0.03+(400000-200000)*0.05+(200000-100000)*0.075+100000*0.1;

 

 }else if(I>600000){

 

  sum=(I-600000)*0.015+(600000-400000)*0.03+(400000-200000)*0.05+(200000-100000)*0.075+100000*0.1;

 

 }else if(I>400000){

 

  sum=(I-400000)*0.03+(400000-200000)*0.05+(200000-100000)*0.075+100000*0.1;

 

 }else if(I>200000){

 

 sum=(I-200000)*0.05+(200000-100000)*0.075+100000*0.1;

 

 }else if(I>100000){

 

 sum=(I-100000)*0.075+100000*0.1;

 

 }else{

   sum=I*0.1;

 

  }

 

 printf("奖金总数为%lf",sum);

 

 

}