有以下程序 #inc1ude<stdio.h> main() { char*s={"ABC"}; do { printf("%d",*s%10); s++;

admin2009-09-28  17

问题 有以下程序        #inc1ude<stdio.h>        main()        {  char*s={"ABC"};           do           {  printf("%d",*s%10);  s++;           }  while(*s);           }          注意字母A的ASCII码值为65。程序运行后的输出结果是______。

选项 A、5670
B、656667
C、567
D、ABC

答案C

解析 本题考查的是do-while语句的使用,do-while执行的过程是当while后面—对括号中表达式的值为非0时,转去执行循环体,当值为0时,退出循环。本题定义了—个指针变量s,并使得s指向字符串"ABC",的首地址,即把字符A的地址赋给s,因为do-while语句是先执行循环体再进行循环条件的判断,因此先执行printf语句,“s%10”是s对10的取模运算,第—字符A的ASCII码为65,故“65%10”取模运算结果为5,因此输出5,接着执行s++,s指向字符串的下—个字符,当字符串中字符没有循环完时,继续执行do-while语句,以此类推,B和C的分别为6和7,因此,选项C是正确的。
转载请注明原文地址:https://kaotiyun.com/show/q9Wp777K
0

最新回复(0)