版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、12 主主 要要 内内 容容uC语句概述语句概述uC语言的数据类型语言的数据类型u常量与变量常量与变量u整型数据整型数据u实型数据实型数据u字符型数据字符型数据u变量赋初值变量赋初值3主主 要要 内内 容(续一)容(续一)u各类数值型数据间的混合运算各类数值型数据间的混合运算u算术运算符和算术表达式算术运算符和算术表达式u赋值运算符和赋值表达式赋值运算符和赋值表达式u逗号运算符和逗号表达式逗号运算符和逗号表达式u赋值语句赋值语句4主主 要要 内内 容(续二)容(续二)u格式输出与输入函数(格式输出与输入函数(printf 与与scanf函数)函数)u字符数据的输入输出字符数据的输入输出u顺序结
2、构程序设计顺序结构程序设计5l顺序结构顺序结构l选择结构选择结构l循环结构循环结构6顺序结构顺序结构语句语句1语句语句27#include int main() printf( Welcome!n); printf(Study Hard!n);return 0; 程序:程序:8 输入一个华氏温度,要求输入一个华氏温度,要求输出摄氏温度。公式为:输出摄氏温度。公式为:c=5/9(f-32)。编编 程程9输入输入f的值的值c=5/9(f-32)输出输出C的值的值10#include int main() float f,c; f=69.0; c=(5.0/9)*(f-32); printf(f=%
3、fnc=%fn,f,c); return 0;11l1972年贝尔实验室首先实现年贝尔实验室首先实现l与机器无关,可移植性好与机器无关,可移植性好l表达能力强,使用灵活方便表达能力强,使用灵活方便l兼有高级语言和低级语言的特点兼有高级语言和低级语言的特点l很多操作系统用很多操作系统用C语言书写语言书写l是学习是学习C+ 语言的基础语言的基础1213/* 第一个第一个C语言程序语言程序 */#include int main()printf(Hello, World!n); return 0;注释注释头文件头文件主函数主函数输出函数输出函数格式说明:换行符格式说明:换行符编译预处理命令(编译预处
4、理命令(“文件包含文件包含”处理)处理)开始开始结束结束14/* 第二个程序:加法计算程序第二个程序:加法计算程序 */#include int main( )int nInteger1, nInteger2, nSum;printf(请输入第一个整数:请输入第一个整数:);scanf(%d, &nInteger1);printf(请输入第二个整数:请输入第二个整数:);scanf(%d, &nInteger2);nSum = nInteger1 + nInteger2;printf(%d与与%d的和为的和为%dn, nInteger1, nInteger2, nSum); r
5、eturn 0;1516/*功能:在屏幕上输出一行文本功能:在屏幕上输出一行文本*/#includeint main() printf(This is a C program. n); return 0;17#includeint main() int a,b,sum; a=123; b=456; sum=a+b; printf(sum=%dn,sum); return 0;18#includeint main() int max(int x,int y); int a,b,c; printf(请输入两个整数请输入两个整数:); scanf(%d,%d,&a,&b); c=ma
6、x(a,b); printf(max=%dn,c); return 0;int max(int x,int y) int z; if(xy) z=x; else z=y; return (z);19函函 数数 int max (int x, int y) int z; if(xy) z=x; else z=y; return (z);函数的首部函数的首部函数类型函数类型函数名函数名函数参数类型函数参数类型函数参数名函数参数名 函数参数类型函数参数类型 函数参数名函数参数名函数体函数体 声明部分声明部分执行部分执行部分20lC程序由函数构成程序由函数构成l一个函数由两部分组成一个函数由两部分组成
7、函数的首部函数的首部函数体函数体声明部分声明部分执行部分执行部分l一个一个C程序总是从程序总是从main函数开始执行函数开始执行lC程序书写格式自由程序书写格式自由,一行内可以写几个语句一行内可以写几个语句l每个语句和数据定义的最后必须有一个分号每个语句和数据定义的最后必须有一个分号(;)l两种注释方式两种注释方式& /*.*/对对C程序中的任何部分作块式注释程序中的任何部分作块式注释&以以/开始的单行注释开始的单行注释通通 过过 以以 上上 例例 子看到子看到2122数据类型数据类型基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型整型整型字符型字符型实型实型(浮点
8、型浮点型)枚举类型枚举类型数组类型数组类型结构体类型结构体类型共用体类型共用体类型单精度型单精度型双精度型双精度型23 在程序运行过程中,其值不能被改变的为在程序运行过程中,其值不能被改变的为常量常量l整型常量:整型常量:123,100l实型常量:实型常量:3.14,0.618l字符常量:字符常量:a,bl字符串常量:字符串常量:abc, a student24l符号常量符号常量用用#define命令行命令行定义的常量,如:定义的常量,如:#definePI 3.14s=PI*r*r;l枚举常量枚举常量enum weekday sun, mon, tue, wed, thu, fri, sat
9、;这里这里sun=0, mon=1, ., sat=6enum weekday sun=7, mon=1, tue, wed, thu, fri, sat;这里这里sun=7, mon=1, tue=2, ., sat=6enum weekday mon=1, tue, wed, thu, fri, sat, sun;25 程序在运行过程中,其值可以改变的量称程序在运行过程中,其值可以改变的量称为变量为变量l变量名和变量值变量名和变量值a123变量名变量名变量值变量值存储单元存储单元26l标识符由字母、数字和下划线标识符由字母、数字和下划线( _ )组成组成l标识符的首字符必须为字母或下划线标
10、识符的首字符必须为字母或下划线( _ )l标识符不能为标识符不能为C语言的关键字(语言的关键字(32个)个)l字母区分大下写字母区分大下写,例例A与与a为不同的标识符为不同的标识符27l合法的变量名合法的变量名:abc, _abc, x125, a_1_2, Mal不合法的变量名:不合法的变量名:M.D, $abc, a-b, 123b,intl变量必须定义变量必须定义,每一个变量与一个数据,每一个变量与一个数据类型相关联类型相关联int i;float f;28l十进制数:十进制数:123 -456 0l八进制数:八进制数:以以0开头的数开头的数如:如:012 034 011l十六进制数十六
11、进制数:以:以0 x开头的数开头的数0123456789ABCDEF 0 x10 0 x1B 0 x1229#include int main() int a,b,c; a=25; b=025; c=0 x25; printf(%d %d %dn,a,b,c); return 0;25 21 3730#include int main() int i=9; printf(%on,i); return 0;1131l基本整型:基本整型:intl短整型:短整型:short int 或或 shortl长整型:长整型:long int 或或 longl无符号整型:无符号整型: unsigned int
12、 unsigned short unsigned long32l整型类型的数据长度与特定的机器和系整型类型的数据长度与特定的机器和系统有关。统有关。l一般来说:一般来说:short16位位long32位位int16位或位或32位位l要求:要求:short int long33l变量在使用前必须定义变量在使用前必须定义int x; /* 定义一个基本整型变量定义一个基本整型变量x */int i, j;long l, k;unsinged long ul;int a=1, b=0;34#include int main()int a, b, c, d;int x, y;a = 10;b = 15
13、;c = 20;d = 25;x = a + b;y = c + d;printf(x = %d y = %dn, x, y); return 0;35l没有后缀的整数常量是没有后缀的整数常量是int常量常量123, 376llong常量以字母常量以字母L或或l结尾,在结尾,在int与与long不等长的情况下,超出不等长的情况下,超出int范围的无后缀范围的无后缀整数也当作整数也当作long常量处理常量处理123L,376Ll无符号常量以字母无符号常量以字母u或或U结尾,结尾,ul或或UL表表示示unsigned long常量常量123U,376UL36l十进制小数形式:十进制小数形式:3.1
14、4 0.618 -14 . 3l指数形式:指数形式:1.56e5 3.14E6注:注:规范化的指数形式规范化的指数形式:小数点左边必须有且只能有一位非零数字小数点左边必须有且只能有一位非零数字如:如:3.14E9,7.56E1237类型类型比特比特(位)位)数数有效数字有效数字数值范围数值范围单精度型单精度型(float)3267-3.4*10-383.4*1038双精度型双精度型(double)641516-1.7*10-3081.7*1030838float x, y;float z;float u = 3.14;double l;double e = 0.5;39l字符常量是一个整数,用
15、字符常量是一个整数,用单撇号单撇号括起来的括起来的一个一个字字符。符。a A X 2 l其值是该字符在机器字符集中的数值,如在其值是该字符在机器字符集中的数值,如在ASCII字符集中,字符集中,2的值为的值为50,a的值为的值为97l转义字符:转义字符:n r t blASCII码字符:码字符:ddd:三位八进制数表示一个字符,三位八进制数表示一个字符,141=axhh:两位十六进制数表示一个字符,两位十六进制数表示一个字符,x61=a40l转义字符转义字符 一组以一组以“”开头的特殊字符序列,用这种方法可开头的特殊字符序列,用这种方法可以表示任何可输出的字母字符、专用字符、控制以表示任何可输
16、出的字母字符、专用字符、控制字符和图形字符。字符和图形字符。常用转义字符表常用转义字符表转义字符转义字符功功 能能 a响铃,发出系统警告声音响铃,发出系统警告声音 n换行符,使屏幕光标移到屏幕下一行开头换行符,使屏幕光标移到屏幕下一行开头 r回车,使屏幕光标移到屏幕当前行开头,不换行回车,使屏幕光标移到屏幕当前行开头,不换行 t制表符(横向跳格),使屏幕光标移到下一制表位制表符(横向跳格),使屏幕光标移到下一制表位 反斜杠字符反斜杠字符 单撇号字符单撇号字符 双撇号字符双撇号字符41#include int main() printf(The file name is toolsbooklis
17、t.txt); return 0; 练习练习:The file name is oolooklist.txt42l一个字符占用一个字符占用8位。位。char c, c1;c = a;c1 = 0;c1 = a + 1; /* c1 = b */c = 97;43l/* 大小写字符的转换大小写字符的转换 */l#include lint main()llchar c1, c2;lc1 = a;lc2 = b;lc1 = c1-32;lc2 = c2-32;lprintf(%c %cn, c1, c2);l return 0;lA B44#include int main()char c;c =
18、a;printf(%c的的ASCII码是码是%dn, c, c); return 0;a的的ASCII码是码是9745l用用双撇号双撇号括起来的字符序列是字符串常量括起来的字符序列是字符串常量TSINGHUA a a 3 5l存储时,字符串以存储时,字符串以0结束结束注意:注意:a和和a是不一样的是不一样的T S I N G H U A 0结束标志结束标志46l当两个不同类型的数值进行数学运算时,首先当两个不同类型的数值进行数学运算时,首先转换成相同的类型,再运算,结果的类型与该转换成相同的类型,再运算,结果的类型与该类型一致。类型一致。l基本原则:就高不就低基本原则:就高不就低5+5 = 1
19、0 5.0+5 = 10.09/5 = 19.0/5 = 1.8 6/5*3.0 = 3.0 6.0/5*3 = 3.6注意了!注意了!47int i = 8, j = 5;double x;x = i/j; /* x的结果为的结果为1.0 */x = 1.0*i/j; /* x的结果为的结果为1.6 */x = (double)i/j; /* x的结果为的结果为1.6 */i = 3.14*3*3; /* 编译时有警告编译时有警告 */i = (int)(3.14*3*3); /* 无警告无警告 */(类型名类型名)(表达式表达式)48l:加法运算:加法运算l:减法运算:减法运算l*: 乘法
20、运算乘法运算l/: 除法运算除法运算l:求余运算:求余运算 注注:两个运算数必须为整数两个运算数必须为整数 5%3 = 2 -9%2 = -1 运算结果的符号与被除数相同运算结果的符号与被除数相同 3%-2 =1 3%22 =349常用数学函数常用数学函数函函 数数 名名功功 能能举举 例例fabs(x)abs(x)计算计算x的绝对值的绝对值fabs(-3.5)等于等于3.5sqrt(x)计算计算x的非负平方根的非负平方根sqrt(16.0)等于等于4.0exp(x)计算指数函数计算指数函数exexp(1.0)等于等于2.71828log(x)计算计算x的自然对数的自然对数ln xlog(2.
21、718282)等于等于1.0log10(x)计算以计算以10为底的对数函数为底的对数函数log10 xLog10(10.0)等于等于1.0pow(x,y)计算计算xypow(2.0,3.0)等于等于8.0sin(x)正弦函数正弦函数sin(0.0)等于等于0.0cos(x)余弦函数余弦函数cos(0.0)等于等于1.050(1)数学式:数学式: C语言表达式:语言表达式: 3*pow(x,n)/(2*x-1)(2)数学式:数学式: C语言表达式:语言表达式:sqrt(s*(s-a)*(s-b)*(s-c)(3)根据半径计算圆的周长)根据半径计算圆的周长 数学式:数学式: s=2r C语言表达式
22、:语言表达式:s=2*3.14159*r)()(csbsass123xxn51l按优先级的顺序进行运算按优先级的顺序进行运算4*5+2*3 = 26l相同优先级时,按结合性运算相同优先级时,按结合性运算l左结合性左结合性4*5*6 = (4*5)*64.0/5.0*6.0 = (4.0/5.0)*6.0l右结合性右结合性i=j=k=0 = i=(j=(k=0) = i=0; j=0; k=0; 好的习惯:加括弧好的习惯:加括弧52求下面算术表达式的值求下面算术表达式的值 x+a%3*(int)(x+y)%2/4 设设 x=2.5,a=7,y=4.72 . 50000053li+:使用使用i之后
23、,对之后,对i加加1l+i:使用使用i之前,对之前,对i加加1l i-: 使用使用i之后,对之后,对i减减1l -i: 使用使用i之前,对之前,对i减减1例:例: i = 2; k = i+ + 5; i = 2; k = +i + 5; K=7K=8i=i+1i=i-154l+、-只能作用于变量只能作用于变量l+、-是右结合的是右结合的l避免使用一些具有二义性的表达式避免使用一些具有二义性的表达式参数的计算次序因系统不同而不同参数的计算次序因系统不同而不同l建议:只单独使用自增、自减运算符!建议:只单独使用自增、自减运算符!55#include int main() int m=3,n=4,
24、x; x= -m+; x=x+8/+n; printf(%dn, x); return 0;256#include int main() int i,j,m,n; i=8;j=10; m=+i ; n=j+; printf(%d,%d,%d,%dn,i,j,m,n); return 0;9,11,9,1057l = = = () a += 3; = a = a + 3; x *= y+8; = x = x*(y+8) x /= 8; = x = x/8;58l a=5 a=b=c=5 a=5+(c=6)59(1)a+=a (2) a- =2 (3) a*=2+3 (4) a/=a+a (5)
25、a%=(n%=2) n的值等于的值等于5 (6) a+=a - =a*a(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6)26460#include int main() int k=2,i=2,m; m=(k+=i*=k); printf(%d,%dn,m,i); return 0;6,461l表达式表达式1,表达式表达式2,表达式表达式n 它的值为表达式它的值为表达式n的值的值 例例1:a=3*5,a*4,a+5 例例2: 若若x为为int型变量型变量,则逗号表达式则逗号表达式 (x=4*5,x*5),x+25的结果为的结果为( ), x的值为的值为( )。2045,
26、2062#include int main() int y=3,x=3,z=1; printf(%d %dn,(+x,y+),z+2); return 0;3 363C程序程序源程序文件源程序文件2函数函数1函数首部函数首部局部变量声明局部变量声明源程序文件源程序文件n源程序文件源程序文件1.预处理命令预处理命令函数函数n全局变量声明全局变量声明.函数体函数体语句语句64l控制语句控制语句if (x y) x+;else y+;l表达式语句表达式语句i+; /* 表达式后面加表达式后面加“;”号号 */a = 3;x+y;l函数调用语句(也属于表达式语句)函数调用语句(也属于表达式语句)pri
27、ntf(“北京交通大学北京交通大学);sin(x);65l 空语句空语句;l 复合语句(分程序)复合语句(分程序)用用将若干语句括起来,组成一个语句将若干语句括起来,组成一个语句x = a + b;y = c - d;printf(%d %dn, x, y);66l一行写多个语句:一行写多个语句:x = 1; y = 2; z = 3; a = 1, b=2;l多行写一个语句:多行写一个语句:a = (x + y) * (a + b);67lx = 5;“=”赋值赋值号号68lC语言函数库提供了强大的功能调用语言函数库提供了强大的功能调用l输入输出是通过库函数实现的输入输出是通过库函数实现的p
28、rintf函数:输出函数函数:输出函数scanf函数:输入函数函数:输入函数l库函数的使用,需要包含相应的头文件库函数的使用,需要包含相应的头文件如标准输入输出函数:如标准输入输出函数:#include 数学库函数:数学库函数: #include 69lprintf函数的格式函数的格式printf(格式控制,输出表列格式控制,输出表列);例子例子printf(i = %d, j = %d, i, j);printf(i的值是的值是%d, x的值是的值是%f, i, x);70l%x: 十六进制整数十六进制整数l%o: 八进制整数八进制整数ld格式符。输出十进制整数格式符。输出十进制整数u%d:
29、 十进制整数十进制整数u%ld: 长整数长整数umd: 输出输出m位,右对齐位,右对齐u%-md: 输出输出m位,左对齐位,左对齐lf格式符。输出小数形式的实数。格式符。输出小数形式的实数。u%f: 单精度,单精度,6位小数;位小数;u%lf 双精度,双精度,u%m.nf: 共输出共输出m位,位,n位小数,右对齐位小数,右对齐u%-m.nf: 共输出共输出m位,位,n位小数,左对齐位小数,左对齐71l%e 指数形式输出实数指数形式输出实数ls格式符格式符: 输出字符串输出字符串u%su%ms 输出的字符串占输出的字符串占m列,右对齐列,右对齐u%m.ns: 取前取前n位字符,占位字符,占m列,
30、右对齐列,右对齐lc: 一个字符一个字符l%: 输出输出ln: 换行换行lt: Tabl: 号号72 已说明已说明int a=268;执行语句执行语句printf(%x,a);的结果是的结果是 ?10c73错误错误lscanf函数的一般格式函数的一般格式: scanf(格式控制,地址表列格式控制,地址表列);l例子:例子: int i; float x;uscanf(“%d %f”, &i, &x); 输入数据时用空格分隔输入数据时用空格分隔 3 5.0uscanf(“%d ,%f”, &i, &x);输入数据时用输入数据时用 逗号逗号(, )分隔分隔 3,5.
31、0uscanf(%d, i); 一般情况下,用空格、回车、逗号作为数字间的分隔符一般情况下,用空格、回车、逗号作为数字间的分隔符74l例子:例子: double x; float y; scanf(%f %lf, &y, &x);75scanf(%3d %3d, &i, &j);输入:输入:123456,则,则i123,j456scanf(%c%c, &c1, &c2);输入:输入:ab,则则c1a,c2b输入:输入:a b,则则c1a,c2 scanf( %c %c,&c1,&c2);则输入则输入ab,a b都可以都可以scan
32、f(%d,%d, &i, &j);输入时要以输入时要以“,”号为分隔符:号为分隔符:123,456scanf(i=%d, j=%d, &i, &j);输入:输入:i=123, j=34576#include int main() int i,j; scanf(i=%d,j=%d,&i,&j); printf(i=%d,j=%dn,i,j); return 0;要求给要求给i赋赋10,给给j赋赋20,则应该从键盘输入?则应该从键盘输入?i=10,j=2077l#include lint main()ll char ch1, ch2;l ch1=97
33、;l ch2=98; l printf(%c,%cn, ch1, ch2);l printf(%d,%dn, ch1, ch2); return 0;la, b97,98781、用、用putchar函数输出函数输出一个字符一个字符 一般形式:一般形式:putchar()2、用、用getchar()函数输入函数输入一个字符一个字符 一般形式:一般形式:getchar()79例:用getchar函数从键盘读入一个大写字母,把它转换为小写字母,然后用putchar函数输出。80#include int main() char c1,c2; printf(请输入一个大写字母请输入一个大写字母:); c
34、1=getchar(); c2=c1+32; printf(转换的小写字母是转换的小写字母是:); putchar(c2); putchar(n); return 0;程序:程序:81l分析分析:程序需要三个整型变量分别存放三个整数,考虑到三程序需要三个整型变量分别存放三个整数,考虑到三个整数的平均数不一定为整数,所以存放平均值的变量定个整数的平均数不一定为整数,所以存放平均值的变量定义为实型。义为实型。/*功能:求三个整数的平均数功能:求三个整数的平均数*/#includeint main() int a, b, c; /*定义三个整型变量分别存放三个整数定义三个整型变量分别存放三个整数*/
35、 float ave; /*定义一个实型变量分别平均值定义一个实型变量分别平均值*/ scanf(%d,%d,%d,&a,&b,&c); /*任意输入三个整数任意输入三个整数*/ ave = (a + b + c) / 3.0; /*计算平均值计算平均值*/ printf(ave=%7.2fn , ave); /*输出计算结果输出计算结果*/ return 0;【例例1】 求三个整数的平均数。求三个整数的平均数。82 分析分析:输入三角形的三边,用下述公式计算三角形的面积:输入三角形的三边,用下述公式计算三角形的面积: 其中其中 s=(a+b+c)/2/*功能:输入三角形三边,计算面积功能:输入三角形三边,计算面积*/#include #include int main() float a , b , c , s , area; printf(Please enter 3 sides of a triangle:n); scanf(%f,%f,%f,&a , &b , &c); s = (a + b + c)/2; area = sqrt(s * (s - a) * ( s - b) * (s - c); printf(a=%7.2f,b=%7.2f,c=%7.2fn,a,b,c); printf(area=%7.2fn,a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能助理工程师的模型可复现性研究
- 施工成本动态监控与控制方案
- 2024年秋季新人教版七年级历史上册全册教案
- 护理风险评估的心理社会因素
- 售后服务流程标准化文档客户问题快速响应版
- 人才开发培训支持承诺书7篇
- 物流仓储环节货损率数据统计分析手册
- 振动排痰护理的临床应用技巧
- 酒店住宿服务保障承诺书7篇
- 养生保健知识传播承诺书3篇范文
- 2026年北京市朝阳区高三二模英语试卷(含答案)
- 年产5万吨硫酸法钛白粉生产工艺设计实现可行性方案
- 住院精神疾病患者攻击行为预防-2023中华护理学会团体标准
- 13诗第十二-整本书阅读系列《经典常谈》名著阅读与练习
- 浪洛公路地质灾害危险性评估报告
- 《童年》梗概作文600字
- JJF 1847-2020电子天平校准规范
- GB/T 8262-1987圆头椭圆颈螺栓
- 2023年怀化市鹤城区林业系统事业单位招聘笔试题库及答案解析
- 杀鼠剂中毒-课件
- 浅析怀仁《集王羲之圣教序》之章法
评论
0/150
提交评论