学年度第一学期面向程序设计试题Word文件下载.docx
《学年度第一学期面向程序设计试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《学年度第一学期面向程序设计试题Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
9
10
是/否
1.变量必须在程序开头定义或说明,以便给它分配空间。
2.在程序中,函数声明语句可以出现在该函数使用前的任何位置,但不可包含在另一函数中。
3.在内存中,含N个字符的一个字符串常量以一串相应的ASCⅡ码值存储,占用N个字节。
4.指针变量在使用前,应先定义和初始化,而且,必须在定义的同时进行初始化。
5.头文件中不仅存放着变量的声明和常量的定义,也可以有类的定义和函数的原型声明。
6.引用是个别名,建立引用时,用另一个同类变量或对象的名字初始化它。
7.基类中被说明为protected的成员,不允许其他类(包括其派生类)的函数访问。
8.若类B定义为类A的友元类,则允许类B成员函数访问类A的private的成员。
9.类的成员函数都可能被定义为虚函数。
10.类模板或函数模板都只是模板的定义,并非一个实实在在的类或函数,定义中用到通用类型参数。
二、填空题(共20分)
按各小题的要求,在下列表格中对应的空项号右边填人相应的内容。
(1)下面程序的每行前面加有行号,它是求一个数组元素之最大值。
主程序中定义并初始化了一个数组,然后,调用函数max()取得其最大值,最后,输出结果。
填入程序中不完整部分的应有的内容。
(每填空项2分,共10分)
空项号
应有的内容
A
B
C
D
E
(2)下面程序的每行前面加有行号,共20行。
将程序中变量len、k、chk、对象cout和函数print_func()的作用域范围的起止行号分别填人下表中。
(每项空项1分,共10分)
变量、对象或函数名称
作用域起始行号
作用域终止行号
len
k
chk
cout
print_fune
三、简单编程题(共20分)
根据各个小题程序功能要求,写出函数的完整定义。
1.(本小题10分)写一个函数,找出给定字符串中小写字符(即‘a’-‘z’)的个数(如字符串“Lowercase_in_String'
’中小写字符的个数为15个)。
函数的原型为:
intCalcLowercase(char*str);
函数参数:
str为所要处理的字符串;
函数返回值:
所给字符串中小写字符的个数
intCalcLowercase(char*str)
{//在下面写上程序的实现。
}
2.(本小题10分)用递归函数完成四分之一圆周率(P1)的近似值计算,公式如下:
函数的原型如下:
doublequaaer-PI(intn);
该函数实现对四分之一圆周率(P1)的运算,并返回运算结果,其中n>
0。
提示:
可使用递归表示,即,若n==1,取值为1;
n>
1时,取如下递归表达式:
quarter_PI(n)=quarter_PI(n—1)+
doublequaaer_PI(intn)
{//在下面写上程序的实现。
}
四、问答题(共40分)
读懂各个小题程序,为了便于提问,程序的每行前面加有行号,请对所提的问题作出准确的相应解答。
(1)(本小题10分)读懂如下程序:
答案及评分标准
×
√
(1)标准答案
#include<
iostream.h>
intiMax_of_Array;
i<
len
i++
if(iMax<
array[i])iMax=array[i];
评分标准说明:
每填对一空项得2分,共10分。
(2)标准答案
20
16
13
每填对一空项得1分,共10分。
三、简单编程题。
(共20分)
{
//判断字符指针是否为空
if(str==NULL)return0;
//记录小写字符个数的变量
intnum_of_Lowercase=0;
//依次检查各个字符,如果是小写字符,则计数加1
for(inti=0;
slr[i];
i++)
if(str[i]=’a’&
&
str[i]<
=’z’)num_of_Lowercase++;
//返回小写字符个数
returnnum_of_Lowercase;
评分标准说明:
本小题共10分,具体评分要点如下。
①判断若字符指针为空,则返回0,占2分。
②定义小写字符计数变量并初始化为0,占2分。
③正确的循环条件和循环增量,占2分。
循环的条件可以有多种。
可以用循环变量从0
到strlen(str),也可用str[i]为OxO来判断到了串的结尾。
④循环体占3分。
其中,正确的判断条件表达式占2分,小写字符计数占1分。
⑤返回小写字符计数,占1分。
(2)标准答案
doublequarter_PI(intn)
//检查参数是否合理,若不合理,给出错提示信息,并立即退出,返回—1.
if(n<
0)
cout<
<
“Error!
”<
endl;
return-1;
//递归算法计算四分之一圆周率
if(n==1)
return=1;
else
if(n%2==1)
returnquarter_PI(n-1)+1/(2n-1);
else
returnquarter_PI(n-1)-1/(2n-1);
本小题共10分,具体评分要点如下
①参数合理性检查与处理,占2分。
②判断递归结束条件的语句占4分,如果写了,但有错误,则视情节轻重扣分:
如果‘n==1’写成‘n=1’或‘n=0’或‘n=2’等,扣2分,但写成‘n<
2’或‘n<
=1’是
正确的。
如果没有写return语句或者返回值不是1,扣2分。
③递归调用语句占4分,如果递归语句逻辑不正确,扣3分,如果有语法错误,则适当扣
分。
如果没有return语句,扣1分。
①答:
申请分配一个与double类型数据相应的内存空间。
②答:
不能省,若系统已无内存空间可分配,仍继续执行本程序可能发生破坏性后果。
③答:
释放相应于前面申请获准所占用的内存空间。
④答:
根据输人的边长计算正方形的面积。
⑤答:
执行结果输出内容为:
thesideis:
1.2
theareaofrectangleis1.44
Theprogramsuccessed!
本小题共10分,①—⑤各占2分。
(2)标准答案
Thereare0objects.
Thereare1objects.
classChildren:
10
classPaternity:
Hi
OK
本小题共15分,输出每行信息占3分。
(3)标准答案
ListAisnotfull!
ListBisfull!
ListBisDeleted:
ListAisDeleted:
No,Cantbedeleted!
012347698