第2章 简单C语言程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1GB=1024MB
int celsius, fahr; celsius = 5 * (fahr - 32) / 9;
变量是计算机里一块特定的内存,它由一个或多 个连续的字节组成。
每个变量都有一个名称,表示内存中的这个位置, 以便通过变量名读取该位置的数据或存储一个新数 值。 变量的值不是固定的,随时都可以改变,且次数 不限。
unsigned __int64
unsigned long long int
0至232-1, 0 至 + 4294967295
0至264-1,0至18445744073709551615
声明变量格式:<变量类型 > <变量名字> int celsius, fahr; 定义时初始化变量: int celsius, fahr=100; 定义后初始化变量: fahr=100; 。 给变量赋值,除了给一个直接的值以外,还可以通 过计算获得: celsius=5*(fahr-32)/9;
转换字符串 说明
%d %ld %c
将参数按整数形式转换输出,对应参数应是int 类型 将参数按长整数形式转换输出,对应参数是long型 输出一个字符,对应参数应该是一个字符
%s
%f
输出一个字符串,对应参数应该是一个字符串
将参数按带小数点数形式输出,对应参数应是 double 类型,默认情况下精确到 6 位小数

去VC下试试!
2.2.2 浮点数据的输出
float circumference = 78.53; 9.4786789; printf ("%f" , circumference);
9.478679 输出结果:78.530000
默认情况下精确到六位小数
转换字符串%m.nf
double mercuryLevel = 168.2251074; printf( ""%7.2f" " , mercuryLevel);
第2章 简单C程序设计
第二章 简单C程序设计
C语言的数据类型、运算符 C语言的常量和变量 C语言的表达式 常用数学函数 格式化输入、输出函数
程序2-1 求华氏温度100F对应的摄氏温度
#include <stdio.h> int main( ) { int celsius, fahr; fahr=100; celsius=5*(fahr-32)/9; printf(“fahr=%d, celsius=%d\n“, fahr, celsius); return 0; 执行程序的输出结果为: }
int visitorCount = 150; printf (" %d" , visitorCount);
输出结果:150
数据以十迚制整数格式输出,宽度占m列,数据 不足m列左补空格,超过m列按实际位数输出。
int salary = 5500; printf ( %10d "" %10d "" , salary);
fahr=100, celsius=37
计算机执行程序时,数据都存储在内存中。 内存可以理解为一排井然有序的小开关,每个开关有 两个状态:开表示1,断表示0,所以每个开关表示一 个二迚制数,0或1,称为一个位(bit). 为管理方便,8个位为一组,称为一个字节(byte) 然后为所有字节从0开始编号,这个编号称为字节的 地址。 每台计算机都安装了一定数量的内存,内存通常以 1B=8bit MB为单位。 1MB=1024B
-2-63 至 263Βιβλιοθήκη Baidu1
__int64 long long int
8个字节
1、数据类型所占字节数,取决于所使用的编译器
2、short int 可以简写为short, long int可以简写为long 3、不同编译器对64位的支持不同,在VC中只支持__int64, gcc/g++支持 long long, windows平台的gcc/g++也支持__int64
内存
37 100
程序
存储 fahr
计算5 * (fahr - 32) / 9
编写程序时,通常使用变量 来存储数据,方便后面使用 这个数据或者修改这个数据 的值。
将值存储为celsius 输出fahr和celsius
内存变量用来存储数据,系统需要知道每个变量要 存储什么类型的数据,然后为每个变量分配一块足 够大的内存空间,用来该类型的数据

赋值运算符 = 赋值表达式:用 = 将一个变量和一个表达式连接起来的 式子
变量 = 表达式 = 的左边必须是一个变量, 例如: 称为“左值” fahr = 100; celsius = 5 * (fahr - 32) / 9; 计算赋值表达式的值:赋值表达式的值由右侧表达式的 值决定 改变变量的值:将赋值表达式的值存入左侧的变量
整数变量还分为几种不同的类型,以存储不同范围的整数
short int int long int
2个字节
4个字节 4个字节
-2-15至215-1 , -32768 至 +32767 -2-31至231-1,-2147438648 至 + 2147438647
-2-31至231-1,-2147438648至+2147438647
数据类型 数据 数值 2.175 123 整型 非整型 9/12/2003 非数值 Africa char
int The quick brown fox 整型 非整型 float Jackie Chan short int double 数值 非数值 long int 999 9002.12 数据属于不同类别TRUE
#define
<立即数>
PI 3.1415926
编译预处理指令#define将PI定义成一个要被3.1415926取代 的符号,此时PI不是一个变量,而是3.1415926的别名。
注意:#difine语句不以分号结尾,可以位 于源代码的任何位置,它定义的常量只在后面 在编译开始之前,只要在程序的表达式中引用 PI,预处理 的源代码中有效。
(+/-)1.7E308 ,15位有效数字
Long double
8个字节
课外作业:查阅资料,了解浮点数是如何存储的
内存
float
213.5671435568967
double
64位
16 位有效数字
flaot f_level = 213.5671435568967; 取值范围:10-308 至 10308 double d_level = 213.5671435568967;
器就会用#define 指令中的值(3.1415926)来取代它。
宏常量的缺点:宏常量被替换成立即数之后,内存中有同 一个立即数的多份拷贝。
在定义变量时,加上const修饰,告诉编译器,它
的值是固定的,不能被改变。编译器会帮你检查、 监督。
const double PI=3.1415926;
const 推出的初始目的,正是为了取代预编译指令, 消除它的缺点,同时继承它的优点。
不要引用未被初始化的变量,否
则结果会不可控制。
也不要将超出变量取值范围的值
赋给变量。
变量名可以由字母、数字和 _(下划线)组合而成 变量名不能包含除 _
以外的任何特殊字符,如: %、# 、逗号、空格等 变量名必须以字母或 _(下划线)开头 变量名不能包含空白字符(换行符、空格和制表 符称为空白字符) C 语言中的某些词(例如 int 和 float 等)称为保留 字,具有特殊意义,不能用作变量名 C 语言区分大小写,因此变量 a 与变量 A 是两个不同的变量
当printf()函数没有输出项时,函数的参数只有
“格式控制串”,且“格式控制串”中没有格式
字符而只有普通字符时,函数完成的功能是将双
引号中的字符串原形输出(显示在屏幕上)。
例如:printf(“hello C ! ”);
此句是将hello C !在显示器屏幕上原形输出出来。
转换字符串
printf( "%d" , count);
当处理不能为负的数据时,可以使用无符号类型, 所占内存与有符号型相同,但对正数的表示范围比 有符号型大一倍
unsigned short int
2个字节
4个字节 4个字节 8个字节
0至216-1 , 0 至 +65535
0至232-1, 0 至 + 4294967295
unsigned int unsigned long int
程序
指令
标识符 关键字 常量 运算符 分隔符 等
为使程序易于阅读和便于修改,可以给程序中经常使
用的常量定义一个有一定含义的名字。
常量用于定义具有如下特点的数据: 在程序中保持不变 在程序内部频繁使用 需要用比较简单的方式替代某些值 防止意外的修改,增强程序的健壮性
格式:#define <符号常量名>
输出结果: 168.23
宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。
精度(精确到小数点后多少位)
常量是在程序中保持不变的量,分为:
立即数 符号常量(宏常量) const 常量 立即数 整型常量:如32、100 实型常量: 如1.23 123.567e5 字符常量: „a‟ 、 ‘2‟ 、 ‘\n‟ 字符串常量:“c program”
普通字符,原样输出
输出参数列表 %开头的是转换说明,对应与后面一个 输出参数,对应参数将被转换成指定格 式后在该位置输出
‘\n’是转意字符,用来输出一个回车
输出结果: fahr=100, celsius=37
已知m=11,n=41,输出m和n的2次方、3次方和4次 方,要求每个数据占8列,左对齐。 效果如下: 121 1331 14641 1681 68921 2825761
输出结果:
5500
输出结果的左边显示了 6 个空格
数据以十迚制整数格式输出,宽度占m列,数据 不足m列右补空格,超过m列按实际位数输出。 int salary = 5500; printf " ("%-10d %10d" , salary);
输出结果:5500
输出结果的右边显示了 6 个空格
printf(“fahr=%d , celsius=%d\n", fahr, celsius);
/*求两个整数的和*/
该程序为何得不到正确结果?
#include<stdio.h> 错误原因是受数学思维的影响, int main() 误以为sum=a+b;是建立sum和a+b 应改成: a=3; { 乊间的一个等量关系 b=5; int a, b, sum; sum=a+b; sum=a+b; 执行sum=a+b;语句是,因为a和 b中的值都不确定,是随机的, a=3; 所以其和也是随机的,然后把这 b=5; 个数赋给了sum printf("%d\n",sum); 赋值运算会改变赋值号左边的变量,既不表示 return 0; } 数学中的等量代换,也不表示相等关系
例2-1中程序的运行结果幵不令人满意,因为华氏温度
100,对应的摄氏温度应该为37.7777…,而不应该是37。
需要使用浮点型变量来存储带小数点的数,我们需要将 celsius, fahr声明为双精度浮点型
#include <stdio.h> int main( ) { double celsius, fahr; /*声明两个双精度浮点型变量*/ fahr=100.0; /*赋值运算*/ celsius=5*(fahr-32)/9; /*计算摄氏温度,并存入变量celsius*/ printf("fahr=%f, celsius=%f\n", fahr, celsius); }
浮点变量用来存储浮点数,浮点数包含的值带小数点, 也可以表示分数和整数。 浮点数在计算机中的表示,基于指数表示法,将分为 指数和尾数来存储。浮点变量根据数据表示范围和精 确度不同,有一下几种类型
float double 4个字节 (+/-)3.4E38 ,6位有效数字
8个字节
(+/-)1.7E308 ,15位有效数字
2.1.6 格式化输出函数printf()
格式:printf(“格式控制串”,输出参数表) printf printf( "%d" , count count);
将一些信息按照指定的格式送到标准输出(显示器)
格式字符串:指定数据的输出格式 输出参数表:待输出的数据,可以是常量、变量或表 达式
printf()函数的简单应用
相关文档
最新文档