问题 问答题

[说明1]
函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。
所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如,28的因子为1,2,4,7,14,而28=1+2+4+7+14,因此28是“完全数”。
[C函数1]
int factors(int n)
int i,s;
for(i=1,s=0;i<=n/2;i++)
if(n%i=0) (1) ;
if( (2) )return 0;
rerurn-1;

[说明2]
函数int maxint(int a[],int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。
[C函数2]
int maxint(int a[],int k)
int t;
if( (3) ) return (4)
t=maxint(a+1, (5) );
return(a[0]>t)a[0]:t;

答案

参考答案:s+=i (2) n==s (3) k==1或k-1==0 (4) a[0]或*a或a[k-1] (5) k-1或--k

解析: 对于函数1,是判断整数n(n>=2)是否为完全数。首先用for循环求该整数的所有因子之和,所以(1)填“s+=i”。若其和等于整数本身,则为完全数,返回值为0,则(2)填“n==s”;否则返回值为-1。
对于函数2,是用递归方法找出数组中的最大元素。该递归的出口条件为k=1,即(3)填“k==1”或“k-1==0”;只有一个数时,它本身就是最大的,(4)填“a[0]”或“*a”或“a[k-1]”;对于多个数的情况,在剩下的k-1个元素中找到最大的,并与首元素值比较,返回最大的一个,所以(5)填“k-1”或“-k”。

单项选择题

某英国籍工作人员2008年12月底受邀来华,任职于境内某上市的外商投资企业工作,2009年 10月20日离华回国。2009年该外籍人员取得以下收入:
(1)境内工作期间每月取得英国的任职单位支付的工资、薪金5000元,我国的企业支付的工资、薪金8000元,每月还取得我国企业支付的非现金形式的住房补贴和伙食补贴2000元,取得合理的语言培训费为300元。另外2009年五月份,由于回国探亲,国内企业支付探亲费2500元;
(2)2009年3月该外籍人员以15万元购入一个亏损企业的“打包债权”20万元,其中甲欠亏损企业10万元,乙欠亏损企业6万元,丙欠亏损企业4万元。2009年4月该外籍人员从甲债务人处追回款项8万元;
(3)该外籍人员于2009年3月份在中国出版小说一本,取得稿酬15000元。该书6月至8月被国内某晚报连载,6月份取得稿费1000元,7月份取得稿费1000元,8月份取得稿费1000元。因该书畅销,10月份出版社增加印数,又取得追加稿酬3000元;
(4)2009年1-6月份该外籍人员出租其在英国的一辆汽车给当地居民使用,月租金收入3500元,国外未缴纳税款。假定不考虑除个人所得税以外的其他税费;
(5)2009年9月份该外籍人员从任职的我国外资企业取得股息所得20000元;
(6)2009年10月份该外籍人员将自己的一部小说手稿原件拍卖取得50000元,从中拿出15000元通过希望工程基金会捐给希望工程。
要求:按下列顺序回答问题:

该外籍人员手稿原件拍卖所得在我国应缴纳的个人所得税为( )元。

A.5600

B.5000

C.2800

D.8000

单项选择题