浙江大学C语言上机题及答案.docx

上传人:b****6 文档编号:7279944 上传时间:2023-01-22 格式:DOCX 页数:53 大小:24.67KB
下载 相关 举报
浙江大学C语言上机题及答案.docx_第1页
第1页 / 共53页
浙江大学C语言上机题及答案.docx_第2页
第2页 / 共53页
浙江大学C语言上机题及答案.docx_第3页
第3页 / 共53页
浙江大学C语言上机题及答案.docx_第4页
第4页 / 共53页
浙江大学C语言上机题及答案.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

浙江大学C语言上机题及答案.docx

《浙江大学C语言上机题及答案.docx》由会员分享,可在线阅读,更多相关《浙江大学C语言上机题及答案.docx(53页珍藏版)》请在冰豆网上搜索。

浙江大学C语言上机题及答案.docx

浙江大学C语言上机题及答案

c语言程序设计题目及答案

40021程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入1个正整数n,计算s的前n项的和(保留4位小数)。

s=1+1/2!

+....+1/n!

例:

括号内是说明

输入:

2(repeat=2)

2(n=2)

10(n=10)

输出:

1.5000

1.7183

#include"stdio.h"

intmain()

{

intri,repeat;

inti,n;

floats,t;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

/*---------*/

printf("%0.4f\n",s);

}

}

40022程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=1000),输出m和n之间所有满足各位数字的立方和等于它本身的数。

输出语句:

printf("%d\n",i);

例:

括号内是说明

输入:

2(repeat=2)

100400(m=100,n=400)

1100(m=1,n=100)

输出:

153(1*1*1+5*5*5+3*3*3=153)

370(3*3*3+7*7*7=370)

371(3*3*3+7*7*7+1*1*1=371)

1

#include"stdio.h"

intmain()

{

intri,repeat;

inti,digit,m,n,number,sum;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d%d",&m,&n);

/*---------*/

}

}

40023程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和。

例:

括号内是说明

输入:

3(repeat=2)

110(m=1,n=10)

2035(m=20,n=35)

1416(m=14,n=16)

输出:

count=4,sum=17(1到10之间有4个素数:

2,3,5,7)

count=3,sum=83(20到35之间有3个素数:

23,29,31)

count=0,sum=0(14到16之间没有素数)

#include"stdio.h"

#include"math.h"

intmain()

{

intri,repeat;

intcount,digit,i,j,k,m,n,sum;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d%d",&m,&n);

/*---------*/

printf("count=%d,sum=%d\n",count,sum);

}

}

40031程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入一行字符,统计其中单词的个数。

各单词之间用空格分隔,空格数可以是多个。

例:

括号内是说明

输入

2(repeat=2)

Reoldbuildingroom123

Programmingisfun

输出

4

3

#include

intmain()

{

intri,repeat;

intcount,word;

charc;

scanf("%d",&repeat);

getchar();

for(ri=1;ri<=repeat;ri++){

c=getchar();

/*---------*/

printf("%d\n",count);

}

}

40032程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入一个整数,从高位开始逐位输出它的各位数字。

输出语句:

printf("%-2d",digit);

例:

括号内是说明

输入

3(repeat=3)

123456

-600

8

输出

123456

600

8

#include

intmain()

{

intri,repeat;

intdigit;

longin,temp,pow;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%ld",&in);

/*---------*/

printf("\n");

}

}

40033程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

程序模拟简单运算器的工作:

输入一个算式(没有空格),遇等号"="说明输入结束,输出结果。

假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。

例:

括号内是说明

输入

2(repeat=2)

15+2/3=

1+2*10-10/2=

输出

5

10

#include

intmain()

{

intri,repeat;

intop1,op2,res;

charoperator;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&op1);

operator=getchar();

/*---------*/

printf("%d\n",res);

}

}

50001程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入1个正整数n,计算s的前n项的和(保留4位小数)。

s=1+1/2!

+....+1/n!

要求定义并调用函数fact(n)计算n的阶乘。

例:

括号内是说明

输入:

2(repeat=2)

2(n=2)

10(n=10)

输出:

1.5000

1.7183

#include"stdio.h"

intmain()

{

intri,repeat;

inti,n;

doubles;

doublefact(intn);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

/*---------*/

printf("%0.4f\n",s);

}

}

/*---------*/

50002程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入2个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。

要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。

例如,fn(3,2)的返回值是33。

例:

括号内是说明

输入

2(repeat=2)

23(a=2,n=3)

85(a=8,n=5)

输出

246(2+22+222)

98760(8+88+888+8888+88888)

#include

voidmain()

{

intri,repeat;

inti,n;

longa,sn;

longfn(longa,intn);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%ld%d",&a,&n);

/*---------*/

printf("%ld\n",sn);

}

}

/*---------*/

50003程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

读入1个整数,统计并输出该数中2的个数。

要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。

例如,countdigit(10090,0)的返回值是3。

例:

括号内是说明

输入:

3(repeat=3)

-21902

2

345543

输出:

count=2(-21902中有2个2)

count=1(有1个2)

count=0(345543中没有2)

#include"stdio.h"

intmain()

{

intri,repeat;

intcount;

longin;

intcountdigit(longnumber,intdigit);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%ld",&in);

/*---------*/

printf("count=%d\n",count);

}

}

/*---------*/

50004程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

要求定义并调用函数prime(m)判断m是否为素数。

例:

括号内是说明

输入

4(repeat=4)

12917

输出

NO(1不是素数)

YES(2是素数)

NO(9不是素数)

YES(17是素数)

#include

#include

intmain()

{

intri,repeat;

intflag,n;

intprime(intm);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

/*---------*/

if(flag)printf("YES\n");

elseprintf("NO\n");

}

}

/*---------*/

50005程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=500),统计并输出m和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

要求定义并调用函数prime(m)判断m是否为素数。

例:

括号内是说明

输入:

3(repeat=3)

110(m=1,n=10)

2035(m=20,n=35)

1416(m=14,n=16)

输出:

count=4,sum=17(1到10之间有4个素数:

2,3,5,7)

count=3,sum=83(20到35之间有3个素数:

23,29,31)

count=0,sum=0(14到16之间没有素数)

#include"stdio.h"

#include"math.h"

intmain()

{

intri,repeat;

intcount,i,n,sum;

intprime(intm);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d%d",&m,&n);

/*---------*/

printf("count=%d,sum=%d\n",count,sum);

}

}

/*---------*/

******50006程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=10000),输出m和n之间所有的Fibonacci数。

Fibonacci序列(第1项起):

1123581321......

要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。

例如,fib(7)的返回值是13。

输出语句:

printf("%d",f);

例:

括号内是说明

输入:

3(repeat=3)

110(m=1,n=10)

20100(m=20,n=100)

10006000(m=1000,n=6000)

输出:

112358(1到10之间的Fibonacci数)

21345589(20到100之间的Fibonacci数)

159725844181(1000到6000之间的Fibonacci数)

#include"stdio.h"

#include"math.h"

intmain()

{

intri,repeat;

inti,m,n;

longf;

longfib(intn);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d%d",&m,&n);

/*---------*/

printf("\n");

}

}

/*---------*/

50007程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有完数(完数就是因子和与它本身相等的数)。

要求定义并调用函数factorsum(number),它的功能是返回number的因子和。

例如,digitsum(12)的返回值是16(1+2+3+4+6)。

输出语句:

printf("%d",i);

例:

括号内是说明

输入:

2(repeat=2)

20500(m=100,n=400)

1100(m=1,n=100)

输出:

28496

1628

#include"stdio.h"

intmain()

{

intri,repeat;

inti,m,n;

longfactorsum(intnumber);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d%d",&m,&n);

/*---------*/for(i=m;i<=n;i++){

if(factorsum(i)==i)

printf("%ld",factorsum(i));}

printf("\n");

}

}

/*---------*/longfactorsum(intnumber){

inti;

longresult=0;

if(number==1)result=1;

else

for(i=1;i<=number/2;i++){

if(number%i==0)

result=result+i;}

returnresult;}

50008程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数。

要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。

输出语句:

printf("%d",i);

例:

括号内是说明

输入:

2(repeat=2)

100400(m=100,n=400)

1100(m=1,n=100)

输出:

153370371(1*1*1+5*5*5+3*3*3=153;3*3*3+7*7*7=370;3*3*3+7*7*7+1*1*1=371)

1

#include"stdio.h"

intmain()

{

intri,repeat;

inti,m,n;

intis(intnumber);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d%d",&m,&n);

/*---------*/for(i=m;i<=n;i++)

if(is(i))

printf("%d",i);

printf("\n");

}

}

/*---------*/

intis(intnumber){

intresult,t,j,sum;

j=number;

result=0;sum=0;

while(number>0){

t=number%10;

sum=sum+t*t*t;

number=number/10;}

if(sum==j)

result=1;

returnresult;}

50009程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入一个整数,将它逆序输出。

要求定义并调用函数reverse(number),它的功能是返回number的逆序数。

例如reverse(12345)的返回值是54321。

例:

括号内是说明

输入

4(repeat=4)

123456-100-299

输出

654321

-1

-1

99

#include

intmain()

{

intri,repeat;

longin,res;

longreverse(longnumber);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%ld",&in);

/*---------*/

printf("%ld\n",res);

}

}

/*---------*/

50010程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入1个正整数n,将其转换为二进制后输出。

要求定义并调用函数dectobin(n),它的功能是输出n的二进制。

例如,调用dectobin(10),输出1010。

输出语句:

printf("%d");

例:

括号内是说明

输入:

2(repeat=2)

15(n=2)

100(n=10)

输出:

1111

1100100

#include"stdio.h"

intmain()

{

intri,repeat;

inti,n;

voiddectobin(intn);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

/*---------*/dectobin(n);

printf("\n");

}

}

/*---------*/voiddectobin(intn){

inti,j,a[20];

for(i=0;n>0;i++){

a[i]=n%2;

n=n/2;}

for(j=i-1;j>=0;j--)

printf("%d",a[j]);}

60001程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入一个正整数n(1

例:

括号内是说明

输入

2(repeat=2)

312-6

5122540

输出

aver=-1.00

aver=4.60

#include

intmain()

{

intri,repeat;

inti,n,sum;

floataver;

inta[10];

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

/*---------*/

printf("aver=%.2f\n",aver);

}

}

60002程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入一个正整数n(1

例:

括号内是说明

输入

3(repeat=3)

3164

31081

512540

输出

max=6,index=1(最大值6的下标是1)

max=10,index=0(最大值10的下标是0)

max=5,index=2(最大值5的下标是2)

#include

intmain()

{

intri,repeat;

inti,index,n,max;

inta[10];

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

/*---------*/max=a[0];index=0;

for(i=1;i

if(a[i]>=max){

max=a[i];

index=i;}

printf("max=%d,index=%d\n",a[index],index);

}

}

60003程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0

输入一个正整数n(1

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

当前位置:首页 > 考试认证 > IT认证

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

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