| GZU521.COM学习网 |
|
●试题三 阅读下列函数说明和c代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数void rcr(int a[],int n,int k)的功能是:将数组a中的元素a[0]~a[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]的值移至a[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=0; while(count j=i;t=i; temp=a[i];/*备份a[i]的值*/ /*移动相关元素,直到计算出a[i]应移动到的目标位置*/ while((j= (2) )!=i){ a[t]=a[j]; t= (3) ; count++;~ed*y?w+ 7*U\fE+bO [此资料转贴于学习网IT认证计算机软件水平考试 ]http://www.Gzu521.Com~ed*y?w+ 7*U\fE+bO } (4) =temp;count++; (5) ; } } } ●试题四 阅读下面的要求,在填入适当的语句。 要求执行该段程序后能弹出一个对话框,对话框中有"确定"和"取消"按钮,以及一个带问号的图标,并要求第一个按钮为默认按钮。 private sub form_load() msgbox"要重新输入吗?","询问" end sub ●试题五 阅读以下应用说明及visual basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 本应用程序是一个乘法计算器,其运行窗口如图2所示。 在该界面中,"被乘数"、"乘数"以及"积"等文字为标签,相应的3个输入输出数据框为文本框,此外还有3个命令按钮。用户在"被乘数"和"乘数"相应的文本框内输入数据,再单击"运算"按钮,便能在"积"对应的文本框中看到相乘的结果;当用户单击"清除"按钮时,就会清除各文本框中的数据;当用户单击"关闭"按钮时就会关闭该窗口并退出应用程序。用户不能在"积"对应的文本框中输入数据。 【属性设置】 各个对象、有关的属性名以及需要修改的属性值设计如下: 【程序】 private sub cmdmultiply_click() txt3.text=trim(str$( (3) ))′加法运算获得和数 end sub private sub (4) () txt1.text=" "′空字符串赋值给文本框txt1的内容 txt2.text=" "′空字符串赋值给文本框txt2的内容 txt3.text=" "′空字符串赋值给文本框txt3的内容 end sub private sub cmdclose_click() (5) ′退出应用程序 end sub |
责任编辑:gzu521