C 语言程设计项目一学生成绩的初步统计技术_第1页
C 语言程设计项目一学生成绩的初步统计技术_第2页
C 语言程设计项目一学生成绩的初步统计技术_第3页
C 语言程设计项目一学生成绩的初步统计技术_第4页
C 语言程设计项目一学生成绩的初步统计技术_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、http:/机电工程系 2015年9月20日7时01分,我国新型运载火箭长征六号在太原卫星发射中心点火发射,成功将20颗微小卫星送入太空。 http:/机电工程系 自动化生产线设备是典型的机电一体化产品,自动线设备的安装调试、检测维护及运行管理是机电类相关技术的典型职业范畴。http:/机电工程系http:/机电工程系http:/机电工程系http:/机电工程系程序与时代程序与时代http:/机电工程系http:/机电工程系项目要求项目要求 输入三个学生的成绩,求他们的总分及平均分。项目分析项目分析 第一必须要学会输入成绩及输出结果; 第二必须对输入的成绩进行总分及平均分的计算。 所以,将这一

2、项目分成二个任务介绍。 要注重解决问题的思路要注重解决问题的思路一、任务提出一、任务提出 一个班进行了一次考试,现要将几个学生的成绩输入电脑,并按要求输出。二、具体实现二、具体实现 #include stdio.h /文件预处理 main() / 函数名 /函数体开始 int x,y,z; /定义三个变量x,y,z printf(请输入三个学生的成绩); scanf(%d%d%d,&x,&y,&z); /*输入三个学生的成绩*/ printf(输出三个学生的成绩); printf(x=%d,y=%d,z=%dn,x,y,z); /输出三个变量x,y,z的值 /函数体结束

3、 程序运行结果:http:/机电工程系从上面这段程序可分析出:首先,要了解c语言的结构; 第二,要了解c语言的运行环境;第三,要懂得如何定义变量,输入输出语句。1、 c语言源程序的结构语言源程序的结构http:/机电工程系#include “stdio.h”int x,y;main( )x=1;y=x+2;printf(“x=%dny=%dn”,x,y);文件预处理文件预处理主函数主函数数据声明部分数据声明部分语句部分语句部分 点击【文件】【新建】,出现的对话框中用鼠标点击【文件】【c+source file】,然后更改文件所保存的目录(若需要更改),需入文件名,然后点击【确定】。输入程序。当

4、程序输入完毕后,点击 或按f7,进行编译和连接。如果没有错误,点击 或按ctrl+f5,进行运行,就能得出程序运行的结果。 http:/机电工程系相关知识相关知识 点击【文件】【新建】,自动进入新建状态。输入c语言源程序,当程序输入完毕后,点击【文件】【保存】,然后更改文件所保存的目录(若需要更改),需入文件名“.c”,然后点击【保存】。 或按f11,进行编译。如果没有错误,点击 或按f5,进行连接和运行,就能得出程序运行的结果。 http:/机电工程系相关知识相关知识 http:/机电工程系相关知识相关知识 数据类型基本类型构造类型构造类型指针类型空类型void引用类型整型整型浮点型浮点型字

5、符型(char)枚举型(enum)数组类型数组类型结构类型(结构类型(structstruct)共用类型(共用类型(unionunion)短整型(短整型(short intshort int)整型(整型( intint)长整型(长整型(long intlong int)单精度(单精度(floatfloat)双精度(双精度(doubledouble)长双精度(长双精度(long doublelong double)名称名称字节数字节数*描述描述范围范围*char1字符(character)或整数(integer ), 8位(bits)长有符号(有符号(signed): -128 到 127无符号

6、(无符号(unsigned): 0 到 255short int (short)2短整数(integer )16位(bits)长有符号(有符号(signed): -32768 到 32767无符号(无符号(unsigned): 0 到 65535long int (long)4长整数(integer )32位(bits)长有符号(有符号(signed):-2147483648 到 2147483647无符号(无符号(unsigned): 0 到 4294967295int4整数(integer)有符号有符号(signed): -2147483648 到 2147483647无符号(无符号(un

7、signed): 0 到 4294967295 float4浮点数(floating point number)3.4e + / - 38 (7 个数字(7digits)double8双精度浮点数(double precision floating point number)1.7e + / - 308 (15 digits)long double8长双精度浮点数(long double precision floating point number)1.7e + / - 308 (15 digits)bool1布尔boolean值。它只能是真(true)或假(false)两值之一。true

8、或 falsewchar_t2宽字符(wide character) 。这是为存储两字节(2 bytes) 长的国际字符而设计的类型。一个宽字符(1 wide characters)机电工程系http:/相关知识相关知识 c语言的数据形式:(常量和变量)http:/机电工程系【常量】 在程序运行中,其值不能被改变的量称为常量。 常量可分为: 整型常量。例1,23,-8。 实型常量。例 1.23,-9.8,.123,23.,0.0,2.23e-4(表示2.2310-4), 0.23e3(表示0.23103),0.23e-3(表示0.2310-3), 1.23e3(表示1.23103)。 字符常量

9、。例 a,+,8。 符号常量。例 #define pi 3.14。则pi是一个符号常量,其值为3.14, 它不能在程序中被改变。(请见任务三中的例1-15改)【变量】 所谓变量就是在程序运行过程中,其值可以被改变的量。 一个变量由两个要素组成。即变量名和变量值。 变量名:每一个变量都必须有一个名字,即变量名。变量名的命名规则: 由字母或下划线开头,后面跟字母、数字和下划线。其有效长度,随系 统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 c语言的变量名区分大小写。 即同一字母的大小写,被认为给是两个不同的变量。 例total、total、total是不同的变量名。 给变量名命名时,

10、最好遵循“见名知意”这一基本原则。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、 salary/gz(工资)。【变量定义与初始化】数据类型 变量名=初值,变量名2=初值2;例如:int x=1,y=2,z=3; float a=1.1,b=1.2,c=-0.1; char ch1=a,ch2=*;相关知识相关知识 (1) 标识符只能由下划线、数字09与大小写字母az,az构成。turbo c最多识别由32个字符组成的标识符,microsoft c最多识别由8个字符组成的标识符。 (2) 标识符的首个字符必须是字母或下划线,而不能是数字或其它符号。 (3) c语言中

11、大小写字母是敏感的,即在标识符中,大写字母和小写字母代表不同的意义。例如:name和name是两个不同的标识符。 (4) 不允许重名;(5) 系统预定义标识符,如预编译命令名(define、include)、系统函数名(scanf、printf、getchar、putchar)等可作为用户标识符,但建议不作它用。 (6) 尽量作到“见名知义”,例如max、score等,而不用象abc、x1、y2等标识符。 (7) 避免使用易混字符,如1、l、i;0、o;2、z等。 (8)先定义,后使用;http:/机电工程系相关知识相关知识 关于变量的命名规则:关于变量的命名规则:(9)一般要初始化,格式为:

12、 int i=1,j=2;(10)c语言中没有设置专门的变量来存放字符串,字符串如果要存放在变量中,要用字符数组来存放(11)标识符不能使用系统的关键字,因为关键字是系统保留的,它们已有特定的含义。 ansi c定义的关键字共32个: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do

13、if while static http:/机电工程系相关知识相关知识 关于变量的命名规则:关于变量的命名规则:printf()函数的一般格式printf(“格式字符串”,输出项表);1. 常用的格式字符串有:(1) 格式指示符: %d 带符号十进制整数。 %f带符号十进制小数形式(默认6位小数)。 %c输出一个字符。(2) 转义字符例1-1中的printf()函数中的”n”就是转义字符,输出时产生一个“换行”。(3) 普通字符除格式指示符和转义字符之外的其它字符。例1-1中的printf(“x=%d,y=%d,z=%dn”,x,y,z);的“x=”、“y=”、“z=”,格式字符串中的普通字符

14、,原样输出。在汉字系统环境下,允许使用汉字。2. 输出项表输出项表是可选的。在输出项中,列出要输出的任意类型的数据。如果要输出的数据不止一个,相邻2个之间用逗号分开。 http:/机电工程系(1)printf(“我是一个学生n”); /没有输出项(2)printf(“%d”,1+2); /输出1+2的值(3)printf(“a=%d b=%dn”,1,1+3); /输出1的值和1+3的值注意:printf(“%d %fn”,1.212,5) ; 是错误的。 #include “stdio.h” main() printf(“%d %fn”,1.234,6);相关知识相关知识 #include

15、stdio.h main() int x=1,y=2,z=3; /*定义x,y,z三个整型变量,并将它们的初值赋为 1,2,3*/float a=1.1,b=2.3; char c1=a,c2=b; /*定义c1,c2二个字符型变量,并将它们的初值赋为a和b*/printf(输出x,y,z的值n); /原样输出x,y,z的值后换行printf(x=%d,y=%d,z=%dn,x,y,z); /输出x=1,y=2,z=3后换行printf(输出a,b的值n); printf(a=%f,b=%fn,a,b); printf(输出c1,c2的值n); printf(c1=%c,c2=%cn,c1,c

16、2); /输出c1=a,c2=b后换行程序的运行结果为:http:/机电工程系相关知识相关知识 1、什么情况下加分号,什么情况下不加;2、分号是在英文半角状态下输入;3、分号错误会有什么样的提示;4、函数库也就是函数的集合,是别人把一些常用到的函数编完放到一个文件里,供程序员使用。同时把函数的接口放到头文件中。程序员用的时候把相应的头文件用#include加到程序里面就可以了(尖括号内填写文件名),例如#include。这样在链接的过程中,链接器就能顺藤摸瓜找到头文件再找到printf所在的库函数,将其源代码写到程序中,以备将来调用。所以说头文件是用户应用程序和函数库之间的桥梁和纽带。5、in

17、clude语句后面如果是尖括号,表示在默认的安装目录中查找头文件;如果是双引号,认为是用户定义的,寻找速度较慢。http:/机电工程系相关知识相关知识 注意:注意:http:/机电工程系常用的头文件如下图所示,一般放在安装文件夹中常用的头文件如下图所示,一般放在安装文件夹中常用的头文件如下图所示,一般放在安装文件夹中常用的头文件如下图所示,一般放在安装文件夹中1. scanf()函数的功能:从键盘上接收格式化输入。2. scanf()函数的一般格式: scanf(“格式字符串格式字符串”,输入项首地址表输入项首地址表); 格式字符串。格式字符串可以包含3种类型的字符:格式字符,空白字符(空格、

18、tab键和回车键)和非空白字符(又称普通字符)。 格式指示符与printf()函数的相似: %d,十进制带符号的整型数;%f,十进制带符号的实型数;%c,输入一个字符。 空白字符作为相邻2个输入数据的缺省分隔符。 非空白字符在输入数据时,必须原样一起输入。 输入项首地址表由若干个输入项首地址组成,相邻2个输入项地址之间用逗号分开。变量首地址的表示方法如下:&变量名变量名 其中“&”是地址运算符。例如,在例1-1中scanf(“%d%d%d”,&x,&y,&z)中的“&x”是指变量x在内存中的首地址。其功能是从键盘上输入3个整型数,分别存入&

19、;x,&y,&z起始的存储单元中,即输入三个整数分别赋给x,y,z。http:/机电工程系 scanf(“%d,%d”,&a,&b); scanf(“%d%d”,&a,&b); 分析:此题就是考查输入输出语句,注意整数输入/输入的格式用%d,字符变量的输入/输出格式用%c,同时注意输入语句中的两个数据之间用什么符号隔开,则在程序运行输入数据时也要用同样的符号隔开两个数据。http:/机电工程系#include stdio.hmain()char c1,c2;int x,y;printf(请输入a的成绩及代号:);scanf(%d:%c,&

20、x,&c1);printf(请输入b的成绩及代号:);scanf(%d:%c,&y,&c2);printf(输出a的代号及成绩:);printf(%c:%dn,c1,x);printf(输出b的代号及成绩:);printf(%c:%dn,c2,y);程序运行结果为:相关知识相关知识 1. 转义字符转义字符已经提到“n”的转义字符,是换行。常用的转义字符还有“t”,即横向跳出下一个输出区。【例1-5】用转义字符控制输出效果。#include stdio.hmain()printf(%dt%dt%dn”,1,2,3);程序运行结果如图所示http:/机电工程系n换行符new

21、liner回车carriage returnt跳跃符tabulationv垂直跳跃vertical tabulationbbackspacefpage feeda警告alert (beep)单引号single quotes ()双引号double quotes ()?问号question (?)反斜杠inverted slash ()机电工程系http:/ 另外可以数字ascii 码表示一个字符,这种表示方式是在反斜杠()之后加以8进制数或十六进制数表示的ascii 码。 在第一种(八进制octal)表示中,数字必需紧跟反斜杠(例如23或40)。 第二种(十六进制hexacedimal),必须

22、在数字之前写一个x字符(例如x20或x4a)。2格式化输出格式化输出前面,已经学过输出语句的一般格式为:printf(“格式字符串格式字符串”,输出项表输出项表);常用的格式字符串表示法如下:“%5d”表示输出十进制带符号的整数,其输出域的宽度为5位,若数超长,则按实际宽度输出;若不足,则输出数的左端补空格。“%ld”只是表示输出的是长整型。“%-5d” 表示输出十进制带符号的整数,其输出域的宽度为5位,若数超长,则按实际宽度输出;若不足,则输出数的右端补空格。“%6.1f” 表示输出十进制带符号的单、双精度实数,其输出域的宽度为6位,其中小数一位,若数超长,则按实际宽度输出;若不足,则输出数

23、的左端补空格。“%-7.2f” 表示输出十进制带符号的单、双精度实数,其输出域的宽度为7位,其中小数2位,若数超长,则按实际宽度输出;若不足,则输出数的右端补空格。http:/机电工程系http:/机电工程系#include main()int a=123;long b=123456;/*用四种不同格式,输出int型数据a的值*/printf(a=%d,a=%5d,a=%-5d,a=%2dn,a,a,a,a);/*用四种不同格式,输出long型数据b的值*/printf(b=%ld,b=%8ld,b=%-8ld,b=%2ldn,b,b,b,b);printf(a=%ldn,a); /用%ld输

24、出int型数据aprintf(b=%dn,b); /用%d输出long型数据b程序的运行结果如图所示。知识扩展知识扩展http:/机电工程系分析:分析: a=%d,按实际长度输出123。 a=%5d,由于123只占3列,所以前面空二个空格,输出a=123。 a=%-5d,由于123只占3列,同时有一个“-”号,所以右面空二个空格,输 出a=123。 a=%2d,由于123占3列,所以按实际宽度输出。即输出a=123。 b=%ld,按实际长度输出123456。即输出b=123456。 b=%8ld,由于123456只占6列,所以前面空二个空格,输出b=123456。 b=%-8ld,由于1234

25、56只占6列,同时有一个“-”号,所以右面空二个空格,输出b=123456。 b=%2ld,由于123456占6列,所以按实际宽度输出。即输出b=123456。 a=%ld,输出a=123。 b=%d,输出b=123456。http:/机电工程系#include main()float f=123.456;double d1,d2;d1=111111.11111111;d2=222222.22222222;printf(f=%f,f=%12f,f=%12.2f,f=%-12.2f,f=%.0f,f=%.2fn,f,f,f,f,f,f);printf(d1+d2=%fn,d1+d2);分析分析:

26、f=%f是将小数保留6位,所以输出f=123.456001(因为f是float型,由于精度的关系,最后的小数位出现了1,后面同理)。f=%12f是共输出12列,小数位还是是默认为6位,也就是6位小数,加上一个小数点,再加上整数位是3位,一共是10位,所以在左边加上二个空格,也就是输出f=123.456001。f=%12.2f表示一共输出12位,其中小数位是二位(4舍5入),加上一个小数点,再加上整数位是3位,一共是6位,所以在左边加上六个空格,也就是输出f=123.46。f=%-12.2f与前面一样,只是将空格放置在右边,也就是输出f=123.46。f=%.0f表示整数位原样输出,小数位是0位

27、,也就是输出f=123。f=%.2f表示整数位原样输出,小数位是2位(4舍5入),也就是输出f=123.46。程序结果如图所示。http:/机电工程系(1)单个字符的输出)单个字符的输出putchar()函数函数【例例1-8】putchar()函数的格式和使用方法。#include “stdio.h”main()char ch1,ch2,ch3;ch1=s;ch2=u;ch3=n;putchar(ch1); putchar(ch2); /输出ch1,ch2的值putchar(ch3); putchar(n); /输出ch3的值并换行putchar(ch1); putchar(n); /输出ch

28、1的值并换行putchar(u); putchar(n); /输出字符u并换行putchar(ch3); putchar(n); /输出ch3的值并换行程序运行如图所示。putchar()函数的格式为:putchar(ch);ch可以是一个字符变量或常量,也可以是一个转义字符。putchar()函数的作用是向终端输出一个字符。注意注意putchar()函数只能用于单个字符的输出,且一次只能输出一个字符。从功能角度来说,printf()函数完全可以替代putchar()函数;同样使用putchar()函数也需要在程序的开头加上编译预处理命令,即:#include “stdio.h”http:/机

29、电工程系【例例1-9】getchar()函数的格式和使用方法。#include “stdio.h”main()char ch;printf(“请输入一个字符”);ch=getchar(); /从键盘输入一个字符并赋给变量chputchar(ch);putchar(n); /输出ch的值并换行putchar(getchar(); /从键盘输入一个字符并输出putchar(n);getchar()函数的格式:getchar();getchar()函数的作用:从键盘输入一个字符。从功能的功度看,scanf()函数完全可以替代getchar()函数。注意注意getchar()函数只能用于单个字符的输入

30、,且一次只能输入一个字符。同样使用getchar()函数要在程序的开头加上编译预处理命令,即:#include “stdio.h”http:/机电工程系 字符串常量是由双引号括起来的一串字符。如“how do you do.”就是字符串常量,在c语言中,系统在每个字符串的最后自动加入一个字符0作为字符串结束的标志。请注意字符常量和字符串的区别,例如。a是一个字符常量,在内存中占一个字节;而”a”是字符串常量,占二个字节的存储空间,其中的一个字节用来存放0。两个连续的双引号“”也是一个字符常量,称作“空串”。但要占一个字节的存储空间来存放0。注意(1)字符串的结束符0占内存空间,但在测试字符串长

31、度时不计在内,也不输出。(2)0为字符串的结束符,但遇到0不一定是字符串的结束,可能是八进制数组成的转义字符常量,如字符串“abc067de”表示6个字符,并非为3个。【例例1-10】下列数据中,为字符串常量的是()。 (a)a (b)“house” (c) how do you do (d) $asd分析分析:字符串常量是用一对双引号括起来的字符序列。答案为b。http:/机电工程系【例例1-10】若变量为float类型,要通过语句scanf(“%f%f%f”, &a, &b, &c);给a赋予10.0,b赋予22.0,c赋予33.0,则下列a、b、c、d四个答案中不

32、正确的为哪个。请大家将它写成一个完整的c语言,使得程序的运行结果是:a=10.0,b=10.0,c=10.0a10 b10.0,22.0,33.0 22 33c10.0 d10 2222.0 33.0 33分析:(1)因为语句scanf(”%f%f%f”, &a, &b, &c)是要求我们在输入时,数与数之间要么是空格分隔开,要么是回车隔开,所以答案a、c、d均可,只有b错。若是以10.0,22.0,33.0的形式输入数据,则输入语句应写成:scanf(”%f ,%f,%f”, &a, &b, &c);(2)因为a,b,c的值为实型,所以定义的变

33、量要求是实型float ,输出的语句要注意保留小数一位。答案:b。完整的程序如下:#include “stdio.h”main()float a,b,c;scanf(“%f%f%f”, &a, &b, &c);printf(“a=%.1f,b= %.1fc=%.1f”, a, b, c);http:/机电工程系【例1-11】有一输入函数scanf(“%d”,k),则不能使float类型变量k得到正确数值的原因是什么?分析分析:因为k是实型变量,所以格式字符串应是“%f”,同时变量前边未加取地址符&。答案:答案:scanf(“%f”,&k)。【例例1-12

34、】阅读以下程序,当输入数据的形式为:12,34,正确的输出结果为( )。#include ”stdio.h”main() int a,b; scanf(“%d%d”, &a,&b); printf(“a+b=%dn”,a+b);aa+b=46 b有语法错误ca+b=12 d不确定值分析:因为输入语句scanf(“%d%d”, &a,&b)要求输入的二个数之间以空格或回车分隔,而题意中给出的二个数是以逗号分隔,所以导致b的值为一个不确定数,所以其值为不确定。 答案:dhttp:/机电工程系【例例1-13】有如下程序,若要求x1、x2、y1、y2的值分别为10、20

35、、a、b,正确的数据输入应该如何?请将这段程序后面补充printf()使之完整。int x1,x2;char y1,y2;scanf(“%d%d”,&x1,&x2);scanf(“%c%c”, &y1,&y2);a1020ab b1020abc1020 d1020abab分析: 因为x1,x2是整型变量,所以二个数之间可以空格分隔,也可以回车分隔;而y1,y2是字符型,则在输入完x2值后的任何字符(包括空格及回车,程序都认为是在为y1,y2输入值,所以答案a的错误是没将10、20分隔,答案b的错是输入完20后的空格,程序认为是给y1赋值,后面的a是给y2的值,即

36、y1的值为空格,y2的值为字符a;答案c的输入方法程序认为x1=10,x2=20,y1的值为回车,y2的值为字符a;只有答案d是正确的。 答案为d。参考程序参考程序:#include stdio.hmain()int x1,x2;char y1,y2;scanf(%d%d,&x1,&x2);scanf(%c%c,&y1,&y2);printf(x1=%d,x2=%dn,x1,x2);printf(y1=%c,y2=%cn,y1,y2);一、任务提出:一、任务提出:一个班进行了一次考试,现要将几个学生的成绩输入电脑,并计算他们的平均分及总分,然后按要求输出。二、具

37、体实现二、具体实现#include stdio.h main() int x,y,z; float sum,avg; /定义二个实型变量sum,avgprintf(请输入三个学生的成绩); scanf(%d%d%d,&x,&y,&z); /*输入三个学生的成绩*/sum=x+y+z; /将x+y+z的值赋给sumavg=sum/3; /将sum/3的值赋给avgprintf(请输出三个学生的总成绩及平均分为); /输出提示printf(sum=%.2f,avg=%.2fn,sum,avg); /输出二个变量sum及avg的值 程序的执行情况如下 :http:/机电工程系

38、首先,算术运算和算术表达式; 第二,赋值运算和赋值表达式;另外,还需掌握在本任务中没有体现,但在c程序中却经常要用到的c语言特有的运算和运算符。(一一) 算术运算与算术表达式算术运算与算术表达式1. 五种基本的算术运算符 +(加法)、-(减法)、*(乘法)、/(除法)、%(求余数)这里,需要特别提出的是:(1)关于除法运算/ c语言规定,两个整数相除,其商为整数,小数部分被舍弃。例如:5/2=2。 如果商为负数,则取整的方向随系统而异。但大多数的系统采取“向零取整”原则,换句话说,取其整数部分。例如:-5/3=-1。(2)关于求余数运算% 要求两侧的操作数均为整型数据,否则出错。例如:5%3=

39、2,3%5=3,-5%3=-2,-5%(-3)=-2。但是,5.2%3是语法错。http:/机电工程系2. 表达式和算术表达式(1)表达式的概念用运算符和括号将运算对象(常量、变量和函数)连接起来的、符合c语言语法规则的式子,称为表达式。单个常量、变量,可以看作是表达式的一种特例。将单个常量、变量构成的表达式称为简单表达式,其他表达式称之为复杂表达式。(2)算术表达式的概念表达式中的运算符都是算术运算符。例如:3+2*5、(x+y)/2+3、5%2+3都是算术表达式。3. 运算符的优先级与结合性(1)算术运算符的优先级是:先*,/,%,再+,-。(2)有括号的先做括号。http:/机电工程系三

40、、相关知识三、相关知识4. 数据类型转换http:/机电工程系高 double float long unsigned 低 int char,short例如: (double)x 等价于(double)(x) /将变量x的值转换成double型 (int)(x+y) /将x+y的结果转换成int型 (float)7/2 等价于(float)(7)/2 /将7转换成实型,再除以2(=3.5) (float)(7/2) /将7整除2的结果(3)转换成实型(3.0)相关知识相关知识 1. 赋值运算赋值符号“=”就是赋值运算符,它的作用是将一个表达式的值赋给一个变量。赋值运算符的一般形式为:变量=赋值

41、表达式2. 复合赋值运算复合赋值运算是c语言特有的一种运算。复合赋值运算的一般格式为:变量 复合运算符 表达式复合算术运算符有五种,分别是:+=,-=,*=,/=,%=http:/机电工程系例如:x=5 /将5赋给变量xx=6+7 /将6+7的值赋给变量x 5=x 是错误的x+y=z也是错误的。 x+=3 等价于 x=x+3 x+=5+8 等价于 x=x+(5+8) x*=y+2 等价于 x=x*(y+2) x/=x+y 等价于x=x/(x+y) x/=8 等价于x=x/8 x%=7 等价于 x=x%7 x%=(4-2) 等价于x=x%(4-2)相关知识相关知识 #include stdio.

42、hmain()int x,y,z; float a,b,c; /定义三个单精度型变时a,b,cx=1; /将1赋给变量x,即x的值为1y=2; z=3; a=1.1; /将1.1赋给变量a,即a的值为1.1b=2.1;c=3.5;x=x+y+z; /将x+y+z的值赋给变量x, x的值为(1+2+3),即x=6printf(x=%dn,x); y*=y+1; /将y*(y+1)赋给y, y=2*(2+1),即y=6printf(y=%dn,y); z=(int)a%(int)b; /z=1%2,即z=1printf(z=%dn,z); a+=a+b+c; /a=a+(a+b+c), a=1.1

43、+(1.1+2.1+3.5),即a=9.9printf(a=%fn,a); 程序执行情况如下:http:/机电工程系相关知识相关知识 1. 自增(+)、自减(-)运算作用:自增运算使单个变量的值增1,自减运算使单个变量的值减1.用法与运算规则自增、自减运算符都有两种用法:1) 前置运算运算符放在变量之前:+变量、-变量先使变量的值增(减)1,然后再以变化后的值参与其他支算,即先增减,后运算。 http:/机电工程系y=+x+2; /x先增1(=5),然后与2的和再赋给y(=7) printf(x=%d y=%dn,x,y); z=-x; /x先减1(=4),然后再赋给z(=4)printf(x

44、=%d z=%dn,x,z); -x; /x=x-1,即x=3printf(x=%dn,x); /输出x=3后换行#include stdio.hmain()int x=2,y,z;printf(x=%dn,x); y=+x; /x先增1(=3),然后再赋给y(=3) printf(x=%d y=%dn,x,y); +x; /x=x+1,即x=4printf(x=%dn,x);相关知识相关知识 #include stdio.hmain()int x=2,y,z;printf(x=%dn,x); y=x+; /先将x的值(2)赋给y(=2) ,然后x再自增(3) printf(x=%d y=%d

45、n,x,y); x+; /x=x+1,即x=4printf(x=%dn,x); y=(x+)+2; /先将x+2赋给y(=6),然后x再自增(5) printf(x=%d y=%dn,x,y); z=x-; /先将x的值(5)赋给z(=5),然后x再自减(4)printf(x=%d z=%dn,x,z); x-; /x=x-1,即x=3printf(x=%dn,x); http:/机电工程系自增、自减运算符不能用于常量和表达式。例如:5+、-8、+(a+b)都是错误的。相关知识相关知识 c语言提供一种用逗号运算符“,”连接起来的式子,称为逗号表达式。逗号运算符又称顺序求值运算符。(1) 一般形

46、式:表达式1,表达式2,表达式n.(2) 求解过程:自左至右,依次计算各表达式的值,“表达式n”的值即为整个逗号表达式的值。例如:逗号表达式“a=3*5,a*4”的值=60:先求解a=3*5,得,a=15;再求a*4=60,所以逗号表达式的值为60。又例如:逗号表达式“(a=2+1,a*5),a+8”的值=11,先求解a=2+1,得a=3,再求a*5=15;最后求解a+8=11,所以逗号表达式的值=11http:/机电工程系相关知识相关知识 【例1-19】输入圆半径,求圆的面积和周长。的值取3.14. 分析:因为根据圆半径,求圆的面积和周长,所以要定义三个变量,半径r,面积s和周长c;考虑到输入的圆半径可能会有小数,所以这三个变量不妨都定义为单精度型float。定义变量r,s,c输入变量rs=3.14*r*rc=2*3.14*r输出s,c机电工程系http:/#include stdio.hmain()float r,s,c;printf(请输入圆的半径r:);scanf(%f,&r);s=3.14*r*r;c=2*3.14*r;printf(圆的面积s为:%fn圆的周长c为%fn,s,c);流程图 #define pi 3.14 意思是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论