问题 填空题

以下程序中,fun函数的功能是求3行4列二维数组每行元素的最大值。请填空。
void fun(int,int,int (*)[4], int *);
main()

int a[3][4]=12,41,36,28,19,33,15,27),3,27,19,1,b[3],i;
fun(3,4,a,B) ;
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");

void fun(int m,int n,int ar[][4],int *br)
int i,j,x;
for(i=0;i<m;i++)

x=ar[i][0];
for(i=0;j<n;j++) if(x<ar[i][j]) x=ar[i][j];
______=X;

答案

参考答案:br[i]或*(br+i)

解析: 求最大值算法要求输入的一般是一系列数,例如一个数组,而输出只有一个值。计算时通常的做法是,首先将这一系列数的笫1个值保存到结果变量中,然后用一个指针或循环变量从头(或从第2个值)至尾遍历这一系列数,每次比较结果变量和被遍历的值,如果该值比结果大,则将该值保存到结果中。本题中,3行4列二维数组a显然是算法的输入值,而传给函数fun()的3和4在函数中起到限制循环次数的作用,所以它们代表输入数据的行列数.而传递给函数的一维数组b即没有初始化,最后又要输出它,所以数组b肯定是用来保存每行的最大值。在函数中是一个二重循环,外循环首先将ar[i][0]赋给x,然后内循环中比较x和ar[il刚,若x比较小就让 x=ar[i][j],这就说明x是保存结果的临时变量.最后应该将x的值输出到数组b中,也就是形参br的相应位置。故在空格处应该填的内容为br[i]或者写成指针方式*(br+i)。

单项选择题
单项选择题

2009年上半年,北京市宣武区完成全社会固定资产投资29.7亿元,比上年同期下降20.4%,降幅比1-5月缩小了1.1个百分点。其中,城镇固定资产投资12.6亿元,同比增长67.5%,占全社会固定资产投资的比重为42.4%;房地产开发投资17.1亿元,同比下降42.6%。上半年,全区销售商品房26.3万平方米,比上年同期增长4.5倍;销售额达到44.1亿元,比上年同期增长3.7倍;销售商品住宅2088套,比上年同期增长8.5倍。
上半年,全区全社会固定资产投资完成29.7亿元,占全年计划的31.3%。全年投资计划中,区政府投资为44.3亿元,上半年仅完成6.6亿元,完成年度计划的14.9%。
上半年,全区财政收入累计完成22.5亿元,比上年同期下降17.9%,降幅比1-5月缩小8.8个百分点。6月份,全区实现财政收入45亿元,同比增长59.5%,主要原因在于企业所得税大幅上升1.7倍。上半年,主要税种依然呈下降趋势,但与1.5月相比,降幅均有缩小。其中,企业所得税完成6.8亿元,同比下降32.8%;营业税完成8.6亿元,同比下降12.8%;增值税完成1.3亿元,同比下降21.3%。
上半年,全区财政累计支出20.9亿元,比上年同期增长40.2%。教育、社会保障和就业以及城乡社区事务支出占财政支出的比重分别为14.1%、21.7%和36.6%,增速分别为23.5%、33.1%和106.8%。
上半年,全区居民人均可支配收入累计13805.9元,比上年同期增长9.7%。全区居民人均消费性支出8798.2元,比上年同期增长11.4%。食品、教育文化娱乐服务和衣着的支出依次居前三位,分别占人均消费性支出的38.2%、12.7%和11.1%。

2009年上半年,宣武区城镇固定资产投资所占比重比上年同期提高了多少

A.65.7%

B.89.3%

C.22.3个百分点

D.42.3个百分点