2012年软件水平考试软件设计笔试考前练习(16)
& ?* j6 g6 ]4 y5 _$ A* Sunsigned fun6( unsigned num)
6 ^4 {+ [/ n- P8 @$ |8 E5 u {
' Q% W, } L3 | unsigned k=l;7 s3 g* Q$ r) s
do { k*= num;num/=10;}
0 s6 j" s9 _ y& {2 E+ D& B4 d, B: k while(num) ;
) b( D, N+ U# r- ]2 R0 T9 @ return k;
" @. D7 y. [, X8 r$ p }% ~! X& U$ H% ]3 e
main()
+ ]; P: X U1 N1 z; K {2 ?& H5 L# {* d5 e$ [9 B7 K! L
unsigned n=26;
b( _: {5 {$ ]2 Z printf("%d\n", fun6(n));6 D9 W: g: l$ @' G4 K% m# [
}- m! j9 ]# ]5 [+ u6 e
答案:【解】函数有一个形参num,循环前变量k置 1,循环中,表达式num是取num的个位,将num的个位值累乘于k中,然后num除以10。循环直至num为0结束,这是逐一求出num十进制表示的各位数字,并累乘于变量k的循环。函数最后返回k。函数fun6的功能是求整数的各位十进数字积。所以程序输出12。 |