有以下程序: #include<stdio.h> void ss(char *s,char t) { while(*s) { if(*s==t) *s=t-’a’+’A’; s++; }

admin2013-02-23  29

问题 有以下程序:    #include<stdio.h>    void ss(char *s,char t)    {  while(*s)       {  if(*s==t)    *s=t-’a’+’A’;          s++;       }    }    main()    {  char strl[20]="abcddfefdbd",c=’d’;       ss(strl,c);       Printf("%s\n",strl);    }    程序运行后的输出结果是(    )。

选项 A、ABCDDEFEDBD
B、abcDDfefDbD
C、abcAAfefAbA
D、Abcddfefdbd

答案2

解析 对字符数据进行算术运算相当于对它们的ASCII码进行算术运算。程序中的t- ’a’+’A’是将字符变量t中的字符转换为相对应的大写字母。语句if(*s==t)*s=t-’a’+’A’;首先判断s所指元素是否与t中的字符(’d’)相同,若相同则转换为相对应的大写字母,否则 s++,s指向数组中的下一个元素。
转载请注明原文地址:https://kaotiyun.com/show/5mJp777K
0

最新回复(0)