C Primer Plus_第三章_数据和C_复习题与编程练习

时间:2023-03-08 15:36:10
C Primer Plus_第三章_数据和C_复习题与编程练习

Review

long代替int类型变量的原因是什么?
在您的系统中,long可以容纳比int更大的数;如果您确实需要处理更大的值,那么使用一种在所有系统上都保证至少是32位的类型会使程序的可移植性更好。(PS:用sizeof(int)查看我电脑中的int发现是4字符即32位,和long一样,但是long是标准的32位,int在我这64位的系统中定义的是32位,在其他系统可能是16位。无论如何,有个标准,最好按标准来设定,这样移植起来就方便)

要获得一个32位的有符号整数,可以使用哪些可以值得数据类型?每种选择的原因是什么?
要获得正好是32位的数,可以使用int32_t
要获得可存储至少32位的最小类型,可使用int_least32_t
要获得32位类型中提供最快计算速度的类型,可选择int_fast32_t


Practice

1.略

2.

#include

int main(void)

{

 //输入一个整数
 int i;

 printf("Please enter the value of i: \n");

 scanf("%d",&i);

 printf("i = %d\n", i);

 //将这个整数赋给一个字符,自动按照ascii码找到相应的字符
 char
c = i;

 printf("the ASCII character of number %d is
%c\n", i, c);

return 0;

}

3.

#include

#include

#include

int main(void)

{

 printf("startled by the sudden sound,\a Sally
shouted, \"By the Great Pumpkin, what was that!\"\n");

 printf("\a");

return 0;

}

4.

#include

int main(void)

{

 float f;

 printf("Please enter a float: \n");

 scanf("%f", &f);

 printf("f = %f and f also = %e\n", f, f);

return 0;

}

5.

#include

int main(void)

{

 int i;

 double one_year = 3.156e7;

 printf("My master, please enter your age:
\n");

 scanf("%d",&i);

 printf("My master, you have been on the earth for
about %f seconds!\n", i*one_year);

return 0;

}

7.

#include

int main(void)

{

 float height;

 float one_inch = 2.54;

 printf("Please enter your height in centimiter my
master: \n");

 scanf("%f",&height);

 printf("My master, you're %1.2f cm high and that
is %1.2f inch, so cool!\n", height, height/one_inch);

return 0;

}