C程序大致分为3种基本结构:
顺序结构、分支结构、循环结构
由这3种结构可以组成各式各样的复杂程序。
01--C语句
C语句分为以下几类:
①表达式语句 ②函数调用语句 ③控制语句 ④复合语句 ⑤空语句
1.表达式语句: 由表达式+分号组成
表达式;
例:
a=b+c; i++; b=0;
2.函数调用语句:由函数名、实际参数+分号组成
函数名(实际参数表);
例:
printf("C言C语”);
3.控制语句:用于控制程序的流程
C有9种控制语句:
条件判断:if、switch
循环执行:do while、while、for
转向:break、goto、continue、return
4.复合语句:多个语句用{}组成的语句
例:
{
a=b+c;
i++;
printf("%d%d",a,i);
}
5.空语句:只有分号
空语句是什么也不执行的语句,空语句可用来作空循环体
02--赋值语句
一般形式为: 变量=表达式;
变量=(变量=表达式); 成立
例: x=y=z=1;
即为 z=1; y=z; x=y;
如果连续赋值,和事先定义好再连续赋值是不一样的
红框部分定义正确
红框部分定义错误
03--数据输入输出的概念
在C语言中,所有数据的输入 输出都是由库函数完成的,因此都是函数语句。
在使用库函数时,要用预编译命令 #include将有关头文件包含到源文件中
标准输入输出库函数时要用到“stdio.h"文件
即
#include<stdio.h> 或 #include"stdio.h"
stdio是 standard Input&Output 的缩写
04--字符数据的输入与输出
1. putchar函数
功能:在显示器上输出单个字符
一般形式:putchar(字符变量)
例:
putchar('A'); /*输出字符A*/
putchar('\n'); /*换行*/
2.getchar函数
功能:从键盘输入一个字符
一般形式:getchar();
通常把输入字符赋予一个字符变量,构成赋值语句。
char c; c=getchar();
需要注意的是:
getchar函数只能接受单个字符的输入,当有多个字符输入时,只接受第一个字符
使用本函数必须包含头文件"stdio.h"
上述例子中最后2行可用如下形式替代: putchar(getchar()); printf("%c",getchar());
3.printf函数
格式输出函数
功能:按用户指定的格式,把数据显示在屏幕上
一般形式:printf("格式控制字符串",输出列表)
格式字符串是以%开头的字符串,在%号后面跟有各种格式字符,用来说明输出数据的类型、形式、长度、小数位数等。
如:
%d 表示按十进制整型输出
%ld 表示按十进制长整型输出
%c 表示按字符型输出等
字符串的一般形式为:
[标志][输出最小宽度][.精度][长度]类型
1)类型
表示输出数据的类型
d 十进制
o 八进制
x,X 十六进制
u 十进制无符号
f 小数形式输出单、双精度实数
e,E 指数形式输出单、双精度实数
g,G 以%f或%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
2)标志
标志字符为 - + # 空格4种
- 左对齐,右边填空格
+ 输出符号(正号或负号)
3)输出最小宽度:用十进制整数来表示输出的最小位数。若实际位数多于定义的宽度,则按实际位数输出,若少于则补空格
4)精度:后跟十进制整数,如果输出的为数字,则表示小数位数,输出的为字符,则表示字符的个数,若实际位数大于所定义的精度数,则截去超出的部分。
5)长度:有h,l两种,h表示短整型输出,l表示长整型输出。
4.scanf函数
功能:格式输入函数,按用户指定的格式从键盘中把数据输入到指定的变量中
一般形式:scanf("格式控制字符串",地址列表);
地址运算符: &
&x,&y 分别表示变量x,y的地址
变量的地址是由C编译系统分配的,我们不必关心具体地址是多少
格式字符串一般形式:
%[*][输入数据宽度][长度]类型
1)类型:表示输入数据的类型
d 十进制整数
o 八进制整数
x 十六进制整数
u 无符号十进制整数
f或e 实型数(小数或指数形式)
c 单个字符
s 字符串
2)* 表示该输入项,读入后不赋予相应变量,跳过该输入值
如 scanf("%d %*d %d",&x,&y);
输入为1 2 3时,1赋值给x,2被跳过,3赋值给y
3)宽度:用十进制整数指定输入的宽度
如
scanf("%5d",&x);
输入123456789 只把12345赋予x,多的被截去
scanf("%4d%4d",&x,&y);
输入123456789 1234赋予x ,5678赋予y
4)长度:有h,l两种,h表示短整型输出,l表示长整型输出。
在输入字符数据时,如果格式控制串中无非格式字符,则认为所有输入的字符均为有效字符
如果格式控制串中有非格式字符则输入时也需要有该非格式字符
错误
正确