《高級(jí)語(yǔ)言程序設(shè)計(jì)》模擬試題B卷-參考答案_第1頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》模擬試題B卷-參考答案_第2頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》模擬試題B卷-參考答案_第3頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》模擬試題B卷-參考答案_第4頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》模擬試題B卷-參考答案_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1頁(yè)共6頁(yè)武漢大學(xué)2009-2010學(xué)年度第2學(xué)期《高級(jí)語(yǔ)言程序設(shè)計(jì)(C語(yǔ)言)》學(xué)位考試模擬試卷B卷答案姓名:學(xué)號(hào):專業(yè):?jiǎn)雾?xiàng)選擇題:(選擇最合適的答案填空,每小題2分,共16分)(D)1、設(shè)有變量定義:intm=5,n=3;則執(zhí)行表達(dá)式((m+=2)>=7)||((n-=3)<10)后,m,n的值分別為______。5和05和37和07和3(D)2、已知各變量的類型說(shuō)明如下:

intk,a,b;

unsignedlongw=5;

doublex=1.42;

則以下不符合C語(yǔ)言語(yǔ)法的表達(dá)式是。w+=-2B.k=(a=2,b=3,a+b)C.a+=a-=(b=4)*(a=3)D.x%(-3)(B)3、下面程序段的運(yùn)行結(jié)果是。 #include<stdio.h> intmain() { inta=11,b=10,c=0; a/=b+(b&&c); printf(“%d\n”,a); return0; }0B.1C.1.1D.11(C)4、頭文件type1.h的內(nèi)容如下所示: #defineN5 #defineM1N*3 程序如下: #include“type1.h” #defineM2N*2 intmain() { inti; i=M1+M2; printf(“%d\n”,i); return0; } 則上述程序編譯后運(yùn)行的輸出結(jié)果是:10B.20C.25D.30(A)5、設(shè)有如下定義: strucksk {inta; floatb; }data; int*p; 若要使P指向data中的a域,正確的賦值語(yǔ)句是:p=&data.a;B.p=data.a;C.p=&a;D.*p=data.a(C)6、設(shè)有如下定義inta[]={10,11,12},*p=&a[0];則執(zhí)行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是。10,11,12B.11,12,12C.10,12,12D.11,11,12(B)7、表達(dá)式2.5+5%2-1/2*2的結(jié)果為_____。-2.53.54.05.0(A)8、設(shè)變量intx=10,y=20,則執(zhí)行x=x+y;y=x-y;x=x-y;后x為______。2030100程序閱讀與分析(共29分)9、分析以下程序執(zhí)行流程,寫出程序執(zhí)行結(jié)果。(本小題8分)#include<stdio.h> intmain() { intx=5; while(x++<10) { do{ printf("%6d",x++); }while(x<11); x--; }return0; }答案:67891010、分析以下程序執(zhí)行流程,寫出程序執(zhí)行結(jié)果。(本小題8分)#include<stdio.h>intmain() { intm=2;inta=3,b=5,c=0,d=0;intsbs(intx,inty,int*p1,int*p2);printf(“%6d\n”,sbs(a,b,&c,&d));printf(“%6d%6d%6d\n”,m,c,d);return0;}intsbs(intx,inty,int*p1,int*p2){ intm;*p1=x*x;*p2=y*y;m=*p1+*p2;returnm;}答案: 34 2 9 2511、下面程序輸入字符串s1的內(nèi)容,并把字符串s1的內(nèi)容復(fù)制到字符串s2中(不能使用strcpy庫(kù)函數(shù))。(本小題8分)#include<stdio.h>intmain(){ chars1[50],(1); inti=0;scanf(“%s’,(2));while((3)){(4);i++;}s2[i]=0;printf(“%s\t%s\n”,s1,s2);return0;}答案:(1)s2[50](2)s1或者&s1[0](3)s1[i]!=’\0’或者s1[i]!=0(4)s2[i]=s1[i]12、閱讀以下遞歸程序,分析該程序執(zhí)行流程。(本小題5分)#include<stdio.h>voidreverse(charch){ ch=getchar();if(ch!=’#’){reverse(ch);putchar(ch);}}intmain(){charc;reverse(c);return0;}在給定輸入字符串123ABCD%&XYZ#KK的前提下,執(zhí)行上述程序后,產(chǎn)生的輸出是什么?答案:ZYX&%DCBA321程序測(cè)試與分析(每小題5分,共10分)13、下面的程序功能是:讀入一個(gè)整數(shù)k(2≤k≤10000),輸出它的所有質(zhì)因子(即所有為素?cái)?shù)的因子)。例如,若輸入整數(shù):2310,則應(yīng)輸出:2、3、5、7、11。分析以下程序執(zhí)行流程,請(qǐng)指明錯(cuò)誤之處,如有必要可以簡(jiǎn)要說(shuō)明原因,并給出修正錯(cuò)誤的建議。(共3個(gè)錯(cuò)誤)#include“conio.h”#include“stdio.h”intIsPrime(intn);答案:改為intIsPrime(intn){ inti,m;m=1;for(i=2;i<n;i++)if!(n%i)答案:改為if(!(n%i)){m=0;break;}return(m);}intmain(){ intj;答案:改為intj,k;clrscr();printf(“\nPeaseenteranintegernumberbetween2and10000:”);scanf(“%d”,&k);printf(“\nTheprimefactor(s)of%dis(are):”,k);for(j=2;j<=k;j++)if((!k%j)&&(IsPrime(j)))printf(“\n%4d”,j);printf(“\n”);return0;}14、下面的程序的功能是:計(jì)算的是20!的結(jié)果;其中函數(shù)f()的功能是計(jì)算n的階乘。實(shí)際執(zhí)行下面的程序得到結(jié)果如下: 10!=24320結(jié)果不等于10的階乘的正確值3628800。請(qǐng)分析以下程序執(zhí)行流程,請(qǐng)指明錯(cuò)誤之處,如有必要可以簡(jiǎn)要說(shuō)明原因,并給出修正錯(cuò)誤的建議。#include<stdio.h>longf(shortintn){shortinttmp=1,i;答案:原因數(shù)據(jù)類型選取不正確,造成數(shù)據(jù)溢出。改為longinttmp=1,i;if(n>=2)for(i=1;i<=n;i++)tmp*=i;return(long)tmp;答案:可以改為returntmp;亦可不改}intmain(){shortinta;longb;a=10;b=f(a);printf("%d!=%ld\n",a,b);getchar();return0;}程序?qū)崿F(xiàn)題(每小題15分,共30分)15、設(shè)計(jì)一個(gè)函數(shù)insert(a,n,m);其中a為有序數(shù)組(按照元素取值由小到大排列),n為任意整數(shù),m為數(shù)組a中元素的個(gè)數(shù)。該函數(shù)將n按照順序插入到數(shù)組a相應(yīng)位置。例如,原數(shù)列a為6,8,10,12,14,則調(diào)用insert(a,9,5);后數(shù)組a為6,8,9,10,12,14。答案: voidinsert(int*a,intn,intm) { inti=0; while(a[i]<n&&i<m) i++; if(a[i]<n) a[m]=n; else {for(j=m;j>i;j--) a[j]=a[j-1]; a[i]=n; }分析程序執(zhí)行流程基本正確,流程圖和程序執(zhí)行流程基本一致為評(píng)分標(biāo)準(zhǔn)。16、設(shè)計(jì)一個(gè)函數(shù)index(s1,s2);如果字符串s1(子串)在字符串s2中出現(xiàn)過(guò),則該函數(shù)返回s1(子串)在字符串s2首次出現(xiàn)的位置號(hào);否則如果字符串s1(子串)在字符串s2中沒有出現(xiàn)過(guò),函數(shù)返回-1。例如s1為”ad”,s2為”sfad123ad”,則調(diào)用index(s1,s2);返回值為2。答案: intindex(char*s1,char*s2) { inti,j,k; for(i=0;s2[i]!=’\0’ for(j=i,k=0;s2[j]==s1[k];j++,k++) if(s1[k+1]==’\0’ returni; return-1; }分析程序執(zhí)行流程基本正確,流程圖和程序執(zhí)行流程基本一致為評(píng)分標(biāo)準(zhǔn)。算法設(shè)計(jì)(共15分)說(shuō)明:分析思路,說(shuō)明算法中的重要數(shù)據(jù)類型的定義;說(shuō)明算法中的模塊劃分;各模塊的功能、形式參數(shù)、函數(shù)返回值說(shuō)明;并用偽代碼、流程圖或其它方法描述子程序的執(zhí)行過(guò)程;不必完整寫出函數(shù)程序的代碼,完整代碼將不作為判分依據(jù)17、編寫一個(gè)程序,用戶輸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論