网络教室c语言参考答案21至49.docx

上传人:b****2 文档编号:11639507 上传时间:2023-06-01 格式:DOCX 页数:26 大小:25.93KB
下载 相关 举报
网络教室c语言参考答案21至49.docx_第1页
第1页 / 共26页
网络教室c语言参考答案21至49.docx_第2页
第2页 / 共26页
网络教室c语言参考答案21至49.docx_第3页
第3页 / 共26页
网络教室c语言参考答案21至49.docx_第4页
第4页 / 共26页
网络教室c语言参考答案21至49.docx_第5页
第5页 / 共26页
网络教室c语言参考答案21至49.docx_第6页
第6页 / 共26页
网络教室c语言参考答案21至49.docx_第7页
第7页 / 共26页
网络教室c语言参考答案21至49.docx_第8页
第8页 / 共26页
网络教室c语言参考答案21至49.docx_第9页
第9页 / 共26页
网络教室c语言参考答案21至49.docx_第10页
第10页 / 共26页
网络教室c语言参考答案21至49.docx_第11页
第11页 / 共26页
网络教室c语言参考答案21至49.docx_第12页
第12页 / 共26页
网络教室c语言参考答案21至49.docx_第13页
第13页 / 共26页
网络教室c语言参考答案21至49.docx_第14页
第14页 / 共26页
网络教室c语言参考答案21至49.docx_第15页
第15页 / 共26页
网络教室c语言参考答案21至49.docx_第16页
第16页 / 共26页
网络教室c语言参考答案21至49.docx_第17页
第17页 / 共26页
网络教室c语言参考答案21至49.docx_第18页
第18页 / 共26页
网络教室c语言参考答案21至49.docx_第19页
第19页 / 共26页
网络教室c语言参考答案21至49.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

网络教室c语言参考答案21至49.docx

《网络教室c语言参考答案21至49.docx》由会员分享,可在线阅读,更多相关《网络教室c语言参考答案21至49.docx(26页珍藏版)》请在冰点文库上搜索。

网络教室c语言参考答案21至49.docx

网络教室c语言参考答案21至49

2-1.整型数的表示范围

成绩:

10/折扣:

0.8

编写一个循环程序,输入N值,输出N的阶乘。

关于循环程序怎么编写,可以参考教材第六章P123的内容。

注意整型数的表示范围,如果当输入的N比较大时,例如N等于20时,输出怎么是负数了?

自己想明白吧!

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.5↵

以文本方式显示

1.120↵

1秒

64M

0

测试用例4

以文本方式显示

1.12↵

以文本方式显示

1.479001600↵

1秒

64M

0

测试用例2

以文本方式显示

1.20↵

以文本方式显示

1.N is too big!

1秒

64M

0

1.#include     

2.main()  

3.{    

4.       int i,N,k;               

5.       scanf("%d",&N);       

6.       for(i=k=1;i<=N;i++)       

7.       k*=i;       

8.       if(k>0)      

9.       printf("%d\n",k);       

10.       else     

11.       printf("N is too big!

\n");     

12.       system("pause");    

13.}  

2-2.打印N形图形

成绩:

10/折扣:

0.8

编程,输入n值,输出下例(n=4)所示的图形:

**********

输入:

图形的高n

输出:

高为n的N形图形

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.4↵

以文本方式显示

1.*  *↵

2.** *↵

3.* **↵

4.*  *↵

1秒

64M

0

1.#include     

2.main()  

3.{    

4.       int n,i,j;       

5.       scanf("%d",&n);      

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

7.        {for(j=1;j<=n;j++)      

8.        printf("%s",j==1||j==n||j==i?

"*":

" ");      

9.        printf("\n");  

10.        }   

11.}  

2-3.打印X形图形

成绩:

10/折扣:

0.8

输入n值,输出下例(n=3)所示的图形:

   *     *

     *  *

       *

     *  *

   *     *

输入:

图形的高n

输出:

高为n的X形图形

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.4↵

以文本方式显示

1.*     *↵

2. *   *↵

3.  * *↵

4.   *↵

5.  * *↵

6. *   *↵

7.*     *↵

1秒

64M

0

1.#include     

2.main()    

3.{    

4.      int i,n,j;    

5.      scanf("%d",&n);    

6.      for(i=1;i<=2*n-1;i++)      

7.      {    

8.       for(j=1;j<=2*n-i||j<=i;j++)    

9.         printf("%s",j==i||j==2*n-i?

"*":

" ");    

10.         printf("\n");         

11.      }    

12.}  

2-4.判断输入的字符的类型

成绩:

10/折扣:

0.8

我们将字符分为五类:

大写字母、小写字母、数字、控制字符、其他字符。

编写程序,从键盘输入一个字符,输出字符所属的类型:

大写字母时输出capitalletters,小写字母时输出smallletters,数字是输出figures,控制字符时输出controlcharacters,其他字符时输出others。

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.A↵

以文本方式显示

1.capital letters↵

1秒

64M

0

1.#include      

2.main()      

3.{      

4.char c;      

5.scanf("%c",&c);      

6.if('A'<=c&&c<='Z')      

7.printf("capital letters\n");      

8.else if('a'<=c&&c<='z')      

9.printf("small letters\n");          

10.else if('0'<=c&&c<='9')      

11.printf("figures\n");          

12.else if('NUL'<=c&&c<='US')      

13.printf("control characters\n");          

14.else printf("others\n");          

15.}  

2-5.整数的反序数

成绩:

10/折扣:

0.8

输入四位正整数N,若它的K(1

1234的反序数是4321),输出所有满足条件的K和反序数,若不存在,则输出:

Nooutput↵

输入:

四位正整数N

输出:

K和反序数

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.1089↵

以文本方式显示

1.9 9801↵

1秒

64M

0

1.#include        

2.main()       

3.{       

4.      int a,b,c,M,d,k;float N,p,u;       

5.      a!

=0; 保证四位数的作用            

6.      scanf("%1d%1d%1d%1d",&a,&b,&c,&d);       

7.      N=1000*a+100*b+10*c+d,       

8.      M=1000*d+100*c+10*b+a,       

9.      u=M/N,       

10.      k=(int)u,       

11.      p=(float)k;            

12.      if (u==p&&1

13.       printf("%d %d\n",k,M);            

14.        else      

15.        printf("No output\n");              

16.}  

3-1.打印菱形图形

成绩:

10/折扣:

0.8

输入n,输出如下例(n=3)所示的边长为n的菱形:

*

***

*****

***

*

输入:

边长n

输出:

边长为n的菱形

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.5↵

以文本方式显示

1.    *↵

2.   ***↵

3.  *****↵

4. *******↵

5.*********↵

6. *******↵

7.  *****↵

8.   ***↵

9.    *↵

1秒

64M

0

1.#include  

2.main()  

3.{  int i,j,n;  

4.   scanf("%d",&n);  

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

6.   {  for(j=1;j<=n-i;j++)  

7.        printf(" ");  

8.      for(j=1;j<=2*i-1;j++)  

9.        printf("*");  

10.        printf("\n");  

11.   }  

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

13.   {  for( j=1;j<=i;j++ )  

14.       printf(" ");  

15.      for( j=1;j<=2*(n-i)-1;j++ )     

16.      printf("*");  

17.      printf("\n");  

18.  }  

19.}  

3-2.打印平行四边形

成绩:

10/折扣:

0.8

输入图形的高n和首字符c,输出如下例(c='A',n=5)所示的图形.

ABCDE

  BCDEF

     CDEFG

        DEFGH

           EFGHI

输入:

高n和首字符c

输出:

高为n和首字符为c的平行四边形

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.3,a↵

以文本方式显示

1.abc↵

2. bcd↵

3.  cde↵

1秒

64M

0

1.#include  

2.main()  

3.{  int i,j,n; char c;  

4.   scanf("%d,%c",&n,&c);  

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

6.   {  for( j=1;j<=i-1;j++ )  

7.        printf(" ");  

8.      for( j=1;j<=n;j++ )  

9.        for( j=i;j<=n+i-1;j++ )  

10.        printf("%c",c+j-1);  

11.      printf("\n");  

12.   }     

13.}  

3-3.求和

成绩:

10/折扣:

0.8

输入整数m和正整数n,按下列公式计算s:

s=m-(m+1)+m+2-(m+3)+……+(-1)n(m+n)。

输入:

m和n

输出:

s

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.1 90↵

以文本方式显示

1.s=46↵

1秒

64M

0

1.#include  

2.main()  

3.{ int i,k,m,n;long s;  

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

5.  i=1;k=-1;  

6.  s=m;  

7.  while(i<=n)  

8.  { s+=k*(m+i);  

9.    i++;  

10.    k=(-k);  

11.  }  

12.  printf("s=%ld\n",s);  

13.}  

3-4字符加密输出

成绩:

10/折扣:

0.8

从键盘上输入一个字符,进行加密以后再输出在屏幕上。

加密规律是:

输入小写英文字母时,输入a输出Z、输入b输出Y、输入c输出X、...、输入z输出A。

输入大写英文字母时,将该字母ASCII码值再加上该值的1/2后输出所对应的字符,例如数字A的ASCII码值是65,加上其值的1/2后是98(小数四舍五入),则输出字符‘b’。

输入数字时,将该数字原ASCII码值再加上该值十进制的十位上的数后输出,例如数字9的ASCII码值是57,加上十位上的数5后是62,则输出字符‘>’。

输入其他字符时原样输出。

友情提示:

整数之间运算的结果要取整,例如5/2的结果是2,而5.0/2.0对小数四舍五入的结果就是3.0了。

所以输入大写英文字母时的输出要仔细考虑。

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例2

以文本方式显示

1.g↵

以文本方式显示

1.T↵

1秒

64M

0

1.#include  

2.main()  

3.{  char a,b;  

4.   int c;  

5.   float d,e;  

6.   scanf("%c",&a);  

7.   c=a/2;  

8.   e=a;  

9.   d=e/2;  

10.   if( a-97>=0&&a-122<=0 )     

11.      b=187-a;  

12.   else if( (a-65)>=0&&(a-90)<=0 )  

13.           {if(d-c>=0&&d-c<0.5)   b=a+c;  

14.            if(d-c>=0.5)  b=a+c+1;}  

15.        else if( a-48>=0&&a-57<=0 )   b=a+(a/10);  

16.             else  b=a;  

17.   printf("%c\n",b);    

18.}  

19.3-5.计算时钟的夹角

20.成绩:

10/折扣:

0.8

21.背景:

22.钟面上的时针和分针之间的夹角总是在0度~359度之间。

举例来说,在十二点的时候两针之间的夹角为0度,而在六点的时候夹角为180度,在三点的时候为90度。

本题要解决的是计算12:

00到11:

59之间任意一个时间的夹角。

23.输入:

 

24.每组测试数据包含两个数字:

第一个数字代表小时(大于等于0小于等于12),第二个数字代表分(在区间[0,59]上)。

 

25.输出:

 

26.对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。

输出格式如下所示。

27.输入:

1230

28.输出:

At12:

30theangleis165.0degrees.

29.友情提示:

以表中心到12点的连线为基准,分针每走1分钟是6度,时针与基准的夹角每个小时也是30度,从整点开始,每过1分钟时针再增加0.5度。

30.#include  

31.#include  

32.main()  

33.{  float a,b,c,d;  

34.   int  e,f;  

35.   scanf("%f %f",&a,&b);  

36.   e=a;  

37.   f=b;  

38.   c=fabs(30*a-5.5*b);  

39.   if( c>=180 )  d=360-c;  

40.   else          d=c;  

41.   if( f>=10 )     printf("At %d:

%d the angle is %.1f degrees.\n",e,f,d);  

42.   else          printf("At %d:

0%d the angle is %.1f degrees.\n",e,f,d);  

43.}  

3-6.求亲密数

成绩:

10/折扣:

0.8

若正整数A的全部约数(包括1,不包括A本身)之和等于B;且整数B的全部约数(包括1,不包括B本身)之和等于A,则A、B为亲密数。

编程,输入正整数A,输出亲密数A,B(A<=B),若不存在亲密数,则输出“Nooutput(回车)”。

例如:

220和284就是一对亲密数。

220的约数是:

1、2、4、5、10、11、20、22、44、55、110,约数之和是284;284的约数是:

1、2、4、71、142,约数之和是220。

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例2

以文本方式显示

1.220↵

以文本方式显示

1.220-284↵

1秒

64M

0

1.#include  

2.main()  

3.{   int i,a,b,c;  

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

5.    b=0;c=0;  

6.    for( i=1;i<=a/2;i++ )  

7.    { if(a%i==0)  

8.      b+=i;  

9.    }  

10.    for( i=1;i<=b/2;i++)  

11.    { if(b%i==0)  

12.      c+=i;  

13.    }  

14.    if(c==a)   

15.        if(a<=b) printf("%d-%d\n",a,b);  

16.        else     printf("%d-%d\n",b,a);  

17.    else     printf("No output\n");  

 4-1打印空心等腰梯形

成绩:

10/折扣:

0.8

输入n值,输出如下例(n=4)所示的高和上底均为n的等腰梯形:

****

**

**

*********

输入:

高n

输出:

高和上底均为n的等腰梯形

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.3↵

以文本方式显示

1.  ***↵

2. *   *↵

3.*******↵

1秒

64M

0

1.#include  

2.main()  

3.{  int i,j,n;  

4.   scanf("%d",&n);      

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

6.   {  for(j=1;j<=2*n+i-3;j++)     

7.         if(j==n-i+1||j>n-i+1&&(i==1||i==n))     

8.            printf("*");     

9.         else printf(" ");    

10.      printf("*\n");   

11.   }  

12.}  

4-2.反序输出整数

成绩:

10/折扣:

0.8

输入一个整数N,要求以相反的顺序输出该数,例如,N=-1234,输出-4321。

输入:

整数N

输出:

N的反序数

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.4567↵

以文本方式显示

1.7654↵

1秒

64M

0

1.#include  

2.#include  

3.main()  

4.{  int a,b,c;  

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

6.   b=fabs(a);  

7.   if(a>=0)  

8.   {do  

9.     {   c=b-(b/10)*10;  

10.       printf("%d",c);  

11.       b/=10;  

12.     }while(b);  

13.   }  

14.   if(a<=0)  

15.   {printf("-");  

16.    do  

17.     {   c=b-(b/10)*10;  

18.         printf("%d",c);  

19.         b/=10;  

20.     }while(b);  

21.   }  

22.   printf("\n"); 

23.} 

4-3.求最大、次大、最小和次小值

成绩:

10/折扣:

0.8

输入n和n个整数及其序号(如:

15,1   45,2 ...),依次输出n个整数的最大值、次大值、最小值、次小值及其原始序号。

输入:

n和n个整数及其序号

输出:

n个整数的最大值、次大值、最小值、次小值及其原始序号

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.5↵

2.15,1 11,2 0,3 7,4 1,5↵

以文本方式显示

1.15,1 11,2↵

2.0,3 1,5↵

1秒

64M

0

1.# include "stdio.h"   

2.main()   

3.{ int i,j,t,m,n,a[100],b[100];   

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

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

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

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

8.    for(j=0;j

9.    if(a[j]

10.     {m=a[j];   

11.     a[j]=a[j+1];   

12.     a[j+1]=m;   

13.     t=b[j];   

14.     b[j]=b[j+1];   

15.     b[j+1]=t;   

16.}   

17.  printf("%d,%d %d,%d\n%d,%d %d,%d\n",a[0],b[0],a[1],b[1],a[n-1],b[n-1],a[n-2],b[n-2]);   

18.  }  

4-4.10进制数转换为16位二进制数

成绩:

10/折扣:

0.8

将任一正整数(<32768)转换为16位二进制形式。

输入:

正整数

输出:

正整数的16位二进制数

 

测试输入

期待的输出

时间限制

内存限制

额外进程

测试用例1

以文本方式显示

1.144↵

以文本方式显示

1

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

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2