C上机作业答案课案Word格式.docx

上传人:b****5 文档编号:19863159 上传时间:2023-01-11 格式:DOCX 页数:27 大小:21.42KB
下载 相关 举报
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

(a+c>

b))

{p=(a+b+c)/2.0;

area=sqrt(p*(p-a)*(p-b)*(p-c));

area="

area<

}

elsecout<

inputerror!

4.输入a,b,c的值,求一元二次方程:

的解。

{floata,b,c,p,x1,x2;

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

if(p>

=0)

{x1=(-b+sqrt(p))/(2*a);

x2=(-b-sqrt(p))/(2*a);

x1="

x1<

x2="

x2<

NOrealroot!

运行结果

第二章作业答案

1.输入一个整数,计算该数的阶乘。

{inti,n,p=1;

n;

for(i=1;

i<

=n;

i++)

p=p*i;

n<

!

="

p<

2.连续输入若干个整数,输入0结束。

统计其正整数的个数,并计算其中正整数的总和、平均值并输出。

{inta,n=0;

floatavg,sum=0;

do

{cin>

a;

if(a>

0){n++;

sum+=a;

}while(a!

=0);

avg=sum/n;

n="

avg="

avg<

sum="

sum<

3.输出所有的水仙花数。

所谓“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。

如153=13+53+33

程序代码:

{inta,b,c,n;

for(n=100;

1000;

n++)

{a=n%10;

b=n%100/10;

c=n/100;

if(n==a*a*a+b*b*b+c*c*c)

cout<

第3章作业答案

1. 

编写程序输出两个数的最大公约数和最小公倍数。

2. 

计算100---300之内所有素数的和。

3. 

计算s=1-1/3+1/5-1/7+…1/99

4.N是一个四位数,它的9倍恰好是其反序数(例如:

123的反序数是321),求N的值。

第一题:

//用辗转相除法求最大公约数;

{intm,n,r,temp;

m>

temp=m*n;

while(r=m%n)

{m=n;

n=r;

最大公约数="

最小公倍数="

temp/n<

第二题:

{intn,i,s=0;

300;

{for(i=2;

if(n%i==0)break;

if(i==n)s+=n;

s="

s<

第三题:

{intn=1;

floats=0,f=1,p;

for(n=1;

100;

n+=2)

{p=f/n;

s=s+p;

f=-f;

第四题:

{intn,a,b,c,d;

for(n=1000;

10000;

{a=n/1000;

//千位

b=n%1000/100;

//百位

c=n%100/10;

//十位

d=n%10;

//个位

if(9*n==d*1000+c*100+b*10+a)

第四次作业答案

编写两个函数,分别计算两个整数的最大公约数和最小公倍数,并在主函数中调用该函数,并输出结果。

编写一个判断素数的函数,函数原型为:

intisprime(intn),在主函数中调用该函数,计算100—1000之间所有素数的和。

编写一个函数,f(n)=,并在主函数中输出f(10)的值。

(说明自然对数ln的函数原型为doublelog(floatx).

4. 

编写一个计算阶乘的函数,函数原型为intfac(intn),在主函数中调用该函数,计算:

S=M!

+N!

.

//求最大公约数

intgcd(intm,intn)

{intr;

{

m=n;

n=r;

returnn;

//求最小公倍数

intlcd(intm,intn)

{returnm*n/gcd(m,n);

{inta,b;

b;

最大公约数为:

gcd(a,b)<

最小公倍数为:

lcd(a,b)<

//判断素数的函数,若n为素数,函数返回1,否则返回0;

intisprime(intn)

{inti;

for(i=2;

if(n%i==0)return0;

return1;

{inti,s=0;

for(i=100;

if(isprime(i))s=s+i;

doublef(intn)

doubles=0;

s=s+log(i);

returnsqrt(s);

{

f(10)<

//用递归编写计算阶乘的函数

intfac(intn)

{if(n==0||n==1)return1;

elsereturnn*fac(n-1);

{intM,N,s;

M>

N;

s=fac(M)+fac(N);

M<

+"

N<

第五章

第六次上机内容

1、 

定义一个3行4列的数组,计算所有数据的平均值,并输出最大值和最小值和它的行号和列号。

2、 

编写程序,实现一个一维数组的反序存放。

3、 

用选择排序法实现10整数由小到大排序。

4、 

用冒泡法实现10整数由大到小排序。

iostream.h>

{inta[3][4]={{12,6,25,10},{14,9,20,16},{30,22,5,21}};

inti,j,m,n,k,l,max,min;

max=min=a[0][0];

m=n=0;

for(i=0;

3;

for(j=0;

j<

4;

j++)

if(a[i][j]>

max){max=a[i][j];

m=i;

n=j;

elseif(a[i][j]<

min){min=a[i][j];

k=i;

l=j;

max="

max<

行号:

m<

列号:

min="

min<

k<

l<

#defineN6

{inta[N]={12,10,20,21,30,25};

inti,t;

N/2;

{t=a[i];

a[i]=a[N-i-1];

a[N-i-1]=t;

a[i]<

"

#defineN10

//选择排序

{inta[N]={30,21,15,38,25,35,18,28,45,20};

inti,j,t,k;

N-1;

{k=i;

for(j=i+1;

if(a[j]<

a[k])k=j;

if(k!

=i){t=a[i];

a[i]=a[k];

a[k]=t;

//冒泡排序,由大到小排序

{k=0;

N-i-1;

a[j+1])

{t=a[j];

a[j]=a[j+1];

a[j+1]=t;

k=1;

if(k==0)break;

第七次作业

1.定义一个二维数组inta[3][4],分别用指针法和下标法输出其内容。

2.用数组作为函数参数,并通过函数调用还回最大值,最小值和平均值。

函数原型维:

voidfun(inta[10],int*max,int*min,float*avg)

3.编写一个函数voidfun(inta[],intn),将a[]中的n个元素按反序存放,在main函数中调用该函数,分别用数组和指针作为实参。

4.用冒泡法或选择法编写一个排序的函数,然后在主程序中调用该函数实现10个整数的排序。

第一题

stdio.h>

{inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

inti,j;

int*p;

int(*pp)[4];

//用下标法实现;

{for(j=0;

printf("

%3d"

a[i][j]);

printf("

\n"

);

//用列指针实现;

p=&

a[0][0];

12;

*(p+i));

//用行指针实现;

pp=a;

*(*(pp+i)+j));

运行结果截图:

voidfun(inta[10],int*max,int*min,float*avg)

*max=*min=a[0];

10;

{if(*max<

a[i])*max=a[i];

elseif(*min>

a[i])*min=a[i];

s+=a[i];

*avg=s/10.0;

{inta[10]={10,21,8,22,40,23,32,26,30,12};

intmax,min;

floatavg;

fun(a,&

max,&

min,&

avg);

max=%d\n"

max);

min=%d\n"

min);

avg=%6.2f\n"

avg);

运行结果截屏:

voidfun(inta[],intn)

{inti,t;

n/2;

a[i]=a[n-i-1];

a[n-i-1]=t;

{inta[6]={20,12,6,21,29,15};

int*p,i;

//用数组作为函数的实参;

原先数组的序列:

6;

%4d"

a[i]);

用数组作为实参,交换后的序列:

fun(a,6);

//用指针作为函数的实参

用指向数组的指针作为实参,再次交换后的序列:

p=a;

fun(p,6);

//用选择法编写数组排序函数,按从小到大顺序排序

voidsort1(inta[],intn)

{inti,j,k,t;

n-1;

if(a[k]>

a[j])k=j;

if(k!

//用冒泡法排序,按从小到大顺序排序

voidsort2(inta[],intn)

{inti,j,t,f;

{f=1;

n-i-1;

if(a[j]>

f=0;

if(f==1)break;

{inta[10]={40,23,26,20,35,55,12,43,37,45};

inti;

printf("

排序前的序列:

for(i=0;

选择排序后的序列:

sort1(a,10);

\n冒泡排序后的序列:

sort2(a,10);

第八次作业

设数组a[N]中已经有n个数并已按从小到大顺序排序。

要求输入一个数x,将其插入到数组中,使数组仍然有序。

{inta[10]={4,6,8,10,20};

inti,j,x;

x;

9;

{if(a[i]>

x)//寻找插入点;

for(j=9;

j>

i;

j--)//将元素向后移动一位;

a[j]=a[j-1];

a[i]=x;

//空出位置,插入元素x;

break;

编写函数intff(char*s),判断s所指字符串是否为“回文串”,即前后对称。

如abcba为回文串,若是返回1,否则返回0,并在主程序中调用该函数,对输入的字符串进行判断。

string.h>

intff(char*s)

{intn,i;

n=strlen(s);

if(s[i]!

=s[n-i-1])return0;

{charss[20];

ss;

if(ff(ss))cout<

YES!

NO!

编写一个函数voidstrcp(char*s1,char*s2),将字符数组s1中下标为偶数的元素复制到另一个字符数组s2中。

在主程序中调用该函数,输出这个字符串。

//将字符串s1中下标为偶数的字符复制到s2中。

voidstrcp(char*s1,char*s2)

{inti=0,j=0;

s1[i]!

='

\0'

if(i%2==0)s2[j++]=s1[i];

s2[j]='

intmain()

{chars[]="

Nanchang!

charss[10];

strcp(s,ss);

ss<

return0;

输入一行字符,统计其中字母,数字,空格和其他字符的个数。

{chars[100];

intB=0,L=0,D=0,S=0,T=0,i;

cin.getline(s,100,'

\n'

s[i]!

if(s[i]>

A'

s[i]<

Z'

)B++;

elseif(s[i]>

a'

z'

)L++;

elseif(s[i]>

0'

9'

)D++;

elseif(s[i]=='

'

)S++;

elseT++;

大写字符个数:

B<

小写字符个数:

L<

数字字符个数:

D<

空格字符个数:

S<

其他字符个数:

T<

return0;

第九次作业

1、编写一个程序,采用类计算n!

并输出10!

的值.

classJS

{public:

JS(inta)//构造函数;

{n=a;

intfac()//计算N的阶乘;

{inti,p=1;

p=p*i;

returnp;

private:

intn;

};

{JSobj(10);

//定义对象;

ints;

s=obj.fac();

//调用对象的方法计算阶乘;

2、定义并实现一个矩形类,有长宽两个属性,定义一个构造函数初始化对象,用成员函数GetS()、GetL分别

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

当前位置:首页 > 法律文书 > 调解书

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

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