问题 问答题

函数fun()的功能是:将s所指字符串中除了下标为奇数,同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII码值虽为奇数,但所在数组中的下标为偶数,因此必须删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他以此类推。最后t所指数组中的内容应是“135”。
#include<stdio.h>
#include<string.h>
void fun(char *s,char t[])


main()

char s[100],t[100];void NONO();
printf("\nPlease enter string s:");scanf("%s",s);
fun(s,t);
printf("\nThe result is:%s\n",t);
NONO();

答案

参考答案:

int i,j=0;
  for(=A;i<strlen(s);i+=B)
  if(i%B==0&&s[i]%B)t[j++]=s[i];
  t[j]=’\0’;

解析:

该程序的功能是将字符串中除了下标为奇数、ASCII值也为奇数的字符外,其余的全都删除。解题过程:利用if判断表达式选择符合条件的字符,然后将符合条件的字符放入指定的字符串。

①判断一个字符串中的某一字符下标i是否为奇数,可用“!%2!=0”来判定,也可以从下标1开始,每次移动2个位置:而判断字符的ASCII码值是否为奇数,则可用“s[i]%2 1=0”来判定。

②对串s中各个字符串逐个进行考查,满足条件的字符就顺序放在新串t中,否则就不存放。

③所有字符处理完后,记得在新串t的末尾加上结束符“’\0’”。

[考点] 数组操作,函数传值,if条件语句,for循环语句。

单项选择题
单项选择题