是B。
把所有小写的d转换成大写的D。
那段程序中的那句少了单引号 ,应该是
if(*s==t)*s=t-'a' + 'A' ;
这个函数的作用就是扫描字符串,把指定的字符转大写。
因为调用的时候,第二个参数 c中存储的是 'd'
因此就是把其中所有的'd'转大写了。
扩展资料:
函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如: printf("%d",max(x,y))即是把max调用虚银的返回值又作为printf函数的实参来使用的。
在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是销哪指对实参表中各量是自左至右使用呢,还是自右至左使用。对此,各系统的规定不一定相同。
参考资料来源:百度百科-函数调用亏誉码
楼主好!我给你分析分析啊!
首先,给你的程序补充完整了,如下:
#include <stdio.h>
void ss(char *s,char t)
{
while(*s)
{
if(*s==t)
*s=t-'a'+'A'
s++
}
}
void main()
{
char str1[100]="abcddfefdbd",c='d'
ss(str1,c)
printf("%s\n",str1)
}
数出的结果是 abcDDfefDbD
由数出的结果楼主应该知道,这个程序的功能是把字符串中的小写d改为大写D
过程:
调用函数ss(str1,c)既把字符数组的首地址str1赋值给形参s,这样s也就指向了数组str1的首地址。
while(*s)当数组元亮孝素到最后一个时,下一次就跳出循环;
if(*s==t)
*s=t-'a'+'A'既当数组中的元素等于小写d时,执行*s=t-'a'+'A'既转化为ASCII代码计算,然后再赋值给数组元素,既裤含用大写的D赋值给数组元素。
然后执行s++指向胡键笑下一个数组元素
重复执行上面的转换,到最后一个元素的下一个则跳出循环。
最后输出转换后的数组!
楼主懂了吗?
嘿嘿!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)