#include
void main()
{ int i,s,r[5],n,k;
char buffer[100001],*p;
float f[5];
n=0;
while ( gets(buffer) )
{ n++; p=buffer;
for ( i=0;i<5;i++ ) r[i]=0;
s=0;
while ( *p )
{ if ( ((*p)>='a' && (*p)<='z') || ((*p)>='A' && (*p)<='Z') )
{ s++;
switch ( *p )
{ case 'a':
case 'A': r[0]++; break;
case 'e':
case 'E': r[1]++; break;
case 'i':
case 'I': r[2]++; break;
case 'o':
case 'O': r[3]++; break;
case 'u':
case 'U': r[4]++; break;
}
}
p++;
}
for ( i=0;i<5;i++ ) { f[i]=r[i]; f[i]/=s; }
printf("case %d :\n",n);
i=0; printf("A : %.4f%%\n",f[i]*100);
i++; printf("E : %.4f%%\n",f[i]*100);
i++; printf("I : %.4f%%\n",f[i]*100);
i++; printf("O : %.4f%%\n",f[i]*100);
i++; printf("U : %.4f%%\n",f[i]*100);
printf("\n");
}
system("pause");
}
运行之后 k=4;
=操作符的结合性是从右到左,所以先计算(x%=k)-(k%=4),-操作符的结合性是从左到右,所以先计算x%=k,之后x=5,k=9,再计算k%=4,之后k=1
所以(x%=k)-(k%=4)的值就是5-1==4因此最终k=4;
根据优先级
先执行 x%k(x=x%k) 即x=14%9=5 (求余运算)
再 k%=4(k=k%4) 即 k=9%4=1
所以 k=5-1=4
选D
x和k都是变量,每执行一次赋值运算将改变其值
D
x%=k即x=x%k,所以x=5(14%9),
同理,k%=4的值是1(9%4),
于是,k=5-1=4
k=(x%=k)-(k%=4)等价于:k=(x=x%k)-(k=k%4)因此结果为:
4