实验八 二维数组 实验目的:掌握二维数组的定义、初始化,以及二维数组元素的下标法引用

实验八 二维数组 实验目的:掌握二维数组的定义、初始化,以及二维数组元素的下标法引用,第1张

第一部分 大纲说明

1课程性质、任务与目的

《C++语言程序设计》是中央电大计算机应用专业的一门专业基础课。主要任务是介绍C++语言中的数据类型,运算,语句结构及其程序设计的基本方法。目的是使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。

2与其他课程的关系

《C++语言程序设计》的先修课是《计算机入门及 *** 作技能训练》和《计算机组成原理与汇编语言》,它们为本课程提供计算机硬软件基础知识,本课程又为《数据结构》等软件课程提供程序设计基础。

3课程特点

《C++语言程序设计》是一门实践性很强的课程,必须通过上机 *** 作才能掌握所学的知识,所以要特别强调讲授与上机 *** 作相结合,要保证学生有充分的上机条件。

4教学要求

教学要求在每一章教学内容之后给出,大体分为三个层次:了解、掌握和熟练掌握。它们的含义大致为:了解就是掌握概念,掌握就是能够理解和分析现有知识,熟练掌握就是会运用所学知识解决实际问题。

第二部分 媒体使用和教学过程建议

1学时分配

本课程共90学时,5 学分。录象、实验和面授各占36、36和18学时。

2多种媒体教材的说明及教学环节

本课程文字教材、实验教材及电视讲课均由中央广播电视大学统一提供。文字教材应包含所有教学内容,叙述要条理清楚,详略得当,注意对C++语言内容的取舍,所有程序都要上机调试通过,内容组织要深入浅出,适合自学;音像教材应突出重点和难点,二者可以相互补充配合,但电视讲课仍应以文字教材为主要依据。

面授应指导和帮助学生掌握重点,突破难点,分析编程的思路与方法,指出常见的错误。上机 *** 作应有实验教师指导。

3考核

本课程考核包括笔试和上机两部分。笔试由中央电大统一命题,上机考核由各地方 电大组织,上机合格者方可参加笔试。

第三部分 教学内容和教学要求

第一章 C++语言概述

(一) 教学内容

1 C++语言的简史与特点

2 一个简单的C++程序

3 程序的编辑、编译、链接和运行

(二) 教学要求

了解C++语言的特点及C++简单程序的构成,掌握C++程序的编辑、编译、链接和运行的过程。

第二章 基本数据类型与表达式

(一) 教学内容

1 C++数据类型概述

2 C++的基本数据类型(整型、字符型、枚举型、实型)

3 常值变量

4 宏定义的使用

5 *** 作符与数值表达式

6 关系运算符和逻辑运算符

7 关系表达式和逻辑表达式

8 表达式的副作用和表达式语句

9 typedef定义

(二) 教学要求

掌握整型、字符型、枚举型、实型等基本数据类型的概念以及typedef定义的使用,熟练掌握这些类型的常量和变量的使用及其运算 *** 作,熟练掌握关系运算符和逻辑运算符的使用、关系表达式和逻辑表达式的求值,了解运算符的优先级和结合性,以及表达式的副作用。

第三章 C++程序的流程控制

(一) 教学内容

1 用if语句实现的分支控制

2 用switch语句实现的多分支控制

3 用while语句实现的循环控制

4 用dowhile语句实现的循环控制

5 用for语句实现的循环控制

6 continue和break在循环控制中的作用

7 多重循环

8 goto语句

(二) 教学要求

熟练掌握if语句和switch语句的使用,会在程序中利用它们实现单分支或多分支控制。熟练掌握while,dowhile和for这三种循环语句的结构和执行过程,会在程序中利用它们实现单重或多重循环控制,掌握continue语句和break语句的作用。

第四章 数组

(一)教学内容

1 数组的基本概念:元素、下标、类型、维数

2 一维数组

3 二维数组和多维数组

4 字符数组与字符串

(二) 教学要求

掌握数组的基本概念,熟练掌握一维数组和二维数组的使用,掌握字符数组与字符串的关系以及字符串的简单处理,会分析、编写利用数组进行数据存储和处理的简单程序。

第五章 C++函数

(一)教学内容

1 函数的定义

2 函数的调用与参数的传递

3 函数的原形与头文件

4 inline函数

5 函数的重载

6 变量的作用域与生存期

7 函数的作用域

8 函数模板

(二) 教学要求

掌握函数的定义,函数的原形,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握函数重载的使用方法,关键字inline的含义与使用,掌握变量的作用域与生存期,了解函数的作用域。

第六章 指针、引用和动态空间管理

(一)教学内容

1 指针概述

指针的概念:地址、指针类型、void指针、空指针

指针变量的定义和初始化

指针的间接访问:

判断一指针是否是空指针

2 指针 *** 作符与指针表达式

3 指针与数组(含指针数组应用:命令行参数)

4 指针与函数

5 指针与字符串

6 指针与自由空间

7 引用的概念及应用

(二) 教学要求

熟练掌握指针、地址、指针类型、void指针类型、空指针等概念,熟练掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式,掌握指针与数组、函数、字符串、自由空间等的联系,了解引用变量、值传送、引用传送的概念,掌握引用参数的使用。

第七章 结构与联合

(一)教学内容

1 结构的基本概念

2 结构的定义与初始化

3 结构成员的访问和结构变量的赋值

4 结构与指针

5 结构与函数

6 结构与 *** 作符重载

7 联合的定义与使用

(二) 教学要求

掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数、 *** 作符重载的关系;掌握联合的概念,联合类型和变量的定义,联合成员的表示,联合在结构中的使用。

第八章 类与对象

(一) 教学内容

1 面向对象技术的基本概念

2 类定义的格式

3 类成员的访问属性

4 成员函数与this指针

5 构造函数与析构函数

6 类对象数据成员

7 友元函数与友元类

8 类的继承

9 类的多态性与虚函数

10 静态数据成员

11 类模板

(二) 教学要求

掌握类的概念,类类型的定义格式,类与结构的关系,类与 *** 作符重载,类的成员属性,类的封装性,类的继承性,构造函数和析构函数的作用,this指针的含义,类对象的定义,友元函数与友元类的作用;了解inline成员函数,静态数据成员,类的多态性与虚函数,类模板等内容。

第九章 C++流

(一) 教学内容

1 C++流概述

2 标准输入输出的预定义流对象: cin、cout、cerr、clog

3 文件流

4 针对内存字符串缓冲区的流

5 输入输出的格式控制

6 输入流专门 *** 作

7 输出流专门 *** 作

(二) 教学要求

掌握C++流的概念,标准预定义流对象cin,cout和cerr的含义,文件流的定义和使用,了解输入输出的格式控制及专门 *** 作。

第四部分 实验

实验是学习该课程的非常重要的教学环节,通过上机实验能够加深理解和巩固书本上所学的知识,能够提高动手 *** 作的能力以及分析问题和解决问题的能力。具体实验内容、实验要求和实验安排将在该课程的实验教材中给出,请各地教学班按照实验教材安排学生实验。

首先,如果在头文件中定义一个普通的函数,比如下面这样,肯定会在程序链接的时候报“ 重复定义 ”的错误。

那么如果我们想在头文件中定义一些常用的函数,一般做法是在函数前加“ inline ”关键字,这样就不会报“ 重复定义 ”的错误了,并且能够像函数一样被其他的c/cpp源码文件调用了。

这时候如果你在inline后面加入“static”关键字也是没问题的:

区别是: 加了static关键字后,每个调用它的c/c++源码文件都会有一个copy,即static其实是限制了函数的作用域在本源码文件内。

----------------------------------- 分割线 ----------------------------------------

那么另一个问题来了:如果我们在函数内部定义static变量时,会是怎么样的情况呢?

如果我们分别在1cpp和2cpp两个源码文件中分别调用这两个inline函数,可以通过结果看到区别。

程序运行结果:

可以看到: 如果在inline后加了static关键字,则在函数中定义的static变量则会在每一个源码调用文件中产生了一个拷贝,而没加static关键字的inline函数则会产生一个全局的static变量。

具体解释参考 https://stackoverflowcom/questions/185624/static-variables-in-an-inlined-function

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12186448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存