1、输入、输出
2、控制语句
1、输入输出
函数:有独立功能的模块
标准输入、输出函数:scanf、printf(对变量类型没有限制)
字符的输入输出:getchar()、putchar()
输入:从键盘将数据拷贝到内存中
输出:从内存将数据拷贝到显示屏上
1.1 输出
int printf("格式控制串",输出表);
格式控制串:原样输出的内容(省略)+格式化符
输出表:要输出的对象
整型:
%d:十进制
%o:八进制
%x、%X:十六进制
#:自动在八进制或者十六进制前面加前缀
%u:无符号整型数
%hd:short类型
%ld:long类型
%lld:long long类型
字符:
%c:字符型
浮点型:
%f:float
%lf:double
%e:指数
%g:选择指数和小数中较短的一个
.n:保留n位小数
m:指定我们输出的域宽,默认是右对齐,m的值大于数据的实际长度时,左边补空格,如果m小于数据的实际长度,原样输出
1.2 输入
总结:
(1)scanf格式控制串语句中,不要添加修饰语,如果要加,原样输入
(2)如果输入"%d%d"时,要给多个变量赋值,在输入的时候以空格、回车、Tab键作为一个变量的输
入结束,最后一个变量输入结束必须以回车作为结束符
解决办法:
1、在%c和%c之间添加空格或者逗号(输入原样输入)
2、加%*c, *代表的是抑制符
1.3 字符的输入输出
1.3.1 输入
int getchar(void);
返回值:从键盘得到的字符的ASCII码值
char a;
a = getchar();
1.3.1 输出
int putchar(int c);
参数:要输出的ASCII码值
案例
1、若有以下定义语句:int u=010,v=0x10,w=10; printf(“%d,%d,%d\n”,u,v,w); 则输出结果是____8 16 10______。
3、下面程序的输出是___11 013 0xC______。
main()
{
int k=11;
printf(“k=%d,k=%o,k=%x\n”,k,k,k);}
4、若有以下定义语句:
int a=5;
printf(“%d\n”,a++);
则输出结果是_____5_______。
5、设x为int型变量,执行以下语句,
x=10; x+=x-=x-x;
x的值为______20____。
6、若定义x和y为double型变量,则表达式x=1, y=x+3/2的值是_2.0000_。
7、若t为double型变量,表达式t=1, t+5, t++的值是___1.00 ______。
2、控制语句
c语言三大结构(顺序结构、选择结构、循环结构)
2.1 顺序结构
语句按照一定的先后顺序去执行
2.2 选择结构
2.2.1 单分支选择语句
if(表达式)//当表达式的值为真时,执行if中的语句
{
语句;
}
//注意:如果不写大括号默认只执行一条语句
2.2.2 双分支选择语句
if(表达式)
{
语句1;
}
else
{
语句2;
}
//当表达式的值为真时,执行语句1,否则执行语句2
案例
输入一个年份,判断是平年还是闰年
2.2.3 多分支if语句
if(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
...............
else if(表达式n)
{
语句n;
}
else
{
语句n+1;
}
//从上至下依次判断表达式的值,如果表达式的值为真,执行相对应的语句,跳出整个if语句
案例
输入一个分数,判断等级
60以下:D
60~70:B
70~80:C
80以上:S
2.2.4 switch语句
switch(表达式)
{
case 标号1:
语句1;
case 标号2:
语句2;
.......
case 标号n:
语句n;
default:
语句n+1;
}
//(1).表达式不能为float型
//(2).标号必须为常量
//(3).表达式=标号时,执行冒号后的语句,a、直到switch,case语句结束为止,b、或者碰到break语句结束
int a = 5;
switch(a)
{
case 2: printf(“2\n”);
default: printf(“不存在该选项\n”);
case 4:
case 1: printf(“1\n”);
case 3: printf(“3\n”);break;
case 0: printf(“0\n”);
}
作业
1、整理笔记
2、输入年份,月份,输出该年的该月有多少天
3、输入年月日,输出这一天是这一年的第多少天
4、预习循环结构