例題 二級C語言上機程式設計十例 附詳解

2021-07-13 05:10:52 字數 2755 閱讀 3405

1、編乙個函式fun(char *s),函式的功能是把字串中的內容逆置。

例子如:字串中原有的內容為:abcdefg,則呼叫該函式後,串中的內容為:gfedcba

fun(char *s)

}注:該題的演算法是先分別找出字串的兩頭,然後同時逐一往中間移動,每移動一次

都進行兩字元的位置對換,直到中間字元(用s+i

位址,因此要注意把它的內容取出再進行換位。即先進行取內容運算*)

2、請編寫函式fun,對長度為7個字元的字串,除首、尾字元外,將其餘5個字元按降序排列。例如,原來的字串為ceaedca,排序後輸出為cedceaa。

int fun(char *s,int num)

}該題採用的排序法是選擇法進行降序排序,演算法是用外for()迴圈從字串的前端往後端走動,每走動乙個字元都用內嵌的for()迴圈在該字元後找出最小的字元與該字元進行換位。直到外for()迴圈走到最後乙個字元。此外,此題還要注意把首尾字元除開,即在最外層for()迴圈中從1開始,只到num-2即可。

3、請編寫乙個unsigned fun(unsigned w),w是乙個大於10的無符號整數,若w是n(n>=2)位的整數,函式求出w的後n-1位的數作為函式值返回。例如:w值為5923,則函式返回923;w值為923則函式返回23。

unsigned fun( unsigned w )

注:由於unsigned型整數在0-65535這間,只要它大於10000則對10000求餘即得出後面4位,否則如果大於1000則對1000求餘得出後3位數,這樣一層一層往小的判斷。由於return的作用除了返回值以外,還有當執行到return時就跳出該程式,所以可以連續的用if()語句。

4、請編一函式void fun(int tt[m][n],int pp[n]),tt指向乙個m行n列的二維陣列,求出二維陣列每列中最小元素,並依次放入pp所指一維陣列中,二維陣列中的數已在主

函式中賦予。

#define m 3

#define n 4

void fun(int tt[m][n],int pp[n])

}/*注:該題用for(i=0;i;j++)用於控制同列內元素的比較。多重迴圈的巢狀總是最裡層迴圈變化最快,即外層迴圈改變乙個值,內層迴圈就要迴圈完一次,對於多重迴圈一定要好好去體會和理解,在多數題目中都要用到多重迴圈(一般為二重)。*/

5、請編乙個函式fun,其中n所指儲存單元中存放了陣列中元素的個數。函式的功能是:刪除所有值為y的元素。陣列元素中的值和y的值由主函式通過健盤讀入。

試題程式。

#define m 20

void fun (int bb, int *n,int y)

/*注:該題的演算法是,用for()迴圈控制元素逐一判斷陣列元素是否等於y,若不等則賦給新數bb,由於刪除的關係j總是小於或等於i,故而可用bb作為新陣列,與第6題相似。還要注意*n=j;如果沒有這個語句則不能傳回新陣列的個數,另外也不能換成n=&j;這點是用指標時常犯的錯誤,切記!*/

6、 請編寫乙個函式int fun(int x),它的功能是:判斷整數x是否是同構數。若是同構數,函式返回1;否則返回0。

所謂「同構數」是指這樣的數,它出現在它的平方數的右邊。例如:輸入整數5,5的平方數是25,5是25中右側的數,所以5是同構數。x的值由主函式從健盤讀入,要求不大於100。

int fun (int x)

/*注:由「同構數」的定義可得只要求出平方數或平方數的最後一位或平方數的最後兩位然後與x進行判斷即可,分別求餘後即得出平方數的右邊。*/

7、請編寫函式fun,它的功能是:求出ss所指字串中、指定字元的個數,並返回此值。例如:若輸入字串:123412132,輸入字元為:1,則輸出:3。

#define m 81

int fun(char *ss,char c)

return(num);}

/* 注:本題用while()迴圈來控制字元的移動,每移動乙個字元都要進行判斷(if(*ss==c))是否為指定的字母,若是則個數加1。這裡要注意如何讓ss指標向下走動(ss++)。*/

8、請編寫函式fun,經的功能是:求出1到1000之內能被7或11整除、但不能同時補7和11整除的所有整數並將它們放在a所指的陣列中,通過n返回這些數的個數。

void fun(int *a,int *n)

*n=m;

}/* 該題關鍵就是如何表示能被7或11整除,但不能同時被7和11整除。用(i%7==0)//(i%11==0)來表示能被7或11整除,用 !((i%7==0)&&(i%11==0))來表示不能同時被7和11整除。

9、定義了n*n的二維陣列,並在主函式中自動賦值。請編寫函式fun(int a[n]),函式的功能是:使陣列第一行元素中的值與最後一行元素中的值對調、第二行元素的值與倒數第二行中的值對調、……、

其他依次類推。

#define n 5

fun(int a[n])

}/* 外層for()迴圈用於控制一列一列地移動,內嵌的forr()迴圈用於控制在同一列內對應行元素的對調。a[m]為第m列第i行元素,而a[n-1-i][m]為第m列倒數第i行的元素,正好需要對調。*/

10、 要求程式的功能是:把20個隨機數存入乙個陣列,然後輸出該陣列中的最小值。其中確定最小值的下標的操作在fun函式中實現,請給出該函式的定義。

試題程式。

#include

#include

#define vsize 20

int vector[vsize];

int fun(int list,int size)

/*注:該題的演算法是用乙個變數(j)來儲存最小值元素的下標,在迴圈過程中讓每個元素都與原最小值元素進行大小比較.

程式設計 C語言的二級指標

用c語言指標作為函式返回值 c語言允許函式的返回值是乙個指標 位址 我們將這樣的函式稱為指標函式 函式執行結束後會銷毀在它內部定義的所有區域性資料 include include char strlong char d,char e else intmain c語言二級指標 指向指標的指標 指標可以...

程式設計 C語言的二級指標

用c語言指標作為函式返回值 c語言允許函式的返回值是乙個指標 位址 我們將這樣的函式稱為指標函式 函式執行結束後會銷毀在它內部定義的所有區域性資料 include include char strlong char d,char e else intmain c語言二級指標 指向指標的指標 指標可以...

揭秘 二級C語言上機考試評分原理

上機考試是由計算機對考生的答題結果進行判斷的,而不是人為閱卷,即計算機評分!等級考試的上機考試是分批進行的,在相鄰兩批考次之間,由監考人員做該批考次結束前的 收分 工作 實際上是由計算機完成的 也就是說,當你考完機試後,你的上機成績就已經出來了,只是我們不知道結果罷了。當然,監考人員也不知道,因為最...