版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
思考題1:ave需要定義為浮點(diǎn)型float或double。計(jì)算平均值語句應(yīng)寫為:ave=(a+b)/2.0。注意一定要寫成2.0,而不能寫成2,否則ave中就不會(huì)存放平均值的小數(shù)部分。將數(shù)字字符9轉(zhuǎn)換為數(shù)字9,應(yīng)進(jìn)行’9’-‘0’操作。9/2的值是4,因?yàn)?和2兩個(gè)運(yùn)算量都為整數(shù),所以結(jié)果也為整數(shù)。9/2.0的值是4.5。因?yàn)閮蓚€(gè)運(yùn)算量中2.0是浮點(diǎn)數(shù),所以結(jié)果也為浮點(diǎn)數(shù)。當(dāng)算術(shù)表達(dá)式中的運(yùn)算量是char和float時(shí),系統(tǒng)先將char型轉(zhuǎn)換為int,因?yàn)橛衒loat,所以再將int和float轉(zhuǎn)換為double型,結(jié)果為double。討論題1.1將代碼中的語句“area=150;”改為“scanf("%d",&area);”討論題1.2可以定義存放平時(shí)成績的整型變量、存放期末成績的整型變量、存放成績1的浮點(diǎn)型變量、存放成績2的浮點(diǎn)型變量和存放總評(píng)成績的浮點(diǎn)型變量。討論題1.3執(zhí)行語句“ch='b'-32;”后,字符型變量ch中存放的是字母'B',再執(zhí)行“ch=ch+2”后,變量ch中存放的是字母'D'。注意:嚴(yán)格講,字符型變量ch中存放的是字母對(duì)應(yīng)的ASCII碼值。討論題1.4進(jìn)行算術(shù)運(yùn)算時(shí),如果一個(gè)運(yùn)算量是int型,另一個(gè)是float型,那么系統(tǒng)會(huì)將int和float型均轉(zhuǎn)換為double型進(jìn)行計(jì)算。思考題2:C語言中關(guān)系表達(dá)式的結(jié)果有:“真”和“假”。如果關(guān)系表達(dá)式值為非零值(即:關(guān)系表達(dá)式的值為1),則結(jié)果為“真”,否則(即,關(guān)系表達(dá)式的值為0),結(jié)果為“假”。C語言中邏輯表達(dá)式的結(jié)果有:“真”和“假”。如果邏輯表達(dá)式值為非零值(即:邏輯表達(dá)式的值為1),則結(jié)果為“真”,否則(即,邏輯表達(dá)式的值為0),結(jié)果為“假”。應(yīng)使用:ch>=’A’&&ch<=’Z’。if后面的表達(dá)式可以是算術(shù)表達(dá)式。if(a%3)printf(“%f\n”,a);是合法的。當(dāng)a的值不是3的倍數(shù)時(shí),會(huì)輸出a的值。switch語句中若不使用break語句在語法上沒有錯(cuò)誤。若在switch中沒有break語句,則不能實(shí)現(xiàn)分支結(jié)構(gòu)。討論題2.1當(dāng)a的值為2或15時(shí),關(guān)系表達(dá)式“3<=a<=8”的值都為1,即為“真”。討論題2.2判斷閏年的表達(dá)式:y%400==0||(y%4==0&&y%100!=0)。討論題2.3本程序中的else與第一個(gè)if配對(duì)。else應(yīng)與離它最近的if配對(duì),但因?yàn)椤癷f(b>c) c=1;”用“{}”括起,所以該部分為第一個(gè)if的子句,因此else不能與第二個(gè)if配對(duì)。討論題2.4將case2后面的語句改為如下形式: if(y%400==0||y%4==0&&y%100!=0)//判斷當(dāng)前年份是否為閏年 day=28;else day=29;break;討論題2.5用如下表達(dá)式: k=(85<=s&&s<=100)*2+(75<=s&&s<=84)*3+(60<=s&&s<=74)*4+(s<60)*5不管分?jǐn)?shù)是多少,k的值只能是2或3或4或5。不能將范圍轉(zhuǎn)換為0、1、2、3,因?yàn)?需要留給不滿足任何分?jǐn)?shù)段的情況,即非法數(shù)據(jù)。討論題2.6答:完善實(shí)例2.12,程序如下所示:#include<stdio.h>intmain(void){ floata=0,b=0,c=0; charsym='\0'; intflag=0; printf("請(qǐng)輸入算式:a+b,a-b,a*b,a/b\n"); scanf("%f%c%f",&a,&sym,&b); printf("%f%c%f=",a,sym,b); switch(sym) { case'+':c=a+b;break; case'-':c=a-b;break; case'*':c=a*b;break; case'/':if(b==0) flag=1; else c=a/b; break; default:flag=1; } if(flag==1) printf("error"); else printf("%f\n",c); return0;}1.while循環(huán)是先判斷條件,當(dāng)條件為真時(shí)執(zhí)行循環(huán)體;do-while循環(huán)是先執(zhí)行循環(huán)體,再判斷條件。因此兩者的主要區(qū)別是do-while循環(huán)至少要執(zhí)行一次循環(huán)體,而while循環(huán)有可能不執(zhí)行循環(huán)體。2.continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中continue后面的語句,接著判斷是否執(zhí)行下一次循環(huán),因此continue語句并沒有終止循環(huán)。而break語句的作用是從最近的循環(huán)體內(nèi)跳出來,強(qiáng)制結(jié)束所在層的循環(huán)。3.最多可以執(zhí)行5次。由于變量j賦初值后始終沒有變化,因此該語句等價(jià)于:for(i=1;i<=5;i++)printf("*");隨著變量i的變化,循環(huán)語句最多執(zhí)行5次。4.表達(dá)式i%5等價(jià)于i%5!=0。因此當(dāng)i=0或i=5的倍數(shù)時(shí),循環(huán)結(jié)束。5.運(yùn)行結(jié)果是:i=5,s=4。這是因?yàn)楫?dāng)i的值變化為5時(shí),滿足if條件,執(zhí)行break語句,結(jié)束循環(huán)。如將break語句改為continue語句,則形成死循環(huán)。這是因?yàn)閕的值永遠(yuǎn)為1。討論題3.1#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(void){ inti=0,op1=0,op2=0,pupil=0,answer=0,total=0; srand(time(0)); for(i=1;i<=4;i++) { op1=rand()%100; op2=rand()%100; printf("%d+%d=",op1,op2); scanf("%d",&pupil); answer=op1+op2; if(answer==pupil) { total=total+25; printf("Right\n"); } else printf("wrong\n"); } printf("Thescoreis%d\n",total);return0;}討論題3.2while語句是先判斷表達(dá)式,根據(jù)判斷結(jié)果決定是否再執(zhí)行循環(huán)體;do-while語句是先無條件執(zhí)行一次循環(huán)體,然后再判斷表達(dá)式;do-while語句至少執(zhí)行一次循環(huán)體,但while語句可能一次也不執(zhí)行循環(huán)體。討論題3.3#include<stdio.h>#include<conio.h>intmain(void){ charch; do { ch=getch(); printf("*"); }while(ch!='\r'); return0;}討論題3.4第1個(gè)問題適合用實(shí)例3.8介紹的遞推算法實(shí)現(xiàn)。第2個(gè)問題適合用實(shí)例3.9介紹的迭代算法實(shí)現(xiàn)。第3個(gè)問題適合用實(shí)例3.4介紹的計(jì)算近似值的算法實(shí)現(xiàn)。1.inta[n]={0};這句不對(duì),數(shù)組定義中元素個(gè)數(shù)只能是常量??筛臑閕nta[5]={0}或者將n用宏定義成常量。2.定義一個(gè)包含7個(gè)元素的浮點(diǎn)型數(shù)組floatpayout[7];3.不正確。數(shù)組各個(gè)元素中所存放的數(shù)據(jù)都是同一類型的,由數(shù)組定義中的類型名決定(本題中為float)。初始化的數(shù)據(jù)寫成什么類型都會(huì)被自動(dòng)轉(zhuǎn)化為數(shù)組(元素)的類型。4.for(i=9;i>=0;i--) printf(“%d”,a[i]);或者for(i=0;i<10;i++) printf(“%d”,a[9-i]);//比上面的語句多10次減法運(yùn)算5.視情況而定。如求一個(gè)3×4矩陣中最大的一個(gè)元素時(shí),外循環(huán)控制行、內(nèi)循環(huán)控制列和外循環(huán)控制列、內(nèi)循環(huán)控制行都可以得到相同的結(jié)果。但是如果顯示一個(gè)矩陣,則內(nèi)外循環(huán)對(duì)行和列的控制不同,其效果也不同。6.i=0,j=0,輸出第1個(gè)學(xué)生的數(shù)學(xué)成績j++,j=1,輸出第1個(gè)學(xué)生的英語成績j++,j=2,輸出第1個(gè)學(xué)生的物理成績j++,j=3,j<3不成立,內(nèi)層循環(huán)結(jié)束,輸出一個(gè)回車i++,i=1,j=0,輸出第2個(gè)學(xué)生的數(shù)學(xué)成績j++,j=1,輸出第2個(gè)學(xué)生的英語成績j++,j=2,輸出第2個(gè)學(xué)生的物理成績j++,j=3,j<3不成立,內(nèi)層循環(huán)結(jié)束,輸出一個(gè)回車i++,i=2,j=0,輸出第3個(gè)學(xué)生的數(shù)學(xué)成績j++,j=1,輸出第3個(gè)學(xué)生的英語成績j++,j=2,輸出第3個(gè)學(xué)生的物理成績j++,j=3,j<3不成立,內(nèi)層循環(huán)結(jié)束,輸出一個(gè)回車i++,i=3,j=0,輸出第3個(gè)學(xué)生的數(shù)學(xué)成績j++,j=1,輸出第3個(gè)學(xué)生的英語成績j++,j=2,輸出第3個(gè)學(xué)生的物理成績j++,j=3,j<3不成立,內(nèi)層循環(huán)結(jié)束,輸出一個(gè)回車i++,i=4,j=0,輸出第4個(gè)學(xué)生的數(shù)學(xué)成績j++,j=1,輸出第4個(gè)學(xué)生的英語成績j++,j=2,輸出第4個(gè)學(xué)生的物理成績j++,j=3,j<3不成立,內(nèi)層循環(huán)結(jié)束,輸出一個(gè)回車i++,i=5,i<5不成立,外層循環(huán)結(jié)束7.該字符串包含12個(gè)字符,再加上字符串結(jié)束符號(hào)’\0’,應(yīng)該將數(shù)組str定義為有13個(gè)元素的字符型數(shù)組:charstr[13]=“Whoareyou?”;討論題4.1在實(shí)例4.1程序的最后應(yīng)加上下面兩條語句即可:scanf("%d",&i); printf("%d%d%d",a[i],b[i],c[i]);討論題4.2若有初始化“inta[5]={1,2};”,則最后一個(gè)元素的下標(biāo)是4,其元素值是0。因?yàn)閿?shù)組只要初始化,沒給數(shù)據(jù)的,默認(rèn)為0。討論題4.3在實(shí)例4.4中,假設(shè)多名學(xué)生得到相同的最高成績,那么本實(shí)例程序找出的學(xué)生是第一個(gè)最高分。如果想得到最高成績學(xué)生中的最后一個(gè)學(xué)生,將最后幾行的程序代碼修改如下所示:即將”<”改為”<=”即可。 for(i=1;i<N;i++) if(score[k]<=score[i])k=i;討論題4.4要將數(shù)組中的數(shù)據(jù)向左移動(dòng),程序如下所示:#include<stdio.h>intmain(void){ inta[5]={1,2,3,4,5},i=0; for(i=0;i<5;i++) printf("%4d",a[i]); printf("\n"); for(i=0;i<4;i++) a[i]=a[i+1]; for(i=0;i<5;i++) printf("%4d",a[i]); return0;}討論題4.5如果要計(jì)算矩陣周邊的元素之和,要知道周邊元素的特點(diǎn):第一行行下標(biāo)等于零;最后一行行下標(biāo)等于N-1;第一列列下標(biāo)等于零;最后一列列下標(biāo)等于N-1;程序如下所示: for(i=0;i<N;i++) for(j=0;j<N;j++) if(i==0||j==0||i==N-1||j==N-1) sum+=a[i][j];討論題4.6在實(shí)例4.11程序中如果沒有語句“s=0;”,那么v[0]中存放的是第一門課程的平均分,v[1]中存放的是前2門課程的平均成績,v[2]中存放的是3門課程的平均成績。因?yàn)閮?nèi)循環(huán)做完后,一門課程計(jì)算結(jié)束s中存放的是第一門的課程的總分,s=0開始準(zhǔn)備計(jì)算下一門課程的總分計(jì)算,否則s中已經(jīng)存放第一門課程的總分,繼續(xù)循環(huán)累加上第二門課程,所以會(huì)產(chǎn)生如上的結(jié)果。1.不合法。因?yàn)橹羔榩只能存放int型變量的地址,指針q只能存放float型變量的地址。2.輸出*p=30。能執(zhí)行“p=a+5;”語句,但不能預(yù)料輸出結(jié)果。因?yàn)橹羔榩指向第一個(gè)數(shù)組元素的語句為“p=a;”,指向最后一個(gè)數(shù)組元素的語句為“p=a+4;”,語句“p=a+5;”使指針指到數(shù)組元素之外的不可預(yù)計(jì)的存儲(chǔ)單元上,故不是正確用法。3.輸出結(jié)果分別是*p=F,*p=,*p=。即c[5]中的內(nèi)容為F,c[8]和c[10]中的內(nèi)容為空。可用strlen(c)函數(shù)求出數(shù)組c的長度,通過數(shù)組長度值即可限定只能訪問數(shù)組中存放字符串的存儲(chǔ)單元。4.不能。因數(shù)組a,b的首地址是常量,不能被重新賦值,即后兩個(gè)語句“a=b;b=p;”是錯(cuò)誤的。5.“*p”中的值為a。不能執(zhí)行“s++;”語句,因s是常量不能接受s+1的值。討論題5.1q=p;或者q=&a;討論題5.2在實(shí)例5.4中,假設(shè)score[0]的地址為2000,則score[4]的地址是2016。因?yàn)閒loat型占4個(gè)字節(jié),score[1]、score[2]、score[3]、score[4]的地址分別為2004、2008、2012和2016。討論題5.3#include<stdio.h>intmain(void){ chars[20]="abcdefg",*p=s; while(*p!='\0')p++; do { p--; putchar(*p); }while(p!=s); return0;}討論題5.4#include<stdio.h>#include<string.h>intmain(void){ chara[80]="\0",b[80]="\0",c[80]="\0",*p; intn1=0,n2=0,n3=0,max=0; gets(a);gets(b);gets(c); n1=strlen(a); n2=strlen(b); n3=strlen(c); max=n1;p=a; if(max<n2){max=n2;p=b;} if(max<n3){max=n3;p=c;} puts(p); return0;}討論題5.5strlen(strcat(a,b))1.這種說法是錯(cuò)誤的。在C語言中,函數(shù)調(diào)用時(shí)采用的是傳值方式,因此無論實(shí)參與形參是否同名,均占用不同的存儲(chǔ)空間。2.不完全對(duì)。在C語言中,主函數(shù)可以調(diào)用其他函數(shù),但不能被任何函數(shù)調(diào)用。函數(shù)(不包括主函數(shù))可以直接或間接地調(diào)用自己,即遞歸調(diào)用。3.實(shí)參與形參的個(gè)數(shù)必須相同、對(duì)應(yīng)類型一致。調(diào)用函數(shù)時(shí),實(shí)參與形參按順序?qū)?yīng),將值一一傳給對(duì)應(yīng)的形參。以變量的地址(包括數(shù)組的首地址)作為實(shí)參調(diào)用函數(shù)時(shí),形參必須是基類型相同的指針變量。此時(shí)在被調(diào)函數(shù)中可以通過形參間接訪問實(shí)參所代表的存儲(chǔ)單元,以此改變主調(diào)函數(shù)中相應(yīng)變量的值。如:實(shí)例6.4、實(shí)例6.7等。4.答:有3種可能。分別為:“intfun(int*p)”、“intfun(intp[30])”或“intfun(intp[])”。5.相同。這是因?yàn)楹瘮?shù)fun中定義的變量k為動(dòng)態(tài)存儲(chǔ)變量,只占用臨時(shí)的存儲(chǔ)單元,調(diào)用結(jié)束時(shí)將釋放臨時(shí)的存儲(chǔ)單元。執(zhí)行語句“a=fun();”調(diào)用函數(shù)fun時(shí),為變量k開辟了臨時(shí)的存儲(chǔ)單元并賦初值為1,計(jì)算后k=3并返回,則a=3,返回時(shí)釋放存儲(chǔ)單元。之后執(zhí)行語句“b=fun();”調(diào)用函數(shù)fun時(shí),仍為變量k開辟了臨時(shí)的存儲(chǔ)單元并賦初值為1,計(jì)算并返回3,則b=3。如將函數(shù)fun中的變量k定義為靜態(tài)變量,則輸出結(jié)果為a=3,b=9。這是因?yàn)樵谡麄€(gè)程序的運(yùn)行期間,靜態(tài)變量始終占有固定的存儲(chǔ)單元,即使退出函數(shù),靜態(tài)變量占用的存儲(chǔ)單元也不釋放。執(zhí)行語句“a=fun();”調(diào)用函數(shù)fun時(shí),為變量k開辟了固定的存儲(chǔ)單元并賦初值為1,計(jì)算后k=3并返回,則a=3,返回時(shí)不釋放存儲(chǔ)單元。之后執(zhí)行語句“b=fun();”調(diào)用函數(shù)fun時(shí),由于k占用的存儲(chǔ)單元不釋放,k=3,計(jì)算后k=9并返回,則b=9。討論題6.1floatadd(floata,floatb) //函數(shù)的首部returnc; //將計(jì)算結(jié)果返回討論題6.2y=pwr(x,n); //調(diào)用函數(shù)計(jì)算x的n次方returny; //將計(jì)算結(jié)果返回討論題6.3被調(diào)函數(shù)的首部:mycal(intx,inty,int*a,int*b)。調(diào)用函數(shù)的語句為:mycal(x,y,&a,&b)。討論題6.4voiddata_max(float*p,int*q)//p指向平均成績數(shù)組,q指向?qū)W號(hào)數(shù)組{ inti=0,j=0,n=0; floa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工行業(yè)員工績效考核
- 市場(chǎng)行業(yè)策劃員工作總結(jié)
- 瞄準(zhǔn)高效輸出的年度目標(biāo)計(jì)劃
- 2024年廣西壯族自治區(qū)北海市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年河北省承德市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年浙江省寧波市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 美麗家庭事跡材料
- 河南省鄭州市(2024年-2025年小學(xué)六年級(jí)語文)部編版隨堂測(cè)試(上學(xué)期)試卷及答案
- 廣西北海市(2024年-2025年小學(xué)六年級(jí)語文)統(tǒng)編版小升初模擬(上學(xué)期)試卷及答案
- 2025年家電配線組件項(xiàng)目規(guī)劃申請(qǐng)報(bào)告
- 珠海金灣區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)達(dá)標(biāo)卷(含答案)
- 京東五力模型分析報(bào)告
- XX學(xué)校2024年校長務(wù)虛會(huì)講話稿范文
- 大學(xué)英語四級(jí)考試模擬試卷(附答案)
- 廣西壯族自治區(qū)欽州市浦北縣2023-2024學(xué)年七年級(jí)上學(xué)期期末歷史試題
- 法律英語 何家弘編 第四版課文翻譯(1-20課)
- 高級(jí)會(huì)計(jì)師 案例分析第五章 企業(yè)成本管理
- 上海市徐匯區(qū)上海小學(xué)二年級(jí)上冊(cè)語文期末考試試卷及答案
- 精密制造行業(yè)研究分析
- 心源性暈厥護(hù)理查房課件
- 2022-2023學(xué)年浙江省杭州市蕭山區(qū)五年級(jí)(上)期末科學(xué)試卷(蘇教版)
評(píng)論
0/150
提交評(píng)論