1、《程序设计基础(上)》课程期末复习资料 一、客观部分:(单项选择、多项选择、不定项选择、判断) (一)、选择部分1、( B )是一种利用计算机解决问题的思维方式,而不是具体的学科知识。 A. 逻辑思维计算思维实证思维伦理思维2、( D)常简称“流程图”,是人们对解决问题的方法、思路或算法的一种描述。 A. 逻辑图伪代码程序框图程序流程图3、而对问题,需要找出解决问题的方法,我们把这种能够在有限的步骤内解决问题的过程 和方法称为(A )<>算法程序程序设计编程4、( C )是指设计、编制、调试程序的方法和过程,是寻找算法并用计算机能够理解的 语言表达出来的一种活动。 A. 算法程序程序
2、设计编程5、人类使用计算机求解实际问题的基本步骤包括(A B C D )。 A. 将实际问题抽象成数学模型设计求解问题的算法编写程序实现算法运行程序求解问题6、编写一个程序并让程序运行起来,一般包括编辑、(C )、连接和执行等步骤。 A. 改写设计编译录入7、针对(A )在进行大型项目设计时存在的缺陷,人们提出了面向对象程序设计(ObjectOriented Programming, OOP)方法。 A. 结构化程序设计方法面向过程的程序设计方法理论化程序设计方法面向人类的程序设计方法8、( AD )等属于高级程序设计语言。 A. C++汇编机器语言Python9、一个C++程序一般由
3、ABCD )、输入/输出和注释等几部分组成。 A. 编译预处理命令函数语句61、C++中的函数分为两类:一类是用户根据待求解问题的需要自己定义的函数;另一类是 系统提供的标准函数,即库函数。(J)62、一个函数如何调用其他函数,他就是递归函数o(X)63、函数的默认形参值可以在两个位置指定:如果有函数声明,则应在函数声明处指定;否 则,直接在函数定义中指定。(J)64、宏定义分为无参宏定义和带参宏定义两种。(J)65、有参宏定义和条件编译结合使用可以解决头文件重复包含问题。(X)66、静态局部变量在定义时若没有初始化,则自动初始化为0。(J)67、使用全局变量非常方便,可以多使用它。(X)
4、68、多文件结构的程序可以使程序结构清晰,便于管理和查找。(。)69、在运行一个程序时,系统将分配给该程序一些内存空间,根据内存空间中存储的数据类 型不同,可将其分为4个区域:代码区、全局数据区、堆区、栈区。(J)70、定义任何一个变量,系统都会为其分配-定大小的内存空间,访问变量实际上就是访问 其所对应内存空间中的数据。(J)71、指针只能是常量,不可以是变量。(X)72、指针可以是常量,也可以是变量。(J)73、int*pl,p2;则表示定义了两个指针变量pl和p2o(X)74、己知“chara[]={'a',b,'c'},*p=a+l;”,则执行“*p++;"后,a⑵的值为矶(X)75、
5、〈指针表达式>州与<指针表达式〉[i]等价。(J)76、己知“char$tr[]="my";则执行“strcat(str, "book”);”后,str 中保存的字符串为"mybook”。 (X)77、用new动态分配的内存必须用delete释放,否则会产生内存泄漏。(7)78、用new动态分配内存时既可以使用常量也可以使用变量指定元素数目。(J )79、将数组名作为函数实参,表示将数组首地址传递给函数,在函数中可以通过该首地址操 作数组中的元素并更改元素的值.(V)80、函数返回的指针可以是全局变量、静态全局变量或静态局部变量的地址,也可以是局部 变量的地址。(X)81、一个引用在初始
6、化后,其所引用的对象可以改变。(X) O82、只有返回引用的函数可以作为赋值语句的左值。(J)二、主观部分: (一)、填空部分1、现代人类必须掌握的三种思维包括:—计算思维、_理论思维和实证思维—O2、任何复杂的算法都可以由—顺序结构、、_选择(分支)结构和—循环(迭代)结构—这三种基本结构组成。 3、程序流程图中的_矩形表示处理,_菱形表示判断。 流程图的基本符号和含义4、—编译器是一个软件,运行该软件将源代码翻译成计算机能够识别的内部语言_机器语言O5、、、等都是高级程序设计语言。 符号名称 图形符号 含义 圆角矩形 (_) 开始框或结束框,描述算法的开始或结束 矩
7、形 处理框,描述处理 平行四边形 L_/ 输入输出框,描述 菱 形 O 判断框,根据某个条件是否满足,进行进一步 相应的处理。 流程线 ―► I 流程线,面熟各种处理之间的顺序关系 高级程序设计语言,例如C、C++、Java、C#、Fortran. Python、R语言等,是为解决 使用机器语言编写程序困难的问题而逐步发展起来的,其语法符合人的习惯,便于普通用户 编程,但计算机却不懂。 6、一个C++程序一般由_编译预处理命令、—函数、_语句、—变量、输入/输出和_注释等几部分组成。 7、用C++源程序文件的扩展名为CPP , 一般放在项目的源文件目录中。 8、
8、开发一个软件,相当于开发一个 项目 ,项目的作用是协调组织好一个软件中的 所有程序代码、头文件或其他额外资源。。 9、计算机领域中常用的数制有4种:即二进制、八进制 、]•进制 和 十六进 O10、十进制数转换成非十进制数的方法是:整数部分的转换采用除基取余法:小数部分的转换采用乘基取整法 。 11、64位计耸机占8 个Byte,占 64 个bit。 12、在计算机中用二进制数来表示整数,采用_无符号(称为无符号整数)和—有符号(称为有符号整数)两种形式。_无符号整数只能表示正整数和0。 有符号整数可以用来表示正整数、0和负整数。 13、计算机中汉字的表示也是必须采用二进制编码。
9、根据应用目的的不同,汉字编码分 为一外码(输入码)、国际交换码、机内码和字形码。 14、在C++中,除了教材中的基本数据类型,还提供了、、和等基本数据类型。 在 C++中,还提供了 unsigned char、long, unsigned long 和 long double 等基本数 据类型。 15「源C++中,存储字符串常量采用的是向量法。为了能够识别字符串结束位置,C++系统 会在字符串的末尾自动添加一个ASCII编码为—00H的字符(也称空字符或VT)作为字符串的结束符,所以每个字符串的存储长度总是比其实际长度(字符个数)一多1。 16、C++中的逻辑型也只有两个值:和,他们分
10、别表示“逻辑真”和“逻辑假”。 C++中的逻辑型也只有两个值:true和false,他们分别表示“逻辑真”和“逻辑假”。 17、在C++中,字符串常量的表示方法是用一对—双引号将字符串括起来。其中的双引号同样是分隔符,不是字符串的-部分。 18、在定义变量的同时可以为其赋一个初值,称为变量初始化。在C++中,变量初始化有两 种形式,使用—赋值运算符或使用圆括号。 19、根据操作数的不同,可将运算符分为三类:、和, 根据操作数的不同,可将运算符分为三类:单目运算符(一个操作数)、双目运算符(两 个操作数)和三目运算符(三个操作数)。 20、表达式是由运算符将常量、变量、函数调用等连接
11、在--起的式子。一个合法的C++ 表达式经过运算会有一个某种类型的值。使用不同的运算符可以构成不同类型的表达式,如: 术表达式、赋值表达式、关系表达式、逻辑表达式等等。 21、写出判断1个字符变量ch是否为英文字母字符的逻辑表达式。 或O 写出判断1个字符变量ch是否为英文字母字符的逻辑表达式。 可以用字符直接常量的形式判断该字符是否为英文字符: ch>=*a' &&|| ch>=*Ar && ch<=,Z,也可以用字符变量ch的ASCII码判断该字符是否为英文字符: ch>=97 && ch<=122 || ch>=65 && ch<=9022、若x的值为10,则表达式x%-3的值为
12、 ,表达式x%3的值为 。 若x的值为10,则表达式x%-3的值为1,表达式x%3的值为1,即取余运算结果的符 号与被除数符号相同。 23、各种那个赋值运算符都是有副作用的运算符,他们所作用的对象必须是其值允许改变的 变量,即赋值运算符的左操作数必须是一个存放数据的空间,这种变量也被称为 MB—。 24、C++采取两种方法对数据类型进行转换:隐式转换和。 25、C++的语句分为:、、、、输入/输出语句和程序流程控制语句等。 C++的程序就是由若干条语句构成的,C++的语句分为:定义/声明语句、表达式语句、 复合语句、空语句、输入/输出语句和程序流程控制语句等。 26、C++的定义和
13、使用命名空间的关键字是.namespace 。 命名空间是ANSI C++引入的可以由用户命名的作用域,用来解决大型程序中标识符重 名的问题。定义一个命名空间的语法格式为: namespace〈命名空间名>( 常量、变量、函数、类、对象等的声明或定义} 命名空间的声明语法格式是: using namespace〈命名空间名〉;27、表达式x<O?-x:x的功能是。 答案:求x的绝对值。 28、若x、y为double型,则表达式x=l,y=l,y+=++x+l/2的值是 , x的值是2, v的值是_3。 答案:3,2,329、sizeof (1)的值是 , sizeof (floa
14、t)的值是, sizeof(“南开大学")的值是_ 9。 答案:4,4,930、、计算二个表达式的值一般需要引用一些变量。在表达式求值过程中,只提取这些变量的值,但不改变这些变量的值,这样的表达式称为_无副作用的表达式。一个表达式在求值过程中,对使用的变量不但提取变量的值,而且还对它们的值加以改变,这样的表 达式称为有副作用的表达式。 31、处理过程中的一些步骤需要根据不同的情况进行不同的处理,这种情况就是_选fi. 处理过程中的一些步骤需要根据不同的情况进行不同的处理,这种情况就是选择。 32、对于需要进行单路选择处理的问题,C++提供了相应的if 语句,用户可以使用该语句编写程序,
15、让计算机完成问题的求解。 对于需要进行单路选择处理的问题,C++提供了相应的if语句,用户可以使用该语句编 写程序,让计算机完成问题的求解。 33、在一个选择算法中,选择处理的一路或两路还是一个选择算法,这就构成了选择_嵌。 在一个选择算法中,选择处理的一路或两路还是一个选择算法,这就构成了选择的嵌套。 34、C++中专门的—if-else语句用来实现多路选择算法实现。 35、C++中能实现迭代算法的语句包括「or语句、.while语句 和do while。 36、switch语句中的<测试条件〉表达式只能是_整形 、字符 或枚举型的表达式。 switch语句中的〈测试条件〉表达
16、式只能是整形、字符型或枚举型的表达式。 37、一维数据是指数据元素的值由一个因素唯一确定。 38、对于长度为N的一维数组,其<下标〉的取值范围为0 一一 N-1 对于长度为N的一维数组,其〈下标〉的取值范围为0—一NT。 39、在定义二维数组的同时可以为数组中的各个元素赋初值,这就是二维数组的初始itO 在定义二维数组的同时可以为数组中的各个元素赋初值,这就是二维数组的初始化。 40、在C++中,字符串以_字符'\0' 作为结束标识。在存储包含N个字符的字符串时,需要留出一个元素保存、0L使用长度至少为_N+1的一维字符型数组。 在C++中,字符串以字符'\0'作为结束标识。在存
17、储包含N个字符的字符串时,需要 留出一个元素保存*\0\使用长度至少为N+1的一维字符型数组。 41、定义结构体类型的关键字是_structo 定义结构体类型的关键字是struct,,42、结构体数组中的每一个元素都是结构体° 结构体数组中的每一个元素都是结构体变量。 42、只能用枚举—常量为枚举变量赋值。 43、_模块化是指解决-个复杂问题时将其自顶向下逐层划分为若干子问题的过程。 每个子问题就是一个模块。 44、—函数是一个能够完成某个独立功能的程序模块(子程序)。 45、函数和外界的接口体现为—参数传递和函数的_返回值。 46、定义内联函数的关键字是 inline。。
18、 47、C++允许不同的函数具有相同的函数名,这就是函数重载 。 48、要使用cin、、endl等就必须包含该头文件。 要使用cin. cout. endl等就必须包含该头文件iostream。 49、条件编译是一种编译预处理命令,即对某段程序代码中满足条件的语句进行编译、不满足条件的语句不进行编译。 50、编译预处理命令都是以#号开头。 51 变量的生存期是指变量的寿命长短,即变量在整个程序运行过程中的哪个时间段是存在的,描述的是变量的时间属性。 52在32位系统中,内存地址由一 32一位二进制数组成,即 4个字节。 53 C++中的指针是用于存放内存地址的一种数据类型。 5
19、4数组名就是一个指针常量 ,表示该数组所占据内存空间的首地址 。 55假设p为指针,n为正整数,则: p+n:从d指向的地址开始的后面第n项数据的地址。p-n:从p指向的地址开始的前面第 项数据的地址。 56使用 cin进行字符串输入操作时,实际上是将键盘上输入的字符串存储到指针所指向的内存空间中;使用cout进行字符出输出操作时,实际上是将指针所指向的内存空间中的字符逐个取出并输出到屏幕上,直至遇到 '\0 ' 结束。 使用cin进行字符串输入操作时,实际上是将键盘上输入的字符串存储到指针所指向的 内存空间中;使用cout进行字符串输出操作时,实际上是将指针所指向的内存空间中的字 符
20、逐个取出并输出到屏幕上,直至遇到'\0'结束。 57堆内存分配会失败时,系统会返回—0或假或falsec58定义一个指针,用它指向一级指针变量所对应的内存 地址 ,这种指向指针的指 针就被称为二级 指针。 59如果函数调用时传入的某个实参是字符型数组的首地址,则相应的形参应是 char类型的指针变量。 60变量的引用就是变量的别名,对引用的操作就是对所引用 变量的操作。 (二)、程序设计题1、请设计“求1-100所有5的倍数的数和”的算法,并写出C++程序。 参见讲稿章节:3-8[答案]:判断一个整数是5的倍数的方法是:判断该数是否能被5整除,能被5整除的数是 5的倍数的数。所以,
21、这是一个选择算法。需要选择出对1——100以内所有5的倍数的数 和,这又是迭代算法。因此,解决该问题的算法是迭代和选择嵌套算法:
(1)用n来存储要判断的整数,sum存最终的结果
(2)对整数n (1100),重复如下操作:
如果n除以5的余数为0则将你n累加到sum中。
C++参考程序如F:
#include
22、}2、可以根据用户输入的年份判断该年是否是闰年,直到用户输入0年停止处理。
参见讲稿章节:3-8[答案]:在学习双路选择问题时已经实现了判断某一年是否是闰年的问题。现在的问题是需要重复若干次这样的判断,直到用户输入的年份为0,这又是一个迭代算法。
解决该问题的迭代与选择嵌套算法如下表所示:
步 骤
处理
1
输入一个年份year
2
当year不等于0时重复下面的操作: 如果year满足闰年条件
输出“是闰年”
否则
输出“不是闰年”
C++参考程序如下:
#include
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818