


版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 9 章 結(jié)構(gòu)練習(xí) 9-1 】定義一個(gè)能夠表示復(fù)數(shù)的結(jié)構(gòu)類(lèi)型,一個(gè)復(fù)數(shù)包括實(shí)數(shù) 與虛數(shù)兩個(gè)部分。解答:struct complexfloat real;float imaginary;【練習(xí) 9-2 】人的出生日期由年、月、日組成,請(qǐng)?jiān)诶?9-1 中的通 訊錄結(jié)構(gòu)中增加一個(gè)成員: 出生日期, 用嵌套定義的方式重新定義該 結(jié)構(gòu)類(lèi)型。解答:struct dateint year;int month;int day;struct studentint num;char name10;struct date birthday;int computer,english,math;double aver
2、age;【練習(xí) 9-3】例 9-1 中,如果要計(jì)算的是三門(mén)課程的課程平均成績(jī), 應(yīng)該如何改寫(xiě)程序?解答:#include<stdio.h>struct studentint num;char name10;int computer,english,math;double average;int main(void)int i, n;double math_sum,english_sum,computer_sum;struct student s1;printf("Input n:");scanf("%d", &n);printf(&q
3、uot;Input the student's number, name and course scores:n");math_sum=english_sum=computer_sum=0;for(i=1;i<=n;i+)printf("No.%d:",i);scanf("%d%s%d%d%d",&s1.num,,&s1.math,&s1.english ,&puter);math_sum+=s1.math;english_sum+=s1.english; computer_sum+=
4、puter;printf("math_ave:%.2lfnenglish_ave:%.2lfncomputer_ave :%.2lfn",math_sum/n,english_sum/n,computer_sum/n);return 0;【練習(xí) 9-4 】定義一個(gè)包含 5 名學(xué)生信息的結(jié)構(gòu)數(shù)組,并對(duì)該結(jié)構(gòu) 數(shù)組的所有元素進(jìn)行初始化。解答:struct studentint num;char name10;int computer, english, math;struct student s5=30101, "張一",69,75,84 ,30132, &
5、quot;李二",80,85,90,40231, "王三",71,91,74,40754, "趙四",65,76,87,50426, " 劉五 ",81,92,73;【練習(xí) 9-5 】參考例 9-2 ,輸入并保存 10 個(gè)學(xué)生的成績(jī)信息,分別 輸出平均成績(jī)最高和最低的學(xué)生信息。解答:#include<stdio.h>struct studentint num;char name10;int computer,english,math;double average;int main(void)int i,n,max
6、,min;struct student students50;printf("Input n:");scanf("%d",&n);for(i=0;i<n;i+)printf("Input the info of No.%d:n",i+1);printf("number:");scanf("%d",&studentsi.num);printf("name:");scanf("%s",&);printf
7、("math score:");scanf("%d",&studentsi.math);printf("english score:");scanf("%d",&studentsi.english);printf("computer score:");scanf("%d",&puter);studentsi.average=(studentsi.math+studentsi.english+puter
8、)/3.0;max=min=0;for(i=1;i<n;i+)if(studentsmax.average<studentsi.average) max=i;if(studentsmin.average>studentsi.average) min=i;printf("max_average_infortmation:n");printf("number:%d,name:%s,math:%d,english:%d,computer:% d,average:%.2lfn",studentsmax.num,,
9、stu dentsmax.math,studentsmax.english,pute r,studentsmax.average);printf("min_average_information:n");printf("number:%d,name:%s,math:%d,english:%d,computer:% d,average:%.2lfn",studentsmin.num,,stu dentsmin.math,studentsmin.english, pu
10、ter, studentsmin.average);return 0;【練習(xí) 9-6 】定義一個(gè) struct student 一個(gè)學(xué)生信息的輸入和輸出。解答:struct student/*/int num;/*char name10;/*int computer, english, math ; /* double average;/*s, *p;類(lèi)型的結(jié)構(gòu)指針,用其實(shí)現(xiàn)學(xué)生信息結(jié)構(gòu)定義學(xué)號(hào) */姓名 */ 三門(mén)課程成績(jī) */ 個(gè)人平均成績(jī) */p = &s;scanf("%d%s%d%d%d", &p->num, p->name, &
11、;p->math, &p->english, &p->computer);【練習(xí) 9-7 】改寫(xiě)例 9-3 中的函數(shù) update_score( ) ,將第一個(gè)形 參改為結(jié)構(gòu)數(shù)組形式。s,intn,int num,int解答:int update_score(struct studentcourse,int score)int i,pos;for(i=0;i<n;i+)if(si.num=num)break;if(i<n)switch(course)case 1:si.math=score; break;case 2:si.english=scor
12、e; break;case 3:puter=score; break;pos = i;elsepos = -1;return pos;習(xí)題 9一、選擇題1下面定義結(jié)構(gòu)變量的語(yǔ)句中錯(cuò)誤的是DA struct student int num; char name20; s;B struct int num; char name20; s;C struct student int num; char name20; ; struct students;D struct student int num; char name20; ; student s;2如果有定義語(yǔ)句:struct in
13、t x, y; s2 = 1, 3 , 2, 7 ;則語(yǔ)句: printf( “%dn”, s0.y/s1.x );輸出結(jié)果 為B 。A 0B 1C3根據(jù)下面的定義,能打印出字母struct person2M 的語(yǔ)句是DC3。char name10;int age; c10 = “John”, 17, “Paul ”, 19, “ Mary”, 18,“Adam”,16 ;Aprintf( “%c”, );B printf(“%c”,1);C printf( “%c”, 0);Dprintf(“%c”,1);4. 設(shè)有如下定義,則對(duì)dat
14、a中的a成員的正確引用是Bstruct sk int a; float b; data, *p 二&data;A. (*p).data.aB.(*P).aC. p->data.aD. 5. 對(duì)于以下結(jié)構(gòu)定義,(*p)->str+中的+加在D <struct int len; char *str; *p;A.指針str 上B.指針p上C. str指向的內(nèi)容上D.語(yǔ)法錯(cuò)誤 二、填空題1. “. ”稱(chēng)為 成員_(分量)_運(yùn)算符,“->”稱(chēng)為指向_運(yùn)算符2. 完成下列程序,該程序計(jì)算10名學(xué)生的平均成績(jī)。#in clude <stdio.h> #i nclu
15、de <stri ng.h> struct stude nt int num;char n ame20;int score;struct stude nt stud10; int main(v oid)int i , sum = 0 ;for(i = 0; i < 10; i+)scanf("%d%s%d ", studi.num,__, studi.score);sum += studi.score;printf("aver = %d n", sum/10);return 0;3. 下列程序讀入時(shí)間數(shù)值,將其加1秒
16、后輸出,時(shí)間格式為:hh: mm: ss,即小時(shí):分鐘:秒,當(dāng)小時(shí)等于 24小時(shí),置為0。#include<stdio.h>struct int hour, minute, second; time;int main(void)scanf("%d:%d:%d",_&time.hour, &time.minute,&time.second_);time.second+;if( _time.second_ = 60)_time.minute+ _;time.second = 0;if(time.minute = 60)time.hour+;t
17、ime.minute = 0;if( _time.hour = 24_ )time.hour = 0;time.minute,printf ("%d: %d: %d n", time.hour, time.second );return 0;4寫(xiě)出下面程序的運(yùn)行結(jié)果 1 2 A B struct s1char c1, c2;int n;struct s2int n;struct s1 m; m = 1, A', 'B' , 2 ; int main(void)printf( “%return 0;n”5寫(xiě)出下面程序的運(yùn)行結(jié)果23, wang, 98.
18、5, wang。struct abcint a;float b;char *c; ;int main(void)struct abc x = 23,98.5,"wang"struct abc *px = &x;printf("%d, %s, %.1f, %s n", x.a, x.c, (*px).b, px->c );return 0;三、程序設(shè)計(jì)題1. 時(shí)間換算:用結(jié)構(gòu)類(lèi)型表示時(shí)間內(nèi)容(時(shí)間以時(shí)、分、秒表示) , 輸入一個(gè)時(shí)間數(shù)值,再輸入一個(gè)秒數(shù) n(n<60) ,以 h:m: s 的格式輸 出該時(shí)間再過(guò) n 秒后的時(shí)間值 (超過(guò)
19、 24 點(diǎn)就從 0 開(kāi)始計(jì)時(shí))。試編寫(xiě) 相應(yīng)程序。解答:#include<stdio.h> struct timeint hour;int minute;int second;int main(void)int n;struct time tim;printf("Enter time:");scanf("%d%d%d",&tim.hour,&tim.minute,&tim.second); printf("Enter seconds:");scanf("%d",&n);t
20、im.hour=(tim.hour*60*60+tim.minute*60+tim.second+n)/3600%2 4;tim.minute=(tim.minute*60+tim.second+n)/60%60; tim.second=(n+tim.second)%60;printf("%d:%d:%d",tim.hour,tim.minute,tim.second);return 0;2.計(jì)算兩個(gè)復(fù)數(shù)之積: 編寫(xiě)程序, 利用結(jié)構(gòu)變量求解兩個(gè)復(fù)數(shù)之積(3+4i) x (5+6i )。提示:求解(a1+a2i) x(b1+b2i),乘積的實(shí)部為:aix bl - a2x b
21、2, 虛部為: a1x b2 + a2 x b1。解答:#include<stdio.h>struct complexint real,im;struct complex cmult(struct complex a,struct complex b);int main(void)struct complex a=3,4,b=5,6,c;c=cmult(a,b);printf("(%d+%di)(%d+%di)=%d+%din",a.real,a.im,b.real,b.im,c.real,c.im);return 0;struct complex cmult(
22、struct complex a,struct complex b)struct complex c;return c;3.平面向量加法:輸入兩個(gè)二維平面向量V1=(xl, y1)和V2=(x2,y2)的分量,計(jì)算并輸出兩個(gè)向量的和向量。試編寫(xiě)相應(yīng)程序。解答:#include<stdio.h>struct vectorfloat x,y;struct vector vec(struct vector v1,struct vector v2);int main(void)struct vector v1,v2,v;printf("x1 and y1:");scan
23、f("%f%f",&v1.x,&v1.y);printf("x2 and y2:");scanf("%f%f",&v2.x,&v2.y);v=vec(v1,v2);printf("v=(%f,%f)",v.x,v.y);return 0;struct vector vec(struct vector v1,struct vector v2)struct vector v;v.x=v1.x+v2.x;v.y=v1.y+v2.y;return v;4. 查找書(shū)籍:從鍵盤(pán)輸入 10 本書(shū)的
24、名稱(chēng)和定價(jià)并存入結(jié)構(gòu)數(shù)組中, 從中查找定價(jià)最高和最低的書(shū)的名稱(chēng)和定價(jià), 并輸出。 試編寫(xiě)相應(yīng)程 序。解答:#include<stdio.h>#define NUMBER 10struct bookchar name10;float price;int main(void)int i,maxl,minl,n;struct book testNUMBER;for(i=0;i<NUMBER;i+) scanf("%s%f",,&testi.price);maxl=minl=0;for(i=1;i<n;i+)if(testmaxl
25、.price<testi.price) maxl=i; if(testminl.price>testi.price) minl=i;printf("MaxPrice:%f,%sn",testmaxl.price,);printf("MinPrice:%f,%sn",testminl.price,);return 0;5通訊錄排序:建立一個(gè)通訊錄,通訊錄的結(jié)構(gòu)包括:姓名、生日、 電話(huà)號(hào)碼;其中生日又包括三項(xiàng):年、月、日。編寫(xiě)程序,定一個(gè)嵌 套的結(jié)構(gòu)類(lèi)型,輸入n(n < 10)個(gè)聯(lián)系人信息
26、,再按照他們的年齡從大到小依次輸出其信息。試編寫(xiě)相應(yīng)程序。解答:#include<stdio.h>struct dateint year;int month;int day;struct friends_listchar name10;struct date birthday;char phone15;void sort(struct friends_list s,int n);int main(void)int i,n;struct friends_list friends10;printf("Input n:");scanf("%d",&
27、amp;n);printf("Input %d friends' name ,birthday and phone:",n);for(i=0;i<n;i+)scanf("%s%d%d%d%s",,&friendsi.birthday.year,&friendsi.birthday.month,&friendsi.birthday.day,&friendsi.phone);sort(friends,n);for(i=0;i<n;i+)printf("%s%d/%d/%d
28、%sn",,friendsi.birthday.year,friendsi.birthday.month,friendsi.birthday.day,friendsi.phone);return 0;void sort(struct friends_list s,int n)int i,j,index;struct friends_list temp;for(i=0;i<n-1;i+)index=i;for(j=i+1;j<n;j+)if(sindex.birthday.year>sj.birthday.year)index=j;else
29、if(sindex.birthday.year=sj.birthday.year)&&(sindex.birthday.month>sj.birthday.month)index=j;else if(sindex.birthday.year=sj.birthday.year) &&(sindex.birthday.month=sj.birthday.month)&&(sindex .birthday.day>sj.birthday.day)index=j;temp=si;si=sindex;sindex=temp;6按等級(jí)統(tǒng)計(jì)學(xué)生成績(jī):輸入 10 個(gè)學(xué)生的學(xué)號(hào)、姓名和成績(jī),輸 出學(xué)生的成績(jī)等級(jí)和不及格人數(shù)。每個(gè)學(xué)生的記錄包括學(xué)號(hào)、姓名、 成績(jī)和等級(jí), 要求定義和調(diào)用函數(shù) set_grade() 根據(jù)學(xué)生成績(jī)?cè)O(shè)置其 等級(jí),并統(tǒng)計(jì)不及格人數(shù),等級(jí)設(shè)置: 85
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨章黨史國(guó)史國(guó)情知識(shí)競(jìng)賽題庫(kù)及答案(共190題)
- 溶血三項(xiàng)在新生兒溶血檢測(cè)中的靈敏度及特異度分析
- 學(xué)院食材采購(gòu) 投標(biāo)方案(技術(shù)方案)
- 電商平臺(tái)具體業(yè)務(wù)
- 中醫(yī)護(hù)理學(xué)(第5版)課件 第一節(jié) 中藥方劑基本常識(shí)
- 電子商務(wù)安全交易規(guī)范手冊(cè)
- 公路建設(shè)項(xiàng)目工程可行性研究報(bào)告編制辦法
- 系統(tǒng)可行性分析包括哪些內(nèi)容
- 農(nóng)產(chǎn)品加工與綜合利用技術(shù)手冊(cè)
- 品牌建設(shè)與營(yíng)銷(xiāo)策略實(shí)施方案
- GB/T 15819-2006灌溉用聚乙烯(PE)管材由插入式管件引起環(huán)境應(yīng)力開(kāi)裂敏感性的試驗(yàn)方法和技術(shù)要求
- GB/T 12996-2012電動(dòng)輪椅車(chē)
- 變壓器的維護(hù)及檢修技能培訓(xùn)課件
- 大雁考上郵遞員新課件
- 《材料分析測(cè)試技術(shù)》全套教學(xué)課件
- 消防水池 (有限空間)作業(yè)安全告知牌及警示標(biāo)志
- 船舶保險(xiǎn)投標(biāo)文件模板
- (完整版)形式發(fā)票模版(國(guó)際件通用)
- 施工二次結(jié)構(gòu)模板技術(shù)交底(一)
- 報(bào)關(guān)實(shí)務(wù)完整版課件全套ppt最全電子教案整書(shū)教案教學(xué)設(shè)計(jì)教學(xué)教程
- GM∕T 0036-2014 采用非接觸卡的門(mén)禁系統(tǒng)密碼應(yīng)用指南
評(píng)論
0/150
提交評(píng)論