一、逗号运算符
逗号运算符将两个表达式连接起来,例如3+5,6+4
这种称为逗号表达式,他的求解过程是先求表达式1,再求表达式2,整个逗号表达式得值是表达式2的值。此外,逗号运算符是所有运算符里级别最低的,因此下面两个表达式的作用是不同的。
1.x=(a=3,3*6) 2.x=a=3,3*6
第一个是赋值表达式,将一个逗号表达式的值赋予x,x=18;第二个是一个赋值表达式,一个逗号表达式,x=3,逗号表达式的值是18。
二、顺序程序设计
2.1C语言概述
和其他高级语言一样,C语言的语句用来向计算机系统发出操作指令。一个语句经编译后产生若干条机械指令。一个实际的程序应当包含若干语句。一个函数包含声明部分和执行部分,执行部分是由语句组成的。C程序结构可以用图 4-1表示。即一个C程序可以由若干个源程序文件组成,一个源文件可以由若干个函数和预处理命今以及全局变量声明部分组成,一个函数由数据声明部分和执行语句组成。
程序应该包括数据描述(由声明部分来实现)和数据操作(由语句来实现)。数据描述包括定义数据结构和在需要时对数据赋予初值。数据操作的任务是对已提供的数据进行加工。
c语言分为以下5类:
1.控制语句
用于完成一定的控制功能,c语言中共有九种语句,他们分别是:
if ……else,for(),while(),do……while(),continue,break,switch,goto,return.
2.函数调用语句
由一个函数调用加一个分号构成,例如:
printf("CHINA");
3.表达式语句
由一个表达式加一个分号构成,最典型的是,由赋值表达式构成的一个赋值语句,例如:
a = 3 是一个赋值表达式,而a = 3; 是一个赋值语句,表达式加分号就是赋值语句,分号是必不可少的。
4.空语句
;
上述语句是一个空语句,即仅有一个分号,他什么也不做有时用来做流程的转向点,也可用来做循环语句的循环体。
5.复合语句
可以用{}把一些语句括起来成为复合语句,例如:
{
z = x + y;
printf("%f",t);
}
最后一句的分号不能不写。
2.2 字符数据的输入输出
2.2.1 putchar 函数
putchar函数(字符输出函数)的作用是向终端输出且只能输出一个字符,一般形式为putchar(),括号内里可以填整型数字,输出结果为ASCII码表对应的数,也可以直接填char型,此时会产生符号位扩展,ASCII码表中最大值为127,二进制为0111 1111,经过符号位扩展,高字节补0。
2.2.2 getchar 函数
getchar函数的作用是从终端输入一个字符,getchar函数没有参数,一般形式为getchar(void),函数的值就是从输入设备得到的字符。
使用getchar函数时,cpu会建立缓冲区,缓冲区的主要作用是用来调节高速设备与低速设备。代码中有几个getchar函数就会从缓冲区取几个数,否则会等待。
2.3 格式化的输入与输出
2.3.1 printf 函数
printf函数的作用是向终端输出若干个任意类型的数据(putchar只能输出字符,而且只能是一个字符,而printf可以输出多个字符,且为任意类型)。printf的一般格式为printf(格式控制,输出表列)。
格式可以分为两种,第一种就是普通字符,即需原样输出的字符,用""括起来,可以是文字,逗号,下划线等;第二种是格式说明,通常以百分号%开始,他的作用是将输出的数据转换为指定的格式输出,可以与普通字符一起使用,以下是一些常见的格式:
%o:无符号,八进制;
%u:无符号,十进制;
%x:无符号,十六进制(x分大小写,对应输出字母的大小写);
%d:与%i,用法相同,有符号,十进制;
%5d:输出宽度为5,空位补空格,若%05d,表示输出宽度为5,空位补0,若%-5abc,则输出5 abc(中间五个空格),不允许输出%-05abc;
%e:double型数据,会以科学计数法的形式输出(e区分大小写,对应输出字母的大小写);
%f: 十进制浮点型输出,保留小数点后六位(f区分大小写,对应输出字母的大小写);
%m.nf:浮点型输出限制宽度,m表示整体宽度(包含小数点),n表示小数部分宽度,二者可以单独使用;
%g:用于浮点型数据,输出结果会从%e和%f中选择更短的数据输出;
%c:用于字符型,输入0-127,得到对应的ASCII码表的字符;
%s:用于字符串("%s",""),后面的""内容代替%s;
%p:指针,用来取地址,用法为("%p",&x),void pointer称为万能指针;
%%:用来输出“%”,避免与格式说明符混淆;
%ld:用于提高打印字节位数,适用于long型:
%lu:同样提高打印字节位数,适用于long long型。
printf函数的返回值表示打印字符个数。
2.3.2 scanf 函数
scanf 是格式输入函数。它是printf
的输入对应函数,能够根据指定的格式字符串解析输入内容,并将结果存储到变量中。一般用法为scanf(格式控制,地址表列),格式控制基本与printf函数用法相同,地址表列可以是变量的地址或字符串的首地址。例如int i; scanf("%d",&i); &后面的i是由原i复制而来。
注意:1.scanf 通过i的地址(&i)改变原随机数,所以格式控制后面必需写地址;2.""内占位符前的内容都需要输入进去才能运行。
用法:与printf函数用法大致相同,其中对于单精度浮点型用%f,对于双精度浮点型使用%lf(否则会发生越界行为),printf函数可以隐形转换,无需额外添加。short 函数使用scanf应该用%hd,因为short为两个字节;此外在使用%c时,空格也为有效字符。以下是具体用法:
2.4 顺序结构程序设计
例:输入三角形的三边长,求三角形面积
设三个边长能够构成三角形,三角形面积公式为