UID: 20230124080245
tags:
source:
cssclass:
created: “2023-01-24 08:02”
updated: “2023-01-24 09:33”
三种基本结构
- 顺序结构
- 分支结构
- 循环结构
C语句可分为以下五类
- 表达式语句
如:x=y+z;
赋值语句 - 函数调用语句
由函数名、实际参数加上分号“:”组成。
其一般形式为:函数名(实际参数表):
执行函数语句就是调用函数体并把实际参数赋予函数定义中形式参数,然后执行被调函数体中的语句,求取函数值
printf("C program");
调用库函数,输出字符串
头文件 <stdio.h> - 控制语句
控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。C语言有九种控制语句。可分为以下三类- 条件判断语句:if语句,swithch语句
- 循环执行语句:do while语句、while语句、for语句
- 转向语句:break语句、goto语句、continue语句、return语句
- 复合语句
- 把多个语句用括号{}括起来组成的一个语句称复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。
{
x=y+z;
a=b+c;
printf("%d%d", x, a);
}
//是一条复合语句
- 复合语句内的各条语句都必须以分号";”结尾,在括号外不能家分号
- 空语句
- 只有分号组成的语句成为空语句。空语句是什么也不执行的语句。在程序中空语句可用来做空循环体。
while(getchar() ! = '\n')
{
;
}
- 本语句的功能是,只要从键盘输入的字符不是回车则重新输入。
- 这里的循环体为空语句。
赋值语句
1. 由于在赋值符“=”右边的表达式也可以是一个赋值表达式存在下述形式 `变量=(变量=表达式)`
![image.png|200](https://s1.vika.cn/space/2023/01/30/4cc9453278474088b4825a7dd93b957f)
2. 注意在变量说明中的变量赋初值和赋值语句的区别
3. 在变量说明中,不允许连续多个变量赋初值
4. 注意赋值表达式和赋值语句的区别![image.png|200](https://s1.vika.cn/space/2023/01/30/bbf27efa691542509afde0e55ecb46c1)
数据输入输出的概念及在C语言中的实现
- 所谓输入输出是以计算机为主体而言的
- 本章介绍的是向标准输出设备显示器输出数据的语句
- 在C语言中,所有的数据输入输出都是由库函数完成的因此都是函数语句
- 在使用C语言库函数时,要用预编译命令# include,将有关“头文件”(函数定义)包括源文件中
- 系统中寻址: # include <stdio.h>
- 自己定义的: # include “stdio.h”
- 考虑到printf和scanf函数使用频繁,系统允许在使用这两个函数时可不加
字符数据的输入输出
purchar 函数(字符输出函数)
- putchar函数是字符输出函数,其功能是在显示器上输出单个函数。
putchar(字符变量)
例如:![image.png](https://s1.vika.cn/space/2023/01/30/0985fa361437448b858054594dcd3aa3)
- 对控制字符则执行控制功能,不再屏幕上显示
#include<stdio.h>
void main()
{
char a='B',b='o',c='k';
putchar(a);putchar(b);putchar(b);putchar('\t');putcahr('c');
}
```
## getchar函数(键盘输入函数)
- getchar函数的功能是从键盘上输入一个字符`getchar();`
- ![image.png](https://s1.vika.cn/space/2023/01/30/1f6e7a973a4549ad98715e10be4b3190)
```c
#include<stdio.h>
void main()
{
char c;
printf("input a character\n");
c = getchar();
putchar(c);
}
格式输入与输出
printf函数(格式输出函数)
- printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。
- 使用printf函数时还要注意一个问题,那就是输出表列中的求职顺序。不同的编译系统不一定相同,可以从左到右,也可以从右到左。Turbo C是按从右到左进行的
void main()
{
int a=8;
printf("%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++)
\\ 8 7 8 8 -8
}
void main()
{
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
}
- 这两个程序的区别是用一个printf语句和多个printf语句输出。但从结果可以看出是不同的
-
printf函数调用的一般形式
- printf函数是一个标准库函数,它的函数原型在头文件
-
-
scanf函数(格式输入函数)
&a,&b
变量a和变量b的地址- 在赋值表达式中给变量赋值,如:a=567 则a为变量名,567为变量的值,
&a
是变量a的地址
void main()
{
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
格式字符串
- 格式字符串的一般形式为:%[*][输入数据宽度][长度]类型
- 其中方括号[]的向为任选项。各项意义如下
- 类型:表示输入数据的类型,其格式符和意义如下表所示
- “ * ”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值
- 宽度:用十进制整数指定输入的宽度(即字符数)。
- 长度:长度格式符为l和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf).h表示输入短整型数据
使用scanf函数必须注意以下几点
- scanf函数中没有精度控制
- scanf中要求与给出变量地址
- 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔
- 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符
- 空格也是特殊字符(char)
- 如果格式字符串中有非格式字符则输入时也要输入该非格式字符。
scanf("%d,%d,%d",&a,&b,&c);输入应为:a=5.b=6,c=7
- 如输入的数据与输出的类型不一致时,虽然编译能通过,但结果将不正确
//输入三个小写字母,输出其ASCII码和对应的大写字母
void main()
{
char a,b,c;
printf("input character a,b,c\n");
scanf("%c%c%c",&a,&b,&c);
printf("%d,%d,%d\n%c,%c,%c\n",a,b,c,a-32,b-32,c-32);
}
//输出各种数据类型的字节长度
void main()
{
int a;
long b;
float f;
double d;
char c;
printf("\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%\n",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));
}
顺序结构程序设计举例
- 输入三角形的三边长,求三角形面积。已知三角形的三边长a,b,c,则该三角形的面积公式为: a r e a = s ( s − a ) ( s − b ) ( s − c ) area= \sqrt{s(s-a)(s-b)(s-c)} area=s(s−a)(s−b)(s−c)
- 其中s=(a+b+c)/2
#include <math.h>
void main()
{
float a,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);
printf("area=%7.2f\n",area);
}
#inlude <stdio.h>
void main
{
double a,b,c,disc,x1,x2,p,q;
scanf
}