2023年哈爾濱工業(yè)大學(xué)C語言MOOC在線測試答案_第1頁
2023年哈爾濱工業(yè)大學(xué)C語言MOOC在線測試答案_第2頁
2023年哈爾濱工業(yè)大學(xué)C語言MOOC在線測試答案_第3頁
2023年哈爾濱工業(yè)大學(xué)C語言MOOC在線測試答案_第4頁
2023年哈爾濱工業(yè)大學(xué)C語言MOOC在線測試答案_第5頁
已閱讀5頁,還剩143頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本答案僅供參考

第3周

1

計算兩個數(shù)的平方和(3分)

題目內(nèi)容:

從鍵盤讀入兩個實數(shù),編程計算并輸出它們的平方和,規(guī)定使用數(shù)學(xué)函數(shù)pow(x,y)計算平方值,輸出結(jié)果保

存2位小數(shù).

提醒:使用數(shù)學(xué)函數(shù)需要在程序中加入編譯預(yù)解決命令#inelude<math.h>

以下為程序的運營結(jié)果示例:

pleaseinputxandy:

1.2,3.4/

result=13.00

輸入格式:"%f,%f"

輸出格式;

輸入提醒信息:"Pleaseinputxandy:\n"

輸出格式:"ResuIt=%.2f\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h><math.h>

intmain()

floatx,y,S,D;

printf("PIeaseinputxandy:\n”);

seanff",&x,&y);

S=pow(x,2);

D=pow(y,2);

printf("Result=%.2f\n”,S+D);

areturn0;

}

2

逆序數(shù)的拆分計算(3分)

題目內(nèi)容:

從鍵盤輸入一個4位數(shù)的整數(shù),編程計算并輸出它的逆序數(shù)(忽略整數(shù)前的正負號)。例如,輸入-1234,

忽略負號,由1234分離出其千位1、百位2、十位3、個位4,然后計算4*1000+3*100+2*10+1=

4321,并輸出4321。再將得到的逆序數(shù)4321拆分為兩個2位數(shù)的正整數(shù)43和21,計算并輸出拆分

后的兩個數(shù)的平方和的結(jié)果。

以下是程序的運營結(jié)果示例:

Inputx:

-1234/

y=4321

a=43,b=21

resu11=2290

輸入格式:"%d"

輸出格式:

輸入提醒信息:"Inputx:\nM

逆序數(shù)輸出格式:“y=%d\n”

逆序數(shù)拆分后的輸出格式:"a=%d,b=%d\n”

平方和的輸出格式:”resu1t=%d\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h><math.h>

main()

{

intx,b0,b1,b2>b3,y,a,b,c;

printf(,'lnputx:\nM);

scanf("%dM,&x);

x=(int)fabs(x);/*取x絕對值*/

b3=x/1000;/*取x千位7

b2=(x-b3*1000)/100;/*取x百位*/

b1=(x-b3*10O0-b2*100)/10;/*取x十位*/

b0=x%10;/*取x個位*/

y=b3+b2*10+b1*100+b0*1000;

printf(ny=%d\nM,y);

a=b0*10+b1;

b=b2*10+b3;

(a*a)+(b*b);

printf("a=%d,b=%d\nn,a,b);

printf("result=%d\nM,c);

好eturn0;

3

拆分英文名(3分)

題目內(nèi)容:

從鍵盤輸入某同學(xué)的英文名(小寫輸入,假設(shè)學(xué)生的英文名只包含3個字母。如:tom),編寫程序在屏幕

上輸出該同學(xué)的英文名,且首字母大寫(如:Tom)。同時輸出組成該英文名的所有英文字符在26個英文字

母中的序號。

以下為程序的運營結(jié)果示例:

InputyourEng1ishname:

tom/

Tom

t:20

o:15

m:13

輸入格式:"%c%c%c“

輸出格式:

輸入提醒信息:"InpulyourEnglishname:\n"

首字母大寫的英文姓名的輸出格式:“%c%c%c\n"

姓名中每個字母在26個英文字母中的序號的輸出格式:"%c:%d\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#inc1ude<stdio.h><math.h>

intmain()

{

charx,y,z,A;

^>prinnputyourEng1ishname:\n°);

seanf(M^c%c%c\nM,&x,&y,&z);

A=x-32;/*首字母改為大寫*/

printf(M%c%c%c\nM,A,y,z);

printf("%c:%d\nn,x,x-96);

printf("%c:%d\n",y,y-96);

printf(M%c:%d\n0,z,z-96);

)

4

計算體指數(shù)(3分)

題目內(nèi)容:

從鍵盤輸入某人的身高(以厘米為單位,如174cm)和體重(以公斤為單位,如70公斤),將身高(以米為

單位,如1.74m)和體重(以斤為單位,如140斤)輸出在屏幕上,并按照以下公式計算并輸出體指數(shù),規(guī)定

結(jié)果保存到小數(shù)點后2位,

假設(shè)體重為w公斤,身高為h米,則體指數(shù)的計算公式為:

t=w/h2

以下是程序的運營結(jié)果示例:

Inputweight,height:

70,174/

weight=140

height=1.74

t=23.12

輸入格式:"%d,%d"

輸出格式:

輸入提醒信息:"Inputweight,height:\n(注意:在height和逗號之間有一個空格)

體重輸出格式:"weight=%d\n

身高輸出格式:“height=%.2f\n"

體指數(shù)輸出格式:”t=%.2f\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#inc1ude<stdio.h><math.h>

intmain()

{

floatA,b;

intx,y;

printf(MInputweight,height:\nM);

scanf("%d,%d",&x,&y);

printfC'weight=%d\nM,x*2);

A=(f1oat)y/100;

print!("height=%.2f\nM,A);

b=(f1oat)x/(A*A);

printfC*t=%.2f\nn,b);

第4周

1

數(shù)位拆分V2.0(4分)

題目內(nèi)容:

從鍵盤上輸入一個4位數(shù)的整數(shù)n,編寫程序?qū)⑵洳鸱譃閮蓚€2位數(shù)的整數(shù)a和b,計算并輸出拆分后的兩

個數(shù)的加、減、乘、除和求余運算的結(jié)果。例如ln=?4321,設(shè)拆分后的兩個整數(shù)為a,b,則a=-43,b=?2

1。除法運算結(jié)果規(guī)定精確到小數(shù)點后2位。求余和除法運算需要考慮除數(shù)為0的情況,即假如拆分后b

=0,則輸出提醒信息"Thesecondoperateriszero!n

程序的運營結(jié)果示例1:

P1easeinputn:

1200Z

12,0

sum=12,sub=12,multi=0

Thesecondoperateriszero!

程序的運營結(jié)果示例2:

Pieaseinputn:

-2304/

一23,-4

sum=—27,sub=-19,multi=92

dev=5.75,mod=-3

輸入格式:“%d”

輸出格式:

輸入提醒信息:"Pleaseinputn:\n"

拆分后的兩個整數(shù)的輸出格式:”%d,%d\n”

加法、減法、乘法的輸出格式:"sum=%d,sub=%d,multi=%d\n"

除法和求余的輸出格式:"dev=%.2f,mod=%d\n"

除數(shù)為0的提醒信息:"Thesecondoperateriszero!\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h><math.h>

main()

{

floatc;

intx,b0,b1,b2,b3,a>b,d;

dprintf(f,Pleaseinputn:\nM);

scanf(M%d”,&x);

b3=x/1000;/*取x千位*/

b2=(x-b3*1000)/100;/*取x百位*/

b1=(x-b3*1000-b2*100)/10;/*取x十位*/

bO=x%10;/*取x個位7

a=b3*10+b2;/*拆分輸入的整數(shù)為兩段*/

b=b1*l0+b0;

printf("%d,%d\nM,a,b);

printf("sum=%d,sub=%d,multi=%d\n”,a+b,a—b,a*b);/*輸出兩段數(shù)的加,減,

乘*/

if(0==b)

(

printf("Thesecondoperateriszero!\nM;

)

else

{

c=(float)a/b;

d=a%b;

printf("dev=%.2f,mod=%d\n”,c,d);

}

return0;

)

2

快遞費用計算(4分)

題目內(nèi)容:

上海市的某快遞公司根據(jù)投送目的地距離公司的遠近,將全國劃提成5個區(qū)域:

0區(qū)1區(qū)2區(qū)3區(qū)4區(qū)

1500公里(含)以1500——2500公2500公里以

同城臨近兩省

內(nèi)里上

北京,天津,河北,

吉林,遼寧,甘肅,四

遼寧,河南,安微,

江蘇,浙川,重慶,青海,廣

上海陜西,湖北,江西,新疆,西藏。

西,云南,海南,內(nèi)

江湖南,福建,廣東,

蒙古,黑龍江,貴州。

山西。

快遞費按郵件重量計算,由起重費用、續(xù)重費用兩部分構(gòu)成:

(1)起重(首重)1公斤按起重資費計算(局限性1公斤,按1公斤計算),超過首重的重量,按公斤(局

限性1公斤,按1公斤計算)收取續(xù)重費;

(2)。同城起重資費10元,續(xù)重3元/公斤;

(3)寄往1區(qū)(江浙兩省)的郵件,起重資費10元,續(xù)重4元;

(4)?寄往其他地區(qū)的郵件,起重資費統(tǒng)一為15元。而續(xù)重部分,不同區(qū)域價格不同:2區(qū)的續(xù)重5元/公斤,3

區(qū)的續(xù)重6.5元/公斤,4區(qū)的續(xù)重10元/公斤。

編寫程序,從鍵盤輸入郵件的目的區(qū)域編碼和重量,計算并輸出運費,計算結(jié)果保存2位小數(shù)。

提醒:續(xù)重部分局限性一公斤,按1公斤計算。因此,如包裹重量2.3公斤:1公斤算起重,剩余的1.3公斤算

續(xù)重,局限性1公斤按1公斤計算,1.3公斤折合續(xù)重為2公斤。假如重量應(yīng)大于0、區(qū)域編號不能超過0

-4的范圍。

程序運營結(jié)果示例1:

4,4.5Z

Price:55.00

程序運營結(jié)果示例2:

5,3.2/

ErrorinArea

Price:0.00

輸入格式:

用逗號分隔的兩個數(shù)字,第一個表達區(qū)域、第二個是重量:“%d,%f"

輸出格式:

價格的輸出格式:"Price:%5.2f\nH

區(qū)域錯誤的提醒信息:“ErrorinArea\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#inc1ude<stdio.h>

#inelude<math.h>

#defineeps1E—5

main()

(

f1oatb,c,d;

inta;

scanf(M%d,%f”,&a,&b);

switch(a)

{

case0:

if(b<=1+eps)

c=10.0;

else

(

d=ceiI(b-1.0);

c=d*3+10.0;

}

printf("Price:%5.2f\n",c);

break;

case1:

if(b<=1+eps)

(

c=10.0;

)

else

(

d=ceil(b-1.0);

c=d*4+10.0;

}

printf(MPrice:%5.2f\n",c);

break;

ise2:

if(b<=1+eps)

c=15.0;

}

else

(

d=cei1(b—1.0);

c=d*5+15.0;

)

printf("Price:%5.2f\nM,c);

break;

case3:

if(b<=1+eps)

(

c=15.0;

}

else

{

d=ceiI(b-1.0);

c=d*6.5+15;

)

printf("Price:%5.2f\nM,c);

break;

case4:

if(b<=1+eps)

c=15.0;

)

else

d=ceil(b-1.0);

c=d*10+l5.0;

}

printf("Price:%5.2f\nM,c);

break;

defau1t:

printf(HErrorinArea\n");

printf(MPrice:0.00”);

)

return0;

)

3

數(shù)據(jù)區(qū)間判斷(6分)

題目內(nèi)容:

從鍵盤輸入一個int型的正整數(shù)n(已知:0vn<10000),編寫程序判斷n落在哪個區(qū)間。假如用戶輸入

的數(shù)據(jù)不在指定的范圍里,程序輸出"error!例如,輸入265,則該數(shù)屬于區(qū)間100-999。

程序運營結(jié)果示例1:

PIeaseenterthenumber:

2563/

2563:1000-9999

程序運營結(jié)果示例2:

Pleaseenterthenumber:

156/

156:100-999

程序運營結(jié)果示例3:

Pleaseenterthenumbe匚

36Z

36:10-99

程序運營結(jié)果示例4:

Pleaseenterthenumber:

3/

3:0-9

程序運營結(jié)果示例5:

Pleaseenterthenumber:

10923/

error!

輸入格式:"%d"

輸出格式:

輸入提醒信息:nPIeaseenterthenumber:\n

輸出的區(qū)間判斷:

"%d:1000-9999\n"

"%d:100-999\n

"%d:10-99\nn

"%d:0-9\n"

輸入錯誤提醒信息:"error!\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h>

#inc1ude<math.h>

intmain()

intx,b0,b1,b2,b3,y,a,b,c;

printf(MPleaseenterthenumber:\nM);

scanf('f%d",&x);

if(x<=0||x>=10000)

(

printf(Merror!\n°);

)

e1se

r

b3=x/1000;/*取x千位*/

b2=(x-b3*1000)/100;/*取x百位*/

bl=(x-b3*1000-b2*100)/10;/*取x十位*/

b0=x%10;/*取x個位*/

if(b3!=0)

printf("%d:1000-9999\n",x);

)

elseif(b3==0&&b2;=0)

(

printf("%d:100-999\n",x);

)

elseif(b3==0&&b2==0&&b1;=0)

(

printf("%d:10-99\n",x);

}

else

(

Printf("%d:0-9\n",x);

}

)

return0;

}

4

計算一元二次方程的根v2.0(4分)

題目內(nèi)容:

根據(jù)下面給出的求根公式,計算并輸出一元二次方程加2+&c+c=°的兩個實根,規(guī)定精確到小

數(shù)點后4位。其中a,b,c的值由用戶從鍵盤輸入。假如用戶輸入的系數(shù)不滿足求實根的規(guī)定,輸犯錯

誤提醒"error!”。

程序運營結(jié)果示例1:

P1easeenterthecoefficientsa,b,c:

1,2,1/

x1=-1.0000,x2=?1.0000

程序運營結(jié)果示例2:

P1easeenterthecoefficientsa,b,c:

2,6,1/

x1=-0.1771,x2=-2.8229

程序運營結(jié)果示例3:

PIeaseenterthecoefficientsa,b,c:

2,1,6/

error!

輸入格式:“%f,%f,%f"

輸出格式:

輸入提醒信息:"Pieaseenterthecoefficientsa,b,c:\n"

輸出格式:"x1=%7.4f,x2=%7.4f\n"

輸入錯誤提醒信息:"error!\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h>

#include<math.h>

intmain()

floata,b,c,disc,p,q;

printf('*Pleaseenterthecoefficientsa,b,c:\n");

scanf(n%f,%f,%f;

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

if(disc<0)

(

printf(Merror!\nM);

)

else

{

p=-b/(2*a);

q=sqrt(disc)/(2*a);

printf(nx1=%7.4f,x2=%7.4f\n",q+p,p-q);

}

return0;

第五周

1

6位密碼輸入檢測(4分)

題目內(nèi)容:

從鍵盤輸入6位僅由數(shù)字0~9組成的密碼。用戶每輸入?個密碼并按回車鍵后,程序給出判斷:假如是數(shù)

字,則原樣輸出該數(shù)字,并提醒用戶目前已經(jīng)輸入了幾位密碼,同時繼續(xù)輸入下一位密碼;否則,程序提醒”er

rorM,并讓用戶繼續(xù)輸入下一位密碼。直到用戶輸入的密碼所有是數(shù)字為止。

以下為程序的運營結(jié)果示例:

Inputyourpassword:

1/

1,youhaveenter1-bitsnumber

6Z

6,youhaveenter2—bitsnumber

a/

error

6/

error

4/

4,youhaveenter3-bitsnumber

6/

6,youhaveenter4-bitsnumber

8/

8,youhaveenter5—bitsnumber

2/

2,youhaveenter6—bitsnumber

輸入格式:

數(shù)字字符輸入格式:“%C”

輸出格式:

輸入提醒信息:"Inputyourpassword:\n"

假如輸入的是數(shù)字,輸出格式為:"%c,youhaveenter%d-bitsnumber\n

假如輸入的不是數(shù)字,輸出提醒信息:"error'n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h>

intmain()

(

inti;

charc;

printf(MInputyourpassword:\n

i=0;

while(i<6)

(

seanf(M%c%*cn,&c);

if((c>=48)&&(c<=57))

(

i=i+1;

printf(n%c,youhaveenter%d-bitsnumber\n'\c,i);

)

else

printf("error'rT);

)

return0;

}

2

判斷一個整型數(shù)據(jù)有幾位V1.0(4分)

題目內(nèi)容:

從鍵盤輸入一個整型數(shù)據(jù)(int型),編寫程序判斷該整數(shù)共有幾位。例如,從鍵盤輸入整數(shù)1664"該整

數(shù)共有5位。

程序運營結(jié)果示例1:

Pleaseenterthenumber:

21125/

21125:5bits

程序運營結(jié)果示例2:

P1easeenterthenumber:

-12234/

-12234:5bits

輸入格式:“%d”

輸出格式:

輸入提醒信息:"Pleaseenterthenumber:\nH

判斷該整數(shù)共有幾位:"%d:%dbits\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h>

#inc1ude<math.h>

intmain()

{

intn,nn,b,i,j,sum;

printf("Pleaseenterthenumber:\rT);

scanf(,f%dM,&n);

nn=fabs(n);

b=1;

sum=1;

i=1;

j=10;

while(b=1)

(

if((nn>=i)&&(nn<j))

(

printf(**%d:%dbits\n,',n,sum);

b=0;

break;

)

else

i=i*10;

j=J*10;

sum=sum+1;

}

return0;

3

檢測輸入數(shù)據(jù)中奇數(shù)和偶數(shù)的個數(shù)(4分)

題目內(nèi)容:

從鍵盤輸入一系列正整數(shù),輸入-1表達輸入結(jié)束(-1自身不是輸入的數(shù)據(jù))。編寫程序判斷輸入數(shù)據(jù)中

奇數(shù)和偶數(shù)的個數(shù)假如用戶輸入的第?個數(shù)據(jù)就是-1,則程序輸出"over!"。否則。用戶每輸入一個數(shù)

據(jù),輸出該數(shù)據(jù)是奇數(shù)還是偶數(shù),直到用戶輸入-1為止,分別記錄用戶輸入數(shù)據(jù)中奇數(shù)和偶數(shù)的個數(shù)。

程序運營結(jié)果示例1:

Pleaseenterthenumber:

1/

1:odd

5/

5:odd

8/

8:even

9/

9:odd

12/

12:even

17/

17:Odd

-1Z

Thetota1numberofoddis4

Thetotalnumberofevenis2

程序運營結(jié)果示例2:

Pieaseenterthenumber:

-1/

over!

Thetotalnumberofoddis0

Thetotalnumberofevenis0

輸入格式:“%d”

輸出格式:

輸入提醒信息:"Pleaseenterthenumber:\n"

用戶輸入的第一個數(shù)據(jù)就是?1,輸出格式:"over!\n"

奇數(shù)的輸出格式:"%d:odd\n"

偶數(shù)的輸出格式:w%d:even\nH

輸入數(shù)據(jù)中奇數(shù)的個數(shù)記錄:"Thetotalnumberofoddis%d\nH

輸入數(shù)據(jù)中偶數(shù)的個數(shù)記錄:"Thetotalnumberofevenis%d\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#incIude<stdio.h>

intmain()

inta,odd,even;

odd=0;even=0;

printf(MPIeaseenterthenumber:\nn);

a=0;

while(a!=-1)

(

scant("%d”,&a);

if(a!=-1)

(

if(a%2==1)

{

odd++;

printf("%d:odd\n'*,a);

)

eIse(

even++;

printf(M%d:even\nH,a);

}

)

)

if(even+odd==0)

printf("over!\n*');

printf(MThetotalnumberofoddis%d\n'*,odd);

printf("Thetota1numberofevenis%d\n",even);

return0;

}

4

計算球的反彈高度(4分)

題目內(nèi)容:

?個球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下并反彈.....求它在第5次和第

10次落地時,分別共通過了多少米?第5次和第10次反彈分別是多高?規(guī)定計算結(jié)果保存到小數(shù)點后3位。

用戶從鍵盤輸入想要計算的第n次(n<=15)。

程序運營結(jié)果示例1:

Input:

5/

5times:

287.500

3.125

程序運營結(jié)果示例2:

1nput:

10Z

10times:

299.609

0.098

輸入格式:n%d"

輸出格式:

反彈次數(shù):"%dtimes:\n"

第n次反彈共通過多少米

第n次的反彈高度:”%.3f\n"

輸入提醒信息:“1nput:\rT

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#inc1ude<stdio.h>

intmain()

{

doubleh,sum=0;

intn,i;

printf(nInput:\n");

scanf(M%d11,&n);

h=100;

for(i=1;i<=n;i++)

(

sum+=h;

h/=2;

sum+=h;

}sum-=h;

printf(u%dtimes:\n'*,n);

printtf*%.3f\n',,sum);

printf(',%.3f\n,\h);

return0;

第六周

1

程序改錯v2.0(5分)

下而代碼的功能是將百分制成績轉(zhuǎn)換為5分制成績,具體功能是:假如用戶輸入的是非法字符或者不在合理

區(qū)間內(nèi)的數(shù)據(jù)(例如輸入的是a,或者102,或-45等),則程序輸出Inputerror!,并允許用戶重新輸入

直到輸入合法數(shù)據(jù)為止,并將其轉(zhuǎn)換為5分制輸出。目前程序存在錯誤,請將其修改對的。并按照下面給出

的運營示例檢查程序。

1.#include<stdio.h>

2.intmain()

3.{

4.intscore;

5.chargrade;

6.printf("Pleaseinputscore:");

7.scanf("%€1",&score);

8.if(score<0|Iscore>100)

9.printf("Inputerror!\n");

10.elseif(score>=90)

11.grade='AJ;

12.elseif(score>=80)

13.grade='B*;

14.elseif(score>=70)

15.grade='C';

16.elseif(score>=60)

17.grade='D';

18.else

19.grade="E';

20.printf("grade:%c\n",grade);

21.return0;

22.)

程序運營結(jié)果示例1:

P1easeinputscore:

a/

Inputerror!

Pleaseinputscore:

-12/

Inputerror!

Pleaseinputscore:

230/

Inputerror!

Pleaseinputscore:

92/

grade:A

程序運營結(jié)果示例2:

Pleaseinputscore:

88/

grade:B

程序運營結(jié)果示例3:

PIeaseinputscore:

73/

grade:C

A程序運營結(jié)果示例4:

Pleaseinputscore:

65/

grade:D

A程序運營結(jié)果示例5:

Pleaseinputscore:

27Z

grade:E

輸入提醒信息:"Pleaseinputscore:\nH

輸入格式:"%d

輸出格式:

輸入錯誤時的提醒信息:"Inputerror!\n"

輸出格式:"grade:%c\n”(注意:%c前面有一個空格)

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題口中給的格式字符串和提醒佶息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h>

intmain()

intscore=-1;

chargrade;

printf(HPleaseinputscore:\nn);

scanf("%d”,&score);

while(score<0|Iscore>100)

{

getchar();

printf("Inputerror!\n");

printf("Pleaseinputscore:\n'*);

scanf(n%d",&score);

)

if(score>=90)

grade='A';

elseif(score>=80)

grade='B';

eIseif(score>=70)

grade='C';

elseif(score>=60)

grade=D';

else

grade=E;

printf("grade:%c\n”,grade);

return0;

2

編程計算a+aa+aaa+…+aa...a(n個a)的值(4分)

題目內(nèi)容:

編程計算a+aa-Faaa+...-l-aa...a(n個a)的值,n和a的值由鍵盤輸入。例如,當n=4,a=2,表達計

算2+22+222+2222的值。

程序運營結(jié)果示例:

Inputa,n:

2,4/

sum=2468

輸入提醒信息:"Inputa,n:\n"

輸入格式:”%d,%d"(先輸入a,后輸入n)

輸出格式:"sum=%ld\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:31kb

#include<stdio.h>

main()

longterm=0,sum=0;

inta,i,n;

printf("Inputa,n:\nn);

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

for(i=l;i<=n;i++)

term=term*10+a;

sum=sum+term;

}

printf("sum=%ld\n",sum);

)

3

搬磚問題(4分)

題目內(nèi)容:

11塊磚(27<11<=77),36人搬,男搬4,女搬3,兩個小孩抬一塊磚,規(guī)定一次搬完,問男人、女人和小孩各

需多少人?請用窮舉法編程求解,n的值規(guī)定從鍵盤輸入。輸出結(jié)果按照男人數(shù)量升序給出(見下面示例3)。

程序的運營結(jié)果示例1:

Inputn(27<n<=77):

28/

men=0,women=4,children=32

程序的運營結(jié)果示例2:

Inputn(27<n<=77):

36/

men=3,women=3,chiIdren=30

程序的運營結(jié)果示例3:

Inputn(27<n<=77):

60/

men=2,women=14,children=20

men=7,women=7,chi1dren=22

men=12,women=O,chi1dren=24

A

輸入提醒:"Inputn(27<n<=77):\n"

輸入格式:"%d"

輸出格式:"men=%d,women=%d,children=%d\n"

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

#include<stdio.h>

intmain()

(

inta;

intman,wman,chiId;

printf("Inputn(27<n<=77):\nH;

scanf(H%d'\&a);

for(man=0;man<=15;man++)

(

for(wman=0;wman<=20;wman++)

(

chi1d=36-wman-man;

if(a==child/2+3*wman+4*man&&chi1d%2

0)

printf("men=%d,women=%d,chiIdren=%d\n",man,wman,

child);

)

)

)

)

4

編程輸出某年某月有多少天(考慮到閏年)。(5分)

題目內(nèi)容:

從鍵盤輸入一個年份和月份,輸出該月有多少天(考慮閏年),用switch語句編程。

程序運營結(jié)果示例1:

Inputyear,month:

2023,3/

31days

A

程序運營結(jié)果示例2:

Inputyear,month:

2023,4Z

30days

程序運營結(jié)果示例3:

Inputyear,month:

2023,2/

29days

A

程序運營結(jié)果示例4:

Inputyear,month:

2023,2/

28days

程序運營結(jié)果示例5:

Inputyear,month:

2023,13/

Inputerror!

輸入提醒信息:"Inputyear,month:\n,r

輸入格式:“%d,%d”

輸出格式:

輸入錯誤時的提醒信息:"Inputerror!\nH

輸出格式:

"31days\n"

30days\n"

"29days\n"

"28days\nH

為避免出現(xiàn)格式錯誤,請直接拷貝粘貼題目中給的格式字符串和提醒信息到你的程序中。

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h>

intmain()

inty,m;

printf("Inputyear,month:\n");

scanf(n%d,%d0,&y,&m);

if(m<0|Im>12){printf("Inputerror!\n");return0;}

switch(m)

|

case1:

case3:

case5:

case7:

case8:

case10:

case12:

printf(”31days\nn);

break;

case4:

case6:

case9:

case11:

printf(u30days'n");

break;

case2:

if(y%100==0)y/=100;

if(y%4==0)printf(“29days\nH);

elseprintf("28days\n");

return0;

)

第七周

1

遞歸法計算游戲人員的年齡(4分)

題目內(nèi)容:

有n個人圍坐在一起,問第n個人多大年紀,他說比第n—1個人大2歲;問第n-1個人,他說比第n-2

個人大2歲......問第3個人,他說比第2個人大2歲;問第2個人,他說比第1個人大2歲。第1個人說

自己10歲,問第n個人多大年紀。

遞歸函數(shù)原型:unsignedintComputeAge(unsignedintn);

提醒:

計算年齡的遞歸公式為:

,、|10(〃=D

asje(〃)=<,、

|age(n—1)+2(〃>1)

輸入格式:"%u"

輸出格式:"Theperson'sageis%u\n"

輸入樣例1:

5/

輸出樣例1:

The_person's_age_is_18

輸入樣例2:

10/

輸出樣例2:

The_person's_ageJs_28

注意:為避免出現(xiàn)格式錯誤,請直接拷貝粘貼上面給出的輸入、輸出提醒信息和格式控制字符串!

(注意:在輸出中代表空格,假如直接將上段示例粘貼到代碼中,應(yīng)將其替換為空格。)

時間限制:500ms內(nèi)存限制:32023kb

#include<stdio.h>

#incIude<std1ib.h>

unsignedintComputeAge(unsignedintn);

unsignedintComputeAge(unsignedintn)

(

inta;

if(n==1)

a=10;

else

a=ComputeAge(n-1)+2;

returna;

)

intmain()

(

unsignedintn,f;

scanf("%u”,&n);

f=ComputeAge(n);

printf("Theperson'sageis%u\n",f);

return0;

△2.魔術(shù)師猜數(shù)(4分)

題目內(nèi)容:

在一種室內(nèi)互動游戲中,魔術(shù)師要每位觀眾心里想一個三位數(shù)abc(a,b、c分別是百位、十位和個位數(shù)

字),然后魔術(shù)師讓觀眾心中記下acb、bac、bca,cab、cba五個數(shù)以及這5個數(shù)的和值。只要觀眾說

出這個和是多少,則魔術(shù)師一定能猜出觀眾心里想的原數(shù)abc是多少。例如,觀眾甲說他計算的和值是1

999,則魔術(shù)師立即說出他想的數(shù)是443,而觀眾乙說他計算的和值是1998,則魔術(shù)師說:“你算錯了!,

請編程模擬這個數(shù)字魔術(shù)游戲。規(guī)定用函數(shù)實現(xiàn),函數(shù)原型為:

intMagic(intm);

其中形參m代表觀眾計算的和值。

輸入格式:"%d”

輸出格式:

觀眾計算錯誤,魔術(shù)師給出的結(jié)論:"Thesumyoucalculatediswrong!\n"

觀眾計算對的,魔術(shù)師給出的結(jié)論:"Thenumberis%d\n"

輸入樣例1:

1998Z

輸出樣例1:

The_sum_you_calcuIated_is_wrong!

輸入樣例2:

1999Z

輸出樣例2:

The_number_is_443

注意:為避免出現(xiàn)格式錯誤,請直接拷貝粘貼上面給出的輸入、輸出提醒信息和格式控制字符串!

(注意:在輸出中代表空格,假如直接將上段示例粘貼到代碼中,應(yīng)將其替換為空格。)

參考:

#include<stdio.h>A#include<windows.h>

#inc1ude<time.h>A#include<math.h>A#include<stdlib.hx〃函數(shù)的聲明Avoid

magician();

voiddecision();M/Oidmainmenu()泠voidexitgame();

voidhellp();Avoidp1ayerchoice();

AVoidmainPage()//主界面

(

Anti*printfCMvvvvvv系統(tǒng)正在加載中,請稍

等............vwvw\t\n");

oprintf(n\t——zzzzzzzzzzz電腦不給力,請稍等一會......—zzzzzzzzz

zzz\t\n");葡or(i=0;i<80;i++)

。{3primf("%%”);aS1eep(200);

)

oprintfC'\t\t\t——終于結(jié)束了、()▽工)r\t\t\t\nn);

systemf'CLS”);

?system(ncolor8B");

printf(n*******火********夫****************************

********************\n”).aprintf("*******************************

************************************、n3).

oPrintf(-**

**\n");

printf(H?火

**\n");sprintf("大*第五組

**\nn);4printf("**成員:林可、王麗婕、張婷婷、許春雪、

**\n");Aprintf('*裴月娥、錢鵬辰

**\n”);

printf(H**

sprintff**

叩rintf(n*********************火*****************************************

****\n");3printf("******文夫***文>★*夫**********火*****弋★★★/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論