问题 填空题

以下程序的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。请填空。
#include<stdio.h>
main()
long s,t,s1=10;
pfintf("\n.Please enter s:");
scanf("%1d",&s);
t=s%10;
while(s>0)
s=s/100;
t=______;
s1=s1*10;

printf("The result is:%1d\n",t);

答案

参考答案:s%10*s1+t

解析: 题目要求从低位开始取出长整型变量s中奇数位上的数,设s为7654321,所要去除的为7531。s在每次循环均除以100,因此它的作用是将本次循环所需要得到的奇数位数放到最末一位,而要获得该数仅需在此后将s对10取余,s1初始值为10,且在每次循环后均乘以10,因此可想到是为了将本次循环所获得的奇数位数放到已有数的“前面”,即将上一步所得之数乘以s1,由于是逐次获得奇次位数,所以每次还要加上t的原债。

选择题
单项选择题