C语言(三)——输入输出语句与控制语句

1.输入输出语句

1.1 格式输出

int printf(const char *format, ...);
格式控制串 输出表
格式控制串:
%[修饰符]格式符 控制输出的格式
普通字符: 原样的输出
格式符:
%d ---> 十进制整数
%o ---> 八进制
%x ---> 十六进制
%u ---> 无符号的十进制
%c ---> 单个字符
%s ---> 字符串
%f ---> 浮点数
%e ---> 指数
%g ---> %f 和 %e 较短的一种
%% --->输出%自己
修饰符:
m:输出的域宽,数据长度 < m ,左边补空格,否则实际输出;
.n:
实数: 小数点的位数
字符串:实际输出的位数
-: 左对齐
+:在指定有符号前面显示正号
l:
ld \ lu \ lx \ lo 精度为long
lf \ le \ lg 精度为double

1.2 格式输入

int scanf(const char *format, ...);
功能:从终端读取
参数: 格式控制串 和地址表
返回值:成功返回输入的个数;
在输入字符的时候会产生垃圾字符;

处理垃圾字符:

① 加空格
eg:
scanf("%c %c", &ch1, &ch2);
scanf("%c ", &ch1);
scanf("%c", %ch2);
②抑制符
eg:
scanf("%c%*c", &ch1);
scanf("%c", %ch2);
输入: A B --》正常得到结果;
③ getchar()
scanf("%c", &ch1);
getchar(); //将一个空格或者回车获取掉
scanf("%c", %ch2);

1.3字符的输入

函数原型:
    int getchar(void);
	功能:从终端读取一个字符;
    返回值:返回读取到的字符
    

1.4字符的输出

函数原型:
   int putchr(int c)
功能:将一个字符输入到终端;
参数:要输出的字符串;
返回值:返回要输出的字符串

1.5字符串的输入

函数原型:char * gets(char *s);
功能:gets()用来从标准设备读入字符并存到参数s所指的内存空间, 直到出现换行字符或读到文件尾为止, 最后加上NULL作为字符串结束。
    
参数:s为一个指针,指向一个空间的首地址
返回值: gets()若成功则返回s指针, 返回NULL则表示有错误发生。
    
由于gets()无法知道字符串s的大小, 必须遇到换行字符或文件尾才会结束输入, 因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。

1.6 字符串输出

函数原型:
    int puts(const char *c);
功能:
    将 C指向的字符串输出
返回值:
    puts自带换行功能
    
换行:
    puts("");
	printf("\n");
	putchar('\n');

1.7 字符串的输出

函数原型:
int puts(const char *s);
功能:
将s指向的字符串输出到终端
返回值:输出的字符个数
puts自带换行功能;
换行:
printf("\n");
putchar('\n');
puts("");
puts("hello")
char buf[32] = "hello";
puts(buf);

2. 控制语句

三种结构:
三种结构:
顺序结构、选择结构、循环结构

2.1 选择结构

2.1.1 if

if(表达式)
{
    语句块;
}
// 表达式成立就执行语句块,否则不执行语句块

2.1.2 if-else

if(表达式)
{
    语句块1}
else
{
    语句块2}
// 如果表达式成立,执行语句块1,否则执行表达式2。

else总是与最近的if相结合。

2.1.3 if-else if……else阶梯结构

if(表达式1)
{
    语句块1//表达式1成立则执行语句块1
}
else if (表达式2)
{
    语句块2//表达式1不成立,表达式2成立则执行语句块2
}
else if(表达式3)
{
    语句块3// 表达式1、2不成立。表达式3成立则执行语句块3
}
else
{
    语句块4//表达式1、2、3都不成立,则执行语句块4
}

2.1.4 嵌套结构

 if(表达式1)
 {
     if(表达式2)
         ……
     {
         
     }
     else
     {
         语句块2// 表达式1成立,表达式2不成立;
     }
 }
else
{
    语句块1//表达式1不成立
}

2.2 goto跳转

eg:
	flag:
		语句块:
			……
			goto flag;

2.3 while

while(表达式)
{
循环体;
}
表达式成立,执行循环体

2.4 do while

do
{
循环体
}
while(表达式);
先执行循环体,再进行表达式的判断。循环体至少执行一次。

2.5 for

for( 表达式1;表达式2 ;表达式3 ;)
{
循环体
}
for循环顺序:
	执行表达式1;
	判断表达式2;
	若表达式2成立,执行循环体
	执行表达式3;
	判断表达式2,成立执行循环体,不成立则退出循环
	for循环中的表达式可以省略,但“;”不能省略,如果表达式2省略,相当于死循环

2.6 辅助控制语句

break:跳出当前循环(用在Switch中跳出switch)
continue:结束本次循环继续下一次循环
return:结束程序
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值