版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第10/10頁c語言參考題目填空題代碼填空如果只提供加減乘除的基本運算能力,你能實現(xiàn)求平方根嗎?可以的!先隨便猜一個根,用它試除目標數(shù)字,如果結(jié)果恰好等于所猜的數(shù),則問題解決。否則用結(jié)果與所猜的數(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都算對的。代碼填空下列代碼把一個串p復制到新的位置q。請?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是對的。代碼填空“考拉茲猜想”(又稱3n+1猜想、角谷猜想、哈塞猜想、烏拉姆猜想或敘拉古猜想)和“哥德巴赫猜想”一樣目前還沒有用數(shù)學方法證明其完全成立。在1930年,德國漢堡大學的學生考拉茲,曾經(jīng)研究過這個猜想,因而得名。在1960年,日本人角谷靜夫也研究過這個猜想。該猜想的敘述十分簡單:從任何一個正整數(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該猜想雖然沒有完全證明,但用計算機驗證有限范圍的數(shù)字卻十分容易。以下是驗證的代碼,請補全缺少的部分。 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當然也正確。代碼填空1+3=4,1+3+5=9,1+3+5+7=16它們的結(jié)果都是平方數(shù)。這是偶然的巧合嗎?下面代碼驗證對于累加至1000以內(nèi)的情況都成立。試完善之。 intn=1; for(inti=1;i<1000/2;i++) { n+=2*i+1; intm=______________; if(m*m!=n) { printf("加至%d時不成立!\n",2*i+1); break; } }參考答案:i+1代碼填空給定一個串,例如“abcdefg”,我們希望求出它的反轉(zhuǎn)串,即:“gfedcba”。下列代碼實現(xiàn)反轉(zhuǎn),請補充空白的部分。 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注意:不能寫成<=代碼填空生活中人們往往靠直覺來進行粗略的判斷,但有的時候直覺往往很不可靠。比如:如果你們班有30名同學,那么出現(xiàn)同一天生日的概率有多大呢?你可能不相信,這個概率高達70%左右。以下的程序就是用計算機隨機模擬,再統(tǒng)計結(jié)果。仔細閱讀代碼,補全空白的部分。#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;//假設沒有相同 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當然,if(tag==true)if(tag!=false)都是可能的寫法。代碼填空假設a,b,c是3個互不相等的整數(shù)。下列代碼取出它們中居中的數(shù)值,記錄在m中。其中的swap()函數(shù)可以交換兩個變量的值。請完善代碼。 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)也是對的。代碼填空給定一個串,例如“aabbbcddddkkkmmmmaakkkk”我們希望去掉連續(xù)的重復字母,得出串:“abcdkmak”,下面代碼實現(xiàn)了該功能,請完善之。 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只白球。隨機從口袋中取出3個球,則取出1個紅球2個白球的概率是多大?類似這樣的數(shù)學問題,在計算的時候往往十分復雜。但如果通過計算機模擬這個過程,比如進行100000次取球模擬,統(tǒng)計一下指定情況出現(xiàn)的次數(shù)對計算機來說是方便且快速的。同樣,這個原理也適用于像天氣預報這樣復雜的系統(tǒng)過程。以下的程序就是用于解決取球概率問題的。仔細閱讀代碼,補全空白的部分。 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]當然,9-1-j9-(j+1)9-(1+j)都是可能的寫法。代碼填空下列代碼把一個二進制的串轉(zhuǎn)換為整數(shù)。請?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ù)列,它“剛好”是不收斂的。這個數(shù)列和增長的速度是驚人緩慢的。下列代碼求出n至少為多大,才能保證Sn>m。試完善之。 doublem=20; doublex=1; inti=2; while(x<m) { x+=______________; } printf("%d",i);參考答案:1.0/i++注意:1.0錯寫為1則扣除3分1.0寫為1d或1f或(double)1或(float)1都可以算正確代碼填空仍一枚硬幣,正面和反面向上的概率都是0.5,但多次仍硬幣,總會出現(xiàn)連續(xù)多次同一面的情況。我們把每次的實驗結(jié)果記錄下來,形成一個串(0,1分別代表正面、反面向上)。下面的程序統(tǒng)計出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”的串稱為回文串,下列代碼判斷一個串是否為回文串。請補充空白的部分。 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]等價于*(buf+i)A!=B等價于!(A==B)代碼填空計算3個A,2個B可以組成多少種排列的問題(如:AAABB,AABBA)是《組合數(shù)學》的研究領(lǐng)域。但有些情況下,也可以利用計算機計算速度快的特點通過巧妙的推理來解決問題。下列的程序計算了m個A,n個B可以組合成多少個不同排列的問題。請完善它。intf(intm,intn){ if(m==0||n==0)return1; return_______________________;}答案:f(m-1,n)+f(m,n-1)當然,加法交換是可以的代碼填空因數(shù)分解是十分基本的數(shù)學運算,應用廣泛。下面的程序?qū)φ麛?shù)n(n>1)進行因數(shù)分解。比如,n=60,則輸出:2235。請補充缺失的部分。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)分號,與說明相違。代碼填空下列代碼實現(xiàn)把一個串“輪換”拷貝。既是:把"abcdef"拷貝為:"bcdefa"。請補充缺少的語句。 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也是對的。當然:q[len]寫為:q[strlen(p)]也對代碼填空窮舉法是計算機解決某些問題的重要手段。為了估算可能性的數(shù)目,經(jīng)常需要計算組合或排列的數(shù)目,下面的代碼輸出從m個物體中任取出n個物體的不同方案的數(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)當然,while(m1>=m-n+1)也是對的。代碼填空任意給定一個4位數(shù)(不能所有位都相同),比如:3278,重新組合出最大數(shù):8723,再重新組合出最小數(shù):2378,相減,得到新的4位數(shù)(如不足則補0),重復這個過程,最后必然得到一個數(shù)字:6174。這個現(xiàn)象被稱為:數(shù)字黑洞。下面的函數(shù)實現(xiàn)由給定的4位整數(shù)求出下一個整數(shù)的功能。請完善之。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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)村自建房勞務承包農(nóng)村民宿建設承包合同
- 二零二五年度大數(shù)據(jù)分析服務合同解除協(xié)議3篇
- 2025年度企業(yè)員工借調(diào)與創(chuàng)新創(chuàng)業(yè)支持合同3篇
- 二零二五年度股份制企業(yè)股東間短期借款合同3篇
- 2025年度網(wǎng)絡安全事故應急處理與恢復服務合同3篇
- 2025年度年度養(yǎng)牛產(chǎn)業(yè)養(yǎng)殖技術(shù)培訓與合作合同3篇
- 二零二五年度農(nóng)村房屋買賣合同-農(nóng)村土地綜合整治項目
- 2025年度電梯安全檢查與維修保養(yǎng)合同3篇
- 新型美容院入股合同模板(2025年度)3篇
- 2025年度高端游戲引擎軟件許可與定制化服務合同3篇
- 《陸上風電場工程設計概算編制規(guī)定及費用標準》(NB-T 31011-2019)
- 我和我的祖國拼音版
- 2023年生態(tài)環(huán)境綜合行政執(zhí)法考試參考題庫(400題)
- 口腔材料學課件
- 工資審核流程
- 手工鎢極氬弧焊焊接工藝指導書
- 北師大七年級上數(shù)學易錯題(共8頁)
- 供應商供方履約評價表(參考模板)
- 徒步行軍pt課件
- 國家電網(wǎng)公司電網(wǎng)設備缺陷管理規(guī)定國網(wǎng)(運檢3)(文號國家電網(wǎng)企管
- 輸血科(血庫)儀器設備使用、保養(yǎng)記錄表
評論
0/150
提交評論