中南大学C 程序设计实践思考题答案Word格式.docx

上传人:b****6 文档编号:17053451 上传时间:2022-11-28 格式:DOCX 页数:27 大小:25.18KB
下载 相关 举报
中南大学C 程序设计实践思考题答案Word格式.docx_第1页
第1页 / 共27页
中南大学C 程序设计实践思考题答案Word格式.docx_第2页
第2页 / 共27页
中南大学C 程序设计实践思考题答案Word格式.docx_第3页
第3页 / 共27页
中南大学C 程序设计实践思考题答案Word格式.docx_第4页
第4页 / 共27页
中南大学C 程序设计实践思考题答案Word格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

中南大学C 程序设计实践思考题答案Word格式.docx

《中南大学C 程序设计实践思考题答案Word格式.docx》由会员分享,可在线阅读,更多相关《中南大学C 程序设计实践思考题答案Word格式.docx(27页珍藏版)》请在冰豆网上搜索。

中南大学C 程序设计实践思考题答案Word格式.docx

if(c>

='

c<

Z'

c+='

-'

3.输入一个学生的成绩,如高于60分,则输出“pass”;

否则,输出“failed”。

floatgrade;

请输入成绩:

grade;

if(grade>

=60)

pass"

else

failed"

4.计算分段函数

#include<

doublex,y;

请输入一个数x:

x;

if(!

x)

y=cos(x)-pow(x,2)+3*x;

y=sin(x)+sqrt(pow(x,2)+1)+3*x;

y="

y<

5.从键盘上输入1~7之间的一个数字,输出其对应星期几的英文表示。

Enteracharacterofnumbersbetween1and7:

switch(c)

{

case'

1'

:

cout<

Monday"

break;

2'

Tuesdag"

3'

Wenesday"

4'

Thursday"

5'

Friday"

6'

Saturday"

7'

Sunday"

default:

wrongnumber"

}

6.设计一个简单的计算器程序,能够进行加、减、乘、除简单运算并显示结果。

输入简单的算术表达式:

(数操作符数)"

intleftOperand,rightOperand;

charOperator;

leftOperand>

Operator>

rightOperand;

intresult;

switch(Operator)

result=leftOperand+rightOperand;

result=leftOperand-rightOperand;

*'

result=leftOperand*rightOperand;

/'

if(rightOperand!

=0)

result=leftOperand/rightOperand;

除数为0,除法不能进行"

break;

Operator<

是本程序不支持的操作。

leftOperand<

rightOperand<

'

result<

实验3

三、思考题参考程序

1.编程计算表达式

的值。

intn,k=1,sum=0,mean;

请输入n的值:

"

n;

while(k<

=n)

{

sum+=k*k;

k++;

if(n>

0)

mean=sum/n;

mean=0;

1~n个整数平方和的均值="

mean<

2.输入两个正整数,判别它们是否互为互质数。

所谓互质数,就是最大公约数是1。

intm,n,r;

请输入两个正整数:

m>

m<

”和”<

if(m<

n)

{r=m;

m=n;

n=r;

}

while(r=m%n)

m=n;

n=r;

if(n==1)

是互质数"

<

else

”不是互质数”<

3.编写程序,输出从公元2000年至3000年间所有闰年的年号。

intyear;

公元2000年至3000年间闰年的年号:

\n"

for(year=2000;

year<

=3000;

year++)

if((year%4==0&

year%100!

=0)||(year%400==0))

\t'

4.编写程序模拟猴子吃桃子问题:

猴子第1天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。

第2天将剩下的桃子又吃了一半,又多吃一个。

以后每天都吃了前一天剩下的一半零1个。

到了第10天,只剩下了一个桃子。

请问猴子第一天共摘了多少个桃子?

方法1:

intday,qian,hou=1;

for(day=9;

day>

=1;

day--)

qian=(hou+1)*2;

hou=qian;

qian<

运行结果:

1534

方法2:

intday,number=1;

number=(number+1)*2;

number<

方法3:

intpeach(int);

第1天共摘了"

peach

(1)<

个"

intpeach(intday)

intnumber;

if(day==10)

number=1;

number=2*(peach(day+1)+1);

returnnumber;

5.计算s=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+…+n)的值。

inti,j,n;

longintsum,total(0);

inputn:

for(i=1;

i<

=n;

i++)

sum=0;

for(j=1;

j<

=i;

j++)

sum+=j;

total+=sum;

s="

total<

inti,n;

longintsum(0),total(0);

sum+=i;

6.马克思曾经做过这样一道趣味数学题:

有30个人在一家小饭馆用餐,其中有男人、女人和小孩。

每个男人花了3先令,每个女人花了2先令,每个小孩花了1先令,一共花了50先令。

请问男人、女人以及小孩各有几个人?

intx,y,z;

for(x=1;

x<

=16;

x++)

for(y=1;

=24;

y++)

z=30-x-y;

if(3*x+2*y+z==50)

Menare"

womenare"

y<

childrenare"

z<

."

}实验4常用程序设计算法

1.读入一个整数N,若N为非负数,则计算N到2×

N之间的整数和;

若N为负数,则求2×

N到N之间的整数和。

分别利用for和while写出两个程序。

intN;

N;

inti=N;

longsum=0;

if(N>

for(;

=2*N;

sum+=i;

i>

i--)

sum<

while(i<

=2*N)

{

i++;

}

while(i>

i--;

2.设

,求与8最接近的s的值及与之对应的n值。

floats=1.0;

intn=1;

do

++n;

s+=1.0/n;

}while(s<

=8);

if((s-8)>

(8-(s-1.0/n)))

s-1.0/n<

'

n="

n-1<

s<

n<

3.已知A>

B>

C,且A+B+C<

100,求满足

的共有多少组。

intA,B,C;

intcount=0;

for(C=0;

C!

=33;

++C)

for(B=100;

B>

C;

--B)

for(A=100;

A>

B;

--A)

{

if((A+B+C<

100)&

((A*A*B*B)==((A*A+B*B)*C*C)))

cout<

A<

B<

C<

endl;

++count;

}

}

countis:

count<

4.一司机出车祸后驾车逃离现场,第一位目击者记得车牌号前两位数字相同,且后两位数字也相同;

第二位目击者是一位数学家,他看出车牌号是四位完全平方数。

试推算肇事车的车牌号。

intn,i;

for(i=32;

100;

n=i*i;

if(n%10==n%100/10&

n/1000==n/100%10)

cout<

5.编程验证“四方定理”:

所有自然数至多只要用4个数的平方和就可以表示。

intnumber,i,j,k,l;

Pleaseenteranumber:

number;

number/2;

i++)

for(j=0;

for(k=0;

k<

=j;

k++)

for(l=0;

l<

=k;

l++)

if(number==i*i+j*j+k*k+l*l)

{

cout<

="

*"

+"

exit(0);

}

6.编程验证“角谷猜想”:

任给一个自然数,若为偶数则除以2,若为奇数则乘3加1,得到一个新的自然数,然后按同样的方法继续运算,若干次运算后得到的结果必然为1。

intn,flag;

flag=1;

pleaseinputn:

while(flag)

if(n%2==0)

n=n/2;

else

n=n*3+1;

if(n==1)

flag=0;

success!

实验5函数和编译预处理

1.参考程序如下:

longintFibonacci(intn);

voidmain()

inti;

longintt,t1;

pleaseinputt:

cin>

t;

for(i=2;

t1=Fibonacci(i);

if(t1>

t){cout<

minFibonacci="

t1<

longintFibonacci(intn)

if(n==0)return1;

elseif(n==1)return1;

elsereturnFibonacci(n-1)+Fibonacci(n-2);

2.参考程序如下:

intnum_n(intn,inta)//由n个a组成的多位数的计算

if(n==1)returna;

elsereturnnum_n(n-1,a)*10+a;

inti,n;

longintsum=0;

for(i=1;

{cout<

num_n(i,2)<

sum+=num_n(i,2);

sum="

3.参考程序如下:

intisprime(intn)//判断n是否为素数的函数

n-1;

if(n%i==0)return0;

//非素数,函数值返回0

return1;

//素数,函数值返回1

inti,min_prime,max_prime;

for(i=1000;

=2000;

if(isprime(i)==1)

最小素数="

for(i=2000;

=1000;

最大素数="

4.参考程序如下:

intsum(intn)

statics=0;

s=s+n;

returns;

inti,n,s;

情指定n:

s=sum(i);

1~n之和="

5.参考程序如下:

intis_h(intn)//判断参数n是否为回文

inti,m,fn;

//i用来记录n的某一位数字,m初值为n,fn用于记录n的倒序数

fn=0;

while(m!

i=(m%10);

fn=(fn*10+i);

m=m/10;

if(fn==n)return1;

//是回文数返回1

elsereturn0;

//不是回文数返回0

intt;

=t;

if(is_h(i)==1)

回文数:

6.参考程序如下:

#defineX(a+b)/2

#defineAREAX*h

floata,b,h,s;

请分别输入a,b,h的值,用空格分隔!

b>

h;

s=AREA;

AREA<

实验六数组

三、实验思考题

参考源代码

思考题1.shi_6_3_1.cpp

iostream.h>

#defineN5

intlookup(int[],int,int);

//函数说明

{inti,a[N],index,yLooked;

请输入N(=5)个整数:

for(i=0;

i++)cin>

a[i];

请输入您要找的整数:

yLooked;

index=lookup(a,N,yLooked);

//函数调用

if(index!

=-1)

您要找的数下标为:

index<

没有找到"

yLooked<

\n谢谢使用本程序,再见!

cin.get();

intlookup(intx[],intn,inty)//函数定义

{intflag=-1;

//首先假设找不到

for(i=0;

if(x[i]==y)

{flag=i;

//找到了则不必再往后找

returnflag;

--------------------------------------------------------------------------------------------------

思考题2.shi_6_3_2.cpp

intmax(int[],int);

{inti,a[N],xMax;

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

当前位置:首页 > 初中教育 > 政史地

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

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