2011全國計算機等級考試二級C語言上機題庫.doc_第1頁
2011全國計算機等級考試二級C語言上機題庫.doc_第2頁
2011全國計算機等級考試二級C語言上機題庫.doc_第3頁
2011全國計算機等級考試二級C語言上機題庫.doc_第4頁
2011全國計算機等級考試二級C語言上機題庫.doc_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1【填空】下列給定程序中,函數fun的功能是計算如下公式。直到,并且把計算結果作為函數值返回。例如,若形參e的值為1e-3,則函數返回值為0.551690?!敬鸢浮俊?】3.0 【2】 【3】(t+1)【改錯】下列給定程序中函數fun的功能是:求出如下分數序列的前n項之和。和值通過函數值返回。例如,若n=5,則應輸出8.391667?!敬鸢浮俊?】double fun(int n)【2】s=s+(double)a/b;【編程】請編寫函數fun,其功能是:找出2M整型二維數組中最大元素的值,并將此值返回調用函數?!敬鸢浮縤nt fun (int a M)int i,j,max=a00;for(i=0;i2;i+)for(j=0;jM;j+)if(max=eps) s1=s1s=s+s1;n+;return 23【填空】給定程序中函數fun的功能是:統(tǒng)計形參s所指的字符串中數字字符出現的次數,并存放在形參t所指的變量中,最后在主函數中輸出。例如,若形參s所指的字符串為abcdef35adgh3kjsdf7,則輸出結果為4。【答案】【1】si 【2】 9 【3】*t=n【改錯】下列給定程序中函數fun的功能是:實現兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如,變量a中的值原為8,b中的值原為3,程序運行后a中的值為3,b中的值為8?!敬鸢浮俊?】t = *x ; *x = y ;【2】return(t) ;【編程】編寫函數fun,其功能是:求出1到1000之間能被7或11整除,但不能同時被7和11整除的所有整數,并將其放在a所指的數組中,通過n返回這些數的個數?!敬鸢浮縱oid fun(int *a,int *n)int i,j=0;for(i=1;iave=0.0;for(i=0;iave=a-ave+a-si;7【填空】下列給定程序中函數fun的功能是進行數字字符轉換。若形參ch中是數字字符09,則將0轉換成9,1轉換成8,2轉換成7,9轉換成0;若是其它字符則保持不變;并將轉換后的結果作為函數值返回?!敬鸢浮俊?】char【2】chnext;while(p!=NULL)av=av+p-s;p=p-next; return ave/N;8【填空】下列給定程序中函數fun的功能是:求ss所指字符串數組中長度最短的字符串所在的行下標,作為函數值返回,并把其串長放在形參n所指的變量中。ss所指字符串數組中共有M個字符串,且串長N?!敬鸢浮俊?】M【2】=a)&( tti = z) 【2】tti-=32;【編程】編寫函數fun,其功能是:將所有大于1小于整數m的非素數存入xx所指數組中,非素數的個數通過k返回。例如,若輸入17,則應輸出:46891012141516?!敬鸢浮縱oid fun(int m, int *k, int xx)int i,j,n=0;for(i=4;im;i+)for(j=2;ji;j+)if(i%j=0) break;if(ji) xxn+=i;*k=n;9【填空】下列給定程序中函數fun的功能是:將s所指字符串中的所有數字字符移到所有非數字字符之后,并保持數字字符串和非數字字符串原有的次序。例如,s所指的字符串為def35adh3kjsdf7,執(zhí)行后結果為defadhajsdf3537?!敬鸢浮俊?】j+ 【2】si=t1i 【3】j【改錯】下列給定程序中函數fun的功能是:用冒泡法對6個字符串進行升序排列?!敬鸢浮俊?】for (j=i+1; j 6; j+)【2】*(pstr+i)=*(pstr+j);【編程】編寫函數fun,其功能是:求ss所指字符串中指定字符的個數,并返回此值。例如,若輸入字符串123412132,輸入字符為1,則輸出3。【答案】int fun(char *ss, char c)int i=0;for(;*ss!=0;ss+)if(*ss=c) i+;return i;10【填空】下列給定程序中已建立一個帶頭結點的單向鏈表,鏈表中的各結點按結點數據域中的數據遞增有序鏈接。函數fun的功能是:把形參x的值放入一個新結點并插入鏈表中,使插入后各結點數據域中的數據仍保持遞增有序。【答案】【1】x 【2】p 【3】s【改錯】下列給定程序中函數fun的功能是:計算正整數num各位上的數字之積。例如,若輸入252,則輸出應該是20。若輸入202,則輸出應該是0?!敬鸢浮俊?】long k=1; 【2】num /=10;【編程】編寫函數fun,其功能是:計算n門課程的平均分,結果作為函數值返回。例如:若有5門課程的成績是:90.5,72,80,61.5,55,則函數的值為:71.80?!敬鸢浮縡loat fun (float *a, int n)float av=0.0;int i;for(i=0;in;i+)av=av+ai;return (av/n);11【填空】下列給定程序中函數fun的功能是:將形參a所指數組中的前半部分元素中的值與后半部分元素中的值對換。形參n中存放數組中數據的個數,若n為奇數,則中間的元素不動。例如:若a所指數組中的數據為:1、2、3、4、5、6、7、8、9,則調換后為:6、7、8、9、5、1、2、3、4?!敬鸢浮俊?】1 【2】i 【3】ap+i【改錯】下列給定程序中函數fun的功能是:把從主函數中輸入的3個數,最大的數放在a中,中間的數放在b中,最小的數放在c中。例如,若輸入的數為:551234,輸出的結果應當是:a=55.0,b=34.0,c=12.0?!敬鸢浮俊?】float k;【2】if(*a *c)【編程】學生的記錄由學號和成績組成,N名學生的數據已放入主函數中的結構體數組s中,請編寫函數fun,其功能是:把分數最高的學生數據放在b所指的數組中。注意:分數最高的學生可能不止一個,函數返回分數最高的學生的人數?!敬鸢浮縤nt fun (STREC *a, STREC *b)int i,j=0,max=a0s;for(i=0;iN;i+)if(maxais) max=ais;for(i=0;iN;i+)if(max=ais) bj+=ai;return j;12【填空】下列給定程序中函數fun的功能是:從形參ss所指字符串數組中,刪除所有串長超過k的字符串,函數返回剩余字符串的個數。ss所指字符串數組中共有N個字符串,且串長小于M?!敬鸢浮俊?】N 【2】k 【3】ssi【改錯】下列給定程序中函數fun的功能是:逐個比較p、q所指兩個字符串對應位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的數組中,形成一個新的字符串。例如,若主函數中a字符串為aBCDeFgH,b字符串為ABcd,則c中的字符串應為aBcdeFgH。【答案】【1】int k=0; 【2】while (*p|*q)【編程】規(guī)定輸入的字符串中只包含字母和*號。請編寫函數fun,其功能是:除了字符串前導的*號之外,將串中其它*號全部刪除。在編寫函數時,不得使用C語言提供的字符串函數。例如,字符串中的內容為:*A*BC*DEF*G*,刪除后,字符串中的內容應當是:*ABCDEFG?!敬鸢浮縱oid fun(char *a)int i=0;char *p=a;while(*p&*p=*)ai=*p;i+;p+;while(*p)if(*p!=*)ai=*p;i+;p+;ai=0;13【填空】下列給定程序中,函數fun的功能是:把形參s所指字符串中下標為奇數的字符右移到下一個奇數位置,最右邊被移出字符串的字符繞回放到第一個奇數位置,下標為偶數的字符不動(注:字符串的長度大于等于2)。例如,形參s所指字符串為abcdefgh,執(zhí)行結果為ahcbedgf?!敬鸢浮俊?】1 【1】sk 【1】c【改錯】下列給定程序中fun函數的功能是:求表達式s=aa aa- aaa - aa -a(此處aa aa表示n個a,a和n的值在1至 9之間)例如,a=3,n=6,則以上表達式為:s=333333-33333-3333-333-33-3其值是296298。a和n是fun函數的形參,表達式的值作為函數值傳回main函數。【答案】【1】long s=0, t=0; 【1】t=t/10;【編程】編寫函數void fun(char *tt,int pp),統(tǒng)計在tt所指的字符串中a到z26個小寫字母各自出現的次數,并依次放在pp所指的數組中。例如,當輸入字符串abcdefgabcdeabc后,程序的輸出結果應該是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0【答案】void fun(char *tt, int pp)int i;for(i=0;i=a&*ttdata【3】t【改錯】下列給定程序中函數fun的功能是:將字符串中的字符逆序輸出,但不改變字符串中的內容。例如,若字符串為abcd,則應輸出:dcba?!敬鸢浮俊?】void fun(char *a)【2】printf(%c ,*a);【編程】編寫函數fun,其功能是:比較字符串的長度,(不得使用C語言提供的求字符串長度的函數),函數返回較長的字符串。若兩個字符長度相同,則返回第一個字符串。例如,輸入beijingshanghai(為回車鍵),函數將返回shanghai?!敬鸢浮縞har *fun(char *s, char *t)int i,j;for(i=0;si!= 0;i+); for(j=0;tj!= 0;j+);if(i=j) return s; else return t;16【填空】下列給定程序中函數fun的功能是:逆置數組元素中的值。例如:若a所指數組中的數據為:1、2、3、4、5、6、7、8、9,則逆置后依次為:9、8、7、6、5、4、3、2、1。形參n給出數組中數據的個數?!敬鸢浮俊?】n/2【2】i【3】an-i-1【改錯】下列給定程序中函數fun的功能是:將一個由八進制數字字符組成的字符串轉換成與其面值相等的十進制整數。規(guī)定輸入的字符串最多只能包含5位八進制數字字符。例如,若輸入77777,則輸出32767?!敬鸢浮俊?】n= *p-0; 【2】n=n*8+*p-0;【編程】學生的記錄由學號成績組成,N名學生的數據已放入主函數中的結構體數組s中,請編寫函數fun,其功能是:函數返回該學號的學生數據,指定的學號在主函數中輸入。若沒找到指定學號,在結構體變量中給學號置空串,給成績置-1,作為函數值返回。(用于字符串比較的函數是strcmp)?!敬鸢浮縎TREC fun(STREC *a, char *b)int i;STREC str=0,-1; if(strcmp(ainum,b)=0) str=ai;return str;17【填空】下列給定程序的功能是:調用函數fun將指定源文件中的內容復制到指定的目標文件中,復制成功時函數返回1,失敗時返回0。在復制的過程中,把復制的內容輸出到屏幕。主函數中源文件名放在變量sfname中,目標文件名放在變量tfname中。【答案】【1】r 【2】fs【3】ft【改錯】下列給定程序中函數fun的功能是:將長整型數中各位上為偶數的數依次取出,構成一個新數放在t中。高位仍在高位,低位仍在低位。例如,當s中的數為87653142時,t中的數:8642?!敬鸢浮俊?】if(d%2=0)【2】s/=10;【編程】編寫函數fun,其功能是:將兩個兩位數的正整數a、b合并成一個整數放在c中。合并的方式是:將a數的十位和個位數依次放在c數的十位和千位上,b數的十位和個位數依次放在c數的百位和個位上。例如,當a=45,b=12時,調用該函數后,c =5142?!敬鸢浮縱oid fun(int a,int b,long *c)*c=b%10+(a/10)*10+(b/10)*100+(a%10)*1000;18【填空】下列給定程序中函數fun的功能是:有NN矩陣,根據給定的m(m=2) & (n=1e-6);return x1;19【填空】程序通過定義學生結構體變量,存儲學生的學號、姓名和3門課的成績。函數fun的功能是:將形參a所指結構體變量中的數據賦給函數中的結構體變量b,并修改b中的學號和姓名,最后輸出修改后的數據。例如,a所指變量中的學號、姓名和三門課的成績依次是:10001、ZhangSan、95、80、88,則修改后輸出b中的數據應為:10002、LiSi、95、80、88?!敬鸢浮俊?】a 【2】【3】scorei【改錯】下列給定程序中函數fun的功能是:刪除s所指字符中所有的小寫字母c ?!敬鸢浮俊?】sj+=si; 【2】sj= 0;【編程】規(guī)定輸入的字符串中只包含字母和*號。請編寫函數fun,其功能是:將字符串中的前導*號全部移到字符串的尾部。例如,字符串中的內容為:*A*BC*DEF*G*,移動后,字符串中的內容應當是:A*BC*DEF*G*。在編寫函數時,不得使用C語言提供的字符串函數。【答案】void fun(char *a)int i=0,n=0;char *p;p=a;while (*p=*) n+;p+;while(*p) ai=*p;i+;p+;while(n!=0)ai=*;i+;n-;ai=0; 20【填空】下列給定程序的功能是:從鍵盤輸入若干行字符串(每行不超過80個字符),寫入文件myfile4.txt中,用-1作字符串輸入結束的標志,然后將文件的內容顯示在屏幕上。文件的讀寫分別由函數ReadText和WriteText實現。【答案】【1】*fw 【2】str 【3】str【改錯】下列給定程序中函數fun的功能是:從低位開始依次取出長整型變量s中奇數位上的數,構成一個新數存放在t中。高位仍在高位,低位仍在低位。例如,當s中的數為7654321時,t中的數為7531?!敬鸢浮俊?】void fun(long s,long *t)【2】s1=s1*10【編程】編寫函數fun,其功能是:將兩個兩位數的正整數a、b合并成一個整數放在c中。合并的方式是:將a數的十位和個位數依次放在c數的個位和百位上,b數的十位和個位數依次放在c數的千位和十位上。例如,當a=45,b=12時,調用該函數后,c=1524。【答案】void fun(int a,int b,long *c)*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;21【填空】下列給定程序中函數fun的功能是:有NN矩陣,將矩陣的外圍元素做順時針旋轉。操作順序是:首先將第一行元素的值存入臨時數組r,然后使第一列成為第一行,最后一行成為第一列,最后一列成為最后一行,再使臨時數組中的元素成為最后一列。例如,若N=3,有下列矩陣:123456789操作后應為:741852963【答案】【1】0【2】j-【3】j【改錯】下列給定程序中函數fun的功能是:計算S=f(-n)+f(-n+1)+f(0)+f(1)+f(2)+f(n)的值。例如,當n的值為5時,函數值應為10.407143。f(x)函數定義如下: (x+1)/(x-2)x0且x2 f(x)= 0x=0或x=2(x-1)/(x-2) x0【答案】【1】double f(double x)【2】return s ;【編程】編寫函數fun,其功能是計算:s作為函數值返回。在C語言中可調用log(n)函數求ln(n)。log函數的引用說明為:double log(double x)。例如,若m的值為20,則fun函數值為6.506583?!敬鸢浮縟ouble fun(int m)int i;double s=0.0;for(i=1;i=m;i+) s=s+log(i);return sqrt(s);22【填空】下列給定程序中函數fun的功能是:在形參ss所指字符串數組中,查找含有形參substr所指子串的所有字符串,并輸出,若沒找到則輸出相應信息。ss所指字符串數組中共有N個字符串,且串長小于M。程序中庫函數strstr(s1,s2)的功能是在s1串中查找s2子串,若沒有,函數值為0,若有,函數值為非0。【答案】【1】N 【2】substr 【3】0【改錯】下列給定程序中函數fun的功能是:求三個數的最小公倍數。例如,若給主函數中的變量x1、x2、x3分別輸入15 11 2,則輸出結果應當是330?!敬鸢浮俊?】fun(int x,int y, int z) 【2】return j;【編程】規(guī)定輸入的字符串中只包含字母和*號。請編寫函數fun,其功能是:只刪除字符前導和尾部的*號,串中字母間的*號都不刪除。形參n給出了字符串的長度,形參h給出了字符串中前導*號的個數,形參e給出了字符串中尾部*號的個數。在編寫函數時,不得使用C語言提供的字符串函數。【答案】void fun (char *a,int n ,int h , int e)int i,j=0;for(i=h;in-e;i+) aj+=ai;aj=0; 23【填空】下列給定程序中函數fun的功能是:計算一個帶頭結點的單向鏈表中各結點的數據域中數值之和,結果作為函數值返回。【答案】【1】data 【2】next 【3】head【改錯】下列給定程序中函數fun的功能是:將s所指字符串中出現的與t1所指字符串相同的子串全部替換為t2所指字符串,所形成的新串放在w所指的數組中。要求t1和t2所指字符串的長度相同。例如,當s所指字符串中的內容為abcdabfab,t1所指子串中的內容為ab,t2所指子串中的內容為99時,在w所指的數組中的內容應為99cd99f99。【答案】【1】while( *r) 【2】*a=*r;a+;r+;【編程】函數fun的功能是:將s所指字符串中下標為偶數的字符刪除,剩余字符形成的新串放在t所指數組中。例如,當s所指字符串中的內容為ABCDEFGHIJK時,在t所指數組中的內容應是:BDFHJ?!敬鸢浮縱oid fun(char *s,char t)int i,j=0,k=strlen(s);for(i=1;iscorei 【3】a【改錯】下列給定程序中,函數fun的功能是:從N個字符串中找出最長的串,并將其地址作為函數值返回。各字符串在主函數中輸入,并放入一個字符串數組中?!敬鸢浮俊?】char *fun(char (*sq)M) 【2】return sp;【編程】編寫函數fun,其功能是:將a、b中的兩個兩位正整數合并成一個新的整數放在c中。合并的方式是:將a中的十位和個位數依次放在變量c的百位和個位上,b中的十位和個位數依次放在變量c的十位和千位上。例如,當a=45,b=12,調用該函數后c=2415。【答案】void fun(int a,int b,long *c)*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;25【填空】下列給定程序中函數fun的功能是:將NN矩陣主對角線元素的值與反向對角線對應位置上元素的值進行交換。例如,若N=3,有下列矩陣:123456789交換后為:321456987【答案】【1】tN【2】i=0;iN【3】 s【改錯】由N個有序整數組成的數列已放在一維數組中,下列給定程序中函數fun的功能是:利用折半查找法查找整數m在數組中的位置。若找到,返回其下標值;否則,返回-1。折半查找的基本算法是:每次查找前先確定數組中待查的范圍low和high(lowhigh,查找結束?!敬鸢浮俊?】int fun(int a,int m) 【2】else if(mamid)【編程】假定輸入的字符串中只包含字母和*號。請編寫函數fun,其功能是:除了尾部的*號之外,將字符中的其它的*號全部刪除。形參p已指向字符串中最后的一個字母。在編寫函數時,不得使用C語言提供的字符串函數。例如,字符串中的內容為*A*BC*DEF*G*,刪除后,字符串中的內容應當是ABCDEFG*?!敬鸢浮縱oid fun(char *a,char *p)char *t=a;for(;t0)【編程】學生的記錄由學號和成績組成,N名學生的數據已放入主函數中的結構體數組s中,請編寫函數fun,其功能是:按分數降序排列學生的記錄,高分在前,低分在后?!敬鸢浮縱oid fun (STREC a)int i,j;STREC t;for(i=1;iN;i+) for(j=0;jN-1;j+) if(ajssno 【2】-name【3】&t【改錯】下列給定程序中函數fun的功能是:用遞歸算法求形參a的平方根。求平方根的迭代公式如下:例如,a為2時,平方根值為:1.414214。【答案】【1】double fun(double a,double x0)【2】if(fabs(x1-x0)=0.00001)【編程】學生的記錄由學號和成績組成。N名學生的數據已放入主函數中的結構體數組s中,請編寫函數fun,其功能是:把高于等于平均分的學生數據放在b所指的數組中,高于等于平均分的學生人數通過形參n傳回,平均分通過函數值返回?!敬鸢浮縟ouble fun (STREC *a,STREC *b, int *n)int i;double av=0.0;*n=0;for(i=0;iN;i+)av=av+ais;av=av/N;for(i=0;iN;i+) if(av=ais) b*n=ai;*n=*n+1;return av;28【填空】下列給定程序中已建立了一個帶頭結點的單向鏈表,鏈表中的各結點按數據域遞增有序鏈接。函數fun的功能是:刪除鏈表中數據域值相同的結點,使之只保留一個?!敬鸢浮俊?】q 【2】next 【3】next【改錯】下列給定程序中函數fun的功能是:用選擇法對數組中的n個元素進行升序排列?!敬鸢浮俊?】p=j;【2】p=i;【編程】編寫函數fun,其功能是:將1到m之間(含m)能被7或11整除的所有整數放在數組a中,并通過n返回這些數的個數。例如,若傳給m的值為50,則程序輸出:711142122283335424449【答案】void fun(int m, int *a, int *n)int i,j=0;for(i=1;is;while(h!=NULL) if(maxs) max=h-s; h=h-next;return max;31【填空】下列給定程序中函數fun的功能是:計算下式前n項的和,并作為函數值返回。例如,當形參n的值為10時,函數返回:-0.204491【答案】【1】1【2】2*i 【3】(-1)【改錯】下列給定程序中函數fun的功能是:判斷一個整數是否為素數,若是素數返回1,否則返回0。 在main()函數中,若fun返回1輸出YES,若fun返回0輸出NO!。【答案】【1】k+ ; 【2】if(m=k)【編程】請編寫函數fun,其功能是:找出一維整型數組元素中最大的值及其所在的下標,并通過形參傳回。數組元素中的值已在主函數中賦予。主函數中x是數組名,n是x中的數據個數,max存放最大值,index存放最大值所在元素的下標?!敬鸢浮縱oid fun(int a,int n, int *max, int *d)int i;*max=a0;*d=0;for(i=0;in;i+)if(*maxai)*max=ai;*d=i;32【填空】下列給定程序中函數fun的功能是計算下式直到,并將計算結果作為函數值返回。例如,若形參e的值為1e-3,函數的返回值為2.985678?!敬鸢浮俊?】0 【2】i+ 【3】2.0*i【改錯】下列給定程序中函數fun的功能是:將s所指字符串的正序和反序進行連接,形成的新串放在t所指的數組中。例如,當s所指字符串為:ABCD時,t所指字符串中的內容應為:ABCDDCBA?!敬鸢浮俊?】void fun ( char *s , char *t ) 【2】td+i=0;【編程】編寫函數fun,其功能是:將s所指字符串中除了下標為奇數同時ASCII值也為奇數的字符之外,其余的所有字符全部刪除,串中剩余字符所形成的一個新串放在t所指的數組中。例如,若s所指字符串的內容為:ABCDEFG12345,其中字符A的ASCII碼值為奇數,但所在元素的下標為偶數,因此需要刪除;而字符1的ASCII碼值為奇數,所在數組中的下標也為奇數,因此不應當刪除,其它依此類推。最后t所指數組中的內容應為:135。【答案】void fun(char *s,char t) int i,j=0,n;n=strlen(s);for(i=0;in;i+)if(i%2!=0&si%2!=0)

溫馨提示

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

評論

0/150

提交評論