C Primer Plus (第六版)课后编程练习答案3.11

C Primer Plus (第六版)课后编程练习答案3.11
第一题:
这道题要我们去观察整数上溢、浮点数上溢、浮点数下溢的问题,下面给出了整数上溢的代码:

#include

int main(void)
{
	int a; 
	a=2147483647;
	printf("a=%d\na+1=%d\n",a,a+1);
	return 0;
}

输出如下:
在这里插入图片描述
第二题:
这道是要我们输入一个ASCII值,然后转换成字符打印出来,代码如下:

#include

int main(void)
{
	int c;                       //ASCII值可以用int类型读取 
	scanf("%d",&c);              //然后用字符型输出 
	printf("%c\n",c);
}

在这里插入图片描述
第三题:
这题要求我们发出一声警保再输出,代码如下:

#include

int main(void)
{
	float value;
	printf("Enter a floating-point value:\n");
	scanf("%f",&value);
	printf("fixed=point notation:%f\nexponential natation:%e\n",value,value); //注意科学记数法的转换说明。 
 } 

由于我的编译器不支持转换成16进制,所以有兴趣的话可以自己用其他编译器试试。
输出如下
在这里插入图片描述
第五题
代码如下:

#include
int Before(int F_sign,int day);
int After(int F_sign,int day);
int B_mounth(int birthday,int day);
int A_mounth(int now,int day);
#define SIZE 4
#define LONG 4
int main(void)
{
	int birthday[SIZE],now[LONG],Y_count,D_count,F_sign,num,S_sign,T_sign,a,day;
	int i,j,k;
	printf("请输入的你的出生日期(年 月 日):(请用空格隔开)");
	printf("(输入非正常月份退出)\n");
	while(scanf("%d%d%d",&birthday[0],&birthday[1],&birthday[2])==3)
	{
		if(birthday[1]>12||birthday[1]<1)  break;
		printf("请输入今天的日期(年 月 日):(用空格隔开)\n"); 
		if(scanf("%d%d%d",&now[0],&now[1],&now[2])==3)
		{
			
			Y_count=(now[0]-birthday[0]-1)*365;                     //这里记录你的年龄并转换成天数,没有考虑年份。 
			F_sign=birthday[0];                                     //标记年份 
			++F_sign;
			
			for(;;)                   //这个for循环是为了找到离出生日期(不含)往后最近的闰年。
			{
				if(F_sign%4==0&&F_sign%100!=0||F_sign%400==0)
					break;
				else 
					F_sign++;
			} 
			num=0;
			
			for(;F_sign

第六题:
这一题的数量等于夸脱数乘上950除于3.0e-23。代码如下:

#include

int main(void)
{
	float kua;
	printf("Please enter how much quart:");
	scanf("%f",&kua);
	printf("%e\n",(kua*950)/(3.0e-23));        //数量等于夸脱数乘上950除于3.0e-23
 } 

输出如下:
在这里插入图片描述
第七题:
身高(厘米)=英寸*2.54;代码如下:

#include

#define inch 2.54
int main(void)
{
	float stature;
	printf("Please enter you stature(inch):");
	scanf("%f",&stature);
	printf("%f\n",stature*inch);          //身高(厘米)=英寸*2.54
	return 0;
}

输出如下:
在这里插入图片描述
第八题
这题是连续的单位换算,并没有什么难度,不过要注意的是定义变量的时候应该和上面几题一样使用float变量类型来定义。代码如下:

#include

int main(void)
{
	float pint;
	printf("Please enter how much pint:\n");
	scanf("%f",&pint);
	printf("%f pint=%f cup\n",pint,pint*2);
	printf("%f cup=%f ounce\n",pint*2,pint*2*8);
	printf("%f ounce=%f table spoon\n",pint*2*8,pint*2*8*2);
	printf("%f table spoon=%f tea spoon\n",pint*2*8*2,pint*2*8*2*3);
	return 0;
}

输出如下:
C Primer Plus (第六版)课后编程练习答案3.11_第1张图片

你可能感兴趣的:(C Primer Plus (第六版)课后编程练习答案3.11)