c语言习题

1、编写程序,接收用户从键盘输入的日期信息并将其显示出来。其中,输入日期的形式为月/日/年(即mm/dd/yyyy),输出日期的形式为年月日(即yyyymmdd)。格式如下:

Enter a date(mm/dd/yyyy):1/17/2016

You entered the date 20160117

 

分析:从键盘输入,涉及到输入函数。在对输入的数据进行输出时,为忽略掉/的影响,则使用了%*c。

答案:

#include <stdio.h>
main()
{
    int m,d,y;
    printf("Enter a date(mm/dd/yyyy):");
    scanf("%d%*c%d%*c%d,&m,&d,&y");
    //%*c表示读入的字符不送给任何变量
    printf("You entered the date %4d%02d%02d\n",y,m,d);
}

 

2、从键盘输入圆的半径,编程求该圆的周长和面积

分析:简单题,只需注意读取数据的格式说明符,如下表所示。

操作 需要的控制字符串
读取short类型数值  %hd
读取int型数值 %d
读取long型数值 %l
读取float型数值 %f或%e
读取double型数值 %lf或%le

答案:

#include <stdio.h>
#include <math.h>

#define pi 3.1415926537

float r,c,s; 
int main(void)
{
    printf("请输入圆的半径:\n");
    scanf("%f",&r);
    c=2*pi*r;
    s=pi*r*r;
    printf("您输入的半径是:%.2f,圆的周长c为%.3f,圆的面积为%.3f\n",r,c,s);
    
    return 0;
}

 

3、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

 1 #include <stdio.h>
 2 
 3 int i,j,k;
 4 
 5 int main(void)
 6 {
 7 for(i=1;i<5;i++) //设置一个三层循环,分别确定百位,十位和个位
 8     for(j=1;j<5;j++)
 9         for(k=1;k<5;k++)
10         {
11         if(i!=k&&k!=j&&j!=i)//确保百位,十位和个位数字不相等
12         printf("%符合条件的三位数是:%d%d%d\n",i,j,k);
13         }
14 }

 

4、企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?

 

5、编程计算分段函数y=x3(x>0),y=0(x=0),y=sqrt(x)(x>0),输入x,打印出y值。

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int main(void)
 5 {
 6     float x,y;
 7     printf("Enter x:");
 8     scanf("%f",&x);
 9     if(x==0)
10     {
11         y=0;
12     }
13     else if(x<0)
14     {
15         y=x*x*x;
16     }
17     else
18     {
19         y=sqrt(x);/*sqrt为c语言中开平方的函数,使用时必须添加math.h头文件*/
20     }
21     printf("x=%f,y=%f\n",x,y);
22     }

 

6、编写一个程序来确定一个数的位数。

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int n,digit=0,x;
 6     printf("Enter a number:");
 7     scanf("%d",&n);
 8     x=n;
 9     do  //用循环求n的
10     {
11         x=x/10;
12         digit++;
13     }while(x);
14     printf("The number %d has %d digits.\n",n,digit);
15 }

 

posted @ 2017-01-18 15:53  whc的博客  阅读(578)  评论(1)    收藏  举报