c語言總練習題


442

45

1

Description

 鍵盤輸入一個雙精度數據,乘以2以后輸出

Input

 輸入一個double型數據

Output

輸出它的兩倍數,結果保留8位小數

Sample Input

3.1415926536

Sample Output

6.28318531

 

#include<stdio.h>

 int main()

 {

 double a,s;

 scanf("%lf",&a);

 s=a*2;

 printf("%.8lf",s);

 return 0;

 }

 

 

2

Description

OJ上的題目,選擇題總共有200題,判斷題有50題,填空題有120題,假設試卷中的選擇題每題0.6分,判斷題每題0.2分,填空題每題0.3分,要出一份三種題型都有、總共有100題的卷子,但總分只能有m分(m不超過59,不少於30,由鍵盤輸入),每種題目出多少?請你幫忙計算一下,總共有多少種出題方案,分別應該怎樣出。

Input

輸入整數m的值(后台給的m,能保證至少有一種方案)

Output

輸出每一種方案的組合數據以及方案總數

Sample Input

55

Sample Output

84,2,14

 85,5,10

 86,8,6

87,11,2

4

 

#include<stdio.h>

 int main()

 {

int a,m,i,j,k,s;

scanf("%d",&m);

s=m*10;

a=0;

 

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

for(j=1;j<50;j++)

for(k=1;k<120;k++)

if(i+j+k==100&&i*6+j*2+k*3==s)

{

a=a+1;

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

}

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

 return 0;

 }

 

 

 

 

3

Description

鍵盤輸入分子和分母的值(都是整數),求分數的值。結果保留2位小數

Input

輸入兩個整數

Output

輸出分數的值

Sample Input

2,6

Sample Output

0.33

 

#include<stdio.h>

int main()

{

int a,b;

float m;

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

m=(float)a/b;

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

return 0;

 

}

 

4

Description

輸入一個華氏溫度,要求輸出攝氏溫度。公式為 c=5/9 (F-32) 輸出要求取位2小數。

Input

一個華氏溫度,浮點數

Output

攝氏溫度,浮點兩位小數

Sample Input

-40

Sample Output

c=-40.00

 

#include<stdio.h>

int main()

{

float a,b;

scanf("%f",&a);

b=5./9*(a-32);

printf("c=%.2f",b);

return 0;

}

 

5

Description

鍵盤輸入考試總人數和不及格人數,輸出及格人數、總人數、及格率,其中,前兩項數據輸出結果最小寬度為n(n由鍵盤輸入),最后一項及格率保留2位小數,最小寬度為6

Input

總人數,不及格人數,n

Output

及格人數、總人數、及格率,每個數據占一行
其中及格人數、總人數最小寬度都是n,及格率最小寬度為6(含%)

Sample Input

99 4 5

Sample Output

95

99

95.96%

 

 

#include<stdio.h>

int main()

{

int kz,bj,jg,n;

float jgl;

scanf("%d %d %d",&kz,&bj,&n);

    jg=kz-bj;

jgl=(float)jg/kz*100;

printf("%*d\n%*d\n%5.2f%%",n,jg,n,kz,jgl);

return 0;

}

 

/*

Input

按例子所示的格式輸入一組數據

 

Output

輸出符合格式要求的結果

 

 

6

Sample Input

A

B

C D

1 2

3,4

5 E

6F

a=7,b=8

Sample Output

c1=A,c2=B

c1=C,c2=D

a=1,b=2

3 4

a=5 c1=E

a=6,c1=F

a=7,b=8

 

 

 

#include <stdio.h>

 

int main()

 

{

 

       int a,b;

 

       char c1,c2;

 

       //在下面填寫幾行代碼,利用getchar()函數輸入字符給c1,c2, 此處不允許使用scanf()函數

   c1=getchar();

   getchar();

   c2=getchar();

   getchar();

       printf("c1=%c,c2=%c\n",c1,c2);      //輸出c1,c2,請填上合適的格式控制--------下同

 

       //在下面填寫代碼,用scanf()輸入兩個數據給c1,c2,必須用到scanf(),可以另有getchar()

       scanf(" %c %c",&c1,&c2);

 

 

       printf("c1=%c,c2=%c\n",c1,c2);

 

       //在下面填寫代碼,用scanf()輸入兩個數據給a,b

 

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

 

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

 

       //在下面填寫代碼,用scanf()輸入兩個數據給a,b

 

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

 

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

 

       //在下面填寫代碼,用scanf()輸入兩個數據給a,c1

       scanf(" %d %c",&a,&c1);

       

 

       printf("a=%d c1=%c\n",a,c1);

 

       //在下面填寫代碼,用scanf()輸入兩個數據給a,c1

 

       scanf("%d%c",&a,&c1);

   getchar();

 

       printf("a=%d,c1=%c\n",a,c1);

 

       //在下面填寫代碼,用scanf()輸入兩個數據給a,b

       scanf("a=%d,b=%d",&a,&b);

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

 

       return 0;

 

}

 

 

 

7

Description

 期末時,學校評選獎學金,以所得積分為依據,積分規定:

1)每人基礎分75分

2)C語言考試90及以上加10分

3)高數考試90及以上加8分

4)英語考試90及以上加7分

鍵盤輸入三門課的成績,求該生最終積分

Input

 輸入三門課成績

Output

 輸出積分

Sample Input

95 92 98

Sample Output

100

 

#include<stdio.h>

int main()

{

 

int c,math,en,jf=75;

scanf("%d %d %d",&c,&math,&en);

if(c>=90)

jf+=10;

if(math>=90)

jf+=8;

if(en>=90)

jf+=7;

printf("%d",jf);

return 0;

}

 

8

Description

鍵盤輸入兩個整數,然后:

1)若任意一個數在10~100(包括10和100)之間,則輸出它們,否則不輸出;

2)不管什么情況,程序的最后都輸出:End

要求:(1)用if的第一種格式編程,即不允許使用else    (2)不允許使用復合語句

 

Input

Output

Sample Input

5 12

Sample Output

5,12 End

 

 

#include<stdio.h>

int main()

{

int a,b;

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

if(a>=10&&a<=100||b>=10&&b<=100)

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

printf("End");

return 0;

 

}

9

Description

鍵盤輸入兩個整數,若前者大,則輸出兩個數的差以及它們的平方差,否則輸出兩個數的和以及它們的平方和

Input

Output

第一行輸出兩數的和或差

第二行輸出兩數的平方和或平方差

Sample Input

1,2

Sample Output

3 5

 

#include<stdio.h>

int main()

{

int a,b,ch,he,pch,phe;

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

ch=a-b;

pch=a*a-b*b;

he=a+b;

phe=a*a+b*b;

if(a>b)

printf("%d\n%d",ch,pch);

else

    printf("%d\n%d",he,phe);

return 0;

}

 

10

Description

鍵盤輸入一個整數(0--51),如果在0-25之間,則輸出對應的大寫字母,(0對應A,1對應B,2對應C,......25對應Z);否則輸出對應的小寫字母(26--a, 27--b, 28--c...51--z)

 本題必須用if的第二種格式編程,否則不得分

 

Input

輸入整數,整數范圍是0--51

Output

輸出題目要求的內容

Sample Input

1

Sample Output

B

 

#include<stdio.h>

int main()

{

int a;

scanf("%d",&a);

if(a>=0&&a<=25)

printf("%c",a+65);

else

printf("%c",a+71);

return 0;

}

 

 

 

11

Description

 

某產品的價格是800元/件,但若購買量大可給予一定的折扣:超過100(含100,下同)件時打9折,超過200件打85折,超過300件打82折,超過500件打8折,請用嵌套的if-else語句編程求解應收款。

不允許使用並列(平等)的if,即:所有的if必須都嵌套

 

Input

 

購買產品的件數

Output

應收款

Sample Input

400

Sample Output

262400

 

#include<stdio.h>

int main()

{

int a,s;

scanf("%d",&a);

if(a<100)

s=a*800;

else if(a<200)

s=a*80*9;

     else if(a<300)

    s=a*8*85;

      else if(a<500)

      s=a*8*82;

  else if(a>=500)

         s=a*80*8;

printf("%d",s);

return 0;

}

12

Description

某產品的價格是800元/件,但若購買量大可給予一定的折扣:夠100件時打9折,夠200件打85折,夠300件打82折,夠500件打81折,請用單獨的if語句編程求解應收款。
所謂單獨的if語句,是指所有的if都是平等的、不嵌套的(都是格式一)
本題程序代碼中不允許出現else
特別注意:實數的存儲和計算是不精確的
思考:本題還可用哪種格式編程?

Input

輸入購買件數

Output

輸出應收款

Sample Input

400

Sample Output

262400

 

 

#include<stdio.h>

int main()

{

int a,s;

scanf("%d",&a);

if(a<100){

s=a*800;

printf("%d",s);}

    if(a>=100&&a<200){

s=a*80*9;

printf("%d",s);}

if(a>=200&&a<300){

    s=a*8*85;

printf("%d",s);}

if(a>=300&&a<500){

      s=a*8*82;

  printf("%d",s);}

if(a>=500){

         s=a*81*8;

  printf("%d",s);}

return 0;

}

13

Description

鍵盤輸入一個字符,若是大寫字母,則變成小寫后輸出,若是小寫字母,則變成大寫后輸出,都不是,則原樣輸出

Input

一個任意字符

Output

輸出相應的字符

Sample Input

a

Sample Output

A

 

#include<stdio.h>

int main()

{

char n;

scanf("%c",&n);

if(n>=65&&n<=90)

n+=32;

else if(n>=97&&n<=122)

n-=32;

     else n=n;

 printf("%c",n);

return 0;

}

 

 

 

14

Description

某產品的價格是800元/件,但若購買量大可給予一定的折扣:夠100件時打9折,夠200件打85折,夠300件打82折,夠500件打8折,請用switch語句編程求解應收款。



必須用switch語句,用if語句 不得分


Input

輸入一個購買量


Output

輸出應付款


Sample Input

10
Sample Output

8000

 

 

#include <stdio.h>
int main()
{
     int x,y;
     scanf("%d",&x);
     switch(x/100)
     {
case 0:
y=x*800;break;
case 1:
y=x*90*8;break;
case 2:
y=x*85*8;break;
case 3: y=x*82*8;break;
case 4:
default : y=x*80*8;
break;
     }
     printf("%d\n",y);
     return 0;
}

15

Description

某售樓處規定:售樓員每賣出一套商品房,可提成1000元,每賣出一套別墅,可提成2000元。為了鼓勵多賣別墅,公司做了如下補充規定:賣商品房的提成設上限,上限與一年中賣出的別墅數量有關:
0套: 上限是:10000
1~5套:上限是:20000
6-10套:上限是:30000
11套以上:上限是:50000
鍵盤輸入售樓員一年賣出的商品房數量和別墅數量,計算應得的提成

Input

輸入兩個整數,分別代表商品房和別墅數量

Output

輸出應得的提成

Sample Input

25,2

Sample Output

24000

 

#include<stdio.h>

int main()

{

int bs,sp,tc;

scanf("%d,%d",&sp,&bs);

 

if(bs==0)

if(sp<=10)

tc=sp*1000;

else tc=10000;

if(bs>=1&&bs<=5)

if(sp<=20)

tc=sp*1000+bs*2000;

else tc=20000+bs*2000;

if(bs>=6&&bs<=10)

if(sp<=30)

tc=sp*1000+bs*2000;

else tc=30000+bs*2000;

    if(bs>=11)

if(sp<=50)

tc=sp*1000+bs*2000;

else tc=50000+bs*2000;

 

 

printf("%d",tc);

return 0;

}

 

16

Description

老師規定:平時練習題限定最高得分率k%,超出的不計。k取決於課堂測驗的得分率k1,兩者對應關系如下。
測驗得分率k1            練習題最高得分率k
0<=k1<10                   30
10<=k1<20                  40
20<=k1<40                  50
40<=k1<70                  70
70<=k1<=100               100
鍵盤輸入一個整數(0--100)作為k1,求k
要求:必須用switch編程,用if不得分

Input

輸入一個整數

Output

輸出k的值

Sample Input

30

Sample Output

50

 

#include<stdio.h>

int main()

{

int k1,k;

scanf("%d",&k1);

switch(k1/10)

{

   case 0: k=30;break;

   case 1: k=40;break;

   case 2:

   case 3: k=50;break;

   case 4:

   case 5:

   case 6: k=70;break;

   case 7:

   case 8:

   case 9:

   case 10: k=100;break;

}

printf("%d",k);

return 0;}

 

17

Description

單位分福利,規定男職工每人每10年工齡可分10斤雞蛋(不足10年的部分按10年計,比如11年的按20年計),女職工比男職工可多分2(10年工齡),如果是干部,比一般職工再多分5(10年工齡),,編程給出不同人應分多少雞蛋。職工性別、工齡及是否干部從鍵盤輸入。

Input

 先輸入工齡,再輸入性別(用mM表示男,用fF表示女),最后輸入是否干部(Yy表示干部,Nn表示非干部)。數據之間用逗號隔開。

如:12FY

 

Output

輸出應分雞蛋的重量

Sample Input

12,F,Y

Sample Output

34

 

*1種方法

#include<stdio.h>

int main()

{

int gl,s,n;

char sex,gb;

scanf("%d,%c,%c",&gl,&sex,&gb);

n=(gl-1)/10+1;

s=n*10;

if(sex=='f'||sex=='F')

s=s+n*2;

if(gb=='Y'||gb=='y')

s=s+n*5;

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

return 0;}

18

 

 

Description

 

鍵盤輸入10個整數,問:第幾個數最大?最大值是多少?

 

 

 

Input

 

輸入10個整數,用空格或回車隔開

 

 

 

Output

 

先輸出最大值序號,再輸出最大值

 

 

 

Sample Input

 

-5 -9 -1 -10 -3 -8 -6 -7 -2 -4

 

Sample Output

 

3,-1

 

方法1

#include<stdio.h>

int main()

{

int a[10];

int i,max,m;

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

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

for(i=0,max=a[0],m=0;i<=9;i++)

{

if(a[i]>=max)

{max=a[i];

    m=i+1;

}

}

printf("%d,%d\n",m,max);

return 0;

}

 

方法2

#include<stdio.h>  

int main()

{

int i,j,a,m;

scanf("%d",&a);

m=a;

j=1;

for(i=2;i<=10;i++)

{

scanf("%d",&a);

if(a>=m)

{m=a;

j=i;

}

}

printf("%d,%d",j,m);

return 0;

}

 

 

19

Description

 

統計n個數中大於x的個數和小於x的個數。

 

 

 

Input

 

輸入包括兩行。第一行是 n 1<n<100) 和x  (|x|<=10000) 。第二行有n個整數,用 ‘,’分隔。

 

Output

 

輸出大於x的數的個數和小於x的數的個數。

 

Sample Input

 

6 3

 

1,2,3,4,5,6

 

Sample Output

 

3 2

 

方法1

#include<stdio.h>

 

int main()

 

{

 

int s=0,i,n,x,b=0,t;

 

float j;

 

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

 

int a[100];

 

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

 

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

 

}

 

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

 

{

 

if(a[i]>x) {s++;}

 

else  b++;

 

}

 

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

 

{

 

if(a[i]==x) {t++;}

 

}

 

printf("%d %d\n",s,b-t);

 

return 0;

 

}

方法2

#include<stdio.h>

int main()

{

int n,x,i,a,j=0,k=0;

scanf("%d %d\n",&n,&x);

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

{

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

if(a<x)

j++;

if(a>x)

k++;

}

printf("%d %d",k,j);

return 0;

 

}

 

20

Description

 

找出[1000,n](n由鍵盤輸入,1000<=n<=9999)間所有符合條件的數,條件是:

 

 

 

 

 

1)個位數和百位數的和,等於十位數和千位數的差(十位數減千位數,不是千位數減十位數)

 

2)偶數

 

Input

 

輸入一個n

 

Output

 

輸出符合條件的數

 

Sample Input

 

1100

 

Sample Output

 

1010

1032

1054

1076

1098

 

 

#include<stdio.h>

int main()

{

int n,a=1000,i;

scanf("%d",&n);

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

{

if(a%2==0&&(a%10+a/100%10==a/10%10-a/1000))

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

a=a+1;

}

return 0;

}

 

21

Description

 

C老師特別可恨,動不動就抓重修,想偷懶糊弄一下都不行!這不,最近又出台了一項新規定:每當做不出一個題目,就將平時成績打x(例如:x95時就打95),若又有一題做不出來,則在此基礎上再打x折。某同學平時玩游戲比較多,再加上社團活動占用了很多時間,所以基本沒怎么學C語言,現在他比較關心一件事:多少題做不出來,平時成績就不及格了?(平時成績拿不到60%就是不及格),請你快編個程序幫他算算吧,他自己肯定是編不出程序來的。

 

 

 

 

 

 

 

Input

 

鍵盤輸入整數xx在【50~99】之間

 

 

 

Output

 

輸出達到不及格的題目數

 

 

 

Sample Input

 

90

 

Sample Output

 

5

 

#include<stdio.h>  

 

int main()

 

{

 

int i,x,a;

 

float z=100;

 

scanf("%d",&x);

 

for(i=1; ;i++)

 

{

 

z=z*(x/100.);

 

if(z<60)

 

break;

 

}

 

printf("%d",i);

 

return 0;

 

}

 

22

Description

 

秋天,黑熊掰了一堆玉米留着過冬,如今冬天開始了,黑熊開始食用這些玉米,假設它每天吃掉現有(之前剩下的)玉米總數的n%n由鍵盤輸入),問,當玉米總數不足原來(最初)一半的時候,冬天已過去了多少天?

 

 

 

Input

 

輸入n

 

 

 

Output

 

輸出天數

 

 

 

Sample Input

 

20

 

Sample Output

 

4

 

 

#include<stdio.h>

int main()

{

int n,i;

float z=1.0;

scanf("%d",&n);

for(i=1;z>=0.5;i++)//z>=0.5和這里的if寫一個就可以,沒有ifi=0為起始值,如果用ifi=1

{

z=z*(1-n/100.);

if(z<0.5)

break;

}

printf("%d",i);

return 0;

}

23

Description

 

歌手大賽共有n名評委,每位評委給出一個分數,去掉最高分和最低分各一個,求選手最終得分

 

 

 

保留2位小數

 

 

 

Input

 

輸入評委人數和每個評委所給分數(整數)

 

 

 

Output

 

輸出選手最后得分,保留兩位小數

 

 

 

Sample Input

 

9

 

90,96,92,97,95,96,90,95,97

 

Sample Output

 

94.43

 

 

方法1

#include<stdio.h>

 

int main()

 

{

 

int a[100];

 

int i,n,s=0,max,min;

 

float m;

 

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

 

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

 

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

 

max=a[0];min=a[0];

 

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

 

{

 

if(max<a[i])

 

max=a[i];

 

if(min>a[i])

 

min=a[i];

 

s+=a[i];

 

}

 

s=s-max-min;

 

m=1.0*s/(n-2);

 

printf("%.2f",m);

 

return 0;

 

}

 

方法2

#include<stdio.h>

int main()

{

int i,n,a,s=0,max,min;

float m;

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

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

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

max=a;min=a;

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

{

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

if(max<a)

max=a;

if(min>a)

min=a;

s+=a;

}

s=s-max-min;

m=1.0*s/(n-2);

printf("%.2f",m);

return 0;

}

 

24

 

Description

 

鍵盤輸入一串字符,以回車鍵結束,統計其中數字的個數和空格的個數

 

 

 

Input

 

輸入一串字符,以回車鍵結束

 

 

 

Output

 

輸出數字和空格的個數

 

 

 

Sample Input

 

as23s df6 AS30N8

 

Sample Output

 

6,2

 

方法1

#include<stdio.h>

int main()

{

char s;

int i,a=0,b=0;

while((s=getchar())!='\n')

{

if(s>='0'&&s<='9')

a++;

if(s==' ')

b++;

}

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

return 0;

}

 

 

方法2

#include<stdio.h>

int main()

{

int i,a=0,b=0;

char s;

for(i=1;;i++)

{

scanf("%c",&s);

if(s=='\n')

break;

   if(s==' ')

   a++;

   if(s>='0'&&s<='9')

   b++;

}

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

return 0;

 

}

25

Description

 

編寫程序,讀入若干同學計算機的考試成績(整數),以-1結束,求平均成績(保留1位小數)

 

 

 

Input

 

輸入若干成績,以-1結束

 

 

 

Output

 

輸出平均成績

 

 

 

Sample Input

 

66 77 88 99 -1

 

Sample Output

 

82.5

 

 

#include<stdio.h>

int main()

{

int a,i,p=0;

float z=0;

for(i=0;;i++)

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

if(a==-1)

break;

else

p=p+a;

}

z=(float)p/i;

printf("%.1f",z);

return 0;

}

 

26

 

Description

設有表達式 a+aa+aaa+aaaa+......,其中a代表一個數字,如:2+22+222+2222+22222+....... 

鍵盤輸入數字a和正整數n,求表達式前n項的和

Input

 輸入a和n

Output

輸出表達式前n項的和

Sample Input

5,3

Sample Output

615

 

 

#include<stdio.h>

int main()

{

int a,n,s=0,t,i;

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

t=a;

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

{

s=s+t;

t=t*10+a;

}

printf("%d",s);

return 0;

 

}

27

 

Description

 鍵盤輸入正整數n,求表達式前n項的和

Input

 輸入n

Output

 求表達式前n項的和

Sample Input

3

Sample Output

10

 

#include<stdio.h>

int main()

{

int a,n,s=0,t,i;

scanf("%d",&n);

t=0;

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

{

 

t=t+i;

s=s+t;

}

printf("%d",s);

return 0;

 

}

 

28

 

Description

一個4位數,若分成兩個2位數(如:2025分為20和25),並且這兩個兩位數的和的平方等於該4位數本身(如:(20+25)*(20+25)=2025),則該4位數稱為平方數。

鍵盤輸入一個4位整數n,求n以內的最大平方數,若沒有,輸出No。

 

Input

輸入一個4位整數

Output

輸出n以內最大平方數

Sample Input

9999

Sample Output

9801

 

#include<stdio.h>

int main()

{

int n,i=1000,a=0;

scanf("%d",&n);

while(i<=n)

{

if((i/100+i%100)*(i/100+i%100)==i)

a=i;

i++;

}

if(a=0)

printf("No");

else

printf("%d",a);

return 0;

 

 

}

 

 

29

Description

有數列:1,3,7,13,21,31,43,57,73...... 鍵盤輸入一個整數n,問數列的前多少項之和可以超過n?

Input

輸入正整數n

Output

輸出項數

Sample Input

15

Sample Output

4

 

#include<stdio.h>

int main()

{

int n,s=0,t,i;

scanf("%d",&n);

for(i=1;;i++)

{

t=i*i-(i-1);

s=s+t;

if(s>n)

break;

}

printf("%d",i);

return 0;

 

}

30

Description

有一個數列如下:

A,a+a^2,a+(a+a^2)^2......

其特點是,從第二項開始,每一項都等於前一項的平方+a

鍵盤輸入a的值(整數),再輸入一個整數n(n>0),求數列前n項的和

Input

輸入a和n的值

Output

輸出數列前n項的和

Sample Input

1 2

Sample Output

3

 

 

#include<stdio.h>

int main()

{

int a,n,s=0,b,t=0,i;

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

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

{

 

b=a+t*t;

s=s+b;

t=t*t+a;

}

printf("%d",s);

return 0;

}

 

31

Description

 一筐雞蛋,2個2個拿,最后剩一個,3個3個拿,正好拿完,4個4個拿,最后余1個,5個5個拿,差一個,6個6個拿,余3個,每次拿7個,正好拿完,每次拿8個,余1個,每次拿9個,正合適,問:筐里最少多少個雞蛋?

Input

 無

Output

 輸出最少的雞蛋數

 

 

#include<stdio.h>

int main()

{

int a=0;

for(a=0;;a++)

{

if((a%2==1)&&(a%3==0)&&(a%4==1)&&(a%5==4)&&(a%6==3)&&(a%7==0)&&(a%8==1)&&(a%9==0))

// if((a%4==1)&&(a%10==9)&&(a%6==3)&&(a%8==1)&&(a%63==0)) 也行

 

{

printf("%d",a);

break;

}

 

}

 

return 0;

 

 

}

 

32

 

Description

 1+2+4+7+11+16+22+29+37+......前n項的和 

Input

輸入整數n

Output

輸出前n項的和

Sample Input

1

Sample Output

1

 

 

#include<stdio.h>

int main()

{

int n,i,t=1,s=0;

scanf("%d",&n);

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

{

 

s=s+t;

t=t+i;

}

printf("%d",s);

return 0;}

 

33

Description
鍵盤輸入一個正整數n(n是四位數),求閉區間[n,10000]中滿足下列條件的最小數:
1)是素數
2)個位上的數字等於十位上的數字
若沒有,輸出No
Input
輸入一個4位的正整數
Output
輸出符合條件的最小數或No
Sample Input
9999
Sample Output
No
 

#include<stdio.h>
int main()
{
int n,i,j,a,b,k,m=0,c=0,d = 0;
scanf("%d",&n);
for(i=n;i<=10000;i++)
{
if(c == 1)
break;
else{
d=0;

for(j=2;j<i;j++)
{ if(i%j==0)
{
  d++;
     break;}
}
if(d== 0)
{
    a=i%10;
b=i/10%10;
if(a==b)
{
m=i;
c++;
}
}
}
}
if(m!=0)printf("%d",m);
else printf("No");
return 0;}

 

34

Description

 完數是指一個數的因子之和等於它本身,如:6=1+2+3
鍵盤輸入一個整數N,找出N以內(不含N)的完數
 

Input

 正整數N

Output

輸出N以內的完數,每個一行

Sample Input

100

Sample Output

6

28

 

#include<stdio.h>

int main()

{

int n,i,j,s;

scanf("%d",&n);

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

{

s=0;

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

{

if(i%j==0)

s=s+j;

}

if(s==i)

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

}

return 0;

 

 

}

35

Description

鍵盤輸入兩個正整數a,b,問:閉區間 [a,b] 中有多少個素數?

Input

輸入兩個正整數(先輸入小數,再輸入大數)

Output

輸出素數的個數

Sample Input

100,200

Sample Output

21

 

 

#include<stdio.h>

int main()

{

int a,b,s=0,i,j;

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

for(i=a,s=0;i<=b;i++)

{

 

for(j=2;j<=i;j++)

 

if(i%j==0)

break;

if(j==i)

s=s+1;

 

}

printf("%d",s);

return 0;

}

36

Description

開晚會需要買水果,鍵盤輸入購買水果的錢數(整數,單位元),要求蘋果、梨和西瓜都要買,總數為100斤。已知蘋果價格是0.4元,梨0.2元,西瓜4元,問每種水果買多少?請給出所有可能的方案,每個方案占一行。
注:水果重量只能是整數斤

Input

輸入買水果的錢數,整數

Output

輸出所有可能的方案

Sample Input

40

Sample Output

5,90,5

24,72,4

43,54,3

62,36,2 81,18,1

 

#include<stdio.h>

int main()

{

int m,i,j,k;

scanf("%d",&m);

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

for(j=1;j<100;j++)

for(k=1;k<100;k++)

if(((i*4+j*2+k*40)==m*10)&&(i+j+k==100))

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

 

return 0;

 

}

37

Description

編程打印下面圖形的前n行

       1

       121

        12321

       1234321

       123454321

       12345654321

       1234567654321

       123456787654321

       12345678987654321

注:最后一行左邊沒有空格

程序框架如下,請你將所缺代碼提交到考試系統中

#include<stdio.h>

int main()  

{  

    int i,j,n;  

    scanf("%d",&n); 

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

    {

        /*****************************************/

         //將此處所缺代碼填寫到文本框中提交

       /*****************************************/            

    }

    return 0;  

}


Input

輸入n


Output

打印圖形的前n行


Sample Input

1
Sample Output



        1

#include<stdio.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=9-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=i-1;j>0;j--)
printf("%d",j);
printf("\n");
}
return 0;

 

 

38

 

Description

鍵盤輸入一個正整數作為圓的半徑(圓心在坐標原點),求:有多少個橫坐標和縱坐標都是整數的點被圓覆蓋?(說明:含圓周上的點)


Input

 輸入半徑


Output

 輸出“點”數


Sample Input

1
Sample Output

5
#include<stdio.h>
int main()
{
int n,x,y,t=0;
scanf("%d",&n);
for(x=-n;x<=n;x++)
for(y=-n;y<=n;y++)
if(x*x+y*y<=n*n)
t++;
printf("%d",t);
return 0;


}

 

39

 

Description

輸出九九乘法表的前n行


Input

輸入整數n


Output

輸出九九乘法表的前n行


Sample Input

4
Sample Output

1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16

方法1
#include<stdio.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ for(j=1;j<=i;j++)
{ if(j==1)
printf("%d*%d=%2d",i,j,i*j);
else printf(" %d*%d=%2d",i,j,i*j);
}
printf("\n");}
return 0;
}

 

方法2

#include<stdio.h>
int main(){
int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i-1;j++)
printf("%d*%d=%2d ",i,j,i*j);
printf("%d*%d=%2d\n",i,j,i*j);
}

40



Description

輸出下面圖形的前n行(星是對稱的)

         *

        ***

       *****

      *******

     *********

    ***********

   *************

  ***************

 *****************

*******************

注:最后一行左邊沒有空格


Input

輸入一個不超過10的正整數


Output

輸出前n行圖形


Sample Input

6
Sample Output

         *
        ***
       *****
      *******
     *********
    ***********
#include <stdio.h>
int main(){
int i,j,m;
scanf("%d",&m);
for(i=1;i<=m;i++)
{
for(j=1;j<=10-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");

return 0;
}

return 0;


}

 

41

 

兌換硬幣:一分二分五分
#include<stdio.h>
int main(){
int a,b,c,m,sum=0;
scanf("%d",&m);
for(a=0;a<=100*m;a++)
{
for(b=0;b<=50*m;b++)
{
for(c=0;c<=20*m;c++)
{

if(5*c+2*b+a==100*m)
{
sum++;
}
}

}
}
printf("%d",sum);
return 0;


}

42

 

6.5:輾轉賦值計算1 - 1/2 + 2/3 - 3/5 + 5/8 - 8/13 + 13/21…前n項(例題)點擊開閉

窗體頂端

Descripti

on

編程計算1 - 1/2 + 2/3 - 3/5 + 5/8 - 8/13 + 13/21…前n項的值,結果保留6位小數

Input

輸入n

Output

表達式前n項的值

Sample Input

15

Sample Output

1.195956

*****不知道對不對

#include<stdio.h>

int main()

{

int n,i;

float a=1,b=1,d,c=1,s=0;

scanf("%d",&n);

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

{

s=s+(b/a)*c;

d=b;

b=a;

c=-c;

a=a+d;

}

printf("%.6f",s);

return 0;

}

#include<stdio.h>
int main()
{
int n,i,c;
float h,b,a;
scanf("%d",&n);
b=1;a=1;
for(i=1,h=0,c=1;i<=n;i++)
{
h+=((float)a/b)*c;
b=a+b;
a=b-a;
c=c*(-1);
}
printf("%6f\n",h);
return 0;
}

窗體底端

43

6.5:輾轉賦值,s(n)=2/2-2/3+......點擊開閉

窗體頂端

Description

已知表達式S(n)=2/2-2/3+3/4-4/6+...,(后一個分數的分母是前一個分數的分子分母之和減去1,后一個分數的分子是前一個分數的分母),計算前n項的和

Input

 輸入一個正整數n

Output

 輸出前n項的和,結果保留六位小數

Sample Input

2

Sample Output

0.333333

 

#include<stdio.h>
int main()
{
int n,i,a,b,c,d;
float h;
scanf("%d",&n);
a=2;b=2;c=1;d=2;
for(i=1,h=0;i<=n;i++)
{h+=((float)b/a)*c;
    d=a;
    a=(a+b-1);
b=d;
c=c*(-1);}
printf("%6f",h);
return 0;
}

 

 

窗體底端

 

44

Description

 第一年,只有一頭小母牛(0歲),它從第四年(3歲)開始,每年都生一頭小母牛(一年只生一頭),而且,所有的小母牛也都會在第四年開始生育........假設所有的母牛都不會死,請問,第n年,此牛群共有多少母牛?

Input

鍵盤輸入一個整數n

Output

Sample Input

1

Sample Output

1

 

#include<stdio.h>
int main()
{
int n,a,b,c,d,i;
scanf("%d",&n);
a=1;b=1;c=1;d;
if(n<=3)
printf("1\n");
else{
for(i=4;i<=n;i++)
{ d=a+c;
      a=b;
     b=c;
 c=d;
}

printf("%d",d);}
return 0;
}

45

6.6:循環:無符號短整數化為二進制(程序填空)點擊開閉

窗體頂端

Description

鍵盤輸入一個無符號短整數,將它化為二進制,不允許使用數組、位運算和遞歸函數。
提示:可以用以下方法,看看里面能不能包含2,4,8,16,32,64......這些2的x次冪,如:若整數是100,里面可以包含64,還可以包含32,不能包含16,8,能包含4,不能包含2和1,故化為二進制后結果是1100100
程序已有框架如下,請將所缺代碼填寫到考試頁面的文本框中*/
#include<stdio.h> 
int main() 

    unsigned short n;
    int i,sum,m,k;
    scanf("%u",&n); 
    //此處需要自己編寫代碼

    return 0; 
}

Input

 輸入一個無符號短整數

Output

 輸出二進制數

Sample Input

4

Sample Output

100

這個圖不是這個題,但也是思路;

 

46

 

窗體底端

Description

程序中用c=getchar()可以從輸入設備讀入一個數字字符(例如'3’,其ascii碼值是51,即:c的值是51),若用三個getchar()可以取回3個字符(例如:'3','5','2'),請編程將用戶輸入的數字字符序列(不多於5個)轉化為整數。

如:用戶輸入三個字符:352(實際取回的是'3','5','2'),轉為整數則為:352 (三百五十二)

程序已有框架如下,請你將所缺代碼填寫到考試頁面的文本框中。
#include<stdio.h>
int main()
{
    char c;
    int n=0;
    while(    )  //將括號中所缺代碼填寫到考試頁面的第一個文本框中
    {
        c=getchar();
        /////////////////////////////////////////////////////////////////////////////////
        /*將此處所缺代碼填寫到考試頁面的第二個文本框中*/
        /////////////////////////////////////////////////////////////////////////////////
    }
    printf("%d",n);
    return 0;
}

Input

輸入數字字符,不多於5個

Output

輸出轉化后的整數

Sample Input

352

Sample Output

352

 

#include<stdio.h>

 

int main()

 

{

 

    char c;

 

    int n=0;

 

    while(n<100000)

 

    {

 

        c=getchar();

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

n=n*10+c-48;

else break;

    }

 

    printf("%d",n);

 

    return 0;

 

}

47

6.6:循環(字符轉純小數)點擊開閉

窗體頂端

Description

鍵盤輸入一個以'.'開頭的字符序列(‘.’后面全是數字,例如:.314),用若干getchar()將它們取回,請編程將這個字符序列化為一個純小數。

如:鍵盤輸入:.39867(共6個字符)

計算結果應為:0.39867(是一個實數)

int main()

{

      /******************************************************/

       // 自行添加代碼

      /******************************************************/

       printf("%f\n",  x);    // x 的值應為純小數

       return 0;

}

 

Input

輸入一個小數點開頭的字符序列(后面都是數字字符)

 

Output

輸出一個純小數(保留6位小數)

Sample Input

.562

Sample Output

0.562000

窗體底端

 

#include<stdio.h>

 

int main()

 

{

 

    char c;

    float x=0,n=0;

int i=1;

getchar();

    while(x==0)

    {

c=getchar();

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

 {n=n*10+c-48;

 i=i*10;

 }

else break;

    }

x=n/i;

 

    printf("%f\n",x);

 

    return 0;

 

}

 

48

Description

編一函數,用來輸出26個大寫的英文字母,然后編主函數調用之

Input

無輸入

Output

輸出26個大寫字母

Sample Input

Sample Output

ABCDEFGHIJKLMNOPQRSTUVWXYZ

 

#include<stdio.h>

void f()

{

printf("ABCDEFGHIJKLMNOPQRSTUVWXYZ");

}

int main()

{

f();

return 0;

 

}

 

49

           

50

Description

編程序,求直角三角形的斜邊長。兩直角邊由鍵盤輸入(兩個整數),由被調函數計算斜邊長(保留兩位小數)。

Input

Output

Sample Input

3 4

Sample Output

5.00

#include<stdio.h>

#include<math.h>

float f(int a,int b)

{

float s;

s=sqrt(a*a+b*b);

return s;

}

int main()

{

int x,y;

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

printf("%.2f",f(x,y));

return 0;

}

51

 

Description

請用函數調用的方式編程,本題考察函數設計是否合理
n個學生,都想知道自己的體重是否超標,標准是:對於男生,若體重(單位:kg)不超過(身高-100),即為標准,否則算超標;對於女生,若體重不超過(身高-115),即為標准,否則算超標。
鍵盤輸入n及每個人的身高、體重和性別,分別判斷他們是否體重超標。若超標,輸出Yes,不超標輸出No

Input

輸入人數,占一行
依次輸入每人的數據,每人數據占三行
其中:性別用字母代表,輸入M或m代表男生,輸入F或f代表女生

Output

依次輸出每個人是否超標

Sample Input

3 175 65 M 167 52 f 160 55 F

Sample Output

No No Yes

 

#include<stdio.h>

int main()

{

int n,s,t,i;

char x;

int f(int a,int b,char c);

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

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

{

scanf("%d\n%d\n%c",&s,&t,&x);

if(f(s,t,x)==1)

printf("No\n");

if(f(s,t,x)==0)

printf("Yes\n");

}

return 0;

}

int f(int a,int b,char c)

{

int s;

if(c=='f'||c=='F')

if(b<=a-115)

s=1;

else s=0;

else if(c=='m'||c=='M')

if(b<=a-100)

s=1;

else s=0;

return s;}

 

52

Description

編一函數,用來輸出九九乘法表的前n行,並編寫主函數。

Input

輸入整數n

Output

Sample Input

5

Sample Output

1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25

 

方法1:佳妤

#include<stdio.h>

void jky(int x)

{

int i,j,s;

for(i=1;i<=x;i++){

for(j=1;j<=9;j++){

s=j*i;

if(j==1) printf("%d*%d=%d",i,j,s);

else if(j==i) printf(" %d*%d=%d",i,j,s);

else

printf(" %d*%d=%-2d",i,j,s);

if(i==j) break;

}

printf("\n");}

}

int main()

{

int a;

scanf("%d",&a);

jky(a);

 

return 0;

}

方法2:我的不對

#include<stdio.h>

int main()

{

int n;

void jj(int k);

scanf("%d",&n);

jj(n);

return 0;

}

void jj(int n)

{

int i,j;

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

{

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

{

if(j==1)

printf("%d*%d=%d",j,i,i*j);

else if(j==i)

printf(" %d*%d=%d",j,i,i*j);

else printf(" %d*%d=%-2d",j,i,i*j);

}

printf("\n");

 

}

}

53

Description

本題必須用函數調用的方式編程,考察函數設計的合理性
一般人不願意暴露自己的隱私,比如:體重,但有時候又不得不說,於是就會用某些暗語代替。今有一項指標X( X=體重- 年齡),每個人必須說出年齡和體重,但體重可以用大寫字母代替:A代表45公斤(A的ASCII碼值-20=45),B代表46公斤......
鍵盤輸入人數n以及每個人的兩項數據(年齡和體重),依次輸出每個人的指標

Input

輸入n,占一行
輸入每個人的數據,每人數據占兩行

Output

輸出每個人的指標,每個一行

Sample Input

2 21 F 19 Z

Sample Output

29

51

*ASCII碼值不用getchar%c型的直接%d型就行,所以是b-20

#include<stdio.h>

int main()

{

int n,s,i;

char t;

int f(int a,char b);

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

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

{

scanf("%d\n%c",&s,&t);

printf("%d\n",f(s,t));

}

return 0;

}

int f(int a,char b)

{

int x;

x=(b-20)-a;

return x;

 

}

 

54

Description

3個軟件,都需要征求用戶意見才能安裝,規定如下:對於任何一個軟件,若用戶輸入Y,則安裝,輸入其他任何字符都表示不安裝。請你編寫一個函數,該函數可以分辨出用戶做出的是哪一種選擇(共8種可能),要求在此函數中輸入三個字符
編寫主函數,調用上面的函數,主函數根據用戶的選擇輸出相應信息:000代表都不安裝,100代表只安裝第一個,010代表只安裝第二個,011代表安裝第二個和第三個......111代表全安裝

Input

 輸入3個字符,每個一行

Output

 輸出相應的信息

Sample Input

Y

,

Y

Sample Output

101

 

*注意輸入時回車會有影響,用getchar())

#include<stdio.h>

 

int f()

{

char a,b,c;

int i,j,k,s;

scanf("%c",&a);

getchar();

scanf("%c",&b);

getchar();

scanf("%c",&c);

if(a=='Y')

i=1;

else i=0;

if(b=='Y')

j=1;

else j=0;

if(c=='Y')

k=1;

else k=0;

s=i*100+j*10+k;

return s;

}

int main()

{

printf("%03d",f());

return 0;

 

}

55

Description

已有程序框架如下:

#include <stdio.h>

/***********************************/

/*  此處缺少被調函數的定義        */

/***********************************/

int main()

{

         int n,m, i;

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

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

        if(        )                  //括號中缺少的是含有函數調用的代碼

            printf("%5d",i);

     return 0;

}

上面程序的功能是找出n到m之間的素數,只是缺少兩部分代碼。所缺第一部分代碼應是一個函數的定義,該函數用來判斷某數是否為素數,所缺第二部分代碼應包含有函數調用。

請將所缺的兩部分代碼分別填寫到題目下面的兩個文本框中並提交,其他代碼不需要提交。

Code1填寫函數定義

Code2填寫主函數所缺代碼

(素數定義:只能被1和它本身整除的數,1不是素數)

Input

輸入兩個正整數,先輸入小的,再輸入大的

Output

輸出兩個數之間的所有素數

Sample Input

1,3

Sample Output

2 3

* ==不是=

 

#include <stdio.h>

int sh(int a)

{

int q,p;

for(q=2;q<=a;q++)

{

 

if(a%q==0)

break;

 

}

if(q==a)

p=1;

else p=0;

return p;

}

 

int main()

 

 

{

 

 

         int n,m, i;

 

 

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

 

 

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

 

 

        if(sh(i)==1)                  //括號中缺少的是含有函數調用的代碼

 

 

            printf("%5d",i);

 

 

     return 0;

 

}

56

Description

一個4位數,若分成兩個2位數(如:2025分為20和25),並且這兩個兩位數的和的平方等於該4位數本身(如:(20+25)*(20+25)= 2025),則該4位數稱為平方數。

寫一個函數,用來判斷一個數是否平方數,然后編寫主函數統計n(n由鍵盤輸入)以內的平方數的個數

Input

輸入一個4位整數

Output

輸出平方數的個數

Sample Input

1001

Sample Output

0

 

#include<stdio.h>

int f(int a)

{

int p;

if((a/100+a%100)*(a/100+a%100)==a)

p=1;

else p=0;

return p;

}

int main()

{

int n,i,m=0;

scanf("%d",&n);

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

{

if(f(i)==1)

m=m+1;

}

printf("%d",m);

return 0;

 

}

57

Description

編寫函數,用來輸出前n個大寫的英文字母,並編寫主函數調用它

Input

輸入一個整數n  (1<=n<=26)

Output

輸出前n個大寫字母

Sample Input

2

Sample Output

AB

 

*在被調函數里輸入)

#include<stdio.h>

void f()

{

int i,p=65;

int n;

scanf("%d",&n);

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

{

printf("%c",p);

p++;

}

}

int main()

{

f();

return 0;}

58

Description

鍵盤輸入兩個整數存入變量a、b,求開區間(a,b)中滿足以下條件的最大數,若沒有滿足條件的數,輸出No
條件:
1)該數是3和7的倍數
2)該數最后2位數字是21
要求:用函數調用的方式編程,即:某數是否滿足條件由被調函數sub判斷
程序已有框架如下,請你把所缺代碼提交到考試頁面的文本框中

#include <stdio.h>
/**********************************/

     //此處定義被調函數sub()

/**********************************/

int main()
{
    /***********************************/

     //此處給出主函數代碼

    /***********************************/
}

Input

輸入兩個整數,先輸入小數,再輸入大數

Output

輸出符合條件的最大數或No

Sample Input

10000,20000

Sample Output

 

18921

****不知道對不對

#include<stdio.h>

int sub(int x)

{

int m;

if(x%21==0&&x%100==21)

m=1;

else m=0;

return m;

}

int main()

{

int a,b,i,q;

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

for(i=b-1;i>a;i--)

{

if(sub(i)==1)

{printf("%d",i);

break;}

}

if(i==a)

printf("No");

return 0;

}

 

59

Description

編寫一個遞歸函數,該函數可以求出裴波那契數列的任意一項。裴波那契數列的前兩項都是1,其后每一項,都是該項前面兩個數之和:1,1,2,3,5,8,13,21......

主函數已在后台,系統會自動將主函數添加到你提交的代碼之后,其內容如下:

int main()

{

   int n;

   scanf("%d", &n);

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

   return 0;

}

只需要提交被調函數的代碼。

Input

輸入一個正整數表示第幾項

Output

輸出數列中該項的值

Sample Input

3

Sample Output

2

 

#include<stdio.h>

int f(int m)

{

int a=1;

if(m==1||m==2)

a=1;

if(m>2)

a=f(m-1)+f(m-2);

return a;

}

int main()

{

 

   int n;

   scanf("%d", &n);

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

   return 0;

}

 

 

60

Description

總共有n個台階,每次可以跨1個台階,也可以跨2個台階,問,有多少種上法?

例如, 若有3個台階可以有3種上法:

1)1+1+1(跨1個,跨1個,跨1個)

2)1+2 (跨1個,跨2個)

2)2+1(跨2個,跨1個)

Input

鍵盤輸入台階數

Output

給出方案數

Sample Input

3

Sample Output

3

 

 

#include<stdio.h>

int f(int m)

{

int a=1;

if(m==1)

a=1;

if(m==2)

a=2;

if(m>2)

a=f(m-1)+f(m-2);

return a;

}

int main()

{

 

   int n;

   scanf("%d", &n);

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

   return 0;

 

}

61

Description

已有程序框架如下:

#include <stdio.h>

/*************************************/

/*    此處缺少被調函數定義         */

/*************************************/

/*int main()

{

         int a,b;

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

         swap(        );         //此處缺少參數

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

         return 0;

}

程序功能是從鍵盤獲取兩個整數存入a,b,交換a,b的值后輸出。請你在題目下面的兩個文本框中分別填寫上面所缺的兩處代碼,然后提交,其他代碼不要提交。

Code1文本框填寫函數定義

Code2文本框填寫參數

Input

輸入兩個整數

Output

輸出交換后的兩個數

Sample Input

1,2Sample Output

2,1

 

#include <stdio.h>

 

void swap(int *p,int *q)

{

int t;

t=*p;

*p=*q;

*q=t;

}

int main()

{

         int a,b;

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

         swap(&a,&b);       

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

         return 0;

}

 

 

62

Description

主函數中輸入一個整數,由被調函數(無返回值)使之變為絕對值,然后主函數輸出它

注意:輸入輸出都由主函數完成,被調函數沒有返回值

Input

輸入任意整數

Output

輸出其絕對值

Sample Input

-9Sample Output

9

#include <stdio.h>

void swap(int *p)

{

if(*p>=0)

*p=*p;

else *p=-*p;

}

int main()

{

         int a;

         scanf("%d", &a);

         swap(&a);       

         printf("%d",a);

         return 0;

}

 

63

  Description

主函數中定義變量maxmin。在被調函數中輸入n個整數(先輸入n,再輸入n個整數),找出最大、最小值分別存入主函數中的maxmin中。最后結果在主函數中輸出。

已有程序框架如下:

#include <stdio.h>

/***************************************************************/

 

   //此處缺少被調函數的定義

 

/***************************************************************/

/*int main()

{

     int max,min;

     max_min(______________);     //橫線處缺少函數實參

     printf("max=%d min=%d\n",max,min);

     return 0;

}

請編寫被調函數定義,填寫到考試頁面的第一個文本框中,並將橫線處所缺代碼填寫到第二個文本框中

Input

n以及n個整數

Output

輸出最大、最小值

Sample Input

10

5 9 17 11 2 29 3 1 23 17Sample Output

max=29

min=1

 

#include <stdio.h>

void max_min(int *p,int *q)

{

int n,a,b,m,k,i;

scanf("%d",&n);

scanf("%d",&b);

m=k=b;

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

{

scanf("%d",&a);

if(a>m)

m=a;

if(a<k)

k=a;

}

*p=m;

*q=k;

}

int main()

{

     int max,min;

     max_min(&max,&min);     //橫線處缺少函數實參

     printf("max=%d min=%d\n",max,min);

     return 0;

}

 

 

  64

  Description

主函數輸入兩個正整數ab,由被調函數做如下操作:從大數上減掉一半的數值加在小數上,使小數增大,然后反過來再操作一次。最后在主函數中輸出操作后ab的值。

如:鍵盤輸入9,7,則第一次操作后兩個數變成:5,11,第二次操作后變成:10,6

主函數已在后台,只是其中缺少一行函數調用的代碼。請你編寫被調函數,並在主函數中填寫所缺代碼

系統已有代碼:

#include <stdio.h>

int main()

{

    int a,b;

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

    //此處需要添加函數調用的代碼

 

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

    return 0;

}

注:考試系統中會出現兩個空,第一個空中填寫被調函數的代碼,第二個空中填寫主函數所缺的一行代碼。被調函數的代碼將出現在系統已有的代碼之前

Input

任意兩個整數

Output

輸出處理后的兩個數

Sample Input

9,7Sample Output

10,6

 

#include <stdio.h>

void f(int *p,int *q)

{

if(*p>*q)

{

*q=*p/2+*q;

*p=*p-(*p/2);

*p=*q/2+*p;

*q=*q-(*q/2);

}

else

{

*p=*q/2+*p;

*q=*q-(*q/2);

*q=*p/2+*q;

*p=*p-(*p/2);

}

}

int main()

{

    int a,b;

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

    //此處需要添加函數調用的代碼

    f(&a,&b);

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

    return 0;

}

 

 

 

65

  Description

main函數中定義了四個整形變量abmn, 其中ab用來存儲鍵盤輸入的兩個正整數,mn分別用來存儲ab的最大公約數和最小公倍數,但是main函數只負責輸入數據和輸出結果,求最大公約數和最小公倍數的任務需要另一個函數去完成,即:被調函數需要求出這兩個值並分別存儲到main函數定義的mn中,請在下面的主函數中填寫函數聲明和調用語句,並編寫被調函數sub,然后將全部代碼一起提交。

注意:1.不允許改變主函數其他任何地方,只填空。2.被調函數只有一個。

#include <stdio.h>

int main()

{

     ______________;    //這里需要填寫代碼

     int a,b,m,n;

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

     _______________;   //此處調用sub函數,請填寫一條語句

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

     return 0;

}

Input

輸入兩個正整數,中間用逗號隔開

Output

輸出最大公約數和最小公倍數以及ab的值,中間用逗號隔開

Sample Input

15,20Sample Output

5,60,a=15,b=20

 

 

#include <stdio.h>

int main()

{

void sub(int a,int b,int *p,int *q);

     int a,b,m,n;

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

     sub(a,b,&m,&n);

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

     return 0;

}

void sub(int a,int b,int *p,int *q)

{

int i,j;

for(i=a;i>=1;i--)

{

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

{ *p=i;

break;

}

}

for(j=a;j<=a*b;j=j+a)

{

if(j%b==0)

{

*q=j;

break;

}

}

 

}

 

 

66

Description

 鍵盤輸入10個整數,問:第m(m:0~9)個元素的值共出現了幾次?

Input

 輸入10個整數

Output

 輸出第m個元素的值出現了幾次

Sample Input

3 5 7 2 5 3 2 5 9 0 3

Sample Output

2

Code 1 here:

 

#include<stdio.h>

int main()

{

int a[10],i,k,s=0;

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

{

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

}

scanf("%d",&k);

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

{if(a[k]==a[i])

s=s+1;

}

printf("%d",s);

return 0;

}

67

*

Description

鍵盤輸入10個整數,再輸入一個正整數m(m不超過9),將數組前m個元素移動到最后,其他數據前移填補前面的空位置(不允許再定義別的數組或變量)
程序已有框架,請將所缺代碼提交
#include<stdio.h>
int main()
{
    int a[10],m,i,j,t;
    for(i=0;i<=9;i++)
          scanf("%d",a+i);
    scanf("%d",&m);
    //////////////////////////////////////////
    //此處缺少代碼
    //////////////////////////////////////////
    for(i=0;i<=9;i++)
    {
         if(i==0)
              printf("%d",a[i]);
         else
              printf(" %d",a[i]);
    }
    return 0;
}

Input

 輸入10個整數,再輸入一個m

Output

 輸出移動后的數組各項值

Sample Input

1 2 3 4 5 6 7 8 9 0 3

Sample Output

4 5 6 7 8 9 0 1 2 3

#include<stdio.h>

 

int main()

 

{

 

    int a[10],m,i,j,t;

 

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

 

          scanf("%d",a+i);

 

    scanf("%d",&m);

 

for(j=0;j<m;j++)

{

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

 {

 t=a[i-1];

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

     a[i]=t;}

}

 

 

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

 

    {

 

         if(i==0)

 

              printf("%d",a[i]);

 

         else

 

              printf(" %d",a[i]);

 

    }

 

    return 0;

 

}

68

*

Description

按從小到大的順序從鍵盤輸入10個整數存入數組int a[11]中,再從鍵盤輸入一個任意整數,將它插入到數組中,要求插入后數組仍然是從小到大排列的。
注意:不允許用排序的方法做 ,即不允許先把數存到數組中然后排序,而是應該先給這個數騰出位置,直接把它存到該位置
 

Input

輸入10個數,然后再輸入一個數
如:
1 3 5 7 9 11 13 15 17 19
12

Output

輸出插入后的數組內容,如
1 3 5 7 9 11 12 13 15 17 19

Sample Input

1 3 5 7 9 11 13 15 17 19 12

Sample Output

1 3 5 7 9 11 12 13 15 17 19

 

#include<stdio.h>

int main()

{

   int a[11];

   int i,m,n;

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

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

   scanf("%d",&n);

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

  if(n>=a[i])

  m=i+1;

  for(i=10;i>=m;i--)

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

  a[m]=n;

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

  printf("%d ",a[i]);

  printf("%d",a[10]);

return 0;}

 

69

*

Description

輸入10個互不相同整數存入數組,先按原始順序輸出它們,將最大值和最小值交換位置后,再輸出一次。
程序已有框架,你只需要把所缺代碼提交即可,其他代碼已在后台。
#include <stdio.h>
int main()
{
    int a[10],i,max,min,kmax,kmin,temp;  //kmax和kmin分別用來存儲最大、最小數的序號,max和min未必用到
    for(i=0;i<=9;i++)
       scanf("%d",&a[i]);
    for(i=0;i<=8;i++)
       printf("%d ",a[i]);
    printf("%d\n",a[9]);
    /***********************************/
    /* 此處缺少代碼                    */
    /***********************************/
    for(i=0;i<=8;i++)
       printf("%d ",a[i]);
    printf("%d\n",a[9]);
    return 0;
}

Input

隨意輸入10個互不相同的整數

Output

輸出原順序,交換位置后,再輸出一次

Sample Input

3 0 5 8 9 2 7 6 1 4

Sample Output

3 0 5 8 9 2 7 6 1 4 3 9 5 8 0 2 7 6 1 4

 

#include <stdio.h>

 

int main()

 

{

 

    int a[10],i,max,min,kmax,kmin,temp;  //kmax和kmin分別用來存儲最大、最小數的序號,max和min未必用到

 

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

 

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

 

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

 

       printf("%d ",a[i]);

 

    printf("%d\n",a[9]);

 

 

max=min=a[9];

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

{if(max<=a[i])

 { max=a[i];

  kmax=i;}

  if(min>=a[i])

  {

  min=a[i];

  kmin=i;

  }

}

temp=a[kmin];

a[kmin]=a[kmax];

a[kmax]=temp;

 

 

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

 

       printf("%d ",a[i]);

 

    printf("%d\n",a[9]);

 

    return 0;

 

 

}

70

 

*

Description

鍵盤輸入10個整數存入數組,找出最大值和最小值,先將最大值與最前面的數交換,再將最小數與最后一個數交換,使得最終最大值在最前,最小值在最后。
說明:輸入的數據確保最大值和最小值都只有一個

Input

輸入10個整數

Output

輸出處理后數組中所有數據

Sample Input

2 4 1 5 8 9 0 4 7 6

Sample Output

9 4 1 5 8 2 6 4 7 0

 

#include<stdio.h>

int main()

{

    int a[10];

int i,kmin,kmax,max,min,s,t;

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

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

min=max=a[0];

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

{

   if(max<=a[i])

   { max=a[i];

   kmax=i;}

   if(min>=a[i])

   {min=a[i];

   kmin=i;}

}

 if(kmin==0)

   {  s=a[0];a[0]=a[kmax];a[kmax]=s;

       kmin=kmax;

   t=a[9];a[9]=a[kmin];a[kmin]=t;}

else

{ s=a[0];a[0]=a[kmax];a[kmax]=s;

t=a[9];a[9]=a[kmin];a[kmin]=t;}

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

printf("%d ",a[i]);

return 0;717273

 

 

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM