11[填空题]在C++中,三种派生方式的说明符号为( )、( )、( )不加说明,则默认的派生方式为( )。
参考解析:public 、private 、 protected、private
12[单选题]线性表常采用的两种存储结构是( )。
A.顺序存储结构和链式存储结构
B.散列方法和索引方式
C.链表存储结构和数组
D.线性存储结构和非线性存储结构
参考答案:A
参考解析:线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。
13[单选题]下列程序段执行后,j值是( )。
for(int i(0), j(0); i<10; i++)
if(i) j++;
A.0 B.9C.10 D.无限
参考答案:B
14[单选题]有以下程序,执行后输出结果是( )。
A.3,4,5 B.5,3,4 C.5,4,3 D.4,3,5
参考答案:D
参考解析:考生根据分析可以得知f函数的功能是交换两个变量的值。表明看起来,在main函数中,使用三次f函数完成三个变量的交换。真的如此么?只要考生注意到f函数采用值传递,而值传递的缺点就是不会改变形参的值,因此,上述操作根本无法改变原来三个变量的值!故三个变量的值依然保持不变。
15[单选题] 已知类A有公用数据成员a,并重载了=运算符,且有Aobj2;constA*ptr=newA;,则下列语句错误的是( )。
A.ptr->a=100;B.ptr=&obj2;C.ptr++;D.obj2=*ptr;
参考答案:A
参考解析:本题考查const修饰符的作用。注意,const位置不同,其修饰的部分也是不同的。本题中const修饰的是ptr所指的对象本身,所以,ptr可以重新指向新的对象,而ptr->a则无法被更新。
16[单选题]下列函数的运行结果是( )。
A.25B.30C.20D.15
参考答案:A
参考解析:
17[单选题] 对于循环队列,下列叙述中正确的是( )。
A.队头指针是固定不变的
B.队头指针一定大于队尾指针
C.队头指针一定小于队尾指针
D.队头指针可以大于队尾指针,也可以小于队尾指针
参考答案:D
参考解析:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列结构中,当存储空间的最后一个位置已被使用而再要进行入队运算时,只要存储空间的第一个位置空闲,可将元素加入到第一个位置,即将存储空闲的第一个位置作为队尾。
18[单选题]以下程序的输出结果是( )。
A.1234B.123C.12D.1
参考答案:B
参考解析:本题考察的是循环次数的判定。有while后的逻辑表达式可知,整个循环体需要执行3次,故可直接选定正确答案为B。
19[填空题]十进制28和3.6的类型分别是_______。
参考解析:int和double
【解析】整型和双精度型。注意除非定义了float变量。实型常量隐含为 double型。
20[简答题]请使用VC6或使用【答题】菜单打开考生文件夹prosS下的工程pr093,其中包含了类TaxCaleulator(“个税计算器”)和主函数main的定义。创建“个税计算器”需要接收税率表信息和起征额信息。在main函数中,通过两个数组创建了如下的税率表:
利用这个税率表创建“个税计算器”时,假定起征额为2 000元(即不超过2 000元的所得不征收个人所得税)。请补充完成计算应纳个人所得税额的成员函数getTaxPayable,其中的参数income为月收入。此程序的正确输出结果应为:
月收入为800元时应缴纳个人所得税0元
月收入为l 800元时应缴纳个人所得税0元月收入为2 800元时应缴纳个人所得税 55元 月收入为3 800元时应缴纳个人所得税l55元
月收入为4 800元时应缴纳个人所得税295元月收入为5 800元时应缴纳个人所得税455元
注意:只能在函数9etTaxPayable中的“//**********333**********”和“//**********666**********”之间
填人若干语句,不要改动程序中的其他内容。 //Tax Calculator.h #include #include
using flamespace std; class TaxCalculator{ public:
TaxCalculator(double the—limits[],double the_rates[],int the—length,double the_threshold) :lower_limits(new double[the_length]),rates(new double[the—length]),
list_len(the_length),threshold(the—threshold){ for(int i=0;i
lower_limits[i]=the_limits[i]; rates[i]=the_rates[i];
} f
—TaxCalculator(){delete[]lower_limits;delete[]rates;}
double getTaxPayable(double income)eonst;//返回指定月收入的应纳个人所得税额 void showTaxPayable(double income)const;//显示指定月收入的应纳个人所得税额 private:
double$lower—limits;//适用收入段下限 double *rates; //适用税率
int list—len;//税率表项数
double threshold; //起征额 };
void writeToFile(consl char * path); //TaxCalcnlator.cpp
‘#include”TaxCalculator.h”
double TaxCalculator::getTaxPayable(double income)const{ double taxable=income—threshold;
//应纳税工资额
double tax_payable=0.0; //应纳个人所得税额
int i=list_len-1;
//从税率表的最高适用段开始计算 while(i>=0){
//**********333**********
//**********666**********
--i; }
return tax_payable;
} void TaxCalculator::showTaxPayable(double income)const{
cout<<”月收入为”<
}
//main.cpp
#include”TaxCalculator.h” int main(){
double limits[]={0.0,500.0,2000.0,5000.0,20000.0,40000.0,60000.0,80000。0,100000.0}; double rates[]={0.05,0.1,0.15,0.2,0.25,0.3,O.35,0.4,0.45};
TaxCaleulator calc(1imits,rates,9,2000.0); calc.showTaxPayable(800.0);
calc.showTaLPayable(1800.0); cale.showTaxPayable(2800.0); calc.showTaxPayable(3800.0); calc.showTaxPayable(4800.0); eaie.showTaxPayable(5800.0); writeToFile(””);
return 0;
}
参考解析:
if f income<=2000)//如果收入小于2000
return tax—payable;
//直接tex—payable(初始代为零)
i“taxable>lower_limits[i]){
//如果taxable(收入超出起征额的部分)大于lower—limits
[i]阶段最低限额
tax_payable+=(taxable-lower-limits[i])*
rates[i]:
//把起过阶段最低限额的部分乘以该阶段的税率后,加到tax_payable(个人所得税)
taxable=lower_limits[i];
//把fower_limits[i]赋值于taxable
}
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |