C语言实验教程第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•本章重点掌握:CCCC语言程序的结构形式和书写规则;正确区分和使用标识符、保留字、运算符和分隔符等。第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•1.11.11.11.1几个例子几个例子几个例子几个例子•例1.11.11.11.1•#include#include#include#includestdio.hstdio.hstdio.hstdio.h•voidmain()/voidmain()/voidmain()/voidmain()/****主函数,每个程序都必须要有****////•{{{{•printfprintfprintfprintf((((这是一个最简单的CCCC程序!\n);\n);\n);\n);•////****语句,以分号结束****////•}}}}运行结果:这是一个最简单的CCCC程序!第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•上述程序中,////****和****////中间的内容是注释•#include#include#include#includestdio.hstdio.hstdio.hstdio.h是一条编译预处理命,令包含了一个标准输入////输出的头文件•voidmain()voidmain()voidmain()voidmain()表示主函数,是CCCC语言程序必须有的一个函数•函数体由一系列语句组成,每个语句都以分号““““;””””结束•系统标准输出函数printfprintfprintfprintf,双引号内的字符串照原样输出,\n\n\n\n表示换行符第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•例1.21.21.21.2输入圆的半径值((((整数)))),计算圆面积并输出•#include#include#include#includestdio.hstdio.hstdio.hstdio.h•#define#define#define#definePI3.14159PI3.14159PI3.14159PI3.14159•voidmain()/voidmain()/voidmain()/voidmain()/****计算圆的面积****////•{{{{•intintintintr;r;r;r;•floats;floats;floats;floats;•printfprintfprintfprintf((((请输入圆的半径值:);:);:);:);•scanfscanfscanfscanf((((%d,&r%d,&r%d,&r%d,&r);/);/);/);/****输入圆的半径值****////•s=PIs=PIs=PIs=PI****rrrr****rrrr;;;;•printfprintfprintfprintf((((该圆面积=%f\n,s=%f\n,s=%f\n,s=%f\n,s);/);/);/);/****输出圆面积值****////•}}}}第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•程序的运行结果如下:请输入圆的半径值:1CR:1CR:1CR:1CR该圆面积=3.141590=3.141590=3.141590=3.141590•#define#define#define#definePI3.14159PI3.14159PI3.14159PI3.14159是编译预处理命令,作用是在编译前将程序中所有的PIPIPIPI都用3.141593.141593.141593.14159替换•scanfscanfscanfscanf函数调用,它的作用是等待用户从键盘上输入数据,并将输入的数据存放到变量rrrr中第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•例1.31.31.31.3编写一个程序,要求输入两个数,求其中较大的数。•#include#include#include#includestdio.hstdio.hstdio.hstdio.h•intintintintmax(max(max(max(intintintintx,intx,intx,intx,inty)/y)/y)/y)/****被调用函数****////•{{{{•intintintintz;z;z;z;•if(xy)if(xy)if(xy)if(xy)z=xz=xz=xz=x;;;;•elseelseelseelsez=yz=yz=yz=y;;;;•return(z);/return(z);/return(z);/return(z);/****将zzzz的值返回调用处****////•}}}}•voidmain()/voidmain()/voidmain()/voidmain()/****主函数****////•{{{{•intintintinta,b,ca,b,ca,b,ca,b,c;;;;•scanfscanfscanfscanf((((%d,%d,&a,&b%d,%d,&a,&b%d,%d,&a,&b%d,%d,&a,&b);/);/);/);/****输入两个整数****////•c=maxc=maxc=maxc=max((((a,ba,ba,ba,b);/);/);/);/****调用maxmaxmaxmax函数****////•printfprintfprintfprintf((((max=%d\n,cmax=%d\n,cmax=%d\n,cmax=%d\n,c););););•}}}}第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•主函数main()main()main()main()和被调用函数max()max()max()max()。maxmaxmaxmax函数的作用是将xxxx、yyyy中较大数的值赋给zzzz,并通过returnreturnreturnreturn语句将zzzz的值返回到主调函数mainmainmainmain中的调用处。xxxx、yyyy是两个形式参数,它们的值由主调函数中对应的实际参数aaaa、bbbb的值传过来•程序的最后是输出cccc的值,运行结果如下:4,6CR4,6CR4,6CR4,6CR((((从键盘上输入4444、6)6)6)6)max=6max=6max=6max=6((((输出cccc的值))))第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•通过上面几个例子可以看出:(1)(1)(1)(1)一个CCCC语言程序可以由多个函数组成,但必须包含且只能包含一个主函数main()main()main()main()。函数是组成CCCC语言程序的基本单位。(2)(2)(2)(2)一个函数由函数头和函数体两部分组成。(3)(3)(3)(3)一个CCCC程序中函数出现的次序可以是任意的,但总是从mainmainmainmain函数开始执行。(4)(4)(4)(4)前面带有““““####””””的语句,如#include#include#include#include、#define#define#define#define等都是编译预处理命令。(5)C(5)C(5)C(5)C语言程序书写格式比较自由,一行可有多条语句,一条语句也可写成多行((((但不能将一个单词分开))))。为了提高程序的可读性,往往是一行只写一个语句,并以缩进写法来体现语句的层次。第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•函数头定义了函数名、函数类型、函数形式参数名及其类型。例:intintintintmax(max(max(max(intintintintx,intx,intx,intx,inty)y)y)y)•函数体,即函数头下面花括号{}{}{}{}内的部分。函数体定义了该函数所要实现的功能。函数体一般包括:①变量说明。如例1.3main1.3main1.3main1.3main函数中的““““intintintinta,b,ca,b,ca,b,ca,b,c””””。②执行部分。由若干条语句组成,每个语句都以““““;””””作结束。第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•1.2C1.2C1.2C1.2C的基本字符与词汇的基本字符与词汇的基本字符与词汇的基本字符与词汇•1.2.1C1.2.1C1.2.1C1.2.1C语言的字符集•(1)(1)(1)(1)字母和数字小写字母abcabcabcabc…………zzzz大写字母ABCABCABCABC…………ZZZZ数字012012012012…………9999•(2)(2)(2)(2)特殊字符+=-_()+=-_()+=-_()+=-_()****#&%$!|^.,;:'/\?{}[]~#&%$!|^.,;:'/\?{}[]~#&%$!|^.,;:'/\?{}[]~#&%$!|^.,;:'/\?{}[]~•(3)(3)(3)(3)空白字符包括空格、换行符和制表符第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•1.2.21.2.21.2.21.2.2词汇•CCCC语言的词汇包括标识符、保留字、运算符和分隔符等•(1)(1)(1)(1)标识符CCCC语言的标识符是由字母、数字和下划线““““____””””组成的字符序列。它的第一个字符必须是字母或下划线。根据上述规则,下面的标识符是合法的:a,x1,a,x1,a,x1,a,x1,_fout_fout_fout_fout,b4c,High,,b4c,High,,b4c,High,,b4c,High,_x_y_x_y_x_y_x_y而下面则是不合法的标识符:5a,5a,5a,5a,#mod#mod#mod#mod,,,,β,,,,b+cb+cb+cb+c,.,.,.,.objobjobjobj第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•注意:①在CCCC语言的标识符中,大写字母和小写字母是有区别的,如ABCABCABCABC、AbcAbcAbcAbc和abcabcabcabc分别表示了三个不同的标识符②对于标识符的长度,CCCC语言本身未作限制,取决于编译系统。一般编译系统规定前8888个字符有效,如果长于8888个字符,多余的字符将不被识别③标识符用来为常量、变量、数组、函数及类型等取名第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•(2)(2)(2)(2)保留字•保留字又称关键字,是CCCC语言中具有特定含义的一些单词•ANSICANSICANSICANSIC规定的保留字共有32323232个:whilevolatilevoidunsigneduniontypedefswitchstructstaticsizeofsignedshortreturnregisterlongintifgotoforfloatexternenumelsedoubledodefaultcontinueconstcharcasebreakauto第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•(3)(3)(3)(3)运算符运算符是用来表示某种运算的符号,C,C,C,C语言有44444444个运算符,15151515种优先级和2222种结合性。•(4)(4)(4)(4)分隔符分隔符是用来分隔变量、数据、表达式等多个单词的符号。CCCC语言中常用的分隔符是空格、逗号和换行符等。第一章第一章第一章第一章CCCC程序实例程序实例程序实例程序实例•1.3C1.3C1.3C1.3C程序的上机操作从编写好一个CCCC程序到完成运行的基本过程如图所示,包含以下几个步骤:开始编辑编译有错?无链接执行结果正确?结束正确可执行程序f.exe有源程序f.c或f.c