文档详情

C语言答案 第2章学习资料.doc

发布:2025-05-09约3.9千字共5页下载文档
文本预览下载声明

厦门大学本科生公共课《C程序设计基础》教材习题答案第二章C语言基础

主讲教师:第PAGE4页/共NUMPAGES5页

一、思考题

常量和变量有什么区别?它们分别是如何定义的?

常量是指在C程序运行过程中其值不变的量,变量是一个值的存放处,其值在程序运行过程中可以被改变。

常量有两种形式:字面常量与符号常量,C语言可以使用以下两种形式定义符号常量

(1)用关键字const定义

定义格式为:const类型名常量名=值;

(2)用编译预处理命令#define

定义格式为:#define常量名值常量

变量的定义格式为:

数据类型变量名1,变量名2,…,变量名n;

数据类型变量名1=初值1,变量名2=初值2,…,变量名n=初值n;

变量的要素有哪些?请用一个例子说明?

名字、类型、值和地址

inta=1;int是类型,a是名字,1是值,地址是编译器给a变量分配的内存空间

为什么程序需要有短整型(short)和长整型(long)?

整型的值集理论上是所有整数,但由于受到计算机存储单元的限制,C语言的整型只能表示所有整数的一个有限子集,因此,整数有它的表示范围限制,且不同的C语言系统可表示整数的范围可能不同。不同范围的整型数据所占有的内存空间大小不同。程序开发人员通过选择能够满足范围要求的类型(short或long),可以减少数据存储空间。比如,当短整型可以满足数据范围要求时,就没有必要选择需要更多存储空间的长整型。

字符’8’

字符’8’

C语言有字符串变量吗?

没有

字符常量和字符串常量有和区别?

字符常量就是单引号里面的字符比如a,字符串常量就是双引号里面的比如fasdf,而且存贮的时候字符串常量最后会加上一个/0作为结束符,也就是说上面的字符串常量里有6个字符

C语言中的运算符“/”和“%”有何区别?C语言中除法运算符“/”与数学中的运算符“÷”的用法和功能完全一样吗?

“/”是除法,“%”是取余数,“/”与“÷”的用法和功能不完全一样,“÷”得到的是两数相除后得到的真实值,“/”得到的是两数相除后取整的值。

在C语言中,运算符“=”的功能是什么?能用它来判别两个量是否相等吗?

“=”是赋值运算符,它将右侧表达式的值赋予左侧变量。不能判别两个量是否相等。

双目运算符两边的操作数可以是不同的类型吗?如果可以,它们如何影响运算的结果?

可以,C编译器会先对其中一些操作数进行隐式类型转换,使操作数类型一致后进行计算。转换方向为:char,short-int-unsigned-long-double,float-double

10、描述你所学过的运算符的优先级。

()[]-.从左到右

!~++--+-*(type)sizeof从右到左

*/%从左到右

+-从左到右

从左到右

==从左到右

==!=从左到右

从左到右

^从左到右

|从左到右

从左到右

||从左到右

?:从右到左

=+=-=*=/=%==^=|===从右到左

,从左到右

11、什么是表达式?它与数学中的代数式有何不同?

C语言的表达式是运算符和操作数组成的运算式。代数式是由运算符号(加、减、乘、除、乘方、开方)把数或表示数的字母连结而成的式子。单独一个数或者一个字母也是代数式。带有“(≤)”“(≥)”“=”“≠”等符号的不是代数式。而C语言中根据运算符的不同,可将表达式分为算术表达式、赋值表达式、关系表达式、逻辑表达式、条件表达式和逗号表达式,可以包含的运算符更多。

12、为什么在表达式中有时必须要使用括号?

当希望程序执行计算时,应写出一个表达式以制定必要的操作。括号可以用来强制改变表达式的运算顺序。

13、++i与i++有何区别?

++i是先让i自加1后再参加其他运算,而i++是先让i参加其他运算后再自加1。

14、在函数printf的控制字符串参数末尾经常有一个转义字符“\n”,它的作用是什么?而为何当用printf显示提示用户输入的信息是很少使用该字符?

\n作用是换行。用户输入时需要回车,因此会自动换行,不需要输出\n。

15、若变量i已定义为int型变量,当执行赋值语句i=8.9;后,i的值是什么?若接着执行赋值语句i=16.46;后,i的值又是什么?

816

16、说出下列C语言表达式的值和类型

(1)值:-5,int

(2)值:6,int

(3)值:24.0,double

(4)值:6,int

(5)值:3.5,double

(6)值:5,int

(7)值:5,int

17、

显示全部
相似文档