资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,网络与计算中心基础教研室,*,教师信息,主讲教师:黄庆凤,联系电话:,18971600826,E-mail:hqf-hust,3/5/2026,1,网络与计算中心基础教研室,教学资料与作业提交,登录教学网站:,202.114.18.8,从左边菜单进入作业系统:,在学生姓名栏填入:黄庆凤,在学生证号栏填入:,hqf,输入密码:,88888888,登录进入后查看提交的信息,C+,相关资料(包括课件、教学大纲、实验报告格式等)都在这里,从左边菜单进入,C+,语言:里面包含了上机实验内容,3/5/2026,2,网络与计算中心基础教研室,C+,程序设计,第一章,C+,基础知识,课程要求,课前请做好预习,保持课堂安静,头脑清醒,思维活跃,认真、,独立、按时,完成并提交作业,作业必须经,上机调试通过,重视上机实践,有效利用宝贵的上机时间,上机前必须先完成,实验预习报告,没有预习报告不能上机实验,上机考勤,3,次,缺席,平时成绩按不及格处理,发现上机时间,上网做与编程无关的事,,按缺席一次处理,实验教学分组管理,组长负责,目标是,一个都不能少。,3/5/2026,4,网络与计算中心基础教研室,计算机语言的基本体系结构,语言的基本体系结构,程序设计语言,3/5/2026,5,网络与计算中心基础教研室,本章将简要介绍,C+,中的数据类型及相关运算,以及常量、变量、表达式、语句等,最后介绍简单的输入输出方法。,3/5/2026,6,网络与计算中心基础教研室,第一章,C+,基础知识,1.3,C+,的词法单位,1.6,运算符和表达式,1.8,简单的输入输出,1.7,数组与字符数组,1.5,常量,1.4,C+,中的数据类型,1.2,一个,C+,程序实例,3/5/2026,7,网络与计算中心基础教研室,1.2,用,C+,语言编写程序,3/5/2026,8,网络与计算中心基础教研室,1,在屏幕上显示同学们好,!,例,2-1,在屏幕上显示短句,:,同学们好,!,3/5/2026,9,网络与计算中心基础教研室,1,在屏幕上显示同学们好,/1.cpp,注释文本,#include,编译预处理命令,using namespace std;,命名空间,void main(void),主函数,cout,“,同学们好,!n”;,语句结束,输出流对象 换行符,1.,程序由若干语句组成。,2.,语句由分号;结束,3.,任何程序都有主函数,主函数,main,()是程序的执行入口,程序体可能由若干函数组成,其中有且仅有一个主函数,main,(),,3/5/2026,10,网络与计算中心基础教研室,1.3 C+,的词法单位,1.,3.1,C+,的字符集,1.3.,2,关键字,1.3.3,标识符,(,ID,,,identifier,),1.3.4,标点符号,3/5/2026,11,网络与计算中心基础教研室,1.3.1 C+,的字符集,26,个,小写字母,abcdefghijklmnopqrstuvwxyz,26,个,大写字母,ABCDEFGHIJKLMNOPQRSTUVWXYZ,10,个,阿拉伯数字,0 1 2 3 4 5 6 7 8 9,其他符号,+-*/=,._:;?|!#%&(),空格,C+,语言基本字符:,3/5/2026,12,网络与计算中心基础教研室,1.3.2,关 键 字,关键字,(,keyword,),:,又称保留字。是由系统定义的具有特定含义的英文单词。,关键字不能另作它用,。,C+,区分大小写,关键字全部由,小写字母,组成。标准,C+,(,ISO14882,),定义了,74,个关键字,具体的,C+,编译器会做一些增删。常用关键字及分类见表,2.1,。,3/5/2026,13,网络与计算中心基础教研室,int,long,float double,char,1.3.2,关 键 字,3/5/2026,14,网络与计算中心基础教研室,标识符(,Identifier,,,ID,):,是程序员定义的,“,单词,”,,用来给变量、常量、数据类型、函数等命名。,合法标识符,由,字母或下划线,开始,,由,字母、数字、下划线,组成。,1.3.3,标识符,3/5/2026,15,网络与计算中心基础教研室,1.3.3,标识符,例,:,判断下面哪些是合法的标识符:,MyFile,Salary 94,amount,void,94Salary,Salary94,$amount,f3.5,Num_of_Student,3/5/2026,16,网络与计算中心基础教研室,1.3.4,标点符号,标点符号,:,#(),,:;,等。,标点符号的作用,:,有一定的语法意义。如字符和字符串常量分别用,和,引起来。,对语法符号起分隔作用。如 ;等,3/5/2026,17,网络与计算中心基础教研室,求华氏温度,100F,对应的摄氏温度摄氏温度,C=(5/9)(F-32),1,程序解析,2,常量、变量和数据类型,3,算术运算和赋值运算,4,简单的输入、输出,3/5/2026,18,网络与计算中心基础教研室,#include,using namespace std;,void,main,(void,),/,主函数名,main,int,celsius,fahr,;,fahr,=100,;,/,变量使用,celsius,=5*(,fahr,-32)/9,;,cout,fahr,=,fahr,,,celsius,=,celsius,n;/,输出结果,求华氏温度,100F,对应的摄氏温度。,摄氏温度,C=(5/9)(F-32),输出,:,fahr,=,100,celsius,=,37,程序解析,3/5/2026,19,网络与计算中心基础教研室,1.4,变量和数据类型,int,celsius,fahr,;,celsius,=5*(,fahr,-32)/9;,数据,常量:在程序运行过程中,其,值不能被改变,变量:在程序运行过程中,其,值可以被改变,数据类型,常量:,5,和,9,是整型常量(整数),变量:在定义时指定,3/5/2026,20,网络与计算中心基础教研室,变量的定义,变量定义的一般形式:,数据类型名 变量名表,;,例如:,int,celsius,fahr,;,定义整型变量,float,x;,定义单精度浮点型变量,double,area,length;,定义双精度浮点型变量,double,型数据比,float,精度高,取值范围大,变量名:小写字母;见名知义,3/5/2026,21,网络与计算中心基础教研室,定义变量时要指定变量名和数据类型,变量名代表内存中的一个存储单元,存储单元存放该变量的值,该存储单元的大小由变量的数据类型决定,C+,语言中的变量代表保存数据的存储单元,数学中的变量代表未知数,x=x+1,变量的定义,类型名 变量名表,;,int,celsius,fahr,;,double,area,length;,3/5/2026,22,网络与计算中心基础教研室,变量的定义与使用,#include,Using namespace std;,void,main(void,),int,celsius,fahr,;,fahr,=100;,celsius,=5*(,fahr,-32)/9;,cout,fahr,=,fahr,,,celsius,=,celsius,n;,一个变量名只能定义一次,变量一般都定义在程序的头上,不能定义在程序的中间或后面,变量必须先,定义,,后,使用,。,变量,应该先赋值,后引用,3/5/2026,23,网络与计算中心基础教研室,整型常量,字符型常量,字符串常量,1.5,常量,3/5/2026,24,网络与计算中心基础教研室,C+,中十进制表示与平时熟悉的书写方式相同。,例:,15 -24,整数的十进制表示方法,3/5/2026,25,网络与计算中心基础教研室,实型常量,包含小数点和,10,的幂的数为实型常量,例,:,判断下列表示是否合法,123E12,-.34e-2,E4,1.43E3.5,表示方法:,一般形式与平时书写形式相同,由数字,0,9,和小数点,组成。,例如:,0.23 -125.76 0.0 .46 -35.,指数形式(也称为科学表示法)表示为尾数乘以,10,的次方形式,由,尾数、,E,或,e,和阶数,组成。指数形式要求在,E,或,e,前面的尾数部分必须有数字,后面的指数部分必须为整数,。,3/5/2026,26,网络与计算中心基础教研室,字符型常量,用单引号引起来的单个字符,。,在内存中保存的是字符的,ASCII,码值。在所有字符中,可显示字符通常就用单引号引起来表示:,a,/,字符,a,/,字符,4,/,字符,4,/,空格字符,特殊情况字符,如不可显示的字符等,,c+,使用,转义序列,表示方法,(详,见表,1-3,,此处略):,n,/,换行,/,字符,3/5/2026,27,网络与计算中心基础教研室,字符串常量,字符串常量与字符型常量的区别:,字符串常量,a,占两个字节,存放,a,和,0,,,值为,0 x6100,字符型常量,a,占一个字节,存放,a,,,值为,0 x61,字符串常量:,用双引号引起来的若干个字符,。,例如,:,I am a Chinese.,123,a,3/5/2026,28,网络与计算中心基础教研室,常变量,标识符常量:,用常量说明符,const,给文字常量起的名字(标识符),,因为其说明和引用形式很像变量,所以也称,常变量,;,例如:,const,float PI=3.14159;,/,推荐用大写字母作为常变量名,const,int,Number_of_Student=100;,常变量必须也只能在说明时进行初始化;,常变量初始化之后,不允许再被赋值;,常变量必须先说明后使用;,常变量存储在数据区,并且可以按地址访问,编译时系统对常变量进行类型检查。,C+,建议使用常变量,而不要使用文字常量。,3/5/2026,29,网络与计算中心基础教研室,fahr,=100;,celsius,=5*(,fahr,-32)/9;,1,、算术运算,双目算术运算符:,+-*/%,算术表达式:用,算术运算符,将,运算对象,连接起来的符合,C+,语言语法规则的式子,数学式:,(5/9)(F-32),C+,表达式:,5,*,(,fahr,-32)/9,或者:,数学式:,s(s-a)(s-b)(s-c,),C+,表达式:,1.6,算术运算和赋值运算,3/5/2026,30,网络与计算中心基础教研室,双目算术运算符:,+-*/%,算术表达式:用,算术运算符,将,运算对象,连接起来的符合,C+,语言语法规则的式子,注意,/,整数除整数,得整数,如:,1/2,0,,,9/4,2,?,5*(,fahr,-32)/9,和,5/9*(,fahr,-32),等价吗,%,针对整型数据,如:,5,6,5,,,9,4,1,,,100,4,0,双目运算符两侧操作数的类型要相同,算术运算,3/5/2026,31,网络与计算中心基础教研室,赋值运算符,=,赋值表达式:用,=,将一个,变量,和一个,表达式,连接起来的式子,变量 表达式,赋值运算,例如:,fahr,=100;,celsius,=5*(,fahr,-32)/9;,计算赋值运算符右侧,表达式,的值,将赋值运算符右侧,表达式,的值赋给左侧的,变量,的左边必须是一个变量,3/5/2026,32,网络与计算中心基础教研室,1,表达式语句:,表达式;,2,空语句:,;,3,复合语句:,/,若干语句,流程控制语句:,流程控制语句用来控制或,改变程序的执行方向,;,1.6.3,语句,3/5/2026,33,网络与计算中心基础教研室,数组定义:,数组是有限个,同类型,元素的有序集合,,这些元素有一个共同的名字,每个元素以其在数组中的,位置区分,,位置用,下标,表示。数组下标的个数称作维数。,1.7,数组与字符数组,3/5/2026,34,网络与计算中心基础教研室,一维数组的定义格式:,存储类型,数据类型,数组名,常量,;,数据类型指的是数组中元素的数据类型,可以是,C+,中定义的任何一种数据类型。,写在方括号中的,常量,用来定义数组大小,即数组中元素的个数。,例如:,int,m5;,/,定义数组,m,其中有,5,个整数,const,int,N=3;,float xN;,/,数组,x,中有,3,个实数,一维数组,3/5/2026,35,网络与计算中心基础教研室,m4,m3,m2,m1,m0,x2,x1,x0,一维数组,数组的存储:,数组在存储单元中是按,下标,的顺序,连续,存放的,,数组名,代表数组存储区域的,首地址,。,数组的元素:,标识方法是用数组名和下标:,数组名,表达式,表达式用来计算下标值。,C+,中规定数组第一个元素的下标为,0,。,3/5/2026,36,网络与计算中心基础教研室,注意:,C+,中数组大小在编译时确定,编译系统按照定义为数组分配一段连续的存储单元,这段单元的大小也是不能改变的,因此数组大小不能用变量定义,而只能是一个正整数常量。,为避免使用时数组出界,通常,“,大开小用,”,。,对数组的访问,指的是对,数组元素的访问,,不能直接将数组名作为访问对象,对数组赋值也必须对每一个元素逐个赋值。,一维数组,3/5/2026,37,网络与计算中心基础教研室,一维数组,数组的初始化,数组初始化的方法是在定义时用,大括号,列出元素的值。,初始化值的个数可以,少于,定义的元素个数,这时从第,0,个元素开始逐个取得初始化值,剩余的元素初始化为,0,。,对于定义时初始化的情况,可以不指明元素个数,编译器会按照初始化值的个数确定数组大小。,例如:,int,score5=88,92,90,85,78;,例如:,float y5=3.4,4.2,7;,/5,个元素的取值分别为,3.4,4.2,7,0,0,例如:,int,n=1,2,3,4;/,数组,n,有,4,个元素,int,nn,;/,非法定义,必须指明数组元素个数,3/5/2026,38,网络与计算中心基础教研室,int_arr3=,int_arr2=,int_arr1=,int_arr0=,1,1,2,3,输出:,3,1+2=3,【,例,1.2】,使用数组的简单例子。,#,include,using namespace,std;,int,main(),int,int_arr4;,int_arr0=1;,int_arr1=1;,int_arr2=2;,int_arr3=int_arr1+int_arr2;,cout,int_arr3,n,;,return,0,;,3/5/2026,39,网络与计算中心基础教研室,字符数组,字符数组定义:,如果数组中的元素为字符,就称为字符数组。,例如:,char string110;,/,可用来保存,10,个字符的字符数组,char city_name1=N,a,n,j,i,n,g;,/,可用来保存,7,个字符的字符数组,;,3/5/2026,40,网络与计算中心基础教研室,字符数组,字符串与字符数组:,C+,中用字符数组保存字符串。,允许直接用字符串常量给字符数组初始化。,例如:,char city_name2=”Wuhan”;,用字符串初始化,字符数组会自动加上一个串结束符,0,。串结束符在字符串操作中具有十分重要的意义,因此在定义字符数组大小时,要注意留出足够的空间保存串结束符。,3/5/2026,41,网络与计算中心基础教研室,字符串处理函数:,字符串处理函数定义在头文件,中,strlen(s,),/,返回字符串,s,的实际长度,(,不包括,0),strcpy(s1,s2,),/,将字符串,s2,中,0,之前的所有字符,/,依次赋值到字符串,s1,中,最后再加上一个,0,。,由于不能直接对字符数组名赋值,所以将一个字符串的值赋给另一个字符串必须用,字符串复制函数,完成。,例如:,char string220,;,string2=,”,VC+,”,;,/,非法,strcpy(string2,”,VC+,”,);,/,合法,3/5/2026,42,网络与计算中心基础教研室,int,main(),char,s1=,Hello C+,;/,初始化决定数组,s1,有,10,个元素,char,s210,s320;,s20=B;s21=,e;s22=,g;s23=,i;s24=,n;,s25=,0,;,/,对字符串结束处理非常重要,strcpy(s3,s2);,cout,The length of,s1,is:,strlen(s1),n;,cout,s2,ts3,n;,return,0,【,例,1.3】,字符数组和字符串处理函数的应用。,#include,#include,using namespace,std;,/,只有字符数组可整体输出,因为有结束符,运行结果:,The length of,Hello C+,is,:,9,Begin,Begin,3/5/2026,43,网络与计算中心基础教研室,1.8,简单的输入输出,1.8.1,C+,的输入输出简介,1.8.2,数据的输入输出,1.8.3,输入输出的格式控制,3/5/2026,44,网络与计算中心基础教研室,1.8.1 C+,输入输出简介,输入流对象,cin,:,cin,用来在程序执行期间给变量输入数据,,一般格式为:,cin,变量名,1,变量名,2,变量名,n;,输出流对象,cout,:,cout,实现将数据输出到显示器的操作,,一般格式为:,cout,表达式,1,表达式,2,表达式,n;,使用时必须在程序开头增加两行:,#include,using namespace std;,3/5/2026,45,网络与计算中心基础教研室,例如,:char,c1,c2,c3;,cin,c1,;,/A,cin,c2c3;,1.8.2,数据的输入输出,字符的输入,cin,程序执行到,A,行时,等待用户输入数据。,若输入:,A b c,则,cin,分别将字符,A,、,b,、,c,赋给变量,c1,、,c2,、,c3,。,cin,自动跳过输入的,空白,字符(包括空格,制表和回车等),。,3/5/2026,46,网络与计算中心基础教研室,假定字符,c1,、,c2,、,c3,的值分别为字符,a,、,b,和,c,,执行以下语句序列:,cout,c1,t,c2,n,;,cout,c3,endl,;,cout,O,k,endl,;,屏幕上将输出:,ab,c,Ok,1.8.2,数据的输入输出,字符的输出,cout,输出时字符之间是无间隔的,如果想让字符间有间隔,必须输出间隔符,,如,t,(制表符,自动跳过若干字符位置)、,n,或,endl,(基本含意一样,表示回车换行,并清空缓冲区)。,3/5/2026,47,网络与计算中心基础教研室,例,:,int,i,j;,float,x,y;,cout,”Input i,j,x,y:”ij;/D,cin,xy;,cout,”i=”i,t,”j=”j,endl,;,cout,”x+y=”x+y,endl,;,3.,十进制数据的输入输出,若输入:,10 20 4.5 8.6,则程序输出:,i=10j=20,x+y,=13.1,输出时各数据间是无间隔的,因此应当有意输出一些间隔符,3/5/2026,48,网络与计算中心基础教研室,1.8.3,输入输出的格式控制,例如:,int,i=2,j=3;,float,x=2.6,y=1.8;,cout,setw(6),i,setw(10),j,endl,;,cout,setw(10),i*j,endl,;,cout,setw(8),x,setw(8),y,endl,;,设置数据间隔,为了使数据间隔开,还可以用,C+,提供的函数,setw,(),指定输出数据项的宽度。,输出结果为:,2 3,6,2.6 1.8,使用,setw,(),必须在程序的开始处增加:,#include,3/5/2026,49,网络与计算中心基础教研室,一、简单的,C,程序,3/5/2026,50,网络与计算中心基础教研室,
展开阅读全文