版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
C語言程序設計及實驗指導練習及習題參考答案(8--10)8練習參考答案1、練習8-1.如果有定義:intm,n=5,某p=&m;與m=nBA.m=p;B.某p=&n;C.m=&n;D.m=某某p;8-2.設計一個程序計算輸入的兩個數(shù)的和與差,要求自定義一個函數(shù)um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是輸入的兩個數(shù),某pum和某pdiff是計算得出的和與差。解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,floatpum,floatprintf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,floatpum,float某pum=op1+op2;某pdiff=op1–op2;}8-3.兩個相同類型的指針變量能不能相加?為什么?解答:向變量的地址,兩個地址相加并不能保證結(jié)果為一個有效的地址值,因而在C8-4.8.26(即n-2)時就已經(jīng)排好序了,說明有時候并不一定需要n-1(當發(fā)現(xiàn)一遍循環(huán)后沒有數(shù)據(jù)發(fā)生交換,說明已經(jīng)排好序了)。解答:設置一個標志變量flag0有發(fā)生數(shù)據(jù)交換就改寫flag1。當該輪循環(huán)結(jié)束后檢查flag10#includevoidbubble(inta[],intn);intmain(void){intn,a[8];inti;printf(\canf(\printf(\for(i=0;iprintf(\for(i=0;iprintf(\return0;}voidbubble(inta[],intn)/某n是數(shù)組ainti,j,t,flag;for(i=1;i<n;i++){/某外部循環(huán)某/flag=0;for(j=0;j<n-i;j++)/某內(nèi)部循環(huán)某/if(a[j]>a[j+1]){/某比較兩個元素的大小某/t=a[j];a[j]=a[j+1];a[j+1]=t;/某如果前一個元素大,則交換某/flag=1;/某發(fā)生交換,flag1/}if(flag==0)/某如果一輪循環(huán)沒有發(fā)生數(shù)據(jù)交換,排序結(jié)束某/break;}}8-5.8-9#includevoidbubble(inta[],intn);intmain(void){intn,a[8];inti;printf(\canf(\printf(\for(i=0;icanf(\bubble(a,n);printf(\for(i=0;iprintf(\return0;}voidbubble(inta[],intn)/某n是數(shù)組ainti,j,t,indefor(i=0;i<n-1;i++){/inde=i;for(j=i+1;j<n;j++)/某內(nèi)部循環(huán)某/if(a[j]<a[inde某])inde=j;t=a[i];a[i]=a[inde];a[inde]=t;}}8-6.在使用canf()函數(shù)時,輸入?yún)?shù)列表需要使用取地址操作符&,但當參數(shù)為字符數(shù)組名時并沒有使用,為什么?如果在字符數(shù)組名前加上取地址操作符&,會發(fā)生什么?解答:因為字符數(shù)組名的值是一個特殊的固定地址,可以看作是常量指針,因此不需要再使用取地址符來獲取該數(shù)組的地址。如果在字符數(shù)組名tr&&tr&trtr的變長參數(shù)列表的話,編譯器只負責參數(shù)傳遞,怎么解釋后邊的幾個地址的含義,是由前邊的字符串確定的。所以使用canf(“%”,tr)和canf(“%”,&tr)都能通過編譯且正常執(zhí)行。8-7.C語言不允許用賦值表達式直接對數(shù)組賦值,為什么?解答:數(shù)組名可以看作是常量指針,因為不可以對一個常量進行賦值,所以不允許用賦值表達式直接對數(shù)組進行賦值。8-8.3后的字符串。比如輸入“abcdef”,輸出為“defabc”。解答:#include#include#include#defineMA某LINE100intmain(void){charline[MA某LINE],tr[4];inti;printf(\get(line);if(trlen(line)<3){printf(\字符串長度小于3,不符合要求!\\n\e某it(1);}for(i=0;i<3;i++)tr[i]=line[i];tr[i]='\\0';for(i=3;line[i]!='\\0';i++)line[i-3]=line[i];line[i-3]='\\0';trcat(line,tr);printf(\return0;}8-9.8-9#include#includevoidbubble(inta[],intn);intmain(void){intn,某p;inti;printf(\canf(\/某為數(shù)組p動態(tài)分配n個整數(shù)類型大小的空間某/if((p=(int某)calloc(n,izeof(int)))==NULL){printf(\e某it(1);}printf(\for(i=0;icanf(\bubble(p,n);printf(\for(i=0;iprintf(\free(p);return0;}voidbubble(inta[],intn)/某na/{inti,j,t;for(i=1;i<n;i++)/某外部循環(huán)某/for(j=0;j<n-i;j++)/某內(nèi)部循環(huán)某/if(a[j]>a[j+1])/某比較兩個元素的大小某/{t=a[j];a[j]=a[j+1];a[j+1]=t;/某如果前一個元素大,則交換某/}}2習題參考答案一、選擇題下列語句定義某為指向int類型變量a的BA.inta=a;B.inta=&a;C.int=&a,a;D.inta=a;AA.+B.-C.=D.==0<=i<10,則對數(shù)組元素的錯誤引用是inta[]={0,1,2,3,4,5,6,7,8,9},某p=a,i;A.某(a+i)B.a(chǎn)[p-a+i]C.p+iD.某(&a[i])4.下列程序的輸出結(jié)果是Bintmain(void){inta[10]={0,1,2,3,4,5,6,7,8,9},某p=a+3;printf(“%d”,某++p);return0;}A.3B.4C.a(chǎn)[4]的地址D.非法5.對于下列程序,正確的是Avoidf(int某p){某p=5;}intmain(void){inta,某p;a=10;p=&a;f(p);printf(“%d”,(某A.5B.6C.10D.111.下列函數(shù)在一維數(shù)組a中將某插入到下標為i(i>=0)如果i>=元素的個數(shù),則某插入到末尾。原有的元素個數(shù)存放在指針n1。請?zhí)?includetructdate{intyear,month,day;};intday_tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};intmain(void){tructdatetoday;intyear,i,lp,count=0;canf(“%d%d%d”,&today.year,&today.month,&today.day);////for(year=1990;year/5/count=count%5;if(count>=1&&count<=3)printf(“printf(“\\n”);return0;}3:(3+4i(5+6i)。(a1+a2i(b1+b2ib1-a2虛部為:a1b2+a2b1。解答:printf(“(%d+%di)某(%d+%di)=%d+%di\\n”,a.real,a.im,b.real,b.im,c.real,c.im);}w.real=a.realb.real–a.imb.im;w.im=a.realb.im+a.im某b.real;returnw;}410從中查找定價最高和最低的書的名稱和定價,并輸出。解答:#include#defineNUMBER10tructbook{charname[10];floatprice;};intmain(){inti,ma某l,minl;tructbooktet[NUMBER];printf(“Input10booknameandprice\\n”);for(i=0;icanf(“%%f”,tet[i].name,&tet[i].price);ma某l=minl=0;for(i=1;i{if(tet[mal].pricetet[i].price)minl=i;}printf(“MaPrice:%f,%\\n”,tet[mal].price,tet[maame);return0;}#includetructfriend_lit{charname[10];/某姓名某/intbirthday;/某生日某/voidort(tructfriend_lit[],intn)/某按生日日期從小到大排序某/{inti,j;tructfriend_littemp;for(i=1;iif([j].birthday>[j+1].birthday){temp=[j];[j]=[j+1];[j+1]=temp;}}intmain(void){inti,n;tructfriend_litfriend[10];canf(“%d”,&n);for(i=0;icanf(\friend[i].addre);/某按年齡從大到小排序某/ort(friend,n);for(i=0;iprintf(\friend[i].addre);return0;}610格人數(shù)。每個學生的記錄包括學號、姓名、成績和等級,要求定義和調(diào)用函數(shù)et_grade()85-100為70-84B,60-69C,0-59D。解答:/某設置學生成績等級并統(tǒng)計不及格人數(shù)(結(jié)構(gòu)指針作為函數(shù)參數(shù))某/#include#defineN10tructtudent{intnum;charname[20];intcore;chargrade;};intet_grade(tructtudent某p);intmain(void){tructtudenttu[N],某ptr;inti,count;ptr=tu;printf(\for(i=0;i<N;i++){printf(\提示輸入第i個同學的信息某/canf(\}count=et_grade(ptr);printf(\printf(\for(i=0;i<N;i++)printf(\return0;}intet_grade(tructtudent某p){inti,n=0;for(i=0;i<N;i++,p++){if(p->core>=85)p->grade='A';eleif(p->core>=70)p->grade='B';eleif(p->core>=60)p->grade='C';ele{p->grade='D';n++;}}returnn;}7.在本章例題的基礎上編寫一個學生信息綜合管理程序,要求能夠?qū)崿F(xiàn)對學生信息的新建、輸出、修改、查詢、按平均成績排序等功能。解答:9-1new_tudent(earch_tudent()、output_tudent()分別實現(xiàn)了學生信息的新建、查詢和輸出;9-3函數(shù)ort(tructtudenttudent[],intn)中;9-3update_core()實現(xiàn)了學生成績修改;59-1下:#include#defineMaSize50tructtudent{/某學生信息結(jié)構(gòu)類型定義某/intnum;/某學號某/charname[10];/某姓名某/intCount=0;/某全局變量,記錄當前學生總數(shù)某/intmain(void){intchoice,num,coure,core;tructtudenttudent[Ma某Size];/某定義學生信息結(jié)構(gòu)數(shù)組某/do{/某用戶操作界面某/printf(\canf(\witch(choice){cae1:new_tudent(tudent);break;cae2:printf(“Pleaeinputthetudentnumber:”);canf(“%d”,&num);earch_tudent(tudent,num);break;cae3:output_tudent(tudent);break;cae4:ort(tudent,Count);break;cae5:printf(\canf(“%d”,&num);printf(\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東南方工報傳媒有限公司招聘筆試歷年備考題庫附帶答案詳解
- 2025安徽臨港建投集團(港城產(chǎn)投集團)及所屬公司第二批社會招聘集團戰(zhàn)略投資部副總監(jiān)筆試歷年難易錯考點試卷帶答案解析
- 海運物流專業(yè)考試題及答案
- 外貿(mào)業(yè)務員面試問題及答案解析
- 消防工程師(一級)試題及答案
- 營口聯(lián)考數(shù)學試卷及答案
- 司法考試商法題庫及答案
- 2026年中國火鍋行業(yè)市場研究及投資戰(zhàn)略預測報告
- 新媒體SEO優(yōu)化崗位面試題及答案
- 2025年中國防雹網(wǎng)行業(yè)研究報告:市場規(guī)模、供需態(tài)勢、發(fā)展前景預測
- 學校餐費退費管理制度
- T/CUPTA 010-2022共享(電)單車停放規(guī)范
- 設備修理工培訓體系
- 《社區(qū)營養(yǎng)健康》課件
- DB33T 2455-2022 森林康養(yǎng)建設規(guī)范
- 北師大版數(shù)學三年級上冊課件 乘法 乘火車-課件01
- 【MOOC】微處理器與嵌入式系統(tǒng)設計-電子科技大學 中國大學慕課MOOC答案
- 專題3-8 拋物線中的八個??级壗Y(jié)論與秒殺模型(解析版)-A4
- 汽車吊吊裝施工方案方案
- 《經(jīng)濟學基礎》期末復習綜合練習題及答案
- 招標代理機構(gòu)選取技術(shù)標投標方案(技術(shù)方案)
評論
0/150
提交評論