c语言上机标准答案Word格式.docx

上传人:b****6 文档编号:17347424 上传时间:2022-12-01 格式:DOCX 页数:16 大小:24.85KB
下载 相关 举报
c语言上机标准答案Word格式.docx_第1页
第1页 / 共16页
c语言上机标准答案Word格式.docx_第2页
第2页 / 共16页
c语言上机标准答案Word格式.docx_第3页
第3页 / 共16页
c语言上机标准答案Word格式.docx_第4页
第4页 / 共16页
c语言上机标准答案Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

c语言上机标准答案Word格式.docx

《c语言上机标准答案Word格式.docx》由会员分享,可在线阅读,更多相关《c语言上机标准答案Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

c语言上机标准答案Word格式.docx

y=a%c;

a/b的余数=%d\n"

a/c的余数=%d\n"

4.设变量a的值为0,b的值为-10,编写程序:

当a>

b时,将b赋给c;

当a<

=b时,将a赋给c。

(提示:

用条件运算符)

inta,b,c;

a=0;

b=-10;

c=(a>

b)?

b:

a;

c=%d\n"

c);

五、调试和测试结果

1.编译、连接无错,运行后屏幕上显示以下结果:

3、编译、连接无错,运行后屏幕上显示以下结果:

a/b的商=7

a/c的商=3

a/b的余数=10

a/c的余数=15

4.编译、连接无错,运行后屏幕上显示以下结果:

c=-10

实验二顺序结构程序设计

1.键盘输入与屏幕输出练习

问题1D。

问题2改printf("

%c,%c,%d\n"

a,b,c);

这条语句

改成:

printf("

%c%c%d\n"

问题3改scanf("

%c%c%d"

&

a,&

b,&

c);

改为:

scanf("

%c,%c,%d"

问题4改printf("

\’%c\’\’%c\’%d\n"

2

(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。

intmain()

Enteraandb:

"

scanf("

%o%o"

b);

c=a+b;

d:

%d\n"

x:

%x\n"

return0;

2

(2)编写程序:

从键盘输入两个实数a和x,按公式计算并输出y的值:

math.h>

floata,x,y;

%f%f"

x);

y=pow(a,5)+sin(a*x)+exp(a*x)+log(a+x);

y=%f\n"

3.改错题

inta,b,c,s;

%d%d%d"

s=a+b+c;

%d=%d+%d+%d\n"

s,a,b,c);

/*输出s=a+b+c*/

%d+%d+%d=%d\n"

a,b,c,s);

/*输出a+b+c=s*/

2

(1)输入:

1214

输出:

26

1a

2

(2)输入:

10

输出:

2.000000

实验三选择结构程序设计

四、设计流程(算法描述)

(请写出上机内容2

(2)题的算法描述)

主要是两两比较,然后得出最大的数

五、程序清单

2

(1)输入整数x和a,计算并输出下列分段函数f(x)的值(保留2位小数),请调用log函数求自然对数,调用fabs函数求绝对值。

程序为:

intx,a;

doubley;

Enteraandx:

%d%d"

if(fabs(x)!

=a)

y=log(fabs((float)(a+x)/(a-x)))/(2*a);

else

y=0;

a=%d,f(%d)=%.2f\n"

a,x,y);

(2)输入a、b、c三个整数,输出最大数。

inta,b,c,x;

if(a>

=b)

x=a;

x=b;

if(x<

c)

x=c;

themaxnumberis:

正确程序为:

doublen;

Entern:

%lf"

n);

if(n<

0)

printf("

%lfislessthan0\n"

n);

elseif(n==0)

printf("

%lfisequalto0\n"

%lfisgreater0\n"

六、调试和测试结果

2

(1)Enteraandx:

56

a=5,f(6)=0.24

Enteraandx:

55

a=5,f(5)=0.00

321输出:

3

输入:

231输出:

输入:

123输出:

实验四循环结构程序设计

(请写出上机内容2的算法描述)

首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数x与因子之和相等,就是完数。

1.编写程序:

求1+2+3+…+100和12+22+33+…+1002。

inti,j,sum;

sum=0;

for(i=1;

i<

=100;

i++)

sum+=i;

thesumis:

sum);

sum=0;

for(i=1;

{

j=pow(i,2);

sum+=j;

}

thesquaresumis:

2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。

main()

inti,j,sum=0;

for(i=2;

=5000;

i++)//遍历从2到5000的所有数

sum=0;

for(j=1;

j<

=i/2;

j++)//找出给定整数X的所有因子和

{

if(i%j==0)

sum+=j;

}

if(i==sum)//sum为因子和,如果和i相等,则输出

%d"

i);

}

3.改错题

intn=1;

intfind=0;

while(!

find)

if(n%5==1&

&

n%6==5&

n%7==4&

n%11==10)

n=%d\n"

n);

find=1;

n++;

1:

结果:

thesumis:

5050

thesquaresumis:

338350

2:

628496

实验五函数和预处理命令

(请写出上机内容1的算法描述)

利用循环将m乘n次

1.编写自定义函数longpower(intm,intn),计算

的值。

利用此函数编程序实现:

从键盘输入两个整数m和n,计算出

longpower(intm,intn)//要返回的是long型

inti;

longs;

//因为是要返回的数,所以这里也定义为long型

s=1;

=n;

s*=m;

returns;

intmain(void)

intm,n;

m,&

s=%ld\n"

power(m,n));

}

2、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。

1.源程序如下:

intzdgys(intn1,intn2)

{inty,i;

for(i=n2;

=1;

i--)

if(n1%i==0&

n2%i==0)

{y=i;

break;

returny;

intzxgbs(intn1,intn2)

for(i=n1;

=n1*n2;

if(i%n1==0&

i%n2==0)

{intn1,n2,t;

n1=%dn2=%d"

n1,&

n2);

if(n1<

n2)

{t=n1;

n1=n2;

n2=t;

zdgys=%dzxgbs=%d"

zdgys(n1,n2),zxgbs(n1,n2));

3、改错题

正确程序如下:

intfact(intn);

intmulti(intn);

{inti;

doublesum,item,eps;

eps=1E-6;

sum=1;

item=1;

item>

=eps;

{item=fact(i)/multi(2*i+1);

sum=sum+item;

printf(“PI=%0.5lf\n”,sum*2);

return0;

intfact(intn)

intres=1;

for(i=0;

res=res*i;

returnres;

intmulti(intn)

for(i=3;

i=i+2)

六、调试和测试结果

1、输入:

23

s=8

2、输入:

n1=24n2=16

zdgys=8zxgbs=48

2.

3、输出结果为:

实验六数组

设置两个变量分别指示头和尾。

第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。

从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。

自定义函数voidantitone(inta[],intn)实现将数组中的n个数据按逆序存放。

voidantitone(inta[],intn)

inti,j;

intk;

i=0;

j=n-1;

while(i<

j)

k=a[i];

a[i]=a[j];

a[j]=k;

i+=1;

j-=1;

2.已知某数列的前两项为2和3,其后每一项为其前两项之积。

编程实现:

从键盘输入一个整数x,判断并输出x最接近数列的第几项?

voidMad(inta[],intn)

a[0]=2;

a[1]=3;

n;

a[i]=a[i-1]*a[i-2];

inta[100],x,k1,k2;

Mad(a,100);

//产生序列

inputx:

%d"

for(;

x>

a[i];

i++);

k1=abs(x-a[i-1]);

k2=abs(x-a[i]);

if(k1>

k2)

x最接近第%d项\n"

i+1);

x最接近第%d项\n"

3、源程序如下:

{

charc[15];

inti,word=0,num=0,space=0;

=14;

scanf("

%c"

c[i]);

{if(c[i]=='

'

)space++;

if(c[i]>

='

0'

c[i]<

9'

)num++;

if(c[i]>

'

a'

z'

)word++;

字符:

%d数字:

%d空格:

word,num,space);

12345

54321

2、输入:

110

x最接近第6项

3、输入:

sd234kj64jkmjk

9数字:

5空格:

1

实验七数组和函数综合程序设计

(请写出上机内容2、3中源程序)

2、原程序求得的是下三角形,经改进调试之后的程序为:

#include<

#defineN6

inti,j,sum=0;

inta[N][N]={0};

input5×

5data:

\n"

for(i=1;

N;

Inputthe%dlinedata:

for(j=1;

j++)

a[i][j]);

%5d"

a[i][j]);

for(i=1;

for(j=N-1;

j>

=i;

j--)

sum=sum+a[i][j];

sum=%d\n"

3、

voidfun(inttt[M][N],intpp[N])

{inti,j,max;

for(j=0;

j<

j++)

{max=tt[0][j];

M;

i++)if(tt[i][j]>

max)max=tt[i][j];

pp[j]=max;

(写出上机内容1中填空的内容)

1、

(1)sum=0

(2)t[i][i](3)1

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

当前位置:首页 > IT计算机 > 互联网

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

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