一个函数包含声明部分和执行部分。C程序可以由多个源程序文件组成,一个C语句经过编译后产生若干条机器指令。具体的C程序结构如下图所示。
C语句分为以下5类。
(1)控制语句。C语言只有9种控制语句。
(2)函数调用语句。有由一个函数调用加一个分号构成。例如:
printf("This is a C statement.");
其中的printf(“This is a C statement.”)是一个函数调用,加一个分号成为一个语句。
(3)表达式语句。由一个表达式加上一个分号组成,最典型的就是赋值表达式构成赋值语句,a=3是一个赋值语句,a=3;是赋值语句。函数调用语句也属于表达式语句。
(4)空语句。此语句只有一个分号,可以作为流程的转向点,或循环语句的循环体。即:
;
(5)复合语句。用{}将一些语句和声明括起来成为复合语句(又称语句块)。如:
float pi = 3.14159, r=2.5, area;//定义变量
area =pi * r * r;
printf("area = %f",area);
可以在符合语句中包含声明部分,可以放在复合语句中任何地方,但习惯放于语句块开头。
C语言中最常用的语句是赋值语句和输入输出语句。最基本的是赋值语句。
编写程序:
#include
#include
int main()
{
double a,b,c,s,area;
int d, e, f;
d = e = f =1;//no int a=b=c=3;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
area= sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%lf\tb=%lf\tc=%lf\n",a,b,c);
printf("area=%lf\n",area);
printf("d=%d\te=%d\tf=%d\n",d,e,f);
return 0;
}
其中有些要点需要注意:
(1)赋值运算符 = 。
(2)复合的赋值运算符 。+=、-=、*=、/=、%=。简化程序同时提高编译效率。
(3)赋值表达式。变量 赋值运算符 表达式,左侧变量必须是一个可修改的左值(left valua)。左值都可以作为右值。
(4)赋值过程中的类型转换。
#include
#include
int main()
{
double a,b,c,p,q,x1,x2;
printf("please input a b c\n");
scanf("%lf %lf %lf",&a,&b,&c);
if((b*b-4*a*c)>=0)
{
;
}
else
{
printf("please input a b c again\n");
scanf("%lf %lf %lf",&a,&b,&c);
}
p=-b/(2*a);q=(sqrt(b*b-4*(a*c)))/(2*a);
x1=p+q;x2=p-q;
printf("x1=%7.2lf\nx2=%7.2lf\n",x1,x2);
return 0;
}
(1)所谓输出输出是以计算机主机为主体而言的。输出设备数据称为输出,输入设备数据称为输入。
(2)C语言本身不提供输入输出设备,输入输出操作是由C标准函数库中的函数实现的。
(3)要在程序文件的开头用于处理指令#include把有关头文件放在本程序中。如:
#include //标准方法,搜索C编译系统的子目录。系统提供的头文件。
#include"stdio.h"//先寻找当前目录,若找不到再按标准方法查找。自己编写的文件。
printf(格式控制,输出表列)
格式控制包括格式声明%、普通字符;输出表列可以是常量变量表达式。
【例3.7】float型数据的有效位数
编写代码:
#include
int main()
{
float b;double a;long long c=-1;
//a=10000/3;
a=10000.0/3;
b=10000.0/3;//整型与整型运算得到整型,故必须其中一个使用浮点数进行转换。
//printf("%f\n",a);
printf("%9.8f\n",b);//float有效位数,6位。
printf("%21.15f\n",a);
printf("%-25.15f,%25.15f\n",a,a);
printf("%-13.2E\n",123.456);
printf("%12x%%",c);
return 0;
}
scanf(格式控制,地址表列)
地址表列是若干个地址组成的表列,应为变量地址(&)而非变量名。
#include
int main()
{
char a,b,c;
a='B';
b='O';
c='Y';
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
putchar(127);
putchar('\101');
putchar('\'');
putchar('\015');
return 0;
}
#include
int main()
{
/* char a,b,c;
a=getchar();
b=getchar();
c=getchar();
putchar(a);
//putchar(b);
putchar(c);
//putchar('\n');
putchar(getchar());
putchar(getchar());
putchar(getchar());
putchar(getchar());
putchar('\n'); */
printf("%c",getchar());
return 0;
}
#include
int main()
{
char a,b;
a=getchar();
b=a+32;
putchar(b);
putchar('\n');
return 0;
}