C Primer Plus 第3章复习题

学习杂记 | 2017-08-12 16:45:39 | 240次阅读 | 3评

1.对下面的数据使用合适的数据类型:

A. East Simpleton 的人口。

B.DVD影碟的价格。

C.本章出现次数最多的字母。

D.这个字母出现的次数。

A、使用整数型数据。即  int  。因为人口的单位就是个嘛。

B、使用浮点型数据。即 float 。因为价格有可以含有小数点。

C、使用字符型数据。即 char 。因为字母是一个个的字符。

D、使用整数型数据。也是 int 。因为次数也是一个整数来的。

-------------------------------- 作者在 2017-08-12 17:27:40 补充以下内容 --------------------------------

附录参考答案

C Primer Plus 第3章复习题参考答案.png (上传于2017-08-12 17:27:40)
C Primer Plus 第3章复习题参考答案.png

-------------------------------- 作者在 2017-08-15 07:08:10 补充以下内容 --------------------------------

2.需要 long 类型变量代替 int 类型变量的原因是什么?

答:

因为我们有时候需要处理的数据超出了 int 类型数据的范围,而在C语言标准中,long 类型储存范围比 int 类型的储存范围要大,可以满足我们的数据处理需要。所以有时我们需要用 long 类型变量代替 int 类型变量。

-------------------------------- 作者在 2017-08-15 07:14:22 补充以下内容 --------------------------------

附录参考答案:

C Primer Plus 第3章复习题参考答案.png (上传于2017-08-12 17:27:40)
C Primer Plus 第3章复习题参考答案.png

-------------------------------- 作者在 2017-08-15 07:29:15 补充以下内容 --------------------------------

3.获得一个32位的有符号整数,可以使用哪些可移植的数据类型?每一个选择的原因是什么?

答:有两种可以选择的类型。

(1)long 类型或者 long int 类型。这种类型的整数不小于最大的 int 类型的整数值。C语言标准保证 long 有32位长。

(2)long long 类型或者 long long int 类型,这种类型的整数不小于最大的 long 类型的整数值。C语言标准保证 long long 有64位长。

-------------------------------- 作者在 2017-08-15 07:30:38 补充以下内容 --------------------------------

附录参考答案:

C Primer Plus 第3章复习题参考答案.png (上传于2017-08-12 17:27:40)
C Primer Plus 第3章复习题参考答案.png

答非所问,对题目没有理解清楚。这是大忌讳啊。------自言自语。


-------------------------------- 作者在 2017-08-17 11:30:30 补充以下内容 --------------------------------

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

a. '\b'

b.1066

c.99.44

d.0XAA

e.2.0e30

答:

a.  char 类型,表示字符串\和字符b。

b.  int 类型,表示整数1066。

c. float类型,表示浮点数99.44。

d.十六进制法表示的整数,相当于十进制的170

e.科学计数法表示的数,相当于十进制的2.0*10的30次方,就是2后面有30个0.


-------------------------------- 作者在 2017-08-17 11:46:52 补充以下内容 --------------------------------

附录参考答案:

C Primer Plus 第3章复习题参考答案.png (上传于2017-08-12 17:27:40)
C Primer Plus 第3章复习题参考答案.png

对题目的理解不透彻,是因为对概念不熟悉。-------------自言自语。


-------------------------------- 作者在 2017-08-17 12:06:08 补充以下内容 --------------------------------

5.   Dottie Cawm 写的下面这个程序中有很多错误,找出这些错误:


include <stdio.h>
main 
(
   float  g; h;
   float  tax, ratle; )

   g = e21;
   tax = rate*g;

)


include <stdio.h>                     // 缺少预处理符号“#”。
main                                  //没有定义  main  的类型和参数的类型,即 main () 括号内没有定义。     
(                                    // 这里的“(”,应该是大括号“{”,是一个函数开始的标记。
   float  g; h;                     //连续定义几个变量,中间应该是用“,”。而不是分号“;”。在C语言中,“;”是表示一个语句的结束符号。
   float  tax, ratle; 
 
   g = e21;                 //这一行有错误,只是确定有,但是不知道具体在哪里。
   tax = rate*g;            // 这一行有错误,只是确定有,不知道具体错在哪里。
 
)                //这里的“(”应该是“}”,是一个函数结束的标记。                                         

还有两行,确定有错误,但是不知道错在哪里。


-------------------------------- 作者在 2017-08-21 10:22:11 补充以下内容 --------------------------------

附录参考答案:

相比之下,才可以看到距离,还有很多东西要学习。

第三章复习题第5题参考答案.jpg (上传于2017-08-21 10:22:11)
第三章复习题第5题参考答案.jpg

-------------------------------- 作者在 2017-08-21 10:30:09 补充以下内容 --------------------------------

6. 因为有表格,所以直接截图,但是做答案时,不能如此。

第三章复习题第6题题目.jpg (上传于2017-08-21 10:30:09)
第三章复习题第6题题目.jpg

想了一下,还是把表格做出来,不能偷这一下懒,学会插入表格,也是一种学习。

序号 常量 类型和说明符
a. 12 int类型常量,“%d"。
b. 0x3
c. 'C' char'类型常量,”%“。
d. 2.34E07 long int 类型常量,
e. '\40'
f. 7.0 float 类型常量,”%f"。
g. 6L
h. 6.0 float 类型常量,”%f"。

认认真真做完后,才发现差不多有一半的题量不会做。还是得再回过头把这一章仔细看一次。

-------------------------------- 作者在 2017-08-21 16:39:25 补充以下内容 --------------------------------

附录参考答案:

第三章复习题第6题参考答案.jpg (上传于2017-08-21 16:39:25)
第三章复习题第6题参考答案.jpg

-------------------------------- 作者在 2017-08-25 00:16:45 补充以下内容 --------------------------------

7.  指出下表中各常量的数据类型(在声明语句中使用的数据类型)以及在printf ( )中的格式说明符。假设 int 类型长度为16位。

序号 常量 类型 说明符
a. 012 int %d
b. 2.9e05L long float %lf
c. 's' char %c
d. 100000 int %d
e. '\n' 转义符
f. 20.0f float %f
g. 0x44 int %0x

-------------------------------- 作者在 2017-08-25 00:45:50 补充以下内容 --------------------------------

附录参考答案

第3章复习题参考答案第7题.png (上传于2017-08-25 00:45:50)
第3章复习题参考答案第7题.png


还是会有许多的知识点会遗忘,这需要用更多的练习来加强记忆。----自言自语。

-------------------------------- 作者在 2017-09-04 10:24:42 补充以下内容 --------------------------------

8.假设一个程序开始处有如下声明:


int imate = 2;
long shot = 53456;
char grade = 'A';
float log = 2.71828;
在下在面的 printf ();语句中添上合适的类型说明符。


printf ( "The odds against the %_ were %   1 . \n ", imate , shot );

printf ( “ A score of %__ is not a %__grade .\n", log ,grade);


答:


printf ( "The odds against the %   were % l  1 . \n ", imate , shot );

printf ( “ A score of % c  is not a %_f_grade .\n", log ,grade);



-------------------------------- 作者在 2017-09-04 10:39:27 补充以下内容 --------------------------------

附录参考答案:

第三章复习题第8题参考答案.jpg (上传于2017-09-04 10:39:27)
第三章复习题第8题参考答案.jpg

%d和%ld的区别还没有掌握好,要再翻看一次。

第二个是因为不仔细,把顺序弄错了。写程序和写文章也要做到一样,不能出错啊,特别是逻辑性的错误。————自言自语

-------------------------------- 作者在 2017-09-04 17:45:23 补充以下内容 --------------------------------

百度而来的有关于%ld和%d之间的区别的知识点。

C语言%ld用来输出长整型数。
%d用来输出整型数。
    因为格式符指明了输出指定的起始地址开始的若干个字节的内容(把它们作为长整型数或整型数来解释),所以,如果用错了对象,就会得出意想不到的结果。如果用%d来输出长整型数,就会只取它的头上几个字节,相当于对原来的长整型数取了模;而如果用%ld来输出整型数,因为实际的数字节数少而硬要取更多的字节,就会发生“把别人家的孩子领回家”的事,把别的数据解释为当前的值了。

%ld 的话 输出的字节要长点 %d 的要短点。比如,一个数大于32767 用%d 就要溢出。假如你想输出32768.用%d 就会输出-1.这就是溢出。但是用%ld 就不会。它能接受的数的范围大些!希望你懂了!
输出-32768~32767以内的数都一样!


博友评论,共3条
Avatar
1楼:孟祥建 发表于 2017-08-18 01:45  
Avatar
2楼:孟祥建 发表于 2017-08-18 01:51  
你现在在学c语言吗,可以共勉,我差不多学了一本书了,需要的话我们还可以相互讨论下,对了要把每天都记录下来,从点滴开始,我现在还会深入学习,希望我们能成为好友,经常来我那逛逛,我们互相监督,不能落下每一天,我也会经常来你这逛逛。
Avatar
3楼:yehuabao 发表于 2017-08-18 07:49  
刚刚才学,一本书还没看完。谢谢。我这又有两三天落下了。