内容较长,仔细回顾~~~
一、学习内容?
浮点型和字符型:
1.变量分类
2.舍入误差
3.常量的类型
4.字符型数据&转义字符的使用
5.字符变量
6.大小写字母的转换
7.算术运算符和算术表达式
8.强制类型转换运算符
9.自增自减运算符及附录
二、实例讲解笔记--
1. 代码在下面~~
字符数据存储
ASCII编码
'\n' //一个字符 转义字符
'\n' //换行
\n
"n"
练习1:
printf("D:\\abc\\");
练习2:
printf("abc\tij#k\n");
abc ij#k
练习3:
printf("ab*c\t*de\rf\tg\n");
ab*c *de
f g
fb*c gde
字符常量的形式:
'a'
'\141'
'\x61'
97
0141
0x61
------------------
总结:
1.常量 形式
'a'
'\141'
'\x61'
97
0141
0x61
2.变量
char
unsigned char
signed char
3.要点
字符数据存储
ASCII表
转义字符
4.考点
'abcd' //多个字符
数字字符 与 数值之间 转换
字符大小写转换
-------------------------------
运算符 表达式
算术运算
+
-
*
/
% 取余
++
--
运算符
表达式 由运算符 和 运算数 构成字符序列
1+2 //所有的表达式都是有结果的(值)
//表达式一定是由数据类型的
1+(2*3)
1+(2*3)
隐式类型转换
double <---- float
int <----char/short
规则:
从右向左:
必转
从下到上:
低精度类型 与 高精度类型混合运算
此时 低精度 往 高精度转
-10
1|000 0000 0000 0000 0000 0000 0000 1010
1|111 1111 1111 1111 1111 1111 1111 0101
1111 1111 1111 1111 1111 1111 1111 0110
f f f f f f f 6
输入输出
输入
参考点:
计算机
[内存]
输出
#include <stdio.h>
stdio
std -->标准
io --- input & output
putchar getchar // 单个字符的输入输出
printf scanf //格式化的输入输出
gets /puts //字符串的输入和输出
函数的学习:
功能:
参数:
返回值:
int getchar(void); //字符的输入
参数:无
返回值:
eg:
getchar();
int putchar(int c);//字符的输出
参数:
c -->int 是 getchar的返回值
返回值:
返回的是 ,输出的字符的ascii值
练习:
从键盘输入 hello
将hello转换为大写
输出
思路:
s1.输入数据
int c1,c2,c3,c4,c5
s2.转换
c1 = c1 - 32;
....
s3.输出
putchar(c1);
printf /scanf
printf(); //格式化输出函数
格式:
printf("格式控制字符串",输出参数列表);
printf("a= %d\n",a);
格式控制字符串:
普通字符: //原样输出
控制字符:
占位符: %d %o %x //最终是要替换成实际的数值的
控制字符:
整型数:
%d
%o
%x
%u
浮点型:
%f
%e
%g
字符型:
%c
%s --- 字符串
其它控制字符: //附加字符
m.n
m --表示 输出的宽度
指定宽度 ,
输出时,当实际数据,小于宽度时,
输出格式 默认右对齐
前面 加 - 左对齐
%-10d
其余位置 默认填充空格
可以自己指定填充0
%010d
l %ld long 数据
%lld
%lu
%llu
n --表示 输出的精度 //浮点数 字符串
%% 两个百分号 对应输出 一个 %
scanf(); //格式化的输入函数
格式:
scanf("格式控制字符串",地址列表);
格式控制字符串:
普通字符:
原样输入
控制字符
占位符:
整型数:
%d
%o
%x
%u
浮点型:
%f --- 对于float 类型 %f double 类型 %lf
%e
%g
字符型:
%c --- 匹配字符
%s --- 字符串
地址列表:
&a
eg:
int a;
scanf("%d",&a);
空白符:
分隔符
Tab
回车
空格
scanf() 工作原理
键盘 --->|输入缓冲区| ---FIFO (队列) (first in first out )
| abcde |
a b c d e
%c%c%c%c%c\n
空白符 --- 匹配任意空白符,直到遇到非空白符结束
注意:
1.%c -- 可以匹配空白符
2.scanf不要输入 \n
3.scanf匹配结束的条件
a.空白符
b.超出指定宽度
c.遇到了非法输入
%d --- 0~9
【回顾】
1.第三章结束
++ //1.左值
-- //2.const int value; ---> //只读变量
//3.++ -- 本质
//4.i+++++i (贪心原则) (i++)++ +i
//5.printf("%d,%d",i,++i); //不要对同一个变量 同时++
赋值运算
//1. =
//2. 连续赋值 a=b=c=4;
//3. 混合类型赋值
int = double //精度丢失
整型 与 整型
short = int //长 给 短 --- 高位截断
int = short //有符号短 给 长 -->符号位扩展
//无符号短 给 长 -->高位补零
作业:代码在下面
1.从终端输入两个两位数, //scanf
第一个数的个位作为新数的千位,
第一个数的十位作为新数的个位,
第二个数的个位作为新数的百位,
第二个数的十位作为新数的十位,
打印该数
12
34
2431
思路:
s1.定义两个int变量num1,num2
s2.输入值 -scanf
s3.处理数据
ge = num1%10 ;
shi = num1/10;
bai = num2%10;
qian = num2/10;
newNum = qian*1000 + bai*100 + shi*10 +ge;
s4. 输出
printf();
2.编写程序从终端输入数据给到变量,
并打印变量的值
a = 3 b = 5 x = 8.5
y = 71.82 c1= 'A' c2 = 'a'
scanf("%d%d%f%f%c%c",&a,&b,&x,&y,&c1,&c2);
printf("a = %d b = %d x = %f y = %f c1 = \'%c\' c2 = \'%c\'\n",a,b,x,y,c1,c2);
[ a] //FIFO
%d%d %f %f %c %c
3 5 8.5 71.82 空格 A
%*c 表示跳过一个匹配数据
fflush(); //
gets //放到字符数组
puts
-----------------------------
总结一下:
1.getchar
putchar
2.
scanf
printf
3.缓冲区 //FIFO
while(getchar()!= '\n') ;
代码如下(示例):
2.试卷分配问题
代码如下(示例):
总结
如各个小标题所示 做完课后习题中的疑难杂症后继续上传~