# C程序设计内容与例题讲解 -- 第三章第一部分(第五版)谭浩强

简介: # C程序设计内容与例题讲解 -- 第三章第一部分(第五版)谭浩强

3.1数据的表现形式及其运算

3.1.1常量

在程序运行的过程中,其值是不能被改变的量称为常量。数值常量就是数学中的常数。

3.1.2整型常量:

如1000,12345,0,-345都是整型常量

3.1.3实型常量

有俩种表现形式:①十进制小数形式,由数字和小数点组成。如123.456,0.3456,-56.79等。②指数形式,如12.34e3(代表12.134×10的

三次方),-346.87e-25(代表-346.87×十的负二十五次方),0.145E-25(代表0.145×十的的负二十五次方)等等。由于计算机输入或输出时无法表示上角或下角,故规定以字母E或e代表以10为底的指数。但是应当注意:e或E之前必须有数字,且e或者E后面必须为整数。如不能写出e4,12e2.5等。

3.1.4字符常量

有两种形式的字符常量:①普通字符,用单撇号括起来一个字符,如’a’,‘Z’,‘3’,‘4’,‘?’,‘#’。不能写出’ab’或’12’。请注意:单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。‘a’和’A’是不痛的字符常量

字符常量存储在计算机存储单元中时,并不是存储字符(a,z,#等)本身,而是其代码(一般采用ASCII代码)存储的,例如字符’a’的ASCII是97,因此,在存储单元中存放的是97(以二进制的形式存放)。ASCII字符与diamond对照表见下图。②转义字符,除了以上形式的字符常量以为,C语言还允许一种特殊形式的字符常量就是以“\”开头的字符序列。例如前面已经遇到过的,在printf函数中的’\n’代表一个换行符。‘\t’代表将输出位置跳到下一个Tab位置(制表位置),一个位置为8列。这是一种在屏幕上无法显示的"控制字符",在程序中无法用一个一般形式的字符来表示,只能采用这样的特殊形式来表示。常用的以’'开头的字符见下图。

ASCII

转义字符

3.1.5字符串常量

如"boy",“123”,等,用双撇号把若干个字符括起来,字符串常量是双撇号中的全部字符(不包括双撇号本身)。注意不能错写成’CHINA’,‘boy’,‘123’。单撇号内只能包含一个字符,双撇号内可以包含一个字符串。

3.1.6符号常量

用#define指令,指定一个符号名称代表一个常量。如: #define PI 3.1415 //注意末行没有分号

经过以上的指定后,本文件中从此行所有的PI都代表3.1416。在对程序进行编译前,预处理器先对PI进行处理,把所有PI全部置换为3.1415。这种一个符号名代表一个常量的,称为符号常量。

3.2.1变量

在C99中允许使用常变量,方法是在定义变量前加一个const如:const int a = 3; 定义a为一个整型变量,指定其值为3,而且在变量存在期间不能改变。常变量与常量异同的是:常变量具有变量的基本数学:有类型,占存储单元,只是不许改变其值。可以说,常变量就是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。

请思考:常变量与符号常量有什么不同?如:

符号常量PI和常变量pi都代表3.1415926,在程序中能被使用。但是二者性质不同:定义符号常量用#define指令,他是预编译指令,它只是用符号常量代表一个字符串,在预编译时仅仅进行字符替换,在预编译后,符号常量就不存在了(全部置换成为了3.1415926),对符号常量的名字是不分配存储单元的。而常变量是要占用存储单元的,有变量值,只是该值不可以修改而已。

3.3.1数据类型

3.3.2数据的分类

详细讲解放在该链接感兴趣的朋友可以去看来链接:link

3.4.1运算符和表达式

C语言的运算符范围很宽广,把除控制语句和输入输出以为几乎所有的基本操作符都可以作为运算符来处理,例如"="作为赋值运算符、方括号作为下标运算符等。

3.4.2 C运算符

算术运算符 + - * / % ++ –
关系运算符 > < == >= <= !=
逻辑运算符 ! &&
位运算符 << >> ^ &
赋值运算符 =及其扩展赋值运算符
条件运算符 ?:
逗号运算符
指针运算符 *和 &
求字节运算符 sizeof
强制类型转换运算符 (类型)
成员运算符 。 ->
下标运算符 [ ]
其它 如函数调用运算符()

本章先介绍算术运算符和赋值运算符,其余的在以后各个章节中陆续介绍

3.4.3 自增(++)、自减(- -)运算符

自增(++)、自增(- -)运算符的作用是使变量的值加1或减1

例如:++i,--i(在使用i之前,先使i的值加(减)1) i++,i--(在使用i之后,使i的值加(减)1)

3.4.4算术表达式和运算符的优先级和结合性

用算术符号和括号将运算对象(也称操作数)连接起来的、符合语法规则的式子称为C算术表达式。C语言规定了运算符的优先级(例如先乘除后加减),还规定了运算符的结合性具体优先级如下图:

3.5.1课后习题讲解:

例题1:

假如我国国民生产总值的年增长率为7%,计算10年后我国国民生产总值与现在比增长了多少百分比。计算公式为: p = (1 + r) ^ n

{(1 + r)的n次方

int main()
{
  float r = 0.07;
  float year = 10;
  float p = 1;//第一年
  int i = 0;
  for (i = 0; i < 10; i++)
  {
    p *= 1 + r;
  }
  printf("p = %f\n", p);
  return 0;
}

方法二:

int main()
{
  double p = 0;
  double r = 0.07;
  double n = 10.0;
  p = pow(1 + r, n);//调用pow库函数
  printf("p = %lf\n", p);
  return 0;
}

运行结果:

例题二:

购房从银行贷了一笔款d,准备每月还款额为p,月利息为r,计算多少月能还清。设d为300 000 元,p为6000元,r为1%。对求得的月份取小数点后一位,对第二位按四舍五入处理。

提示还清月数的公式如下:

m = (log p - log(p - d × r)) / log(1 + r)

##注:C的库函数中有求对数的函数log10,是求以10为底数的对数,log(p)表示log p

int main()
{
  double p = 6000.0;
  double d = 300000.0;
  double r = 0.01;
  double m = 0.0;
  m = (log(p) - log(p - d * r)) / log(1 + r);
  printf("m = %4.1f\n", m);
  return 0;
}

运行结果:

好了,今天的内容就到了这里了,如果有写的不好的地方和错误的地方希望各位多多包容,也可以指出作者都会努力改进的!


相关文章
|
6月前
|
C语言
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计(第五版)谭浩强
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计(第五版)谭浩强
116 1
|
6月前
|
C语言 数据格式
C程序设计内容与例题讲解 -- 第三章第三部分(第五版)谭浩强
C程序设计内容与例题讲解 -- 第三章第三部分(第五版)谭浩强
|
6月前
|
存储 C语言
C程序设计内容与例题讲解 -- 第三章第二部分(第五版)谭浩强
C程序设计内容与例题讲解 -- 第三章第二部分(第五版)谭浩强
|
6月前
|
C语言
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计第二部分(第五版)谭浩强
C程序设计内容与例题讲解 -- 第四章--选择结构程序设计第二部分(第五版)谭浩强
|
6月前
|
算法 调度
C程序设计内容与例题讲解 -- 第二章(第五版)谭浩强
C程序设计内容与例题讲解 -- 第二章(第五版)谭浩强
|
6月前
|
自然语言处理 Java C#
C程序设计内容与例题讲解 -- 第一章(第五版)谭浩强
C程序设计内容与例题讲解 -- 第一章(第五版)谭浩强
[课后习题]C Primer Plus【第六版】编程练习 第一章
[课后习题]C Primer Plus【第六版】编程练习 第一章
|
机器学习/深度学习 存储 人工智能
C语言程序设计第五版谭浩强课后答案 第五章习题答案(3-17题)
C语言程序设计第五版谭浩强课后答案 第五章习题答案(3-17题)
|
存储 测试技术 C语言
清览题库--C语言程序设计第五版编程题解析(2)
实在是没办法,本来打算向web方向努力,结果被学校通知所有专业都必须学习C语言,,
886 0
清览题库--C语言程序设计第五版编程题解析(2)
|
机器学习/深度学习 C语言 Python
清览题库--C语言程序设计第五版编程题解析(3)
因为python和C同时学,现在混得差不多了(悲
709 0