C语句的分类
1. 表达式语句
- 一般形式:
表达式;
- 例如:
c = a + b;
a++;
2. 函数调用语句
- 一般形式:
函数名(实际参数表);
- 例如:
printf("Hello Word!");
3. 复合语句
- 形式:把多个语句用{}括起来组成一个语句。
- 例如:
{ c = a + b; printf("Hello Word!"); }
4. 控制语句
- 条件判断语句:if else、 switch
- 循环执行语句:do while 、 while 、 for
- 转向语句:break 、 goto 、 continue 、return
5. 空语句
- 只有分号“ ; ”组成的语句,什么也不执行,在程序中可以做空循环体。
赋值语句
- 一般形式:
变量 = 表达式
- 例如:
int a; a = 1;
1.在变量说明中给变量赋初值和赋值语句的区别:
#include <stdio.h>
void main(){
// 变量赋初值
int a=1, b=1, c=1;
// 但是不能写成
// int a=b=c=1;
}
等价于 ↓↓
#include <stdio.h>
void main(){
int a, b, c;
// 赋初语句
a=1,b=1, c=1;
// 赋值语句可以嵌套,所以可以写成
a=b=c=1;
}
2.赋值表达式与赋值语句的区别:
- 赋值表达式后加一个分号 “ ; ” 就是赋值语句。
- 赋值表达式可以包括在其他表达式之中;但是赋值语句不能。
- 例如:
if(x=y)>0) z = x;
这是正确的,if(x=y;)>0) z = x;
这是错误的。
数据的输入输出
- C语言本身不提供输入输出语句。
- 输入和输出操作是由C标准函数库的函数来实现的。
- 例如:
printf();
scanf();
getchar();
putchar();
字符数据的输入输出
getchar函数(字符输入函数)
- 一般形式:
getchar()
- 从键盘上输入一个字符,当输入多个字符只取第一个字符
- 一般形式:
putchar函数(字符输出函数)
- 一般形式:
putchar(字符变量)
- 在终端上输出一个字符
- 一般形式:
例子
从键盘输入ABC三个字符,然后把它们输出到屏幕。
#include <stdio.h>
void main() {
char x, y, z;
x = getchar();
y = getchar();
z = getchar();
putchar(x);
putchar(y);
putchar(z);
putchar('\n');
// 方法二
// putchar(getchar());
// putchar(getchar());
// putchar(getchar());
}
格式输出
- printf函数
按照指定格式输出,向终端输出若干个任意类型的数据。
- 一般格式:
printf(格式控制, 输出列表)
- 例如:
printf("%d , %f",a,b)
- 一般格式:
1.格式控制:用引号括起来的字符事,它包括两种信息:
- 格式说明,由“%”和格式字符组成,如%d,%f
- 普通字符,即需要原样输出的字符。一般都县说明性文字或逗号、空格等。
2.输出列表:需要输出的一些数据,可以是变量,也可以是表达式
- 例如:
printf("a=%d, f=%f, %d",a,f,a+b)
格式字符
整数输出格式:d格式符:输出十进制整数。
格式符 | 说明 |
---|---|
\%d | 输出整型数据,以十进制带符号形式输出整数,按整型数据的实际长度输出。 |
\%md | m为指定的输出字段的宽度。如果数据位数小于m,在数据左端补空格,大于m,按实际位数输出。 |
\%ld | 输出长整型数据。long 是 int 得修饰,只是比 int 多了四个字节的存储空间。 |
\%u | 输出无符号类型数据。以十进制无符号形式输出整数。 |
\%o | 输出八进制的数据。以8进制无符号形式输出整数(不输出前导符0)。 |
\%x | 输出十六进制的数据。以16进制无符号形式输出整数(不输前导符0x)。 |
例子
#include <stdio.h>
void main() {
int a, b;
long c;
a = 123;
b = 123456;
c = 123456789;
printf("a=%d, b= %d\n" ,a, b);
printf("a=%4d, b=%4d\n", a, b);
printf("c=%ld\n", c);
printf("c=%10ld\n", c);
}
字符输出格式:
格式符 | 说明 |
---|---|
\%c | 输出char型数据,输出一个字符。 |
\%s | 输出字符串型数据,输出一个字符串,按字符串的实际长度输出。 |
\%ms | m为指定的输出字段的宽度。如果数据位数小于m,在数据左端补空格,大于m,按实际长度输出。 |
\%-ms | 与\%ms类似,如果数据位数小于m,在数据右端补空格。 |
\%m.ns | 输出占m列,只取字符串左端n个字符,输出在右侧,左端补空格。 |
\%-m.ns | 输出在左侧,右端补空格,如果n>m,则m自动取n的值,输出n个字符。 |
例子
#include <stdio.h>
void main(){
printf("%3s,%-8s,%s\n","ABCDEFG", "ABCDEFG", "ABCDEFG");
printf("%7.3s,%-5.3s,%.4s\n","ABCDEFG", "ABCDEFG", "ABCDEFG");
}
实数输出格式
格式符 | 说明 |
---|---|
\%f | 输出float/double型数据 系统自动指定宽度,整数部分全部输出,小数部分输出6位。 |
\%m.nf | 输出占m列,n为小数位。输出在右端,左端补空格。 |
\%-m.nf | 输出在左侧,右端补空格,如果m小于(整数位+n)则正常输出小数部分n位。 |
例子
#include <stdio.h>
void main(){
float x;
x = 123.456;
printf("%f,%10f,%10.2f,%-10.2f,%.2f。\n",x,x,x,x,x);
}
指数输出格式
格式符 | 说明 |
---|---|
\%e | 以指数形式输出实数,系统自动指定宽度。共13位,小数位6位,指数5位。 |
\%m.ne | 输出占m列,n为小数位,输出在右侧左补空格。 |
\%-m.ne | 输出在左侧,右端补空格,如果m小于(整数位+n)则正常输出小数部分n位。 |
\%me | 没有指定小数位,则小数位6位。 |
例子
#include <stdio.h>
void main(){
float x;
x = 123.456;
printf("%e,%10e,%10.2e,%-10.2e,%.2e。\n",x,x,x,x,x);
}
补充
g格式符:用来输出实数,输出格式为f格式或e格格式(使用较少)。
- 系统根据数据占宽度m大小,自动选择占宽度较小的某种格式输出,g格式符不输出小数点后无意义的零。
例子
#include <stdio.h>
void main() {
float x;
x = 123.456;
printf("%f,%g\n",x, x);
}
评论