《C Primer Plus(第五版)中文版》第4章第1至7题

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

#include <stdio.h>

int main(void) {
	char fname[40];
	char lname[40];

	printf("请输入您的姓和名,中间用空格分隔\n");
	fflush(stdout);
	scanf("%s%s",fname,lname);
	printf("%s,%s",fname,lname);
	return 0;
}


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

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

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

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

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

#include <stdio.h>
#include <strings.h>

int main(void) {
	char name[40];
	unsigned short  int name_width;
	printf("请输入您的名称\n");
	fflush(stdout);
	scanf("%s",name);
	name_width=strlen(name);
	printf("a: \"%s\"\n",name);
	printf("b: \"%20s\"\n",name);
	printf("c: \"%-20s\"\n",name);
	printf("d: \"%*s\"\n",name_width+3,name);
	return 0;
}

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

a.The input is 21.3 or 2.1e+001

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

/*
 ============================================================================
 Name        : test.c
 Author      : 
 Version     :
 Copyright   : Your copyright notice
 Description : Hello World in C, Ansi-style
 ============================================================================
 */

#include <stdio.h>
#include <strings.h>

int main(void) {
	float a;
	printf("请输入一个浮点数:\n");
	fflush(stdout);
	scanf("%f",&a);
	printf("a:The input is %.1f or %.1e\n",a,a);
	printf("b:The input is %+.3f or %+.3E",a,a);
	return 0;
}


4、编写一个程序,要求输入身高和名字,然后以如下形显示:

Dabney,you are 6.208 feet all.

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


#include <stdio.h>
#include <strings.h>

int main(void) {
	float a;
	char name[40];
	printf("请输您的姓名:\n");
	fflush(stdout);
	scanf("%s",name);
	printf("请输入你的身高,单位厘米:\n");
	fflush(stdout);
	scanf("%f",&a);
	printf("%s,你的身高%.0f厘数,计%.2f米\n",name,a,a/100.0);
	return 0;
}

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

Melissa Honeybee

           7                  8

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

Melissa Honeybee

7             8

#include <stdio.h>
#include <strings.h>

int main(void) {
	char fname[40];
	char lname[40];
	int w1,w2;
	printf("请输您的名称:\n");
	fflush(stdout);
	scanf("%s",fname);
	printf("请输入您的姓:\n");
	fflush(stdout);
	scanf("%s",lname);
	printf("%s %s\n",fname,lname);
	w1=strlen(fname);
	w2=strlen(lname);
	printf("%*d %*d\n",w1,w1,w2,w2);
	printf("%s %s\n",fname,lname);
	printf("%-*d %-*d\n",w1,w1,w2,w2);
	return 0;
}

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

#include <stdio.h>
#include <float.h>

int main(void) {
	float a = 1.0/3.0;
	double b = 1.0/3.0;
	printf("float : %.4f,%.12f,%.16f\n",a,a,a);
	printf("double: %.4f,%.12f,%.16f\n",b,b,b);
	printf("FLT_DIG:%d DBL_DIG:%d\n",FLT_DIG,DBL_DIG);
	return 0;
}


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

#include <stdio.h>
#include <float.h>

int main(void) {
	const float GA = 3.785;
	const float MI = 1.609;
	float mile,gallon,m,l;
	printf("请输入您的行驶里程数,单位为英里:\n");
	fflush(stdout);
	scanf("%f",&mile);
	printf("请输入您消耗%.1f英里使用的汽油量,单位为加仑:\n",mile);
	fflush(stdout);
	scanf("%f",&gallon);
	m = mile/gallon;    //计算每加仑英里数
	printf("您每加仑汽油行驶的路程为:%.1f英里\n",m);
	l=100.0/MI/m*GA;       //计算每百公里的燃油升数
	printf("您每百公里消耗汽油为数量为%.1f升\n",l);
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值