}
return 0; }
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个月的兔子总数的输出格式: \
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
#include
int creat(int n); int main() {
int each,total,i,n;
printf(\ scanf(\ for (i=1;i<=n;i++)
printf(\
printf(\
return 0; }
int creat(int n) {
if (n==1 || n==2) return 1; else
return creat(n-1)+creat(n-2); }
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\
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
#include
int a,b,c,d,i,j;
for (i=31;i<100;i++) {
j=i*i; a=j/1000;
d=j;
b=j00/100; c=j0/10;
if (a==b&&c==d&&a!=c)
printf(\ } return 0; }
4检验并打印幻方矩阵。(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!
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串! (输人样例中“_”代表空格,输出样例中“*”代表空格)
#include
int m[5][5]={0}; int main() {
for(i=0;i<5;i++)
for (j=0;j<5;j++)
scanf(\ if (judge()) {
printf(\ for(i=0;i<5;i++) {
for (j=0;j<5;j++)
printf(\ printf(\ } } else
printf(\ return 0; }
int judge () { int l=0,r=0;
int s[5]={0},t[5]={0}; for (i=0;i<5;i++)
for (j=0;j<5;j++) {
s[i]+=m[i][j]; t[j]+=m[i][j];
if (i==j) l+=m[i][j]; if (i+j==4) r+=m[i][j]; }
if (l!=r) return 0; for (i=0;i<5;i++)
if (s[i]!=l||t[i]!=l) return 0; return 1; }
第9周——呼风唤雨的指针:C语言世界中的“金箍棒”
1重复数字检查(4分)
题目内容:
从键盘输入一个数,检查这个数中是否有重复出现的数字。如果这个数中有重复出现的数字,则显示“Repeated digit!”;否则显示“No repeated digit!”。 已知函数原型:
int CountRepeatNum(int count[], int n); 若有重复数字,则该函数返回重复出现的数字;否则返回-1. 程序运行结果示例1: Input n: 28212↙ Repeated digit!
程序运行结果示例2: Input n: 12345↙
No repeated digit!
输入提示:\输入格式: \ 输出格式:
有重复数字,输出信息: \ 没有重复数字,输出信息: \
注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!
#include
int CountRepeatNum(int count[10], int n) {
int b,rtn=-1; while (n>0){ b = n % 10; if (count[b]) { rtn = b; break; } count[b] = 1; n /= 10; } return rtn; }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库中国大学C语言程序题(6)在线全文阅读。
相关推荐: