若有如下程序: main() {char a[]={"1234"};int i,t=0; for(i=0;a[i]>=’0’&&a[i]<=’9’;i+=2) t=10*t+a[i]一-’0’; printf("%d\n’,t

admin2013-02-23  26

问题 若有如下程序:    main()    {char a[]={"1234"};int i,t=0;    for(i=0;a>=’0’&&a<=’9’;i+=2)    t=10*t+a一-’0’;    printf("%d\n’,t);}    则程序运行后的输出结果是(  )。

选项 A、13
B、1234
C、24
D、123

答案1

解析 程序中首先以字符串常量定义并初始化了一个字符数组a,此时数组a包含5个元素{’1’,’2’,’3’,’4’,’\0’},然后定义了一个变量t,并初始化为0。接下来是一个for循环,循环变量i从0开始每次递增2,循环条件a是一个数字字符。因为a[0]、a[2]分别是数字字符’1’、’3’而a[4]不是,所以循环体执行了两次,第一次执行前t为0,执行后t=10*t+a-’0’=10*0+’1’-’0’=1,所以第二次执行结果为t=10*t+a-’0’=10*1+’3’-’0’=13。程序运行后的输出结果是13,本题选A。
转载请注明原文地址:https://kaotiyun.com/show/h4Pp777K
0

最新回复(0)