二级c语言程序设计 - 爱问答

(爱问答)

二级c语言程序设计

‘A’的ASCLL码值为65

#included<stdio.h>

main()

{

char * s={"ABC"};


do{


printf("%d", * s%10);


}while(*s++);


}

为什么结果等于5670?请明白人帮我详细讲一下谢谢

你给出的程序两处有错,

#included<stdio.h> 应为 #include<stdio.h>

打印输出语句中含有全角字符,应为 printf("%d", *s%10);

程序的运行结果:

二级c语言程序设计

do{

      printf("%d",*s%10);

    } while(*s++);

这个循环是 先执行,后判断的,所以此循环要执行4次*s%10 :,依次输出余数为65%10(=5)、66%10(=6)、67%10(=7)、0%10(=0),即5670。

最后一次 *s++=0,循环条件不满足而停止。

 

指针s指向字符串"ABC"的起始地址,也就是'A'的内存地址,故第一次输出*s%10就是65%10=5,地址依次增加1,也就会连续输出567,注意c语言里以空格标志字符串结尾s结尾有一个空格(''),但不计入总长度),结尾的''空格的ASCII码为0,所以0%10=0。

因为A的ASCII码是65,65%10=5先输出“5”;

先判断*s的值是否为空,再运行++;

B的ASCII码是66,66%10=6再输出“6”;

C的ASCII码是67,67%10=7然后出输出“7”;

执行(*s++)

此时*s=‘C’不为空;继续;

s++后,*s=NULL;(NULL=0)

*s%10=0,输出“0”

此时*s=0;退出while;

结束

 

相关标签:c语言

下一篇:小程序一个页面有多个下拉框为什么能同时点击,该怎么区分开它只能单个点击啊

上一篇:访问页面时,当server收到请求之后,代码的执行顺序是怎样的。

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?