C++规范设计简易教程思维训练答案Word格式.docx

上传人:b****8 文档编号:22268611 上传时间:2023-02-03 格式:DOCX 页数:66 大小:146.09KB
下载 相关 举报
C++规范设计简易教程思维训练答案Word格式.docx_第1页
第1页 / 共66页
C++规范设计简易教程思维训练答案Word格式.docx_第2页
第2页 / 共66页
C++规范设计简易教程思维训练答案Word格式.docx_第3页
第3页 / 共66页
C++规范设计简易教程思维训练答案Word格式.docx_第4页
第4页 / 共66页
C++规范设计简易教程思维训练答案Word格式.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

C++规范设计简易教程思维训练答案Word格式.docx

《C++规范设计简易教程思维训练答案Word格式.docx》由会员分享,可在线阅读,更多相关《C++规范设计简易教程思维训练答案Word格式.docx(66页珍藏版)》请在冰豆网上搜索。

C++规范设计简易教程思维训练答案Word格式.docx

floatgetCircleArea(floatr)

return3.14*r*r;

12

(1)升旗仪式:

取旗,奏国歌,升旗,行礼,降旗

(2)写论文:

写题纲,找资料,写作,修改

(3)炸碉堡:

取炸药包,掩护,埋包,退回,引爆

(4)旅游策划:

确定目的地,定路线,订宾馆,订机票等。

第二章答案

(1)编译出错:

通过出错信息,定位并改正语法错误;

连接出错:

检查申明和源码之间是滞匹配等;

运行出错:

单步调试或者断点调试等,检查变量的状态。

(2)F10/F11交替使用单步调试,使用变量窗口和查看窗口查看数据状态。

(3)最关键的是cpp源码文件和h声明文件。

如主模块所在cpp源码文件,自定义模块所在cpp源码文件,自定义模块的h声明文件。

拷贝一个项目两种方法:

一是拷贝整个项目;

二是拷贝cpp和h文件。

(4)放在章节目录下,如第一章程序位置:

c:

\c++\chapt1

(5)新建项目、拷贝核心文件(源码和声明)、项目中添加核心文件

(6)随机值,因为编译时,会将变量赋一个随机值

(7)错误信息:

c没有被定义

(8)在相应位置设置断点(F9),运行至断点(F5)即可通过变量窗口查看此时值

(9)三种常用函数:

绝对值函数fabs(3)正弦函数sin(4)求平方根函数sqrt

(2)。

使用数学函数,要加#include<

math.h>

(10)项目名为:

ThreeMaxMinProj,项目下建立3个文件,模型图如下:

BBAAA

ABABCCA

3选择题

√√√

4改错题

(1)正确答案

#include<

iostream.h>

intgetPoly3Value(intx);

intmain(){

intx,y;

cin>

>

x;

y=getPoly3Value(x);

cout<

<

y;

return0;

intgetPoly3Value(intx){

returnx*x*x+2*x*x+1;

(2)正确答案

voidswap(a,b);

inta,b;

a>

b;

swap(a,b);

a<

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>

cc>

aa)returncc;

9答辩题-模块代码

floatgetDeposit(floatcapital,floatrate,intyear)//可归属于Finance

floatdeposit;

deposit=capital*pow(1+rate,year);

returndeposit;

10编程题(提高)-模块代码

#include"

Finance"

floatcapital,rate;

intyear;

floatresult1,result21,result22;

//不转存情况

capital=10000;

rate=0.03;

year=5;

result1=getDeposit(capital,rate,year);

"

不转存情况"

result1<

endl;

//转存,先求前三年,在此基础上,求后两年

rate=0.02;

year=3;

result21=getDeposit(capital,rate,year);

capital=result21;

rate=0.04;

year=2;

result22=getDeposit(capital,rate,year);

转存情况"

result22<

第三章答案

(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

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;

c1<

c2<

c3<

c4<

c5;

5编程题

voidchangeChar(charc1,charc2,charc3,charc4,charc5){

c1=c1+5;

c2=c2+5;

c3=c3+5;

c4=c4+5;

c5=c5+5;

6编程题

calc模块

main模块

intcalc(inta,intb,charsign)

if(sign=='

+'

returna+b;

returna-b;

intmain()

inta,b,result;

charsign;

b>

sign;

result=calc(a,b,sign);

result<

7编程题

chargetChangedChar(charch)

returnch+5;

8编程题

方法一

方法二

if(ch>

='

a'

ch<

z'

if(ch+5>

'

{

returnch+5-26;

}

elsereturnch+5;

A'

Z'

boolisChar(charch)//先做判断是否字符模块

||ch>

returntrue;

elsereturnfalse;

ch=ch+5;

if(isChar(ch))

returnch;

elsereturnch-26;

第四章答案

(1)在传递的模块中改变自身的值

(2)传地址、类型匹配、间接操作

(3)sizeof(指针变量)

(4)随机地址

(5)不能直接赋值,需要强制转成整形地址后再赋值。

int*p;

p=(int*)0x12ff7c;

(6)pC++表示指针移动1个字节;

pI++表示指针移动4个字节

1

2

3

4

5

6

7

8

9

10

C

D

A

B

×

voidsetMaxMin(floata,floatb,float*pMax,float*pMin){

b){

*pMax=a;

*pMin=b;

else{

*pMax=b;

*pMin=a;

intgetMax(intdata1,intdata2,intdata3)

intmax;

if(data1>

data2&

data1>

data3)max=data1;

if(data2>

data1&

data2>

data3)max=data2;

if(data3>

data3>

data1)max=data3;

returnmax;

intgetMin(intdata1,intdata2,intdata3)

intmin;

if(data1<

data1<

data3)min=data1;

if(data2<

data2<

data3)min=data2;

if(data3<

data3<

data1)min=data3;

returnmin;

intdata1,data2,data3,max,min;

data3;

max=getMax(data1,data2,data3);

min=getMin(data1,data2,data3);

max<

min;

voidsetMaxMin(intdata1,intdata2,intdata3,int*pMax,int*pMin)

data3)*pMax=data1;

data3)*pMax=data2;

data1)*pMax=data3;

data3)*pMin=data1;

data3)*pMin=data2;

data1)*pMin=data3;

setMaxMin(data1,data2,data3,&

max,&

min);

voidsetMaxMin(intdata1,intdata2,intdata3,int&

aMax,int&

aMin)

data3)aMax=data1;

data3)aMax=data2;

data1)aMax=data3;

data3)aMin=data1;

data3)aMin=data2;

data1)aMin=data3;

setMaxMin(data1,data2,data3,max,min);

(1)welcome模块

voidwelcome(void)

*********************************************************"

;

*欢迎使用本程序*"

*本程序是将三个整数进行排序*"

*作者:

李祎*"

(2)sort模块

voidsort(int*pA,int*pB,int*pC)

if(*pA>

*pB){temp=*pA;

*pA=*pB;

*pB=temp;

*pC){temp=*pA;

*pA=*pC;

*pC=temp;

if(*pB>

*pC){temp=*pB;

*pB=*pC;

(3)main模块

inta,b,c;

welcome();

c;

sort(&

a,&

b,&

c);

b<

第五章答案

(1)通过调用模块的返回值给本模块的的变量赋值;

将本模块变量的地址传递过去,在调用模块中通过间接方式修改本模块的变量值;

将本模块变量的名传递过去,在调用模块中通过引用名修改本模块的变量值;

(2)模块设计指的是将所要实现的功能写成一个独立的单元,这个单元的名字叫模块或者叫函数;

结构编程指的是模块内部编程时,只有一个入口和一个出口的顺序、选择、循环三种结构代码,不能够在三种结构里随意地跳转。

(3)一般情况下,switch用于离散值的选择,根据输入的几个特定的值去选择分支走向,如菜单的制作;

if/else用于较复杂的选择环境。

(4)对齐格式用setiosflags(ios:

:

对齐格式)来控制,具体小数的位数用setprecision(小数位数)控制,总长度用setw(总长度)控制,另外总长度需要每次输出时都明确。

(5)赋值是对一个已经定义的变量传值,而克隆是在定义变量的同时传值。

voidprtGrade(floatscore){

chargrade;

if(score>

=85)grade='

elseif(score>

=70)grade='

b'

=60)grade='

c'

elsegrade='

d'

gradeis:

grade<

voidprtByGrade(chargrade){

switch(grade){

case'

cout<

85-100\n"

break;

70-84\n"

60-69\n"

60\n"

default:

输入有错"

chargetGrade(floatscore){

returngrade;

boolisLeapYear(intyear){

boolflag;

if(year%4==0&

year%100!

=0||year%400){

flag=true;

else{

flag=false;

returnflag;

9编程题

判断是否构成三角形模块isTri

求三棱锥体积模块

boolisTri(floata,floatb,floatc){

if(a<

b+c&

a+c&

c<

a+b)

flag=true;

else

flag=false;

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;

cout<

这不是三棱锥"

vol=0;

returnvol;

10编程题

求根模块setRoot

主模块main

intsetRoot(inta,intb,intc,float*pRoot1,float*pRoot2){

floatdet=b*b-4*a*c;

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;

*pRoot1=(-b*1.0)/(2*a);

*pRoot2=sqrt(-det)/(2*a);

flag=-1;

floatroot1,root2;

请输入3个系数:

cin>

flag=setRoot(a,b,c,&

root1,&

root2);

if(flag==1)

两个不等实根:

root1<

"

root2;

elseif(flag==0)

两个相等实根:

两个虚根:

虚根1:

+"

root2<

i"

虚根2:

-"

 

第六章答案

(1)循环初始值、循环条件、循环变量的改变

(2)while

(1)

(3)找到第n项的项值

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 法语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1