77范文网 - 专业文章范例文档资料分享平台

哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案

来源:网络收集 时间:2018-09-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

return 1; }

int main() {

int a;

int n=2,i,sum=0; ss[1]=2;ss[2]=3; printf(\ scanf(\

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

if (is(i)) ss[++n]=i; for (i=n;i>=n-9;i--) {

printf(\ sum+=ss[i]; }

printf(\

return 0; }

4

字符串逆序(4分)

题目内容:

用字符数组作函数参数编程,利用一个数组实现字符串(允许输入带空格的字符串)的逆序存放。要求如下:

(1)在主函数中从键盘输入字符串,字符串的最大长度为80个字符。

调用Inverse()函数将字符串逆序存放,然后在主函数中输出逆序后的字符串。 (2)在子函数Inverse()中实现字符串的逆序存放。函数原型为: void Inverse(char str[]); 程序运行结果示例1: Input a string: abcde↙ Inversed results: edcba

程序运行结果示例2: Input a string: hello↙

Inversed results: olleh

输入格式: 用gets()输入字符串 输出格式:

输入提示信息:\ 输出提示信息:\\\n\用puts()输出字符串

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include int dh(char *s,int len) {

int i;char c;

for (i=0;i<=len/2;i++) {

c=*(s+i);

*(s+i)=*(s+len-i); *(s+len-i)=c; } }

int main() {

char s[80],len=0;

printf(\ gets(s);

while (s[len]!='\\0') len++; len--; dh(s,len);

printf(\ puts(s);

return 0; }

第10周.

1

水手分椰子(4分)

题目内容:

n(n<=5)个水手在岛上发现一堆椰子,先由第1个水手把椰子分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。然后,第2个水手把剩下的4堆混合后重新分为等量的5堆,还剩下1个给了猴子,自己藏起1堆。以后第3、4个水手依次按此方法处理。最后,第5个水手把剩下的椰子分为等量的5堆后,同样剩下1个给了猴子。请用迭代法编程计算并输出原来这堆椰子至少有多少个,n的值要求从键盘输入。 程序运行结果示例: Input n(n<=5): 5↙ y=3121

输入格式: \输出格式:

输入提示: \输出格式: \

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include int can(int k) {

int i;

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

if ((k-1)%5!=0||k< 5) return 0; k=(k-1)/5*4; }

return 1; }

int main() {

int ans=1;

while (!can(ans)) ans++; printf(\

return 0; }

2

找最值(4分)

题目内容:

从键盘任意输入10个整数,用指针变量作函数参数编程计算最大值和最小值,并返回它们所在数组中的位置。函数原型如下所示:

int FindMax(int num[], int n, int *pMaxPos);//函数返回最大值,pMaxPos返回最大值所在的下标 int FindMin(int num[], int n, int *pMinPos);//函数返回最小值,pMaxPos返回最小值所在的下标 程序运行结果示例: Input 10 numbers: -1 2 3 45 92 8 9 12 7 8↙

Max=92,Position=4,Min=-1,Position=0

输入格式: \ 输出格式:

提示信息:\

输出结果:\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include

int Findmax(int *a,int *p) {

int i; *p=0;

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

if (*(a+*p)<*(a+i)) *p=i;

return 0; }

int Findmin(int *a,int *p) {

int i; *p=0;

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

if (*(a+*p)>*(a+i)) *p=i;

return 0; }

int main() {

int a[10],maxp,minp,i;

printf(\ for (i=0;i< 10;i++) scanf(\ Findmax(a,&maxp); Findmin(a,&minp);

printf(\

return 0; }

3

星期查找(4分)

题目内容:

任意输入英文的星期几,通过查找如图所示的星期表,输出其对应的数字,若查到表尾,仍未找到,则输

出错误提示信息。

提示:用一个二维字符数组weekDay来存放如图所示的星期表的内容(字符串)。输入待查找的字符串,然后在星期表中顺序查找与输入字符串相匹配的字符串。找到的字符串在星期表数组中的第一维下标(行号)即为题目所求。 程序运行结果示例1: Please enter a string: Friday↙ Friday is 5

程序运行结果示例2: Please enter a string: Fruday↙ Not found!

输入格式: 字符串输入采用gets()函数 输出格式:

输入提示信息:\:\\n\ 找到了,输出:\ 没找到,输出:\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include #include int main() {

char s[][10]={\

本答案仅供参考

第3周 1

计算两个数的平方和(3分)

题目内容:

从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数。

提示:使用数学函数需要在程序中加入编译预处理命令 #include

以下为程序的运行结果示例: please input x and y: 1.2,3.4↙ result=13.00

输入格式: \输出格式:

输入提示信息:\输出格式:\

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 时间限制:500ms内存限制:32000kb

#include

int main() {

float x,y,S,D;

printf(\ scanf(\ S = pow(x,2); D = pow(y,2);

printf(\ }

return 0;

2

逆序数的拆分计算(3分)

题目内容:

从键盘输入一个4位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算4*1000+3*100+2*10+1 = 4321,并输出4321。再将得到的逆序数4321拆分为两个2位数的正整数43和21,计算并输出拆分后的两个数的平方和的结果。

以下是程序的运行结果示例: Input x: -1234↙ y=4321 a=43,b=21 result=2290

输入格式: \输出格式:

输入提示信息:\逆序数输出格式:\

逆序数拆分后的输出格式:\平方和的输出格式:\

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 时间限制:500ms内存限制:32000kb

#include main() {

int x,b0,b1,b2,b3,y,a,b,c;

printf(\ scanf(\

x = (int)fabs(x); /*取x绝对值*/

b3 = x/1000; /*取x千位*/ b2 = (x-b3*1000)/100; /*取x百位*/ b1 = (x-b3*1000-b2*100)/10; /*取x十位*/ b0 = x; /*取x个位*/

y = b3+b2*10+b1*100+b0*1000; printf(\

a = b0*10+b1;

b = b2*10+b3; c = (a*a)+(b*b);

printf(\ printf(\ }

return 0;

3

拆分英文名(3分)

题目内容:

从键盘输入某同学的英文名(小写输入,假设学生的英文名只包含3个字母。如: tom),编写程序在屏幕上输出该同学的英文名,且首字母大写(如: Tom)。同时输出组成该英文名的所有英文字符在26个英文字母中的序号。

以下为程序的运行结果示例: Input your English name: tom↙ Tom t:20 o:15 m:13

输入格式: \输出格式:

输入提示信息:\首字母大写的英文姓名的输出格式:\

姓名中每个字母在26个英文字母中的序号的输出格式:\

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 时间限制:500ms内存限制:32000kb

#include

int main() {

char x,y,z,A;

printf(\ scanf(\

A=x-32; /*首字母改为大写*/ printf(\

printf(\ printf(\ printf(\ }

4

计算体指数(3分)

题目内容:

从键盘输入某人的身高(以厘米为单位,如174cm)和体重(以公斤为单位,如70公斤),将身高(以米为单位,如1.74m)和体重(以斤为单位,如140斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后2位。

假设体重为w公斤,身高为h米,则体指数的计算公式为:

以下是程序的运行结果示例: Input weight, height: 70,174↙ weight=140 height=1.74 t=23.12

输入格式: \输出格式:

输入提示信息:\ (注意:在height和逗号之间有一个空格) 体重输出格式:\身高输出格式:\体指数输出格式:\

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。 时间限制:500ms内存限制:32000kb

#include

int main() {

float A,b; int x,y;

printf(\

A=(float)y/100;

printf(\

b=(float)x/(A*A);

printf(\ }

printf(\ scanf(\

第4周 1

数位拆分v2.0(4分)

题目内容:

从键盘上输入一个4位数的整数n,编写程序将其拆分为两个2位数的整数a和b,计算并输出拆分后的两个数的加、减、乘、除和求余运算的结果。例如n=-4321,设拆分后的两个整数为a,b,则a=-43,b=-21。除法运算结果要求精确到小数点后2位。求余和除法运算需要考虑除数为0的情况,即如果拆分后b=0,则输出提示信息\

程序的运行结果示例1: Please input n: 1200↙ 12,0

sum=12,sub=12,multi=0 The second operater is zero!

程序的运行结果示例2: Please input n: -2304↙ -23,-4

sum=-27,sub=-19,multi=92

检验并打印幻方矩阵。(4分)

题目内容:

幻方矩阵是指该矩阵中每一行、每一列、每一对角线上的元素之和都是相等的。从键盘输入一个5×5的矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上。 输入格式: \输出格式:

如果是幻方矩阵,输出提示信息: \ 矩阵元素的输出: \(换行使用\)

如果不是幻方矩阵,输出提示信息: \ 输入样例1: 17_24_1_8_15 23_5_7_14_16 4_6_13_20_22 10_12_19_21_3 11_18_25_2_9

(输人样例中“_”代表空格) 输出样例1: It is a magic square! **17**24***1**8**15 **23***5***7**14**16 ***4***6**13**20**22 **10**12**19**21***3 **11**18**25***2***9 (输出样例中“*”代表空格) 输入样例2: 1_0_1_6_1 3_1_1_1_1 1_1_1_1_2 1_1_1_1_1 9_1_7_1_1

(输人样例中“_”代表空格) 输出样例2:

It is not a magic square!

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! (输人样例中“_”代表空格,输出样例中“*”代表空格) 时间限制:500ms内存限制:32000kb

#include int main() {

int a[6][6]; int i,j;

for (i=1;i<=5;i++) for (j=1;j<=5;j++) scanf(\ for (i=1;i<=5;i++) {

a[i][0]=0;

for (j=1;j<=5;j++) a[i][0]+=a[i][j];

if (a[i][0]!=a[1][0]) {printf(\ }

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

a[0][i]=0;

for (j=1;j<=5;j++) a[0][i]+=a[j][i];

if (a[0][i]!=a[0][1]) {printf(\ }

if (a[1][0]!=a[0][1]) {printf(\ a[0][0]=0;

for (i=1;i<=5;i++) a[0][0]+=a[i][i];

if (a[0][0]!=a[1][0]) {printf(\ a[0][0]=0;

for (i=1;i<=5;i++) a[0][0]+=a[i][6-i];

if (a[0][0]!=a[1][0]) {printf(\ printf(\ for (i=1;i<=5;i++) {

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

printf(\ printf(\ }

return 0; }

第九周

1

ISBN识别码判断(4分)

题目内容:

每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”就是分隔符(键盘上的减号),最后一位是识别码,例如

0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔符后的五位数字代表该书在该出版社的编号;最后一位为识别码。 识别码的计算方法如下:

首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,分别乘以1,2,...,9,再求和,即0×1+6×2+……+2×9=158,然后取158 mod 11的结果4作为识别码。

你的任务是编写程序判断输入的ISBN号码中识别码是否正确,如果正确,则仅输出“Right”;如果错误,则输出你认为是正确的ISBN号码。 程序运行结果示例1: 0-123-41562-4↙ Right

程序运行结果示例2: 0-123-41562-7↙ 0-123-41562-4

输入格式: 用gets()输入字符串

输入只有一行,是一个字符序列,表示一本书的ISBN号码(保证输入符合ISBN的格式要求)。 输出格式:

输入的ISBN号码的识别码正确,输出信息: \

输入的ISBN号码的识别码错误,按照规定的格式,输出正确的ISBN号码(包括分隔符“-”),输出格式:\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include

#include int main(void) {

char isbn[13];//13位isbn码 int i; int j = 1; int sum = 0;

gets(isbn);

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

if ((i != 1) && (i != 5))

sum += ((isbn[i] - '0') * (j++));

if (sum % 11 == (isbn[12] - '0'))

printf(\ else {

isbn[12] = (sum % 11) + '0'; printf(\ }

return 0; }

2

摘苹果(4分)

题目内容:

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。 程序运行结果示例1:

100 110 130 200 140 150 156 187 197 149↙ 110↙ 4

程序运行结果示例2:

90 210 102 153 147 110 130 182 88 113↙ 100↙ 6

输入格式: \ 输入包括两行数据:

第1行包含10个100到210之间的整数(包括100和210,以厘米为单位),分别表示10个苹果到地面的高度。两个相邻的整数之间用一个空格隔开。

第2行只包括一个100到120之间的整数(包含100和120,以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。 输出格式: \

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include int main() {

int a,n[11],i,c,x=0; for(i=1;i<=10;i++) {

scanf(\

}

scanf(\ c=c+30;

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

if(n[i]<=c)x++; }

printf(\ return 0; }

3

求最大素数(4分)

题目内容:

求n(n<=500)以内的10个最大素数及其和,并分别输出这10个最大素数及其和。n的值要求从键盘输入。 要求10个素数按从大到小的顺序输出。 程序运行结果示例: Input n(n<=500): 270↙

269 263 257 251 241 239 233 229 227 223 sum=2432

输入提示: \ 输入格式: \ 输出格式:

10个最大素数的输出格式:\ 总和的输出格式:\ 时间限制:500ms内存限制:32000kb

#include int ss[96]; int is(int k) {

int i=1;

while(ss[i]*ss[i]<=k) {

if (k%ss[i]==0) return 0; i++; }

}

}

{ }

printf(\选择非法,请重新输入进行再次选择\\n\

void viewer()//玩家是观众 {

g=a+b+c; f=e+(222*g); if (f==sum) {

if(sum"2==0) { } else {

e=e+222; a=e/100; b=(e/10); c=e; f=e+(222*g); m=(sum/222)/5; e=222*m; printf(\

printf(\

int sum;//键盘输入的和值 int f; int m;

printf(\请输入得到的数:\\n\scanf(\e=222-sum"2; b=(e/10); c=e;

int e;//得出的三位数 int g;

a=e/100;

else

}

}

}

printf(\

void playerchoice()//选择玩家的身份 { }

void hellp() {

system(\

printf(\欢 迎 寻 求 帮 助$$$$$$$$$$$$$$$$\\n\printf(\

printf(\游戏规则:输入1,表示退出游戏 @@@\\n\printf(\ 输入2,表示游戏系统设置 @@@\\n\printf(\ 输入3,表示游戏帮助 @@@\\n\printf(\ 输入4,表示游戏开始 @@@\\n\printf(\输入2时,进行下一轮选择:\\n\int select;

printf(\输入 1 你是魔术师 \\n\printf(\输入 2 你是观众 \\n\

printf(\请输入相应的数字,进入不同的模块: \\n\scanf(\getchar(); fflush(stdin); if(select==1) { }

else if(select==2) { } else { }

printf(\选择非法,请重新输入进行再次选择\\n\viewer(); magician();

printf(\ 输入1 你是魔术师 \\n\ \\n\ }

void exitgame() { }

void magician()//玩家是魔术师 {

int l,f;

char select;

printf(\你确定退出游戏吗?退出请输入Y或y,继续点任意键\\n\ scanf(\ getchar(); fflush(stdin);

if(select=='Y'||select=='y') { } else { }

return;

printf(\欢迎再来游戏\\n\ exit(1); //退出

printf(\结 束 帮 助$$$$$$$$$$$$$$$$$$$$$\\n\

printf(\ 输入2 你是观众 \\n\printf(\

printf(\游 戏 简 要 说 明!!!!!!!!!!!!!\\n\printf(\

printf(\ 在一种室内互动游戏中,魔术师要每位观众心里想一个3位数abcprintf(\和个位数字),然后魔术师让观众心中记下acb bac bca cab cba 5个数以printf(\只要观众说出这个和值多少,则魔术师一定能猜出观众心里想的原数abcprintf(\

printf(\本游戏玩家自由选择所担任的职业,即魔术师或观众,根据提示完成游戏

(a.b.c分别是百位.十位\\n\及这5个数的和值。\\n\是多少。\\n\

}

srand(time(0)); a=rand()%9+1; b=rand(); c=rand(); e=100*a+10*b+c;

//acb+bac+bca+cab+cba=122a+212b+211c=f f=122*a+212*b+221*c; printf(\

printf(\请输入你得到的三位数: \\n\scanf(\if (e==l) else

printf(\魔术失败了,下次努力\\n\

printf(\恭喜你,魔术成功了 \\n\

答案:

#include int is(int i,int k) {

int j=0,ii=i;

while (ii){j+=ii;ii/=10;} if (j*222==k+i) return 1; else return 0; }

int main() {

int i,j,k,sum;

scanf(\ k=0;

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

if (is(i,sum)) {k=i;break;}

if (k==0) printf(\ else printf(\

return 0; }

3

寻找中位数v1.0(4分)

题目内容:

编写一个函数返回三个整数中的中间数。函数原型为: int mid(int a, int b, int c); 函数功能是返回a,b,c三数中大小位于中间的那个数。 输入格式: \

输出格式:\ 输入样例1: 12 6 18↙ 输出样例1: The_result_is_12 输入样例2: -9 7 -2↙ 输出样例2: The_result_is_-2

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! (注意:在输出中,“_”代表空格,如果直接将上段示例粘贴到代码中,应将其替换为空格。) 时间限制:500ms内存限制:32000kb

#include #include int mid(int a,int b,int c);

int main() {

int a, b, c ,sum;

scanf(\ sum=mid(a,b,c);

printf(\ }

int mid(int a,int b,int c) {

if ( a >= b )

if ( a >= c ) return (b>=c ? b : c); else return a; else

if ( b >= c ) return (a>=c ? a : c); else return b; }

还原算术表达式(4分)

题目内容:

编写程序求以下算式中XYZ的值,其中两数XYZ与YZZ相加的和n(99

程序运行结果示例1: Input n(n<1000): 532↙ X=3,Y=2,Z=1

程序运行结果示例2: Input n(n<1000): 977↙ Invalid

输入格式: \ 输出格式:

输入提示:\Input n(n<1000):\\n\ 输出格式:\ 计算不成功(无解)的输出提示:\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:31kb

#include //XYZ+YZZ=N int main(void) {

int a; int x = 0; int y = 0; int z = 0;

printf(\ scanf(\

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

for (y = 0; y < 10; y++) {

for (z = 0; z < 10; z++) {

if (x * 100 + y * 10 + z + y * 100 + z * 10 + z == a) {

printf(\ } else {

printf(\ exit(0);

} } } }

return 0; }

#include int main() {

int x,y,z;

for (x=0;x<=9;x++) for (y=0;y<=9;y++) for (z=0;z<=9;z++)

if (x*100+y*110+z*12==532)

printf(\

return 0; }

第8周

1

计算礼炮声响次数(4分)

题目内容:

在海军节开幕式上,有A、B、C三艘军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒放1次,B舰每隔6秒放1次,C舰每隔7秒放1次。假设各炮手对时间的掌握非常准确,请编程计算观众总共可以听到几次礼炮声。

输入格式:无 输出格式:\n=%d\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include main() {

int n = 0, t;

for (t = 0; t <= 20 * 7; t++) {

if (t % 5 == 0 && t <= 20 * 5) {

n++; continue; }

if (t % 6 == 0 && t <= 20 * 6) {

n++; continue; }

if (t % 7 == 0) {

n++; } }

printf(\}

2

兔子生崽问题(4分)

题目内容:

假设一对小兔的成熟期是一个月,即一个月可长成成兔,那么如果每对成兔每个月都可以生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,n(n<=12)月以后可有多少对兔子(即当年第n月份总计有多少对兔子,含成兔和小兔)?请编程求解该问题,n的值要求从键盘输入。

参考答案:依题意,兔子的繁殖情况如图所示。图中实线表示成兔仍是成兔或者小兔长成成兔;虚线表示成兔生小兔。观察分析此图可发现如下规律: (1)每月小兔对数 = 上个月成兔对数。

(2)每月成兔对数 = 上个月成兔对数 + 上个月小兔对数。 综合(1)和(2)有:每月成兔对数 = 前两个月成兔对数之和。

用fn(n=1,2,…)表示第n个月成兔对数,于是可将上述规律表示为如下递推公式:

程序运行示例:

Input n(n<=12): 10↙

1 2 3 5 8 13 21 34 55 89 Total=89

输入格式:\输出格式:

输入提示:\每个月兔子对数的输出格式: \

第12个月的兔子总数的输出格式: \

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include int main() {

int n; int i,a[13]; a[1]=1;a[0]=1;

printf(\ scanf(\ for (i=2;i<=n;i++) a[i]=a[i-1]+a[i-2]; for (i=1;i<=n;i++)

printf(\ printf(\

return 0; }

3

抓交通肇事犯(4分)

题目内容:

一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。

[提示]:假设这个4位数的前两位数字都是i,后两位数字都是j,则这个可能的4位数

k = 1000*i + 100*i + 10*j + j

式中,i和j都在0~9变化。此外,还应使k=m*m,m是整数。由于k是一个4位数,所以m值不可能小于31。

输入格式: 无

输出格式:\k=%d,m=%d\\n\

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! 时间限制:500ms内存限制:32000kb

#include int main() {

int i,m,ans;

for (m=31;m<=100;m++) {

ans=m*m;

if (((ans/100)==0)&&((ans0)==0)) printf(\ }

return 0; }

4

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案在线全文阅读。

哈尔滨工业大学C语言2016年MOOC在线测试3-12周答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/167603.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: