文档详情

北理C语言作业及答案.doc

发布:2017-03-21约2.94万字共52页下载文档
文本预览下载声明
C语言作业3 43. 缩写展开 成绩: 10 / 折扣: 0.8 在保存字符串时,对出现在连续位置的若干个字符,如这些字符在ASCII表中也是连续出现,则可以将这些字符使用缩写形式进行保存,以节省保存空间。例如用A-Z表示ABCD...XYZ,1-5表示12345,c-f表示cdef。 输入: 包含缩写形式的字符串 输出: 将缩写形式进行还原后的字符串 说明: 只分别对大写字母、小写字母和数字进行压缩,对于形如9-A,a-C这样的缩写不进行处理。 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 0-9? 以文本方式显示 0123456789? 1秒 64M 0 测试用例 2 以文本方式显示 G-I? 以文本方式显示 GHI? 1秒 64M 0 测试用例 3 以文本方式显示 ABDG-K035-9abd-h? 以文本方式显示 ABDGHIJK0356789abdefgh? 1秒 64M 0 测试用例 4 以文本方式显示 abcdef ghi jkl mn? 以文本方式显示 abcdef ghi jkl mn? 1秒 64M 0 测试用例 5 以文本方式显示 1-1? 以文本方式显示 1-1? 1秒 64M 0 #include stdio.h int main() { int i=0; char s[100]; gets(s); while(s[i]!=\0) { if(s[i+1]!=-) { printf(%c,s[i]); i++; } else { if(s[i+2]s[i] ((s[i]=57)+(s[i+2]=57)!=1) (s[i]=57||s[i]=65)) { while(s[i]!=s[i+2]){ printf(%c,s[i]++); } i+=2; } else printf(%c,s[i++]); } } printf(\n); return 0; } 44. 函数递归 成绩: 10 / 折扣: 0.8 编写一个函数,使用递归算法求满足下述定义的整数序列的第n项。 1 当 n = 0 且 n = 4 时 f( n ) = f(n-1) + f(n-3) 当 n 4 且n为偶数 时 f(n-2) + f(n-4) 当 n 4 且n为奇数 时 -1 其他 函数原型如下: int findf(int n); 参数说明:n 项数;返回值是第n项值。 例如输入:10,输出:8 预设代码 前置代码 view plaincopy to clipboardprint? /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */ #include stdio.h int main() { int n,s, findf( int ); scanf(%d, n); s = findf(n); printf(%d\n, s); return 0; } /* PRESET CODE END - NEVER TOUCH CODE ABOVE */ 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示 10? 以文本方式显示 8? 无限制 64M 0 int findf(int n) { if(n=0n=4) return 1; else if(n4n%2==0) return findf(n-1) + findf(n-3); else if(n4n%2==1) return findf(n-2) + findf(n-4); else return -1; } 45. 大家再来做游戏 成绩: 10 / 折扣: 0.8 还是那个大家做游戏的问题: 幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。规则如下:所有的小朋友绕成一圈,顺序排号,给出开始报数的小孩的编号后,从这个小朋友开始报数,凡是报到固定数字(例如5)的,都退出该游戏,
显示全部
相似文档