下面的程序统计出0或1最大连续出现的次数。试完善之。
char* p = \ int len = strlen(p); int max_k = 1; int k = 1;
for(int i=1; i printf(\ if(p[i]==p[i-1]) { } __max_k=max_k>k?max_k:k_______________________; k = 1; k++; else 13. 代码填空 形如:“abccba”,“abcba”的串称为回文串,下列代码判断一个串是否为回文串。请补充空白的部分。 char buf[] = \ int x = 1; for(int i=0; i if(_____buf[i]!=buf[strlen(buf)-i-1]______________) { } x = 0; break; printf(\是\否\ 14. 代码填空 计算3个A,2个B可以组成多少种排列的问题(如:AAABB, AABBA)是《组合数学》的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。请完善它。 int f(int m, int n) { } if(m==0 || n==0) return 1; return ____ (m+n)!/(m!)/(n!) ___________________; f(m-1,n)+f(n-1,m) 第 6/9 页 15. 代码填空 因数分解是十分基本的数学运算,应用广泛。下面的程序对整数n(n>1)进行因数分解。比如,n=60, 则输出:2 3 5 2。请补充缺失的部分。 void f(int n) { } for(int i=2; i if(n>1) printf(\ while(n%(i)==0)____________________ { } printf(\n = n / i; 16. 代码填空 下列代码实现把一个串“轮换”拷贝。既是:把\拷贝为:\。请补充缺少的语句。 char* p = \ char* q = (char*)malloc(strlen(p)+1); for(int i=0, int len=strlen(p); i q[i] = p[i+1]; q[len-1] = p[0]; ____q[len]=’\\0’ _________________; printf(\ 17. 代码填空 穷举法是计算机解决某些问题的重要手段。为了估算可能性的数目,经常需要计算组合或排列的数目,下面的代码输出从m个物体中任取出n个物体的不同方案的数目(此处假设:m, n>1 且 m>=n)。试完善之。 int f(int m, int n) { int a = 1; int m1 = m; _while(m1>1)_____________ a *= m1--; 第 7/9 页 } int b = 1; while(n>1) b *= n--; return a / b; 18. 代码填空 任意给定一个4位数(不能所有位都相同),比如:3278,重新组合出最大数:8723,再重新组合出最小数:2378,相减,得到新的4位数(如不足则补0),重复这个过程,最后必然得到一个数字:6174。这个现象被称为:数字黑洞。下面的函数实现由给定的4位整数求出下一个整数的功能。请完善之。 int f(int n) { int N[4]; for(int i=0; i<4; i++) { } for(i=0; i<3; i++) for(int j=0; j<3-i; j++) if(N[j]>N[j+1]) { } int t = N[j+1]; N[j+1] = N[j]; N[j] = t; N[3-i] = n % 10; _n=n/10__________________; int n_min=0; for(i=0; i<4; i++) n_min = n_min * 10 + N[i] ; // int n_max = 0; for(i=3; i>=0; i--) return n_max-n_min; } n_max = n_max * 10 + N[i]; 19. 代码填空 第 8/9 页 公交车票价为5角。假设每位乘客只持有两种币值的货币:5角、1元。再假设持有5角的乘客有m人,持有1元的乘客有n人。由于特殊情况,开始的时候,售票员没有零钱可找。我们想知道这m+n名乘客以什么样的顺序购票则可以顺利完成购票过程。显然,m < n的时候,无论如何都不能完成,m >=n的时候,有些情况也不行。比如,第一个购票的乘客就持有1元。下面的程序计算出这m+n名乘客所有可能顺利完成购票的不同情况的组合数目。注意:只关心5角和1元交替出现的次序的不同排列,持有同样币值的两名乘客交换位置并不算做一种新的情况来计数。 //m: 持有5角币的人数 //n: 持有1元币的人数 //返回:所有顺利完成购票过程的购票次序的种类数 int f(int m, int n) { if(m < n) return 0; if(n==0) return 1; return ______ f(m-1,n)+f(m,n-1)_________________; } 第 9/9 页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言参考题目-填空题(2)在线全文阅读。
相关推荐: