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

}

猜你喜欢

转载自www.cnblogs.com/deer-king/p/10791920.html