北理工C语言编程网上作业答案文档格式.docx

上传人:b****4 文档编号:6661935 上传时间:2023-05-07 格式:DOCX 页数:33 大小:27.07KB
下载 相关 举报
北理工C语言编程网上作业答案文档格式.docx_第1页
第1页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第2页
第2页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第3页
第3页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第4页
第4页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第5页
第5页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第6页
第6页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第7页
第7页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第8页
第8页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第9页
第9页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第10页
第10页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第11页
第11页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第12页
第12页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第13页
第13页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第14页
第14页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第15页
第15页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第16页
第16页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第17页
第17页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第18页
第18页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第19页
第19页 / 共33页
北理工C语言编程网上作业答案文档格式.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

北理工C语言编程网上作业答案文档格式.docx

《北理工C语言编程网上作业答案文档格式.docx》由会员分享,可在线阅读,更多相关《北理工C语言编程网上作业答案文档格式.docx(33页珍藏版)》请在冰点文库上搜索。

北理工C语言编程网上作业答案文档格式.docx

这个题目会给你两个不同的数字,它们不属于同一进制,要求你计算出当它们分别处于何种进制之中时,两个数字相等。

譬如12和5,在十进制下它们是不等的,但假设12使用3进制而5使用六进制或十进制时,它们的值就是相等的。

因此只要选择适宜的进制,12和5就可以是相等的。

程序的输入是两个数字M和N(其十进制的值不超过1000000000),它们的进制在2~36之间。

对于十以下的数字,用0~9表示,而十以上的数字,那么使用大写的A~Z表示。

求出分别在2~36哪种进制下M和N相等。

假设相等那么输出相应的进制,假设不等那么输出错误信息。

当然了,对于多种可能成立的情况,找出符合要求的进制最小的一组就行了。

信息的格式见测试用例。

21.零钱换整钱

小明手中有一堆硬币,小红手中有假设干张10元的整钱。

1角的硬币厚度为1.8mm,5角的硬币厚1.5mm,1元的硬币为2.0mm。

小明和小红一起玩游戏,小红拿出假设干张10元的纸币,小明要将1角的硬币放成一摞,将5角的硬币硬币放成一摞,将1元的硬币放成一摞,如果3摞硬币一样高,并且金额能够正好小红要求的面值,那么双方可以进行交换,否那么没有方法交换。

输入:

小红希望交换几张10元的纸币

输出:

1角的数量,5角的数量,1元的数量

4.intn,a,b,c,s,j=0;

5.scanf("

%d"

n);

6.for(a=1;

a<

10*n;

a++)

7.for(b=1;

b*15<

=a*18;

b++)

8.for(c=1;

c<

a;

c++)

9.{

10.s=a+b*5+c*10;

11.if(b*15==c*20&

&

a*18==b*15&

s==100*n)

12.{printf("

%d,%d,%d\n"

a,b,c);

13.j+=1;

14.}

15.}

16.if(j==0)

17.printf("

Nochange.\n"

);

18.return0;

19.}

22.买东西

某商品有A、B、C三种品牌,各品牌的价格各不相同,其中A品牌的价格为每个5元,B品牌为每个3元,而C品牌为每3个1元。

如果要用M元钱买N个该商品,要求每个商品至少买一个,编程求各种品牌各能买多少个。

先后输入M〔钱数〕及N〔商品个数〕的实际数值

所有可能情况下可以购置的3种商品的个数,按A、B、C品牌的顺序输出,用逗号分隔。

例如:

2,30,68;

表示A品牌商品2个、B品牌商品30个、C品牌商品68个。

要求:

因为有多个结果,结果的排序按照A品牌的个数从少到多的顺序输出。

4.inta,b,c,M,N,s;

%d%d"

M,&

N);

=N;

7.{

8.for(b=1;

b<

10.c=N-a-b;

11.if(c%3==0)

12.{

13.s=a*5+b*3+c/3;

14.if(s==M)

15.printf("

%d%d%d\n"

16.}

17.}

18.}

19.}

23谁能出线

背景:

电视台举办“超级学生〞才艺大赛,由于报名人数狂多,所以要先进行分组预赛。

按规定,每10名学生为一个预赛小组,评委打出分数〔0~100分〕,各小组第一名可以进入下一轮;

如果有多名学生得分相同都是第一名,那么可同时进入下一轮。

按顺序给出一个小组10个人的最后得分〔int〕。

能够出线的学生序号〔0~9〕。

#include<

main()

{inta[10]={0},i,max=0;

for(i=0;

i<

10;

i++)

{

scanf("

a[i]);

if(max<

a[i])max=a[i];

}

for(i=0;

{if(a[i]==max)

printf("

i);

}

}

24.寻找特殊偶数

有一种特殊偶数,它每一位上的数字都两两不相同。

我们现在需要找出四位数中某一区间内的这类偶数。

所要寻找的四位偶数的范围。

每组输入有两个数字:

第一个数字是最小范围;

第二个数字是最大范围。

如果输入遇到0,输入结束。

列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。

4.inta,b,counter,i,number1,number2,number3,number4;

5.do

6.{

7.scanf("

b);

8.if((a==0)&

(b==0))

9.break;

10.if(a>

=b)printf("

Error\n"

11.else

13.if((a<

1000)||(b<

1000))printf("

14.else

15.{

16.for(i=a,counter=0;

=b;

i++)

17.{

18.number1=i/1000;

19.number2=i/100%10;

20.number3=i/10%10;

21.number4=i%10;

22.if((number1!

=number2)&

(number1!

=number3)&

=number4)&

(number2!

(number3!

=number4))

23.{

24.if((i%2)==0)

25.{

26.printf("

%d"

27.counter++;

28.}

29.}

30.}

31.printf("

\n"

32.printf("

counter=%d\n"

counter);

33.}

34.}

35.}

36.while((a!

=0)&

(b!

=0));

37.return;

38.}

26二年级小学生的题目

两个二年级小朋友在一起玩游戏,小明给出一堆不超过两位的正整数和运算要求〔+、-、*、/、%〕,小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。

用逗号分隔的不超过两位的正整数序列,及其运算符和等号

最大数op最小数=结果

2.intmain()

4.intop=0;

5.intmax=0;

6.intmin=99;

7.intmark=0;

8.intn1=-1,n2=-1,n=0;

9.for(;

1;

10.{

11.charc;

12.scanf("

%c"

13.if(c=='

'

14.{

15.if(mark==1)

16.n=n1;

17.elseif(mark==2)

18.n=n1*10+n2;

19.if(n>

max)

20.{max=n;

}

21.if(n<

min)

22.{min=n;

23.mark=0;

24.n1=-1,n2=-1;

25.continue;

26.}

27.if(c=='

+'

28.op=1;

29.elseif(c=='

-'

30.op=2;

31.elseif(c=='

*'

32.op=3;

33.elseif(c=='

/'

34.op=4;

35.elseif(c=='

%'

36.op=5;

37.elseif(c=='

='

38.{break;

39.elseif(c<

9'

c>

0'

40.{

41.if(mark==0)

42.{n1=c-'

;

mark=1;

43.elseif(mark==1)

44.{n2=c-'

mark=2;

45.

46.}

47.}

48.switch(op)

49.{

50.case1:

51.{

52.printf("

%d+%d=%d\n"

max,min,max+min);

53.break;

54.}

55.case2:

56.{

57.printf("

%d-%d=%d\n"

max,min,max-min);

58.break;

59.}

60.case3:

61.{

62.printf("

%d*%d=%d\n"

max,min,max*min);

63.break;

64.}

65.case4:

66.{

67.if(min==0)

68.printf("

Error!

69.else

70.{

71.printf("

%d/%d=%d\n"

max,min,max/min);

72.}

73.break;

74.}

75.case5:

76.{

77.if(min==0)

78.printf("

79.else

80.{

81.printf("

%d%%%d=%d\n"

max,min,max%min);

82.}

83.break;

84.}

85.}

86.}

27等值数列段

如果一个数列中的某一段〔至少有两个元素〕的各元素值均相同,那么称之为等值数列段。

等值数列段中元素的个数叫做等值数列段的长度。

由N个元素组成的整数数列A〔其中N<

=50)

A中长度最大的所有等值数列段的始末位置,如果没有等值数列段,那么输出Noequalnumberlist.

说明:

始末位置是指数组下标,即0表示第一个元素。

如果有多个同等长度的等值数列,只输出第一个等值数列的起始位置。

当在一个LIST中出现两个等长的连续串的时候,我们的答案应该是第一个等长串。

1.#include<

4.

5.for(;

7.intnum[50]={0};

8.intn=0;

9.

10.scanf("

11.for(inti=0;

n;

12.{scanf("

num[i]);

13.intstarttemp=num[0];

14.intstart=num[0];

15.inta=-1;

16.intb=0;

17.intcount=1;

18.intcounttemp=1;

19.

20.for(inti=1;

21.{

22.if(num[i]==num[i-1])

24.a=i;

25.counttemp++;

26.if(counttemp>

count)

27.{b=a;

count=counttemp;

28.continue;

30.else

31.{

32.counttemp=1;

34.

36.if(a==-1)

37.{printf("

Noequalnumberlist.\n"

break;

38.else

39.{printf("

Thelongestequalnumberlistisfrom%dto%d.\n"

b+1-count,b);

break;

40.}

41.}

28大家一起做游戏

幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。

规那么如下:

所有的小朋友绕成一圈,顺序排号,从第一个小朋友开始报数,但凡报到固定数字〔例如5〕的,都退出该游戏,直到只剩下一位小朋友游戏才中止。

每个小朋友都希望自己能有更多的练习数数的时机,所以都希望成为最终被留下的那位。

现在,请大家帮小朋友们计算一下,在第一次排号的时候排到第几位才能成为最终被留下的小朋友。

小朋友的个数〔<

=50〕要被练习的数字

最终被留下的小朋友的序号

如“要被练习的数字〞是5,那么每次数到5的同学要退出该游戏

2.voidmain()

4.intN,n,i,s=0,a;

%d%d\n"

N,&

6.for(i=2;

7.s=(s+n)%i;

8.a=s+1;

9.printf("

TheleftchildisNO%d.\n"

a);

10.}

29组成最大数

任意输入一个自然数,输出该自然数的各位数字组成的最大数。

例如,输入1593,那么输出为9531。

自然数n

各位数字组成的最大数

2.#include<

string.h>

3.intmain()

4.{

5.chara[100000],c;

6.inti,j,k;

%s"

a);

8.i=strlen(a);

9.for(j=0;

j<

i-1;

j++)

10.for(k=0;

k<

i-j-1;

k++)

11.{

12.if(a[k]<

a[k+1])

13.{

14.c=a[k];

15.a[k]=a[k+1];

16.a[k+1]=c;

19.printf("

20.printf("

21.}

30删除重复字符

输入一个长度不超过100的字符串,删除串中的重复字符。

输入要检查的字符串,长度不超过100个字符。

abacaeedabcdcd。

删除重复字符后的字符串。

abced。

2.

3.#include<

5.intalread_saved(charlastchar,charnewstr[],intj)

6.

8.

9.inti=0;

10.

11.while(i<

j)

12.

14.if(lastchar==newstr[i])return1;

15.

16.i++;

17.

20.return0;

21.

22.}

23.

24.voidmain()

25.

26.{

27.charstr[100];

charnewstr[100];

intn,i,j;

28.

29.i=0;

30.

31.j=0;

32.

33.gets(str);

35.while(str[i]!

\0'

36.

37.{

38.

39.if(!

alread_saved(str[i],newstr,j))

40.{newstr[j]=str[i];

j++;

41.

42.}

43.i++;

44.

45.}

46.

47.newstr[j]='

48.

49.puts(newstr);

50.

51.}

31合并字符串

输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。

两个已经排好顺序〔升序〕的两个字符串

一个合并在一起的有序〔升序〕的字符串

设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。

如果采用先进行串连接,然后再进行排序的算法,那么效率太低了。

5.voidMergeList(charstr1[],charstr2[],charstr3[]);

7.voidmain()

10.charstr1[100];

charstr2[100];

charstr3[100];

gets(str1);

gets(str2);

11.

12.MergeList(str1,str2,str3);

13.

14.printf("

%s\n"

str3);

18.voidMergeList(charstr1[],charstr2[],charstr3[])

20.{

22.inti,j,k;

24.i=0;

j=0;

k=0;

25.intlengthOfStr1,lengthOfStr2;

lengthOfStr1=strlen(str1);

lengthOfStr2=strlen(str2);

26.while(i<

lengthOfStr1&

lengthOfStr2)

27.

28.{

29.if(str1[i]<

=str2[j])str3[k++]=str1[i++];

elsestr3[k++]=str2[j++];

31.}

32.while(i<

lengthOfStr1)str3[k++]=str1[i++];

while(j<

lengthOfStr2)str3[k++]=str2[j++];

str3[k]='

33.

32串的减法

输入字符串s和t〔串长不超过80个字符〕,将在字符串s中出现,但未在字符串t中出现的字符组成一个新的字符串放在u中,u中字符按原字符串中字符顺序排列,不去掉重复字符,输出u。

当s="

112345"

,t="

2467"

时,u="

1135"

  第一行为串s

  第二行为串t

串u

2.#include<

5.chara[80];

6.charb[80];

7.gets(a);

8.gets(b);

10.intl=strlen(a);

12.for(inti=0;

b[i]!

14.for(intj=0;

l;

15.if(a[j]==b[i])

16.a[j]='

18.for(intk=0;

19.if(a[k]!

a[k]);

21.printf("

22.

23.}

33单词排序

输入5个单词,将它们按从大到小的顺序排列后输出。

5个单词

排序后的顺序

1.#include"

stdio.h"

2.#include"

string.h"

3.voidmain()

4.{charch[5][26],c[26];

5.inti,j,k;

6.for(i=0;

5;

7.gets(ch[i]);

8.for(i=0;

4;

9.{k=i;

10.for(j=i+1;

11.if(strcmp(ch[k],ch[j])<

0)k=j;

12.if(k!

=i)

13.{strcpy(c,ch[i]);

14.strcpy(ch[i],ch[k]);

15.strcpy(ch[k],c);

16.

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

当前位置:首页 > 自然科学 > 物理

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

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