C Primer Plus 练习 P85

来源:互联网 发布:动态网页制作python 编辑:程序博客网 时间:2024/05/17 01:45


1、编写一个程序,要求输入名字和姓氏,然后以“名字,姓氏”的格式打印。

 

#include<stdio.h>

int main(void)

{

    char surname[20],firstname[20];

    printf("Please input your firstname and surname:");

    scanf("%s",firstname);

    scanf("%s",surname);

    printf("You are %s,%s.\n",firstname,surname);

    return(0);

}

 

2、编写一个程序,要求输入名字,并执行以下操作:

    a.把名字引在双引号中打印出来。

    b.在宽度为20个字符的字段内打印名字,并且整个字段引在引号内。

    c. 在宽度为20个字符的字段的左端打印名字,并且整个字段引在引号内。

    d.在比名字宽3个字符的字段内打印它。

 

#include<stdio.h>

#include<string.h>

int main(void)

{

    char name[20];

    int width;

    printf("Please input your name:");

    scanf("%s",name);

    printf("A:\"%s\"\n",name);

    printf("B:\"%20s\"\n",name);

    printf("C:\"%-20s\"\n",name);

    width=strlen(name)+3;

    printf("D:\"%*s\"\n",width,name);//*对应width

    return(0);

}

 

3、编写一个程序,读取一个浮点数,并且首先以小数点记数法,然后以指数记数法打印之。输出使用下列形式(在指数位置显示的数字的位数可能会随系统而不同):

    a. The input is 21.3 or 2.1e+001.

    b. The input is +21.290 or 2.129E+001.

 

#include<stdio.h>

int main(void)

{

    float a;

    printf("Please input a float:");

    scanf("%f",&a);

    printf("a.The input is %.1f or %.1e\n",a,a);

    printf("b.The input is %+.3f or %.3E\n",a,a);

    return(0);

}

 

4、编写—个程序,要求输入身高(以英寸为单位)和名字,然后以如下形式显示:

       Dabney, you are 6.208 feet tall

 使用float类型,使用/作为除号。如果您愿意,可以要求以厘米为单位输入身高,并以米为单位进行显示。

 

#include<stdio.h>

int main(void)

{

    float height;

    char name[20];

    printf("Please input your height by inches:");

    scanf("%f",&height);

    Printf("Please input your name:");

    scanf("%s",name);

    printf("%s,you are %f feet tall\n",name,height/12);

    return(0);

}

 

5、编写一个程序,首先要求用户输入名字,然后要求用户输入姓氏。在一行打印输入的姓名,在下行打印每个名字中字母的个数。把字母个数与相应名字的结尾对齐,如下所示:

          Melissa Honeybee

                7        8

 

然后打印相同的信息,但是字母个数与相应单词的开始对齐。

 

#include<stdio.h>

#include<string.h>

int main(void)

{

    char surname[20],firstname[20];

    printf("Please input your firstname and surname:");

    scanf("%s",firstname);

    scanf("%s",surname);

    printf("%s %s.\n",firstname,surname);

    printf("%*d %*d\n",strlen(firstname),strlen(firstname),strlen(surname),strlen(surname));

    printf("%s %s.\n",firstname,surname);

    printf("%-*d %-*d\n",strlen(firstname),strlen(firstname),strlen(surname),strlen(surname));

    return(0);

}

 

6、编写一个程序,设置一个值为1.0/3.0double类型变量和一个值为1.0/3.0float类型变量。每个变量的值显示三次:一次在小数点右侧显示4个数字,一次在小数点右侧显示12个数字,另一次在小数点右侧显示16个数字。同时要让程序包括float.h文件,并显示FLTDIGDBL_DIG的值。1.0/3.0的显示值与这些值一致吗?

 

#include<stdio.h>

#include<float.h>

int main(void)

{

    double a=1.0/3.0;

    float b=1.0/3.0;

    printf("double a=1.0/3.0:\n");

    printf("%.4e\n",a);

    printf("%.12e\n",a);

    printf("%.16e\n\n",a);

    printf("float b=1.0/3.0:\n");

    printf("%.4f\n",b);

    printf("%.12f\n",b);

    printf("%.16f\n\n",b);

    printf("FLT_DIG:%d\n",FLT_DIG);

    printf("DBL_DIG:%d\n",DBL_DIG);

    return(0);

}

 

7、编写一个程序,要求用户输入行驶的英里数和消耗汽油的加仑数。接着应该计算和显示消耗每加仑汽油行驶的英里数,显示方式是在小数点右侧显示一个数字。然后,根据l加仑约等于3.785升,l英里约等于1.609公里的规则,它应该把每加仑英里数转换成每100公里的升数(欧洲通用的燃料消耗表示法),并显示结果,显示方式是在小数点右侧显示一个数字(请注意,美国方案测量每单位距离消耗的燃料数,而欧洲方案测量每单位燃料的行驶距离)。用符号常量表示两个转换系数(使用const#define)。

 

#include<stdio.h>

#define GALLON 3.785  //1 gallon = 2.785 litre

#define MILE 1.609   //1 mile = 1.609 kilometer

int main(void)

{

    float mile,gallon;

    printf("Please input miles and gallons:");

    scanf("%f %f",&mile,&gallon);

    printf("Miles per gallon:%.1f\n",mile/gallon);

    printf("Litres per 100 kilometre:%.1f\n",gallon*GALLON/(100*mile*MILE));

    return(0);

}

 

0 0
原创粉丝点击