《C语言程序设计项目式教程(含实训与试题)(第2版)》课件 项目二 程序设计基础知识_第1页
《C语言程序设计项目式教程(含实训与试题)(第2版)》课件 项目二 程序设计基础知识_第2页
《C语言程序设计项目式教程(含实训与试题)(第2版)》课件 项目二 程序设计基础知识_第3页
《C语言程序设计项目式教程(含实训与试题)(第2版)》课件 项目二 程序设计基础知识_第4页
《C语言程序设计项目式教程(含实训与试题)(第2版)》课件 项目二 程序设计基础知识_第5页
已阅读5页,还剩219页未读 继续免费阅读

下载本文档

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

文档简介

项目二程序设计基础知识第一讲C程序基础知识概述C语言程序设计任务驱动式教程1、程序宏观框架结构______________、______________。2、程序编译之前的准备工作,以_______开头。3、函数组包括______、________和____________。4、函数是构成C语言程序的__________________。5、函数组中有________________个主函数main()。6、程序的执行以______________为核心展开。7、单行注释的起始符号__________。思考与习题导学【问题1】什么是关键字,C语言的关键字共有多少个?【问题2】C语言中什么是变量、什么是常量?

思考程序设计基础知识——引例项目二下面我们首先来看一个简单的C程序:#include<stdio.h> /*编译预处理指令*/intmain() /*主函数的函数头*/{ /*函数体的开始标记*/ inta,b,c; /*定义3个整型变量*/

printf("请输入a、b的值:\n");scanf("%d%d",&a,&b); /*运行程序时,分别为a,b输入整数值*/ c=a+b; /*计算a+b的值,将结果赋值给c*/ printf("a=%d,b=%d,c=%d\n",a,b,c); /*依次输出a,b,c的值*/ return0; /*程序返回值0*/} /*函数的结束标记*/由该程序可以看出,C程序中主要包括了关键字、变量、常量、运算符等。关键字

变量常量运算符运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换任务一C程序基础知识概述-----关键字C语言中规定具有特别意义的字符串称为关键字,亦称保留字。C语言的关键字共有37个,如表所示。chardoubleenumfloatintlongshortsignedstructunionunsignedvoidfordowhilebreakcontinueifelsegotoswitchcasedefaultreturnautoexternregisterstaticconstsizeoftypedefvolatileinlinerestrict_Bool_Complex_Imaginary

任务一C程序基础知识概述-----关键字总体而言,C语言中的关键字大致可以分为以下几类:1数据类型说明符,如整型int,字符型char等。2语句定义符,如选择结构中的if、else,循环结构中的for、while、do等。3存储类型关键字,如声明自动变量的auto,声明静态变量的static等。4其他关键字,如声明常量的const等。任务一C程序基础知识概述-----变量与常量所谓变量,是指程序运行过程中其值可以改变的量,如上例中的a,b,c。所谓常量,是指程序运行过程中其值不变的量,如上例中的0。稍后会对C语言中的常量和变量进行更为详细的解释。任务一C程序基础知识概述-----标识符所谓标识符,指的是编程人员在编写程序时自己规定的具有特定含义的词,用来标明设定的变量名、数组名、函数名等。在C语言中,标识符应遵循以下一些命名规则。1标识符只能由字母、下划线、数字组成,且第一个字符必须是字母或下划线,不能是数字。如str,_str1,str_2都是合法的标识符,但2str,2_str,&123,%lsso,M.Jack,-L2都是错误的标识符。2标识符区分英文字母大小写,如score和Score是两个不同的标识符。3标识符不能是C语言中的关键字。任务一C程序基础知识概述-----标识符由上述标识符的命名规则可知,下面的标识符名是合法的:name,x1,_name,NAME而下面的标识符名是不合法的:3s /*以数字开头*/s*T /*出现非法字符**/-3x /*以减号开头*/bowy-1 /*出现非法字符-(减号)*/任务一C程序基础知识概述-----标识符

提示(1)理论上,C语言并不限制标识符的长度,但实际标识符的长度受不同C语言编译系统和机器系统的限制。例如,某些编译程序中规定标识符前八位有效,即当两个标识符前八位相同时,被认为是同一个标识符。(2)应尽量使标识符具备相应的意义,使其可以“见名知义”,从而提高程序的可读性。例如,学生名字变量可以命名为StuName。(3)在C程序中,只能使用英文字母(大写或小写)、数字及一些英文特殊符号(如!、#、&、%、,、|等)。在程序注释及字符串常量中,可以使用任意字符,包括汉字及中文标点。技能实训定义单精度浮点型变量hight和weight,代表身高和体重,从键盘上输入身高和体重,然后将其值显示在屏幕上。练一练C程序基础知识概述任务一/*本程序从键盘上输入两个变量的值,然后显示两个变量的值*/#include<stdio.h>voidmain(){floathight,weight; scanf("%f%f",&hight,&weight); //输入两个值到变量中去

printf("您好:\n"); //输出固定的字符串

printf("您的身高是:%f\n",hight);

);//输出变量hight的值 printf("您的体重是:%f\n",weight);//输出变量weight的值

//printf("%f,%f\n",hight,weight);//一次将两个变量的值输出}技能实训定义单精度浮点型变量hight和weight,代表身高和体重,从键盘上输入身高和体重,然后将其值显示在屏幕上。编程实现下列图案:练一练C程序基础知识概述任务一学习总结答一答【问题1】什么是关键字,C语言的关键字共有多少个?【问题2】C语言中什么是变量、什么是常量?【问题3】C语言中什么是标识符以及标识符的命名规则?任务一C程序基础知识概述感谢观看!项目二程序设计基础知识第二讲数据类型C语言程序设计任务驱动式教程1、什么是关键字?2、#include<stdio.h>这是什么含义?3、关键字大致可以分为哪几类?4、在C语言中,标识符应遵循以下一些命名规则是什么?5、基本数据类型包括哪些?6、字符型数据存放的是该字符所对应的___________。7、字符型数据进行运算时按照所对应__________进行运算。8、单精度浮点型的英语符合____________。9、双精度浮点型的英语符合____________。10、短整型的英语符合____________。思考与习题导学【问题1】在C程序中,常用的基本数据类型有哪些?【问题2】字符型数据是如何进行运算的?

思考问题导入问题导入数据类型-----引例任务二基本数据类型#include<stdio.h> voidmain() {floatr,area; printf("请输入半径:");scanf("%f",&r); area=3.14*r*r; printf("该圆的面积为:%f.\n",area);}计算并输出半径为r的圆的面积。定义两个浮点型变量r,area整型浮点型字符型a=3,b=4,c=5,d=1.2,e=2.3444444,f=-12.34,请采用正确的数据类型输出abcdef的值。运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换任务二数据类型在C语言中,为了指明每个变量、函数可存储什么类型的数据,以及可以进行哪些运算或操作,系统提供了多种数据类型。数据类型不同,其在内存中占用的存储空间大小也有所不同。在C语言中,数据类型可分为四类,它们分别是基本类型、构造类型、指针类型和空类型,如图所示。其中,基本类型又可细分为整型、实型、字符型和枚举型;构造类型包括数组类型、结构体类型和共用体类型。C数据类型基本类型构造类型指针类型(*)空类型void定义类型typedef字符类型char枚举类型enum整型实型单精度型float双精度型double数组[]结构体struct共用体union短整型short长整型long整型int任务二数据类型——整型名称符号存储空间数的范围短整型short2字节-215~+215-1基本整型int2字节-215~+215-14字节-231~+231-1长整型long4字节-231~+231-1无符号短整型unsignedshort2字节0~216-1无符号基本整型unsignedint2字节0~216-14字节0~232-1无符号长整型unsignedlong4字节0~232-1任务二数据类型——浮点型名称符号存储空间有效数字数的绝对值范围单精度浮点型float4字节6~73.4×10-38~3.4×1038双精度浮点型double8字节15~161.7×10-308~1.7×10308任务二数据类型——字符型名称符号存储空间字符型char1节字符型数据存放的是该字符所对应的ASCII码值(一个整数)。字符型数据进行运算时按照所对应ASCII码值进行运算。技能实训如何使用C语言来表示这些数据呢?练一练数据类型任务二技能实训你知道它们分别属于什么样的数据类型吗?练一练数据类型任务二技能实训从键盘输入变量a、b的值,分别计算a+b、a–b,a*b,a/b的值,将计算结果分别存放在变量x、y、z、w中,最后输出计算结果。a=3,b=4,c=5,d=1.2,e=2.3444444,f=-12.34,请采用正确的数据类型输出abcdef的值。练一练数据类型任务二#include<stdio.h> voidmain() {floatd,f;inta,b,c;

doublee;printf("请输入a-f:");scanf("%f%f",&d,&f); scanf("%d%d%d",&a,&b,&c);scanf("%lf",&e);printf("a=%fb=%fc=%d.\n",a,b,c);printf("d=%ff=%f.\n",d,f); printf("e=%f.\n",e);}#include<stdio.h> voidmain() {floatd,f;inta,b,c; doublee;printf("请输入a-f:");scanf("%d%d%d%f%f%lf",&a,&b,&c,&d,&f,&e); printf("a=%fb=%fc=%dd=%ff=%f.e=%f.\n",a,b,c,d,f,e);printf("d=%ff=%f.\n",d,f); }#include<stdio.h> voidmain() {floaty,x,e,s;

printf("请输入yxe:");scanf(“%f%f%f",&y,&x,&e);

s=(y+x+e)/3;printf(“s=%f\n",s);}#include<stdio.h> voidmain() {floatd,f; inta,b,c; doublee;printf("请输入a-f:");scanf("%f%f",&d,&f); scanf("%d%d%d",&a,&b,&c);scanf("%lf",&e);printf("a=%fb=%fc=%d.\n",a,b,c);printf("d=%ff=%f.\n",d,f); printf("e=%f.\n",e);}学习总结答一答【问题1】在C程序中,常用的基本数据类型有哪些?【问题2】字符型数据是如何进行运算的?任务二数据类型感谢观看!项目二程序设计基础知识第三讲常量C语言程序设计任务驱动式教程运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换导学【问题1】什么是常量?【问题2】转义字符:\t、\b、\r、\n、\f分别具有什么含义?

思考问题导入符号常量是指用符号代表某个常量常量任务三常量又可以分为以下两种:0201直接常量:整型常量:12,0,-3;实型常量:4.6,-1.23;字符常量:'a','b'。符号常量:用标识符代表一个常量。常量通常用于给变量赋值,因此,使用它时无需事先声明,只要按规定书写即可。常见的常量包括整型常量、实型常量、字符型常量和符号常量等。常量-----直接常量任务三(1)整型常量整型常量即整常数,C语言中整型数据可以有以下三种表示形式:1十进制整数,如18、-175。2八进制整数。C语言中八进制以数字0开头,只能用0~7这8个数字组合表达,如0154对应的十进制数为1×82+5×81+4×80=108。3十六进制整数。C语言中十六进制以0x或0X开头,只能用0~9这十个数字及字母A~F组合表达。其中,A代表数值10,B代表数值11,依此类推,F代表数值15。如0x15F对应的十进制数为1×162+5×161+15×160=351。

提示在十六进制中,字母A~F可以使用大写形式,也可以使用a~f小写形式。常量-----直接常量任务三(1)整型常量十进制举例45,-8965,0,+887 45.0 八进制举例044,-0175 086 十六进制举例0x56、-0x4F 0xg5 合法非法合法非法合法非法长整型常量由常量值后跟L或l表示-456l1024L无符号整型常量由常量值后跟U或u表示458u458U-51u无符号长整型常量由常量值后跟LU,Lu,lU或lu表示48lu

非法(原因:小于0)常量-----直接常量任务三表示方式前置符号构成示例表示方式十进制无0~9、正负号65,-57十进制八进制00~7、正负号032,027,-033八进制十六进制0x或0X0~9,a~f(或A~F)、正负号0x101,0Xff十六进制(1)整型常量常量-----直接常量任务三(1)整型常量-----示例#include"stdio.h”intmain(){intx=1246,y=01246,z=0x1246;printf("x=%d,y=%d,z=%d\n",x,y,z);/*%d:以十进制格式符输出*/printf("x=%o,y=%o,z=%o\n",x,y,z);/*%o:以八进制格式符输出*/printf("x=%x,y=%x,z=%x\n",x,y,z);/*%x:以十六进制格式符输出*/return0;}常量-----直接常量任务三(2)实型常量实型数据指带小数的数值(实数),又称浮点数(因小数点是“浮动的”而得名)。C语言中实型常量只用十进制形式表示,但其表示方式也有两种:1直接十进制形式,如0.0013、-1482.5。2指数形式,通常用来表示一些比较大或者比较小的数值,格式为:实数部分+字母E或e+正负号+整数部分其中字母E或e表示十次方,正负号表示指数部分的符号,整数为幂的大小。字母E或e之前必须有数字,之后的数字必须为整数。例如,0.0013可表示为1.3e-3,-1482.5可表示为-1.4825e3。常量-----直接常量任务三(2)实型常量十进制小数形式由数字和小数点组成必须有小数点整数部分和小数部分为0时可以省略,但不可两者都省。例如:6.385-780.44.79120.等价于:0.79等价于:120.0实型常量的类型包括:double

双精度实型float

单精度实型longdouble长双精度实型所有的实型常量均视为double常量。float常量由常量值后跟f或F来表示6895.43F6.89543e3flongdouble常量由常量值后跟L或l来表示87.789L

常量-----直接常量任务三(2)实型常量指数形式绝对值很大或很小的数可写成指数形式,更显得直观、方便。0.0000066667写成6.6667×10-6

或0.66667×10-5以字母e或者E来代表以10为底的指数。0.0000066667写成6.6667e-6或0.66667E-5e或E的左边是数值部分,可以表示成整数或者小数形式,不能省略。e或E的右边是指数部分,必须是整数形式。3.0e4,60e-8,8.e+3,.45e-12e8,2.3e,6e7.8,.e6合法非法常量-----直接常量任务三(2)实型常量表示方式符号构成示例表示方式十进制小数小数点.0~9、正负号和小数点1.23,.23,-1.必须有唯一的小数点指数字母e或E0~9、正负号、e或E1.23e3,1.23E3字母e或E前必有数,e或E后必为整数常量-----直接常量任务三下列四个选项中,均是合法的实型常量的是——A、+2e-1-3e4.55e3B、-.91.2e-0-7.e8C、123e+14567+2e-1D、8e-4-5e+2-e3B常量-----直接常量任务三(3)字符型常量字符型常量包括字符常量、字符串常量和转义字符。字符常量1C语言中字符常量必须用单撇号(单引号)括起来,且单撇号中只能是单个字符。如'A'、'a'、'8'、'&'是正确的,'ab'是错误的。字符型数据在C语言中是以ASCII码形式存储的,字符常量的值就是其对应的ASCII码的值(见附录C)。如字符'a'的ASCII码值为97,'A'的ASCII码值为65。因为ASCII码值为整型,所以C语言中字符型数据与整型数据可以互用,例如,'a'-32相当于97-32,等于65,对应的字符为'A';同理,'A'+32为字符'a'。这也是字母大小写转换的一种方法。ASCII码字符表中共定义了128个字符,可分为:(1)控制字符:ASCII码值为0~31、127共计33个字符。(2)可显示字符:ASCII码值为32~126共计95个字符。常量-----直接常量任务三(3)字符型常量【注意】(1)注意字符数字('0'~'9')和数字(0~9)的含义和在计算机中的存储方式是截然不同的。(2)字符常量可以像整数一样在程序中参与相关的运算。例如:'a'-32; '8'-8; 执行结果:97-32=65执行结果:56-8=48【提问1】大写字母A~Z与对应小写字母a~z的ASCII值之间的关系?【提问2】数字字符0~9对应的ASCII值是多少?常量-----直接常量任务三(3)字符型常量字符串常量2除单个字符外,C语言还可以处理多个字符组成的常量,称为字符串常量。字符串常量是一对双撇号(双引号)括起来的一个或多个字符,例如,"A","China","Howareyou!"等。C语言中存储字符串常量时,系统会在字符串的末尾自动加一个'\0'作为字符串的结束标志。例如,字符串常量"China"在内存中的存储形式如图所示。

提示字符'A'和字符串"A"是不同的。C语言中规定字符串必须有结束标志,结束标志为字符'\0'(其ASCII值为0)。因此,字符串"A"实际上包含两个字符:'A'与'\0',占2个字节,而字符'A'只占1个字节。常量-----直接常量任务三(3)字符型常量转义字符3C语言中还有一类特殊字符,称为转义字符,以“\”开头,后跟一个字符。转义字符通常用来表示一些控制代码和功能定义,例如“printf("你好,C语言!\n");”中,“\n”表示换行。字符型常量实例:'a'、'B'、'9'、'*'直接字符常量'\n''\017''\x01'回车换行☼☺'\'''\"''\\'单引号双引号反斜杠常量-----直接常量——字符型常量任务三转义字符3转义字符'\xhh'xhh:1~2位十六进制数的ASCII码。转义字符: ‘\141’转换为十进制数:

1*82+4*81+1*80=97对应的字符:

'a'结论: ‘\141’等价于'a'转义字符:

'\x61'转换为十进制数:

6*161+1*160=97对应的字符: 'a'结论: ‘\x61’等价于'a'转义字符'\ddd'ddd:1~3位八进制数的ASCII码。【注意】转义字符中只能使用小写字母。每个转义字符只能看作一个字符。实际上,任何一个字符都可以用转义字符\ddd或\xhh来表示,ddd和xhh分别为八进制和十六进制的ASCII码,例如,'\101'表示字母'A','\134'表示右斜杠,'\X0A'表示换行等。常量-----直接常量任务三转义字符3字符含义十进制ASCII码值\0(空字符)通常用作字符串结束标志0\a(警报字符)响铃报警7\b(退格字符)跳过\b前一个字符,移动到当前行的下一个位置8\t(水平制表字符)移动到当前行的下一个水平制表位置9\n(换行字符)换行10\v(垂直制表字符)移动到下一个垂直制表位置11\f(换页字符)移动到下一个逻辑页的初始位置12\r(回车字符)将\r后面的内容移动到当前行的初始位置13\"(双引号字符)产生双引号字符”34\'(单引号字符)产生单引号字符’39\?(问号字符)产生问号字符?63\\(反斜杠字符)产生反斜杠字符\92\ddd1~3位八进制ASCII码值所代表的字符根据计算确定\xhh1~2位十六进制ASCII码值所代表的字符根据计算确定【提问】回车符,换行符如何用字符常量表示?下列不合法的字符常量是——

A、’\n’B、’ab’C、’\101’D、’0’B常量-----字符常量任务三常量-----符号常量任务三(4)符号常量符号常量:也称为宏常量,用一个标识符来代表的常量。符号常量在使用前必须先用编译预处理命令“#define”进行定义。符号常量定义的一般格式为:

作用是:凡在源程序中发现该符号常量名时,都用其后指定的字符串来替换。符号常量名与字符串之间可以有多个空白字符。例如:作用是:把源程序中在该命令之后出现的所有符号常量PI均用3.14159替换。#define符号常量名

字符串#definePI3.14159常量-----符号常量任务三(4)符号常量57【注意】(1)为了与源程序中的变量名有所区别,变量标识符用小写字母表示,符号常量名一般使用大写英文字母表示。(2)符号常量定义的几种常见错误#definePI=3.14159#definePI3.14159;

(3)定义符号常量名时应考虑“见名知意”。使用符号常量的好处是:在需要改变一个符号常量值时能做到“一改全改”。符号常量名后面添加了“=”符号常量定义末尾添加了“;”常量-----符号常量-----示例任务三#include<stdio.h>#definePI3.1415926

/*使用符号常量表示圆周率*/intmain(){ doubler,l,s; /*定义半径r,周长l和面积s*/ printf(“请输入圆的半径:”); /*输出提示语*/ scanf("%lf",&r); /*输入半径r的值*/ l=2*PI*r; /*计算周长l*/ s=PI*r*r; /*计算面积s*/ printf(“圆的周长为%f,圆的面积为%f\n”,l,s);

/*输出周长l和面积s*/ return0; /*程序返回值0*/}例:已知圆的半径,求圆的周长和面积。常量-----符号常量任务三(4)符号常量在C语言中除了可用#define形式定义符号常量。格式:#define常量名常量值如:#defineMAX10#defineMIN0#defineDOLLARtoRMB6.82652也可以用const关键字来定义符号常量格式:const数据类型常量名=常量值如:constintMAX=10;constintMIN=0;constdoubleDOLLARtoRMB=6.82652;const类型修饰符任务四用const修饰的标识符为常量。const常量只能在定义时赋初值,不能在程序中改变其值。例如: constfloatpi=3.14159; pi=3.14;使用#define定义的符号常量或const常量的优点:代替源程序中多次出现的数字或字符串,可以提高程序的可读性和可维护性。#define定义的符号常量和const常量的区别在于:const常量有数据类型,而符号常量没有数据类型。编译器对const常量能够进行类型检查,而对符号常量则只进行字符串替换,不进行类型检查,字符串替换时极易产生意想不到的错误。常量-----符号常量-----示例任务三#include<stdio.h>constdoublePI=3.1415926; /*使用符号常量表示圆周率*/intmain(){ doubler,l,s; /*定义半径r,周长l和面积s*/ printf("请输入圆的半径:"); /*输出提示语*/ scanf("%lf",&r); /*输入半径r的值*/ l=2*PI*r; /*计算周长l*/ s=PI*r*r; /*计算面积s*/ printf("圆的周长为%f,圆的面积为%f\n",l,s); /*输出周长l和面积s*/ return0; /*程序返回值0*/}例:已知圆的半径,求圆的周长和面积。常量-----枚举常量任务三编程处理实际问题时,存在一些变量,它们的取值被限定在一个有限的范围内。例如:性别的变量只有“男”和“女”两种取值。月份的变量只有12个不同的取值。把这些量定义为字符型、整型或其它类型都不是很合理,为此C语言中引入了一种新的数据类型——枚举类型。枚举类型用关键字enum来定义这种类型。例如: enumsex{male,female};为什么引入枚举类型?如何定义枚举类型?大括号内的标识符均为整型常量,称为枚举常量。第1个标识符的值为0,第2个标识符的值为1,以后依次递增1。枚举类型sex2种可能的取值:male和female01技能实训在编程处理物理力学相关运算时,常将重力加速度G定义为符号常量,试用符号常量的方式编程计算重力。

注:重力的计算公式:G=mg,(式中m:质量;g=9.8牛顿/千克,在粗略计算时也可取g=10牛顿/千克)。练一练常量任务三技能实训在编程处理物理力学相关运算时,常将重力加速度G定义为符号常量,试用符号常量的方式编程计算重力。

注:重力的计算公式:G=mg,(式中m:质量;g=9.8牛顿/千克,在粗略计算时也可取g=10牛顿/千克)。2.设球半径为r、球体积为v、球表面积为f,球体积和球表面积的计算公式如下:练一练常量任务三#include<stdio.h>#definePI3.14159 voidmain(){ intr; floatv,f;

r=2; v=4.0*PI*r*r*r/3.0; f=4.0*PI*r*r; printf("体积为:%f,表面积为:%f\n",v,f); }学习总结答一答【问题1】什么是常量?【问题2】转义字符:\t、\b、\r、\n、\f分别具有什么含义?【问题3】字符串常量“Howareyou?\n”的字符串长度为

个字节,它占用的存储空间为

个字节。【问题4】判断下列常量表示正确与否?任务三常量整型常量:32768、037、081、0x4f、0xAH浮点型常量:.124、3.0、1e3、2.3E1.5字符型常量:'a'、'101'、65、'\x21'感谢观看!/cup/?sort=students_count&second_category_id=3蓝桥杯项目二程序设计基础知识第四讲变量C语言程序设计任务驱动式教程运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换导学【问题1】什么是变量以及变量的分类?【问题2】简要说明变量的定义与初始化的语法形式?

思考问题导入如何使用C语言来表示价钱呢?变量变量任务四变量是程序运行过程中其值可以改变的量。变量有三个属性,包括变量名、变量值和存储空间,如图所示。1变量名,即变量的名字,是用户定义的标识符,如图中的a就是变量名。2存储空间,每个变量在内存中都占用一定的存储单元,存储空间的大小由变量的数据类型决定。3变量值,即存储空间中所存放的变量的值,如图中的3即为变量值。变量的声明与初始化任务四721.变量的声明变量必须遵循“先定义,后使用”的原则。变量定义语句的形式如下:

类型

变量名1[,变量名2,…,变量名n];方括号内的内容是可选项。可以同时声明多个相同类型的变量,它们之间用逗号分隔。intnum; unsignedintarea; longsum; charsex; floatscore1,score2;

doubletotal; 定义num为整型变量定义area为无符号整型变量定义sum为长整型变量定义sex为字符型变量定义score1和score2均为单精度浮点型变量定义total为双精度浮点型变量存储单元变量num变量的声明与初始化任务四2.变量的初始化变量在内存中占据一定的存储单元,存储单元中存放变量的值。C语言允许定义变量的同时对变量进行初始化,即对变量赋初值,其形式如下:

类型

变量名1=常量1[,变量名2=常量2,…,变量名n=常量n];

longsum=0; charsex='M'; 同时声明多个相同类型的变量并初始化,它们之间用逗号分隔。floatscore1=90.5,score2=85.5;通过赋值的方法将数据值赋值给变量或改变变量的值。score1=94.0;定义sum为长整型变量,初值为0定义sex为字符型变量,初值为'M'score1的初值为90.5,score2的初值为85.5修改变量score1的值为94.00存储单元变量sum变量的声明与初始化任务四【注意】(1)相同类型变量可以定义在一行,也可以定义在多行。例如:等价于:(2)类型和变量名之间至少要加一个空格。(3)变量的定义同时可以为变量赋初值。例如:也可改写为两条语句:(4)对多个相同类型的变量赋同一个初值,不能写成如此形式:错误原因:变量b和c是没有定义。inta,b,c;inta;intb;intc;intnum=3;intnum;num=3;inta=b=c=3; 下面四个选项中,不正确的变量说明是____A.unsignedintui;B.shortintg;C.doubleintA;D.intp,j,k;C变量的声明与初始化任务四变量的类型任务四变量是指在程序运行过程中其值可以被改变的某个标识符。C语言中的变量可以分为以下几种类型,如图所示。变量的类型-----整型变量任务四有三种整型变量:(1)基本整型:int(2)短整型:shortint或short(3)长整型:longint或long每一种变量又可定义为:“无符号”(unsigned)类型“有符号”(signed)类型如果给整型变量所赋的值超过了该变量类型的取值范围,那么就会因为发生类型溢出。【思考】假设当前int类型变量在内存中占4个字节,那么int类型变量的允许值范围为:

-2147483648~2147483647,如果在最大值的基础上再加1,会出现什么情况呢?变量的类型-----整型变量任务四【程序】整型数据溢出#include<stdio.h>intmain(){ shorta,b; /*定义两个短整型变量a和b*/ a=32767; /*将值32767赋给变量a*/ b=a+1; /*将a的值加1后赋给变量b*/ printf("a=%d,b=%d\n",a,b); /*输出a和b的值*/ return0; /*函数返回值*/}程序运行后输出:注:程序此时就发生“溢出”,但运行时并不报错。它好像汽车的里程表一样,达到最大值以后,又从最小值开始计数。变量的类型-----实型变量任务四79实型变量可分为:单精度(float)双精度(double)长双精度型(longdouble)(1)实型数据在内存中的存放形式对于实型数据,无论小数表示形式还是指数表示形式,在计算机内部都用浮点方式来实现存储。变量的类型-----实型变量任务四(2)实型变量数据的舍入误差【程序】实型变量数据的舍入误差#include<stdio.h>intmain(){

floatf1;/*定义单精度型变量f1*/ doublef2; /*定义双精度型变量f2*/

f1=1234567.95789; /*将值1234567.95789赋给变量f1*/

f2=1234567.95789; /*将值1234567.95789赋给变量f2*/ printf(“f1=%f,

f2=%f\n”,f1,f2); /*输出变量f1、f2的值*/ return0; /*函数返回值0*/}程序运行后输出:float型数据提供6位有效数字

double型数据提供15位有效数字变量的类型-----字符型变量任务四字符型变量只能存放一个字符,不可以存放字符串。字符数据是以ASCII码存储,每个字符都有一个等价的整型值与其相对应。例如,对于字符'A',内存中存储的是其ASCII码65的二进制值,存储形式与int型数65类似,只是在内存中所占字节数不同而已。char型数据占1个字节,而int型数据在32位环境下占4个字节。字符‘A’ASCII码值:65整型65占1个字节占4个字节变量的类型-----字符型变量任务四【程序】

按字符型和整型两种格式输出字符#include<stdio.h>intmain(){charch='A';printf("%c,%d\n",ch,ch);return0;}程序运行后输出:A,65visualstudiocode变量的类型-----指针变量任务四

指针又称地址,指针变量即存放地址的变量。变量的三要素是变量名、变量值与变量地址。而变量值与变量地址是两个不同的概念,变量在内存所占的存储单元中存放的数据称为变量的值;变量在内存所占的存储单元的首地址称为变量的地址。变量的地址只可以存储在指针变量中,通过指针变量来引用地址中的数据。指针变量与其它变量一样,也要先定义后使用。指针变量定义的一般形式:

数据类型*指针变量名;变量的类型-----指针变量任务四【例】输出变量与指针变量的值。#include<stdio.h>

intmain(){ inta=10;/*a的值为10,变量a的内存地址编号为1244996*/ int*p;/*定义存放整型变量地址的指针变量p*/ p=&a;/*将整型变量a的地址送给指针变量p*/ printf("a=%d\np=%u\n",a,p);/*分别打印出变量a和指针变量p中的值*/ return0;}技能实训将小写字母转换为大写字母后,再以字符型和整型两种格式输出。练一练技能实训任务四技能实训2.查阅sizeof相关知识编程实现:显示每种数据类型所占内存空间的大小。练一练技能实训任务四技能实训2.查阅sizeof相关知识编程实现:显示每种数据类型所占内存空间的大小。练一练技能实训任务四#include<stdio.h>intmain(){printf("char%d\n",sizeof(char));printf("int%d\n",sizeof(int));printf("short %d\n",sizeof(short));printf("long %d\n",sizeof(long));printf("float %d\n",sizeof(float));printf("double%d\n",sizeof(double));return0;}学习总结答一答【问题1】什么是变量以及变量的分类?【问题2】简要说明变量的定义与初始化的语法形式?任务四学习总结感谢观看!项目二程序设计基础知识第五讲运算符和表达式-算术运算符及表达式C语言程序设计任务驱动式教程运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换问题导入运算符和表达式任务五按运算符的性质分类:算术运算符、关系运算符、逻辑运算符、赋值运算符、……。按操作数的个数分类:单目运算符、双目运算符和三目运算符。运算符+运算对象(操作数)=表达式运算对象可以是常量、变量或子表达式。运算符和表达式-----算术运算符及表达式任务五1.算术运算符及表达式运算符和表达式-----算术运算符任务五1.算术运算符及表达式运算符和表达式-----算术运算符任务五运算符类型运算含义-单目-x取负值*双目x*y乘法运算/双目x/y除法运算%双目x%y求余(模)运算-双目x-y减法运算+双目x+y加法运算1.算术运算符及表达式运算符和表达式-----算术运算符优先级别及结合性任务五运算符类型优先级结合性-单目高↓低从右向左*/%双目从左向右+-双目从左向右1.算术运算符及表达式运算符和表达式-----算术运算符任务五1.算术运算符及表达式运算符和表达式-----算术运算符任务五增1、减1运算符都是单目运算符,具有右结合性。操作数只能是变量,不能是常量或表达式。它们既可以作为前缀运算符,也可以作为后缀运算符。假设整型变量i=3表达式计算过程执行该语句后的res的值执行该语句后的i的值res=i++;

res=i;i=i+1;34res=i--;res=i;i=i-1;32res=++i;i=i+1;res=i;44res=--i;i=i-1;res=i;22i++:使用变量i之后,再自身加1。++i:先自身加1,再使用变量i。1.算术运算符及表达式运算符和表达式-----算术运算符任务五【注意】(1)常量和表达式是不能做增1、减1运算。例如:8++(m+n)++

(2)++和--的结合方向是“自右至左”。例如:inti=3;printf(“%d”,-i++);表达式-i++的值为:

-3变量i的值为:

41.算术运算符及表达式运算符和表达式-----算术运算符任务五【注意】(3)良好的程序设计风格提倡在一行语句中,一个变量最多只出现一次增1或减1运算。(i++)+(i++)+(i++);相同的表达式用不同的编译程序编译时,采用从左向右或从右向左不同的编译顺序,可能产生不同的运算结果。printf("%d,%d",i,i++);不良风格不良风格1.算术运算符及表达式运算符和表达式-----算术运算符任务五运算符含义举例结果说明+加法运算符a+ba与b的和从左向右-减法运算符a-ba与b的差从左向右*乘法运算符a*ba与b的乘积由于键盘无×号,乘法运算以*代替。从左向右/除法运算符a/ba除以b的商由于键盘无÷号,除法运算以/代替。注意:两个整数相除的结果为整数,如3/2的结果为1,舍去小数部分。从左向右%求余运算符a%ba除以b的余数求余运算%仅用于整数间的运算,若存在负整数,则余数的正负号与被除数相同,如-3%2的结果为-1。从左向右++自增1运算符a++或++a使a的值加1++和--为单目运算,且只能用于单一变量运算;从右向左++a和--a,是在使用a之前,先使a的值加1或减1;a++和a--,是在使用a之后,再使a的值加1或减1。--自减1运算符a--或--a使a的值减1运算符和表达式-----算术表达式任务五运算符和表达式-----算术表达式任务五

运算符和表达式-----赋值运算符和表达式任务五1.简单赋值运算符“=”双目运算符,具有右结合性。格式:

变量名=表达式【注意】(1)“=”可以连用。例如:

a=b=c=d=3;(2)赋值号的左边只能是变量,而不允许是算术表达式或常量。例如:

45+x=100 45=x+y

2.赋值运算符及表达式运算符和表达式-----赋值运算符和表达式任务五2.复合赋值运算符5个涉及算术运算:+=、-=、*=、/=、%=5个涉及位运算:&=、|=、^=、<<=、>>=复合赋值运算符的优点:书写简洁,产生的代码短,运行速度快。格式:

变量名复合赋值运算符

表达式例如:a+=3a=a+3x*=y+8 x=x*(y+8)等价于等价于运算符和表达式-----赋值运算符和表达式任务五2.复合赋值运算符例:已知a=12,求表达式a+=a-=a*a解:①②①求“a-=a*a”a=a-a*a

=12-144

=-132

②求“a+=-132”a=a+(-132)

=-132-132

=-264最后a的值为-264。运算符和表达式-----示例任务五分析程序输出结果。#include<stdio.h> voidmain() {inta=3,b=-5,i=2,j=2;printf("%d,%d,%d,%d,%d\n",a+b,a-b,a*b,a/b,a%b);printf("%d,%d,%d,%d\n",a++,b--,++i,--j);printf("%d,%d,%d,%d\n",a,b,i,j);}程序输出结果技能实训编程实现下列表达式。练一练技能实训任务五y=7+3x2+5x3z=x%2/5-x;技能实训任务五#include<stdio.h>intmain(){ intx,y; floatz; scanf("%d",&x); y=x%2/5-x;

z=7+3*x*x+5*x*x*x; printf("y=%d,z=%f\n",y,z); return0;}学习总结答一答【问题1】简要说明各运算符的优先级与结合性?【问题2】要如何获得一个三位的整数n的个、十、百位数码?任务一程序宏观框架结构学习总结答一答【问题1】简要说明各运算符的优先级与结合性?【问题2】要如何获得一个三位的整数n的个、十、百位数码?任务一程序宏观框架结构感谢观看!项目二程序设计基础知识第六讲运算符和表达式-关系运算C语言程序设计任务驱动式教程运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换C语言中合法的关系表达式如:8>9、‘a’==97、56<89、1>(‘a’<‘b’)、‘a’<‘b’>0。而这5个关系表达式的值分别为:0、1、1、0、1;这是为什么呢?问题导入运算符和表达式-----关系运算符及表达式任务六对两个算术表达式值的大小进行比较的运算称为关系运算,它实质上是一种比较运算。C语言中的6种关系运算符分别为:>(大于)>=(大于或等于)<(小于)<=(小于或等于)==(等于)!=(不等于)用关系运算符将表达式连接起来的式子称关系表达式。

“(a+b)大于c”可以这样表示:

(a+b)>c【问题2】关系表达式的结果是什么呢?运算符和表达式-----关系运算符及表达式任务六表达式的结果有两种:如果比较后关系式成立,则为“真”,用1表示。如果比较后关系式不成立,则为“假”,用0表示。(a+b)>c这一表达式的结果是什么呢?运算符和表达式-----关系运算符及表达式任务六

设a=5、b=6、c=7,

“(a+b)>c”是?

示例1

11>7

(a+b)>c结果”真”,表达式的值为1“(a+b)>c”的结果是1

设a=1、b=5、c=10,

“(a+b)>c”是?

示例2

6>10

(a+b)>c结果”假”,表达式的值为0“(a+b)>c”的结果是0表达式的结果与a、b、c的取值有关。运算符和表达式-----关系运算符及表达式任务六例如:a=3,b=2,c=1,计算表达式:(a>b)==c①先计算关系表达式a>b因为3>2成立(为真),所以结果用1表示。②然后再计算关系表达式1==c因为1==1成立(为真),所以结果用1表示。因此,表达式的值为1。运算符和表达式-----关系运算符及表达式任务六>(大于)>=(大于或等于)<(小于)<=(小于或等于)==(等于)!=(不等于)高矮

设r=3、“0<r<1”是?

示例1

1<10<r<1结果”假”,表达式的值为0

“0<r<1”的结果是0同级运算符自左向右0<r0<31优先级:<、<=、>、>=优先级相同==、!=优先级相同运算符和表达式----------关系运算符及表达式任务六【注意】(1)“==”为关系运算符中的等于运算符。“=”

为算术运算符中的赋值运算符。(2)数学中的表达式与C语言中的关系表达式的含义不尽相同。例如:已知a=3,b=2,c=1,a>b>c在数学中表达式的含义是“a大于b,同时b又大于c”。在关系表达式中的含义是:先计算关系表达式a>b,因3>2成立(为真),结果用1表示;然后再计算关系表达式1>c,因1>1不成立(为假),所以结果用0表示。运算符和表达式-----关系运算符及表达式任务六

购物金额达到199元。(设变量m代表“购物金额”)

应用1M>=199商品销售数量低于1万件。(设变量sp代表“销售数量”)M<10000应用2运算符和表达式-----关系运算符及表达式任务六例1:c>a+b//c>(a+b)

a>b!=c//(a>b)!=c

a==b<c

//a==(b<c)

a=b>c//a=(b>c)关系运算符结合方向:自左向右例2:

inta=3,b=2,c=1,d,f;

a>b

(a>b)==c

b+c<a

d=a>b

f=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0技能实训若a=0;b=0.5;x=0.3;则a<=x<=b的值为

。5>2>7>8在C中是允许的,值为inti=1,j=7,a;a=i+(j%4!=0);则a=‘a’>0结果为

;‘A’>100结果为

练一练技能实训任务六00210技能实训答一答任务六程序宏观框架结构5.字符变量ch的值是字母‘y’的关系表达式为:

_________________。6.整型变量n为偶数的关系表达式为:

__________________________--。charch;ch=‘y’;intn;n%2==07.编程:输入三角形的三边长,求三角形面积。已知三角形的三边长a、b、c,则该三角形的面积公式为:area=(s(s-a)(s-b)(s-c))1/2其中s=(a+b+c)/2。【例】从控制台输入你的体重和身高,根据体指数BMI公式(BMI=体重/身高的平方),计算自己的BMI值并输出。技能实训答一答任务六程序宏观框架结构5.字符变量ch的值是字母‘y’的关系表达式为:

_________________。6.整型变量n为偶数的关系表达式为:

__________________________--。charch;ch=‘y’;intn;n%2==07.编程:输入三角形的三边长,求三角形面积。已知三角形的三边长a、b、c,则该三角形的面积公式为:area=(s(s-a)(s-b)(s-c))1/2其中s=(a+b+c)/2。#include

<stdio.h>#include

<math.h>int

main(void){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n",a,b,c,s);printf("area=%7.2f\n",area);return

0;}学习总结答一答任务六程序宏观框架结构【问题1】6种关系运算符分别是哪6种?其优先级是怎样的?【问题2】关系运算符表达式的运算结果是怎样的呢?【问题3】“==”与“=”是一样的运算符吗?感谢观看!项目二程序设计基础知识第七讲运算符和表达式-逻辑运算符C语言程序设计任务驱动式教程运算符和表达式C程序基础知识概述数据类型常量变量目录数据类型转换问题导入101-199-6610在这一组数中,如何设计一表达式选取其中大于100或小于0的数?逻辑运算符逻辑表达式运算符和表达式-----逻辑运算符任务七逻辑运算符有3个:!(逻辑非)&&(逻辑与)||(逻辑或)用逻辑运算符将表达式连接起来,构成逻辑表达式。“x大于100或x小于0”可以这样表达(x>100)||(x<0)逻辑表达式的结果是什么呢?运算符和表达式-----逻辑运算符任务七逻辑表达式的结果有两种:关系式成立,则为“真”,用1表示。关系式不成立,则为“假”,用0表示。

(x>100)||(x<0)这一表达式的结果是什么呢?表达式的结果与a、b、c的取值有关。运算符和表达式-----逻辑运算符任务七设a是一种可能的状态,b是另一种可能的状态,不同的逻辑运算,得到的逻辑结果如何?(0表示假,1表示真)aba&&ba||b1111100101010000A!A1001运算符和表达式-----逻辑运算符任务七

设a=5、b=6、c=7,

“a>b&&c>a”是?

示例1

0&&1a>b&&c>a结果”假”,表达式的值为0“a>b&&c>a”的结果是0

示例2

设a=1、b=6、c=10,

“a==b||c>b”是?

0||1a==b||c>b结果”真”,表达式的值为1“a==b||c>b”的结果是1运算符和表达式-----逻辑运算符任务七

判断某一字符为大写字母。(设变量ch代表“字符”)应用1ch>=‘A’&&ch<=‘Z’判断某一年份是否为闰年。闰年的条件是:能被4整除但不能被100整除,或者能被400整除。(设变量year代表“年份”)year%4==0&&year%100!=0||year%400==0应用2

思考逻辑运算符中哪个运算符的优先级别最高?运算符和表达式-----逻辑运算符任务七运算符类型运算含义优先级结合性!单目!x逻辑非高↓低从右向左&&双目x&&y逻辑与从左向右||双目x||y逻辑或从左向右

逻辑运算符优先级与结合性

运算符和表达式任务七逻辑运算符中的“&&”和“||”的结合性为从左到右,“!”的结合性为从右到左。例如:a>c&&a<b 等效于(a>c)&&(a<b)a==b||x>y 等效于(a==b)||(x>y)a<b||!a 等效于(a<b)||(!a)a>c&&a<b+c 等效于(a>c)&&(a<(b+c))2<3

温馨提示

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

评论

0/150

提交评论