計算機二級機試題庫_第1頁
計算機二級機試題庫_第2頁
計算機二級機試題庫_第3頁
計算機二級機試題庫_第4頁
計算機二級機試題庫_第5頁
已閱讀5頁,還剩91頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、首 頁例題1 填空題例題2 填空題例題3 填空題例題4 填空題例題5 填空題例題6 填空題例題7 填空題例題8 改錯題例題9 改錯題例題10 改錯題例題11 改錯題例題12 改錯題例題13 改錯題例題14 改錯題例題15 編程題例題16 編程題例題17 編程題例題18 編程題例題19 編程題例題20 編程題例題1 填空題試題程序 下列給定程序中,函數(shù)fun()的作用是:將字符串tt中的大寫字母都改為對應(yīng)的小寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“ab,cd”。 #include #include #include char 【1】fun(char tt) int i; for

2、(i=0;tti;i+) if(tti=A)&(tti= 【2】) tti+=32; return(tt);void main() char tt81; printf(nPlease enter a string: ); gets(tt); printf(nThe result string is: n%s,fun(【3】);題 干試題答案例題1試題程序例題2 填空題試題程序 下列給定程序中,函數(shù)fun()的功能是:按順序給s所指數(shù)組中的元素賦予從2開始的偶數(shù),然后再按順序?qū)γ?個元素求一個平均值,并將這些值依次存放在w所指的數(shù)組中。若s所指數(shù)組中元素的個數(shù)不是5的倍數(shù),多余部分忽略不

3、計。例如,s所指數(shù)組有14個元素,則只對前10個元素進行處理,不對最后的4個元素求平均值。#include #define SIZE 20fun (double *s,double *w) int k,i; double sum; for(k=2,i=0;iSIZE;i+) si=k;k+=2; sum=0.0; for(k=0,i=0;iSIZE;i+) sum+=si; if(i+1)【1】5=0) wk=sum/5; sum=0;k+; 【2】 k;void main() double aSIZE,bSIZE/5; int i, k; k=fun(a,b); printf(The ori

4、ginal data:n); for(i=0;iSIZE;i+) if(i%5=0) printf(n); printf(%4.0f,ai); printf(nnThe result:n); for(i=0;ik;i+) printf(%6.2f,【3】); printf(nn);題 干試題答案例題2試題程序例題3 填空題試題程序 下列給定程序中,函數(shù)fun()的功能是:將s所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(但Z轉(zhuǎn)化為A,z轉(zhuǎn)化為a),其他字符不變。#include #include #include void fun(char *s)while(【1】) if(*s=A&

5、*s=a&*s=z) if(*s=Z) *s=A; else if(*s=z) *s=a; else *s+=【2】; 【3】; void main() char s80; printf(n Enter a string with length80:nn); gets (s); printf(n The string:nn); puts(s); fun(s); printf(nn The Cords :nn); puts(s);題 干試題答案例題3試題程序例題4 填空題試題程序 下列給定程序中函數(shù)fun()的功能是:將長整型數(shù)中每一位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在

6、高位,低位仍在低位。例如:當(dāng)s中的數(shù)為87653142時,t中的數(shù)為7531。#include #include #include void fun(long s,long *t)int d; long s1=1; *t=0; while(s0) d=s【1】10; if(d%2!=0) *t=d*s1+*t; s1*=【2】; s/=【3】; void main()long s, t; system(CLS); printf(nPlease enter s: ); scanf(%ld,&s); fun(s,&t); printf(The result is :%ldn,t);

7、題 干試題答案例題4試題程序例題5 填空題試題程序 下列給定的程序中,fun()函數(shù)的功能是:將p所指字符串中每個單詞的最后一個字母改成大寫(這里的“單詞”是指有空格隔開的字符串)。例如,若輸入:I am a student to take the examination則應(yīng)輸出:I aM A studenT tO takE thE examinatioN#include #include #include #include void fun(char *p) int k=0; for ( ;*p;p+) if (k) if (*p= ) 【1】; 【2】=toupper(*(p-1); el

8、se k=1;void main()char chrstr64; int d; printf(nPlease enter an English sentence within 63 letters: ); gets(chrstr); d=strlen(chrstr); chrstrd= ; chrstrd+1=0; printf(nBofore changing:n %s,chrstr); 【3】; printf(nAfter changing:n %s,chrstr);題 干試題答案例題5試題程序例題6 填空題試題程序 下列給定程序中,函數(shù)fun()的功能是:計算s所指字符串中含有t所指字符

9、串的數(shù)目,并作為函數(shù)值返回。#include #include #include #define N 80int fun(char *s,char *t) int n; char *p, *r; n=0; while(*s) p=s; r=t; while(*r) if(*r=*p) r+; 【1】; else break; if(*r=【2】) n+; 【3】; return n;void main()char aN,bN; int m; printf(nPlease enter string a: );gets(a); printf(nPlease enter substring b: )

10、; gets(b); m=fun(a,b); printf(nThe result is :m=%dn,m); 題 干試題答案例題6試題程序例題7 填空題試題程序 下列給定程序中,函數(shù)fun()的功能是:通過某種方式實現(xiàn)兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如變量a初值為8,b初值為3,程序運行后a中的值為3,b中的值為8。#include #include int fun(int *x,int y) 【1】 t; t=*x;*x=y; return(t)【2】void main()int a=3,b=8; printf(%d %dn ,a,b); b=fun(【3】,b); pri

11、ntf(%d %dn ,a,b);題 干試題答案例題7試題程序例題8 改錯題試題程序 下列給定程序中,函數(shù)fun()的功能是逐個比較a,b兩個字符串對應(yīng)位置中的字符,把ASCII值小或相等的字符依次存放到c數(shù)組中,形成一個新的字符串。 例如:a中的字符串為fshADfg,b中的字符串為sdAEdi,則c中的字符串應(yīng)為fdAADf。 請改正程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include #include void fun(char *p,char *q,char *c) int k=0; while(*p|*q)/*foun

12、d*/ if (*p=*q) ck=*q; else ck=*p; if(*p) p+; if(*q) q+ ;/*found*/ k+ void main() char a10=fshADfg,b10=sdAEdi,c80=0; fun(a,b,c); printf(The string a:); puts(a); printf(The string b:); puts(b); printf(The result :); puts(c);題 干試題答案例題8試題程序例題9 改錯題試題程序 下列給定程序中,函數(shù)fun()的功能是根據(jù)整型形參m,計算如下公式的值。 y=1-1/(22)+1/(3

13、3)-1/(44)+(-1)(m+1)/(mm) 例如:m中的值為5,則應(yīng)輸出0.838611。 請改正程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include #include #include double fun(int m) double y=1.0;/*found*/ int j=1; int i; for(i=2; i=m; i+) j=-1*j;/*found*/ y+=1/(i * i); return(y);void main() int n=5; system(CLS); printf(nThe result i

14、s %lfn ,fun(n);題 干試題答案例題9試題程序例題10 改錯題試題程序 下列給定程序中,函數(shù)fun的功能是按以下遞歸公式求函數(shù)值。 例如:當(dāng)給n輸入5時,函數(shù)值為240;當(dāng)給n輸入3時,函數(shù)值為60。 請改正程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。152) 1()(nFunnFun#include /*found*/fun(int n); int c;/*found*/ if(n=1) c=15; else c=fun(n-1)*2; return(c);void main() int n; printf(Enter n

15、:); scanf(%d,&n); printf(The result :%dnn,fun(n);題 干試題答案例題10試題程序例題11 改錯題試題程序 下列給定程序中函數(shù)fun()的功能是計算 的值。 例如:給n輸入5,則輸出0.008333。 請改正程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。!1n#include #include /*found*/int fun(int n) double result =1.0; if(n=0) return 1.0; while(n1 & n 170)/*found*/ re

16、sult *=n+ ; result=1/result; return result;void main() int n; printf(Input N:); scanf(%d,&n); printf(n1/%d!=%lfn,n,fun(n);題 干試題答案例題11試題程序例題12 改錯題試題程序 下列給定的程序中,fun()函數(shù)的功能是:將p所指字符串中每個單詞的最后一個字母改成大寫(這里的“單詞”是指有空格隔開的字符串)。例如,若輸入:I am a student to take the examination則應(yīng)輸出:I aM A studenT tO takE thE exam

17、inatioN#include #include #include #include #include void fun(char *p) int k=0; for ( ;*p;p+) if (k) /*found*/ if (p= ) k=0;/*found*/ *p=toupper( *(p-1); else k=1;題 干試題答案例題12試題程序void main()char chrstr64; int d; system(CLS); printf(nPlease enter an English sentence within 63 letters: ); gets(chrstr);

18、d=strlen(chrstr); chrstrd= ; chrstrd+1=0; printf(nBofore changing:n %s,chrstr); fun(chrstr); printf(nAfter changing:n %s,chrstr);題 干試題答案例題12試題程序例題13 改錯題試題程序 下列給定程序中,函數(shù)fun()的功能是將字符串s中位于偶數(shù)位置的字符或ASCII碼為奇數(shù)的字符放入字符串t中(規(guī)定第1個字符放在第0位中)。 例如:字符串中的數(shù)據(jù)為ADFESHDI,則輸出應(yīng)當(dāng)是AFESDI。 請改正程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增

19、行或刪行,也不得更改程序的結(jié)構(gòu)。#include #include #include #include #define N 80/*found*/void fun(char s, char t ) int i, j=0; for(i=0; istrlen(s);i+)/*found*/ if(i%2=0|si%2!=0) tj+=si ; tj=0;void main() char sN, tN; system(CLS); printf(nPlease enter string s :); gets(s); fun(s,t); printf(nThe result is :%sn,t);題 干

20、試題答案例題13試題程序例題14 改錯題試題程序 下列給定程序中,函數(shù)fun()的功能是找出100n(n不大于1000)之間百位數(shù)字加十位數(shù)字等于個位數(shù)字的所有整數(shù),把這些整數(shù)放在s所指的數(shù)組中,個數(shù)作為函數(shù)值返回。 請改正程序中的錯誤,使它能得到正確結(jié)果。 注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include #define N 100int fun(int *s, int n) int i,j,k,a,b,c; j=0; for(i=100; in; i+) /*found*/ k=n; a=k%10; k/=10; b=k%10; c=k/10; if(a=

21、b+c) /*found*/ sj=i; return j;void main()int aN, n,num=0, i; do printf(nEnter n( 1000); num= fun(a,n); printf(nnThe result :n); for(i=0; inum; i+) printf(%5d,ai); printf(nn);題 干試題答案例題14試題程序例題15 編程題試題程序 請編寫函數(shù)fun,其功能是將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)個位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和千位上。 例如,當(dāng)a

22、=16,b=35,調(diào)用該函數(shù)后,c=5361。 注意:部分源程序給出如下。 請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。#include #include void fun(int a ,int b,long *c)void main() int a,b; long c; system(CLS); printf(Input a,b;); scanf(%d%d,&a, &b); fun(a,b,&c); printf(The result is:%ldn,c);題 干試題答案例題15試題程序例題16 編程題試題程序 請編一個

23、函數(shù)void fun(int ttMN, int ppN), tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。 注意:部分源程序給出如下。 請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。#include #include #include #define M 3#define N 4void fun(int ttMN,int ppN) void main()int tMN=68, 32, 54, 12,14, 24, 88, 58,42, 22, 44, 56; int p

24、N,i,j,k;system(CLS); printf(The riginal data is:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is:n); for(k=0;kN;k+) printf(%4d,pk); printf(n);題 干試題答案例題16試題程序例題17 編程題試題程序 請編寫函數(shù)fun(),對長度為7個字符的字符串,除首、尾字符外,將其余5個字符按ASCII值碼升序排列。 例如:原來的字符串為BdsihAd,則排序后輸出為BAdhisd

25、。 注意:部分源程序給出如下。 請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。#include #include #include #include int fun(char *s, int num)void main() char s10; system(CLS); printf(輸入7個字符的字符串:); gets(s); fun(s,7); printf(n%s,s);題 干試題答案例題17試題程序例題18 編程題試題程序 編寫函數(shù)fun(),它的功能是求n以內(nèi)(不包括n)同時能被5與11整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。 例

26、如:n為1000時,函數(shù)值應(yīng)為s=96.979379。 注意:部分源程序給出如下。 請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。#include #include #include #include double fun(int n) void main()system(CLS);printf(s=%fn, fun(1000);題 干試題答案例題18試題程序例題19 編程題試題程序 請編寫函數(shù)fun(),它的功能是求Fibonacci數(shù)列中小于t的最大的一個數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為 例如:t=1000時 ,函

27、數(shù)值為987。 注意:部分源程序給出如下。 請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。11)1(,0)0(2)2()1()(nFFnnFnFnF#include #include #include #include int fun(int t) void main() int n; system(CLS); n=1000; printf(n=%d, f=%dn,n, fun(n);題 干試題答案例題19試題程序例題20 編程題試題程序 請編寫一個函數(shù)fun(),它的功能是計算并輸出給定整數(shù)n的所有因子(不包括1與自身)的平方和(規(guī)定n的值不大于

28、100)。 例如:主函數(shù)從鍵盤給輸入n的值為56,則輸出為sum=1113。 注意:部分源程序給出如下。 請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。#include long fun(int n) void main() int n; long sum; printf(Input n:); scanf(%d, &n); sum=fun(n); printf(sum=%ldn, sum);題 干試題答案例題20試題程序例題1分析 填空1:由return語句可以看出,該函數(shù)的返回值類型是指向字符串的指針,所以應(yīng)該使用符號“*”。 填空2:從

29、ASCII碼表中可以看出,小寫字母的ASCII碼值比對應(yīng)大寫字母的ASCII碼值大32,根據(jù)ASCII碼值判斷該字母是不是大寫字母,判斷的標(biāo)準(zhǔn)是ASCII碼值是否介于A和Z之間。 填空3:根據(jù)題目的意思這里應(yīng)該調(diào)用函數(shù)fun對字符串tt進行轉(zhuǎn)換,所以應(yīng)該使用tt作為函數(shù)的參數(shù)。 例題2分析 填空1:根據(jù)題目的意思,這里是執(zhí)行按順序?qū)γ?個元素求一個平均值的操作,所以應(yīng)該使用取余符號“%”,如果是5的倍數(shù),則該式子的值為零。 填空2:根據(jù)C語言的規(guī)定,除了使用關(guān)鍵字void的任何一個子函數(shù)都應(yīng)該有返回值,所以應(yīng)該使用關(guān)鍵字return把變量k的值返回主函數(shù)。 填空3:由題目的意思可知這里是把存在

30、數(shù)組b中的內(nèi)容依次循環(huán)輸出,所以后面的變量名應(yīng)該使用bi 。 例題3分析 填空1:從C語言的學(xué)習(xí)中我們知道,while語句的結(jié)束條件是括號中的式子結(jié)果為0,而一個字符串的結(jié)尾標(biāo)志為0,即滿足循環(huán)的結(jié)束條件,所以一般情況下C語言中使用字符串的結(jié)尾作為結(jié)束循環(huán)的標(biāo)志;s為指向一個數(shù)組的指針,*s為取出s指向的內(nèi)容。 填空2:根據(jù)題目的意思,若該字母不是z或Z,則該字母的ASCII碼值加1。 填空3:根據(jù)題目的意思,要對字符串所有字母進行遍歷,使用指針進行這一過程應(yīng)該使用循環(huán),即每次都對該指針進行加一操作。 例題4分析 填空1:根據(jù)題目的意思,此處是由低到高逐位地提取變量d的每一位,然后再進行判斷,

31、所以可以推斷出這里應(yīng)該使用取余符號“%” 。 填空2:根據(jù)題目的意思,這里是把提取出來滿足條件的數(shù)字依次從低到高填入一個新的變量t中,所以進行的操作應(yīng)該是每一個數(shù)字都循環(huán)乘以10,再加上原來的部分,例如:依次得到數(shù)字321,最后應(yīng)該輸出123。 填空3:由算法可以看出,這里應(yīng)該是進行完畢一次提取,所以應(yīng)該舍棄最低位個位,即把變量s除以10。 例題5分析 填空1:根據(jù)題目的意思,這里應(yīng)該是以變量k作為判斷標(biāo)志,如果標(biāo)志為1并且當(dāng)前指針指向空格就應(yīng)該把標(biāo)志返回0,以便下一次檢測。 填空2:根據(jù)題目的意思,此處進行的是將p所指單詞的最后一個字母改成大寫,但是此時p已經(jīng)循環(huán)到了單詞后面的那個空格,所以

32、應(yīng)該對p-1進行操作。 填空3:由算法可以看出,這里應(yīng)該是進行函數(shù)調(diào)用,根據(jù)前面的子函數(shù)定義可以知道,參數(shù)是一個指向向字符串的指針,所以應(yīng)該把數(shù)組的名字(也可以認為是指向數(shù)組首地址的指針)作為參數(shù)。 例題6分析 填空1:根據(jù)題目的意思,這里應(yīng)該是把要比較的字符串和原字符串的一部分進行逐個字符的比較,所以指向原字符串的指針p也應(yīng)該進行每步加一的操作。 填空2:根據(jù)題目的意思,此處是判斷上一步的比較是否與r指向的完整的字符串相等,如果完全相同,則r應(yīng)該指向字符串的末尾,即0。 填空3:由算法可以看出,這里應(yīng)該是進行的整個while循環(huán),即應(yīng)該控制s指針不停的向后移動直到字符串結(jié)尾。 例題7分析 填

33、空1:根據(jù)題目的意思,這里應(yīng)該是聲名一個新的變量t,由后面的賦值語句以及返回語句可以明白這個變量應(yīng)該是整型的(因為函數(shù)的返回值類型是int)。 填空2:根據(jù)題目的意思,此處是子函數(shù)的返回語句,由C語言的知識,每個語句的結(jié)尾都應(yīng)該使用“;” 。 填空3:fun()函數(shù)的調(diào)用方式說明fun()函數(shù)的參數(shù)應(yīng)當(dāng)為指針類型,即應(yīng)該把變量的地址作為參數(shù)傳遞(符號“&”是取地址操作)。 例題8分析 錯誤1:依題意,把ASCII值小或相等的字符存放到c數(shù)組中,故if語句的關(guān)系運算符應(yīng)為“=”。 錯誤2:C語言規(guī)定,每個語句要用分號結(jié)束。 例題9分析 錯誤1:為了做后面的除法運算,j要定義為實型數(shù),否則

34、除得的結(jié)果將為整數(shù)。 錯誤2:題中公式是加減相間的運算,通過j來實現(xiàn)。 例題10分析 錯誤1:該行是函數(shù)的首部,不是一條語句,因此不能以分號結(jié)束。 錯誤2:if后面應(yīng)該緊跟一個條件判斷表達式,若寫成“if(n=1)”,則說明該表達式的值永遠為真,也就是說這個條件永遠成立,沒有遞歸執(zhí)行。 例題11分析 錯誤1:函數(shù)的返回值為實型數(shù)據(jù),所以函數(shù)的返回類型應(yīng)為double。 錯誤2:根據(jù)階乘的概念,從n開始,每遞減1的數(shù)相乘,直到1,因此此處n遞減,而不是遞增。 例題12分析 錯誤1:p是指針變量,所以if語句中的條件應(yīng)使用*p。 錯誤2:toupper函數(shù)是將小寫字母轉(zhuǎn)換成大寫字母, *(p-1)

35、指向字符串的最后一個字母,轉(zhuǎn)換后的大寫字母同樣應(yīng)該放在*(p-1)指向的內(nèi)存空間中。 例題13分析 錯誤1:由于本題中函數(shù)的功能是對字符串進行處理,而不是對單個字符進行處理,因此,函數(shù)的參數(shù)應(yīng)為字符串指針。 錯誤2:if語句中要用關(guān)系運算符,而不是賦值運算符。 例題14分析 錯誤1:k就是當(dāng)前要被判斷的數(shù),是隨著i值的變化而變化的。 錯誤2:在循環(huán)中,j是數(shù)組的下標(biāo)要遞增。 例題15分析 語句*c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10;是將a數(shù)的十位和個位數(shù)依次放在c數(shù)個位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和千位上。注意“/”和“%”的用法。

36、例題16分析 本題中函數(shù)的功能是求出二維數(shù)組中每列的最大元素。首先,假設(shè)各列中的第一個元素最大,然后利用行標(biāo)值的移動來依次取得各列中其他元素的值,并與假設(shè)的最大值進行比較,如果遇到更大的,則把這個更大的元素看做當(dāng)前該列中最大的元素,繼續(xù)與該列中其他元素比較。 例題17分析 本題考查利用循環(huán)來控制數(shù)組元素的操作,首尾元素除外,因此,數(shù)組的下標(biāo)值要從1開始,用循環(huán)變量i來依次取得數(shù)組中的元素,用數(shù)組中的元素si和sj進行比較,如果后一個元素的ASCII碼值小于前一個元素的ASCII碼值,則交換這兩個數(shù)組元素的值。 例題18分析 本題的解題思路是逐個取得從0n之間的所有數(shù),對每次取得的數(shù)進行條件判斷

37、,條件是既能被5整除同時又能被11整除,注意:這兩個條件要求同時成立,因此用到了“&”運算符。滿足條件,該數(shù)就被累加到s中去,求出所有符合條件的數(shù)后,用sqrt()函數(shù)(包含于頭文件中)對s求平方根。 例題19分析 根據(jù)所給數(shù)列定義不難發(fā)現(xiàn),該數(shù)列最終的結(jié)果是由兩個數(shù)列之和組成,所以可以在循環(huán)內(nèi)部始終把c看成是前兩項之和(即第n項),而a始終代表第n-2項,b始終代表第n-1項(通過不斷地重新賦值來實現(xiàn))。應(yīng)注意,退出循環(huán)時得到的數(shù)c是大于指定比較的數(shù)的最小的數(shù),而它的前一個數(shù)就是小于指定比較的數(shù)的最大的數(shù)。 例題20分析 本題的解題思路是用n逐個去除以2到n-1之間的所有數(shù),如果n能

38、被除盡,則把所得到的一個因子的平方累加到s中去。 例題1答案 【1】* 【2】Z 【3】tt例題2答案 【1】% 【2】return 【3】bi例題3答案 【1】*s 【2】1 【3】s+ 例題4答案 【1】% 【2】10 【3】10 例題5答案 【1】k=0 【2】*(p-1) 【3】fun(chrstr)例題6答案 【1】p+ 【2】0 【3】s+例題7答案 【1】int 【2】; 【3】&a 例題8答案(1)錯誤: if (*p=*q)(2)錯誤:k+ 正確:k+;例題9答案(1)錯誤:int j=1; 正確:double j=1.0;(2)錯誤:y+=1/(i * i); 正確

39、:y+=j/(i * i);例題10答案(1)錯誤:fun(int n); 正確:fun(int n)(2)錯誤:if(n=1) 正確:if(n=1)例題11答案(1)錯誤:int fun(int n) 正確:double fun(int n)(2)錯誤:result *=n+ ; 正確:result *=n- ;例題12答案(1)錯誤:if(p= ) 正確:if(*p= ) (2)錯誤:*p=toupper( *(p-1); 正確:*(p-1)=toupper( *(p-1); 例題13答案(1)錯誤:void fun(char s, char t ) 正確:void fun(char *s

40、, char t )(2)錯誤:if(i%2=0|si%2!=0) 正確:if(i%2=0|si%2!=0)例題14答案(1)錯誤:k=n; 正確:k=i;(2)錯誤:sj=i; 正確:sj+=i;例題15答案void fun(int a ,int b,long *c) *c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; 例題16答案void fun(int ttMN,int ppN) int i,j,max; for(j=0;jN;j+) max=tt0j; /*假設(shè)各列中的第一個元素最大*/ for(i=0;imax) /*如果各列中的其他元素比最大值還大,

41、 則將這個更大的元素看做當(dāng)前該列中最大的元素*/ max=ttij; ppj=max; /*將各列的最大值依次放入pp數(shù)組中*/ 例題17答案int fun(char *s, int num)char t; int i, j; for(i=1;inum-2;i+) /*下標(biāo)值從1開始,用循環(huán)依次取得字符串 中的字符*/ for(j=i+1;jsj) /*如果后面字符的ASCII碼值小于該字符的 ASCII碼值*/ t=si; /*則交換這兩個字符*/ si=sj; sj=t; return t;例題18答案double fun(int n)double s=0.0;int i;for(i=0;

42、 in;i+) /*從0n中找到既能被5整除同時又能被11 整除的數(shù),并將這些數(shù)求和*/ if(i%5=0&i%11=0) s=s+i;s=sqrt(s); /*對s求平方根*/return s;例題19答案int fun(int t) int a=1,b=1,c=0; /*a代表第n-2項,b代表第n-1項, c代表第n項*/ /*如果求得的數(shù)c比指定比較的數(shù)小, 則計算下一個Fibonacci數(shù),對a,b重新置數(shù)*/do c=a+b; a=b; b=c; while (ct); /*如果求得的數(shù)c比 指定比較的數(shù)大時,退出循環(huán)*/ c=a; /*此時數(shù)c的前一個Fibonacci數(shù)

43、為小于指定 比較的數(shù)的最大的數(shù)*/ return c;例題20答案long fun(int n) int i; long s=0; for(i=2;i=n-1;i+) /*從2n-1中找n的所有因子*/ if(n%i=0) s+=i*i; /*將所有因子求平方加*/ return s; /*將平方和返回*/函 數(shù) 函數(shù)的定義 函數(shù)定義的一般形式、函數(shù)的參數(shù)和函數(shù)的返回值。 函數(shù)的調(diào)用 函數(shù)的調(diào)用方式、函數(shù)間的參數(shù)傳遞、函數(shù)的嵌套調(diào)用、函數(shù)的遞歸調(diào)用等。 函數(shù)間的數(shù)據(jù)傳遞 數(shù)據(jù)傳遞的方式和特點,掌握值傳遞內(nèi)在運行過程。char 字符型說明符: char 字符型常量的表示:用單引號括起來的單個字符

44、。 字符常量:A g 1 # 字符型數(shù)據(jù)的存儲格式:ASCII碼。 65 103 48 35 字符串常量的表示:用雙引號括起來的單個字符。 ”This is C string” 串長16 ”a” 串長1 ” ” (空格)串長1 ” (不含空格)串長0int 整型變量的說明格式: 類型說明符 變量列表; 例如:int i, j = 1; 整型常量的類型: 1.在整型數(shù)表示范圍之內(nèi),根據(jù)值大小默認類型。 2.在常量后面加l或L,則認為它是long int型。 for for語句格式for (表達式1;表達式2;表達式3) 語句; for語句的變化形式for語句中的三個表達式中的任意一個都是可以省略

45、的,但是分號不能省略。 1. 省略表達式2,則for(表達式1; ;表達式3) 就形成了一個死循環(huán)。 2.省略表達式1和表達式3,則for(;表達式2;)就等同于while( 表達式 )。 3.表達式1、2、3全省略,則for ( ; ; )就等同于while (1)。while while語句格式為while( 表達式 ) 語句; 說明:語句部分可以是簡單語句,也可以是復(fù)合語句。 注意 1.while (0) . 由于循環(huán)的條件表達式恒等于0,循環(huán)體永遠也不會執(zhí)行,是編程者的錯誤。 2.while (1) . 由于循環(huán)的條件表達式恒等于1,所以不可能通過循環(huán)控制條件來結(jié)束循環(huán)體的執(zhí)行,稱為“死循環(huán)”。 3.為了保證循環(huán)正常運行,應(yīng)該特別注意: 循環(huán)控制條件 控制條件的初始狀態(tài)(初始值) 循環(huán)體內(nèi)部對控制條件的影響。do-whiledo-while語句格式 do 語句while ( 表達式 ) ; do- while與while的區(qū)別:do- while語句先執(zhí)行循環(huán)體然后再判斷循環(huán)控制條件,而while是先判斷條件之后再執(zhí)行循環(huán)體;使用do-while構(gòu)成的循環(huán),循環(huán)體部分至少要執(zhí)行一次;而采用while循環(huán),循環(huán)體部分有可能一次也不會執(zhí)行。break語句 br

溫馨提示

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

評論

0/150

提交評論