C程序题 跪求大神相助!!!
#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%c",*s);s++;}}mian(){chara...
#include <stdio.h>
void fun(char *s)
{ while(*s)
{if (*s%2) printf("%c",*s);
s++;
}
}
mian()
{ char a[ ]="BYTE";
fun(a);
printf("\n");
}
为什么输出结果是 YE 而不是BT 展开
void fun(char *s)
{ while(*s)
{if (*s%2) printf("%c",*s);
s++;
}
}
mian()
{ char a[ ]="BYTE";
fun(a);
printf("\n");
}
为什么输出结果是 YE 而不是BT 展开
6个回答
展开全部
函数fun的功能是输出s所指字符串中ASCII码值为奇数的字符。字符串"BYTE"中,字符'Y','E'的ASCII码为奇数,因此输出,字符'B','T'的ASCII码为偶数,因此不输出。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while(*s)
{ s++;}这是一个固定格式,表示字符串从第一个字符开始,只有不是终止符‘/0’就判断下一个字符。
while(*s)判断是否是终止符‘/0’
s++让指针指向下一个单字符
所以fun函数的含义就是对一个字符串进行扫描,如果单个字符的ASCM码是奇数就打印出来,否则跳过
{ s++;}这是一个固定格式,表示字符串从第一个字符开始,只有不是终止符‘/0’就判断下一个字符。
while(*s)判断是否是终止符‘/0’
s++让指针指向下一个单字符
所以fun函数的含义就是对一个字符串进行扫描,如果单个字符的ASCM码是奇数就打印出来,否则跳过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为第一次是时候*s%2=0不进入if
第二次 *s%2=1 今天if 打印出Y其他的依次类推
第二次 *s%2=1 今天if 打印出Y其他的依次类推
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0%2=0
s++
1%2=1
printf "Y"
s++
1%2=1
printf "Y"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-09-18
展开全部
因为:其实一维数组a[]="BYTE"等价于:a[0]="B",a[1]="Y",a[2]="T",a[3]="E", 能 整除除时,即*s%2=0为假,条件不成立,不输出。*s%2=1为真,条件成立输出!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询