问题 选择题

下列说法正确的是

[ ]

A.2008年诺贝尔化学奖授予在绿色荧光蛋白质的发现和研究方面作出贡献的科学家。绿色荧光蛋白质不能发生水解

B.三聚氰胺俗称“蛋白精”,分子结构见上图,它是一种新的蛋白质

C.乙酸与乙醇在一定条件下发生酯化反应,加入浓H2SO4有利于酯化反应的进行

D.工业上,石油分馏可以得到乙烯,因此,世界上已将乙烯的产量作为衡量一个国家石油化工发展水平的标志

答案

答案:C

单项选择题
问答题

【说明】 函数void rcr(int a[],int n,int k)的功能是:将数组a中的元素s[0]~9[n-1]循环向右平移k个位置。 为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达目标位置。在函数rcr中用如下算法实现:首先备份a[0]的值,然后计算应移动到a[0]的元素的下标 p,并将a[P]的值移至a[0];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至 a[p];依次类推,直到将a[0]的备份值移到正确位置。 若此时移动到位的元素个数已经为n,则结束;否则,再备份a[1]的值,然后计算应移动到a[1]的元素的下标p,并将a[p]的值移至9[1];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[1]的备份值移到正确位置。 若此时移动到位的元素个数已经为n,则结束;否则,从a[2]开始,重复上述过程,直至将所有的元素都移动到目标位置时为止。 例如,数组a中的6个元素如图1(a)所示,循环向右平移两个位置后元素的排列情况如图1(b)所示。

void rcr( int a[] ,int n,int k) { int i,j,t,temp,count; count =0;/*记录移动元素的次数*/ k=k%n; if( (1) ){/*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/i=0while(count<n) {j=i;t=i;temp =a[1]; /*备份a[i]的值*//*移动相关元素,直到计算出a[i]应移动到的目标位置*/while((j= (2) )! =i){ a[t]=a[j]; t= (3) ; count++;}(4) = temp;count ++;(5) ;} } }