每日5题之2015.8.8

字符串

1.下面程序的功能是读入20个整数,统计非负数个数,并计算非负数之和。

#include "stdio.h"

main()

{ int i,a[20],s,count

s=count=0

for(i=0i<20i++ )

scanf("%d", ① )

for(i=0i<20i++)

{ if(a[i]<0)

② ;

s+=a[i]

count++

}

printf("s=%d\t count=%d\n",s,count)

}

 

 

2.下面程序的功能是删除字符串s中的空格。

#include <stdio.h>

main()

{ char *s="Beijing ligong daxue"

int i,j

for(i=j=0s[i]!='\0'i++)

if(s[i]!= ' ') ① ;

else ② ;

s[j]= '\0'

printf("%s",s)

}

 

 

3.下面程序的功能是将字符串s中所有的字符'c'删除。请选择填空。

#include<stdio.h>

main( )

{ char s[80]

int i,j

gets(s)

for(i=j=0s[i]!= '\0'i++ )

if(s[i]!= 'c') ① ;

s[j]= '\0'

puts(s)

}

 

4.下面程序的功能是输出两个字符串中对应相等的字符。请选择填空。

#include <stdio.h>

char x[]="programming"

char y[]="Fortran"

main()

{ int i=0

while(x[i]!= '\0' && y[i]!= '\0')

if(x[i]==y[i])

printf("%c", ① )

else

i++

 

 

5.下面程序的功能是将字符串s中的每个字符按升序的规则插到数组a字符串a已排好序。

#include <string.h>

main()

{ char a[20]="cehiknqtw"

char s[]="fbla"

int i,k,j

for(k=0s[k]!= '\0'k++ )

{ j=0

while(s[k]>=a[j] && a[j]!= '\0' )

j++

for( ① 

② ;

a[j]=s[k]

}

puts(a)

}

 

 

6.下面程序的功能是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为"abcdefg""abceef",则输出为-1

#include <stdio.h>

main()

{ char str1[100],str2[100],c

int i,s

printf("Enter string 1: "); gets(str1)

printf("Enter string 2: "); gets(str2)

i=0

while((str1[i] == str2[i] && str1[i]!= ① )) 

i++

s= ② ;

printf("%d\n", s)

}

 

 

7.下面的函数expand在将字符串s复制到字符串t时, 将其中的换行符和制表符转换为可见的转义字符表示,即用'\n'表示换行符,用'\t'表示制表符。

expand(char s[],char t[])

{ int i,j

for(i=j=0s[i]!= '\0'i++ )

switch (s[i])

{ case '\n': t[ ① ] = ② ;

t[j++] = 'n'

break

case '\t': t[ ③ ] = ④ ;

t[j++] = 't'

break

default: t[ ⑤ ] = s[i]

break

}

t[j] = ⑥ ;

}

 

 

8.下面的函数index(char s[], char t[])检查字符串s中是否包含字符串t若包含,则返回t在s中的开始位置(下标值),否则送回-1。

index(char s[], char t[])

{ int i,j,k

for(i=0s[i]!= '\0'i++ )

{ for(j=i,k=0; ① && s[j]==t[k]j++,k++) 

if( ② 

return (i)

}

return(-1)

}

n

 

转载于:https://my.oschina.net/shengmingqijiquan/blog/663028

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值