C语言基础.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)赋值运算的类型转换
在对赋值表达式求解过程中,如果赋值运算符两过的 数据类型不一致,赋值时需要进行类型转换。这一转换工 作由 C 编译系统自动完成,转换的原则是以赋值运算符 “=”左边变量的类型为准,即将“=”右边表达式的值 转换成“=”左边变量的类型一致。
9.2 强制数据类型转换
强制类型转换运算符
%
-
0
m.n
l或h
格式字符
(1)指定输出类型(P55表3.1)
(2)输出长度修正 (3)指定输出域宽及精度 (4)指定空位填0 (5)指定左对齐输出
格式说明的起始符号
(1)格式字符
格式字符用以指定输出项的数据类型和输出格式。 格式字符与其对应的输出项的类型要一致。例如,不应用%f去 输出整数。
格式字符 d
5 + 10
2、运算符的优先级
6 + 5 * 4
3、运算符的结合性
10 / 5 * 2
4、变量的值
int a = 5; a = a + 2;
8.1 算术运算符/表达式
和其它高级语言一样,C语言分别用+、-、*、/表示四则运 算的加、减、乘、除运算符。C语言基本的算术运算符如表所示。 运算符
+ *
功能介绍
o x ,X f e c
说
明
十进制格式输出整数(有符号)
以八进制格式输入整数(不输出前导符0) 以十六进制格式输入整数(不输出前导符0x) 小数形式输出单、双精度实数(隐含输出6位小数) 以指数形式输出实数 字符格式输出一个字符
s
输出字符串
(2)长度修正符 l 或 h
l:对整型指 long 型,如 %ld,%lx等;对实型指double型, 如 %lf。(例 ex04_08.c)
float a = 1.23; printf("%08.1f",a);
(5)指定左对齐输出 负号(-)用以指定输出项是否左对齐输出。不加负号或加正号 时为右对齐输出。(例 ex04_10.c)如:
printf("|%-15s|%6.2f|\n","zhang wei",165.35)
注意: 在设计格式参数时,要求每个格式项要与所对应的输出项参数的 类型、次序相一致。
自增、自减运算符是C语言的一个特色,它的作用是将变量值加 1 或减1, ++i; --i; (在使用i之前,先对i的值进行加(减)1操作) i++; i--; (在使用i之后,再对i的值进行加(减)1操作) ++i 是先执行 i=i+1,再使用i的值。而i++是先使用i的值,再执 行 i=i+1。例如,下列语句中i的初始值都是5,执行结果k的值却不不 同。 k=++i; 先执行i=i+1,i的值为6,再赋值给k,k=6。 k=i++; 先使用i的值为5,把它赋值给k,k=5,再执行 i=i+1。 注意: 1、自增、自减运算符都只能用于变量,不能用于常量或表达式。 例如:++5、(3*s)++都是非法的。 2、用于自增、自减的变量只能是整型、字符型和指针型变量,不 能是实型变量。 3、自增、自减运算符满足处右向左的结合律。
5、若定义int x; char c; 且执行 scanf("%2d%c",&x,&c); 语句时,从第一列开始输入数据12345 a<回车>,则x和y的值分 别为______。 A:12345 不确定 B:12 'a‘ C:45 'a' D:12 '3'
8、运算符与表达式注意的问题
1、表达式的值
8.2 赋值运算符
除了我们在普通赋值运算符“=”外,赋值运算符还允 许一些变形---复合赋值运算符。我们还可以使用下面这几 种赋值运算符。
=、+=、-=、*=、/=、%=
比如: a -= 3 x *= y + 8 (等价于 a = a - 3) (等价于 x = x*(y+8) )
8.3 自增、自减运算符/表达式
C语言程序设计
C语言基础知识
湛江师范学院 陈其嶙
1、C程序的上机运行步骤
编辑
编译
连接
执行
源程序 (.C文件)
目标文件 (.obj文件)
可执行文件 (.exe文件)
2、C程序的构成及运行
一个C程序是由一个或多个函数组成的。在组成程序的 函数中,必须有、也只能有一个主函数,主函数的名字为 main。C程序的执行是从主函数开始,到主函数的最后一条 语句结束。
5、C语言中逻辑量的表示方法
C 语言中逻辑量是用整型数据来表示的,用数值 0 代表“假”,非 0 代表“真”)
符号常量的定义及使用
符号常量:用一个标识符代表的一个常量数据 定义方法:
#define 标识符
如:
常量
#define PI 3.14
注意: 1、在定义符号常量的同时必须指定其值,指定值后就不能 在程序中更改其值(即不能为其赋值)。如下面是错误的: PI = 3.1416; 2、符号常量标识符通常全部用大写字母(约定俗成)。
7、C语言的输入
1、字符输入函数 putchar()
字符变量 = getchar();
2、字符串输入函数 puts()
gets(字符串);
3、格式化输出函数 scanf()
scafn(格式控制字符串,输入列表)
格式说明项
%
*
m
l或h
格式字符
格式说明项由“ %”引出并以一个类型描述符结束的 字符串,中间是一些可选的附加说明项,其完整格式为:
%
*
m
l 或h
格式字符
(1)指定输入数据类型(P57表3.3) (2)输入长度修正 (ex05_03.c) (3)指定输入域宽 (ex05_04.c) (4)赋值抑制符 (ex05_05.c) 格式说明的起始符号
格式字符
格式字符用以指定输出项的数据类型和输出格式。 格式字符与其对应的输出项的类型要一致。例如,不应用%f去 输出整数。
当一个运算符具有不同类型的运算对象时,必须进行类 型转换。这种类型转换的一般如下: (1)低级类型向高级类型转换 数据类型由低级向高级的排列顺序是: char → int → long → float → double
在数据转换中,低级类型服从高级类型,并进行相应转 换。在运算中可以将所有的 char型转换成 int型数据,所有 的 float 数据可以转换为 double 数据。例如,下列语 句: int a; a = 15 + 'a'; printf("a的值是:%d\n",a); 结果是112
2)除法运算,如果两个操作数是整数,则是整除运算, 其结果是整数。例如 5/3=1,-5/3=-1,舍弃了小数部分。 如果两个操作数中有实数,则此运算符变为实数相除运算,结 果是实数。例如:1.0/3.0=0.33333。 3)什么是取模运算呢?在C语言中,取模运算符为%,表 达式x%y是x除以y所得的余数。如果x正好能被y整除的话, 那么结果是0。例如:45%5=0; 45%10=5。 取模运算要求两个操作数必须是整型数,其结果也是整数。 下面这个式子在C语言中是非法的: 12.4%6.7
2、实型数据 常量:0.123 123.4 123e4 变量:float x, y, z; double u, v, w;
3、字符数据 常量:’a’ 变量: char 4、字符串数据 常量:"Hello"
0.2e-1 .4
1.
’9’ ’+’ ‘\123’ ‘\n’ ‘\x23’ c1, c2, c3; "中国" "a" "1999"
§8.4.2 关系运算符的运算
关系运算符都双目运算符,满足从左到右的结合律。它们的 优先关系如下: 1、关系运算符的优先级要低于算术运算符。比如语句: c>=b+2;则先计算 b+2 的值,再和c比较。 2、关系运算符的优先级高于赋值运算符。比如语句 “a=b>c;”,先进行关系运算“b>c”,成立(真),则b>c值为 1,不成立(假),则b>c值为0;然后再做赋值运算,把1或0赋 值给a。 3、关系运算符>、>=、<、<=的优先级要高于==、!=的优 先级,同级之间优先级相同。比如语句“c<a!=b;”,先计算 “c<a”,再算“!=”的值,等价于“(c<a)!=b”。 4、除了数学运算对象之外,还可以使用关系运算符来比较 字符数据,char 值将被 强制转换成 int 值以进行比较。 5、不能直接使用关系运算符比较字符串。
3、C语言的标识符
用来标记常量、变量、函数及文件名字的字符序列 标识符的构成规则: 以字母(大小写皆可)或下划线( _ )开头,随后可跟 若干个(包括0个)字母、数字、下划线 1、C语言的标识符不能是C语言的关键字 2、C语言的标识符区分大小写
4、C语言的基本数据类型
1、整型数据 常量:10 123 0123 0x56 变量:int a,b,c; long l, u;
减法运算符或负值运算符 a-b; -3; 乘法运算符
举例
加法运算符或正值运算符 a+b; 3+5; +5; a*b; a*a; 3*a;
/ %
除法运算符 模(求余)运算符
a/b; 9/4; 5.0/3.0 a%b; 7%4;
注意事项:
1)加、减运算符,如果当作正、负符号使用时,就不是 加减运算符了,正、负号的优先级要高于乘、除运算符。
6、C语言的输出
1、字符输出函数 putchar()
putchar(字符);
2、字符串输出函数 puts()
puts(字符串);
3、格式化输出函数 printf()
printf(格式控制字符串,输出列表)
格式说明项
%
-
0
m.n
l或 h
格式字符
格式说明项
格式说明项由“ %”引出并以一个类型描述符结束的 字符串,中间是一些可选的附加说明项,其完整格式为:
百度文库
格式字符 d
o x ,X f e c
说
明
十进制格式输出整数(有符号)
以八进制格式输入整数(不输出前导符0) 以十六进制格式输入整数(不输出前导符0x) 小数形式输出单、双精度实数(隐含输出6位小数) 以指数形式输出实数 字符格式输出一个字符
s
输出字符串
练习
1、设有定义:long x=123456L; 则以下能够正确输出变量 x 值的语句是_____。 A: printf("x=%d\n",x); B: printf("x=%ld\n",x); C: printf("x=%8dL\n",x); D: printf("x=%Ld\n",x); 2、以下程序段的输出结果是() int a=1234; printf(“%2d\n”,a); A:12 B:34 C:1234 D:提示出错、无结果
练习
3、用 scnaf(“%d,%d”,&x,&y) 输入数据时,下列输入方式中 正确的是______。 A:123,456 B:123 456 C:123;456 D:123/456
4、若定义int x; float y; 且执行 scanf("%3d%f",&x,&y); 语句时,从第一列开始输入数据 12345 67<回车>,则x和y的值分别为______。 A:12345 不确定 B:123 45.000000 C:45 67.000000 D:345 12.000000
(类型名)
表达式
优先级同++,从右向左
(double)3 (int)3.8 (double)(5/2) (double)5/2
3.0
3
2.0 2.5
10 关系运算符和关系表达式
关系运算和我们数学中的比较运算基本一致,它们用于两 个操作数(整数、浮点数、字符数据)的比较。 C语言为我们提供了6种关系运算符: 关系运算符 < > >= <= == != 意义 小于 大于 大于等于 小于等于 等于 不等于 age < 30 height > 5.2 taxable <= 20000 temp >= 98.6 class == ‘b’ number != 250 示例
8.4 逗号运算符/表达式
表达式1, 表达式2, ……,表达式n 先计算表达式1,然后计算表达式2,……,最后计算表达 式n的值,并将表达式n的值作为逗号表达式的值.
逗号运算符的优先级最低,从左向右
a = (3+5 , 4*6 ) a=24 a = 3+5 , 4*6 a=8
9、 数据类型的转换
h:只用于将整型的格式字符修正为 short 型,如:%hd,%hx
等 (3)指定输出域宽及精度 m.n m表示指定输出的宽度,如 %5d,%6f 等(例:ex04_09.c) n表示指定输出的小数位,只用于实型数据 如:%5.2f %.2f
(4)指定空位填 0
数字 0 用以指定数字前的空位是否用 0 填补。有此项则以 0 填 补,无此项则空位用空格填补。(例ex04_10.c)如: