| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 第3章 最简单的C程序设计——顺序程序设计 -> 正文阅读 |
|
[C++知识库]第3章 最简单的C程序设计——顺序程序设计 |
目录 3.1 顺序程序设计举例【例3.1】
有人用温度计测量出用华氏法表示的温度(如 64°F),今要求把它转换为以摄氏法表示的温度(如17.8℃)
(1)解题思路∶这个问题的算法很简单,关键在于找到二者间的转换公式。根据物理学知识,知道以下转换公式∶
其中f代表华氏温度,c 代表摄氏温度
(2)运行结果 【例3】计算存款利息。有1000元,想存一年。有3种方法可选:
请分别计算出一年后按3种方法所得到的本息和。 (1)解题思路: ?关键是确定计算本息和的公式。从数学知识可知,若存款额为p0,则: 活期存款一年后本息和为:p1=p0(1+r1) ;一年期定期存款,一年后本息和为:p2=p0(1+r2) ;两次半年定期存款,一年后本息和为:p3=p0(1+r3/2)(1+r3/2)
(2)运行结果 3.2 数据的表现形式及其运算3.2.1 常量和变量1.常量
在程序运行过程中,其值不能被改变的量称为常量。常用的常量有以下几类∶
(1)
整型常量
。如 1000,12345,0,一345等都是整型常量。
(2)
实型常量
。有两种表示形式∶
①
十进制小数形式
,由数字和小数点组成。如 123.456,0.345,-56.79,0.0,12.0等。
②
指数形式
,如 12.34e3(代表12.34×),—346.87(代表一346.87×),
0.145(代表0.145×)等。由于在计算机输入或输出时无法表示上角或下角,故
规定
以字母e或 E代表以10为底的指数
。但应注意;
e或 E之前必须有数字,且 e或 E后
面必须为整数
。如不能写成 e4,12e2.5。
(3)
字符常量
。有两种形式的字符常量∶
①
普通字符
,用
单撇号
括起来的
一个字符
,如;'a','Z','3','?','#'。不能写成'ab'或
'12'。请注意∶单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。'a'和'A'是不
同的字符常量。字符常量存储在计算机存储单元中时,并不是存储字符(如 a,z,#等)本
身,而是
以其代码(一般采用 ASCII代码)存储的
,例如字符'a'的 ASCII代码是 97,因此,在
存储单元中存放的是97(以二进制形式存放)。
②
转义字符
,除了以上形式的字符常量外,C语言还允许用一种特殊形式的字符常量, 就是以字符"\"开头的字符序列,将"\"后面的字符转换成另外的意义。例如,前面已经遇到过的,在 printf 函数中的'\n'代表一个"换行"符。'\t'代表将输出的位置跳到下一个 Tab 位置(制表位置),
一个Tab 位置为8 列
。
(4)
字符串常量
。如"boy","123"等,用
双撇号
把
若干个字符
括起来,字符串常量是双撇号中的全部字符(但不包括双撇号本身)。注意不能错写成'CHINA','boy','123'。
单撇号内只能包含一个字符,双撇号内可以包含一个字符串。
(5)
符号常量
。用#define 指令,指定用一个符号名称代表一个常量。如∶
#define PI 3.1416 ? ?//注意行末没有分号
2.变量
变量代表一个有名字的、具有特定属性的一个
存储单元
。 变量用来存放数据,也就是
存放变量的值
。 在程序运行期间,变量的值是
可以改变
的。 变量必须
先定义,后使用
。
3.常 变 量
常变量与常量的异同是: 常变量具有变量的基本属性: 有类型,占存储单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。 #define Pi 3.1415926?? ?//定义符号常量 const float pi=3.1415926;?? ?//定义常变量 符号常量Pi和常变量pi都代表3.1415926,在程序中都能使用。但二者性质不同: 定义符号常量用#define指令,它是预编译指令,它只是用符号常量代表一个字符串,在预编译时仅进行字符替换,在预编译后,符号常量就不存在了(全置换成3.1415926了),对符号常量的名字是不分配存储单元的。而常变量要占用存储单元,有变量值,只是该值不改变而已。从使用的角度看,常变量具有符号常量的优点,而且使用更方便。有了常变量以后,可以不必多用符号常量。 ?4.标识符标识符就是一个对象的名字。用于标识变量、符号常量、函数、数组、类型等 标识符只能由字母、数字和下划线3种字符组成,且第1个字符必须为字母或下划线 注意:变量名中区分大小写字母 ;不能使用关键字作为变量名 ;变量的名字应该尽量反映变量在程序中的作用与含义 3.2.2 数据类型?所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式。不同的类型分配不同的长度和存储形式。 3.2.3 整型数据3.2.4 字符型数据3.2.5 浮点型数据3.2.6 怎样确定常量的类型3.3 运算符和表达式3.3.1 C运算符?3.3.2 基本的算术运算符?注意:两个实数相除的结果是双精度实数,两个整数相除的结果为整数 %运算符要求参加运算的运算对象(即操作数)为整数,结果也是整数? 3.3.3 自增(十十)、自减(——)运算符
3.3.4 算术表达式和运算符的优先级与结合性用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子称为C算术表达式。 运算对象包括常量、变量、函数等。 C语言规定了运算符的优先级(例如先乘除后加减),还规定了运算符的结合性。 在表达式求值时,先按运算符的优先级别顺序执行,当在一个运算对象两侧的运算符的优先级别相同时,则按规定的“结合方向”处理。C语言规定了各种运算符的结合方向(结合性), “自左至右的结合方向”又称“左结合性”,即运算对象先与左面的运算符结合。相反“自右至左的结合方向”称为“右结合性”。 3.3.5 不同类型数据间的混合运算?如果一个运算符两侧的数据类型不同,则先自动进行类型转换,使二者成为同一种类型,然后进行运算。整型、实型、字符型数据间可以进行混合运算。规律为: ①+、-、*、/运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据都先转换为double型,然后进行运算。 ②如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型。 ③字符(char)型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的ASCII代码转换为double型数据,然后进行运算。
【例3.3】给定一个大写字母,要求用小写字母输出? (1)解题思路: ?字符数据以ASCII码存储在内存中,形式与整数的存储形式相同。 所以字符型数据和其他算术型数据之间可以互相赋值和运算。 大小写字母之间的关系是:同一个字母,用小写表示的字符的ASCII代码比用大写表示的字符的ASCII代码大32。
(2)运行结果? ?? 3.3.6 强制类型转换运算符?(1)类型转换 自动类型转换:在运算时不必用户干预,系统自动进行的类型转换。 强制类型转换:当自动类型转换不能实现目的时,可以用强制类型转换。 (2)强制类型转换运算符 (类型名)(表达式)
3.4 C语句3.4.1 C语句的作用和分类3.4.2 最基本的语句——赋值语句?表达式语句由一个表达式加一个分号构成,最典型的是由赋值表达式构成一个赋值语句 【例3.4】给出三角形的三边长,求三角形面积。 ①解题思路: ?假设给定的三个边符合构成三角形的条件: 任意两边之和大于第三边。 从数学知识已知求三角形面积的公式为:area=,其中s=(a+b+c)/2。
②运行结果? ③程序分析 程序执行部分主要由赋值语句构成,分别实现对a,b,c的赋值,计算s ?和 area。为了提高精度,几个变量全部定义为双精度型。第 10行中 sqrt 函数是求平方根的函数。由于要调用数学函数库中的函数,必须在程序的开头加一条井include指令,把头文件"math. h"包含到程序中来。
printf 函数双撇号内字符串中的
'\t'
是转义字符,它的作用是
使输出位置跳到下一个Tab 位置
"。分析 printf 函数的输出情况∶
先
原样输出字符 a=,
然后
按%f式输出变量a的值,这时了"a=3.670000",
共10 个字符,然后遇到'\t',输出位置就跳到下一个Tab区。
与赋值有关的一些问题
①
赋值运算符“=”
“=”的作用是将一个数据赋给一个变量。 例如:a=3的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。 也可以将一个表达式的值赋给一个变量。
②
复合赋值运算符
在赋值符=之前加上其他运算符,可以构成复合的运算符。
注意:如果赋值符右边是包含若干项的表达式,则相当于它有括号。 例如, x%=y+3等价于x=x%(y+3),切勿错写为x=x%y+3。? ③赋值表达式 赋值表达式的作用是将一个表达式的值赋给一个变量,因此赋值表达式具有计算和赋值的双重功能。 对赋值表达式求解的过程是: ①求赋值运算符右侧的“表达式”的值,②赋给赋值运算符左侧的变量。既然是一个表达式,就应该有一个值,表达式的值等于赋值后左侧变量的值。 赋值运算符左侧应该是一个可修改值的“左值”(left value,简写为lvalue)。 能出现在赋值运算符右侧的表达式称为“右值”(right value,简写为rvalue)。 赋值表达式 : 变量 ?赋值运算符 ?表达式 a=(b=5) 括号内的b=5是一个赋值表达式,它的值等于5。执行表达式“a=(b=5)”,就是执行b=5和a=b两个赋值表达式。因此a的值等于5,整个赋值表达式的值也等于5。赋值运算符按照“自右而左”的结合顺序,因此,(b=5)外面的括号可以不要,即a=(b=5)和a=b=5等价,都是先求b=5的值(得5),然后再赋给a。
赋值表达式使得赋值操作不仅可以出现在赋值语句中,而且可以出现在其他语句中(如输出语句、循环语句等) 如: printf("%d", a=b); 如果b的值为3,则输出a的值(也是表达式a=b的值)为3。在一个printf函数中完成了赋值和输出双重功能。 ④赋值表达式和赋值语句 C语言的赋值语句属于表达式语句,由一个赋值表达式加一个分号组成。 在一个表达式中可以包含另一个表达式。?
注意:区分赋值表达式和赋值语句。 赋值表达式的末尾没有分号,而赋值语句的末尾必须有分号。在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。 ⑤变量赋初值 可以用赋值语句对变量赋值,也可以在定义变量时对变量赋以初值。
3.5 数据的输人输出3.5.1 输入输出举例【例3.5】求a+bx+c=0方程的根。a,b,c由键盘输入,设-4ac>0。
【运行结果?】 ? ?【程序分析】
3.5.2 有关数据输入输出的概念3.5.3 用printf 函数输出数据(1)用来向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据
“格式控制”是用双引号括起来的一个字符串,称为格式控制字符串,简称格式字符串。 包括: ① 格式声明。格式声明由“%”和格式字符组成。作用是将输出的数据转换为指定的格式后输出。 ② 普通字符。普通字符即需要在输出时原样输出的字符。 输出表列是程序需要输出的一些数据,可以是常量、变量或表达式。 (2) printf函数——格式声明
【例3.6】用%f输出实数,只能得到6位小数 (1)
? 虽然a是双精度型,a/3的结果也是双精度型,但是用%f格式声明只能输出6位小数。? (2)
一个双精度数只能保证15位有效数字的精确度,即使指定小数位数为50(如用%55.50f),也不能保证输出的50位都是有效的数字。? 注意:在用%f输出时要注意数据本身能提供的有效数字,如float型数据的存储单元只能保证6位有效数字。double型数据能保证15位有效数字。 (1)用来输入数据
包括: ① 格式声明。以%开始,以一个格式字符结束,中间可以插入附加的字符。 ② 普通字符。
?(2)scanf函数——格式声明
3.5.5 字符输入输出函数1.从计算机向显示器输出一个字符。 putchar(c) 【例3.8】先后输出BOY三个字符。 解题思路: ?定义3个字符变量,分别赋以初值′B′,′O′,′Y′,然后用putchar函数输出这3个字符变量的值。
用putchar函数既可以输出可显示字符,也可以输出控制字符和转义字符。 putchar(c)中的c可以是字符常量、整型常量、字符变量或整型变量(其值在字符的ASCII代码范围内)。 2.getchar函数 向计算机输入一个字符。 【例3.9】从键盘输入BOY 3个字符,然后把它们输出到屏幕。 解题思路: ?用3个getchar函数先后从键盘向计算机输入BOY 3个字符,然后用putchar函数输出。
【例3.10】改写例3.3程序,使之可以适用于任何大写字母。从键盘输入一个大写字母,在显示屏上显示对应的小写字母。 解题思路: ?用getchar函数从键盘读入一个大写字母,把它转换为小写字母,然后用putchar函数输出该小写字母。
? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:48:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |