1、第2章 简单例子与数据表示,2.1 在屏幕上显示学生个人信息 2.2 计算学生成绩 2.3 圆球表面积与体积的计算,本章要点,C程序的基本结构 输入与输出函数的调用 变量的定义与使用 四则运算 赋值运算 常用的数学库函数,2.1 在屏幕上显示学生个人信息,【例2.1】 在屏幕上显示学生个人信息,包含学号、姓名。 /*输出学生个人信息*/ #include /*编译预处理*/ void main( ) /*主函数*/ printf(“学号:20100440023 姓名: 张景n”); /*调用printf函数在屏幕上输出内容*/ ,运行结果: 学号:20100440023 姓名: 张景,2.1
2、在屏幕上显示学生个人信息,/*输出学生个人信息*/ #include /*编译预处理*/ void main( ) /*主函数*/ printf(“学号:20100440023 姓名: 张景n”); /*调用printf函数在屏幕上输出内容*/ ,/* */之间为注释部分,一般是对程序或语句作一些辅助说明,2.1 在屏幕上显示学生个人信息,printf(“ ”);,学号:20100440023 姓名: 张景n,若程序中要使用printf函数,则必须在程序开头使用预编译 命令#include,此行无须在后面加分号。,2.1 在屏幕上显示学生个人信息,【例2.2】 在屏幕上分两行显示“This i
3、s my first program”和“I will learn it well.” #include void main( ) printf(“This is my first program.n”);printf(“I will learn it well.”); ,运行结果: This is my first program. I will learn it well.,2.2 计算学生成绩,上一节中学习了C语言程序的输出,本节学习C程序是如何进行四则运算 假设某学生大学语文82分,高等数学90分,大学英语74分,计算该学生三门课程的总分及平均分 。,2.2 计算学生成绩,/*计算学生
4、总分和平均成绩*/ #include void main( ) int ch,math,en,total,ave; ch=82; /* 给变量ch赋值*/math=90; /*给变量math赋值*/en=74; /*给变量en赋值*/total=ch+math+en; /* 计算三门课程总分*/ave=total/3; /*计算平均分数*/printf(“total=%d,ave=%dn”,total,ave); /* 输出总分和平均分*/ ,运行结果: total=246,ave=82,程序是按照自上而下的顺序依次执行,2.2 计算学生成绩,printf(“total=%d,ave=%dn”
5、 , total,ave);,2.2.2 常量与变量,值不能被改变的量称为常量 值可以被改变的量称为变量 上例中: ch=82; math=90; en=74; total=ch+math+en;,82,90,74等是常量 ch,math,en,total等则是变量,可以 对它们进行多次不一样的赋值,2.2.2 常量与变量,类型 常量的类型由自身的书写格式决定,不须预先说明。如整数82、90、-5是整型常量,1.6、-4.4属实型常量,整型常量和实型常量统称为数值型常量,a、y是字符型常量,2.2.2 常量与变量,类型 变量必须先通过定义,声明其类型后,才能使用。常用的数据类型有:int:整型
6、; long:长整型; float:单精度实型; double:双精度实型; char:字符型。,2.2.2 常量与变量,类型除了类型之外,每个变量还应该有一个名字,以方便被引用以及参与运算。变量的命名必须遵循标识符的命名规则。即只能由字母、数字和下划线组成,其中,第一个字符必须是字母或下划线。,2.2.2 常量与变量,【例2.4】 int r; /*定义整型变量r,用于存储整数*/ double s; /*定义实型变量s,用于存储实数*/ r=3; /*将3赋给变量r*/ s=3.14*r*r; /*将表达3.14*r*r运算结果赋值给变量s*/,2.2.2 常量与变量,定义变量的一般形式为
7、: 类型名 变量名列表; 多个变量名间应用逗号间隔,整个声明语句最后以分号结束。,定义变量时,变量名的选择最好能见名知义,如用 sum表示求和,用ave表示平均数。而且,C语言是 严格区分大小写的,即Sum与sum是两个不同的变量,不能混用。,2.2.2 常量与变量,练习2-3 以下哪些变量名是合法的,哪些是不 合法的? sum, average, Mr.Johne, Stu_nane, 3ku, BMW, _LiLin, %number, ab,2.2.3 算术运算和算术表达式,在C语言中,算术运算包括加、减、乘、除、求余和其他一些运算。其中,加、减、乘、除和求余都是双目运算(对应的运算符见
8、表2.1所示),所谓双目运算是指参与运算的过程需要两个操作数。,2.2.3 算术运算和算术表达式,表2.1 双目算术运算符列表,2.2.3 算术运算和算术表达式,加法、减法、乘法与数学中的运算相似. 需要注意的是: (1)如果除法的两个运算对象均为整数,则运算结果也为整数。如表达式9/5的值是1,1/4的值是0,-5/3的值是-1。即整数相除,结果将舍弃小数部分。 (2)求余运算%的运算对象要求必须为整型数据,它不能用于实型数据的运算。 例如: 3%5结果为3,22%4结果为2,而6.8%5是不正确的。 (3)五个算术运算符的结合方向均为自左向右。,2.2.3 算术运算和算术表达式,用算术运算
9、符和括号将运算对象连接起来的符合C语言语法规则的式子称为算术表达式,如例2.4中的3.14*r*r是一个算术表达式。运算对象可以是常量、变量、函数等。当一个表达式中有多个运算符时,首先就要考虑运算符的优先级,如果优先级相同,再考虑运算符的结合性。如表达式a+b*c,由于乘法的优先级高于加法,因此,先运算b*c,相当于a+(b*c)。如果表达式中的运算符优先级相同,则按结合方向处理,如a+b-c,加法与减法的优先级相同,则按结合方向自左向右依次运算。 +和-还可以作为正值运算符和负值运算符,这时,+和-作为单目运算符。,2.2.4 赋值运算与赋值表达式,在C语言中,“=”称为赋值运算符,其功能是
10、将“=”右边表达式的值赋给左边的变量。例如,在例2.4中的“r=3”。 用赋值运算符将一个变量和一个表达式(如:算术表达式)连接起来的式子称为赋值表达式。赋值表达式的一般形式是 变量=表达式; 如例2.4中的“r=3”和“s=3.14*r*r”都是赋值表达式。 注意:赋值运算符的左边必须是一个变量。,2.2.4 赋值运算与赋值表达式,由于赋值运算符的优先级很低,因此,对于赋值表达 式,先计算右侧的表达式的值,再将该值赋给左侧的变量。 例如,在例2.4中:r=3;s=3.14*r*r;执行语句“r=3;”是将3赋给变量r,于是变量r的值变成了3。执行语句“s=3.14*r*r;”,由于算术运算符
11、的优先级高于赋值运算符,因此,先做算术运算,再做赋值运算。先计算3.14*r*r,得到28.26,再将28.26赋值给实型变量s,需要注意的是,只有当变量r有具体值以后,才能参与运算。,2.2.4 赋值运算与赋值表达式,【例2.5】int a,b;a=b=6; 在以上程序片段中,变量a和b的值都为6。这是因为赋值运算的运算方向是从右到左的,即先计算“b=6”,将6赋值给变量b,再将“b=6”的值6,赋值给变量a。,赋值运算符的运算方向是从右到左的,2.2.4 赋值运算与赋值表达式,【例2.6】int c=10;double a=3, b=5,s1,s2;s1=b+c/a; 在例2.6中,表达式
12、s1=b+c/a;先做除法运算,由于被除数c为整型,除数a为实型,两个运算对象类型不一致,C语言规定,运算对象将自动进行类型转换,使二者具有相同的类型,然后再进行运算。在此式中,整型会先被转换成实型,于是c/a的值为3.333333,与b相加得8.333333,即为s1的值。,2.2.5 数据的输出,C语言的输入输出都是通过调用相应的函数来实现的。本节学习格式化输出函数printf,该函数在系统文件stdio.h中声明,因此在程序中若要使用printf函数,必须在程序顶部使用编译预处理命令#include。,2.2.5 数据的输出,printf函数的一般调用格式: printf(格式控制字符串
13、,输出参数列表); 例如: printf(“a=%d, b=%dn”,a,b);,2.2.5 数据的输出,(1)格式控制字符串。格式控制字符串必须用双引号括起来,表示输出参数的格式。其中,包含两种内容:普通字符和格式控制说明。 普通字符:普通字符即原样输出的字符。例如,语句printf(“a= ,b=n”);的输出结果是:a= ,b=双引号之间的部分将全部原样输出,并且在输出后回车换行。其中的n表示回车换行。,2.2.5 数据的输出, 格式控制说明:输出参数的格式是由以%开头的格式控制字符控制的,如%d, %f等。它的作用是将输出参数按照指定的格式输出。不同的数据类型应采用不同的格式控制字符。
14、常用的格式控制说明见表2.2。,2.2.5 数据的输出,表2.2 常用格式控制说明,2.2.5 数据的输出,例如: int a=3,b=5; printf(“a=%d ,b=%dn”,a,b); 输出结果是 a=3 ,b=5,2.2.5 数据的输出,(2)输出参数列表。 printf函数的输出参数列表是需要输出的数据,可以是变量或表达式,如果需输出多个对象,则各个输出对象之间用逗号隔开。 printf函数后半部分的输出参数列表与前半部分的格式控制说明必须在数据类型、个数和位置上一一对应。,printf(“total=%d,ave=%dn” , total,ave);,2.3 圆球表面积与体积的
15、计算,【例2.7】 从键盘输入圆球半径,计算球的表面积和体积并输出,其中,体积保留两位小数。已知球表面积计算公式:体积计算公式:,2.3 圆球表面积与体积的计算,#include void main( ) int r;double s,v;printf(“请输入半径:”); /*在屏幕上显示提示信息*/scanf(“%d”, ,运行情况: 请输入半径:5 圆球表面积为:314.000000,体积为:523.33,建议每行只写一个语句,每行用若干个空格开头,使程序 呈“锯齿”形,以保持程序的层次感,这种形式会让程序的 结构清晰,对调试程序有很大帮助。,2.3.2 数据的输入,C语言的数据输入是通
16、过调用输入函数scanf来实现的。一般格式如下: scanf(格式控制字符串,地址列表);scanf函数的小括号内也分为两部分:其中,第一部分是格式控制字符串。第二部分的地址列表是由若干个地址组成的,可以是变量的地址,也可以是字符串的首地址。,2.3.2 数据的输入,格式控制字符串必须用双引号括起来,其中,包含两种内容:普通字符和格式控制说明。其中,格式控制说明用于指定读入数据的格式,它包含以%开头的格式控制字符,不同类型的数据采用不同的格式控制字符。常用的格式控制说明见表2.3。,2.3.2 数据的输入,2.3.2 数据的输入,变量的地址是通过在变量名前加“&”来实现的,“&”也称为地址运算
17、符,是单目运算符,作用是取出变量的地址。任何变量在定义时,都在内存中分配一定的存储空间,该存储空间的首地址即为该变量的地址。例如,语句“int a;”如果用VC+编译时系统自动在内存中分配4个字节的存储空间,用于存储a的值。,2.3.2 数据的输入,【例2.8】 从键盘上输入三个整数值,计算这三个数的平均值并输出(保留3位小数)。 #include void main( ) int a,b,c;double ave; /*由于平均数可能不是整数,因此需定义成实型*/printf(“Please input 3 numbers:“); /*输入提示*/scanf(“%d%d%d“, ,运行情况:
18、 Please input 3 numbers:3 6 10 The average is :6.333,2.3.2 数据的输入,&a、&b、&c分别表示变量a、b、c在内存中的地址,scanf函数的功能是将用户输入的数值分别存放在变量a、b、c的地址单元中,其中,a、b、c在内存中的地址是在程序编译连接阶段分配的。 “%d%d%d”表示要按十进制整数形式输入3个数据,并且输入的数据之间可以使用一个或多个空格间隔,如本例的数据输入方式为“3 5 6”。如若不然,直接输入356而不加空格分隔,系统会认为只输入了一个数据356,继续等待输入后两个数据。此外,也可以使用回车键或Tab键分隔输入的数据
19、。,2.3.2 数据的输入,需要说明的是,如果scanf函数的格式控制字符串中包含普通字符,那么在输入数据时,普通字符需依顺序原样输入。例如,将例2.8中的“scanf(“%d%d%d“,”,程序运行时就要按如下格式输入:a=3,b=5,c=6此时,格式控制字符串中出现的普通字符“a= ,b= ,c=”都必须原样输入,否则,就不能将正确的值输入给变量a、b和c,程序的运行结果就会出现错误。,2.3.3 常用数学库函数,C语言提供了许多已经编写好的函数,供用户直接调用,而无需用户自己编写代码,这些函数称为库函数(也称为标准函数)在程序中要调用库函数,一定要使用编译预处理命令“#include”将
20、与相应库函数相关的头文件包含到源文件中。例如,程序中需要调用scanf函数和printf函数,则在程序前面需要加“#include”;程序中需要调用数学库函数,则在程序前面需要加“#include”。,2.3.3 常用数学库函数,常用的数学库函数有: (1)指数函数exp(x):计算ex。如exp(1.2)的值是2.718282。 (2)绝对值函数fabs(x):计算。如fabs(-6.39)的值是6.39。 (3)以e为底的对数函数log(x):计算ln。如log(36.5)的值是3.583519。 (4)以10为底的对数函数log10(x):计算log10x。如log10(101.6) 的值是2.004321。 (5)幂函数pow(x, n):计算。如pow(1.2,2) 的值是1.44(即1.22)。 (6)平方根函数sqrt(x):计算。如sqrt(9.0)的值是3.0。,2.3.3 常用数学库函数,【例2.9】 从键盘输入圆球半径,计算球的体积并输出(保留3位小数)。要求半径是大于零的任意实数,调用数学库函数计算球的体积。 体积计算公式:,此例建议:课堂演示撰写程序,作业,习题5,6,