C语言笔记一(概念)

C语言结构特点

一,概念

  • C语言标识符只能是字母、数字、下划线组成,且必须以字母或下划线作为首字母。
  • 库函数是C语言本身就存在的函数,如格式化输入函数scanf,格式化输出函数printf,还有putchar等等,这些函数不需要定义,可以直接调用
  • C语言是由函数构成的,函数是C语言的基本单位,一个C语言总是从主函数开始执行的,一个函数是由两部分组成:函数的首部和函数体。
  • C语言可以有零个或者若干个子函数。这些子函数可以是库函数也可以是自定义函数
  1. 一个C语言源程序可以由一个或多个源文件组成。
  2. 每个源文件可以由一个或多个函数组成。
  3. 源程序有且仅有一个main函数,即主函数。
  • 算法:解决问题的方法和步骤。

二、注释

  1. 单行注释 //…
  2. 多行注释 /*…*/ (/和*之间不能有空隔)

三.用当型求12345的乘积

C语言笔记一(概念)_第1张图片

四、进制

  • 十进制:由0~9的数字组成。

  • 八进制:以0开头,由0~7的数字序列构成,如0123表示八进制,换成十进制:

    1x82 +2x81 +3x80 =83

  • 十六进制:以0x或0X开头(这里0是阿拉伯数字零),可以由数字0~9和字母A ~F或a ~f构成,A ~F字母表示10 ~15。例如,0x2F表示

    2x161 +15x160 =47 即十进制的47

八进制 0123 十进制1x82 +2x81 +3x80 =83
十六进制0x2F 十进制2x161 +15x160 =47
若要在函数中输出转换进制,需要在定义时加反斜杠\ | char a=’\x41’ 这里x41是0x41即十六进制,0要去掉,此时若putchar(a) 则是输出十进制的A

五、指数

  1. 它由数字0~9、字母e或E和+、—组成,它的形式为 aEn,意为aX10n,其中a为十进制整数或小数n为十进制整数。例如 2.5e3,表示2.5 x103—3.5e—2 表示 —3.5x10—2

  2. 注意:以指数形式表示实数时,a和n不能省**,n必须为整数。如:e5、 3e2.5都是不合法的。

  3. 以十进制小数形式表示实数时,整数和小数部分可省略其中一个。如: .35、**26.**这两个都可以。

2. 在ASCLL中小写字母比大写字母多32,如a—A=32。

  1. 字符串常量是由一对双引号括起来的字符序列,字符串中可以包含任何字符、汉子等等,字符串在机内存储时,所占字节数等于字符串常量中的字符个数加1那加的1个字节便是用于存放‘\0’(空字符,ASCLL码为0),它是字符串的结束标志,例如“wei”在内存中存储形式是: wei\0,共占了四个字节。(字符串常量可以是O个或者多个)
  2. 符号常量,即放在main函数上面的常量,格式为:#define 标识符 常量
#include
#define PI 3.14 定义一个圆周率的符合常量
int main() 这个符合常量在main函数之前
**优点**如果这个常量在程序中多次出现,需要更改时,只需在符合常量这里改,一改全改,****

六、绝对值函数abs、fabs、labs

int abs(int x) 适用于整数
double fabs(double x) 适用于浮点数
long labs(long x) 适用于长整型数
     |abs(—10)等于10  |   | fabs(—5.6)等于5.6 |   | labs(—9999)等于9999 |

七、exp和pow函数

double exp (double x) 表示e为底。参数为X的指数值为ex
double pow (double x,double y) 表示返回x的次幂X^y^
exp(2.0)等于e^2^ =7.389056 pow(2.0 ,3.0 )等于2^3^ =8.0

八、使用fflush (stdin); 来清除输入缓冲区的内容。

int i;
char c; scanf (“%d”,&i);

scanf(“%c”,&c);
printf(“i=%d,c=%d”,i,c);
return o;
这个程序运行时,正常应该输入两个内容,第一个是整数,回车确认后,再输入第二个内容。然而实际是,如果我们输入100,
然后按回车键确认后,程序随机结束运行,程序默认把回车键当成了一个输入。打印出i=100,c=10。
出现c=10是因为第二个scanf是输入%c,因为ASCll码值10就是回车。为了避免这样的情况,
当有多个输入scanf时,可用fflush (stdin);来清除缓冲区的内容。

int i;
char c;
scanf (“%d”,&i);
fflush (stdin); //消除缓冲区内容
scanf(“%c”,&c);
printf(“i=%d,c=%d”,i,c);
return o;

九、字符输入函数getchar。

#include

int main()

{

char ch;
ch=getchar(); //getchar函数得到输入字符,并赋值给字符变量ch

putchar(ch); //输出字符
return 0;

}

十、算术运算符*、/、%、+、—

  • 用%求余时,两个数都必须是整型数据,如下:
8%2 表达式的值为0
5%3 表达式的值为2
5.5%3 编译错误,操作数不能为实数,必须为整型数据
—5%4 表达式的值为—1还是1,具体看编译器。有的编译器显示为1
  • 整数除:两个整数相除后的结果为商的整数部分,小数部分被舍弃,没有进行四舍五入的操作。如:1/2的值为0,而不是0.5;再比如15/4的值为3。
  • 实数除:只要相除两个数中有一个为实数,则结果是实数。如:1.0/2=0.515/4.0=3.75
  • 数据类型转换原则:低数据类型向高数据类型转换。
    C语言笔记一(概念)_第2张图片

十一、随机函数srand和rand

  1. 注意:使用随机函数时,必须在头文件中包含声明 #include

如图1: C语言笔记一(概念)_第3张图片

  • srand函数以时间作为随机数种子,每次刷新到的数都会不同,现在是2,2,10,下次刷新可能会是别的三个数。[提示:在使用srand函数时,若以时间作为随机数种子,则需要头部包含声明 #include ]
  • 如图2:
    C语言笔记一(概念)_第4张图片
  • srand函数以数字1或者其他数字作为随机数种子,每次保存刷新到的数都是一样的。

十二、类型转换

  • (double)i——————————表示将i的值转换成double型。
  • (int)(x+y)————————将x+y的值转换成int型。
  • (double)1/2————————(double)江湖整数1转成1.0(双精度),1.0/2值为0.5。
  • 整数除:若两个数都是整数,则商为整数部分,如1/2=0而不是0.5。
  • 实数除:两个数其中一个为实数,则结果为实数,如1.0/2=0.5

十三、

C语言笔记一(概念)_第5张图片
C语言笔记一(概念)_第6张图片
C语言笔记一(概念)_第7张图片
C语言笔记一(概念)_第8张图片
C语言笔记一(概念)_第9张图片

十四、 10进制转换为2进制

公式如图C语言笔记一(概念)_第10张图片

你可能感兴趣的:(C语言基础)