全國二級c語言100套上機真題_第1頁
全國二級c語言100套上機真題_第2頁
全國二級c語言100套上機真題_第3頁
全國二級c語言100套上機真題_第4頁
已閱讀5頁,還剩273頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

001請補充函數fun,函數fun的功能是求n的階乘。注意:部分源程序給出如卜。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>longfun(intn)if([1])retum(n*fun([2]));return[3];voidmain()printf("10!=%ld\n\fun(l0));[1]n>l或l<n[2]n-1[3]1【解析】填空1:求階乘時采用遞歸的算法,n>l和n==l這兩種情況的處理方法不同,需要分開考慮。填空2:階乘的算法是,當n>l時,n!=n*(n-l)!,即:fun(n)=n*fun(n-l)。填空3:n==l是遞歸的終止條件,返回值為E下列給定程序中,函數fun的功能是:分別統(tǒng)計字符串中大寫字母和小寫字母的個數。例如,給字符串s輸入:AaaaBBb123CCccccd,則應輸出結果:upper=5,lower=9?請改正程序中的錯誤,使它能計算出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<conio.h>#include<stdio.h>/*********found***********/voidfun(char*s,inta,inib)while(*s)/********亭found***********/if(*s>='A,&&*s<=T)a++;/*********found***********/if(*s>='a'&&*sv='z')b++;s++;)}main()(chars[100];intupper=0,lower=0;printf("\npieaseastring:H);gets(s);fun(s,&upper,&lower);printf("\nupper=%dlower=%d\nH,upper,lower);(1)錯誤:voidfun(char*s,inta,intb)正確:voidfun(char*s,int*a,int*b)(2)錯誤:a++;正確:(*a)++;(3)錯誤:b++;正確:(*b)++;【解析】(1)根據題中程序可以看出,函數fun傳遞的是地址,那么在函數中就應該出現指針,所以改為voidfun(char*s,int*a,int*b)。(2)和(3)很明顯,這里是要累加數值,因為a、b是指針變量,所以是錯誤的。請編寫一個函數voidfun(char pp[]),統(tǒng)計在tt字符串中”a“到“z"26個字母各自出現的次數,并依次放在pp所指數組中。例如:當輸入字符串abcdefghabcdeabc后,程序的輸出結果應該是:333221110000000000000000000注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>voidfun(charpp[])voidmain()(FILE*wf;charaa[1000];intbb[26],k;system(MCLS");printf("\nPleaseenteracharstring:");scanf(n%sn,aa);fun(aa,bb);for(k=0;k<26;k++)printf(H%dM,bb[k]);printf(M\n");wf=fopen("out.dat,,,"wM);fun(nabcdefgabcdeabcM,bb);for(k=0;k<26;k++)fprinlf(wf,"%d”,bb[k]);fclose(wf);}voidfun(char*tt,intpp[])(inti;for(i=0;i<26;i++)pp[i]=O;/*初始化pp數組各元素為0*/for(;*tt!='0';H++)if(*tt>=,a,&&*tt<=,z,)pp[*tt-'a']++; /*將tt字符串中H到N26個字母各自出現的次數,依次放在pp數組中,任一個小寫字母減去宜后所得結果正好是它對應的下標*/}【解析】第1個循環(huán)的作用是初始化數組pp,未經賦值變量的量為一個不確定數字。由于它要將'a到Z'26個字母的個數依次放到數組pp中。即丁的個數存于pp[0]中,'b,的個數存于pp[l]中,的個數存于pp⑵中,…,依次類推。而葭-0,的值正好為0, 的值為1,'c」a,的值為2,…,依此類推。即任一個小寫字母減去T后所得結果正好是它對應的下標,所以就有了pp[*tt」a[++。但*tt必須是小寫字母,即if()不應省略。002請補充函數fun,它的功能是:計算并輸出n(包括n)以內所有能被3或7整除的自然數的倒數之和。例如,在主函數中從鍵盤給n輸入30后,輸出為:s=1.226323。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>doublefun(intn)inti;doublesum=0.0;for(i=1[1];i++)if(i%3==0_[2]_i%7==0)sum+=_[3]__/i;returnsum;)main()(intn;doubles;printf(H\nInputn:");scanf("%d”,&n);s=fun(n);printf("\n\ns=%f\nu,s);[1]i<=n[2]II【3】1.0或(double)1【解析】填空1:本題要求找出n(包括n)以內滿足條件的自然數,所以,i的取值范圍是從1到n,填空2:i能被3整除,也就是指,i除以3的余數為0,題中的條件是能被3或7整除,所以使用邏輯或運算符"11"。填空3:需要注意,如果71運算符兩邊都是整型數,則結果也是整型數。因為i為整型數,如果將i的倒數寫為1/i,則結果為0,所以在求倒數時,要使用1。,而不是1,或者將變量i強制類型轉化為double型。下列給定程序中,函數fun()的功能是:根據整型形參m的值,計算如下公式的值。t=l-l/(2x2)-l/(3x3)-...-l/(mxm)請改正函數fun()中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm){doubley=1.0;intI;/¥************found**************/for(I=2;I<m;I++)/*************found**************/y-=l/(I*I);retum(y);voidmain(){intn=5;system("CLS");printf("\nTheresultis%lf\n",fun(n));(1)錯誤:for(I=2;I<m;I++)正確:for(I=2;I<=m;I++)(2)錯誤:y-=l/(l*I);正確:y-=1.0/(I*I);【解析】該題是一道簡單的計算題,循環(huán)條件for(I=2;km;I++)中忽略了i=m時的一種情況,因為題目中I是從2到m的一個計算公式。y-=l/(l*[);的錯誤很明顯,是語法錯誤,由定義doubley=1.0可知,應該是y-=L0/(I*I);,而非y-=l/(I*I);。請編寫一個函數voidfun(intm,intk,intxx[]),該函數的功能是:將大于整數m且緊靠m的k個素數存入所指的數組中。例如,若輸入17,5,則應輸出19,23,29,31,37。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>voidfun(intm,intk,intxx[])voidmain()(intm,n,zz[1000];system(,'CLS,');printf("\nPleaseentertwointegers:");scanf(,'%d%dM,&m,&n);fun(m,n,zz);for(m=0;m<n;m++)printf(M%dM,zz[m]);printf(H\n");voidfun(intm,intk,intxx[])(inti,j,n;for(i=m+1,n=0;n<k;i++) /*找大于m的素數,循環(huán)k次,即找出緊靠m的k個素數*/{for(j=2;j<i;j++) /*判斷一個數是否為素數,如果不是,跳出此循環(huán),判斷下一個數*/if(i%j==O)break;if(j>=i)/*如果是素數,放入數組xx中*/xx[n++]=i;【解析】本題只要掌握了判斷素數的算法就不難完成了,其實程序缺少部分也正是這部分。003給定程序的功能是:求二分之一的圓面積,函數通過形參得到圓的半徑,函數返回二分之一的圓面積(注:圓面積公式為:S=nr2,在程序中定義的變量名要與公式的變量相同)。例如,輸入圓的半徑值:19.527,輸出為:s=598.949991。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,儀在橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>doublefun(doubler)(return3.14159*_[1]_/2.0;Imain()(doublex;printf("Enterx:");scanf("%ir,_[2]J;printf("S=%lf\n",fun(_[3]_));[1]r*r[2]&x[3]x【解析】填空1:計算圓的面積,面積公式:S=FIr*r。填空2:scanf一般形式為scanf(格式控制,地址表列),因此填入&x。填空3:送入函數的參數是圓的半徑X。下列給定程序中,fun函數的功能是:根據形參m,計算下列公式的值。t=l+l/2+l/3+l/4+...+l/m例如,若輸入5,則應輸出2.283333。請改正程序中的錯誤,使它能計算出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doublefun(intm)doublet=1.0;intI;for(I=2;I<=m;I++)/*************found**************/t+=l.O/k;/*************found**************/returnI;}voidmain(){intm;system(nCLSu);printf(H\nPleaseenter1integernumber:");scanf(”%d”,&m);printf(M\nTheresultis%lf\nu,fun(m));(1)錯誤:t+=LO/k;正確:t+=1.0/I;(2)錯誤:returnI;正確:returnt;【解析】該題目考查分母成等差數列遞增的一個數學公式,我們先看循環(huán)條件for(I=2;I<=m;I++),i從2開始遞增到m,所以t的值應該是由1.0/1的值逐步循環(huán)疊加后的結果,而不是t+=1.0/k;。returnI;考查對程序的解讀能力,當循環(huán)結束后(由輸入m的值決定),函數返回當前t的值。編寫函數fun,函數的功能是:根據以下公式計算s,計算結果作為函數值返回;n通過形參傳入。S=l+l/(l+2)+l/(l+2+3)+...+l/(l+2+3+...+n)例如:若n的值為11時,函數的值為1.833333。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn)voidmain()(intn;floats;system(“CLS”);printf(M\nPleaseenterN:");scanf(H%dn,&n);s=fun(n);printf("Theresultis:%f\n",s);floatfun(intn)(inti,sl=0;floats=0.0;fbr(i=l;i<=n;i++){sl=sl+i;/*求每一一項的分母*/s=s+1.0/sl;/*求多項式的值*/}returns;}【解析】本題中si用來表示式中每一?項的分母,而每一項的分母都是由前一項分母加項數。注意:由于si定義成一個整型,所以在s=s+1.0/sl中不能把1.0寫成1。004給定程序的功能是:計算并輸出下列級數的前N項之和SN,直到SN大于q為止,q的值通過形參傳入。例如,若q的值為50.0,則函數值為50.416687。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>doublefun(doubleq)(intn;doubles;n=2;s=2.0;while(s[1]q){s=s+(double)(n+l)/n;[2];)printf(',n=%d\n,\n);【3】;

main()printf(M%f\nn,fun(50));[1]<=[2]n++或n+=l或n=n+1[3]returns或return(s)【解析】填空1:根據題意,相加直到Sn大于q為止,因此為<=。填空2:計算前N項的和,增加n的值。填空3:計算完Sn的和后,返回函數的值,以便于輸出。下列給定的程序中,函數fun的功能是:計算并輸出k以內最大的10個能被13或17整除的自然數之和。K的值由主函數傳入,若k的值為500,則函數的值為4622。請改正程序中的錯誤,使它能得出正確的結果。也不得更改程序的結構。注意:不要改動main函數,不得增行或刪行,試題程序:也不得更改程序的結構。#include<stdio.h>#include<conio.h>#include<stdlib.h>intfun(intk){intm=0,mc=0,j;while((k>=2)&&(mc<10))/*************found**************/if((k%13=0)ll(k%17=0)){m=m+k;mc++;}k--;/*************found**************/returnm;voidmain(){system(MCLSM);printf(n%d\n",fun(500));(1)錯誤:(1)錯誤:if((k%13=0)ll(k%17=0))(2)錯誤:缺少大括號正確:if((k%13==0)H(k%17==0))正確:加}【解析】x能被y整除的表示方法是x%y==0,而并非像題目中所表示的x%y=0,所以,if((k%13=0)ll(k%17=0))修改后的結果應該是答案所示信息。(2)中缺少程序完整所需的此類信息在做題時一定要注意,我們可以在做題前先運行一下程序,這樣明顯的錯誤一般都會有錯誤信息顯示出來,比如丟失"}"的錯誤信息是"Compoundstatementmissing}infunctionfun”,并在當前錯誤處停止光標,我們只要按回車健進行編輯就可以了。編寫函數fun,它的功能是:根據以下公式求p的值,結果由函數值帶回。m與n為兩個正數且要求m>n。P=m!/(n!(m?n)!),例如:m=12,n=8時,運行結果為495.000000。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>floatfun(intm,intn)voidmain(){system(nCLS");printf(Mp=%f\nM,fun(12,8));floatfun(intm,intn)(inti;doublep=1.0;for(i=1;i<=m;i++) p=p*i;/*求m!*/for(i=1;i<=n;i++) p=p/i;/*求m!/n!*/fbr(i=1;i<=m-n;i++)p=p/i; /*求m!/(n!(m-n)!)*/returnp;)【解析】本題中,欲求P的值,需要先求m、n和m-n的階乘值,可用循環(huán)語句實現。注意階乘值應當是double類型,若定義x,y,z為整型變量,則p=x/(y*z)中的除法為整數除法。005請補充函數fun,該函數的功能求能是:整除x且是偶數的數,把這些數保存在數組bb中,并按從大到小的順序輸出。例如當x=20時,依次輸出:201042。注意:部分源程序給出如卜。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>voidfun(intk,intbb[])intI;intj=O;for([I];I<=k;I++){if([2])bb[j++]=I;)printf(n\n\nH);for(I=[3];I>=0;I-)printf(H%dM,bb[I]);voidmain()(intk=l;intbb[100];system(HCLSn);printf(M\nPleaseinputX=M);scanf(H%dM,&k);fun(k,bb);[111=1[2]k%I==0&&I%2==0 [3]_j或j??或j=j-l或j?=l【解析】填空1:為了求出能整除k,且是偶數的數,尋找范圍是從1到匕填空2:如果I能整除匕則k對I求余為0,如果I為偶數,貝UI對2求余為0,由于這兩個條件要同時滿足,所以要使用“與“運算符“&&”。填空3:由于數組bb[]中的數是按從小到大的順序排列的,而題目要求按從大到小輸出,所以從數組的最后一個元素開始,依次輸出。因為在for循環(huán)中,變量j多加了一次,所以這里要將j減1,得到數組最后一個元素的下標。下列給定程序中,函數fun的功能是:根據整型形參m,計算如下公式的值。例如,若m中的值為5,則應輸出:1.463611。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<conio.h>#include<stdio.h>doublefun(intm)doubley=1.0;inti;/********found********/for(i=2;i<m;i++)/********found********/y+=l/(i*i);retum(y);}main()(intn=5;printf(n\nTheresultis%lf\n",fun(n));(1)錯誤:for(i=2;i<m;i++)正確:fbr(i=2;i<=m;i++)(2)錯誤:y+=l/(i*i)正確:y+=1.0/(i*i)【解析】(1)for(i=2;ivm;i++)中是一個基礎的分析錯誤,應該包括m。(2)y是一個double型變量,題中得出的結果是一個整數,所以改為y+=1.0/(i*i)。編寫函數fun,它的功能是:利用以下所示的簡單迭代方法求方程cos(x)?x=0的一個實根。xn+l=cos(xn)迭代步驟如下:(1)取xl初值為0.0;x0=xl,把xl的值賦給x0;xl=cos(x0),求出一個新的xl;(4)若x0?xl,的絕對值小于0.000001,則執(zhí)行步驟(5),否則執(zhí)行步驟(2);(5)所求xl就是方程cos(x)?x=0的一個實根,作為函數值返回。程序將輸出結果Root=0.739085o注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,儀在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<conio.h>#include<math.h>#include<stdio.h>floatfun()main()(floatf=fun();printf(MRoot=%f\nM,f);floatfun()(floatxl=0.0,x0;do(xO=xl;xl=cos(xO);)while(fabs(xO-x1)>=1e-6);returnxl;}【解析】函數fun的功能是用迭代方法求方程的一個實根,結果由函數值返回。題目已經給出了算法,只要按照算法用合適的程序表達,就可以解題了。006程序的功能是計算s=!!.注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>longfun(intn){inti;longs;s=[1]_;for(i=l;i<=n;i++)s=[2];returns;)main()(longs;intk,n;scanf(M%dH,&n);s=[3];for(k=0;k<=n;k++)s=[4];printf(n%id\nu,s);[1]1 【2]s*i或i*s[3]0 [4]s+fun(k)【解析】函數fun的功能是計算n的階乘。首先定義一個long型累計變量s,并初始化為1,然后用一個for循環(huán)從1循環(huán)到n,累乘給s,循環(huán)結束時s的值即為n的階乘。主函數中也定義了一個累計變量s,通過for循環(huán),累加從0到n的所有數的階乘。下列給定程序中,函數fun的功能是:按如下遞歸公式求函數值。例如,當給n輸入5時,函數值為18;當給n輸入3時,函數值為14。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>/********found********/intfun(n)(intc;/********found********/if(n=l)c=10;elsec=fun(n-l)+2;return(c);Imain()(intn;printf("Entern:");scanf(u%dM,&n);printf(MTheresult:%d\n\n'\fun(n));(1)錯誤:intfun(n) 正確:intfun(intn)(2)錯誤:if(n=l)正確:if(n==l)【解析】(1)主函數中已經定義了變量n的類型,在子函數中也要定義。(2)if后面應該緊跟一個條件判斷表達式,而n=l是付值表達式,表達式的值永遠為真,也就是說這個條件永遠成立,沒有遞歸執(zhí)行。請編寫函數fun,函數的功能是:求出二維數組周邊元素之和,作為函數值返回。二維數組中的值在主函數中賦予。例如:若二維數組中的值為13579299946999813570則函數值為61,注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM4#defineN5intfun(inta[M][N])voidmain()(intaa[M][N]={{135,7,9),{2,9,9,9,4),{6,9,9,9,8},{1,3,57,0}};inti,j,y;system(nCLSn);printf(nTheoriginaldatais:\n");for(i=0;i<M;i++){for(j=O;j<N;j++)printf("%6dn,aa[i][j]);printf("\n");}y=fun(aa);printf("\nThesun:%d\nn,y);printf(H\n");intfun(inta[M][N])(inti,j,sum=0;for(i=0;i<M;i++)for(j=0;j<N;j++)if(i=0lli=M-lllj==0llj==N-l) /*只要下標中有一個為0或M-l或N-1,則它一定是周邊元素*/sum=sum+a[ij[j];/*將周邊元素相加*/returnsum;)【解析】本題采用逐一判斷的方式,周邊元素的下標一定有一個是0或M-1或N-1,且只要下標中有一個為?;騇-1或N-1,則它一定是周邊元素。請補充函數fun,該函數的功能是:求不超過給定自然數的所有偶數之和。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>intfun(intx)(inti,s;s=_[11;for(i=2;[2];i+=2)s+=i;returns;}main()(intn;do(printf(n\nPleaseenternaturalnumbersn:");scanf("%d'\&n);}while(n<=0);printf("\n不超過給定自然數%d的各偶數之和為%d\n”,n,fun(n));)[1]0 [2]i<=x【解析】填空1:根據題意,偶數當然要從0開始,所以40。填空2:不論給定的數是偶數還是奇數,只要小于等于X,便應該計算在內。下列給定程序中函數fun的功能是:計算n!。例如,給n輸入5,則輸出定0.000000。請改正程序中的錯誤,使程序能輸出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>#include<conio.h>doublefun(intn)(doubleresult=1.0;/********found*******/ifn==0return1.0;while(n>l&&n<170)/********found********/result=n-;returnresult;main()(intn;printf(nInputN:");scanf("%dH,&n);printf(',\n\n%d!=%lf\n\n,',n,fun(n));(I)錯誤:ifn=O正確:if(n=O)(2)錯誤:result=n??;正確:result*=n—;【解析】(1)這里是一個簡單的格式錯誤,if條件應該加括號。(2)根據階乘的概念,從n開始,n!=n*(n?l)!,直到1,所以應該為result*=n-;請編一個函數floatfun(doubleh),函數的功能是:對變量h中的值保留兩位小數,并對第三位進行四舍五入(規(guī)定h中的值為正數)。例如:若h值為8.32433,則函數返回8.32;若h值為8.32533,則函數返回8.33。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>floatfun(floath)voidmain()(floata;system(nCLSn);printf("Entera:");scanf(M%f),&a);printf("Theoriginaldatais:");printf("%f\n\n",a);printf(MTheresult:%f\nM,fun(a));floatfun(floath)(longt;t=(h*1000+5)/10; /*單精度數h乘以1000后再加5,相當于對h中的第三位小數進行四舍五入除以10后將其賦給一個長整型數時就把第三位小數后的數全部截去*/return(float)t/l00; /*除以100,保留2位小數*/I【解析】注意本題要求h的值真正發(fā)生了四舍五入,而不是為了輸出,即不能用printf(,,%7.2f”,h)來直接得到結果。由于單精度數h乘以1000后再加5,此時相當于對h中的第三位小數進行四舍五入,在將其賦給一個長整型數時就把第三位小數后的數全部截去。注意在return中要將其中??個數轉成浮點型數。008請補充函數fun,該函數的功能是:求一維數組x[N]的平均值,并對所得結果進行四舍五入(保留兩位小數)。例如:當x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},結果為:avg=15.030000o注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>doublefun(doublex[10])(intI;longt;doubleavg=0.0;doublesum=0.0;for(I=0;I<10;I++)[1];avg=sum/10;avg=[2];t=[3];avg=(double)t/100;returnavg;}voidmain()(doubleavg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0);inti;system(nCLSM);printf("\nTheoriginaldatais:\n");for(i=0;i<10;i++)printf(n\n\nn);avg=fun(x);printf(Haverage=%f\n\nn,avg);[I]sum+=x[I][2]avg*1000 [3](avg+5)/10【解析】填空1:通過for循環(huán)求出10個數的累加和,存于變量sum中。填空2:為了實現四舍五入保留兩位小數的功能,應將平均值先擴大1000倍。填空3:將平均值加上5,再除以10,實現四舍五入的功能。下列給定程序中函數fun的功能是:計算正整數num各位上的數字之積。例如,若輸入252,則輸出應該是20。若輸入202,則輸出應該是0。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>#include<conio.h>longfun(longnum){/********tound********/longk;do(k*=num%10;/********foun(j********/num\=10;}while(num);return(k);}main()(longn;printf("\pleaseenteranumber:");scanf(n%ld",&n);printf(,'\n%ld\n,',fun(n));(1)錯誤:longk;正確:longk=l;(2)錯誤:num\=10;正確:num/=10;【解析】(1)k用來存放各位數字的積,初值應為lo(2)這里是一個符號錯誤,除號使用來表示的。請編寫一個函數fun,它的功能是:根據以下公式求冗的值(要求滿足精度0.005,即某項小于0.005時停止迭代)。n72=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*47(3*5*7*9)+...+1*2*3*...*n/(3*5*7*...*(2n+l))程序運行后,如果輸入精度0.0005,則程序;輸出3.14…。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<math.h>doublefun(doubleeps)voidmain()(doublex;printf(nInputeps:");scanf(n%ir,&x);printf(n\neps=%1f,PI=%1f\nu,x,fun(x));doublefun(doubleeps)(doubles=1.0,s1=1.0;intn=l;while(sl>=eps) /*當某項大于精度要求時,繼續(xù)求下一項*/{sl=sl*n/(2*n+l);/*求多項式的每一項*/s=s+sl;/*求和*/n++;)return2*s;)【解析】從第2項開始以后的每一項都是其前面一項乘以n/(2*n+l),程序中用si來表示每一項,s來表示求和后的結果。要注意si和s的初值都為1.0,返回時要乘以2即return2*s,這跟數學思想有關系,學習者理解后就很簡單了。請補允函數fun,該函數的功能是:計算并輸出下列多項式的值。S例如,若主函數從犍盤給n輸入50后,則輸出為S=1.960784。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填若干表達式或語句。試題程序:#include<stdio.h>[1]fun(intn)(inti,j;doublesum=0.0?t;for(i=l;i<=n;i++)(t=0.0;for(j=l;j<=i;j++)t+=[2];sum+=[3];}returnsum;)main()(intn;doubles;printf("\nlnputn:");scanf(H%dH,&n);s=fun(n);printf("\n\ns=%f\n\n,,,s);[1]double[2]j[3]LO/t或(double)1/t【解析】填空1:根據主函數可知,返回值是一個double型的數據,因此填入double。填空2:由題中的公式可知,t表示分數分母的累加,那么應填入j。填空3:計算整個公式的和,就是分母的倒數的和,由于在計算過程中有小數存在,應把分子寫為double型的數據,所以填入1.0/t或(double)1/t。下列給定程序中函數fun的功能是:將長整型數中每一位上為奇數的數依次取出,構成一個新數放在t中。高位仍在高位,低位仍在低位。例如當s中的數為87653142時,t中的數為7531?請改正函數fun中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>voidfun(longsjong*t){intd;longsl=l;/*************tound**************/t=0;while(s>0){d=s%10;/*************,ound**************/if(d%2==0){*t=d*sl+*t;sl*=10;}s/=10;voidmain(){longs,t;system(nCLSu);printf(n\nPleaseenters:");scanf(“%ld”,&s);fun(s,&t);printf(MTheresultis:%ld\nM,t);}(1)錯誤:t=0; 正確:*t=0;(2)錯誤:if(d%2=0) 正確:if(d%2!=0)【解析】其實,本題的重點在考查兩個問題:第1個錯誤中出現了一個t=0,那么請看一下t是從哪兒來的,第1次出現t的地方在哪兒?對,就這么簡單。那我們再來思考一下用C語言表達一個奇數的話應該怎么表達?用數學的方法呢?偶數是能被2整除的,奇數剛好相反,那么if(d%2==0)是想表示奇數還是偶數呢,看題目就明白了!請編寫一個函數fun,它的功能是:求出1到m(含m)之內能被7或11整除的所有整數放在數組a中,通過n返回這些數的個數。例如,若傳給m的值為50,則程序輸出:711142122283335424449注意:部分源程序給出如卜。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM100voidfun(intm,int*a,int*n)voidmain()(intaa[M],n,k;system("CLS");fun(50,aa,&n);for(k=0;k<n;k++)if((k+l)%20==0) /*每行輸出20個數*/{printf("%4d",aa[k]);printf("\n");)elseprintf("%4d",aa[k]);printf("\n");voidfun(intm,int*a,int*n)(inti,j=0;for(i=1;i<=m;i++)if(i%7==0lli%ll==0) /*求出1到m(含m)之內能被7或11整除的所有整數放在數組a中*/afj++]=i;*n=j;/*返回這些數的個數*/)【解析】本題要找出能被7或11整除的所有整數,注意數學中的"或"和C語言中的“或”的區(qū)別,在此處,if條件語句中用了"II"運算符,若要找能同時被7和11整除的所有整數,則在if()中應用"&&”運算符。010請補充main函數,該函數的功能是:求n!。例如7!=5040。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在main函數的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>voidmain()(intI,n;longf=l;syslem(“CLS");printf("Inputn:");scanf(“%d",【1】);for([2];I<=n;I++)[3];printf(M%d!=%ld\nM,n,f);[I]&n【2]1=1或1=2 [3]f*=I【解析】填空1:本題考查對標準輸入函數scanf()的掌握,地址列表中都是地址值,所以在變量名前要加上取址運算符&。填空2:n的階乘是將1、2、3……n累積相乘,所以for循環(huán)中I從1開始取數。因為1乘以任何數都等于這個數本身,所以I也可以從2開始取數。填空3:掌握了階乘的算法,這空就非常簡單了。下列給定程序中,函數fun的功能是:計算s所指字符串中含有t所指字符串的數目,并作為函數值返回。請改正函數fun中的錯誤或在橫線處填上適當的內容并把橫線刪除,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<conio.h>#include<stdio.h>#include<string.h>#defineN80intfun(char*s,char*t)(intn;char*p,*r;n=0;/********found********/p=&s[OJ;*r=t;while(*p)(if(*r==*p)r++;if(*r==AO')n++;/*******found*******/ 填空 P++;)returnn;}main()(chara[N],b[N];intm;printf(n\nPleaseenterstringa:");gets(a);printf("\nPleaseentersubstringb:");gets(b);m=fun(a,b);m=printf(u\nTheresultis:m=%d\nM,m);(1)錯誤:*r=t;正確:r=t;(2)應填:r=t;或【解析】從字符串s中找出子字符串的方法是:從第1個字符開始,對字符串進行遍歷;若s串的當前字符等于t串的第1個字符,兩字符串的指針自動加1,繼續(xù)比較下一個字符;若比較至字符串的末尾,則跳出循環(huán);若s串的字符和t串的字符不對應相同,則繼續(xù)對s串的下一個字符進行處理。請編寫函數fun,它的功能是:求出ss所指字符串中指定字符的個數,并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charc)voidmain(){chara[M],ch;system("CLSu);printf(H\nPleaseenterastring:");gets(a);printf(n\nPleaseenterachar:");ch=getchar();printf(H\nThenumberofthecharis:%d\n'\fun(a,ch));intfun(char*ss,charc)(inti=0;for(;*ss!=AO*;ss++)if(*ss==c)i++; /*求出ss所指字符串中指定字符的個數*/returni;)【解析】從字符串SS中找出子字符串的方法是:從第1個字符開始,對字符串進行遍歷;若SS串的當前字符等于t串的第1個字符,兩字符串的指針自動加1,繼續(xù)比較下一個字符;若比較至字符串的結尾,則跳出循環(huán);若SS串的字符和C串的字符不對應相同,則繼續(xù)對SS串的下一個字符進行處理。本程序是采用逐一比較的方式找出出現的次數。循環(huán)的作用是在串中從左到右逐一走動,if()的作用是進行判斷是否相同,若與C相同則表示又出現一次。011請補充main函數,該函數的功能是:先以只寫方式打開文件"。utll.dat",再把字符串str中的字符保存到這個磁盤文件中。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在main函數的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineN80voidmain()(HLE*fp;inti=0;charch;charstr[N]=Mrmastudent!H;system(nCLSM);if((fp=fopen([1]))==NULL)printf(ncannotopenoutll.dat\nn);exit(O);ch=str[i];[2];putchar(ch);i++;【1】"outll.dat"w"[2]fputc(ch,fp)[3]fclose(fp)【解析】填空1:本題考查對文件操作的掌握。打開一個文件的調用方式是,fp=fopen(文件名,使用文件方式),題目要求以只寫的方式打開文件"。utll.dat",所以文件使用方式為"w"o填空2:fputc()函數用于將一個字符寫到磁盤文件上去,調用形式為:fputc(要輸出的字符,文件指針)。填空3:對一個文件進行操作后,應該關閉它,以防被誤用。調用形式為:fclose(文件指針)。數列中,第一項為3,后一項都比前一項的值增5。下列給定程序中,函數fun的功能是:計算前n(4<n<50)項的累計和。在累加過程中把那些被4除后余2的當前累加值放入數組中,符合此條件的累加值的個數作為函數值返回主函數里。如,當n的值為20時,該數列為3,8,13,18,23,28,…,93,98.符合此條件的累加值應為42,126,366,570,1010。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>#defineN20intfun(intn,int*a)/*************found**************/{inti,j,k,sum;sum=0;for(k=3,i=0;i<n;i+4-,k+=5){sum=sum+k;/¥************found**************/if(sum%4=2)a[j++]=sum;/*************found**************/returnj;voidmain(){inta[N],d,n,i;printf(H\nEntern(4<=n<=50):");scanf(H%d",&n);d=fun(n,a);printf("\n\nTheresult:\n");for(i=0;i<d;i++)printf(M%6dn,a[i]);printf(H\n\n");(1)錯誤:inti,j,k,sum;正確:inti,j=O,k,sum;(2)錯誤:if(sum%4=2)正確:if(sum%4==2)(3)錯誤:returnj;正確:returnj++;【解析】該題是一個公差為5的等差數列,要是用數學的辦法解決也就是一個公式兩個符號,迎刃而解,所以用C語言來求這樣很有規(guī)律的等差數列前n項和的話,也相當簡單,關鍵看細節(jié)!i,k,sum都分別定義了,那么j呢?所以,正確的應該是inti,j=O,k,sum;,再往下看,if(sum%4=2)是在說明題干中”在累加過程中把那些被4除后余2的當前累加值放入數組中,符合此條件的累加值的個數作為函數值返回主函數",那么“余2”的表示方法呢?不用看就知道應該是if(sum%4==2),后面的返回錯誤就不提了吧,看看a[j++]=sum;語句,難道還能返回給j嗎?請編寫函數fun,其功能是:將兩個兩位數的正整數a、b合并成一個整數放在c中。合并的方式是:將a數的十位和個位數依次放在c數的十位和千位上,b數的十位和個位數依次放在c數的個位和百位上。例如,當a=45,b=12,調用該函數后,c=5241o注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>#include<stdio.h>voidfun(intajntb,long*c)main()inta,b;longc;printf(*'Inputa,b:");scanf(M%d%dM,&a,&b);fun(a,b,&c);printf(nTheresultis:%ld\nH,c);voidfun(inta,intb,long*c)(*c=(a%10)*1000+(b%10)*100+(a/10)*10+b/l0;I【解析】本題中主要的問題是怎么取出a和b的個位數和十位數,取出后怎么表示成c中相應的位數。由于a和b都是只有兩位的整數,所以分別對他們除10可得到他們的十位數,分別用10對他們求余可得到他們的個位數。得到后對應乘以1000、100、10、1就可得到c的千位數、百位數、十位數和個位數。注意要使用c時要進行指針運算。012請補充main函數,該函數的功能是:把文本文件B中的內容追加到文本文件A的內容之后。例如,文件B的內容為Tmten.",文件A的內容為Tmastudent!",追加之后文件A的內容為"I'mastudent!I'mten."注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數main的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#defineN80voidmain()(FILE*fp,*fpl,*fp2;inti;charc[NJ,ch;system(,,CLSM);if((fp=fopen(,'A.datu;,rM))==NULL)(printf(HfileAcannotbeopened\n°);exit(O);}printf("\nAcontentsare:\n\nM);for(i=0;(ch=fgetc(fp))!=EOF;i++)(c[i]=ch;putchar(c[i]);)fclose(fp);if((fp=fopen(nB.datu;'rH))==NULL)printf(HfileBcannotbeopened\nn);exit(O);)printf(H\n\n\nBcontentsare:\n\nM);for(i=0;(ch=fgetc(fp))!=EOF;i++)(c[i]=ch;putchar(c[i]);}fclose(fp);if((fpl=fopen("A.dat",“a"))[1](fp2=fopen("B.dat”,T))){while((ch=fgetc(fp2))!=EOF)[2];)else{printf("CannotopenAB!\nH);)fclose(fp2);fclose(fpl);printf(M\n***newAcontents***\n\n");if((fp=fopen(,'A.datu;,rH))==NULL)(printf(nfileAcannotbeopened\n°);exit(O);)for(i=0;(ch=fgetc(fp))!=EOF;i++)(c[i]=ch;putchar(c[i]);)[3];[1]&& [2]fputc(ch,fpl)[3]fclose(fp)【解析】填空1:當兩個文件都被成功打開時,才能將文件B中的內容追加到文件A中,所以應該用"與"運算符”&&”。填空2:fputc()函數用于將一個字符寫到磁盤文件上去,調用形式為:fputc(要輸出的字符,文件指針)。填空3:對一個文件進行操作后,應該關閉它,以防被誤用,調用形式為:fclose(文件指針)。在主函數中從鍵盤輸入若干個數放入數組中,用0結束輸入并放在最后一個元素中。下列給定程序中,函數fun的功能是:計算數組元素中值為正數的平均值(不包括0)。例如:數組中元素的值依次為39,-47,21,2,-8,15,0,則程序的運行結果為19.250000。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<conio.h>#include<stdio.h>doublefun(intx[])(/********8un(j********/intsum=0.0;intc=0,i=0;while(x[i]!=0)(if(x[i]>0)(sum+=x[i];C++;)i++;I/********found********/sum\=c;returnsum;}main()(intxflOOO];inti=0;printf("\nPleaseentersomedata(endwith0):”);do(scanf("%dn,&x[i]);}while(x[i++]!=0);printf(',%lf\n,',fun(x));(1)錯誤:intsum=0.0;正確:doublesum=0.0;(2)錯誤:sum\=c;正確:sum/=c;【解析】(1)定義變量錯誤。(2)c語言中的除法運算符是假定輸入的字符串中只包含字母和*號。請編寫函數fun,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內容為****A*BC*DEF*G*******,刪除后,字符串中的內容則應當是A*BC*DEF*G*******。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>voidfun(char*a)voidmain()(chars[81];printf(nEnterastring:\nn);gets(s);fun(s);printf(MThestringafterdeleted:\nn);puts(s);voidfun(char*a)(char*p=a;while(*p==***)p++; /*指針p指向字符串第一個字母*/for(;*p!=*\0*;p4-+,a++)*a=*p; /*從第一個字母開始,其后的字符都放入指針a所指的字符串中*/*a=VT; /*在字符串最后加上結束標記符*/)【解析】在前面的改錯題和編程題中,相關試題已經出現好多次了,我們在此提供另一種解答方法。#include<string.h>voidfun(char*a){char*p=a;while(*p==***)p++;strcpy(a,p);013請補充函數fun,該函數的功能是:建立一個帶頭結點的單向鏈表并輸出到文件"outl3.dat”和屏幕上,各結點的值為對應的下標,鏈表的結點數及輸出的文件名作為參數傳入。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>typedefstructss(intdata;structss*next;}NODE;voidfun(intn,char*filename)(NODE*h,*p,*s;FILE*pf;inti;h=p=(NODE*)malloc(sizeof(NODE));h->data=O;for(i=l;i<n;i++)(s=(NODE*)malloc(sizeof(NODE));s->data=[1];[2];p=[3];1p->next=NULL;if((pf=fopen(filename,"wH))==NULL)(printf(HCannotopenoutl3.dat!");exit(O);}p=h;fprintf(pf,M\n***THELIST***\nM);printf(H\n***THELIST***\nn);while(p)(fprintf(pfj%3d”,p->data);printf(M%3dn,p->data);if(p->next!=NULL)fprintf(pf,H->u);printf("->n);}p=p->next;1fprintf(pf;'\nH);printf(H\nn);fclose(pf);p=h;while(p)(s=p;p=p->next;free(s);))voidmain()(char*filename="out13.dat";intn;system(“CLS");printf(n\nlnputn:n);scanf("%d'\&n);fun(n,filename);[1]i [2]p->next=s [3]p->next【解析】填空1:題目要求各結點的值為對應的下標,頭結點的值為0,其他結點的值從1開始,所以此空應填i。填空2:為了將結點p和結點s連接起來,應將結點p的next指針指向結點s。填空3:為了通過for循環(huán)形成鏈表,每執(zhí)行完一次操作,都要將指針p指向下一個結點。下列給定程序中,函數fun的功能是:求k!(k<13),所求階乘的值作為函數值返回。例如:若k=10,則應輸出3628800。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<conio.h>#include<stdio.h>longfun(intk)(/********tound********/ifk>lreturn(k*fun(k-l));return1;main()intk=10;printf(n%d!=%ld\nM,k,fun(k));(1)錯誤:ifk>l正確:if(k>l)【解析】(1)簡單語法錯誤,不作介紹了。請編寫函數fun,它的功能是計算:s=(ln(1)+ln(2)+ln(3)+...+ln(m))0.5在C語言中可調用log(n)函數求ln(n)o例如,若m的值為20,則fun函數值為6.506583。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<math.h>doublefun(intm)voidmain()(system(nCLSn);printf(M%f\n\fun(20));doublefun(intm)(inti;doubles=0.0;for(i=1;i<=m;i++)s=s+log(i); /*計算s=ln(1)+ln(2)+ln(3)+…+ln(m)*/return sqrt(s);/*對s求平方根并返回*/【解析】首先,題目要求計算從1到m的對數的和,可用從1到m的循環(huán),每次循環(huán)都累加求和。該題需要注意之處是,log()函數的形式參數應當為double型變量,而用于循環(huán)的基數變量為整數,需要進行強制轉換。在返回的時候求出平方根。請補充main函數,該函數的功能是:計算兩個自然數n和m(mvl(X)00)之間所有數的和(n和m從鍵盤輸入)。例如:當n=l,m=100時,sum=5O5O;當n=100,m=1000時,sum=495550o注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在main函數的橫線上填入所編寫的若干表達式或語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>voidmain()intn,m;longsum;[1];system(nCLS");printf("\nlnputn,m\nK);scanf("%d,%d",&n,&m);while(n<=m))printf("sum=%[3]\n",sum);[1]sum=0[2]sum+=n[3]Id【解析】填空1:變量sum進行了類型聲明,但沒有進行初始化,而后面的程序用sum來存放最后的結果,所以要在使用前將sum初始化為0。填空2:通過while循環(huán)將自然數n和m之間的數進行累加I,結果存于sum中。填空3:由于sum為長整型,所以標準輸出函數printf()中的格式控制符為"%Id”。下列給定程序中,函數fun的功能是:求出數組中最大數和次最大數,并把最大數和a[0]中的數對調、次最大數和a[l]中的數對調。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<conio.h>#include<stdio.h>#defineN20/********found*******/voidfun(int*a,intn);(inti,m,t,k;for(i=0;iv2;i++)(/********found********/m=0;for(k=i+l;k<n;k++)if(a[k]>a[m])m=k;t=a[i];a[i]=a[m];a[m]=t;main()(intb[N]={11,5,12,03697,10,8),n=10,i;for(i=0;i<n;i++)printf(M%dM,b[i]);printf('^\n^^);fun(b,n);for(i=0;i<n;i++)printf(M%dH,b[i]);printfCAn0);(1)錯誤:voidfun(int*a,intn);正確:voidfun(int*a,intn)(2)錯誤:m=0;正確:m=i;【解析】(1)簡單的語法錯誤。(2)這是一段簡單的比較程序,m作為一個比較數的下標。從下面的程序可以看出,m=io編寫函數fun,它的功能是:求n以內(不包括n)同時能被5與11整除的所有自然數之和的平方根s,并作為函數值返回。例如:n為1000時,函數值應為s=96.979379。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

試題程序:#include試題程序:#include#include#include#include<stdlib.h><conio.h><math.h><stdio.h>doublefun(intn)voidmain()(system(nCLSu);printf(Hs=%f\n'\fun(1000));doublefun(intn){doubles=0.0;inti;for(i=0;i<n;i++) /*從0?n中找到既能被5整除同時又能被11整除的數,并將這些數求和*/if(i%5==0&&i%ll==0)s=s+i;s=sqrt(s);/*對s求平方根*/returns;)【解析】本題的解題思路是逐個取得從。?n之間的數,對每次取得的數進行條件判斷,條件是既能被5整除又能被11整除,注意:這兩個條件要求同時成立,因此用到了“&&"運算符。若滿足條件,該數就被累加到s中去,求出所有符合條件的數后,用sqrt()函數(包含于頭文件vmath.h>中)對s求平方根。015請補充函數fun,該函數的功能求能是:整除x且

溫馨提示

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

評論

0/150

提交評論