20100524C语言第十一次作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言第十一次作业

一、改错题
(实习目的:程序阅读理解和程序调试技巧的掌握,数组作为函数参数,字符串和字符处理函数的巩固。)
1. 将一个仅有数字及字母组成的字符串中的字符从左向右按下列规则重新
排列:字母从字符串的左端开始向右摆放,数字从字符串的右端开始向左
摆放。
例如,若源字符串为"g1bc3d24fa",则重新排列后的字符串为:
"gbcdfa4231"。

注: 程序中含有4处错误,每处错误的改正只涉及一行语句的修改或增加,或者一个头文件包含。

含有错误的源程序如下:

#include
#include

main()
{ char str[20];
gets(str);
adjust(str);
puts(str);
}

void adjust(char str[])
{ int i,j,k,len; char c;
len=strlen(str);
i=0;j=0;
for(;i{ c=str[i];
if(isdigit(c))
i++;
else{
for(k=i+1;kstr[k-1]=str[k];
str[len-1]=c;
j++;
}
}
}

二、编程题
2. 按以下要求编写程序:
使用递归方法解决汉塔问题,打印出搬n个盘子的每一步骤,并要求不使用全局变量,统计出在搬n个盘子的过程中,hanoi()函数总共被调用了多少次。
(实习目的:递归函数的编写,还有...。)

3. 按以下要求编写程序:
使用全局变量,编写一个函数,由实参传来一个字符串,统计此字符串中
字母、数字、空格和其他字符的个数,在主函数中输入字符串以及统计的
结果。
(实习目的:全局变量的定义和使用。)

4. 按以下要求编写程序:
(1) 编写函数void encode(int x[],int n, int y[]),其功能是:对x指向的数组中n个不超过4位的正整数逐个做加密处理,并将加密后的n个正整数保存在y指向的数组中。加密方法如下:(1)将正整数的每一位用该位数字加该位序号的值替换(序号规定:个位为1,十位为2,百位为3,千位为4),若结果大于9,则用该数除以10的余数替换。(2)交换最高位和最低位。
(2) 编写main()函数,调用encode()函数对给定的测试数据作加密,并在屏幕上输出加密后的结果。
例如,输入测试数据"13,25,135,246,1357,2468"共6个正整数,则输出结果为:43,64,654,765,8675,9786。
(实习目的:掌握数组作为函数参数,整数的位操作。)

5. 附加题,有时间再做。
按以下要求编写程序:
(1) 编写函数void count(char a[], char w[][10], int n,int b[])。其功能是:统计w指向的数组中n个单词在a指向的字符串中各自出现的次数(将非字母字符看做单词分隔符),并将统计结果依次保存在b指向的数组中。
(2) 编写main()函数,采用数组定义的同时初始化的方式并将以下测试数据保存在数组中,调用count()函数做统计,并在屏幕上打印统计结果(每个单词及其出现次数)

试数据为:a中的字符串"this is a book, that is an apple"
w中的单词为:"this","that","is","a","an","book"
相应的输出应该是:
this:1, that:1, is:2, a:1, an:1, book:1

(实习目的:字符串处理,数组作为函数参数,字符数组初始化,二维字符数组存储多个字符串。)






相关文档
最新文档