北京理工大學-C語言程序設計樂學編程題_第1頁
北京理工大學-C語言程序設計樂學編程題_第2頁
北京理工大學-C語言程序設計樂學編程題_第3頁
北京理工大學-C語言程序設計樂學編程題_第4頁
北京理工大學-C語言程序設計樂學編程題_第5頁
已閱讀5頁,還剩131頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京理工大學-C語言程序設計樂學編程題

1.【入門】Helloworld.

成績5開啟時間2019年09月16日星期一08:00

折扣0.8折扣時間2019年09月29日星期日23:55

允許遲交否關(guān)閉時間2019年09月29日星期日23:55

讓我們用C語言向世界發(fā)出第一聲問候.....

最早的程序基本是這個樣子的:

#include<stdio.h>

intmain()

(

printf("Helloworld.\n");

return0;

)

請模仿上面的程序,看看是否可以通過編譯?如果你能通過這個簡單的程序,

那就說明C語言一點都不難。

輸入:無

輸出:Helloworld.

Sinclude<stdio.h>

intmainO

(

printf(z,Helloworld.\n〃);

return0;

}

2.【入門】輸出你的第一個圖形

成績5開啟時間2019年09月16曰星期一08:00

折扣0.8折扣時間2019年10月29曰星期二23:55

允許遲交否關(guān)閉時間2019年10月29日星期二23:55

背景:

我們已經(jīng)學習了printf函數(shù)的基本使用方法,這里給出了一個小程序,它運

行的結(jié)果是輸出一個由星號(*)組成的4*4的正方形。

程序如下:

#include<stdio.h>

intmain()

(

printf;

printf;

printf;

printf;

return0;

)

要求:

按照上面的程序范例,編寫一個小程序,要求輸出的是4行由*號組成的等腰

三角形。對了,要想想程序中\(zhòng)n是什么意思。

輸入:

無。

輸出:

指定圖形。

Sinclude<stdio.h>

intmainO

{

inti,j,k;

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

(

for(j=1;j<=4-i;j++)

printf(/z〃);

for(k=1;k<=2*iT;k++)

printf(〃*〃);

}

printf(〃\n〃);

)

return0;

3.【入門】求A-B

成績5開啟時間2019年09月16日星期一08:00

折扣0.8折扣時間2019年09月29日星期日23:55

允許遲交否關(guān)閉時間2019年09月29日星期日23:55

我們已經(jīng)學了如何使用scanf函數(shù)中輸入整型數(shù)據(jù)(刎),下面讓我們使用

scanf函數(shù)來輸入兩個整數(shù),然后求它們的差。

輸入格式:"%d%d"

整數(shù)1整數(shù)2

輸出格式:"%d-%d=%d\n”

整數(shù)1-整數(shù)2=差

Sinclude<stdio.h>

intmain()

{

inta,b;

scanf&a);

scanf("%d",&b);

printf(//%d-%d=%d\n,/,a,b,a-b);

return0;

Hl.【選作?日期】判斷閏年

成績5開啟時間2019年09月19日星期四14:00

折扣0.8折扣時間2019年10月6日星期日23:55

允許遲交否關(guān)閉時間2019年10月6日星期日23:55

今年是2019年,從公歷來說2016年是閏年,2017和2018年是平年。閏年的

產(chǎn)生有點意思(中學或者小學應該學過嘍,如果不知道,自己去腦補吧)。

咱也應該讓計算機可以判斷任意一個年份是否為閏年。

輸入:

輸出:

是否為閏年。

為了簡單點,假設輸入的年份大于1900o先想一想:該如何建立數(shù)學模型?找

到數(shù)學模型是解決本題的關(guān)鍵。

本題不用if語句,僅使用基本的運算符就可以實現(xiàn),如果不會就先看看書

吧。

Sinclude<stdio.h>

intmainO

{

inta;

scanf("%d",&a);

if(a%400==0)

{

printf(/z%disaleapyear.\n",a);

)

else

(

if(a%4==0&&a%100!=0)

(

printf(//%disaleapyear.\n",a);

)

else

(

printf(,/%disnotaleapyear.\nz/,a);

)

)

return0;

4.【小學】一年級的算術(shù)題

成績5開啟時間2019年09月19日星期四08:00

折扣0.8折扣時間2019年10月13日星期日23:55

允許遲交否關(guān)閉時間2019年10月13日星期日23:55

背景:

小明上小學一年級了,老師已經(jīng)教會了他們整數(shù)的+、-、*、

/、%計算,下面老師開始出題,請小明給出計算結(jié)果。

輸入格式:"%d%d"

兩個整數(shù),每個整數(shù)之間使用空格分隔。例如輸入格式為:123444

輸出格式:

分別輸出按照整型數(shù)據(jù)進行+、-、*、/、%之后的運行結(jié)果。

提示:

本題目的關(guān)鍵是如何使用printf輸出%。

Sinclude<stdio.h>

intmain()

inta,b;

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

printf(,,%d+%d=%d\n,/,a,b,a+b);

printf(,/%d-%d=%d\n,/,a,b,a-b);

printf("%d*%d=%d\n”,a,b,a*b);

printf(/z%d/%d=%d\nz,,a,b,a/b);

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

return0;

5.【小學】逆序三位數(shù)

成績5開啟時間2019年09月190星期四15:40

折扣0.8折扣時間2019年10月13日星期日23:55

允許遲交否關(guān)閉時間2019年10月13H星期日23:55

小明上了小學一年級,老師開始教他認識各種數(shù)字,在課上老師讓認識

了1000以內(nèi)的整數(shù),然后大家進行一個小游戲。

老師給出任意的一個三位數(shù),然后小明說出將這個三位數(shù)按逆序倒后形

成的新數(shù)。例如,老師給的408,小明要說804;老師給出250,小明回答52;

老師說700,小明回答007。

輸入格式:"%d"

每個測試數(shù)據(jù)是一個3位的正整數(shù)。

輸出格式:級d\n"

輸出逆序的整數(shù)。

Sinclude<stdio.h>

intmainO

(

inta,b,c,d;

scanf(〃%d〃,&a);

b=a/100;

c=a/10;

c=c-10*b;

d=a-100*b-10*c;

printf(〃%d%d%d\n〃,d,c,b);

return0;

)

6'.【入門預習】輸出字符的ASCII碼

成績5開啟時間2019年09月23日星期一08:00

折扣0.8折扣時間2019年10月13日星期日23:55

允許遲交否關(guān)閉時間2019年10月13日星期日23:55

背景:

我們在計算機基礎中已經(jīng)學過:字母在計算機中采用ASCII碼進行存

儲。下面要從鍵盤上輸入任意一個字符,然后輸出該字符對應的ASCH碼。

輸入格式:級c”

一個字符

輸出格式:

該字符對應的ASCII碼

說明:

如果編程中輸出的格式有問題,請先看看教材P51的例題3-4,然后

再想想辦法發(fā)揮一下嘍.....

^include<stdio.h>

intmainO

chara;

a=getchar();

printf(zzTheASCIIofcharacter'%c'is%d.\n〃,a,a);

return0;

}

6.【字符】大小寫字母轉(zhuǎn)換

成績5開啟時間2019年09月23日星期一08:00

折扣0.8折扣時間2019年10月13日星期日23:55

允許遲交否關(guān)閉時間2019年10月13日星期日23:55

我們知道,英文字母是分大小寫的,我們需要編寫一個程序,將輸入的小寫字

母變換為大寫字母,大寫字母變換為小寫字母,非字母保持不變。

在C語言中,字符類型為char,輸入一個字符還用用scanf函數(shù),但控制符

不同(也就是%后面的那個字母不同哦)。

輸入:一個字符

輸出:變換后的字符

提示:本題目可以不用if語句噢。

Sinclude<stdio.h>

intmainO

(

chara;

a=getchar();

a=(a>='A'&&a<='Z')?(a+32):((a>二'a'&&a〈='z')?

(a-32):a);

printf(〃%c\n〃,a);

return0;

)

7.【中學】計算圓柱的側(cè)面積及體積

成績5開啟時間2019年09月4日星期三14:00

折扣0.8折扣時間2019年10月13日星期日23:55

允許遲交是的關(guān)閉時間2019年10月13日星期日23:55

該如何處理double型的數(shù)據(jù):如何定義變量類型?如何使用scanf函數(shù)?

如果已知圓柱的底面半徑r,以及高h,則可計算出圓柱的側(cè)面積s=2nr

2

h,體積v=nrho其中“=3.1415926。

輸入:

第一行輸入圓柱的底面半徑r

第二行輸入圓柱的高h

輸出:

s=<圓柱的側(cè)面積〉,v=<圓柱的體積>

要求

1.所有變量都定義為雙精度類型

2.結(jié)果精確到小數(shù)點后兩位

^include<stdio.h>

intmain()

(

doubler,h,s,v,Pi;

Pi=3.1415926;

scanf(〃%lf%lf〃,&r,&h);

printfC/s=%.21f,v=%.21f\nz,,s=2*Pi*r*h,v=Pi*r*r*

h);

return0;

8.【小學】溫度轉(zhuǎn)換

成績5開啟時間2019年09月26日星期四19:25

折扣0.8折扣時間2019年10月13日星期日23:55

允許遲交否關(guān)閉時間2019年10月13B星期日23:55

背景:

經(jīng)常出國旅行的驢友都知道,需要時時了解當?shù)氐臍鉁貭顩r,但不少國家采用

了不同的溫度計量單位:有些使用華氏溫度標準(F),有些使用攝氏溫度

(C)o現(xiàn)在,請你根據(jù)溫度轉(zhuǎn)換公式設計一個溫度轉(zhuǎn)換程序,可以進行溫度轉(zhuǎn)

換。如果輸入攝氏溫度,顯示轉(zhuǎn)換的華氏溫度;如果輸入華氏溫度,顯示轉(zhuǎn)換

的攝氏溫度。

溫度轉(zhuǎn)換的公式為:F=(CX9/5)+32;C=(F-32)X5/9;式中F—華氏

溫度,C一攝氏溫度。

輸入:

第一個數(shù)據(jù)(字母C或F)確定轉(zhuǎn)換的類型:華氏轉(zhuǎn)攝氏(C);攝氏轉(zhuǎn)華氏

(F);

第二個數(shù)據(jù)是相應需要轉(zhuǎn)換的溫度值。

輸出:

相應的轉(zhuǎn)換后的溫度值(保留小數(shù)點后2位)。

ttinclude<stdio.h>

intmain()

(

chartype;

floatnum;

type=getchar();

scanf(〃%f〃,&num);

if(type==70)/*Cis67*/

printf(z,TheFahrenheitis2f\n〃,num*9/5+32);

else

printf(Z/TheCentigradeis%.2f\n〃,(num-32)*5/9);

return0;

H2.【選作?小學】計算時鐘夾角

成績5開啟時間2019年09月26日星期四10:00

折扣0.8折扣時間2019年10月13日星期日23:55

允許遲交否關(guān)閉時間2019年10月13日星期日23:55

背景:

鐘面上的時針和分針之間的夾角總是在0?180之間(包括0和

180)o舉例來說,在十二點的時候兩針之間的夾角為0,而在六點的時候夾

角為180,在三點的時候為90o本題要解決的是計算12:00到11:59之間

任意一個時間的夾角。

輸入:

每組測試數(shù)據(jù)包含兩個數(shù)字:第一個數(shù)字代表小時(大于等于0小于

等于12),第二個數(shù)字代表分(在區(qū)間[0,59]±)o

輸出:

對應每組測試數(shù)據(jù),用常用格式顯示時間以及這個時候時針和分針間的

最小夾角,精確到小數(shù)點后一位。輸出格式如下所示。

再看一看,想一想:是否可以不用if語句,只使用printf函數(shù)來簡化你的

程序?

^include<stdio.h>

#include<math.h>

intmainO

{

floatanglel,angle2,out,temp;

inta,b,c;

c=0;

scanf(/z%d%d〃,&a,&b);

if(a>=12)

c=12;

a=a%12;

temp=(float)b;

anglel=a+temp/60;

anglel=30*anglel;

angle2=b*6;

out=anglel-angle2;

out=fabs(out);

a=a+c;

if(out>180)

out=360-out;

if(b<10)

printf(z,At%d:0%dtheangleis%.Ifdegrees.\n,z,a,b,out);

else

printf(,zAt%d:%dtheangleis%.Ifdegrees.\n,z,a,b,out);

return0;

)

9.【小學】比較兩個整數(shù)

成績5開啟時間2019年09月23日星期一14:30

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交否關(guān)閉時間2019年10月20日星期日23:55

小明上了小學一年級,老師教他們數(shù)數(shù)(好像有點晚了:(),知道如何比較

兩個數(shù)的大小。老師在課堂上任意給出兩個整數(shù),讓小明給出兩個整數(shù)的關(guān)

系。

輸入:scanf("%d%d",....)

兩個整數(shù)

輸出:

兩個整數(shù)的關(guān)系

intmainO

inta,b;

scanf(〃%d%d〃,&a,&b);

if(a>b)

printf(z,%d大于%d.\n〃,a,b);

if(a<b)

printf(/z%d小于%d.\n〃,a,b);

if(a==b)

printf(〃兩個數(shù)相等,均為%d.\n〃,a);

return0;

10.【中學】判斷三角形的形狀

成績5開啟時間2019年09月26日星期四14:00

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交否關(guān)閉時間2019年10月20日星期日23:55

小明上了初中,開始學習幾何了。

要求:

輸入三角型的三條邊,判斷三角形的形狀。假設輸入的三邊邊長均>0。

(提示:本題中應該要用到if語句嵌套,教材中有相似例題。)

輸入:

三角型的3條邊的長度(int型)。

輸出:

等邊三角形:equilateraltriangle.

等腰三角形:isocelestriangle.

不構(gòu)成三角形:non-triangle.

一般三角形:triangle.

Sinclude<stdio.h>

intmainO

{

inta,b,c;

scanf(〃%d%d%d〃,&a,&b,&c);

if(a>b+c||b>a+c||c>a+b)

printf("non-triangle.\n〃);

elseif(a=b&&b==c)

printf(z,equilateraltriangle.\n〃);

elseif(a==b||a==c||c==b)

printf("isocelestriangle.\n/z);

else

printf("triangle.\n〃);

return0;

11.【日期】根據(jù)日期求星期

成績5開啟時間2019年09月23日星期一14:00

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交否關(guān)閉時間2019年10月20日星期日23:55

任意給出一個年月日,求出是星期幾。

輸入:

年月日

輸出:

0?6。

星期日用0表示,星期一用1表示,星期二用2表示.....星期六

用6表示。

假設年份大于1900。先想一想:我們現(xiàn)在只會使用if語句,該如何建立數(shù)學

模型?找到數(shù)學模型是解決本題的關(guān)鍵。

Sinclude<stdio.h>

/*tmain()

inta,b,c,d,e,f,days;

scanf_s(〃%d%d%d〃,&a,&b,&c);

d=1990/4-1990/100+1990/400;

e=a/4-a/100+a/400;

d=e-d;

if(a%4==0&&a%100!=0)

(

d=d-1;

)

f=a-1990;

days=365*f+d;

if(a%4==0&&a%100!=0)

switch(b)

case1:days=days+0;break;

case2:days=days+31;break;

case3:days=days+60;break;

case4:days二days+91;break;

case5:days二days+121;break;

case6:days=days+152;break;

case7:days=days+182;break;

case8:days=days+213;break;

case9:days=days+213+31;break;

case10:days=days+213+61;break;

case11:days=days+213+92;break;

case12:days=days+213+122;break;

)

else

(

switch(b)

case1:days=days+0;break;

case2:days=days+31;break;

case3:days=days+59;break;

case4:days=days+90;break;

case5:days=days+120;break;

case6:days=days+151;break;

case7:days=days+181;break;

case8:days=days+212;break;

case9:days=days+212+31;break;

case10:days=days+212+61;break;

case11:days=days+212+92;break;

case12:days=days+212+122;break;

)

)

a=days+c;

a=a%7;

printf(〃%d\n〃,a);

return0;

constchar*getWeekdayByYearday(intiY,intiM,intiD)

intiWeekDay=-1;

if(1==iM||2==iM)

iM+=12;

iY—;

)

iWeekDay=(iD+1+2*iM+3*(iM+1)/5+iY+iY/4-iY

100+iY/400)%7;

switch(iWeekDay)

(

case0:return〃0〃break;

case1:return〃1〃break;

case2:return〃2〃break;

case3:return”3〃break;

case4:return〃4〃break;

case5:return〃5〃break;

case6:return〃6〃break;

default:returnNULL;break;

returnNULL;

intmain()

(

intyear,month,day;

scanf(〃%d%d%d〃,&year,&month,&day);

constchar*p=getWeekdayByYearday(year,month,day);

printf(〃%s\n〃,p);

12.【應用】閱兵徒手方隊

成績5開啟時間2019年10月2日星期三15:35

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交否關(guān)閉時間2019年10月20日星期日23:55

今年是我們的祖國國慶70周年,10月1日在首都北京舉行了盛大的閱

兵儀式,舉國同慶。

為了方便查詢,請編寫程序,輸入國慶70周年閱兵分列式中徒手方隊

的出場順序(1?15),輸出方隊對應的名稱。

注意:請使用switch語句編寫程序。程序中要處理中文,由于漢字的編碼問

題,在提交源程序的時候請按文本方式進行提交。

Sinclude<stdio.h>

intmainO

{

intnum;

scanf(〃%d〃,&num);

printf(〃徒手方隊中第%d個出場的是:num);

switch(num)

case1:printf("儀仗方隊\n");break;

case2:printf(〃領(lǐng)導指揮方隊、n〃);break;

case3:printf(〃陸軍方隊\n〃);break;

case4:printf(〃海軍方隊\n〃);break;

case5:printf(〃空軍方隊\n〃);break;

case6:printf(〃火箭軍方隊\n〃);break;

case7:printf("戰(zhàn)略支援部隊方隊\n〃);break;

case8:printf("聯(lián)勤保障部隊方隊\n〃);break;

case9:printf("武警部隊方隊\n〃);break;

case10:printf(〃女兵方隊\n〃);break;

case11:printf(〃院??蒲蟹疥燶n〃);break;

case12:printf(〃文職人員方隊\n〃);break;

case13:printf(〃預備役部隊方隊\n");break;

case14:printf(〃民兵方隊\n〃);break;

case15:printf(〃維和部隊方隊\n〃);break;

return0;

13.【中學】求解一元二次方程

成績5開啟時間2019年10月6日星期日14:00

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交是的關(guān)閉時間2019年10月20日星期日23:55

初中的小明已經(jīng)開始學習求解一元二次方程了,下面讓我們來教計算機如何求

解。輸入a,b,c,求一元二次方程ax2+bx+c=0的根。

輸入:

假設a,b,c均into

輸出:

要求輸出的根為double型,保留6位小數(shù)。

說明:如果不會作,請參考教材P108的例5T7

Sinclude<stdio.h>

ttinclude<math.h>

intmain()

(

doublesq,a,b,c;

scanfr%lf%lf%lfz,,&a,&b,&c);

if(a==b&&a==0)

printf(/zInputerror!\nz/);

elseif(a==c&&a==0)

printfCx=0.000000\n/z);

elseif(a==0)

printf(/,x=%lf\n/,,-c/b);

else

(

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

if(sq>0)

printf(/zxl=%lf\nx2=%lf\nz/,(sqrt(sq)-b)/(2*a),(-

sqrt(sq)-b)/(2*a));

elseif(sq==0&&b!=0)

printfCxl=x2=%lf\n,/,-b/2*a);

elseif(sq==0&&b==0)

printfCxl=x2=0.000000\nz,);

else

sq=-sq;

if(b=0)

printf(,zxl=%lfi\nx2=%lfi\n,,,(sqrt(sq)-b)/(2*a),

(-sqrt(sq)-b)/(2*a));

else

printfrxl=%lf+%lfi\nx2=%lf-%lfi\n,/,-b/(2*a),

sqrt(sq)/(2*a),-b/(2*a),sqrt(sq)/(2*a));

return0;

H3.1選做.日期】再算星期一一只用if語句

成績5開啟時間2019年09月28日星期六12:00

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交是的關(guān)閉時間2019年10月20日星期日23:55

再次給出任意一個年月日(年>1900),現(xiàn)在我們不能只是直接計算,要先判斷

給出的日期是否合法,對于非法的日期要給出錯誤提示信息,合法的日期要再

計算是星期幾。

輸入:

年月曰

輸出:

0?6。

星期日用0表示,星期一用1表示,星期二用2表示.....星期六

用6表示。

假設年份大于1900o想一想,只使if語句,該如何建立數(shù)學模型(千萬不要

寫出一個超過50行的程序來,這不是我們想看到的結(jié)果)?

#include<stdio.h>

constchar*getWeekdayByYearday(intiY,intiM,intiD)

{

intiWeekDay=-1;

if(1==iM||2==iM)

iM+=12;

iY--;

iWeekDay=(iD+1+2*iM+3*(iM+1)/5+iY+iY/4-iY

100+iY/400)%7;

switch(iWeekDay)

(

case0:return〃0〃break;

case1:return〃1〃break;

case2:return〃2〃break;

case3:return〃3〃break;

case4:return〃4〃break;

case5:return〃5〃break;

case6:return〃6〃break;

default:returnNULL;break;

)

returnNULL;

)

intcheck(intyear,intim,intid)

(

intm,d,k;

m=1;

d=1;

k=1;

if(im>12||im<l)

m=0;

else

m=1;

im=im%12;

if(im==1||im==3||im==5im==7||im==8||im==

10||im==12)

(

if(id>31)

d=0;

else

d=1;

)

if(im==4||im==6||im==9im==11)

(

if(id>30)

d=0;

else

d=1;

)

if(year%400==0)

k=l;

else

if(year%4==0&&year%100!=0)

k=1;

else

k=0;

if(k==1&&im二二2)

(

if(id>29)

d=0;

else

d=1;

)

if(k==0&&im==2)

(

if(id>28)

d=0;

else

d=1;

if(id>31||id<l)

d=0;

if(d==1&&m==1)

return1;

else

(

if(d==0&&m==0)

printf("monthanddayarewrong.\n〃);

if(d==0&&m==1)

printf(z/dayiswrong.\nz,);

if(d==1&&m==0)

printf("'monthiswrong.\n〃);

return0;

)

)

intmainO

(

intyear,month,day;

intout;

scanf(〃%d%d%d〃,&year,&month,&day);

intcheck(intyear,intmonth,intday);

out=check(year,month,day);

constchar*p=getWeekdayByYearday(year,month,day);

if(out==1)

printf(〃%s\n〃,p);}

H4.【選作?應用】信號報告

成績5開啟時間2019年09月29日星期日14:00

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交否關(guān)閉時間2019年10月20日星期日23:55

無線電臺的RS制信號報告是由三兩個部分組成的:

?R(Readability)信號可辨度即清晰度.

?S(Strength)信號強度即大小.

其中R位于報告第一位,共分5級,用1—5數(shù)字表示.

1.Unreadable

2.Barelyreadable,occasionalwordsdistinguishable

3.Readablewithconsiderabledifficulty

4.Readablewithpracticallynodifficulty

5.Perfectlyreadable

報告第二位是S,共分九個級別,用1—9中的一位數(shù)字表示

1.Faintsignals,barelyperceptible

2.Veryweaksignals

3.Weaksignals

4.Fairsignals

5.Fairlygoodsignals

6.Goodsignals

7.Moderatelystrongsignals

8.Strongsignals

9.Extremelystrongsignals

現(xiàn)在,你的程序要讀入一個信號報告的數(shù)字,然后輸出對應的含義。如讀到

59,則輸出:

Extremelystrongsignals,perfectlyreadable.

輸入格式:級d”

一個整數(shù),信號報告。

整數(shù)的十位部分表示可辨度,個位部分表示強度。輸入的整數(shù)范圍是[11,59]中

的個位不為0的數(shù)字,這個范圍外的數(shù)字不可能出現(xiàn)在測試數(shù)據(jù)中。

輸出格式:

一句話,表示這個信號報告的意義。

按照題目中的文字,先輸出表示強度的文字,跟上逗號和空格,然后是表示可

辨度的文字,跟上句號。注意可辨度的句子的第一個字母是小寫的。注意這里

的標點符號都是英文的。

輸入樣例:33

輸出樣例:Weaksignals,readablewithconsiderabledifficulty.

說明:本題選自翁愷2015年MOOC。

Sinclude<stdio.h>

intmainO

(

inta,b,c;

scanf(z/%dz,,&a);

b=a/10;

c=a-b*10;

switch(c)

(

casel:printfC'Faintsignals,barelyperceptible,〃);break;

case2:printf("Veryweaksignals,〃);break;

case3:printf("Weaksignals,〃);break;

case4:printf("Fairsignals,〃);break;

case5:printfC'Fairlygoodsignals,〃);break;

case6:printf("Goodsignals,〃);break;

case7:printf(^Moderatelystrongsignals,〃);break;

case8:printf("Strongsignals,〃);break;

case9:printf(zzExtremelystrongsignals,〃);break;

)

switch(b)

{

case1:printf("unreadable.\n〃);break;

case2:printf(z/barelyreadable,occasionalwords

distinguishable.\n〃);break;

case3:printf("readablewithconsiderabledifficulty.\nzz);break;

case4:printf("readablewithpracticallynodifficulty.\nz/);

break;

case5:printf(^perfectlyreadable.\n,z);break;

)

return0;

)

H5.【選作?應用】求過頂點的切線方程告(同學出

題))

成績5開啟時間2019年10月9日星期三14:00

折扣0.8折扣時間2019年10月20日星期日23:55

允許遲交否關(guān)閉時間2019年10月20日星期日23:55

同學出題:睿信1945班許頌強

給定橢圓方程和一個定點,求過定點的切線方程。

輸入:

第1行:輸入a2和b2的值,即x2/a?+y2/b2=l中的a2和b2,保證

a?和b2均為整數(shù)且大于0。

第2行:輸入定點的坐標

輸出:

切線方程或Inputerror!o

Sinclude<stdio.h>

intmain()

(

doublex,y,apf,bpf;

scanf(,,%lf&apf,&bpf);

scanf(z/%lf&.x,&y);

if(apf<=0||bpf<=0)

printf(zzInputerror!\n/z);

elseif(x*x/apf+y*y/bpf!=1)

printf("Inputerror!\n/z);

elseif(x==0)

printf(zzy=%lf\n/z,y);

elseif(y==0)

printf(zzx=%lf\nzz,x);

elseif(y>0)

printf("y=%lfx+%lf\n",-(x*bpf)/(y*apf),bpf/y);

else

//,,

printf(y=%lfx%lf\n>-(x*bpf)/(y*apf),bpf/y);

return0;

14.【小學】求累加和

成績5開啟時間2019年10月6日星期日14:00

折扣0.8折扣時間2019年10月27日星期日23:55

允許遲交否關(guān)閉時間2019年10月27日星期日23:55

背景:

哈哈!小明開始進行加法強化修煉啦。

功能:

求整數(shù)n到m區(qū)間的累加和,其中n<=mo

輸入:

區(qū)間的起始點n區(qū)間的終止點m

輸出:

累加和

Sinclude<stdio.h>

intmain()

(

inta,b,i,sum;

sum=0;

scanf(/z%d%d〃,&a,&b);

for(i=a;i<=b;i++)

(

sum=sum+i;

)

printf(/zThesumfrom%dto%dis%d.\n〃,a,b,sum);

return0;

15.【小學】角谷猜想(同學出題)

成績5開啟時間2019年10月6日星期日14:00

折扣0.8折扣時間2019年10月27日星期日23:55

允許遲交否關(guān)閉時間2019年10月27日星期日23:55

同學出題:馮易

角谷猜想(尚未證明):對于任意一個正整數(shù),若為奇數(shù)則乘3加1,若為偶

數(shù)則除以2,得到的結(jié)果再按照上述規(guī)則重復,最終總能得到1。例如,假定初

始整數(shù)為5,計算過程分別為16、8、4、2、1。編程驗證之。

【輸入】一個整數(shù)n(K=n<=20000000)

【輸出】多行的計算過程

注意:如果驗證過程達到20步還沒有得到結(jié)論,則停止。

Sinclude<stdio.h>

intmainO

{

longinta,b;

inti=0;

scanf&a);

while(a!=1)

(

i++;

if(a%2==1)

(

b=a*3+1;

printf(zz%ld*3+l=%ld\nz,,a,b);

a=b;

)

else

(

b=a/2;

printf(zz%ld/2=%ld\nz,,a,b);

a=b;

)

if(i==20)

break;

}

return0;

16.【小學】青蛙出井(同學出題)

成績5開啟時間2019年10月6日星期日14:00

折扣0.8折扣時間2019年10月27日星期日23:55

允許遲交否關(guān)閉時間2019年10月27日星期日23:55

同學出題:張欣

在LIT(哈哈,能猜到是什么地方吧?)有一口用于鋪設光纖的施工

井,井中有一只青蛙過著無憂無慮的生活,有一天,它想出去看看更廣闊的天

空,于是決定行動了!

第一天它向上爬了n米,由于缺少食物,每過一天青蛙比前一天少爬

1米,且每天結(jié)束都會下滑m米,井有x米深。請判斷青蛙是否能爬出井,

如果能,求爬出經(jīng)過的天數(shù)do

輸入:nmx(假設n,m,x均為正整數(shù))

輸出:do

#include<stdio.h>

intmain()

{

intn,m,x,d;

scanf(z/%d%d%d,/,&n,&m,&x);

d=0;

while(x>0)

(

x=x-n;

n—;

d++;

if(x<=0)

(

printf("青蛙能爬出井,且第%d天爬出井。\n”,d);

break;

)

x=x+m;

if(n==0)

(

printf("青蛙不能爬出井。\n");

break;

return0;

17.【小學】循環(huán)字母

成績5開啟時間2019年10月10日星期四10:00

折扣0.8折扣時間2019年10月27日星期日23:55

允許遲交否關(guān)閉時間2019年10月27日星期日23:55

小明開始學習英文,第一節(jié)課就是學習26個字母。為了幫助小明記住

這些字母,小明的哥哥編寫了一個程序,只要說出第一個字母,就可以依次循

環(huán)先是后續(xù)的26個字母。

輸入:

一個起始字母(大小寫字母均可)

輸出:

以指定字母為起始的26個字母

Sinclude<stdio.h>

intmainO

(

inti;

chara;

a=getchar();

for(i=0;i<26;i++)

(

printf(〃%c〃,a);

a++;

if(a==123||a==91)

a=a-26;

)

printf(〃\n");

return0;

)

18.【應用】念整數(shù)

成績5開啟時間2019年10月10日星期四11:00

折扣0.8折扣時間2019年10月27日星期日23:55

允許遲交否關(guān)閉時間2019年10月27日星期日23:55

題目內(nèi)容:

你的程序要讀入一個整數(shù),范圍是[T00000000,100000000]。然后,用漢語拼

音將這個整數(shù)的每一位輸出出來。

如輸入1234,則輸出:

yiersansi

注意,每個字的拼音之間有一個空格,但是最后的字后面沒有空格。當遇到負

數(shù)時,在輸出的開頭加上〃fu",如-2341輸出為:

fuersansiyi

輸入格式:

一個整數(shù),范圍是[T00000,100000]。

輸出格式:

表示這個整數(shù)的每一位數(shù)字的漢語拼音,每一位數(shù)字的拼音之間以空格分隔,

末尾沒有空格。

輸入樣例:

-30

輸出樣例:

fusanling

選自:翁愷老師2015年M00C課程。

#include<stdio.h>

Sinclude<math.h>

intmain(intargc,constchar*argv[]){

//insertcodehere...

inti,j;

scanf&i);

intn=0;

if(i<0)

(

printf(zzfu");

i=i*-1;

)

intm=i;

while(m>0)

(

m=m/10;

n++;

)

if(i==0)

(

printf("ling'n");

)

for(intj=n-1;j>=0;j—)

(

intb=i/(pow(10,j));

i=i%(int)pow(lO,j);

switch(b)

case0:

printf(〃ling〃);

break;

case1:

printf("yi");

break;

case2:

printf(〃er〃);

break;

case3:

printf(〃san〃);

break;

case4:

printf(〃si〃);

break;

case5:

printfCwu");

break;

case6:

printf(〃liu〃);

break;

case7:

printf(〃qi〃);

break;

case8:

printf(〃ba〃);

break;

case9:

printfCjiuz,);

break;

)

if(j!=0)

(

printf("");

)

else

printf('\n");

H6.【選作?小學】最近的分數(shù)(學長出題)

成績5開啟時間2019年10月10日星期四11:00

折扣0.8折扣時間2019年10月27日星期日23:55

允許遲交是的關(guān)閉時間2019年10月27日星期日23:55

題目描述:

給定三個正整數(shù)x,y,n.你的任務是找到與分數(shù)x/y最接近的分母

不超過n的分數(shù).

也就是說要找到一對整數(shù)a,b(l<=b<=n,0<=a)使得|x/y-a

/b|盡可能小。

如果有多個滿足條件的,輸出分母最小的一個。如果依然有多個滿足

分母最小的,輸出分子最小的一個。

輸入:

三個整數(shù)x,y,n.(1<=x,y,n<=10~5)

輸出:

題目要求的分數(shù),以“a/b”形式輸出。

深夜提示(學長配圖):

Sinclude<stdio.h>

Sinclude<math.h>

intmainO

(

intx,y,n,fenzi=l,fenmu=l,i,big,small;

doublepre,goal,temp;

scanf(z,%d%d%d〃,&x,&y,&n);

intz=x/y;

goal=1.0*x/y;

pre=100;

if(n>y)

printf(z/%d/%d\nz,,x,y);

else

(

x%=y;

temp=(1.0*x)/y;

pre=100;

for(i=n;i>0;i--)

(

small=(int)(temp*i);

big=small+1;

if(fabs(temp一((1.0big)/i))<=pre)

(

pre=fabs(temp-((1.0*big)/i));

溫馨提示

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

最新文檔

評論

0/150

提交評論