C语言概述
C程序的结构
C语句分类
表达式语句
函数调用语句
控制语句
if语句、switch语句、do while语句、while语句、for语句、break语句、goto语句、continue语句、return语句 复合语句
空语句
while(getchar()!='\n'){;}
输入输出
在C语言中的实现
在C语言中,所有的输入/输出都是由库函数完成,都是函数语句 在使用C语言库函数时,需要使用预编译命令#include <头文件>
或#include "头文件"
,将有关"头文件"包括到源文件中
stdio即standard input & output 使用printf和scanf函数时,可以不加"stdio.h"
字符数据的输入输出
putchar函数,需包含"stdio.h" getchar函数,需包含"stdio.h"
getchar函数只能接收单个字符,输入数字也按字符处理,输入多余一个字符时,只接收第一个字符
格式输入输出
一般形式
printf("格式控制字符串",输出表列)
"%d"
按十进制整型输出,"%ld"
按十进制长整型输出,"%c"
按字符型输出
格式字符串
[标志][输出最小宽度][.精度][长度]类型
类型:类型字符用以表示输出数据的类型
d
:输出十进制带符号整数(输出正数不带符号)u
:输出十进制无符号整数0
:输出八进制无符号整数(不输出前缀)x、X
:输出十六进制无符号整数(不输出前缀)f
:输出小数形式单、双精度实数e、E
:输出指数形式单、双精度实数g、G
:以%f或%e中较短的输出宽度输出单、双精度实数c
:输出单个字符s
:输出字符串 标志
-
:结果左对齐,右边填空格+
:输出符号(正号或负号)空格
:输出值为正时冠以空格,为负时冠以负号对c,s,d,u类无影响 对o、x类,在输出时加前缀 对e,g,f类,当结果有小数时才给出小数点 输出最小宽度:用十进制整数来表示输出的最少位数 精度:以"."开头,后接十进制整数
输出数字,则表示小数的位数 输出字符,则表示输出字符的个数 若实际位数大于精度,则截去多余部分 长度
顺序结构
# include <stdio.h>
int main ( ) {
int a = 0 ;
int b = 0 ;
a = 5 ;
b = 4 ;
{
int a = 6 ;
printf ( "%d\n" , a) ;
a++ ;
printf ( "%d\n" , a) ;
++ b;
}
printf ( "%d\n" , a) ;
printf ( "%d\n" , b) ;
return 0 ;
}
选择结构
条件语句
if语句
if ( a== 0 ) {
b-- ;
a++ ;
}
if…else语句
if ( a== 0 ) {
b-- ;
a++ ;
}
else {
b++ ;
a= 0 ;
}
if…else if语句
if(条件表达式1) 语句1;else if(条件表达式2) 语句2;...;else 语句n
if ( a== 0 ) {
b-- ;
a++ ;
}
else if ( a== 1 ) {
b++ ;
a++ ;
}
else if ( a== 2 ) {
b+= 2 ;
a++ ;
}
else {
b-- ;
a= 0 ;
}
if语句嵌套
if(条件表达式) if语句;
if(条件表达式) if语句1;else if语句2;
if ( a== 0 ) {
if ( b== 0 ) {
a++ ;
b++ ;
}
b++ ;
}
if ( a== 0 ) {
if ( b== 0 ) {
a++ ;
b++ ;
}
else if ( b> 1 ) {
a++ ;
b-- ;
}
}
switch语句
若case后无break语句,则会继续执行随后的所有case语句 switch后括号中表达式可以是整型、字符型、枚举型 case后各常量表达式值不能相同
switch ( 表达式) {
case 常量表达式1 :语句1 ( 集合) ;
case 常量表达式2 :语句2 ( 集合) ;
. . .
case 常量表达式n:语句n ( 集合) ;break ;
default :语句n+ 1 ;
}
switch ( x) {
case 0 : a++ ; break ;
case 1 : b++ ; break ;
case 2 : a-- ; break ;
case 3 : b-- ; break ;
default : break ;
}
条件运算符和条件运算表达式
表达式1?表达式2:表达式3
表达式1值为真,以表达式2值作为条件表达式的值,否则以表达式3值作为条件表达式的值
a== 0 ? b= 1 : b= 2 ;
if ( a== 0 )
b= 1 ;
else
b= 2 ;
循环结构
三种循环语句
while语句
while ( ~ scanf ( "%d" , & a) )
while ( scanf ( "%d" , & a) != EOF )
do…while语句
for语句
for(表达式1;表达式2;表达式3){循环体语句;}
for语句三个表达式不是必须的 可在循环体中执行break,continue,goto语句 表达式2为空,即死循环
中断语句
break语句
continue语句
只用于结束本次循环,即直接去执行表达式3,进行下一次循环
goto语句(了解)