062是c语言常量吗,《C语言程序设计》基本知识点解答(二).doc

本文详细介绍了C语言中的基本概念,包括数据类型(如整型、实型、字符串等)、运算符(算术、逻辑、比较等)及其优先级和结合性,以及表达式的构成和计算。通过实例展示了如何使用#define定义符号常量,并解释了预处理过程中符号常量的替换原理。这些基础知识对于理解和编写C语言程序至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《C语言程序设计》基本知识点解答(二)

C语言程序设计基本知识点解答(二)

第三章 数据类型、运算符和表达式

Q051(什么是“数据类型”?(数据类型)

A051(数据类型就是指数据在计算机中保存和运算时的组织和形式。实际问题当中本来就有若干种不同类型的数据,因此用来解决这些实际问题的计算机编程语言中自然应该有对应的数据类型来描述这些数据。比如最基本的数据类型就是整数、实数,另外还有非数值型的数据类型,如字符串。一个计算机程序中用到的所有数据都必须具有某种类型。

Q052(什么是“运算符”?(运算符)

A052(运算符是指一些具有规定运算功能的特定的符号。如+、-、*、/、%等等。这里的运算功能可能是我们比较熟悉的运算比如算术运算(加减乘除)、逻辑运算(与或非)或比较运算(大于小于等于),也可能是其他一些在计算机语言当中特有的运算如加1减1运算、位运算等等。C语言共有34种运算符。

Q053(什么是“表达式”?(表达式)(优先级)(结合性)

A053(表达式是按照运算符的性质,用运算符把数据连接起来以达到数据运算目的而构成的式子。

写表达式的最终目的是要进行计算它求出它的值。求解表达式的过程是由计算机完成的,因此,要想得到正确的结果,就必须写出正确的表达式。而一个表达式中往往包含多个运算符,所以必须熟悉每一种运算符的性质(优先级别和结合性),才能写出有正确求解结果的表达式。

Q054(C语言有哪些数据类型?(数据类型)

A054(C语言中的所以数据类型如下图所示:

Q055(什么是“常量”?(常量)

A055(程序运行期间,值不能被改变的量称为常量。如果试图去改变常量的值,就肯定会出错。在C语言中,至少有两种方法表示一个常量,即“直接常量”和“符号常量”。

Q056(什么是“直接常量”?(常量)

A056(直接常量也叫字面常量,就是一看就知道的、直接具有具体的固定的值的量。比如1、2、 3;0.1、10.0;‘a’,‘1’;“hello”等。常量也是有类型的。前面所列举的常量就分别是整型、实型、字符型和字符串型的常量。

Q057(什么是“符号常量”?(常量)(符号常量)

A057(直接常量的好处是一看就知道的它的值,但是缺点是读程序的人无法方便的知道这个值到底代表什么含义,即这个值传达的信息是不完整不明确的。这样的数常常被称之为“幻数(Magic Number)”。如果我们可以给这些数值起一个有意义有具体含义的名字就可以解决这个问题了。符号常量的目的就在此。它是用一些符号来代替程序当中出现的常量。从而使得程序的可读性和可维护性大大增强。

Q058(C语言中,如何实现“符号常量”?(常量)(符号常量)

A058(C语言中,可以使用 #define 预处理命令来实现符号常量。例如下面的程序:

#define PI 3.14159

int main()

{

float r, c, s, v; r = 2;

printf("PI = %f\n", PI);

c = 2 * PI * r; printf("周长 = %f\n", c);

s = PI * r * r; printf("面积 = %f\n", s);

v = 4 * PI * r * r * r / 3; printf("体积 = %f\n", v);

return 0;

}

第一步,程序第一行用 #define 预处理命令定义了一个符号常量,其名字是PI,代表的常量值是3.14159。第二步,在本程序以下的代码中,凡是原来直接出现3.14159的地方,全部换成符号PI。这样修改后程序运行的结果和直接使用字面常量是一样的。

Q059(用 #define 实现符号常量的原理是什么?(符号常量)(define)

A059(实际上是一个在预处理阶段的替换过程。在前述问题的程序中,第一行的含义就是定义了一个符号名字叫做PI,它代替的一串字符是3.14159。然后,在对这个程序进行编译时,编译器首先启动预编译器(preprocessor)对源程序进行预编译处理。当预编译器发现程序中有诸如#define这样的预编译命令时,就对它们进行相应命令指定的处理。比如,对于#define预编译命令,预编译器就扫描整个源程序代码,将其中所有出现的由#define定义的符号全部替换成在#define命令行定义的符号后出现的字符串。因此,上述程序在预编译处理后,就变成了

int main()

{

float r, c, s, v; r = 2;

printf("PI = %f\n", 3.14159);

c = 2 * 3.14159 * r; printf("周长=%f\n", c);

s = 3.14159

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值