return0;
}
voidswap(inta,intb){
inttemp;
temp=a;a=b;b=temp;
}
(3)主模块中调用getSquareSum,但并没有声明。
修改:
将Int.h中将getSquare改为getSquareSum
(4)清单文件中声明是getSquareSum模块,但源码文件提供是getSquare模块,不匹配,故连接出错。
修改:
将Int.cpp中将getSquare改为getSquareSum
5调试题
aa,bb,cc的值是3,4,5
6画图题
图形
表达式
intgetCommDiv(intdata1,intdata2)
intgetCommMult(intdata1,intdata2)
char*strCat(char*str1,char*str2)
intgetSeriesN(intn)
intgetMax(inta,intb,intc)
voidprintMax(inta,intb,intc)
voidprintAllInt(void)
7画图题
8答辩题-模块代码
intfindMax(intaa,intbb,intcc)
{
if(aa>bb&&aa>cc)returnaa;
if(bb>aa&&bb>cc)returnbb;
if(cc>aa&&cc>aa)returncc;
}
9答辩题-模块代码
#include
floatgetDeposit(floatcapital,floatrate,intyear)//可归属于Finance
{
floatdeposit;
deposit=capital*pow(1+rate,year);
returndeposit;
}
10编程题(提高)-模块代码
#include
#include"Finance"
intmain(){
floatcapital,rate;
intyear;
floatresult1,result21,result22;
//不转存情况
capital=10000;rate=0.03;year=5;
result1=getDeposit(capital,rate,year);
cout<<"不转存情况"<//转存,先求前三年,在此基础上,求后两年
capital=10000;rate=0.02;year=3;
result21=getDeposit(capital,rate,year);
capital=result21;rate=0.04;year=2;
result22=getDeposit(capital,rate,year);
cout<<"转存情况"<}
第三章答案
1简答题
(1)假如整形变量a,则(int)a强制转成小数
(2)算术>关系>逻辑
(3)大于小于等于不等于等
(4)字符常量用单引号,字符串常量用双引号。
如’a’与”a”
(5)三步骤:
定义,声明,使用
(6)’a’是字符a,其码值是97;’\a’是字符响铃,其码值是7。
’0’是字符0,其码值是48;’\0’是不可见字符,其码值是0。
(7)void
(8)假如整形变量a,通过sizeof(a)可知道分配多少单元
(9)小数表示法,科学计数法
(10)-2147483648---2147483647
(11)假如整形变量a,则一个整数得到最后一位方法:
a%10;去除最后一位方法:
a/10
2选择题
CCAAB
BAAAAA
注:
第7题题目答案有改变
3计算题
(1)25
(2)12.5(3)18
4编程题
voidlower2Upper(charc1,charc2,charc3,charc4,charc5){
c1=c1-32;
c2=c2-32;
c3=c3-32;
c4=c4-32;
c5=c5-32;
cout<}
5编程题
voidchangeChar(charc1,charc2,charc3,charc4,charc5){
c1=c1+5;
c2=c2+5;
c3=c3+5;
c4=c4+5;
c5=c5+5;
cout<}
6编程题
calc模块
main模块
intcalc(inta,intb,charsign)
{
if(sign=='+')
{
returna+b;
}
else
{
returna-b;
}
}
intmain()
{
inta,b,result;
charsign;
cin>>a>>b>>sign;
result=calc(a,b,sign);
cout<return0;
}
7编程题
chargetChangedChar(charch)
{
returnch+5;
}
8编程题
方法一
方法二
chargetChangedChar(charch)
{
if(ch>='a'&&ch<='z')
{
if(ch+5>'z')
{
returnch+5-26;
}
elsereturnch+5;
}
if(ch>='A'&&ch<='Z')
{
if(ch+5>'Z')
{
returnch+5-26;
}
elsereturnch+5;
}
}
boolisChar(charch)//先做判断是否字符模块
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
{
returntrue;
}
elsereturnfalse;
}
chargetChangedChar(charch)
{
ch=ch+5;
if(isChar(ch))
{
returnch;
}
elsereturnch-26;
}
第四章答案
1简答题
(1)在传递的模块中改变自身的值
(2)传地址、类型匹配、间接操作
(3)sizeof(指针变量)
(4)随机地址
(5)不能直接赋值,需要强制转成整形地址后再赋值。
int*p;p=(int*)0x12ff7c;
(6)pC++表示指针移动1个字节;pI++表示指针移动4个字节
2选择题
1
2
3
4
5
6
7
8
9
10
C
D
A
A
B
C
C
C
D
D
3判断题
1
2
3
4
5
6
7
8
9
10
√
×
×
√
√
√
√
×
√
√
4编程题
voidsetMaxMin(floata,floatb,float*pMax,float*pMin){
if(a>b){
*pMax=a;*pMin=b;
}
else{
*pMax=b;*pMin=a;
}
}
5编程题
intgetMax(intdata1,intdata2,intdata3)
{
intmax;
if(data1>data2&&data1>data3)max=data1;
if(data2>data1&&data2>data3)max=data2;
if(data3>data1&&data3>data1)max=data3;
returnmax;
}
intgetMin(intdata1,intdata2,intdata3)
{
intmin;
if(data1if(data2if(data3returnmin;
}
#include
intmain()
{
intdata1,data2,data3,max,min;
cin>>data1>>data2>>data3;
max=getMax(data1,data2,data3);
min=getMin(data1,data2,data3);
cout<return0;
}
6编程题
voidsetMaxMin(intdata1,intdata2,intdata3,int*pMax,int*pMin)
{
if(data1>data2&&data1>data3)*pMax=data1;
if(data2>data1&&data2>data3)*pMax=data2;
if(data3>data1&&data3>data1)*pMax=data3;
if(data1if(data2if(data3}
#include
intmain()
{
intdata1,data2,data3,max,min;
cin>>data1>>data2>>data3;
setMaxMin(data1,data2,data3,&max,&min);
cout<return0;
}
7编程题
voidsetMaxMin(intdata1,intdata2,intdata3,int&aMax,int&aMin)
{
if(data1>data2&&data1>data3)aMax=data1;
if(data2>data1&&data2>data3)aMax=data2;
if(data3>data1&&data3>data1)aMax=data3;
if(data1if(data2if(data3}
#include
intmain()
{
intdata1,data2,data3,max,min;
cin>>data1>>data2>>data3;
setMaxMin(data1,data2,data3,max,min);
cout<return0;
}
8编程题
(1)welcome模块
voidwelcome(void)
{
cout<<"*********************************************************";
cout<<"*欢迎使用本程序*";
cout<<"*本程序是将三个整数进行排序*";
cout<<"*作者:
李祎*";
cout<<"*********************************************************";
}
(2)sort模块
voidsort(int*pA,int*pB,int*pC)
{
inttemp;
if(*pA>*pB){temp=*pA;*pA=*pB;*pB=temp;}
if(*pA>*pC){temp=*pA;*pA=*pC;*pC=temp;}
if(*pB>*pC){temp=*pB;*pB=*pC;*pC=temp;}
}
(3)main模块
#include
intmain()
{
inta,b,c;
welcome();
cin>>a>>b>>c;
sort(&a,&b,&c);
cout<return0;
}
第五章答案
1简答题
(1)通过调用模块的返回值给本模块的的变量赋值;将本模块变量的地址传递过去,在调用模块中通过间接方式修改本模块的变量值;将本模块变量的名传递过去,在调用模块中通过引用名修改本模块的变量值;
(2)模块设计指的是将所要实现的功能写成一个独立的单元,这个单元的名字叫模块或者叫函数;结构编程指的是模块内部编程时,只有一个入口和一个出口的顺序、选择、循环三种结构代码,不能够在三种结构里随意地跳转。
(3)一般情况下,switch用于离散值的选择,根据输入的几个特定的值去选择分支走向,如菜单的制作;if/else用于较复杂的选择环境。
(4)对齐格式用setiosflags(ios:
:
对齐格式)来控制,具体小数的位数用setprecision(小数位数)控制,总长度用setw(总长度)控制,另外总长度需要每次输出时都明确。
(5)赋值是对一个已经定义的变量传值,而克隆是在定义变量的同时传值。
2选择题
1
2
3
4
5
6
7
8
9
10
B
A
C
C
B
D
D
A
C
D
3判断题
1
2
3
4
5
6
7
8
9
10
√
√
√
√
×
×
×
√
√
√
4画图题
5编程题
#include
voidprtGrade(floatscore){
chargrade;
if(score>=85)grade='a';
elseif(score>=70)grade='b';
elseif(score>=60)grade='c';
elsegrade='d';
cout<<"gradeis:
"<}
6编程题
voidprtByGrade(chargrade){
switch(grade){
case'a':
cout<<"85-100\n";break;
case'b':
cout<<"70-84\n";break;
case'c':
cout<<"60-69\n";break;
case'd':
cout<<"<60\n";break;
default:
cout<<"输入有错";break;
}
}
7编程题
chargetGrade(floatscore){
chargrade;
if(score>=85)grade='a';
elseif(score>=70)grade='b';
elseif(score>=60)grade='c';
elsegrade='d';
returngrade;
}
8编程题
boolisLeapYear(intyear){
boolflag;
if(year%4==0&&year%100!
=0||year%400){
flag=true;
}
else{
flag=false;
}
returnflag;
}
9编程题
判断是否构成三角形模块isTri
求三棱锥体积模块
boolisTri(floata,floatb,floatc){
boolflag;
if(a
{
flag=true;
}
else
{
flag=false;
}
returnflag;
}
floatgetTriVol(floata,floatb,floatc,floath){
floatp,vol;
if(isTri(a,b,c)){
p=0.5*(a+b+c);
vol=h*sqrt(p*(p-a)*(p-b)*(p-c))/3;
}
else{
cout<<"这不是三棱锥";
vol=0;
}
returnvol;
}
10编程题
求根模块setRoot
主模块main
#include
intsetRoot(inta,intb,intc,float*pRoot1,float*pRoot2){
floatdet=b*b-4*a*c;
boolflag;
if(det>0)
{
*pRoot1=(-b+sqrt(det))/(2*a);
*pRoot2=(-b-sqrt(det))/(2*a);
flag=1;
}
elseif(det==0)
{
*pRoot1=*pRoot2=(-b*1.0)/(2*a);
flag=0;
}
else
{
*pRoot1=(-b*1.0)/(2*a);
*pRoot2=sqrt(-det)/(2*a);
flag=-1;
}
returnflag;
}
#include
intmain()
{
inta,b,c;
floatroot1,root2;
boolflag;
cout<<"请输入3个系数:
";cin>>a>>b>>c;
flag=setRoot(a,b,c,&root1,&root2);
if(flag==1)
{
cout<<"两个不等实根:
"<}
elseif(flag==0)
{
cout<<"两个相等实根:
"<}
else
{
cout<<"两个虚根:
"<cout<<"虚根1:
"<cout<<"虚根2:
"<}
}
第六章答案
1简答题
(1)循环初始值、循环条件、循环变量的改变
(2)while
(1)
(3)找到第n项的项值