Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1273569
  • 博文数量: 160
  • 博客积分: 4132
  • 博客等级: 中校
  • 技术积分: 2086
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-06 21:56
文章分类

全部博文(160)

文章存档

2012年(25)

2011年(120)

2010年(15)

分类: C/C++

2011-02-23 21:09:49

这书今天又看了一章,感觉比较纠结
没有答案还真是郁闷。程序题还好 写到vc里看看,要是像:字符'f'和字符串"f"是等同的字符型常量,这样的判断题 还真不知道他考点在哪…不过有问题也挺好 大不了拿回去找原来c语言老师问问 哈哈
另外一会儿用vc验证答案的地方可能会多一些。


总体来说这一章就一个表格的事儿:

1、int、short、unsigned、unsigned short都是占16位 既2字节;
    有符号取值范围是[-2e15至(2e15)-1];
    无符号取值范围是[0至(2e16)-1];
2、long,和unsigned long占用32位 既4字节;
    有符号取值范围是[-2e31至(2e31)-1];
    无符号取值范围是[0至(2e32)-1];   
3、一个字符型常量应占16位 既1字节;


课后习题:
一、问c语言标识符第一个字符是:(选项是 下划线 和 字母的排列组合)
特意查了一下:所谓标识符是指常量、变量、语句标号以及用户自定义函数的名称。
     常量的话只能用字母开头,变量的话可以用字母或“_”开头。
     所以应该是:字母或下划线开头

二、问这个输出什么 或者编译不过
  1. void main()
  2. {
  3.     char s[10];
  4.     s="abcd";
  5.     printf("%s",s);
  6.     
  7. }
原以为输出abcd的,试了一下 编译都不过……(做这么些年题,来个脑残题排行榜 这肯定算前5的)
char s[10]="abcd";
改成这样后边也没有空格输出出来

三、问下列是合法整数的是
  1. 11010B 0395 0Xfcb x2b3
 除了x2b3应改为0x2b3以外还真没看出来。
编译了一下:二进制编译不到整型里去;0395是八进制  单位最大是7;

四、判断:c语言中,变量有哪些类型,常量就有哪些类型。
我觉得应该是的,原以为拿指针为例 只有变量的,后来一查也有指针常量。存疑存疑

五、判断:字符'f'和字符串"f"是等同的字符型常量 
直接 存疑存疑

六、unsigned 的越界
  1. void main()
  2. {    unsigned a;
  3.      ……
  4.     printf("%u",a);
  5. }
%u是以无符号整型方式输出,对于整数来说是采用二进制补码存储的。 
正数的补码就是其原码,负数的绝对值-> 原码-> 取反得到反码--> 再加1--> 补码


七、float的小数位保留
  1. void main()
  2. {    double x=314.15926;
  3.         ……
  4.     printf("%12.3f\n",x);
  5.     printf("%15.3f\n",x);    
  6. }
输出
共12或15位,保留小数3位,前边用空格补齐

 



阅读(1672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~