C语言概述
一、C语句
1. 一个C程序可以有若干个源程序文件组成
2. 一个源文件可以有若干个函数和预处理命令以及全局变量声明部分组成
3. 一个函数有函数首部和函数体组成
4. 函数体由数据声明和执行语句组成
5. C语句分为:控制语句、函数调用语句、表达式语句、空语句、复合语句
二、控制语句:完成一定的控制功能
1.if()~else 条件语句
2.for()~循环语句
3.while()~循环语句
4.do~while();循环语句
5.continue 继续语句
6.break 间断语句
7.switch() 开关语句
8.goto 转向语句
9.return 返回语句
三、数据输入输出
C语言本身不提供输入输出语句,输入输出操作是由C函数库中的函数来实现
如:
字符输入函数:getchar 字符输出函数:putchar
格式输入函数:scanf 格式输出函数:printf
字符串输入函数:gets 字符串输出函数:puts
四、字符数据输入输出
(1)字符输出函数
一般形式:putchar(c)
c为字符型变量或整型变量
函数作用:向终端输出一个字符
例:
#include<stdio.h>
int main(){
printf("%3s,%7.2s,%.4s,%-5.3s\n","china","china","china","china");
return 0;
}
运行结果:
china, ch,chin,chi
(2)字符输入函数
一般形式:getchar()
函数作用:从终端(或系统隐含指定的输入设备)输入一个字符
函数值:从输入设备得到的字符
例:
#include<stdio.h>
int main(){
char c1,c2;
c1=getchar();
printf("%c,%d\n",c1,c1);
c2=c1+32;//大写转小写
printf("%c,%d\n",c2,c2);
return 0;
}
运行结果:
A
A,65
a,97
(3)格式输出函数
一般格式:printf(格式控制,输出表列)
函数作用:向终端(或系统隐含指定的输入设备)输出若干个任意类型的数据
格式控制:
- %d:以带符号的十进制形式输出整型
- %md:m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出
- %ld:输出长整型数据
- %o:以八进制无符号形式输出整数
- %x:以十六进制无符号形式输出整数
- %u:以无符号十进制形式输出整数
- %c:以字符形式输出,只输出一个字符
- %s:输出字符串
- %ms:输出的字符串占m列,若串长大于m,则全部输出,若串长小于m,则左补空格
- %-ms:若串长小于m,字符串向左靠,右补空格
- %m.ns:输出占m列,只取字符串中左端n个字符,输出在m列的右侧,左补空格
- %-m.ns:n个字符输出在m列的左侧,右补空格,若n>m,m自动取n值
- %f:以小数形式输出单,双精度数,隐含输出六位小数,单精度实数有效位数一般为7位
- %m.nf:指定输出的数据占m列,其中有n位小数,如果数值长度小于m,则左端补空格
- %e:以指数形式输出实数
- %g:选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
一个整数,只要它的值在0~255范围内,可以用%c使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;一个字符数据也可以用整数形式输出
例1:
#include<stdio.h>
#include<math.h>
int 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=%5.2f,b=%5.2f,c=%5.2f,s=%5.2f,area=%5.2f\n",a,b,c,s,area);
return 0;
}
结果:
3,4,6
a= 3.00,b= 4.00,c= 6.00,s= 6.50,area= 5.33
例2:
#include<stdio.h>
#include<math.h>
int main(){
float a,b,c,disc,x1,x2,p,q;
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;
x2=p-q;
printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);
return 0;
}
运行结果:
1,2,-3
x1= 1.00
x2=-3.00
(4)格式输入函数
一般格式:scanf(格式控制,地址表列)
函数作用:按照变量在内存的地址将变量值存进去