c语言-求代码输出的结果

2024年11月29日 17:21
有4个网友回答
网友(1):

#include /*声明输入输出函数*/
#include /*声明字符和字符串函数*/
void main() /*主函数*/
{ char *s1="AbDeG"; /*声明一个字符串,并使s1指向字符串的首字母的地址*/
char *s2="Abdeg"; /*声明另一个字符串,并使s2指向字符串的首字母的地址*/
s1+=2;s2+=2; /*使指针s1和指针s2,分别向后移动两个字符,这样分别指向D和d*/
printf("%d\n",strcmp(s1,s2));/*strcom(s1,s2)是字符串比较函数*/
/*当s1=s2时,函数值为0;当s1>s2时,函数值为一个正整数,函数值为一个正整数;*/
/*当s1 /*如果第一个字母相同,就看下一个字母的ASKII编码。题目中由于大写的英文字母*/
/*的ASCII编码小于小写的英语字母的ASCII编辑,既D的ASCII编码小于d的ASCII编码,*/
/*所以输出一个负整数。
}

网友(2):

输出:-1

s1 += 2表示将字符串s1的首地址向后移两个单位,相当于截去了前两个字符,因为s1是指针。
s2 += 2同理。

故 执行以上两句后
s1 = "DeG";
s2 = "dEg";

strcmp(s1,s2);是比较两个字符串的大小,即对应的ASCIi码的大小,小写字母的ASCII大于大写字母,所以 s1 < s2 ,strcmp(s1,s2)返回-1。如果s1 > s2 ,返回1;如果s1 == s2,返回0。

网友(3):

输出是-1
strcmp函数是 当s1字符串中小写字母的值要比大写字母要大
s1+=2是DeG 也就是68 101 71
s2+=2是dEg 也就是 100 69 103
显然 s1 小于 s2

网友(4):

负数!