版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第10/10頁c語言參考題目填空題代碼填空如果只提供加減乘除的基本運(yùn)算能力,你能實(shí)現(xiàn)求平方根嗎?可以的!先隨便猜一個(gè)根,用它試除目標(biāo)數(shù)字,如果結(jié)果恰好等于所猜的數(shù),則問題解決。否則用結(jié)果與所猜的數(shù)字的平均值再去試除….假設(shè)待開方的數(shù)字為doublea; doublet=a/2; doublet2; for(;;){ t2=a/t; if(fabs(t-t2)<0.001)break; t=_________; }答案:(t+t2)/2注意:(t+t2)/2.0,(t2+t)*0.5都算對(duì)的。代碼填空下列代碼把一個(gè)串p復(fù)制到新的位置q。請(qǐng)?zhí)顚懭鄙俚恼Z句; char*p="abcde"; char*q=(char*)malloc(strlen(p)+1); for(inti=0;_____________;i++)q[i]=p[i];參考答案:i<=strlen(p)注意:關(guān)鍵是<=不能寫成<,但i<strlen(p)+1是對(duì)的。代碼填空“考拉茲猜想”(又稱3n+1猜想、角谷猜想、哈塞猜想、烏拉姆猜想或敘拉古猜想)和“哥德巴赫猜想”一樣目前還沒有用數(shù)學(xué)方法證明其完全成立。在1930年,德國漢堡大學(xué)的學(xué)生考拉茲,曾經(jīng)研究過這個(gè)猜想,因而得名。在1960年,日本人角谷靜夫也研究過這個(gè)猜想。該猜想的敘述十分簡單:從任何一個(gè)正整數(shù)n出發(fā),若是偶數(shù)就除以2,若是奇數(shù)就乘3再加1,如此繼續(xù)下去,經(jīng)過有限步驟,總能得到1。例如:17-52-26-13-40-20-10-5-16-8-4-2-1該猜想雖然沒有完全證明,但用計(jì)算機(jī)驗(yàn)證有限范圍的數(shù)字卻十分容易。以下是驗(yàn)證的代碼,請(qǐng)補(bǔ)全缺少的部分。 for(intn=2;n<=10000;n++) { intm=n; for(;;) { if(____________) m=m/2; else m=m*3+1; if(m==1) { printf("%dok!\n",n); break; } } };參考答案:m%2==0注意:(m%2)==0當(dāng)然也正確。代碼填空1+3=4,1+3+5=9,1+3+5+7=16它們的結(jié)果都是平方數(shù)。這是偶然的巧合嗎?下面代碼驗(yàn)證對(duì)于累加至1000以內(nèi)的情況都成立。試完善之。 intn=1; for(inti=1;i<1000/2;i++) { n+=2*i+1; intm=______________; if(m*m!=n) { printf("加至%d時(shí)不成立!\n",2*i+1); break; } }參考答案:i+1代碼填空給定一個(gè)串,例如“abcdefg”,我們希望求出它的反轉(zhuǎn)串,即:“gfedcba”。下列代碼實(shí)現(xiàn)反轉(zhuǎn),請(qǐng)補(bǔ)充空白的部分。 charp[]="abcdef"; for(inti=0;__________________;i++) { chart=p[i]; p[i]=p[strlen(p)-1-i]; p[strlen(p)-1-i]=t; }參考答案:i<strlen(p)/2注意:不能寫成<=代碼填空生活中人們往往靠直覺來進(jìn)行粗略的判斷,但有的時(shí)候直覺往往很不可靠。比如:如果你們班有30名同學(xué),那么出現(xiàn)同一天生日的概率有多大呢?你可能不相信,這個(gè)概率高達(dá)70%左右。以下的程序就是用計(jì)算機(jī)隨機(jī)模擬,再統(tǒng)計(jì)結(jié)果。仔細(xì)閱讀代碼,補(bǔ)全空白的部分。#defineN30 inta[N]; srand(time(NULL)); intn=0; for(intk=0;k<10000;k++) { for(inti=0;i<N;i++) a[i]=rand()%365; booltag=false;//假設(shè)沒有相同 for(i=1;i<N;i++) { for(intj=0;j<i;j++) { if(a[i]==a[j]) { tag=true; break; } } _____________________; } if(tag)n++; } printf("%f\n",1.0*n/10000*100);答案:if(tag)break當(dāng)然,if(tag==true)if(tag!=false)都是可能的寫法。代碼填空假設(shè)a,b,c是3個(gè)互不相等的整數(shù)。下列代碼取出它們中居中的數(shù)值,記錄在m中。其中的swap()函數(shù)可以交換兩個(gè)變量的值。請(qǐng)完善代碼。 if(a>b)swap(&a,&b); if(b>c)swap(&b,&c); ______________________; intm=b;參考答案:if(a>b)swap(&a,&b)注意:a>b也可寫為b<aswap(&a,&b)寫為:swap(&b,&a)也是對(duì)的。代碼填空給定一個(gè)串,例如“aabbbcddddkkkmmmmaakkkk”我們希望去掉連續(xù)的重復(fù)字母,得出串:“abcdkmak”,下面代碼實(shí)現(xiàn)了該功能,請(qǐng)完善之。 char*p="aabbbcddddkkkmmmmaakkkk"; charbuf[100]; char*q=p; inti=0; for(;*q;) { if(___________||*q!=*(q-1)) { buf[i++]=*q; } q++; } buf[i]='\0'; printf("%s\n",buf);參考答案:q==p注意:p==q也是正確的代碼填空口袋中有5只紅球,4只白球。隨機(jī)從口袋中取出3個(gè)球,則取出1個(gè)紅球2個(gè)白球的概率是多大?類似這樣的數(shù)學(xué)問題,在計(jì)算的時(shí)候往往十分復(fù)雜。但如果通過計(jì)算機(jī)模擬這個(gè)過程,比如進(jìn)行100000次取球模擬,統(tǒng)計(jì)一下指定情況出現(xiàn)的次數(shù)對(duì)計(jì)算機(jī)來說是方便且快速的。同樣,這個(gè)原理也適用于像天氣預(yù)報(bào)這樣復(fù)雜的系統(tǒng)過程。以下的程序就是用于解決取球概率問題的。仔細(xì)閱讀代碼,補(bǔ)全空白的部分。 srand((unsigned)time(NULL)); intn=0; for(inti=0;i<100000;i++) { charx[]={1,1,1,1,1,2,2,2,2}; inta=0;//取到的紅球的數(shù)目 intb=0;//取到的白球的數(shù)目 for(intj=0;j<3;j++) { intk=rand()%(9-j); if(x[k]==1) a++; else b++; _______________________; } if(a==1&&b==2)n++; } printf("概率=%f\n",n/100000.0*100);答案:x[k]=x[9-j-1]當(dāng)然,9-1-j9-(j+1)9-(1+j)都是可能的寫法。代碼填空下列代碼把一個(gè)二進(jìn)制的串轉(zhuǎn)換為整數(shù)。請(qǐng)?zhí)顚懭鄙俚恼Z句; char*p="1010110001100"; intn=0; for(inti=0;i<strlen(p);i++) { n=__________________; } printf("%d\n",n);參考答案:n*2+(p[i]-'0')注意:加法減法的順序可以靈活,乘法可以交換,也可以n+n;p[i]可以寫為*(p+i)'0'可以寫為48代碼填空數(shù)列:Sn=1+1/2+1/3+…1/n被稱為調(diào)和數(shù)列,它“剛好”是不收斂的。這個(gè)數(shù)列和增長的速度是驚人緩慢的。下列代碼求出n至少為多大,才能保證Sn>m。試完善之。 doublem=20; doublex=1; inti=2; while(x<m) { x+=______________; } printf("%d",i);參考答案:1.0/i++注意:1.0錯(cuò)寫為1則扣除3分1.0寫為1d或1f或(double)1或(float)1都可以算正確代碼填空仍一枚硬幣,正面和反面向上的概率都是0.5,但多次仍硬幣,總會(huì)出現(xiàn)連續(xù)多次同一面的情況。我們把每次的實(shí)驗(yàn)結(jié)果記錄下來,形成一個(gè)串(0,1分別代表正面、反面向上)。下面的程序統(tǒng)計(jì)出0或1最大連續(xù)出現(xiàn)的次數(shù)。試完善之。 char*p="100111000100101010001010111100000000100001111111000000"; intlen=strlen(p); intmax_k=1; intk=1; for(inti=1;i<len;i++) { if(p[i]==p[i-1]) k++; else { _________________________; k=1; } } printf("%d\n",max_k);參考答案:if(k>max_k)max_k=kif(max_k<k)也是正確的代碼填空形如:“abccba”,“abcba”的串稱為回文串,下列代碼判斷一個(gè)串是否為回文串。請(qǐng)補(bǔ)充空白的部分。 charbuf[]="abcde11edcba"; intx=1; for(inti=0;i<strlen(buf)/2;i++) if(___________________) { x=0; break; } printf("%s\n",x?"是":"否");參考答案:buf[i]!=buf[strlen(buf)-1-i]注意:!=前后交換可以。減法交換可以buf[i]等價(jià)于*(buf+i)A!=B等價(jià)于!(A==B)代碼填空計(jì)算3個(gè)A,2個(gè)B可以組成多少種排列的問題(如:AAABB,AABBA)是《組合數(shù)學(xué)》的研究領(lǐng)域。但有些情況下,也可以利用計(jì)算機(jī)計(jì)算速度快的特點(diǎn)通過巧妙的推理來解決問題。下列的程序計(jì)算了m個(gè)A,n個(gè)B可以組合成多少個(gè)不同排列的問題。請(qǐng)完善它。intf(intm,intn){ if(m==0||n==0)return1; return_______________________;}答案:f(m-1,n)+f(m,n-1)當(dāng)然,加法交換是可以的代碼填空因數(shù)分解是十分基本的數(shù)學(xué)運(yùn)算,應(yīng)用廣泛。下面的程序?qū)φ麛?shù)n(n>1)進(jìn)行因數(shù)分解。比如,n=60,則輸出:2235。請(qǐng)補(bǔ)充缺失的部分。voidf(intn){ for(inti=2;i<n/2;i++) { ____________________ { printf("%d",i); n=n/i; } } if(n>1)printf("%d\n",n);}參考答案:while(n%i==0)注意:for(;n%i==0;)邏輯上也是正確的,但中間出現(xiàn)分號(hào),與說明相違。代碼填空下列代碼實(shí)現(xiàn)把一個(gè)串“輪換”拷貝。既是:把"abcdef"拷貝為:"bcdefa"。請(qǐng)補(bǔ)充缺少的語句。 char*p="abcdef"; char*q=(char*)malloc(strlen(p)+1); for(inti=0,intlen=strlen(p);i<len-1;i++) q[i]=p[i+1]; q[len-1]=p[0]; _____________________; printf("%s\n",q);參考答案:q[len]='\0'注意:q[len]=0也是對(duì)的。當(dāng)然:q[len]寫為:q[strlen(p)]也對(duì)代碼填空窮舉法是計(jì)算機(jī)解決某些問題的重要手段。為了估算可能性的數(shù)目,經(jīng)常需要計(jì)算組合或排列的數(shù)目,下面的代碼輸出從m個(gè)物體中任取出n個(gè)物體的不同方案的數(shù)目(此處假設(shè):m,n>1且m>=n)。試完善之。intf(intm,intn){ inta=1; intm1=m; ______________ a*=m1--; intb=1; while(n>1) b*=n--; returna/b;}參考答案:while(m1>m-n)當(dāng)然,while(m1>=m-n+1)也是對(duì)的。代碼填空任意給定一個(gè)4位數(shù)(不能所有位都相同),比如:3278,重新組合出最大數(shù):8723,再重新組合出最小數(shù):2378,相減,得到新的4位數(shù)(如不足則補(bǔ)0),重復(fù)這個(gè)過程,最后必然得到一個(gè)數(shù)字:6174。這個(gè)現(xiàn)象被稱為:數(shù)字黑洞。下面的函數(shù)實(shí)現(xiàn)由給定的4位整數(shù)求出下一個(gè)整數(shù)的功能。請(qǐng)完善之。intf(intn){ intN[4]; for(inti=0;i<4;i++) { N[3-i]=n%10; ___________________; } for(i=0;i<3;i++) for(intj=0;j<3-i;j++) if(N[j]>N[j+1]) { intt=N[j+1]; N[j+1]=N[j]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版勞動(dòng)合同法下企業(yè)勞動(dòng)關(guān)系管理合同規(guī)范與案例分析3篇
- 2025版金融科技共同出資設(shè)立公司投資協(xié)議3篇
- 2025年版大型展會(huì)保安人員勞務(wù)派遣合作協(xié)議3篇
- 2024年石子行業(yè)市場調(diào)研與分析服務(wù)合同3篇
- 2024年金融服務(wù)提供商技術(shù)服務(wù)合同
- 2024年項(xiàng)目融資借款合同具體條款
- 2024年航空航天產(chǎn)業(yè)投資合作協(xié)議范本示例3篇
- 2024年破樁頭工程分包協(xié)議模板精準(zhǔn)版版B版
- 2024年財(cái)務(wù)借款還款合同
- 2025版綠色家居空調(diào)采購、安裝與環(huán)保認(rèn)證合同3篇
- 重癥患者的營養(yǎng)支持
- 防范非法金融宣傳
- 咨詢經(jīng)理招聘面試題與參考回答(某大型國企)2025年
- 小學(xué)語文骨干教師專題講座《自由閱讀-開啟快樂的讀書之門》
- 南京審計(jì)大學(xué)金審學(xué)院《中級(jí)財(cái)務(wù)會(huì)計(jì)(上)》2022-2023學(xué)年第一學(xué)期期末試卷
- 2023年電信運(yùn)營商液冷技術(shù)白皮書
- 我和我的祖國拼音版
- 護(hù)理穴位貼敷課件
- 輸血科(血庫)儀器設(shè)備使用、保養(yǎng)記錄表
- 《Statistics-1歷年考試真題分類匯編》
- 青霉素發(fā)酵工藝
評(píng)論
0/150
提交評(píng)論