0
点赞
收藏
分享

微信扫一扫

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解


第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解

 

目录

​​第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解​​

​​一、复习题(答案参考该书附录,解析为读者编写)​​

​​二、编程练习​​

一、复习题(答案参考该书附录,解析为读者编写)

1、指出下面各种数据使用的合适数据类型(有些可使用多种数据类型):

     

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_数据类型

      

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_C Primer Plus_02

2、在什么情况下要用long类型的变量代替int类型的变量?

  • 原因之一:在系统中要表示的数超过了int可表示的范围,这时要使用long类型。
  • 原因之二:如果要处理更大的值,那么使用一种在所有系统上都保证至少是32位的类型,可提高程序的可移植性。

3、使用哪些可移植的数据类型可以获得32位有符号整数?选择的理由是什么?

  • 如果要正好获得32位的整数,可以使用int32_ t类型。要获得可储存至少32位整数的最小类型,可以使用int_ least32_ t 类型。
  • 如果要为32位整数提供最快的计算速度,可以选择int_ fast32_ t类型(假设你的系统已定义了,上述类型)。

4、指出下列常量的类型和含义(如果有的话):

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_转义序列_03

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_数据类型_04

5、Dottie Cawm编写了一个程序,请找出程序中的错误。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_C Primer Plus_05

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_数据类型_06

6、写出下列常量在声明中使用的数据类型和在printf()中对应的转换说明:

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_07

7、写出下列常量在声明中使用的数据类型和在printf ()中对应的转换说明(假设int为16位):

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_08

8、假设程序的开头有下列声明:

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_数据类型_09

9、假设ch是char类型的变量。分别使用转义序列、十进制值、八进制字符常量和十六进制字符常量把回车字符赋给ch ( 假设使用ASCII编码值)。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_10

10、修正下面的程序(在C中,/表示除以)。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_11

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_12

11、指出下列转义序列的含义:

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_C Primer Plus_13

               

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_14

二、编程练习

1、通过试验(即编写带有此类问题的程序)观察系统如何处理整数上溢、浮点数上溢和浮点数下溢的情况。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_15

#include <stdio.h>

int main(void)
{
int int_MORE = 2147483647;
float float_MORE = +3.4e38;
float float_LEAST = -3.4e38;

printf("Correct: int_MORE = %d \r\n", int_MORE);
printf("Correct: float_MORE = %f \r\n", float_MORE);
printf("Correct: float_LEAST = %f \r\n", float_LEAST);

int_MORE = int_MORE * 10;
float_MORE = float_MORE * 10;
float_LEAST = float_LEAST * 10;

printf("Error: int_MORE = %d \r\n", int_MORE);
printf("Error: float_MORE = %f \r\n", float_MORE);
printf("Error: float_LEAST = %f \r\n", float_LEAST);

return 0;
}

2、编写一个程序,要求提示输入一个ASCII码值(如,66), 然后打印输入的字符。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_数据类型_16

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_C Primer Plus_17

#include <stdio.h>

int main(void)
{
char a;//a为字符类型
scanf("%d",&a);//scanf用于输入、因为接收的是数字、所以是用%d
//ASCII码中不同的字符有对应不同的数字
printf("\r\n%c\n", a);//将数字转换为字符并输出

return 0;
}

3、编写一个程序,发出一声警报,然后打印下面的文本:

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_18

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_19

#include <stdio.h>

int main(void)
{
printf("\a");
printf("Startled by the sudden sound, Sally shouted,\r\n");
printf("\"By the Great Pumpkin, what was that!\"\r\n");
return 0;
}

4、编写一个程序,读取一个浮点数,先打印成小数点形式,再打印成指数形式。然后,如果系统支持,再打印成p记数法(即十六进制记数法)。按以下格式输出(实际显示的指数位数因系统而异):

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_C Primer Plus_20

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_数据类型_21

#include <stdio.h>

int main(void)
{
float val;

printf("enter a floating-point value:");
scanf("%f",&val);
printf("fixed-point notation:%f\r\n",val);
printf("exponential notation:%e\r\n",val);
printf("p notation:%a\r\n",val);

return 0;
}

5、一年大约有3.156X10^7秒。编写一个程序,提示用户输入年龄,然后显示该年龄对应的秒数。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_转义序列_22

#include <stdio.h>

int main(void)
{
unsigned int val;

printf("输入年龄:");
scanf("%d",&val);
printf("对应的秒数:%f\r\n",val*3.156*10e7);

return 0;
}

6、1个水分子的质量约为3.0X10^-23克。 1夸脱水大约是950克。编写一个程序,提示用户输入水的夸脱数,并显示水分子的数量。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_C Primer Plus_23

#include <stdio.h>

int main(void)
{
unsigned int val;

printf("输入水的夸脱数:");
scanf("%d",&val);
printf("对应水分子的数量:%e\r\n",950*val/3.0e-23);

return 0;
}

7、1英寸相当于2.54厘米。编写一个程序,提示用户输入身高(/英寸),然后以厘米为单位显示身高。

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_转义序列_24

#include <stdio.h>

int main(void)
{
unsigned int val;

printf("输入身高(/英寸):");
scanf("%d",&val);
printf("以厘米为单位显示身高:%0.2f\r\n",val*2.54);

return 0;
}

8、在美国的体积测量系统中,1品脱等于2杯,1杯等于8盎司,1盎司等于2大汤勺,1大汤勺等于3茶勺。编写一个程序,提示用户输入杯数,并以品脱、盎司、汤勺、茶勺为单位显示等价容量。思考对于该程序,为何使用浮点类型比整数类型更合适?

C Primer Plus 第三章:C语言基本数据类型 ~~~ 复习题与编程练习的答案与详解_#include_25

#include <stdio.h>

int main(void)
{
float cup, pint, ounce, spoon, teaspoon;

printf("请输入杯数:");
scanf("%f", &cup);

pint = cup / 2;
ounce = 8 * cup;
spoon = 8 * cup * 2;
teaspoon = 8 * cup * 2 * 3;
printf(" 品脱:%f\r\n 盎司:%f\r\n 汤勺:%f\r\n 茶勺:%f\r\n", pint, ounce, spoon, teaspoon);

printf("如果使用整数类型,当出现半杯的时候,会导致数据的丢失,使精度下降!\r\n");

return 0;
}

 

举报

相关推荐

0 条评论