C语言程序设计(1)
一、C源程序的结构特点)(举例)
main()
{
printf("麦蒂天神的BLOG欢迎您!\n");
}
main
主函数名,每一个C源程序都必须有,且只能有一个主函数(main函数)。函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。printf函数是一个由系统定义的标准函数,可在程序中直接调用。
#include
"stdio.h" /*include称为文件包含命令.h文件也称为头文件或首部文件*/#include
"math.h"
main() /*主函数名*/
{
double x,s; /*定义两个实数变量,以被后面程序使用
*/printf("input number:\n"); /*显示提示输出信息*/
scanf("%lf",&x); /*从键盘获得一个实数x*/
s=sin(x); /*求x的正弦,并把它赋给变量s*/
printf("sine of %lf is %lf\n",x,s); /*显示程序运算结果*/
}/*main函数结束*/
红色部分为预处理命令
程序的功能是从键盘输入一个数x,求x的正弦值,然后输出结果。
二、C语言的字符集
C语言字符集由字母,数字,空格,标点和特殊字符组成。
1.字母 (A~Z,a~z)
2.数字 0~9
3.空白符 空格符、制表符、换行符。(只在字符常量和字符串常量中起作用,其他地方只起间隔作用)
三、C语言词汇
在C语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符等。
1.标识符:程序中的变量名、函数名、标号等
C语言规定标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线
举例:以下标识符是合法的:
a,x,_3x,BOOK_1,sum5
注意:(1)标准C不限制标识符的长度,其他C版本例外。(2)大小写有区别(如BOOK和book
是两个不同的标识符)(3)命名应尽量有相应意义
2.关键字
1)类型说明符
用于定义、说明变量、函数或其它数据结构的类型。如int,double等
2)语句定义符
用于表示一个语句的功能。如if
else是条件语句的语句定义符。
3)预处理命令字
用于表示一个预处理命令。如include。
3.运算符
C语言中含有相当丰富的运算符。(+ - * %等)
4.分隔符 (逗号和空格两种)
5.常量 (数字常量、字符常量、字符串常量、符号常量、转义字符等多种)
6.注释符 /*
注释内容*/
四、C语言数据类型
基本数据类型,构造数据类型,指针类型,空类型(调用后不需要向调用者返回函数值
void)。
(一)基本数据类型:整型、浮点型和字符型
整型:
整型常量(八进制、十六进制和十进制)、整型变量
八进制:0** 十六进制:0X***/oX*** 十进制:0~9
无符号范围(0~0177777)(0X0~0XFFFF或0x0~0xFFFF)(0~65535)
超过范围用长整型数后缀用“L”/“l”来表示的;无符号数后缀为“U”/“u”。
如0XA5Lu表示十六进制无符号长整数A5。
整型变量:
1.基本型 int,占2个字节,取值为基本整常数。
2.短整量 short(int),占2个字节,取值为基本整常数
3.长整型 long(int),占4个字节,其取值为长整常数。
4.无符号型 unsigned(int),可以与其他整型符号混合使用
整型变量的说明:int a,b,c; (a,b,c为整型变量)
long x,y; (x,y为长整型变量)
unsigned p,q; (p,q为无符号整型变量)
浮点型:
十进制数形式 、指数形式(其一般形式为* E或e *)
后缀为“f”或“F”即表示该数为浮点数。如356f=356.
浮点数变量:
单精度型:占4个字节(32位)内存空间(只提供7位有效数字)
双精度型:占8个字节(64位)内存空间(可提供16位有效数字)
实型变量说明:float x,y; (x,y为单精度实型量)
double a,b,c; (a,b,c为双精度实型量)
实型常数不分单、双精度,都按双精度double型处理。
字符型:
1)字符常量:如'a' 'b' '='
'+' '?',只能是单个字符,不能是字符串.
但'5'和5
是不同的。'5'是字符常量,不能参与运算。
2)转义字符:
转义字符 转义字符的意义
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜线符"\"
\' 单引号符"'"
\a 鸣铃
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义:\101表示字母"A" ,\102表示字母"B",\134
表示反斜线,\XOA表示换行等(参照ASCII代码)
转义字符举例:
void main()
{
int a,b,c;
a=5; b=6; c=7;
printf("%d\n\t%d %d\n %d %d\t\b%d\n",a,b,c,a,b,c);
}
运行结果:
a■
6 7■
5 6■
76■
字符变量(char)
说明:char a,b;(a或b只能存放一个字符)
对字符变量a,b赋予'x'和'y'值: a='x';b='y',
字符变量与整型变量相互转化:
当格式符为"c"时,对应输出的变量值为字符,当格式符为"d"时,对应输出的变量值为整数。
举例:
void main()
{
char a,b;
a='x';
b='y';
a=a-32;
b=b-32;
printf("%c,%c\n%d,%d\n",a,b,a,b);
}
运行结果:
X Y■
88 89■
字符串常量:"CHINA" ,"C program:" ,
"$12.5"
'a'在内存中占一个字节,可表示为:a
"a"在内存中占二个字节,可表示为:a\0符号常量
符号常量:#define 标识符 常量 #define PI 3.14159
void main()
{
float s,r;
r=5;
s=PI*r*r;
printf("s=%f\n",s);
}
变量赋初值:类型说明符 变量1= 值1,变量2=
值2,……; int a=3,b,c=5;
变量类型的转换:一种是自动转换,一种是强制转换。
自动转换:1、类型不同,先转换成同一类型,然后进行运算。
2、int型和long型运算时,先把int量转成long型后再进行运算。
3、所有的浮点运算都以双精度进行
4、char型和short型参与运算时,必须先转换成int型
5、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边类型转换为左边类型。
强制转换:(类型说明符) (表达式)
如:(float) a 把a转换为实型(int)(x+y)
是临时的,而f本身的类型并不改变。
C语言运算符分类:
1.算术运算符(左结合性)
用于算术运算:加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(--)(右结合性)2.关系运算符()
用于比较运算:大于(>)、小于(
大于等于(>=)、小于等于(<=)和不等于(!=)
3.逻辑运算符用于逻辑运算:与(&&)、或(||)、非(!)4.位操作运算符按二进制位进行运算:位与(&)、位或(|)、位非(~)、位异或(^)、左移(<>)5.赋值运算符(右结合性)
用于赋值运算:简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)
6.条件运算符一个三目运算符:用于条件求值(?:)
7.逗号运算符用于把若干表达式组合成一个表达式:
(,)
8.指针运算符用于取内容(*)和取地址(&)二种运算。
9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)
10.特殊运算符有括号(),下标[],成员(→,.)等
注:自增自减运算符(++ --)
++i
i自增1后再参与其它运算 --i i自减1后再参与其它运算
i++
i参与运算后,i的值再自增1 i-- i参与运算后,i的值再自减1
举例1:
void main(){
int
i=8; -----》i初值为8
printf("%d\n",++i); ----》加1后输出为9
printf("%d\n",--i); ----》减1后输出为8
printf("%d\n",i++); ----》输出i为8之后再加1,输出为9
printf("%d\n",i--); ----》输出i为9之后再减1,输出为8
printf("%d\n",-i++); ----》输出-8之后再加1,输出为9
printf("%d\n",-i--); ----》输出-9之后再减1,输出为8
}
举例2:void main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++); ----》3个i相加(15),再加3个1(3)得到p=18
q=(++j)+(++j)+(++j); ----》j先自增1
3次(8),再将3个8相加得到q=24
printf("%d,%d,%d,%d",p,q,i,j); -------》18,24,5,8}
1.算术表达式
如a+b,(a*2)/c,(x+r)*8-(a+b)/7,++i,sin(x)+sin(y),(++i)-(j++)+(k--)
2.赋值表达式:(右结合性——自右向左运算)
如x=a+b,w=sin(a)+sin(b)
赋值运算符两边的数据类型不相同,系统自动把赋值号右边类型换成左边类型。
具体规则如下:
1.实型赋予整型:舍去小数部分。
2.整型赋予实型:数值不变以浮点形式存放,即增加小数部分(小数部分的值为0)。
3.字符型赋予整型:字符型为1个字节,整型为2个字节,故将字符的ASCII码值放到整型量的低八位中,高八位为0。
4.整型赋予字符型:只把低八位赋予字符量。void main(){
int
a,b=322; ------》a,b为整型
float
x,y=8.88; ------》x,y为实型
char c1='k',c2;
a=y; ------》y=8
x=b; ------》b=322.0
a=c1; ------》“k”对应的ASCII码值前面+n个0,共16位
c2=b; ------》322所对应的ASCII码符号赋予c2
printf("%d,%f,%d,%c",a,x,a,c2);
}
3.逗号表达式:(表达式a,表达式b,表达式c,....表达式n)
分别求表达式a,b,c...并以最后一个表达式n的值作为整个逗号表达式的值
void main(){
int
a=2,b=4,c=6,x,y; x=a+b,y=b+c; ------》y=10,x=6(y=10是整个表达式的值)
printf("y=%d,x=%d",y,x); }
点击观看:C语言程序设计(2)