C语言上机题参考答案Word下载.docx

上传人:b****5 文档编号:17282983 上传时间:2022-11-30 格式:DOCX 页数:30 大小:21.13KB
下载 相关 举报
C语言上机题参考答案Word下载.docx_第1页
第1页 / 共30页
C语言上机题参考答案Word下载.docx_第2页
第2页 / 共30页
C语言上机题参考答案Word下载.docx_第3页
第3页 / 共30页
C语言上机题参考答案Word下载.docx_第4页
第4页 / 共30页
C语言上机题参考答案Word下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C语言上机题参考答案Word下载.docx

《C语言上机题参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《C语言上机题参考答案Word下载.docx(30页珍藏版)》请在冰豆网上搜索。

C语言上机题参考答案Word下载.docx

z'

ch-=32;

putchar(ch);

4、输入三个整数,然后输出最大值。

123

3

if(a<

b)a=b;

c)a=c;

a);

5、输入一个三位正整数x,根据十位上的数输出如下:

┌百位(十位上的数是奇数)

输出=┤

└个位(十位上的数是偶数)

示例1:

123

{inta;

a);

if(a/10%2)printf("

a/100);

elseprintf("

a%10);

6、计算分段函数,输入x(整数),输出y(整数):

┌2x+1(x<

1)

y=│4x+3(x=1)

└6x+5(x>

1

7

{intx,y;

if(x<

1)y=2*x+1;

if(x==1)y=4*x+3;

if(x>

1)y=6*x+5;

y);

三、循环图形

7、编程输出n行图形(n值通过键盘输入)

假设n=5,则图形如下:

*

**

***

****

*****

假设n=6,则图形如下:

*

**

***

****

*****

******

{inti,j,n;

n);

for(i=1;

i<

=n;

i++)

{for(j=1;

j<

=i;

j++)

*"

);

\n"

}

8、编程输出n行图形(n值通过键盘输入),

*

**

***

****

*

**

***

****

*****

******

#include<

{inti,j,k,n;

=n-i;

"

for(k=1;

k<

k++)

9、编程输出n行图形(n值通过键盘输入),

*****

*******

*********

*******

*********

***********

=2*i-1;

10、编程输出n行图形(n值通过键盘输入),

=n-i+1;

11、编程输出n行图形(n值通过键盘输入),

四、循环

12、输入若干字符(回车'

\n'

为止),统计数字字符、大写字母、小写字母和其它字符的个数。

示例

1ABabc@#%!

输出:

(共四个数,它们是:

数字字符个数大写字母个数小写字母个数其它字符个数)

1234

intsz=0,dx=0,xx=0,qt=0;

while((ch=getchar())!

{if(ch>

0'

9'

)sz++;

elseif(ch>

A'

Z'

)dx++;

)xx++;

elseqt++;

%d%d%d%d\n"

sz,dx,xx,qt);

13、计算级数和s=1/(1*3)+2/(3*5)+3/(5*7)+....+n/((2*n-1)*(2*n+1))。

(n从键盘输入,保留3位小数)

输入:

2

0.467

{inti,n;

doubles=0;

s+=1.0*i/((2*i-1)*(2*i+1));

%.3f"

s);

14、计算s=1-1/3+1/5-1/7+1/9-...前n项和。

(n从键盘输入,保留2位小数)。

0.67

s+=1.0/(2*i-1)*(i%2?

1:

-1);

15、计算级数2/1,3/2,5/3,8/5,13/8,21/13,...前n项之和。

3.500

doublea=2,b=1,t,s=0;

{s+=a/b;

t=a;

a=a+b;

b=t;

%.3f\n"

16、输入一个a>

=6的偶数,输出满足a=b+c素数对b和c,这里b和c是素数,且b<

=c。

6

33

示例2:

10

(按b由小至大输出)

37

55

{inta,b,c,i;

for(b=2;

b<

=a/2;

b++)

{for(i=2;

b;

if(b%i==0)break;

if(i==b)

{c=a-b;

for(i=2;

c;

if(c%i==0)break;

if(i==c)

printf("

%d%d\n"

b,c);

五、一维数组

17、输入不多于500个大于0的整数到一维数组(当输入的数为0时结束输入),

然后降序排序,最后将奇数输出。

输出格式为:

下标值整数

...

123450

05

23

41

*/

{inta[500],i,j,t,n=0;

a[n]);

while(a[n]!

=0)

{n++;

for(i=0;

n-1;

for(j=0;

if(a[j]<

a[j+1])

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

n;

if(a[i]%2)printf("

i,a[i]);

18、输入不多于500个大于0的整数到一维数组(当输入的数为0时结束输入),

然后升序排序,最后将其中完数输出。

提示:

一个数的各因子之和等于该数本身即为完数,

例如:

6的因子是1,2,3,而6=1+2+3,所以6是完数。

28也是完数,28=1+2+4+7+14。

364528116370

6628

{inta[500],i,j,t,n=0,s;

if(a[j]>

{s=0;

for(j=1;

a[i];

if(a[i]%j==0)s+=j;

if(s==a[i])printf("

%d"

a[i]);

19、首先输入不多于500个整数到一维数组,然后降序排序,

最后将下标值为奇的元素输出。

输入格式:

整数个数

整数1整数2整数3...

输出格式

下标数组元素值

5

12345

14

32

{inta[500],i,j,t,n;

a[i]);

if(i%2)printf("

20、设有1<

=n<

=500个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进

行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的

报数,如此进行下去直到所有的人都出圈为止。

要求按出圈次序输出编号。

输入格式如下:

nsm

613

364251

{inta[500],n,s,m,i,b=0,z=0;

n,&

s,&

m);

a[i]=i+1;

i=s-1;

while(z<

n)

if(a[i++%n])

{b++;

if(b%m==0)

{z++;

a[(i-1)%n]);

a[(i-1)%n]=0;

六、二维数组

21、定义5×

5的整形数组,输入每行中的前4个元素值,

每行第5个是前4个元素的平均值。

最后输出

5行

1234

12342

1111

2222

3333

4444

5555

11111

22222

33333

44444

55555

{inta[5][5],i,j;

5;

{for(j=0;

4;

scanf("

a[i][j]);

a[i][4]=(a[i][0]+a[i][1]+a[i][2]+a[i][3])/4;

a[i][j]);

22、定义5×

5的整形数组,输入每列中的前4个元素值,

每列第5个是前4个元素的平均值。

4行

a[4][j]=(a[0][j]+a[1][j]+a[2][j]+a[3][j])/4;

23、输出M*N整数矩阵(3<

=M<

=503<

=N<

=50),M,N从键盘输入。

本例是5*6矩阵。

56

123456

18192021227

17282930238

16272625249

151413121110

{inta[50][50]={0},i=0,j=0,m,n,t=1;

%d%d"

m,&

while(t<

=m*n)

{

while(j<

n&

a[i][j]==0)a[i][j++]=t++;

j--;

i++;

while(i<

m&

a[i][j]==0)a[i++][j]=t++;

i--;

j--;

while(j>

=0&

a[i][j]==0)a[i][j--]=t++;

j++;

i--;

while(i>

a[i][j]==0)a[i--][j]=t++;

i++;

j++;

m;

24、有一M*M矩阵(5<

=15)是按行序存放的M*M矩阵的元素(即:

前M个整数是第1行的M个元素)。

按下列步骤编程:

1>

每行降序排序;

2>

每列降序排序;

3>

按行序输出。

第一个数是M值,即本例是5*5矩阵,其后是M*M整数。

12345

678910

1112131415

1617181920

2122232425

2524232221

2019181716

1514131211

109876

54321

{inta[15][15],i,j,k,t,m;

for(i=0;

m-1;

for(k=0;

if(a[i][k]<

a[i][k+1])

t=a[i][k],a[i][k]=a[i][k+1],a[i][k+1]=t;

for(j=0;

if(a[k][j]<

a[k+1][j])

t=a[k][j],a[k][j]=a[k+1][j],a[k+1][j]=t;

七、函数循环

25、根据下面对函数的说明,编写其后的函数体。

(1)函数功能:

计算s=1/(1*3)+2/(3*5)+3/(5*7)....n/((2*n-1)*(2*n+1))前n项之和。

(2)入口参数:

函数形参n>

=1是要求计算的项数。

(3)出口值:

函数返回值是累加计算求得的s值。

(4)注意:

函数类型(函数返回值)是double类型。

doublefun(intn)

{

//答题开始处

doubles=0;

inti;

for(i=1;

s+=i/((2*i-1.0)*(2*i+1));

returns;

//答题结束处

26、根据下面对函数的说明,编写其后的函数体。

(1)功能:

计算s=1/1!

+1/2!

+1/3!

+...前n项和。

(2)入口:

=1是一整数。

(3)出口:

函数返回值是前n项和s。

inti,t=1;

{t*=i;

s+=1.0/t;

27、根据下面对函数的说明,编写其后的函数体。

计算级数1/1+2/1+3/2+5/3+8/5+13/8+21/13前n项之和。

形参n>

=1表示求前n项之和。

函数返回值是前n项之和。

(4)提示:

第一项的分子分母之和是第二项的分子,第一项的分子是第二项的分母.....

(5)注意:

函数类型是double类型

inti,a=1,b=1,t;

{s+=1.0*a/b;

28、根据下面对函数的说明,编写其后的函数体。

求1/2+3/4+5/6+7/8...前n项之和。

=1。

函数类型是double类型。

{

s+=(2*i-1.0)/(2*i);

八、函数与一维数组

29、根据下面对函数的说明,编写其后的函数体。

逆序存放一维数组元素。

(原1,3,2,4,5->

变为5,4,2,3,1)

函数形参a是某一维整型数组的首地址,形参n表示该数组存有n个整数。

voidfun(inta[],intn)

inti,t;

n/2;

{t=a[i];

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

a[n-1-i]=t;

30、根据下面对函数的说明,编写其后的函数体。

一维数组a保存有n个整数。

请把所有奇数存储在数组的前部,其他存储在奇数的后面。

函数形参a是数组首地址,n>

=0是元素个数。

(3)

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

当前位置:首页 > 表格模板 > 书信模板

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

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