以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%cn",m);}

以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%cn",m);},第1张

第一句是定义一个主函数

第二句是定义字符型变量m

第三句是将B的Ascll码值66加上32赋给m,m的Ascll码值为98

第四句是将变量m以字符型输出

,Ascll码为98在Ascll字符编码表中对应字符b

故输出b

strcpy(a,"you");

//a在这里是作为二维数组的第0行的行首指针来看的,

//这个语句作用是将字符串"you"拷贝到以第0行的行首指针起始的存储空间,

//存储后,a[0][0]='y',a[0][1]='o',a[0][2]='u',a[0][3]='\0'

strcpy (a[1],"me");

//a[1]是二维数组的第1行的行首指针,

//这个语句作用是将字符串"me"拷贝到以第1行的行首指针起始的存储空间,

//存储后,a[1][0]='m',a[1][1]='e',a[1][2]='\0'

a[0][3]='&';

//这个语句将原先的a[0][3]='\0'又覆盖为'&'

所以最后:

a[0][0]='y',a[0][1]='o',a[0][2]='u',a[0][3]='&'

a[1][0]='m',a[1][1]='e',a[1][2]='\0'

那么将a起始地址中的数据以字符串格式输出,会输出到'\0'为止,

所以输出结果为:you&me

 for(i=0;i<3;i++)

 {

  strcpy(x[i],ch);

 }

的作用是把x[3][4]初始化成{"abc", "abc", "abc"},而

 for(i=0;i<3;i++)

 {

  cout<<&x[i][i];

 }

输出的其实是&x[0][0],&x[1][1],&x[2][2],&是取地址符,所以输出类型变为char的指针,而结果就是从当前地址开始,输出其后的字符,直到'\0'结束符为止,而'\0'结束符在字符串"abc"声明时,已经默认添加在末尾了,并在调用strcpy时,赋值给了x的三个二维数组(这也是为什么二维数组的元素个数是4而不是3的原因),所以你看到的结果是"abc""bc""c"

而当你去掉&符号,就变成了输出char类型数据,x[0][0],x[1][1],x[2][2],结果也就变成了'a''b''c'

一开始,s被赋值,为2

接着3次循环,

第一次,i= 0,%2求余为0做了else t= 5,a= 5,返回值8 (因为在内部调用,到了外面还是用a=3)

第二次,i= 1,a= 4,t= 4返回值8(外部a因前一次a++,所以为4)

第三次i= 2,a= 6,t= 6,返回值11(外部a因前一次a++,所以为5)[ 同理第一次使用else的时候a++了,所以不是5而是6了 ]

把三次返回值加起来,就是所输出s 29= 8+8+11+2

注意static的用法,区分局部和全局~

以上就是关于以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%c/n",m);}全部的内容,包括:以下程序运行后的输出结果是() main() {char m; m='B'+32; printf("%c/n",m);}、程序执行后的输出结果、以下程序运行后的输出结果是()等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9282014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存