1.main()函数
main()
函数是一种特殊的函数,被称为“主函数”,任何一个程序都必须有且只有一个main()函数。main()
函数的最后一句为return 0;
,指结束main()
函数函数,并向系统返回一个整数0。按照惯例,如果main()
函数返回 0,说明程序运行正常,返回其他数字则表示不同的异常情况。2.常量,变量和数据类型
类型名 变量名;
int celsius,fahr;
基本数据类型:
其值不可以再分解为其它类型。
构造数据类型:
构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。一个构造类型的值可以分解成若干个“成员”或“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。在C语言中,构造类型有以下几种:数组类型、结构体类型、共用体(联合)类型。
指针类型:
指针的值用来表示某个变量在内存储器中的地址。虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量。
空类型:
调用函数值时,有一类函数调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。其类型说明符为void。
#define 标识符 常量符号常量
#define
为宏定义命令的专用定义符。习惯上把符号常量名用大写字母表示。整数与浮点类型
sizeof()
函数来查看一个数据类型所占用的字节数。输出为整数。char型
字符常量是由一对单撇号括起来的单个字符。
字符串常量是一对双撇号括起来的字符序列。
C语言以字符‘\0’(ASCII码为0,空操作字符,不引起任何控制动作,不显示)作为字符串结束标志。
如果有一个串常量”CHINA”,实际上在内存中是:
其占内存单元是6个字符,最后一个字符为’\0’。但在输出时不输出’\0’。
当运行printf("How do you do.”);
,其从第一个字符开始逐个输出字符,直到遇到最后的’\0’停止输出。
注:在写字符串时不必加’\0’。’\0’是系统自动加上的。
在C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。
3.算数运算和赋值运算
赋值运算
C 语言提供了 11 个赋值运算符,均为二元运算符。即:
- 基本赋值运算符:=。
- 复合赋值运算符:+=(加赋值)、-=(减赋值)、*=(乘赋值)、/=(除赋值)、%=(求余赋值)、 <<=(左移赋值)、>>=(右移赋值)、&=(按位与赋值)、|=(按位或赋值)、*A=(按位异或赋值)。
赋值运算中的自动类型转换(隐式转换)
-
实型>>整型,舍去小数。
-
整型>>实型,增加小数部分(小数部分的值为0)。
-
字符型>>整型,将字符的ASCII码值放到整型量的低八位中,高八位为0。
-
整型>>字符型,只把低八位赋予字符。
算术运算
-
一元运算符:+(正号)、-(负号)、++(增1)、–(减1)
-
二元运算符:+(求和)、-(求差)、*(求积)、/(求商)、%(求余)
-
符号+(取正,可写可不写),-(取负)
自增量运算符:++(增1)、–(减1)
-
当一个变量多次出现在某表达式中时
-
多参函数调用时,如果一个变量出现在多个实参中时,不要对该变量使用增 1 或减 1 运算符
左值(lvalue)和右值(rvalue)
相除运算符 /
取余运算符%
4.C语言格式输出
函数printf()
其中格式控制字符串用于指定输出格式,用%来代表各种数据。
格式控制字符串
%[标志][输出最小宽度][.精度][长度]类型
([]中的项为可选项)1) 类型
格式字符
|
意义
|
---|---|
d
|
以十进制形式输出带符号整数(正数不输出符号)
|
o
|
以八进制形式输出无符号整数(不输出前缀0)
|
x,X
|
以十六进制形式输出无符号整数(不输出前缀Ox)
|
u
|
以十进制形式输出无符号整数
|
f
|
以小数形式输出单、双精度实数
|
e,E
|
以指数形式输出单、双精度实数
|
g,G
|
自动识别以较短宽度输出单、双精度
|
c
|
输出单个字符
|
s
|
输出字符串
|
2) 标志
标志 |
意义
|
---|---|
–
|
结果左对齐,右边填空格
|
+
|
输出符号(正号或负号)
|
空格
|
输出值为正时冠以空格,为负时冠以负号
|
#
|
对c、s、d、u类无影响; 对o类,在输出时加前缀o; 对x类,在输出时加前缀0x; 对e、g、f 类当结果有小数时才给出小数点。
|
3) 输出最小宽度
4) 精度
5) 长度
6)综合汇总表
%c 输出一个单一的字符 %hd、%d、%ld 以十进制、有符号的形式输出 short、int、long 类型的整数 %hu、%u、%lu 以十进制、无符号的形式输出 short、int、long 类型的整数 %ho、%o、%lo 以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 %#ho、%#o、%#lo 以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数 %hx、%x、%lx %hX、%X、%lX 以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。 %#hx、%#x、%#lx %#hX、%#X、%#lX 以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。 %f、%lf 以十进制的形式输出 float、double 类型的小数 %e、%le %E、%lE 以指数的形式输出 float、double 类型的小数。如果 e 小写,那么输出结果中的 e 也小写;如果 E 大写,那么输出结果中的 E 也大写。 %g、%lg %G、%lG 以十进制和指数中较短的形式输出 float、double 类型的小数,并且小数部分的最后不会添加多余的 0。如果 g 小写,那么当以指数形式输出时 e 也小写;如果 G 大写,那么当以指数形式输出时 E 也大写。 %s 输出一个字符串
puts()函数和putchar()函数
puts()函数
putchar()函数
5.关系运算符
关系运算符
|
含 义
|
数学中的表示
|
---|---|---|
<
|
小于
|
<
|
<=
|
小于或等于
|
≤
|
>
|
大于
|
>
|
>=
|
大于或等于
|
≥
|
==
|
等于
|
=
|
!=
|
不等于
|
≠
|
6.C语言格式输入
函数scanf()
变量的地址和变量值的关系
a=123
),a为变量名,123是变量的值,&a是变量a的地址。格式字符串
1) 类型
格式
|
字符意义
|
---|---|
d
|
输入十进制整数
|
o
|
输入八进制整数
|
x
|
输入十六进制整数
|
u
|
输入无符号十进制整数
|
f或e
|
输入实型数(用小数形式或指数形式)
|
c
|
输入单个字符
|
s
|
输入字符串
|
2) “*”符
3) 宽度
4) 长度
7.getchar()函数与gets()函数
int n=getchar();
# include <stdio.h> int main(void) { char str[20] = "\0"; //字符数组初始化\0 printf("请输入字符串:"); gets(str); printf("%s\n", str); return 0; }
8.常用数学函数<math.h>库
三角函数
double sin (double x);
x的正弦值
double cos (double x);
x的余弦值
double tan (double x); x的正切值
反三角函数
double asin (double x);
结果介于[-PI/2, PI/2],x值域为[-1,1]
double acos (double x);
结果介于[0, PI],x值域为[-1,1]
double atan (double x);
反正切(主值), 结果介于[-PI/2, PI/2]
double atan2 (double y, double x);
反正切(整圆值), 结果介于[-PI, PI]
双曲三角函数
double sinh (double x);
x的双曲正弦值
double cosh (double x);
x的双曲余弦值
double tanh (double x);
x的双曲正切值
指数与对数
double exp (double x);
幂函数e^x
double pow (double x, double y);
x^y,如果x=0且y<=0,或者x<0且y不是整型数,将产生定义域错误
double sqrt (double x);
x的平方根,其中x>=0
double log (double x);
以e为底的对数,自然对数,x>0
double log10 (double x);
以10为底的对数,x>0
取整
double ceil (double x);
取上整
double floor (double x);
取下整
绝对值
double fabs (double x);
x的绝对值
标准化浮点数
double frexp (double x, int *exp);
标准化浮点数, x = f * 2^exp, 已知x求f, exp ( x介于[0.5, 1] )并返回f值
double ldexp (double x, int exp);
与frexp相反, 已知x, exp求x*2^exp
取整与取余
double modf (double x, double *ip);
将参数的整数部分通过指针回传, 返回小数部分,整数部分保存在*ip中
double fmod (double x, double y);
返回两参数相除x/y的余数,符号与x相同。如果y为0,则结果与具体的额实现有关