2012級 C語言復習題(20題) - 下載本文

函數+指針+結構體(20題)

(1) 編寫函數void changeStr(char *s),其功能是將s指向的字符串中的所有小

寫字母轉換成相應的大寫字母、所有大寫字母轉換成小寫字母、非字母字符不變。

(2) 編寫函數void factor(int x ,int *p, int *n),其功能是求解整數x的因子,將

這些因子存放到p指向的數組中,并將因子的個數存儲到n指向的變量中。提示:整數24的因子為2,4,6,8,12,24。

(3) 編寫函數int sum(int a[], int n, int res[2]),其功能是將長度為n的數組a的

【各元素之和】以及數組a中【最大值與最小值的差值】存放在數組res中。

(4) 定義結構體Student,包含成員:姓名char name[20]、學號long int number、

性別char sex和三科成績float scores[3]等。要求:a)計算5位同學各自的總成績、平均分并輸出;b)統計不及格人數(有任何一科不及格即標記為不及格)并輸出不及格同學的信息;

(5) 編寫函數void sort(struct Student stu[],int n),其功能是將n位學生按照總

成績從高到低排序后輸出每一位學生的信息。其中,Student結構體包含的成員有:姓名char name[20]、學號long int number、性別char sex和總成績float totalScore等。

(6) 定義結構體Time,包含成員:int year、int month和int day。編寫函數int

compareTime(Time t1, Time t2),用于比較兩個時間的先后關系。若t1t2,返回1。

(7) 編寫函數int ComputeSum(int *p,int n),其功能是計算p所指向的長度為

n的整型數組中所有質數的和。

(8) 編寫函數void print(int n,char ch),其功能是輸出n行由字符ch所構成的

圖形。例如print(3,’#’)和print(4,’*’)得到的輸出圖形分別為

(9) 聲明四個指針變量p1、p2、p3和p4,分別指向四個float型變量a、b、c

和d。使用p1、p2、p3、p4實現a、b、c、d的從大到小排序。

(10) 編寫函數void display(struct Student *s),其功能是顯示s所指向學生的全

部信息(包括姓名、學號、性別、每科的成績、總成績以及平均成績)。其中,結構體Student包含的成員有:姓名char name[20]、學號long int number、性別char sex和三科成績float scores[3]等。

(11) 編寫函數void _mystrcon(char *res, char *s1, char *s2),其功能是將s1所

指向的字符串與s2指向的字符串進行拼接,并將拼接結果從大到小排序后賦值給res。

(12) 定義結構體Birthday,包含成員年份int year、月份int month、日int day。

編寫一個函數bool judgement(Birthday b1, Birthday b2),其功能是判斷兩個人是否同年同月同日生,如果是返回ture,否則返回false。

(13) 定義結構體Teacher,包含成員姓名char name[20]、性別char sex、生日

Birthday(結構體,包含成員年份int year、月份int month、日int day)、工資收入double wages。編寫函數void input(Teacher &t)和void display(teacher *t)分別用于輸入和輸出教師的信息。

(14) 編寫函數void getMaxAndMin(int *p,int res[2]),其功能是求解p所指向的

二維數組中的最大偶數和最小奇數分別存放到res數組中。

(15) 編寫函數bool isIncluded(char *s1 ,char *s2),其功能是判斷s2所指向的

字符串是否在s1所指向的字符串中出現過。如果出現則返回第一次出現的位置。

(16) 編寫函數void Change(int x, int base),其功能是求解正整數x的base進制

(2<=base<=16)表現形式并輸出。

(17) 一只兔子躲進了10個環形分布的洞的某一個中,狼在第一個洞沒有找到

兔子,就隔一個洞,到第三個洞去找,也沒有找到,就隔兩個洞,到第六個洞去找,以后每次多一個洞去找兔子......如此往復,請問兔子在哪個洞中才是安全的?(提示:假設某個洞在狼尋找了10000次后依然不會到達,即可認為該洞是安全的)。

(18) 定義函數void searchAndDisplay(Student *ps, int kind),其功能是依據用戶

選擇的操作類型(kind=1表示依據姓名進行查找,kind=2表示依據學號進

行查找,king=3表示依據年齡進行查找)在ps所指向的Student數組中查找符合條件的學生,并輸出其相應的信息。其中,Student結構體包含的成員有:姓名char name[20]、學號long int number、性別char sex和年齡int age等。

(19) 編寫程序輸出奇數方陣,奇數方陣的規則如下

? 1 放在第一行的正中間;

? 下一個數放在當前位置的上一行、下一列;

? 如果當前位置是第一行,下一個數放在最后一行;如果當前位置是最

后一列,下個放在第一列;

? 如果下一個數要放的位置上已經有數字,則下一個數字放在當前位置

的下一行,相同列

(20) 編寫函數void sort(char*s1,char *s2,char *s3),其功能是將s1、s2和s3

指向的三個字符串按照從小到大排序后輸出。





海南麻将怎么玩图解 如何开通股票账户 公司股票下跌 哪个炒股开户app 资产配置基金管理 发行股票分录 明天股票大盘分析* 申能股份股票 股票软件排行 股市与市场分析 股票股票