wwwmmmmmmmmmmmmm 2015-04-23 13:34 采纳率: 83.3%
浏览 1940
已采纳

一次作业C语言作业题,已经做了六道,后面的题可能与前面的有关系。

1.(示例)写一个函数,接收一个字符串作为形参,然后显示它的每个字母,每个字母单独一行。这种从开头起,每次选择一个字符,对它做一些处理,再继续,直到结束。这种处理的模式称为“遍历”
traversal(char s[]){
int i;
for (i=0; s[i]!=’\0’; i++)
printf(“%c\n”,s[i]);
}

traversal(char s[]){
int i;
int len;

len=strlen(s);
for (i=0; i printf(“%c\n”,s[i]);
}
main(){
char s[200];
gets(s);
traversal(__________);
}
2.写一个函数,接收一个字符串作为形参,并倒序显示它的字母,每个字母单独一行。
3.(示例)写一个函数find(char word[], char letter),判断字符letter是否位于单词word中,如果存在,返回该字符在word中的下标,如果不存在,返回-1。
int find(char word[], char letter){
int i;
for (i=0; word[i]!=’\0’; i++)
if (word[i]==letter)
return i;
return -1;
}
4.修改find函数,让它接收第三个参数,表示从word的那个下标开始搜索。例如,字符串s=”blahblahblah”, 待查找字符为’a’, find(s,’a’)返回值为2,而三参数版本find(s, ‘a’, 4)返回值为6,表示从数组下标为4的位置开始搜寻字符’a’。
5.(示例)计算字母’a’在字符串中出现的次数
char word[]=”banana”;
count=0;
for (i=0; word[i]!=’\0’; i++)
if (word[i]==’a’)
count++;
printf(“%d”,count);
6.将上面这段代码封装为函数count, count接收字符串和要统计的字母作为形参。提示:函数头为int count(char s[], char letter)
7.重写count函数,不直接遍历字符串,使用前面的三参数版本的find函数。查阅库函数,写出以下功能对应的库函数名称:
a)将一个字符串转变为全部字母都是大写的字符串。ANSI C并没有这个库函数,我们教材上正文中有。
b)在一个字符串中搜索指定的字符c,并返回该字符的地址
c)在一个字符串中搜索另一个字符串(子串)出现的位置,返回该子串所在的位置(地址)
9.(阅读)编写一个查找子串位置的函数。
#include

int strindex(char s[], char t[]){
int i,j,k;

for (i=0; s[i]!='\0'; i++){
    j=i; k=0;
    while( s[j]==t[k] && t[k]!=0 ){
        j++;
        k++;
    }
    if (t[k]=='\0'&&k>0) 
        return i;
}
return -1;

}

main(){
char s[]="I am a boy", t[]="am";
printf("%d",strindex(s,t));
}
//思考一个问题,什么情形下while循环会退出。考察以下情形的执行情况,s=”ddabdd”, t=”ab”; 又如s=”ddab”, t=”ab”; 又如s=”dda”, t=”ab”。

10.(阅读)编写一个字符串比较函数。 如果s在字典序上大于t,返回整数,等于t,返回0, 小于t,返回负数。
int strcmp(char s[], char t[]){
int i;
for (i=0; s[i]==t[i]; i++)
if (s[i]==’\0’)
return 0;
return s[i]-t[i];
}
11.扩展以上函数,使得函数在做字符串比较的时候不区分大小写。即strcmp(“banana”, “BaNaNa”)==0;
12.(改错)以下程序比较两个字符串是否互为倒序, 请多使用调试技术去发现错误。
int is_reverse(char s[], char t[]){
int i,j;

if (strlen(s)!=strlen(t))
    return 0;

for (i=0, j=strlen(t); j>0 ; i++, j--)
    if (s[i]!=t[j])
        return 0;

return 1;

}

  • 写回答

5条回答 默认 最新

  • devmiao 2015-04-25 13:47
    关注

    我们就是喜欢帮助那些“没有原则”,“不坚持”的人。当然,也有和你想法一样的人,只是比较少,你慢慢等这样的人出现吧。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 有段代码不知道怎么理解,const isToken = (config.headers || {}).isToken === false
  • ¥100 采用栈和深度优先算法对我的代码进行修改显示路径
  • ¥15 pointnet2包安装
  • ¥20 射频功率问题,解答者有酬谢!
  • ¥80 构建降雨和积水的预测模型
  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径
  • ¥100 github贡献者给与奖励
  • ¥15 使用DS18B20+ESP8266获取温度数据返回-127.00