自测练习题型包括:简答题,选择题,判断题,画图题,同型题,变式题,分析题,综合题等。这里以第1章为例说明学习自我练习作业部分:
1简答题
(1)面向过程结构化编程的宗旨是什么?
(3)模块和文件的关系是什么?
(5)单文档模型和多文档模型写程序都有哪三个部分?
(6)用sqrt这个模块(函数),为什么前面必须加上#include<math.h>?
(7)程序编译之后生成的目标文件(后缀名为obj)为什么不能执行?
(8)以下是求三个整形数平方和的部分代码。哪个写的更好,为什么?
第一种写法:主模块所在的文件:SquareSumMain.cpp
/********************************************************************
created:
file base: SquareSumMain
file ext: cpp
author: 李祎
purpose: 这是求三个整形数的平方和的主模块所有的文件
*********************************************************************/
int main(){
int a,b,c,squareSum;//命名变量
cin>>a>>b>>c;//输入3个变量的值
squareSum =getSquareSum(a,b,c);//调用函数求平方和,返回值给squareSum
cout<<
squareSum;//输出最后的平方和
return 0;
}
第二种写法:主模块所在的文件:Test.cpp
int
main(){
int a,b,c,d;
cin>>a>>b>>c
d=f(a,b,c);
cout<<f;
return 0;
}
选择更好方案并说明理由:__________________________________________________
(9)请分析下面程序有哪几个部分组成, 及运行后的结果,代码如下:
int
add(int a,int b);
int
main(){
int a,b,c;
a=2;
b=3;
c=add(a,b);
cout<<"两个变量的和是:"<<c;
return 0;
}
int
add(int a,int b){
return a+b;
}
(10)根据第(8)题中调用的getSquareSum 模块,原代码:squareSum =getSquareSum(a,b,c);画出getSquareSum的模块图(提示:模块图由输入、输出、模块名3部分组成)。
2选择题(可能是多选)
(1)如果源文件是TwoMaxMain.cpp,经过编译后生成的文件是?( )
(A)
TwoMaxMain.exe (B)
TwoMaxMain.lnk
(C)
TwoMaxMain.obj (D)
TwoMaxMain.dsw
(2)matlab属于哪种类型的软件?( )
(A)系统软件 (B)应用软件
(C)嵌入软件 (D)语言软件
(3)下列关于main模块的描述,正确的是?( )
(A)程序中必须有的模块 (B)可有可无
(C)视程序大小可以有多个 (D)这是程序的开始模块,但不是终点
(4)
“成绩管理系统”需要编写若干自定义模块,如“输入分数模块”、“查询分数模块”、“显示分数模块”,那么这几个模块的归属下面哪个名称是合适的?(
)
(A)Elephant (B)ScoreManager
(C)Student (D)StudentManager
(5)以下哪种符号是C/C++程序的注释符号?( )
(A){} (B)//
(C)*/
/* (D)remember
(6)程序中使用cin输入数据,使用前必须加?( )
(A)#include
<iostream.h> (B)#include
<cin.h>
(C)
#include “iostream.h” (D)#include
“cin.h”
(7)建立控制台程序必须先建立一个项目,如果建立的项目名为SimpleProj.dsp,项目下建立3个文件:SimpleMain.cpp,Int.cpp,Int.h,编译连接后生成的可执行文件名为?(
)
(A) SimpleProj.exe (B)
SimpleProj.obj
(C)
SimpleMain.exe (D)
SimpleMain.obj
(8)下面哪些描述是正确的?( )
(A)输入、输出、模块功能决定了模块头部的写法
(B)模块名通常是动词,因为它表达某一个具体执行的功能
(C)使用一个模块,要在前面加上这个模块的说明清单
(D)使用一个模块,必须要定义这个模块,否则不能使用
(9)编写模块的思路应遵循解决简单问题的4个步骤,即按如下哪种步骤进行?( )
(A)模块功能、输入与输出、解决思路、算法步骤、模块代码
(B)自顶而下、逐步求精、面向过程、结构编程
(C)建立对象、发生关联、不断迭代
(D)顺序、选择、循环
(10)自定义模块格式如:int getMax(int a,int b,int c),请选择其相对应的模块结构图?(
)
(A)
(B)
(C)
(D)
3判断题
(1)一个C/C++程序有且只能有一个主模块,即main模块。 ()
(2)C++语言是面向对象语言,用C++语言设计的程序肯定是面向对象的。 ()
(3)良好的编程风格包括命名法则、注释、一致性等。 ()
(4)模块设计,指的就是函数设计。 ()
(5)模块从外观上看有两个部分组成:模块头、模块躯干。 ()
(6)模块设计必须明确接口部分的设计,即明确输入部分和输出部分。 ()
(7)编译过程是将源码转成二进制代码的过程。 ()
(8)高级语言是最擅长实时编程的第三代计算机语言。 ()
(9)软件维护成本在当今计算机软件系统中所占的份量越来越重。 ()
(10)C/C++每一行执行语句后面应加“;”。 ()
4画图题,根据下面给定的条件画出相应的模块结构图,并给出模块头部格式
(1)模块功能:根据给定的两个整数得到(返回)两个整数的平均值。
(2)模块功能:根据长方体的长、宽、高(整数)得到(返回)这个长方体的体积。
(3)模块功能:根据给定的球的半径(小数),得到(返回)球的表面积。
(4)模块功能:在屏幕指定位置显示一段文字,即根据给定的位置(包括横坐标和纵坐标,坐标值为整数)、相应的字符串值,在模块内部显示至显示屏(注意:字符串类型现在没有学到,请用汉字“字符串类型”表达)。
(5)模块功能:根据给定的华氏温度(小数)得到(返回)相应的摄氏温度(小数)。
5画图题,在主模块内部输入圆的半径(小数),求圆的周长和表面积,请画出相应的模型结构图。
6编程题(同型基础)
教材中给出了求2个整数的最大数的平方值模型模块图,以及程序代码。请改写成求两个小数(提示:小数用关键字float表示)的最大数的平方值。
[模型设计]
[模块设计]
[问题罗列]
7编程题(同型基础)
编写程序,求2个整数的最小数的平方值(提示:整数用关键字int表示)。
[模型设计]
[模块设计]
[问题罗列]
8编程题(同型基础)
编写程序,根据给定的2个整数,求最大数和最小数,并显示输出。
提示部分:编写两个自定义模块分别求最大数和最小数。
[模型设计]
[模块设计]
[问题罗列]
9编程题(变式答辩)
编写自定义模块,根据圆的半径(小数)返回圆的面积(提醒,只是编写一个模块,而非整个程序)。
[模块设计]
[问题罗列]
10编程题(变式答辩)
编写自定义模块:根据输入的整数x,求表达式f(x)=x3+3x+1的值。并编写主模块测试自定义模块的正确性。要求:用多文档解决方案。
[模型结构]
[模块设计]
1主模块main:
(1)模块功能:求多项式的值
(2)输入输出
形式:int main() 归属:PolynominalMain
(3)解决思路
将x代入给定的表达式,从而计算出相应的函数值。如x是3,则函数值为33+3*3+1,即函数值为37
(4)算法提纲
第一步:输入整数x
第二步:通过自定义模块getPolyValue(x)求出相应的函数值,记为y
第三步:输出y
(5)模块代码(请根据算法提纲给出相应的代码)
2自定义模块getPolyValue:(分模块功能、输入输出、解决思路、算法步骤、模块代码五个方面)
[问题罗列]
编写程序,求两个整数的最大值的立方。要求:用多文档解决方案。
[模块设计]
[模型设计]
[问题罗列]
12思考下面的行为如何分成更细小的步骤(提高初级)
(1)升旗仪式
(2)写论文
(3)炸碉堡
(4)旅游策划