语句
C语言程序的执行语句可分为以下5类:
表达式语句:由表达式加上;组成;
函数调用语句:函数名(实际参数);
控制语句:分为三类,
条件判断语句:if、switch
循环执行语句:do while、while、for
转向语句:break、goto、continue、return
复合语句:把多个语句用{ }括起来组成的一个整体语句;
空语句:只有;组成的语句,什么也不执行,在程序中可用来做空循环体、条件分支空语句等。
数据输入与输出
.1字符数据的输入与输出
putchar函数:字符输出函数,在显示器上输出单个字符,形式为
putchar( );
getchar函数:从键盘上输入一个字符,只能接受单个字符,输入数字也按字符处理,一般形式为
getchar( );
通常把输入的字符赋予一个字符变量,构成赋值语句,如:c=getchar( );
puts()输出函数:只能输出字符串,并且输出结束后会自动换行;
gets()输入函数:从键盘上读取一个字符串直到回车结束;
.2格式数据的输入与输出
printf格式输出函数:
一般形式为
printf("格式控制字符串",输出表列);
格式控制字符串可由格式字符串(以%开头)和非格式字符串组成。
格式控制符 | 说明 |
---|---|
%c | 输出一个单一的字符,char类型 |
%hd、%d、%ld | 以十进制、有符号的形式输出 short、int、long 类型的整数 |
%hu、%u、%lu | 以十进制、无符号的形式输出 short、int、long 类型的整数 |
%ho、%o、%lo | 以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 |
%#ho、%#o、%#lo | 以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数 |
%hx、%x、%lx %hX、%X、%lX | 以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。 |
%#hx、%#x、%#lx %#hX、%#X、%#lX | 以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。 |
%f、%lf | 以十进制的形式输出 float、double 类型的小数 |
%e、%le %E、%lE | 以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。 |
%g、%lg %G、%lG | 以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。 |
%s | 输出一个字符串 |
例如:int a=10;
printf("%d\n" a); (同时输出多个时用逗号隔开)
注:一般输出小数仅展示后6位(printf("%.3f\n" a) ) 仅要小数点后三位
scanf格式输入函数:
一般形式为
scanf("格式控制字符串",地址表列;
if语句
引:做判断
例子,计算时间差:
#include <stdio.h>
int main()
{
int hour1,minute1;
int hour2,minute2;
scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour2,&minute2);
int t1=hour1*60+minute1;
int t2=hour2*60+minute2;
int t=t2-t1;
printf("时间差是%d小时%d分。",t/60,t%60);
return 0;
}
这个程序就是用到了if来做一个简单的判断
基本形式:
if(表达式) 语句;
语义:若表达式值为真,则执行后面的语句,反之不执行。
举例,求两个数最大值:
include <stdio.h>
int main(void)
{
int a,b,max;
printf("input two numbers:");
scanf("%d %d",&a,&b);
max=a;//假设a为最大
if(max<b)
{
max=b;//用max与b作比较
printf("max=%d\n",max);//输出最大值
}
return 0;
}
运行结果:
第二种形式if-else
if(表达式)
{语句1;}
else
{语句2;}
语义:如果条件成立,则执行if{ }里的语句,若不成立则执行else{ }里的语句;
另:{ }里只有一个语句时,{ }可以省掉。
举一个找零的例子:
#include <stdio.h>
int main()
{ //初始化
int price=0;
int bill=0;
//读入金额和票面
printf("请输入金额:");
scanf("%d",&price);
printf("请输入票面:");
scanf("%d",&bill);
//计算找零
if(bill>=price)
printf("应该找您:%d\n",bill-price);
else
printf("你的钱不够\n");
return 0;
}
求最大值:
#include<stdio.h>
int main()
{
int a,b,max;
printf("input two numbers");
scanf_s("%d %d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
return 0;
}
结果:
第三种形式if-else-if
当有多个分支选择时,可采用if-else-if语句
举例,比较两个数的大小
int main()
{
int a,b;
printf("输入数字A,B:");
scanf_s("%d%d",&a,&b);
if(a==b)
{
printf("A=B\n");
}
else if(a>b)
{
printf("A>B\n");
}
else
{
printf("A<B\n");
}
return 0;
}
嵌套的if语句
嵌套的判断:当if的条件满足或者不满足的时候要执行的语句也可以是一条if或if-else语句,这就是嵌套的语句。
else的匹配:总是要和最近的那个if匹配