C++1.docx
《C++1.docx》由会员分享,可在线阅读,更多相关《C++1.docx(18页珍藏版)》请在冰豆网上搜索。
C++1
C++语言程序设计讲课稿
第一讲
内容提要:
一.开放教育学习模式简介;
二.第一、二章要点介绍。
一.开放教育学习模式简介
1.现代远程开放教育的课程教学活动是根据专业教学计划和课程任务要求,设计和实施多媒体教学策略,教师导学、学生自主学习,师生互动的教育实践过程。
其主要环节包括:
在计算机网络和多媒体资源的学习条件下指导学生自学;进行面授辅导;指导小组活动;开展实践性教学;进行形成性考核和终结性考核等。
面授辅导课主要讲重点、释难点、答疑点、讲思路、讲方法;引导和帮助学生利用现代信息技术手段和多媒体教学资源进行自主学习;开展作业讲评及复习指导等。
2.本课程的媒体资源包括:
主教材-----C++语言程序设计
辅教材----C++语言程序设计实验
四套书面作业
16学时的教学光盘
网上发布的参考资料
3.上课时间:
第4、5、7、8、14、15、16、17周每周三晚6:
30—8:
30
4.本课程的教学实施方案:
学员进行网上注册后可上网浏览
5.作业做前二次11月7日前交,老师批改,后二次老师给答案。
二.第一、二章要点介绍
1.如何学习V-C++
要学好C++程序设计的唯一方法就是要亲自动手编写程序。
在编写和调试程序的过程中所学到的知识会比只看书本学到的要多得多,因此自学的时候建议大家坐在计算机旁,一边看书,一边上机练习。
2.V-C++系统简介
注:
通过实例讲解应用程序的建立、源程序的输入、编译连接、运行等各个环节,使大家有一个感性的认识。
(演示一下)
3.有关注释的说明
(1)注释的重要性
大家在阅读程序时,可能会感到很多语句难以理解,为解决这一问题,高级语言允许在程序中加入注释。
注释是为了增加程序的可读性而在程序中附加的说明性文字。
主要解释某一条语句或某一个函数的功能。
计算机并不懂注释的内容,它“看”程序时会把它略过,注释也丝毫不会影响程序的运行。
在编程的时候,通过写注释,可以帮助我们理清思路,而注释又能帮助别人理解我们的思路。
考试时一定会有根据函数写功能这样的题目,请大家多加留意这一问题。
(2)注释的形式
C++的注释有两种形式:
单行注释和多行注释。
单行注释
它以符号‘//’引导,程序行中从符号‘//’到行尾的所有内容都是注释。
例如:
inta,b,c;//定义a、b、c为整型变量
c=a*b;//求a与b的乘积,并将其值赋给c
其中inta,b,c;和c=a*b;是程序代码,而从‘//’开始到行尾则是程序代码的注释,说明了程序代码的真实含义。
多行注释
用符号‘/*’表示注释开始,用符号‘*/’表示注释结束,注释可以跨越多行。
例如:
/********************************************************************
*****************程序在屏幕上输出一句问候语:
hello!
*******************
********************************************************************/
#include
voidmain()
{
cout<<”hello!
”<}
运行这个程序后屏幕上将显示一句问候语hello!
。
(演示着个程序)
4.C++数据类型
这里重点介绍基本数据类型
(1)。
基本数据类型的参数
类别
类型修饰符
类型名称
存储空间
值域
有效位
整
型
shortint
短整型
字节
-32768~32767间的整数
int
整型
字节
-2147483648~2147483647间的整数
longint
长整型
字节
-2147483648~2147483647间的整数
浮
点
型
float
单精度
字节
3.4E-38~3.4E38
7
double
双精度
字节
1.7E-308~1.7E308
15
longdouble
长双精度
字节
3.4E-4932~3.4E4932
19
字符型
char
字符型
字节
0~255间的整数
至于各种数据类型占用的存储空间,可以用以下程序去检验。
#include
voidmain()
{cout<<"sizeofshortint:
"<cout<<"sizeofint:
"<cout<<"sizeoflongint:
"<cout<<"sizeoffloat:
"<cout<<"sizeofdouble:
"<cout<<"sizeoflongdouble:
"<cout<<"sizeofchar:
"<}
(运行此程序看最终结果并回填到以上表中)
(2)整型数据的表示和转换
用八进制表示的数以0开头,如012表示十进制数的10;
用十六进制表示的数以0x开头,如0x12表示十进制数的18。
问:
0777表示十进制数的多少?
二进制111表示十进制数的多少?
777111
8
(2)8
(1)8(0)2
(2)2
(1)2(0)
64x7+8x7+1x7=5111x4+1x2+1x1=7
0xBBB表示十进制数的多少?
BBBB=11
111111
16
(2)16
(1)16(0)
256x11+16x11+1x11=3003
(解此题并得出规律,以后考试可能会有此题型)
5.常量与变量
C++中无论是常量还是变量或者是函数,在使用之前一定要先定义,切记!
给常量与变量命名以及赋值的过程就是给它们下定义。
(1)常量与变量的命名
常量与变量的名字由字母、数字和下划线组成,且必须以字母或下划线开头。
下面是合法的常量与变量名:
max_valuePIsum_Y2K
下面是不合法的常量与变量名:
2END1998us$student%
注意事项:
a.C++中有一些名字如mainintwhileforvoid等是保留字,它们有固定的含义,在定义常量与变量时不能用这些保留字;
b.C++区分字符的大小写,所以main、Main和MAIN是不一样的名字;
c.常量与变量的名字要尽量清楚,接近常量与变量所表示的含义。
(2)常量与变量的初始化和赋值
a.常量的初始化
常量的初始化有两种方法:
一种是用预处理命令#include定义一个符号来代表某个常量,如:
#includePI3.14159
这里的PI称之为符号常量。
注:
前面带#的命令都是预处理命令,不是C++语句,因此不能以分号结尾。
另一种是在要定义的常量前加上保留字const及类型修饰符,如:
constdoublePI=3.14159;
这里的PI称之为常值变量。
b.变量的定义、初始化及赋值
变量按下面的格式进行定义及初始化:
类型修饰符变量名[=表达式][,变量名[=表达式]];
格式中的[]表示所括起来的部分任选。
如:
inta,b=10;
doublek;
charc;
变量的赋值
k=23.78;
c=‘A’;
变量能被赋值,这是它和常量不同的地方。
6.字符、字符串和特殊符号
(1)字符
字符是以单引号‘’括起来的单个符号。
字符型数在计算机中一般用一个字节存放。
在内存中,字符型数据以ASCLL码的形式存储。
它以0~255的十进制整数表示字符。
比如,用十进制数38表示符号‘&’;十进制数72表示符号‘H’等。
详情可查ASCLL表。
字符和整数在一定范围内可以混用,但它们的含义不同。
例如
charc=60;//c实际上表示字符’<’
inti=’&’//i的值实际上为38;
可用以下程序验证:
#include
voidmain()
{
charc=60;
inti=’&’;
cout<cout<
}
(2)字符串
字符串是用双引号“”括起来的符号序列。
比如:
“47829758HGIEGJK”
“#¥%*()”
使用字符串很简单,但需要记住一点:
C++中,字符串在内存中存储时总是以空字符‘\0’结束,它要占一个字节的存储空间。
如:
“12345”
它在内存中存储时,实际上占用了六个字节,如下图所示:
1
2
3
4
5
‘\0’
所以,一个字符在内存中只占一个内存单元,而含有一个字符的字符串在内存中要占两个内存单元。
‘A’和“A”不一样。
如果仅仅是输出一个字符串,如:
“你好,欢迎你们!
”那比较好办,用以下程序就可以完成
#include
voidmain()
{
cout<<”你好,欢迎你们!
”<}
如果将一个字符串赋值给一个字符变量,然后输出着个变量,就要用到字符数组,那是以后要学的内容。
(3)特殊符号
C++中有些字符是可以显示出来,如:
字母、数字和一些符号‘!
’、‘#’、‘+’、‘/’等。
而有些特殊符号如:
换行、单引号、双引号等则不可显示。
在程序中要使用这些符号,就需要用特殊的方式表示。
表示的方式是用字符‘\’开始,后跟不同的字符表示不同的特殊符号,下表列出一些常用的特殊符号。
符号‘\’被称为转义字符,因为它改变了跟在他后面的字符的通常含义。
名称
符号
名称
符号
空字符
\0
水平制表
\t
换行
\n
垂直制表
\v
换页
\f
反斜线
\\
回车
\r
问号
\?
回格
\b
单引号
\’
响铃
\a
双引号
\”
7.操作符与优先级
C++中有各种操纵符,可以对各种数据进行运算,具体归纳如下:
(1)算术操作符
算术操作符包括:
+(加,如3+1)
-(减,如k-3)
*(乘,如p*q)
/(除,如d/3)
%(求余,m%n)
+(取正,如+3)
-(取负,如-8)
%是只作用于整数的操作,如10%3的值是1(余1,商舍去)。
其余操作含义自明。
(2)位操作符
位操作符包括:
<<(左移,如k<<2)
>>(右移,如k>>2)
|(按位或,如k1|k2)
&(按位与,如k1&k2)
^(按位异或,如k1^k2)
~(按位求反,如~k)
位操作只针对整数。
如5<<2的值是20
就是把0000000000000101变成0000000000010100,因此左移一位相当于乘2。
如5>>1的值是2
就是把0000000000000101变成0000000000000010,因此右移一位相当于除2。
位移操作是不循环位移,不管从哪个方向溢出的1都将被舍弃。
|、&、^和~这四个操作的含义如下:
E1
0000000000001101
E2
0000000000100101
E1|E2
0000000000101101
E1&E2
0000000000000101
E1^E2
0000000000101000
~E2
111111*********0
(3)赋值操作符
赋值操作符是=号。
如:
n=4;k=m=7;等。
(4)复合赋值操作符
复合赋值操作符包括:
+=(加赋值)
-=(减赋值)
*=(乘赋值)
/=(除赋值)
%=(求余赋值)
<<=(左移赋值)
>>=(右移赋值)
|=(按位或赋值)
&=(按位与赋值)
^=(按位异或赋值)
如:
k+=3与k=k+3效果相同,s*=j-7与s=s*(j-7)效果相同。
以此类推。
(5)增1减1操作符
增1减1操作符都是单目操作符,包括:
++(前增1,如++i)
--(前减1,如--i)
++(后增1,如i++)
--(后减1,如i--)
前增1(或前减1)意味着在提取变量的值前先对变量增1(或减1),因此该变量是以增1(或减1)之后的值参与表达式的计算。
例如语句:
m=++k;
相当于:
k+=1;
m=k;
再如:
intk,d=5;
k=++d*2;
相当于:
d+=1;
k=d*2;
结果为:
k的值是12;d的值是6。
后增1(或后减1)意味着在提取变量的值后才先对变量增1(或减1),因此该变量是以原来的值(增1或减1之前的值)参与表达式的计算。
例如语句:
m=k++;
相当于:
m=k;
k+=1;
再如:
intk,d=5;
k=d++*2;
相当于:
k=d*2;
d+=1;
结果为:
k的值是10;d的值是6。
(6)sizeof操作符
sizeof操作符用于获得一数据或数据类型所占空间的字节数。
其格式为:
sizeof(类型修饰符)或sizeof(表达式)
例如执行以下语句:
doubled=3;
cout<系统将显示出int、double和longdouble三种数据各自占用空间的字节数。
(7)关系操作符
关系操作符主要用于判断两个操作数是否相等或比较两个操作数的大小,比较结果只能是false(逻辑假,表示不成立)或true(逻辑真,表示成立)。
关系操作符包括:
==(恒等于)
!
=(不等于)
>(大于)
<(小于)
>=(大于等于)
<=(小于等于)
例如:
-3!
=3和5>=2的值都是真,-3>3和5==2的值都是假。
(8)逻辑操作符
逻辑操作符有两种:
逻辑与操作符&&和逻辑或操作符||,都用于构造复合条件的,其左右两边的操作对象称为子条件。
对于复合条件E1||E2,只要子条件E1和E2中有一个值为真,复合条件的值即为真。
对于复合条件E1&&E2,只要子条件E1和E2中有一个值为假,复合条件的值即为假。
因此,有时仅根据其中一个子条件的值即可判断整个复合条件的值。
例如:
E1||5>0的值为为什么?
E1&&5<0的值为为什么?
同理,如果E1和E2互为相反条件,则E1||E2必为真,而E1&&E2必为假。
(9)条件操作符
条件操作符为?
:
,是一种3目操作符,完整的使用格式是:
条件?
表达式1:
表达式2
条件通常是一逻辑表达式,当它的值为真时,它的值就是表达式1的值;为假时它的值就是表达式2的值。
例如:
(5>3)?
(20*4):
(90-8)值为?
(7<3)?
(40:
90)值为?
(10)操作符的优先级与结合性
通过操作符的连结,可以构造出具有不同复杂程度的表达式。
当表达式中有多个操作符时,优先级高的先执行。
下表列出各操作符的优先级别。
优先级
操作符
结合性
16
()[]->:
:
.
从左到右
15
!
~+-++--&*sizeofnewdelete
从右到左
14
.*->*
从左到右
13
*/%
12
+-
11
<<>>
10
<<=>>=
9
==!
=
8
&
7
^
6
|
5
&&
4
||
3
?
:
2
=*=/=%=+=-=&=^=|=<<=>>=
从右到左
1
从左到右
当表达式中出现了优先级相同的操作符时,结合性决定了先计算哪个操作。
操作符的结合性分为从左到右和从右到左两种,一元操作符、赋值及复合赋值操作符具有从右到左的结合性,其余操作符具有从左到右的结合性。
例:
((5+2*7)>(90/5-8))||((78%3)>(5&6))
值为?
((11<<2)>(5^6))&&(((8>7)?
10:
20)>=20)
值为?
8.表达式和表达式语句
表达式是由操作符和操作数按一定的语法规则组成的符号序列。
表达式的目的是对数据进行某种操作,这种操作可以是数据输入、数据输出、数据运算,也可以是数据赋值。
表达式加上分号就构成了表达式语句,语句执行的过程就表达式求值的过程。
9.编译预处理命令#include
“#include”告诉C++编译器,将头文件iostream.h中的内容插入(include)这个程序中。
文件iostream.h中定义了一组标准类——输入输出流类。
程序中用到的cin和cout都是输入输出流类的一个预定义对象,所以程序中必须将定义该对象的头文件包含进来。
标准的输入设备一般指键盘,标准的输出设备一般指显示器。
“#include”被称为编译预处理命令,它可以指示编译器在进行真正编译前,将某一文件的内容插入到要编译的程序中,作为程序的一部分。
10.main函数
一个C++程序是由若干个互相调用的函数组成的。
一个最简单的程序只有一个函数,这个函数的名字是main。
在C++语言中,函数是具有如下定义形式的语法单位:
返回值类型函数名(函数参数表)
{
语句组
}
其中,第一行为函数头,下面三行统称函数体。
函数头定义了函数的名字,输入函数的参数和函数返回值的类型。
函数体由一对花括号中间加若干语句组成,它们是函数真正进行的操作。
例如:
voidmain()
{
cout<<”holle!
”;
}
函数名为main,它没有参数,返回值的类型为0。
函数体只有一条语句,在屏幕输出”holle!
”。
注意:
C++中的所有的语句都要以分号结尾。
到目前为止,对于函数我们需要记住以下几点:
(1)程序是由一个或多个函数组成;
(2)如果程序中只有一个函数,那个函数一定是main;
(3)如果程序中不止一个函数,那么有且只有一个函数是main;
(4)main函数最特殊,它是被调用的第一个函数,其他任何函数都直接或间接地由main函数调用。
11.数据的输入和输出
(1)。
数据的输入
C++中,人们可以在程序运行的过程中从键盘输入数据来控制程序的运行。
cin是C++预定义的代表输入设备的对象,你可以在程序中直接从这个输入设备读入想要的值。
例如:
cin>>n;
该语句中,cin代表输入设备,‘>>’称为析取操作符。
程序运行到此会停下来,等你从键盘上输入数据。
这时,如果在键盘上输入:
10
则n将具有值10。
C++预定义的数据类型包括:
字符、整数、浮点数、双精度数以及字符串。
(2)。
数据的输出
cout是C++预定义的代表输出设备的对象,可以通过向cout输出内容来在显示器上显示信息。
使用cout时,要注意以下几点:
A.要输出的字符串需要用双引号括起来。
在输出到屏幕上时,这些双引号并不显示;
B.语句的最后要用分号表示结束;
C.换行符号‘\n’和换行控制符endl的效果一样,但写法不一样,可以选择自己喜欢的方式;
D.往cout中输出的信息包括:
字符串、数字、变量和表达式等。
例如:
#include
voidmain()
{
inta=5,b=9,n;
cin>>n;
cout<<”Iamastudent.\n”;
cout<cout<<78<<’’<}