当前位置:文档之家› 第3章 最简单的C程序设计

第3章 最简单的C程序设计

第3章 最简单的C 程序设计3.1顺序程序设计举例例3.1 有人用温度计测量出用华氏法表示的温度(如 f ,今要求把它转换为以摄氏法表示的温度(如 c) 。

解题思路:找到二者间的转换公式)32(95-=f cf 代表华氏温度,c 代表摄氏温度算法:3.1顺序程序设计举例#include <stdio.h>int main ( ){float f,c; 定义f 和c 为单精度浮点型变量f=64.0; 指定f 的值c=(5.0/9)*(f-32); 计算c 的值printf("f=%f\nc=%f\n",f,c); 输出f 和c 的值return 0;}例3.2 计算存款利息。

有1000元,想存一年。

有三种方法可选:(1)活期,年利率为r1(2)一年期定期,年利率为r2(3)存两次半年定期,年利率为r3请分别计算出一年后按三种方法所得到的本息和。

解题思路:确定计算本息和的公式。

从数学知识可知:若存款额为p0,则:活期存款一年后本息和为:p1=p0(1+r1)一年期定期存款,一年后本息和为:p2=p0(1+r2)两次半年定期存款,一年后本息和为:) 23+)(123+p0(1=p3r r#include <stdio.h>int main ( ){float p0=1000, r1=0.0036,r2=0.0225,(定义变量同时赋予初值)r3=0.0198, p1, p2, p3;p1 = p0 * (1 + r1);p2 = p0 * (1 + r2);p3 = p0 * (1 + r3/2) * (1 + r3/2); printf(”%f\n%f\n%f\n”,p1, p2, p3);return 0;}结果:3.2 数据的表现形式及其运算3.2.1 常量和变量1.常量:在程序运行过程中,其值不能被改变的量。

(1)整型常量整型常量即整常数。

在C语言中,整常数可用以下三种形式表示:1).十进制整数。

如: 1000,12345,0,-345。

2).八进制整数。

以0头的数是八进制数。

如:0123表示八进制数123,等于十进制数83,-011表示八进制数-11,即十进制数-9。

3).十六进制整数。

以0x开头的数是16进制数。

如:0x123,代表16进制数123,等于十进制数 291。

-0x12等于十进制数-18。

(2)实型常量实型常量的表示方法:十进制小数形式:如0.34 -56.79 0.0指数形式:如12.34e3 (代表12.34 103)1e3、1.8e-3、-123e-6、-.1e-3 (正确)e3、2.1e3.5、.e3、e (错误)(3)字符常量普通字符(1)用单引号包含的一个字符是字符型常量(2)只能包含一个字符‘a’,’A’, ‘1’(正确)‘abc’、“a”(错误)转义字符:以字符\开头的字符序列例:#include <stdio.h>void main ( ){printf("abc\'\"\?\\\n");printf("abc\bde\rf\n");printf("h\ti\b\bj k\n");}#include <stdio.h>void main ( ){ printf("\003\077\n");printf("\x1b\x41\n");}(4)字符串常量字符串常量字符串常量是一对双撇号括起来的字符序列.合法的字符串常量:“How do you do.”, “CHINA”,“a”,“$123.45”以上介绍的四种常量的特点:从其字面形式上即可识别的常量,称为字面常量或直接常量。

是没有名字的不变量。

(5)符号常量用#define指令,指定用一个符号名代表一个常量符号常量的使用#define PRICE 30#include <stdio.h>void main ( ){int num, total;num=10;total=num * PRICE;printf(″total=%d\n″,total);}说明:如再用赋值语句给PRICE赋值是错的PRICE=40; /* 错误,不能给符号常量赋值说明:程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,在预编译后,符号常量已全部变成字面常量30。

2. 变量:在程序运行期间,变量的值是可以改变的变量的三属性:*变量代表内存中具有特定属性的一个存储单元*它用来存放数据,这就是变量的值,在程序运行期间,这些值是可以改变的。

*变量名实际上是一个以一个名字对应代表一个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。

从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。

使用变量时的注意事项:*变量必须先定义,后使用*定义变量时指定该变量的名字和类型*变量名和变量值是两个不同的概念3.常变量:const int a=3;定义常变量时必须同时初始化,不能为左值。

常变量与常量的区别有名字的不变量-----没有名字的不变量常变量与符号常量的区别有存储单元-----没有存储单元常变量与变量的区别程序运行期间,变量值不变-----变量值可变4.标识符:一个对象的名字C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线(大小写字母是不同的字符)合法的标识符:如sum ,average, _total, Class, day, BASIC, li_ling 不合法的标识符:M.D.John ,¥123,#33,3D64,a >b3.2.2 数据类型*所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式*不同的类型分配不同的长度和存储形式C 语言允许使用的数据类型:一:基本类型1.整型类型2.浮点类型基本整型 单精度浮点型短整型 双精度浮点型 长整型 *复数浮点型*双长整型字符型*布尔型1.基本类型 算数类型包括1.22.枚举类型 纯量类型包括算数类型.指针类型3.空类型4.派生类型指针类型、 组合类型结构体类型数组组类⎭⎬⎫ 共用体类型函数类型3.2.3 整型数据补充:①几种进制之间的转换②计算机中表示数的三种方式1. 整型数据的分类整型数据在内存中的存储方式是:用整数的补码形式存放。

⑴基本整型(int型)系统分配给int型数据2个字节或4个字节⑵短整型(short int或short)系统分配给short int型数据2个字节⑶长整型(long int或long)系统分配给long int型数据4个字节⑷双长整型(long long int或long long ):C99新增的系统分配给long long int型数据8个字节学习数据类型的注意事项:1.掌握在计算机中的存储形式,如补码2.确定该类型的表示范围3.记住定义该类型的关键字,如int,short2. 整型变量的符号属性(1)整型变量的值的范围包括负数到正数(2)可以将变量定义为“无符号”类型(3)扩充的整型类型:有符号基本整型 [signed] int;无符号基本整型 unsigned int;有符号短整型 [signed] short [int];无符号短整型 unsigned short [int];有符号长整型 [signed] long [int];无符号长整型 unsigned long [int]有符号双长整型 [signed] long long [int];无符号双长整型 unsigned long long [int]3.2.4 字符型数据*字符是按其代码(整数)形式存储的*C99把字符型数据作为整数类型的一种*字符型数据在使用上有自己的特点1.字符与字符代码大多数系统采用ASCII字符集字母:A ~Z,a ~z数字:0~9专门符号:29个:! ” # & ‘ ( ) *等空格符:空格、水平制表符、换行等不能显示的字符:空(null)字符(以‘\0’表示)、警告(以‘\a’表示)、退格(以‘\b’表示)、回车(以‘\r’表示)等字符’1’和整数1是不同的概念:字符’1’只是代表一个形状为’1’的符号,在需要时按原样输出,在内存中以(1)用类型符char定义字符变量*char c = ’?’;系统把“?”的ASCII代码63赋给变量c*printf(”%d %c\n”,c,c);*输出结果是:63 ?#include <stdio.h> #include <stdio.h>void main() void main(){ {unsigned char c=128; char c=130;printf("%d:%c\n",c,c);} printf("%d:%c\n",c,c);}#include <stdio.h> #include <stdio.h>void main() void main(){ {char c=254; char c=-2;printf("%d:%c\n",c,c);} printf("%d:%c\n",c,c);}#include <stdio.h>void main(){char c=-300;printf("%d:%c\n",c,c);}思考:输出的是:ASCII码为212的字符为什么呢?3.2.5 浮点型数据*浮点型数据是用来表示具有小数点的实数,在计算机中以指数形式存放在存储单元中。

*系统把一个浮点型数据分成小数部分和指数部分,分别存放。

*指数部分采用规范化的指数形式。

规范化的指数形式:在字母e(或E)之前的小数部分中,小数点左边为0,右边第一位非零的数字.例如: 123.456可以表示为:123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e其中的0.123456e3称为“规范化的指数形式”。

数值以规范化的二进制指数形式存放⑴float型(单精度浮点型)编译系统为float型变量分配4个字节数值以规范化的二进制数指数形式存放参见主教材图3.116位有效数字⑵double型(双精度浮点型)*编译系统为double型变量分配8个字节*15位有效数字⑶long double(长双精度)型3.2.6 怎样确定常量的类型1.字符常量:由单撇号括起来的单个字符或转义字符2.整型常量:不带小数点的数值系统根据数值的大小确定int型还是long型等3.浮点型常量:凡以小数形式或指数形式出现的实数(1)C编译系统把浮点型常量都按双精度处理(2)分配8个字节注意:可以在常量的末尾加专用字符,如L,F,U,ul3.2.7 运算符和表达式1.基本的算术运算符:+ :正号运算符(单目运算符)- :负号运算符(单目运算符)* :乘法运算符/ :除法运算符% :求余运算符+ :加法运算符- :减法运算符说明(1)两个整数相除的结果为整数*如5/3的结果值为1,舍去小数部分*如果除数或被除数中有一个为负值,舍入方向不固定。

相关主题