今天是学习嵌入式相关内容的第四天,以下是今日所学内容
上一节课,常用输入输出函数的剩余内容如下
1.printf:
1.打印非输出控制符:
printf("Hello World!");
2.打印单个输出控制符:
printf("Num = %d\n", Num);
3.打印多个输出控制符
printf("Num2 = %d, Num1 = %d\n", Num2, Num1);
4.printf格式化打印
%nd n:域宽,数据不足域宽,高位用空格补齐
%0nd 0:数据不足域宽,高位用0补齐
%-nd -:左对齐
%.mf m:保留小数点后m位有效数字
如果 - 和 0 都存在,两者冲突,左对齐,右边不用补 0
练习:
设a,b为int型变量,x,y为float型变量,c1,c2为char型变量,
且设a = 5, b = 10, x = 3.5, y = 10.8, c1 = ’A’, c2 = ’B’。
为了得到以下的输出格式和结果,请写出对应的printf语句。
(1)a = 5, b = 10, x + y = 14.3
(2)x - y = -7.3, a - b = -5
(3)c1 = ’A’ or 65(ASCII) c2 = ’B’ or 66(ASCII)
2.scanf
注意:
1.scanf如果输入数据与想要接收的数据不匹配,从不匹配的位置开始不再向后读取
2.scanf除了%s形式外,都需要加 &
3.scanf除了%c形式外,均无法接收' '和'\n'字符
4.scanf中_%c可以接收非' '和'\n'字符 ( _ 表示空格)
5.scanf中严禁\n
1.接收非输入控制符
scanf("m");
2.接收输入控制符
%d 按照有符号十进制接收数据
%c 按照字符接收数据
_%c 接收一个' '和'\n'的字符
%f 按照float接收数据
%lf 按照double接收数据
%s 按照字符串接收数据
3.接收多个输入控制符:
scanf("%d %f", &Num2, &f);
练习:
从终端接收两个数,打印出这两个数四则运算的结果
3.puts
功能:在终端打印一行字符串
注意:
1.puts会在字符串末尾多打印一个\n字符
以下的32是定义的数组空间的大小
4.gets
功能:从终端接收一行字符串
gets(str);
注意:
1.gets会去掉从终端接收的\n字符
2.gets可以接收带' '的字符串,scanf无法接收带' '的字符串
接下来是流程控制部分
1.顺序结构
从main函数开始执行,执行到main结束
2.分支结构
1. if
简单分支:
if (逻辑表达式)
{
语句块1;
}
else
{
语句块2;
}
注意:
1.if后面必须加判断条件 else不能加判断条件
2.if可以脱离else单独使用,但是else不能脱离if单独使用
3.if和else不加括号,默认控制一句代码,为了保证程序不出错,一句代码也要加括号
2.逻辑表达式:
1.关系运算符
> ,< ,>= ,<= , == , !=
成立则为真值,否则为假值
2.逻辑运算符:
&& 逻辑与 || 逻辑或 ! 逻辑非
要注意运算过程存在截断特性
3. switch
3.循环结构
作业:
1.从终端接收三角形三边的长,计算三角形的周长和面积
海伦公式
sqrt函数
#include
gcc filename.c -lm
2.从终端输入一个数,利用if判断,打印出该为为奇数还是偶数
3. 从终端输入一个年份,打印出该年是闰年还是平年?
普通闰年: 4的倍数却不是100的倍数
世纪闰年: 400的倍数
2.
3.