有以下程序(注:字符a的ASCII码值为97): #include<stdio.h> main() {char *s={"abc"}; do {printf("%d",*s%10);++s;} while(*s); } 程序运行后的输出结果是( )。

admin2021-07-09  17

问题 有以下程序(注:字符a的ASCII码值为97):
#include<stdio.h>
main()
{char *s={"abc"};
do
{printf("%d",*s%10);++s;}
while(*s);
}
程序运行后的输出结果是(  )。

选项 A、abc
B、789
C、7890
D、979899

答案B

解析 字符指针s指向字符串“abc”,do...while()循环中首先将s指向的字符与10进行余操作,然后打印出余数,再将指针s向后移动一个位置,指向下一个字符;第一次循环,s指向的字符’a’的ASCII码为97,所以与10求余结果为7,输出7,同时s向后移动一位,指向字符’b’,while()判断条件为true;第二次循环s指向的字符’b’的ASCII码为98,与10求余结果为8,输出8;同时s向后移动一位,指向字符’t’,while()判断条件为ture;第二次循环;s指向的字符’c’的ASCII码为99,与10求余结果为9,输出9,同时s向后移动一位,指向空字符’\0’,空字符的的ASCII码为0,所以while()判断条件为false,循环结束,输出结果为789,答案选B。
转载请注明原文地址:https://jikaoti.com/ti/yUz0FFFM
0

最新回复(0)