本章节作业共四题,主要考查的知识点为:顺序结构程序设计的框架、数据类型、常数和常量的表示方法、变量的定义和使用方法、算术表达式的写法、数学函数、基本输入/输出函数的用法等。
温度转换题 1
验证字节题 2
求利息 2
选做题答案(求四种数据类型表达的数据范围) 3
1、温度转换题典型错误如下:
#include<stdio.h>
void main()
{
int F;
float C;
C=(float)(5/(9*(F-32)));printf("Please intput F:\n");
scanf("%d\n",F);
printf("%d\n",C);}
#include<stdio.h>
void main()
{
int F;
float C;
printf("Please intput F:\n");
scanf("%f\n",&F);
C=(float) 5/9*(F-32);/*或C=5.0/9*(F-32); */
printf("%f\n",C);}
2、验证字节题
#include <stdio.h>
main()
{
printf("Data type Number of bytes\n");
printf("------------ ---------------------\n");
printf("char %d\n",sizeof(char));
printf("int %d\n",sizeof(int));
printf("short int %d\n",sizeof(short));
printf("long int %d\n",sizeof(long));
printf("float %d\n",sizeof(float));
printf("double %d\n",sizeof(double));
} char 1
int 4
short int 2
long int 4
float 4
double 83、求利息
#include<stdio.h>
#include<math.h>
#define RATE 0.0275
void main()
{
double year,capital,money;
printf("please input year,capital:");
scanf ("%lf,%lf",&year,&capital);
money=capital*pow(1+RATE,year);
printf("money=%lf",money);
}/*部分同学在红色标记的地方出错,请自己对照 */4、选做题答案(求四种数据类型表达的数据范围)
#include <math.h>
#include <stdio.h>
void main()
{
int i;
long double term=1,fraction=1;
long double min,max; /*定义两个变量分别最小值、最大值*/
min=-pow(2,8* sizeof(char));
max=pow(2,8* sizeof(char))-1;
printf("char所能表示的范围:%.0lf~%.0lf\n",min,max);
min=-pow(2,8* sizeof(short));
max=pow(2,8* sizeof(short))-1;
printf("short所能表示的范围:%.0lf~%.0lf\n",min,max);
min=-pow(2,8* sizeof(int));
max=pow(2,8* sizeof(int))-1;
printf("int所能表示的范围:%.0lf~%.0lf\n",min,max);
for(i=1;i<=23;i++)/*float共32位,用23位存尾数*/
{
term=term/2;
fraction+=term;
} /*求float类型所表达的尾部部分的值,fraction=2-1+2-2+...+2-23*/ min=-fraction*pow(2,pow(2,7)-1);/*用7位存阶码*/
max=fraction*pow(2,pow(2,7)-1);
printf("float所能表示的范围:%e~%e\n",min,max);
term=1;
fraction=1;
for(i=1; i<=52;i++)/*double共64位,用52位存尾数*/
{
term=term/2;
fraction+=term;
} /*求double类型所表达的尾部部分的值,fraction=2-1+2-2+...+2-52*/ min=-fraction*pow(2,pow(2,10)-1);/*用10位存阶码*/
max=fraction*pow(2,pow(2,10)-1);
printf("double所能表示的范围:%e~%e\n",min,max);
} /*main结束*/