目录
输入和输出
类型
输入:格式输入函数:scanf
字符输入函数:getchar
字符串输入函数:gets
输出: 格式输出函数:printf
字符输出函数:putchar
字符串输出函数:puts
格式声明:一般形式%格式字符
基本格式字符
d格式字符(%d):以带符号的十进制形式输出(入)整数
eg:输出时%5d表示输出数据占5列,输出时候右对齐
c格式符(%c):以字符形式输出(入),只输出(入)一个字符
s格式符(%s):输出(入)字符串
f格式符(%f):以小数形式输出(入)单、双精度数
- 实数中整数部分完全输出,下属部分输出6位;
- 输出时可指定数据宽度和小数位数用%m.nf
e格式符(%e):以指数形式输出(入)实数
- 用e时指数以“e”表示(如1.2e+02),
- 用E时指数以“E”表示(如1.2E+02),
u格式符(%u):以无符号的十进制形式输出(入)整数
附加的格式说明字符
输出
l(小写字母):长整型整数,可加在格式符d,o,x,u前面
m(正整数):数据最小宽度
n(正整数):对实数,表示输出n位小数;对字符串,表示截取的字符个数;
-:输出的数字或字符在域内向左对齐;
输入
l(小写字母):输入长整型数据(可用%ld,%lu,%lo,%lx)以及double型数据(用%lf或%le);
h:输入短整型数据(可用%hd,%hx,%hx);
域宽(正整数):指定输入数据所占的宽度
(列数);
*:本输入项在读入后不赋给相应的变量。
printf输出语句
终端输出若干个任意类型的数据
printf(格式控制,输出列表)
(1)“格式控制” 是用双引号括起来的字符串,称为格式控制字符串,简称格式字符串。包括:
格式声明:由“%”和格式字符组成
普通字符:即需要在输出是原样输出的字符
(2)输出表列是程序需要输出的一些数据,可以是常量、变量、表达式。
scanf输入句
按照制定的格式规范输入数据
scanf(格式控制,地址列表)
(1)地址列表是由若干个地址组成的列表,可以是变量的地址,或字符串的首地址。
(2)格式控制的两边必须用引号
(3)scanf函数没有计算功能
- 输入多个整型数据或实形数据时,可用空格、回车或制表符做间隔
- 输入多个字符型数据时,数据间不可使用分隔符
- 若指定了输入数据的宽度,则系统自动按其截取所需数据
- %后面加*表示跳过相应的数据接收
#include<stdio.h>
main()
{int a,b;
printf("input two numbers:");
scanf("%d%d",&a,&b);
printf("a=%d,b=%d",a,b);
}
putch
putchar(ch)用于将一个字符输出到显示器上显示
一般调用格式:putchar(ch);
头文件#include“stdio.h”
#include<stdio.h>
void main()
{ char a,b,c;
a='B';b='O' ;c='Y';
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
}
字符输入函数getchar()
从键盘输入一个字符,应用时必须用另一个变量名接收读入的字符
一般调用格式:ch=getchar()
#include<stdio.h>
int main()
{
char c;
printf("Enter a char:\n");
c=getchar();
putchar(c);
putchar('\n');
}
条件分支
关系表达式
定义:用关系运算符将两个表达式连接起来的式子
关系表达式的值是一个逻辑值,即“真”或“假”。
优先级:算术运算符>关系运算符>赋值运算符
逻辑表达式
定义:用逻辑运算符将关系表达式或逻辑量连接起来的式子
逻辑表达式的值是一个逻辑值,即“真”或“假”。
在对逻辑表达式的求解中,并不是所有的逻辑运算符都被执行。
if语句的三种形式
-if语句 单分支结构
语法格式:
if(表达式)
{
语句块
}
如果表达式的值为真,则执行语句块。
在程序设计中处理选择问题的关键在于进行条件判断,即如果满足某种条件,就进行相应的处理
#include<stdio.h>
int main()
{
int a;
scanf("%d,&a");
if(a>0)
{
printf("%d是正数.\n",a);
}
}
-if...else语句 双分支结构
语法格式:
if(表达式)
{
语句块1
}
else
{
语句块2
}
#include<stdio.h>
int main()
{
int x=0;
int y=0;
if(y!=0)
{
float result=x/y;
printf("两个数的商:%.2f\n",result);
}
else
{
printf("除数为零!\n");
}
}
-if...else if...else语句 多分支结构
用于对多个条件进行判断,从而进行多种不同的处理
语法格式:
if(表达式1){语句块1}
else if(表达式2){语句块2}
else if(表达式3){语句块3}
......
else if(表达式n){语句块n}
else {语句块m}
#include<stdio.h>
int main()
{
char c;
printf("Input a character:");
scanf("%c",&c) ;
if(c>='a'&&c<='z'||c>='A'&& c<='Z')
printf("It is an English character.\n");
else if(c>='0'&&c<='9')
printf("It is adigit character.\n");
else
printf("It is other chatacter.\n");
return 0;
}
if语句的嵌套
临近原则:else和if成对出现,并且总是与最近的未配对的if配对
switch语句
一般形式:
switch(表达式)
{
case 常量表达式1:语句块1;break;
case 常量表达式2:语句块2;break;
......
case 常量表达式n:语句块n;break;
default:语句块n+1
}
注:
- 表达式的值为整数、字符、枚举类型。
- 常量表达式的值必须互不相同,否则会出现分支矛盾的现象。
- case后面的常量表达式只起标号作用,不起条件判断作用,即“只是开始执行出的入口标号”。一般情况下需用break语句跳出switch语句。
- 语句块可以是一条语句,或复合语句,可以不用花括号{}。
- 各个case和default出现的先后次序,不影响执行结果,习惯的上将default子句放在switch的末尾。
- 多个case标号可共用一组执行语句。
switch(表达式)
{
case 常量表达式1:
case 常量表达式2:
case 常量表达式3:语句块1;break;
case 常量表达式4:语句块2;break;
......