C语言N02 C语言基本数据类型 2学时+2学时
更新时间:2023-07-27 23:10:01 阅读量: 实用文档 文档下载
- c语言n0是什么意思推荐度:
- 相关推荐
第二章 基本数据类型
本章课程共2学时 其中:授课2学时,上机2学时
2.1 基本数据类型类型 符号 关键字 (signed) int (signed) short (signed) long 所占位数 16 16 32 数的范围
P45-32768(-215)~32767(215-1) -32768(-215)~32767(215-1) -2147483648(-231) ~2147483647(231-1)
有 整型无
unsigned intunsigned short unsigned long
1616 32
0~65535(216-1)0~65535(216-1) 0~4294967295(232-1)
有实型 有 有 无
floatdouble char unsigned char
3264 8 8
3.4e-38~3.4e381.7e-308 ~1.7e308 -128(-27)~127(27-1) 0~255(28-1)2
字符型2014-6-27
2.2 常量:程序运行时值不能改变的量 P39符号常量:用标识符代表的常量/*符号常量举例Ex02_01.c*/ #define PRICE 30 main( ) { int num, total; num=10; total=num*PRICE; printf("total=%d",total); } 宏定义预处理命令,不是C语句
整型常量12,-22435,0313,0x121
实型常量3.14,1.2e-8,3.6E+9
字符常量 A , ‘E , ‘+ , ‘\101 , ‘\xEF , ‘\n
直接常量:直接用数值表示的常量2014-6-27
字符串常量“China”, “Hellow”, 3 “”
三种整型直接常量的表示方式十进制 符号:0~9,+,123,- 456
八进制十六进制
以0开头,后面跟符号:0~7,以0x开头,后面跟符号: 0~9,a~f,A~F
0123,0110x123,0xff
整型直接常量的类型的确定原则:(1) 根据其值所在范围确定其数据类型 (2) 在整常量后加字母l或L,认为它是long int 型常量 (2) 在整常量后加字母u或U,认为它是unsigned int 型常量 例:判定下列三个整型直接常量的存储方式和类型 (1) 12315 (2) 123L (3) -12345u2014-6-27 4
实型直接常量的表示形式 小数形式 指数形式 0.12,.34,-.56,123. 12.3e3 ,123E2, 1.23e4 必须要有小数点 E或e前必须有数字 E或e后必须为整数
实型直接常量的类型的确定原则:(1) 默认为双精度double型 (2) 在实型常量后加字母f或F,认为它是浮点型(float)常量
2014-6-27
字符常量:用单引号括起来的单个普通字符或转义字符
如: ‘a A ? \n \101 字符常量的值:该字符的ASCII码值 如: ‘A —65, ‘a —97,‘0 —48 , \n —10 转义字符:反斜线后面跟一个字符或一个代码值表示转义 字符\n
含义换行
转义 字符\t
含义制表符
例 转义字符举例main() { printf("\101 \x42 C\n"); printf("I say:\"How are you?\"\n"); printf("\\C Program\\\n"); printf("Turbo \'C\'"); }
\v\r \a
垂直制表符回车 响铃
\b\f \\
退格换页 反斜线
\ \ddd
单引号3位8进制数
\”\xhh
双引号2位16进制数
2014-6-27
运行结果:(屏幕显示) ABC I say:”How are you?” \C Program\ Turbo C
字符串常量:用双引号(“”)括起来的字符序列 每个字符串尾自动加一个 ‘\0’ 作为字符串结束标志h e l l o w \0 \0
字符常量与字符串常
量不同
a
a
“a”
a
\0
例:判断下列常量所占内存空间大小 (1) 'a' (2) "China"
答: (1) 'a'为字符常量,所占空间为1字节 (2) "China"为字符串常量,所占空间为字符数5+1=6字节2014-6-27 7
2.3 变量:内存中具有特定属性的单元 P41 变量的理解a EFh 23
– 变量代表一个存储单元 – 变量具有一定的数据类型 – 变量有一个可以标识的名字用于分配内存
合法标识符作为变量名称
数据类型 变量1[,变量2,…,变量n];
例:右侧程序中有哪些错误? main()
{ int a, b=2; c=2.3; 变量data应在开始处定义 float data; a=1; 可以在定义的时候赋初值 data=(a+b)*1.2; printf(“data=%f\n”,data); 2014-6-27 } 变量c未定义
基本数据类型变量整型变量 一般占2字节 short≤int≤long 用sizeof(类型标识符) 测量
实型变量
字符型变量
float:占4字节,提供7 字符变量存放字符 位有效数字 ASCII码 double:占8字节, char与int数据间可进 15~16位有效数字 行算术运算
例:a= D ; /* a=68; */ x= A +5; /* x=65+5; */ s= ! + G /* s=33+71; */
没有字符串变量,用字符数组存放2014-6-27 9
变量和常量定义的一个例子
例 /*Ex02_04.c*/ #define PRICE 12.5 main() { int num=3; float total; char ch1, ch2= D ;
宏定义 变量定义
total=num*PRICE; 输出结果 ch1=ch2- A + a ; printf(“total=%f,ch1=%c\n”,total,ch1); }2014-6-27
运行结果: total=37.500000, ch1=d
2.4 基本数据类型的数据的输入输出 P65 注意:– C程序中没有输入输出命令 – C程序中的输入输出由特定的函数来实现字符输出:putchar()
如何掌握这四个函数? (1) 了解功能
数据输出格式输出:printf() 字符输入:getchar() 格式输入:scanf()
(2) 了解应用格式(3) 了解输入参数 (4) 知道返回值11
数据输入
2014-6-27
例 m.n 例 int a=1234; float f=123.456; char ch= a ; printf(“%8d,%2d\n”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f); printf(“%3c\n”,ch); 运行 1234,1234 结果: 123.456001,123.456001, 123.5,123.46,1.2e+02 a 例 static char a[]=“Hello,world!”; printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); 运行结果:Hello,world! Hello,world! Hello Hello Hel
2014-6-27
例 -
例 int a=1234; float f=123.456; static char c[ ]=“Hello,world!”; printf(“%8d\n%-8d\n”,a,a); printf(“%10.2f\n%-10.1f\n”,f,f); printf(“%10.5s\n%-10.3s\n”,c,c); 运行结果: 1234 1234 123.46 123.5 Hello Hel
2014-6-27
例 0 、+ 例 int a=1234; float f=123.456; printf(“%08d\n”,a); printf(“%010.2f\n”,f); printf(“%+08d\ 0+8d\n”,a); printf(“%+010.2f\ 0+10.2f\n”,f);
//00001234 //0000123.46 //000+1234 //+0001234 //000+123.56 //+000123.56
例 # 例 int a=123; printf(“%o,%#o,%
X,%#X\n”,a,a,a,a); //173,0173,7B,0X7B例 l 例 long a=65536; printf(“%d,%8ld\n”,a, a); //0, 6553600 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0014 2014-6-27
格式化输入的要点例 字符串输入的截取 例 scanf(“%3c%2c”,&c1,&c2); 输入 abcde 则‘a c1, d c2 数字输入的截取 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999 yy, 10 mm, 15 dd 空格和回车作结束分隔 scanf(“%2d %*3d %2d”,&a,&b); 输入 12 345 67 则12 a, 67 b
例 屏蔽符*的应用 例 scanf(“%3d%*4d%f”,&k,&f); 输入 12345678765.43 则123 k, 8765.43 f 例 其它字符原样输入 scanf(“%d,%d”,&a,&b) 输入 3,4 则3 a, 4 b
例 其它字符原样输入 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36 则12 a, 24 b, 36 c 其中空格对应
2014-6-27
例 其它字符原样输入 scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 则12 h, 30 m, 45 s
注意:此处&不可少!
2.5 不同类型间的数据转换隐式转换 转换场合 运算转换 赋值转换 输出转换 函数调用转换
P54
int max(int x, int y) int a; { float f=1.2; } i=(int)x; 例: char ch; int i; float f; double d; long l; a=f; int a=65; char ch='A'; float f=6.57; …… printf(“x=%f,i=%d”,x,i); a的值为 printf("a=%c,ch=%d,f=%d",a,ch,f); int a; ? } - (f+i) + 10+ a + i*f - d/l ch/I + f*d 1 输出结果: a=A,ch=65,f=6 a=max(3.14, 'A'); 结果:x=3.600000,i=32014-6-27
例 unsigned (int)(x+y) 例 main() { float x; (int)x+y (double)(3/2) int i; 低 int char,short (int)3.6 x=3.6;
高 double float 显式转换 (强制转换 ) 形式:( 类型名)(表达式) 得到所需类型的中间变量, long 原变量类型不变
2.6 算术运算符与算术表达式 包括符号– 基本算术运算符: + - * / % – 自增和自减运算符:++ -例 例 5/2 = 2 -5/2.0 = -2.5 例 5%2 -5%2 1%10 5%1 5.5%2 = 1 = -1 = 1 = 0 ( ) j=3; j=3; j=3; j=3; a=3; a=3;
P52
学习运算符时掌握什么?1. 目:运算对象的个数2. 功能 3. 优先级
4. 结合方向(难点)k=++j; k=j++; printf(“%d”,++j); printf(“%d”,j++); b=5;c=(++a)*b; b=5;c=(a++)*b; //j=4,k=4 //j=4,k=3 //4 //3 //a=4,c=20 //a=4,c=15
例 -i++ -(i++) i=3; printf(“%d”,-i++); //-32014-6-27
例 j+++k; (j++)+k;17
2.7 赋值运算符和赋值表达式 包括符号
P59
例 3=x-2*y; (×) a+b=3; (×)
– 基本运算符:= – 复合运算符:+= -= *= /= %= <<= >>= &= ^= |=例 a=3; d=func(); c=d+2; a+=3 a=a+3 x*=y+8 x=x*(y+8) x%=3 x=x%3 例则
float f; int i; i=10; f=i; f=10.0例 int i; i=2.56; //结果i=2;
例: a=12; a+=a-=a*a; //a=-264 等价于a=a+(a=a-(a*a))
例 int a=2; a%=4-1; a+=a*=a-=a*=3; //a=0 等价于a=a+(a=a*(a=a-(a=a*3))) 例: a=b=c=5 a=(b=5) a=5+(c=6) a=(b=4)+(c=6) a=(b=10)/(c=2) //表达式值为5,
a,b,c值为5 //b=5,a=11 //表达式值为11,c=6,a=11 //表达式值10,a=10,b=4,c=6 //表达式值5,a=5,b=10,c=2
2014-6-27
2.8 逗号运算符和逗号表达式例 a=3*5,a*4 //a=15,表达式值60 a=3*5,a*4,a+5 //a=15,表达式值20 x=(a=3,6*3) //赋值表达式,表达式值18,x=18 x=a=3,6*a //逗号表达式,表达式值18,x=3 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); //1,2,3 printf(“%d,%d,%d”,(a,b,c),b,c); //3,2,3
例: /*Ex02_05.c*/ #include <stdio.h> main() { int x,y=7; float z=4; x=(y=y+6,y/z); printf("x=%d\n,y=%d",x,y); } 2014-6-27
运行结果:x=3,y=1319
正在阅读:
欢乐的除夕作文450字06-16
4×50米接力跑教学教案.docx04-30
2020年高考地理(课标版)一轮总复习检测:第五单元 地表形态的塑造 第二讲 山地的形成与河流地貌的11-29
一片叶作文400字06-19
物业服务经典总结04-07
2013年第24届希望杯初一第1试试题及答案(word版)12-24
商务局年度工作总结及来年工作打算08-04
课后题《化工设备机械基础》习题解答11-20
点线面位置关系04-20
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 学时
- 语言
- 类型
- 基本
- 数据
- N02
- 燕麦项目合作方案 (1)
- 2014届北京石景山区高三上期末考试英语试题
- 成套电器基础知识详解
- 11秋学期《大学英语(四)》课程第二次网上作业答案
- 三角函数的应用知识点复习
- 力的分解和合成练习题
- 内蒙古鄂伦春自治旗2018届高三下学期二模(420模拟)理综化学试题 含答案
- 人教版二年级语文上册教案
- 公共关系理论与实务试题及答案A卷
- 城市空间结构导学案
- (完整)三年级数学竖式计算大全,推荐文档
- 3.1.3二倍角的正弦余弦正切公式(1)
- 实际问题与方程4
- 上海教师招聘考试面试中经常会问的问题及回答
- 论企业形象与企业文化的关系
- 2016国考考点大练堂:数量关系之数学运算(4)
- 1.施工方案与技术措施
- 欧陆风云4秘籍&国家代码&事件
- 2013年六年级上册数学教学总结
- 员工生日会策划方案