目录
学习目标:
例如:
- 一周掌握 C 入门知识
学习内容:
1.输入输出
1.1 按字符输入输出
1.1.1 putchar()
功能:向终端输出一个字符
头文件:#include
函数的原型:int putchar(int c);
参数:要输出的字符
返回值:字符的ASCII码值
例如:
1.1.2 getchar()
功能:在终端获取一个字符
头文件:#include
函数的原型:int getchar(void);
返回值:终端输入的字符的ASCII码值
例如:
1.2 按格式输入输出
1.2.1 printf()
头文件:#include
原型:int printf(const char *format, ...(arg));
功能:按照格式向终端输出指定内容 ----格式化输出
format:要输出的内容
格式字符:
%d 有符号的十进制整数
%u 无符号的十进制整数
%o 无符号八进制数
%x 无符号十六进制数
%c 字符
%s 字符串
%f 浮点型数据
%e 指数形式
%% 输出%本身
附加格式说明符(是在%和指定字符中间添加的)
# 输出八进制和十六进制时输出前导符
1.2.2 scanf()
头文件:#include
函数原型:int scanf(const char *format, ...);
功能:按照格式从终端读取指定内容
参数:
format:指定读取内容的格式
格式字符:%d, %c, %s, %f
返回值:读取到的字节数(注意:第一个字符输入格式错误,直接返回0)
2. 垃圾字符回收
2.1 通过空格回收
2.2 %*c *抑制符 (了解)
例如:
2.3 getchar
例如:
3. 分支语句
3.1 if
3.1.1格式
1.简化格式
2.阶梯格式
3.嵌套格式
注意:
1. if后边可以没有else, else前边必须有if
2. 分支语句代码块只有一句时,可以省略{ }
例如:
3.2 switch
格式
例如:
- case后边的常量值是整型或字符型,不能是浮点型或字符串
- case分支遇到break结束; 后边可以没有break,会从符合条件的分支开始一直运行到整个switch语句执行完才结束
课堂练习:
1. 终端输入一个年份,判断平年或闰年:
2. 终端输入大写,输出小写
终端输入小写,输出大写
输入其他,打印"error"
3.
100-90: A
89-80: B
79-70: C
<70: 补考
课外作业:
- 终端输入一个日期,判断是这一年的第几天
提示:scanf("%d-%d-%d",&y,&m,&d);
解析:
- #include <stdio.h>
- int main(int argc, const char *argv[])
- {
- int year=0,month=0,day=0,days=0;
- scanf("%d-%d-%d",&year,&month,&day);
- int leap=0;
- if(((year % 4 ==0) && (year % 100 !=0)) || (year % 400 ==0))
- {
- leap=1;
- }
- switch (month)
- {
- case 1:days=0;break;
- case 2:days=31;break;
- case 3:days=59;break;
- case 4:days=90;break;
- case 5:days=120;break;
- case 6:days=151;break;
- case 7:days=181;break;
- case 8:days=212;break;
- case 9:days=243;break;
- case 10:days=273;break;
- case 11:days=304;break;
- case 12:days=334;break;
- }
- days+=day;
- if(leap==1 && month >2)
- {
- days++;
- }
- printf("%d年%d月%d日是%d年的第%d天",year,month,day,year,days);
- }