C语言第二次作业答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能 8进制数表示的ASCII字符 16进制数表示的ASCII字符 响铃 水平制表 换行 回车 退格 单引号 双引号 反斜线 空字符
字符串常量
1.字符串常量一对双引号括起来的字符系列。
例:"hello!", "program", "a", 123.45"
2.存储形式 字符串中的每个字符占一个字节,在其尾
• 赋值运算符具有右结合性。
a=b=c=1
可理解为:
a=(b=(c=1))
2. 复合赋值运算符: += 、-= 、*= 、/= 、 %= (算术运算) &= 、|= 、^= 、>>= 、<<= (位运算)
• 复合赋值符是在赋值符“=”之前加上其它二 目运算符可构成,执行顺序是:先运算,再 赋值。
• 复合赋值表达式的一般形式为: 变量 双目运算符 = 表达式
2. 长整数 • 取值范围:占四字节
-2147483648 ~ +2147483647 • 表示形式:在整数后面加字母L或l 例:456l、-0456l、0x456l 3. 关于无符号数
若整数是无符号数,整常量能表示的取值范围 将相应的扩大一倍
实型常量
1. 实型常量又称浮点数常量,只使用十进制, 有两种表示形式:
这里的0和1 是逻辑值,它可以作为判断的条件, 也可以和其它的关系表达式做逻辑运算(与、 或、非等),也可以和其它的算术表达式做算 术运算
运用关系表达式时的注意事项
1 关系表达式中字符型数据按其ASCII码值参加比较运算
100 < ‘a’ 值为0 '3' > 30 值为1
2 运算符两边的表达式可以是算术、字符、赋值、关系、或逻 辑表达式。
取整数的十位数
2. 自增、自减运算符:++、--
• 用法
- 前置运算: ++或--用在变量之前,先将变量的
值增1或减1,再将该变量的新值用于表达式中 - 后置运算: ++或--用在变量之后,先将变量的
值用于表达式中,再将该变量的值增1或减1 例: i=5+j--; i=5+--j;
• 该运算符只能用于变量,不能用于常量和表达式
等价于:
变量 = 变量 双目运算符 表达式 例如:
a+=5 等价于 a=a+5
x %= 8 等价于 x = x % 8 n &= m 等价于 n = n & m x * = y + 7 等价于 x = x * ( y + 7 ) x << = n + 1 等价于 x = x << ( n + 1)
选择标识符时,提倡使用有意义的英文单 词,注意做到“见名知义”
关键字是由C语言规定的具有特定意义的 字符串,通常也称为保留字 ,不允许作标 识符(见附录)
数据类型 int,short long [int] unsigned int unsigned short unsigned long
整型变量
C语言规定,可以在定义变量的同时给变量赋初值。
例如:int a=2,c=3;
float pi=3.14;
char c1=‘a’,c2=‘9’;
如果要对n个同类型的变量赋相同的初始值,也要 分别赋值。
例如: int a=10,b=10,c=10;
int a=b=c=10;
错误!!!
4 运算符和表达式-1
所占位数
数据类型说明符:int,short,long 数值范围
16
-32768~32767 (-215~ 215-1)
32
-2147483648~2147483647(-231~ 231-1)
16
0 ~ 65535 ( 0 ~ 216-1 )
16
0 ~ 65535 ( 0 ~ 216-1 )
32
0 ~ 4294967295 ( 0 ~ 232-1)
*例2:执行下列语句后,输出结果是什么?
main() { int a=10, b=20, c; c=++a+b--; printf( "a=%d,b=%d,c=%d", a, b, c ); }
结果:a=11,b=19,c=31
算术表达式
是用算术运算符和括号将运算对象(常量、 变量和函数等)连接起来的、符合C语法 规则的式子,如:
常量的分类:
整型常量 实型常量 字符常量 字符串常量 符号常量
整型常量
整型常量即整常数 1.整数 • 取值范围:一般占一个机器字,字长2字节,
取值范围为 -32768 ~ +32767 • 表示形式: 十进制整数 以非0开头的整数 八进制整数 以0开头的整数 十六进制整数 以0x或0X开头的整数 例:-123、456、0123、-0x123
例2: main() { int a ; char b; a='a'; b=98; printf("%c %c\n", a, b); printf("%d %d\n", a, b); } 运行结果:a b
97 98
变量初始化
定义变量时仅为变量分配内存,并不对这部分内 存进行清空操作,分配作变量的内存中的原值被 保留,且其值无法确定。因此,变量在参与运算 前应初始化,赋予初值,以免产生逻辑错误。
• 定点数形式 由正负号、整数部分、小数点、小数部分组成
例:0.0、12.34、0.123、.123、-123.0 、-123. • 指数形式
由正负号、整数部分、小数点、小数部分、E(e)后 带或不带正负号的整数组成 合法:1e-5、-3.14157E+7、-28e-005、123.45E0 非法:E8、3E-5.6、.e2、4e、e
合法:i++; --j; i=(j++)*5; 非法:6--; i=(j*5)++;
例1:main() { int a=5,c; c = ++ a; /* a先增1,再运算 */ c = c + a ++; /* a先运算,再增1 */ printf ("a = %d \tc = %d\n",a,c); } 结果:a = 7 c = 12
main()
{ int a,b,s; scanf(“%d %d”,&a,&b); s=a+b; printf(“%d”,s);
} 输入:11 22 输出:33
实型变量
数据类型 所占位数
float
32
double
64
long double
128
数据类型说明符 :float,double
数值范围
10-37~ 1038 10-307~ 10308 10-4931~ 104932
2. 实型常量不分单、双精度, 都按双精度 double型处理
字符常量
1.字符常量是用一对单引号(作为定界符)括起 来的一个字符,字符不能是单引号 ‘ 、双引号 “ 、反斜杠 \。例如: 'A', 'a', '5', '?', '+', '!', '$'。
2.字符常量具有数值,即其 ASCII 代码值。如: C = 'A'; 与 C = 65; 等价。
实际上是把该字符的 ASCII 代码放到字 符变量对应的内存单元中去
• 字符数据与整型数据的存储形式相类似, 可以相互赋值或混合运算,一个字符数 据既可以以字符形式输出,也可以整数 形式输出.
例1: main() { char a, b; a='a'; b='b'; printf("%c %c\n", a, b); printf("%d %d\n", a, b); }
运行结果: 2,1,2 -3,5,5 8
printf("%d,%d,%d\n", a, b, c);
a-=b*=c+=3;
printf("%d,%d,%d\n", a, b, c);
a=b=c=1;
c=(a*=2)+(b+=3)+2;
printf("%d\n", c);
}
4.3 关系运算符和关系表达式
数据类型 变量名表; 例: int a,b; (定义两个整数) 分类 整型变量、实型变量、字符型变量 变量初始化
C标识符
用来标识变量名、符号常量名、函数名、 数组名、文件名的有效字符序列。
标识符必须由字母或下划线开头,后跟字 母或下划线或数字,字母区分大小写。
标识符的长度(字符个数)无统一规定, 随系统而不同,一般只能识别前8个字符。
注:赋值号右边是作为一个完整的表达式参加 运算
例: int x=6; 执行x+=x-=x*x;后,x的值是? -60 *执行x+=x-=x++;后,x的值是? 2
例: 复合赋值运算符示例 #include "stdio.h" main() { int a=2, b=3, c=4;
a*=b/=c-=a;
例:(a+x)>(b+y)
(x=4)<=y++
3 关系运算符运算时结合方向自左至右。
例: 若 a = 4, b = 3, c = 2 则 x = ( a<b<c ) x的值为1; y = ( a>b>c ) y的值为0。
有效数字
6~7 15~16 18~19
main()
{ float x,y; x=111111.111; y=222222.222; printf("%f\n",x+y);
} 运行结果为 333333.328125
字符型变量
数据类型说明符:char
• 一个字符变量在内存中占一个字节 • 将一个字符常量赋值给一个字符变量,
运算符是告诉编译程序执行特定算术或逻 辑操作的符号
算术运算符和算术表达式 赋值运算符和赋值表达式 关系运算符和关系表达式 逻辑运算符和逻辑表达式 条件运算符和条件表达式 逗号运算符和逗号表达式
4 运算符和表达式-2
指针运算符* sizeof运算符 位运算符* 不同类型数据之间的转换 运算符优先级和结合性 表达式和表达式语句
1. 关系运算符(比较运算符) 用于比较两个表达式值的大小,有6种: > 、>= 、< 、<= 、= = 、!=
2. 关系表达式 • 是用关系运算符把两个表达式联系起来的
式子
• 关系表达式成立,其值为真,用1代表;否 则为假, 用0代表。 如 int a = 4, b = 8; 则 关系表达式 a > b 的值为0, 而 关系表达式 a < b 的值为1。
部自动追加一个字符'\0' 。 h e l l o ! \0 104 101 108 108 111 33 0
符号常量
符号常量即用一个特定的符号来代表一个常量 • 定义:#define 符号常量 常量(字符串)
例: #define R 5.179 • 符号常量须“先定义,后使用”,一般用大写字
母 例: #define PRICE 35
第三章
基本数据类型、运算符、输入输出函数
1 数据类型
为什么数据要分类
对数据进行分类,以便让计算机进行相 应的存储和处理
C语言的基本数据类型有: • char(字符型) • int (整型) • float (实型或浮点型) • double(双精度实型)
2 常量
概念:
程序运行过程中其值不能被改变的量
3.一种特殊的字符常量-转义字符(见表3-1)
一对单引号括起来,里面是反斜线开头,后跟 一个字符,如'\n'。或反斜线开头,后跟一个一到三位 八进制数,或后跟一个一到二位x开头的十六进制数。
常用转义字符
符号 \ddd \xhh
\a \t \n \r \b \' \" \\ \0
ASCII值
7 ቤተ መጻሕፍቲ ባይዱ 10 13 8 39 34 92 0
(如何按照条件写表达式)
4.1算术运算符
1. 加、减、乘、除和取余运算符:+ 、-、*、/、%
除号/
- 当两个整型数相除时,结果为整数(商的整数
部分)
- 当被除数和除数只要有一个是实型数时,结果
为实数的商。
取余号 %
只能对整型数运算。
比如取整数的个位数:53%10是3, 1253/10%10是5
x++ a+b a%b n/100%10 …
4.2 赋值运算符与赋值表达式
1. 基本赋值运算符: =
• 由“=”连接的式子称为赋值表达式。其一般形 式为:
变量=表达式
功能是:计算右边表达式的值再赋予左边的变 量。 例如:
a=3
b = i++ + --j
c=sin(x)+sin(y)
#define NUM 10 #define SUM PRICE*NUM
main ( ) { printf("total=%d\n", SUM); } 结果:total=350
3 变量
概念: 在程序运行过程中,其值能被改变的量。 对所使用的变量要“先定义、后使用”(使用标
识符进行定义),以便编译时为其分配相应的存 储单元 。 普通变量定义形式