VC课程实践正确答案1Word下载.docx

上传人:b****6 文档编号:18059181 上传时间:2022-12-13 格式:DOCX 页数:91 大小:185.58KB
下载 相关 举报
VC课程实践正确答案1Word下载.docx_第1页
第1页 / 共91页
VC课程实践正确答案1Word下载.docx_第2页
第2页 / 共91页
VC课程实践正确答案1Word下载.docx_第3页
第3页 / 共91页
VC课程实践正确答案1Word下载.docx_第4页
第4页 / 共91页
VC课程实践正确答案1Word下载.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

VC课程实践正确答案1Word下载.docx

《VC课程实践正确答案1Word下载.docx》由会员分享,可在线阅读,更多相关《VC课程实践正确答案1Word下载.docx(91页珍藏版)》请在冰豆网上搜索。

VC课程实践正确答案1Word下载.docx

x=x1;

p=newdouble[num+1];

}

~pp()

delete[]p;

doublepp:

fun(intn1,doublex)

if(n1==0)return1;

if(n1==1)returnx;

if(n1>

1)return((2*n1-1)*x*fun(n1-1,x)-(n1-1)*fun(n1-2,x))/n1;

}

voidpp:

process()

inti;

for(i=0;

i<

=n;

i++)

*(p+i)=fun(i,x);

show()

coutvv"

n="

<

n<

v'

\t'

vv"

x="

v<

xvvendl;

for(inti=0,m=1;

i<

n;

i++,m++)

cout<

v*(p+i)vv'

;

if(m%4==0)cout«

'

\n'

voidmain()

intnum;

doublex1;

"

putinnumandx1"

endl;

cin»

num>

>

x1;

ppitems(num,x1);

items.process();

items.show();

运行结果

C:

\Users\pzq\Desfcctop\Dmbug\Cppl.exe"

putin

£

numandxl

D

p

b

Fl=6

x=S

1

5

37

305

^3525

Press

anykwytocontinue

2.试建立一个类SP,求,另有辅助函数power(m,n)用于求具体要求如下:

(1)私有成员数据。

intn,k:

存放公式中n和k的值;

(2)公有成员函数。

SP(intn1,intk1):

构造函数,初始化成员数据n和k。

intpower(intm,intn):

求mn。

intfun():

求公式的累加和。

输出求得的结果。

(3)在主程序中定义对象s,对该类进行测试。

classSP{

intn,k;

SP(intn1,intk1);

intpower(intm,intn);

intfun();

SP:

SP(intn1,intk1)

n=n1;

k=k1;

intSP:

power(intm,intn)

if(n==O)return1;

else

for(i=1;

i++)m*=m;

returnm;

fun()

inty=0,x;

for(x=1;

x<

=n;

x++)y+=power(x,k);

returny;

voidSP:

cout«

前n项的和为:

fun()«

endl;

intn1,k1;

输入n1和k1的值"

n1>

k1;

SPs(n1,k1);

s.fun();

s.show();

运行结果:

3•建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

floatarray[20]:

—维整型数组。

数组中元素的个数。

MOVE(floatb[],intm):

构造函数,初始化成员数据。

voidaverage。

输出平均值,并将数组中的元素按要求重新放置。

voidprint():

输出一维数组。

(3)在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

classMOVE{

floatarray[20];

MOVE(floatb[],intm);

voidaverage();

voidprint();

MOVE:

MOVE(floatb[],intm)

n=m;

m;

array[i]=b[i];

voidMOVE:

average()

inti,x;

floata=0;

n;

a+=array[i];

a/=n;

平均值为"

a<

floatff[20];

for(i=0,x=0;

if(array[i]<

a)

ff[x]=array[i];

x++;

}for(i=0;

i++)if(array[i]>

i++)array[i]=ff[i];

print()

intq,p=1;

for(q=0;

q<

n;

q++)

array[q]vv'

if(p%5==0)cout«

p++;

floatb[]={1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3};

intm=9;

MOVEaa(b,m);

aa.average();

aa.print();

d,C\Users\pzq\Desk±

Qp\Debug\Cppl.exE'

sags

直为5-43333

4

1-3

34.6

3-3

2

9.1

7.45.6

anyIcej/tocontinue

4•建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。

int*array:

一维整型数组。

MOVE(intb[],intm):

voidexchange():

~MOVE():

析构函数。

(3)在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。

程序源代码

int*array;

MOVE(intb[],intm);

voidexchange();

~MOVE();

MOVE(intb[],intm)

array=newint[n];

for(intx=0;

x<

x++)array[x]=b[x];

exchange()

inti,*p1,*p2;

Theaverageofthenumberis:

p1=p2=&

array[0];

if(array[i]v*p1)p1=&

array[i];

if(array[i]>

*p2)p2=&

i=*p1;

*p1=*p2;

*p2=i;

inti,num=1;

array[i]vv'

if(num%5==0)cout«

num++;

~MOVE()

{delete[]array;

intb[]={21,65,43,87,12,84,44,97,32,55},n=10;

MOVEff(b,n);

ff.exchange();

ff.print();

#*C:

\Users\pzq\Desktop\Debug\Cppl.exe'

TheaverageofthenumhEris:

54

21654387978444123255Pressanykevtocontinue

5•定义一个类Palindrome,实现绝对回文数。

设计一个算法实现对任意整型数字判断是否为绝对回文数。

所谓绝对回文数,是指十进制数和二进制数均对称的数。

intn:

整型数字。

inty:

标记是否为回文数。

Palindrome(intx):

构造函数,根据x参数初始化数据成员n,y初始化为0。

voidhuiwen():

判断数n是否为绝对回文数。

若该数为回文数,则在屏幕显示。

(3)在主程序中定义inta,由键盘输入数字。

定义一个Palindrome类对象p,用a初始

化p,完成对该类的测试。

classpalindrome{

inty;

palindrome(intx);

voidhuiwen();

palindrome:

palindrome(intx)

n=x;

y=0;

voidpalindrome:

huiwen()

intb[20],c[50],m,i,p=0,t1=1,t2=1;

m=n;

m>

0;

m/=10)

b[i]=m%10;

i++;

p;

if(b[i]!

=b[p-i-1])

t仁0;

break;

for(i=0,m=n,p=0;

m/=2)

P++;

c[i]=m%2;

i++;

if(c[i]!

=c[p-i-1])

t2=0;

break;

if(t1&

&

t2)y=1;

if(y==0)cout<

该数不是回文数!

"

elsecout<

该回文数是:

n<

inta;

输入a的值"

cin>

>

a;

palindromep(a);

p.huiwen();

p.show();

运行结果:

■RC:

\Users\pzq\Desktop\Debug\Cppl.exe'

丨u回A

输入艮的值

12345654321

该数不绝对是回文数!

Pressanykeytocontinue

6.定义一个字符串类String,实现判断该字符串是否为回文字符串。

所谓回文字符串,是

指该字符串左右对称。

例如字符串“123321”是回文字符串。

char*str;

标记是否为回文字符串。

String(char*s):

构造函数,用给定的参数s初始化数据成员str。

y初始化为0。

判断str所指向的字符串是否为回文字符串。

在屏幕上显示字符串。

(3)在主程序中定义字符串chars[]=”ababcedbabd'

作为原始字符串。

定义一个String

类对象test,用s初始化test,完成对该类的测试。

#includevstring.h>

classstring{

inty;

string(char*s);

string:

string(char*s){

str=newchar[strlen(s)];

strcpy(str,s);

}voidstring:

char*p1,*p2;

p2=p1=str;

for(inti=0;

str[i];

i++,p2++);

p2--;

for(;

p1!

=p2;

p1++,p2--)

if(*p1!

=*p2)

{y=0;

elsey=1;

}}voidstring:

show(){

v”字符串为:

”vvstrvvendl;

字符串不是回文数!

elsecoutvvyvvendl;

chars[]="

ababcedbaba"

stringtest(s);

test.huiwen();

test.show();

IZZI

rs\pzq\De5ktop\Debug\Cppl.exe"

为iababcedbaba

丨%1.L

屛?

串不是回文数!

.

Pressanifkeytocon七:

inme

7.建立一个类PHALANX,生成并显示一个折叠方阵。

折叠方阵如下图所示。

折叠方阵的生成过程为:

起始数置于方阵的左上角,然后从起始数开始递增,依次折叠构成方阵。

int(*p)[20]:

指向按照折叠规律存放方阵的二维整型数组。

intstartnum:

折叠方阵的起始数。

存放方针的层数。

PHALANX(ints,intm):

生成起始数为startnum的n行方阵。

输出折叠方阵。

~PHALANX():

(3)在主程序中对该类进行测试。

#includeviomanip.h>

classphalanx{

int(*p)[20];

intstarnum;

phalanx(ints,intm);

〜phalanx();

phalanx:

phalanx(ints,intm)

starnum=s;

voidphalanx:

intnum=starnum;

inty=n,i,j,x;

p=newint[20][20];

for(x=0;

y;

x++)

for(i=0,j=x;

x;

p[i][j]=num;

num++;

j>

=0;

j--)

inti,j,m=0;

for(j=0;

j<

j++)

{cout<

setw(5)<

p[i][j];

~phalanx()

ints,m;

输入s和m的值"

phalanxpp(s,m);

pp.process();

pp.print();

CiXUsersXpzqXDesktopVDebug\CppLexe'

输入直和m的值

16

12

10

17

26:

43

11

18

27

98

7

12

19

28

1615

14

13

20

29

2524

23

22

21

30

3635

34

33

32

31

Pressan^:

keyto

continue

建立一个MATRIX,生成并显示一个螺旋方阵。

螺旋方阵如下图所示,起始数置于方阵的左上角,然后从起始数开始依次递增,按顺时针方向从外向里旋转填数而成。

inta[20][20]:

二维整型数组存放螺旋方阵。

螺旋方阵的起始数。

MATRIX(ints,intm):

构造函数,初始化成员数据startnum和n。

voidprocess。

生成起始数为startnum的n行螺旋方阵。

输出螺旋方阵。

(3)在主程序中定义MATRIX类的对象t对该类进行测试。

classmatrix{

inta[20][20];

matrix(ints,intm);

matrix:

matrix(ints,intm)

voidmatrix:

process(){

intst=starnum;

inti,j,x=O,y=n;

=(y-1)/2;

for(i=x,j=x;

j<

(y-x-1);

a[i][j]=st;

st++;

i>

i--)

}if(x==(y-1)/2)a[i][j]=st;

inti,j;

j++)cout<

setw(8)<

a[i][j];

cout<

cin>

matrixpp(s,m);

pp.process();

pp.print();

\Users\p2q\Desktop\Debug\Cppi.exeH

4-dCkI

删人直

和m白

勺值

17

3

6

24

25

26

8

40

41

42

43

9

39

48

49

44

38

47

4&

45

36

35

16

15

ani/

key

to

continue

9.定义一个字符串类CString,并设计一个算法对该串中各个不同字符出现的频率进行统计。

具体要求如下:

char*str:

指向要统计的字符串。

char(*p)[2]:

动态分配二维空间,用以存放str所指字符串中出现的字符及其出现的

次数(次数在存放时,用该数字对应的ASCII值存放;

在输出次数时,输出该ASCII字符

对应的ASCII值即可)。

int

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

当前位置:首页 > 高等教育 > 军事

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

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