目录
③运行scanf()函数时,从键盘输入数据要和格式控制字符串匹配。
2)输入数据之间的分隔符应与格式控制字符串的规定匹配。例如:scanf("%d%f", &a, &x);两个输入数据之间用空格分隔,也可用回车键分隔;
表达式加上分号就是一个表达式语句;
表达式语句的一般形式为:任意表达式;
注意:分号是C语言语句的结束标志
典型的表达式语句就是赋值表达式语句,也称做赋值语句
eg:x=1; ???????????????//给x赋值为1
x-3*cos(x); ?????????????//"计算=右边的表达式,将计算结果赋给x
I++; ??????????????????//变量i的值增1
函数名(参数列表)
函数调用语句主要是完成函数特定的任务。例如:
scanf("%f",&x); ????//输入函数调用语句,输入变量x的值。
printf("%f",x); ???//输出函数调用语句,输出变量x的值。
C语言有丰富的标准函数库,可提供各类函数供用户调用,完成预先设定好的操作.
例如调用标准库函数求数学函数值:sin(x)、cos(x)、exp(x)(求ex)、fabs(x)(求x的绝对值)、log(x)等。
库函数调用的一般形式为:函数名(参数表)
使用库函数要注意以下几点:
(1)查库函数表,了解函数的功能和定义,按照函数调用。返回值类型函数名(形式参数表)
(2)必须先使用预编译命令#include<文件名.h>包含对应头文件
如:#include<math.h>才能调用标准函数库中的函数。
例:
int max(int x,int y)
{int z;
z=x>y?x:y;
return(z); ????????????????????????????????????????????
}
int main
{ int a,b,c;
a=20;b=40;
c=max(a,b);
printf(“\n%d\n”,c);
}
在主函数中,可以如使用简单变量一样使用max,类型为int型,内有值。若输入了20和40,则max中的x值为20,y值为40。返回值为40.
由一个分号表示,一般形式为: ?;
空语句在语法上是一条语句,但执行时不做任何操作。
复合语句是由花括号将多条语句组合在一起而构成的,在语法上相当于一条语句。形式如右图:
{
内部数据描述语句数据操作语句1;
数据操作语句n;
}
字符输出函数的功能:向标准输出设备(一般为显示器)输出一个字符,并返回输出字符的ASCII码值
字符输出函数的一般调用形式为
putchar(字符表达式):
函数的参数可以是字符常量、字符型变量、整型变量、整型常量或它们组成的表达式。即将一个整型数作为ASCII编码,输出相应的字符
例如:
putchar(97);
执行上面的语句,将输出字符a,97是字符a的ASCII编码值
字符输入函数调用的一般形式为
字符变量=getchar();
函数功能是:从输入设备(一般为键盘)上输入一个字符,函数的返回值是该字符的ASCII码值
#include <stdio.h>
int main( )
{
char ch;
ch=getchar();/从键盘输入字符,该字符的ASCI码值赋给(ch);
putchar(ch);//输出ch对应的字符
}
注意:
(1)执行getchar()输入字符时,键入字符后需要敲回车键,回车后,程序才会响应输入,继续执行后续语句。
(2)getchar()函数也将回车键作为一个回车符读入。因此,在用getchar()函数连续输入两个字符时要注意回车符
3)键盘缓存的垃圾键也会被getchar()函数读入,所以,之前执行过输入函数的情况下,加getchar()函数不一定能使屏幕暂停。可以换成system(“pause”);
printf("格式控制字符串”,输出项列表):
功能:按指定格式向显示器输出数据
返值:正常,返回输出字节数;出错,返回-1
例如:
int i = 97;
printf ("i=%d, %c\n",i,i );
输出结果为:i=97,a
格式控制字符串由3部分组成:普通字符、转义字符、输出项格式说明。
格式说明的形式为:%[flags][width][.prec][hl[type]
(1)“[]”表示该项为可选项
(2)flags为可选择的标志字符(+,-)
(3)width为可选择的宽度指示符(正整数(4)[.prec]为可选的精度指示符(正整数)(5)[h川]为可选的输出长度修饰符
(6)type为可选的格式字符
④printf格式字符输出格式
(1)%d
printf("%d", 100);输出结果为:100
printf("%5d",100);输出结果为: 100
(2)%о
int n = -1;
printf("%o",n);
输出结果为:177777
(3)%x
int n = -1;
printf(“%x",n);
printf("%X",n);
输出结果为:ffffFFFF
(4)%u
int n=-1
printf("%d,%u",n,n);
输出结果为:-1.65535
注意:当格式字符和输出项类型不一致时,强行按照格式字符输出,不进行类型转换!!!
scanf("格式控制字符串",地址列表)
按指定格式从键盘读入数据,并写入地址列表。
格式控制由格式控制字符串(格式字符、普通字符和转义字符)实现
格式字符串形式为:%[*][width][h|l]type
例如,前面使用过的格式输入语句:
scanf("%c",&ch);
这里,"%c"是格式控制字符串,控制输入一个字符。&是取地址运算符,&ch表示取变量ch的地址
格式输入函数将键盘输入的数据流按格式转换成数据时,需要知道转换成什么数据,转换几个数据。
例如:"%d"表示读一个整型数据: ???"%c"表示读一个字符数据
"%f"表示读一个实型数据; ??"%s"表示读一个字符串;
"%d%d"表示读两个整型数据,空格分隔;
"%d%f"表示读一个整型数据和一个实型数据,空格分隔
地址列表各地址间以逗号间隔。地址的类型、个数和顺序必须和格式控制字符串的参数一致。例如:
int a,b
float x;
scanf("%d%d%f",&a,&b,&x);
a、b是整型变量,x是浮点类型。所以下列scanf函数的调用是错误的:
scanf("%d%f",&a,&b);//b是整型变量,与%f不匹配。
scanf("%d%f",&x,&b);//地址列表的顺序与输入格式控制不一致。
scanf("%d%f", &b);//1 个数不一致。
scanf("%d%f", b);//b不是地址,表示的是变量b的值
scanf函数会按照格式字符从键盘获取数据后强行写入内存,不进行任何转换!!!
scanf("%d%f",&a,&x);输入:100 3.1。
scanf("%d,%f",&a, &x);
两个输入数据之间必须用逗号分隔不能用空格分隔
????顺序结构程序是组成程序的语句序列,描述的是顺序执行的流程,即是按照语句的书写顺序,从上到下进行的处理流程
例1?根据圆的半径,计算并输出圆的周长和面积
分析:
(1)定义实型变量r、l、s用于存放半径、周长、面积;
(2)调用输入函数,输入r:
(3)分别利用周长公式和面积公式求出l、s;
(4)调用输出函数输出1、s。
#include <stdio.h>
int main()
{float r,l, s;
scanf(“%f”, &r);
l=2*3.14159*r;
s=3.14159 *r*r;
printf(“\n l=%8.4f”,l);
printf(“'\n s=%8.4f”,s);
}
例2输入任意3个整数,求它们的平均值,保留两位小数。
分析:
(1)定义变量
(2)输入3个整数存入变量num1、num2、num3(2)求3个整数的平均值,赋给变量average;
(3)输出average
int main()
{int num1,num2,num3;
float average;
printf("Please?input three numbers: ");
scanf"%d,%d,%d",&numl,&num2,&num3);
average=(numl+num2+num3)/3.0;
printf("average=%7.2fn",average);
}