C語(yǔ)言程序設(shè)計(jì) 第2版 課后習(xí)題及答案匯 原莉 項(xiàng)目1-10_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第2版 課后習(xí)題及答案匯 原莉 項(xiàng)目1-10_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第2版 課后習(xí)題及答案匯 原莉 項(xiàng)目1-10_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第2版 課后習(xí)題及答案匯 原莉 項(xiàng)目1-10_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第2版 課后習(xí)題及答案匯 原莉 項(xiàng)目1-10_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

習(xí)題與參考答案項(xiàng)目1【思考與練習(xí)】一、填空題1、C程序是由構(gòu)成的,一個(gè)C程序中至少包含。2、C程序的注釋是由和所界定的文字信息組成的。3、開(kāi)發(fā)一個(gè)C程序要經(jīng)過(guò)編輯、、和運(yùn)行4個(gè)環(huán)節(jié)。4、C語(yǔ)言中,頭文件的擴(kuò)展名是。5、C語(yǔ)言源程序的擴(kuò)展名;經(jīng)過(guò)編譯后,生成文件的后綴是;經(jīng)過(guò)連接后,生成文件的擴(kuò)展名是。二、簡(jiǎn)答題1、簡(jiǎn)述C語(yǔ)言程序的運(yùn)行步驟。2、軟件編程中的可讀性原則一般包括那些內(nèi)容?3、什么是算法?算法的特點(diǎn)有哪些?4、參照本章例題,編寫(xiě)一個(gè)C程序,輸出以下內(nèi)容。**************************************************Hello,world!**************************************************5、寫(xiě)出算法。已知圓的半徑,求周長(zhǎng)和面積。項(xiàng)目1思考與練習(xí)參考答案一、填空題1、函數(shù)、一個(gè)主函數(shù)main()2、/*、*/3、編譯、連接4、.h5、.c、.obj、.exe二、簡(jiǎn)答題1、簡(jiǎn)述C語(yǔ)言程序的運(yùn)行步驟。答:(1)編輯C程序源文件;(2)編譯,將編輯好的源程序文件“*.c”,翻譯成二進(jìn)制目標(biāo)代碼文件“*.obj”;(3)連接,將編譯生成的各個(gè)目標(biāo)程序模塊和系統(tǒng)或第三方提供的庫(kù)函數(shù)“*.lib”連接在一起,生成可以脫離開(kāi)發(fā)環(huán)境、直接在操作系統(tǒng)下運(yùn)行的可執(zhí)行文件“*.exe”;(4)運(yùn)行程序。如果運(yùn)行出錯(cuò),這說(shuō)明程序處理的邏輯存在問(wèn)題,需要再次回到編輯環(huán)境針對(duì)程序出現(xiàn)的邏輯錯(cuò)誤進(jìn)一步檢查、修改源程序,重復(fù)編輯→編譯→連接→運(yùn)行的過(guò)程,直到取得預(yù)期結(jié)果為止。2、軟件編程中的可讀性原則一般包括那些內(nèi)容?答:1.編程規(guī)范概要(1)程序結(jié)構(gòu)清晰,簡(jiǎn)單易懂,單個(gè)函數(shù)的程序行數(shù)不得超過(guò)100行。(2)打算干什么,要簡(jiǎn)單,直截了當(dāng),代碼精簡(jiǎn),避免垃圾程序。(3)盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)和公共函數(shù)。(4)不要隨意定義全局變量,盡量使用局部變量。(5)使用括號(hào)以避免二義性。2.可讀性要求(1)可讀性第一,效率第二。(2)主要變量(結(jié)構(gòu)、聯(lián)合、類(lèi)或?qū)ο螅┒x或引用時(shí),注釋能反映其含義。(3)常量定義(define)有相應(yīng)說(shuō)明。(4)處理過(guò)程的每個(gè)階段都有相關(guān)注釋說(shuō)明。(5)利用縮進(jìn)來(lái)顯示程序的邏輯結(jié)構(gòu),縮進(jìn)量一致,可以以Tab鍵為單位。(6)循環(huán)、分支層次不要超過(guò)五層。(7)適當(dāng)?shù)氖褂米⑨專(zhuān)⑨尶梢耘c語(yǔ)句在同一行,也可以在上行。(8)保持各種運(yùn)算的標(biāo)準(zhǔn)形式,通過(guò)括號(hào)避免運(yùn)算符的二義性。3、什么是算法?算法的特點(diǎn)有哪些?答:算法(Algorithm)是對(duì)特定問(wèn)題求解方法與步驟的描述,是程序求解問(wèn)題的核心內(nèi)容。算法的特點(diǎn):有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。4、參照本章例題,編寫(xiě)一個(gè)C程序,輸出以下內(nèi)容。#include"stdio.h"voidmain(){printf("**************************************************\n");printf("Hello,world!\n");printf("**************************************************\n");}5、寫(xiě)出算法。已知圓的半徑,求周長(zhǎng)和面積。算法:(1)定義3個(gè)變量fR、fL、fS分別存儲(chǔ)圓的半徑、周長(zhǎng)和面積。(2)輸入圓的半徑fR的值。(3)分別計(jì)算圓的周長(zhǎng)和面積,fL=2*3.14*fR,fS=3.14*fR*fR。(4)輸出fL和fS。項(xiàng)目2【思考與練習(xí)】一、選擇題1、下面敘述錯(cuò)誤的是_。A.C程序中,各種括號(hào)應(yīng)成對(duì)出現(xiàn)B.C程序中,賦值號(hào)的左邊不可以是表達(dá)式C.C程序中,變量名的大小寫(xiě)是有區(qū)別的D.C程序中,若未給變量賦初值,則變量的初值自動(dòng)為02、以下合法的用戶(hù)標(biāo)識(shí)符是____。A.long B.\t C.5a D.user3、C程序中,合法的關(guān)鍵字是____。A.int B.integer C.Int D.Intger4、下列選項(xiàng)中,優(yōu)先級(jí)最高的運(yùn)算符是____。A.&& B./= C.! D.<=5、C語(yǔ)言程序中,運(yùn)算對(duì)象必須為整數(shù)的運(yùn)算符是__。A.++ B.% C./ D.*6、下列字符串中為合法的字符常量的是____。A.n B.'\n' C.110 D."n"二、填空題1、下面程序的運(yùn)行結(jié)果是。voidmain(){charch1='a',ch2='b',ch3='c',ch4='\101',ch5='\116';printf("a%cb%c\tab%c\n",ch1,ch2,ch3);printf("\t\b%c%c",ch4,ch5);}2、運(yùn)行下面程序,其輸出結(jié)果為。voidmain(){intiA1,iA2,iA3=258;iA1=97;iA2=98;printf("iA1=%c,iA2=%c,iA3=%c",iA1,iA2,iA3);}(3)下面程序的運(yùn)行結(jié)果是。voidmain(){intiX,iY,iM,iN;iX=10;iY=20;iM=iX++;iN=++iY;printf("iX=%d,iY=%d,iM=%d,iN=%d",iX,iY,iM,iN);iM=iX––;iN=––iY;printf("iX=%d,iY=%d,iM=%d,iN=%d",iX,iY,iM,iN);}(4)下面程序的運(yùn)行結(jié)果是。voidmain(){intiX,iY;iX=80;iY=25;printf("iX=%d,iY=%d\n",iX,iY);printf("iX/iY=%d,iX%iY=%d\n",iX/iY,iX%iY);}三、編程題1、編程計(jì)算C語(yǔ)言表達(dá)式20a2-5b3的值,a=5,b=2。2、編程實(shí)現(xiàn)。從鍵盤(pán)輸入一個(gè)四位整數(shù),計(jì)算其個(gè)位、十位、百位、千位的和。3、交換兩個(gè)字符變量的值。項(xiàng)目2思考與練習(xí)參考答案一、選擇題1、D2、D3、A4、C5、B6、B二、填空題1、aabb abcAN2、iA1=a,iA2=b,iA3=?3、iX=11,iY=21,iM=10,iN=21,iX=10,iY=20,iM=11,iN=204、iX=80,iY=25iX/iY=3,iX%iY=5三、編程題1、編程計(jì)算C語(yǔ)言表達(dá)式20a2-5b3的值,a=5,b=2。#include"stdio.h"voidmain(){inta,b;a=5;b=2;printf("%d\n",20*a*a-5*b*b*b);}2、編程實(shí)現(xiàn)。從鍵盤(pán)輸入一個(gè)四位整數(shù),計(jì)算其個(gè)位、十位、百位、千位的和。#include"stdio.h"voidmain(){intiNum;inti1,i2,i3,i4,iSum;printf("pleaseinputainteger(1000-9999):");scanf("%d",&iNum);i1=iNum%10;/*求個(gè)位數(shù)*/i2=iNum/10%10;/*求十位數(shù)*/i3=iNum/100/10;/*求百位數(shù)*/i4=iNum/1000;/*求千位數(shù)*/iSum=i1+i2+i3+i4;printf("thesumis:%d",iSum);}3、交換兩個(gè)字符變量的值。voidmain(){charch1='A',ch2='B',chTemp;printf("ch1=%c,ch2=%c\n",ch1,ch2);chTemp=ch1;ch1=ch2;ch2=chTemp;;printf("ch1=%c,ch2=%c\n",ch1,ch2);getch();}項(xiàng)目3【思考與練習(xí)】一、選擇題1、設(shè)i是int型變量,f是float型變量,用下面的語(yǔ)句給這兩個(gè)變量輸入值:scanf("i=%d,f=%f",&i,&f);為了把100和765.12分別賦給i和f,則正確的輸入為。A.100<空格>765.12<回車(chē)>B.i=100,f=765.12<回車(chē)>C.100<回車(chē)>765.12<回車(chē)>D.x=100<回車(chē)>,y=765.12<回車(chē)>2、以下程序的輸出結(jié)果是。main(){inta=12,b=12;printf("%d%d\n",--a,++b);}A.1010B.1212C.1110D.11133、以下程序輸出結(jié)果是。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}A.7B.6C.5D.44、當(dāng)a=1,b=3,c=5,d=4時(shí),執(zhí)行下面一段程序后,x的值為。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A.1B.2C.3D.65、設(shè)有語(yǔ)句inta=3;則執(zhí)行了語(yǔ)句a+=a-=a*a;后,變量a的值是。A.3B.0C.9D.-126、以下程序的輸出結(jié)果是。#include<stdio.h>main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}A.a=%2,b=%5B.a=2,b=5C.a=%%d,b=%%dD.a=%d,b=%d7、若x和y都是int型變量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果是。A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值8、已知字母A的ASCII碼為十進(jìn)制的65,下面程序的輸出是。main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A.67,DB.B,CC.C,DD.不確定的值9.以下程序的輸出結(jié)果是Voidmain(){Charc=’z’;Printf(“%c”,c-25);}A.aB.zC.z-25D.y二、編程題1.輸入一個(gè)華氏溫度,要求輸出攝氏溫度。公式為:C=5/9(F-32),輸出要有文字說(shuō)明,取2位小數(shù)。式中:C表示攝氏溫度,F(xiàn)表示華氏溫度。編寫(xiě)C語(yǔ)言程序?qū)崿F(xiàn)。2.有2個(gè)懷子,分別裝著紅酒和啤酒,現(xiàn)在想交換這2個(gè)杯子中的酒,應(yīng)該如何交換?編寫(xiě)C語(yǔ)言程序?qū)崿F(xiàn)。3.輸入一個(gè)數(shù),求該數(shù)個(gè)位、十位、百位上的數(shù)之和。編寫(xiě)C語(yǔ)言程序?qū)崿F(xiàn)。4.用編程的形式打印學(xué)生入學(xué)的姓名、性別、年齡、學(xué)號(hào)和入學(xué)成績(jī)。5.已知圓的半徑,求該圓的周長(zhǎng)和面積。項(xiàng)目3思考與練習(xí)參考答案一、選擇題1.B.2.D3.c4.B5.D6.A7.D8.A9.A二、編程題略

項(xiàng)目4【思考與練習(xí)】一、選擇題1、關(guān)于if語(yǔ)句后面一對(duì)括號(hào)中的表達(dá)式,敘述正確的是。 A.只能用關(guān)系表達(dá)式 B.只能用邏輯表達(dá)式 C.只能用關(guān)系表達(dá)式或邏輯表達(dá)式 D.可以使用任意合法的表達(dá)式2、對(duì)switch后括號(hào)內(nèi)的表達(dá)式,敘述正確的是。 A.只能是數(shù)字 B.可以是浮點(diǎn)數(shù) C.只能是整型數(shù)據(jù)或字符型數(shù)據(jù) D.以上敘述都不對(duì)3、iX=2,iY=3,ch='a',表達(dá)式iZ=(iX||iY)&&(ch>'A')的值是。 A.true B.false C.0 D.14、表達(dá)式(6!=8)&&('A'<'a')的值是。A.true B.1 C.0 D.非0值5、intk=x>y?(x>z?x:z):(y>z?y:z)語(yǔ)句的目的是:。A.求x,y,z最大值 B.求x,y,z最小值C.求x,y,z中間值D.求x,y,z平均值6、有如下程序段inta=14,b=15,x;charc=’A’;x=(a&&b)&&(c<’B’);執(zhí)行該程序段后,x的值為。A.ture B.false C.0 D.17、以下程序的輸出結(jié)果是。main(){ inta=0,i=1; switch(i){ case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}printf("%d\n",a);}A.3B.8C.10D.2二、寫(xiě)出下列程序的運(yùn)行結(jié)果1、下面程序的輸出結(jié)果是。#include"stdio.h"main(){inti,j;i=j=2;if(i==1)if(i==2)printf("%d",i=i+j);elseprintf("%d",i=i–j);printf("%d",i);2、下面程序的輸出結(jié)果是。#include"stdio.h"main(){intiX=3; switch(iX) { case1: case2:printf("iX<3\n"); case3:printf("iX=3\n"); case4: case5:printf("iX>3\n"); default:printf("iXunknow\n"); }}3、下面程序的輸出結(jié)果是。#include"stdio.h"main(){charchT='w',chA='m',chB='d',chC='x',chM;chM=(chT>chA)?chT:chA;chM=(chM>chB)?chM:chBchM=(chM>chC)?chM:chC;printf("c%",chM);}三、編程1.輸入一個(gè)整數(shù),判斷該數(shù)的奇偶性。2.編寫(xiě)程序,實(shí)現(xiàn)判斷用戶(hù)輸入的是整數(shù)還是負(fù)數(shù)的功能。3.輸入一個(gè)字符,請(qǐng)判斷是字母、數(shù)字還是特殊字符。4.根據(jù)指定月份,打印該月份所屬的季節(jié)。3,4,5春季;6,7,8夏季;9,10,11秋季;12,1,2冬季。5.小明去參加一個(gè)同學(xué)的生日聚會(huì),同學(xué)的家長(zhǎng)規(guī)定18歲以上的才可以飲酒,所以需要編一程序根據(jù)輸入的年齡打印一張飲酒卷,使的能飲酒的同學(xué)可以獲取飲酒卷。6.根據(jù)用戶(hù)輸入對(duì)應(yīng)的星期(char[])顯示相應(yīng)的菜名。如果“星期一”則顯示“干煸豆角”;如果”星期二“則顯示“醋溜土豆絲”;如果“星期三”則顯示“紅燒獅子頭”如果“星期四”顯示“油炸花生米”;如果“星期五,顯示"蒜蓉扇貝";如果“星期六”顯示"東北亂燉”;如果“星期日”,顯示“大盤(pán)雞”。請(qǐng)編寫(xiě)該程序。7.企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提成10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可提成7.5%;20萬(wàn)元到40萬(wàn)元之間時(shí),高于20萬(wàn)元的部分,可提5%;40萬(wàn)元到60萬(wàn)元之間時(shí),高于40萬(wàn)元的部分,可提成3%;60萬(wàn)元到100萬(wàn)元之間時(shí),高于60萬(wàn)元的部分,可提成1.5%;高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤(pán)輸入當(dāng)月利潤(rùn)i,求發(fā)放獎(jiǎng)金總數(shù)。項(xiàng)目4思考與練習(xí)參考答案一、1、D2、C3、C4、B5、A6、D7、B二、1、22、Ix=3Ix>3Ixunknow3、x三、編程題1、略2、略3、略4、#include<stdio.h>

intmain()

{intmonth;

scanf("%d",&month);

if(month<=5&&month>=3)printf("春\n");

elseif(month<=8&&month>=6)printf("夏\n");

elseif(month<=11&&month>=9)printf("秋\n");

elseprintf("冬\n");

return0;

}方法二:#include<stdio.h>Intmain(){Intmonth=0;printf(“請(qǐng)輸入月份:\n”);scanf_s("%d",&month);switch(month){case1:case2:case3:printf(“春”);break;case4:case5:case6:printf(“夏”);break;case7:case8:case9:printf(“秋”);break;case10:case11:case12:printf(“冬”);break;default:{printf(“輸入錯(cuò)誤”);}}return0;}5、#include"stdio.h"

voidmain(

/*main函數(shù)*/

{

inti1;

/*定義整型變量*/

printf("請(qǐng)輸入你的年齡:);

scanf("%d",&i1);

if(i1>=18)

/*判斷函數(shù)*/

printf("恭喜你獲得飲酒券!");

}

6、#include<stdio.h>voidmain(){stringweek;printf("請(qǐng)輸入星期幾:");scanf("%c",&week);switch(week){case"星期一":printf("干煸豆角");break;case"星期二":

printf(""醋溜土豆");break;case"星期三":

printf("紅燒獅子頭");break;case"星期四":

printf("油炸花生米");break;case"星期五":

printf("蒜蓉扇貝");break;case"星期六":

printf("東北亂燉");break;case"星期日":

printf("大盤(pán)雞");break;default:

printf("您輸入錯(cuò)誤")

}

}7、略

項(xiàng)目5【思考與練習(xí)】一、選擇題1、下面程序段的運(yùn)行結(jié)果是_______。intiNum=0;while(iNum<=2)printf("%d",iNum); A.2 B.3 C.死循環(huán),無(wú)限個(gè)0 D.有語(yǔ)法錯(cuò)2、下面程序的運(yùn)行結(jié)果是_______。#include"stdio.h"voidmain(){intiNum=0;while(iNum<=2){iNum++;printf("%d\n",iNum);}} A.1 B.1 C.1 D.1 2 2 2 3 3 43、以下程序段________。iNum=–1;do{iNum=iNum*iNum;}while(!iNum); A.是死循環(huán) B.循環(huán)執(zhí)行2次 C.循環(huán)執(zhí)行一次 D.有語(yǔ)法錯(cuò)誤4、若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是________。for(i=2;i==0;)printf("%d",i); A.無(wú)限次 B.0次 C.1次 D.2次5、以下正確的描述是_______。 A.continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行 B.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句 C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同 D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句二、填空題1、下面程序段是從鍵盤(pán)輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。填空使程序完整。intiNum=0,chLetter;chLetter=getchar();while(____){if(_____)iNum++;chLetter=getchar();}2、下面程序段的運(yùn)行結(jié)果是_______。i=1;iSum=3;do{iSum+=i++;if(iSum%7==0)continue;else++i;}while(iSum<15);printf("%d",i);三、編程題1、計(jì)算n!。2、編寫(xiě)程序打印出數(shù)字1-10,但其中不包括4和7,在4或7時(shí)跳過(guò)不輸出(用break還是continue?分別嘗試一下,寫(xiě)出兩者的區(qū)別)。3、猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。4、百錢(qián)百雞問(wèn)題。公雞:5元;母雞:3元;小雞:3只1元,100元錢(qián)剛好買(mǎi)100只雞,假設(shè)每種雞都必須買(mǎi),求公雞、母雞、小雞各有幾只?輸出所有的購(gòu)買(mǎi)方案。5、把厚度為0.006cm的紙不斷地裁剪、摞折,經(jīng)過(guò)43次操作后,求解紙的厚度。項(xiàng)目5思考與練習(xí)參考答案一、選擇題1、D2、C3、C4、C5、B二、填空題1、chLetter!=’\0’chLetter>=’1’&&chLetter<=’9’2、8三、編程題1、計(jì)算n!。#include"stdio.h"voidmain(){intk,iSum,n; k=1;iSum=1;scanf(“%d”,&n);while(k<=n) {iSum=iSum*k; k++;}printf("\nthesumis%d",iSum);}2、編寫(xiě)程序打印出數(shù)字1-10,但其中不包括4和7,在4或7時(shí)跳過(guò)不輸出(用break還是continue?分別嘗試一下,寫(xiě)出兩者的區(qū)別)。#include"stdio.h"intisDaff(intiNum);voidmain(){inti;for(i=1;i<=10;i++){ If(i!=4||i!=7) printf("%d",i);}}3、猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。#include"stdio.h"voidmain(){intk,iSum; k=1;iSum=1;while(k<10) {iSum=(iSum+1)*2; k++;}printf("%d",iSum);}4、百錢(qián)百雞問(wèn)題。公雞:5元;母雞:3元;小雞:3只1元,100元錢(qián)剛好買(mǎi)100只雞,假設(shè)每種雞都必須買(mǎi),求公雞、母雞、小雞各有幾只?輸出所有的購(gòu)買(mǎi)方案。#include"stdio.h"voidmain(){inti,j; for(i=1;i<20;i++)for(j=1;j<33;j++){if((i*5+j*3+(100-i-j)/3)==100)Printf(“公雞:%d母雞:%d小雞:%d”,i,j,100-i-j)}}5、略第6章數(shù)組思考與練習(xí)1.讀10個(gè)整數(shù)存入數(shù)組,找出其中最大值和最小值。2.將一個(gè)數(shù)組逆序輸出。3.設(shè)計(jì)一個(gè)程序,輸出下列矩陣1234567894.求一個(gè)三行三列矩陣對(duì)角線和。5.求100到999之間的所有水仙花數(shù)。(水仙花數(shù):一個(gè)n位數(shù),它的每個(gè)位上的n次冪的和,等于這個(gè)數(shù)本身,如:153、370)。6.用篩選法求100以?xún)?nèi)的素?cái)?shù)(素?cái)?shù)是除了1和自己以外,不能被其他整數(shù)整除的整數(shù)。)。7.一個(gè)打印楊輝三角的案例來(lái)加深對(duì)數(shù)組的理解。楊輝三角的前10行樣式如下所示。 1 11 121 1331 14641 15101051 1615201561 172135352171 18285670562881 193684126126843691第6章思考與練習(xí)參考答案1.#include<stdio.h>#defineSIZE10voidmain(){intx[SIZE],i,max,min;printf("Enter10integers:\n");for(i=0;i<SIZE;i++){printf("%d:",i+1);scanf("%d",&x[i]);}max=min=x[0];for(i=1;i<SIZE;i++){if(max<x[i])max=x[i];if(min>x[i])min=x[i];}printf("Maximumvalueis%d\n",max);printf("Minimumvalueis%d\n",min);}2./*將一個(gè)數(shù)組逆序輸出。*/#include"stdio.h"#include"conio.h"#defineN5main(){inta[N]={9,6,5,4,1},i,temp;printf("\noriginalarray:\n");for(i=0;i<N;i++)printf("%4d",a);for(i=0;i<N/2;i++){temp=a;a=a[N-i-1];a[N-i-1]=temp;}printf("\nsortedarray:\n");for(i=0;i<N;i++)printf("%4d",a);getch();}3.#include<stdio.h>main(){staticinta[3][3]={{1,2,3},{4,5,6},{7,8,9}};inti,j;printf("outputa:\n");for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%3d",a[i][j]);printf("\n");}}4.main(){floata[3][3],sum=0;inti,j;printf("pleaseinputrectangleelement:\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%f",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("duijiaoxianheis%6.2f",sum);}5.#include<stdio.h>#include<math.h>intmain(void){inti,g,s,b;intsum=0;for(i=100;i<1000;i++){g=i%10;//個(gè)位s=i/10%10;//十位b=i/100;//百位//sum=g*g*g+s*s*s+b*b*b;sum=pow(g,3)+pow(s,3)+pow(b,3);//pow(a,b)a為底數(shù),b為指數(shù)if(sum==i){printf("水仙花數(shù):%d\n",i);}}return0;}6.#include<stdio.h>#defineSIZE100main(){inta[SIZE+1],i,j;for(i=2;i<100;i++)a[i]=i;for(i=2;i<100;i++)for(j=i+1;j<=100;j++)if(a[i]!=0&&a[j]%a[i]==0)a[j]=0;printf("\n");j=0;for(i=2;i<=100;i++){if(a[i]!=0){printf("%4d",a[i]);j++;}if(j==10){j=0;printf("\n");}}}7.#include<stdio.h>#include<stdlib.h>voidmain(){ inti,j,n=0; intarr[10][10]={1};//定義一個(gè)10行10列的二維數(shù)組,初始化為1 while(n<1||n>10)//此while循環(huán)控制用戶(hù)只能輸入n=10 { printf("請(qǐng)輸入n的值:\n"); scanf("%d",&n); } for(i=1;i<n;i++)//外層循環(huán)控制楊輝三角的行數(shù) { arr[i][0]=1;//每一行第1個(gè)元素都賦值為1,即第1列都為1 for(j=1;j<=i;j++)//內(nèi)層控制楊輝三角的列數(shù)//每個(gè)元素等于其上一行左邊和上邊兩個(gè)元素之和 arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; } for(i=0;i<n;i++)//雙重for循環(huán)打印這個(gè)二維數(shù)組中的元素 { for(j=0;j<=i;j++) printf("%-5d",arr[i][j]); printf("\n"); } system("pause");}第7章函數(shù)思考與練習(xí)一、選擇題1、在C語(yǔ)言的函數(shù)中,下列說(shuō)法正確是_________。A.必須有形參 B.形參必須是變量名C.可以有也可以沒(méi)形參 D.?dāng)?shù)組名不能作形參2、數(shù)組名作為實(shí)參傳遞給函數(shù)時(shí),傳遞的是________。A.該數(shù)組長(zhǎng)度 B.該數(shù)組的元素個(gè)數(shù)C.該數(shù)組首地址 D.該數(shù)組中各個(gè)元素的值3、以下函數(shù)定義正確的是________。A.intfnSum(intiNum1,intiNum2) B.intfnsum(intiNum1,iNum2)C.intfnsum(iNum1,iNum2) D.intfnsum(intiNum1;intiNum2)4、簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式為_(kāi)_____。A.地址傳遞 B.單向值傳遞C.由實(shí)參傳給形參,再由形參傳回給實(shí)參D.由用戶(hù)指定傳遞方式5、C語(yǔ)言允許函數(shù)值類(lèi)型默認(rèn)定義,此時(shí)該函數(shù)值隱含的類(lèi)型是______。A.float B.int C.long D.double6、以下說(shuō)法正確的是_________。A.定義函數(shù)時(shí),形參類(lèi)型說(shuō)明可以放在函數(shù)體內(nèi)B.函數(shù)能嵌套定義C.return后邊的值不能為表達(dá)式D.如果函數(shù)值的類(lèi)型與返回值的類(lèi)型不一致,以函數(shù)類(lèi)型為準(zhǔn)。7、如果未指定局部變量類(lèi)型,其隱含的存儲(chǔ)類(lèi)別為_(kāi)________。A.自動(dòng)(auto) B.靜態(tài)(static)C.外部(extern) D.寄存器(register)8、以下敘述中不正確的是_________。A.在不同的函數(shù)中可以使用相同名字的變量B.函數(shù)中的形式參數(shù)是局部變量C.在一個(gè)函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效D.在一個(gè)函數(shù)內(nèi)的復(fù)合語(yǔ)句中定義的變量在本函數(shù)范圍內(nèi)有效二、填空題1、以下函數(shù)是求最大值的函數(shù),請(qǐng)補(bǔ)充完整以下程序。#include"stdio.h"_________;main(){intiNum1,iNum2,iMax;scanf("%d,%d",&iNum1,&iNum2);iMax=_________;printf("%d",iMax);}fnMax(intiNum1,intiNum2){if(iNum1>iNum2)returniNum1;else_________;}2、以下程序的運(yùn)行結(jié)果是________。intiNum1=5;intiNum2=7;main(){intiNum1=4,iNum2=5,iSum;iSum=fnPlus(iNum1,iNum2);printf("A+B=%d\n",iSum);}fnPlus(intiNum1,intiNum2){intiSum;iSum=iNum1+iNum2;return(iSum);}3、以下程序的運(yùn)行結(jié)果_________。#include"stdio.h"intfnFun(){staticintiNum=1;iNum=iNum+2;returniNum;}main(){printf("%d\n",fnFun()+fnFun());}三、編程題1、編寫(xiě)函數(shù)求1+1/2+1/3+1/4+……+1/n的值。2、使用函數(shù),利用遍歷數(shù)組找出全班同學(xué)成績(jī)的最高分。3、使用遞歸方法,求Fibonacci數(shù)列的第N項(xiàng)。第7章思考與練習(xí)參考答案一、選擇題1、C2、C3、A4、B5、B6、D7、A8、D二、填空題1、intfnMax(intiNum1,intiNum2);fnMax(iNum1,iNum2)returniNum1;2、A+B=43、8三、編程題1、編寫(xiě)函數(shù)求1+1/2+1/3+1/4+……+1/n的值。#include"stdio.h"doubledSum(intn);voidmain(){intn; scanf("%d",&n); printf("theresultis%.2f\n",dSum(n));}doubledSum(intn){inti; doubledResult=0; for(i=1;i<=n;i++) { dResult+=1.0/i; }returndResult;}2、使用函數(shù),利用遍歷數(shù)組找出全班同學(xué)成績(jī)的最高分。#include<stdio.h>#defineSIZE5floatfMax(floatfScore[],intiSize);voidmain(){floatfScore[SIZE]={0};inti=0;floatfResult=0;for(i=0;i<SIZE;i++){scanf("%f",&fScore[i]);}printf("themaxscoreis%.2f\n",fMax(fScore,SIZE));getch();}floatfMax(floatfScore[],intiSize){inti=0;intfValue=fScore[0];for(i=1;i<iSize;i++){if(fScore[i]>fValue){fValue=fScore[i];}}returnfValue;}3、使用遞歸方法,求Fibonacci數(shù)列的第N項(xiàng)。#include<stdio.h>intf(inta)

//函數(shù)f的定義{

inti;

if(a==1){

return0;

}

if(a==2){

return1;

}

elseif(a>=3){

for(i=1;i<a;i++){

return(f(a-1)+f(a-2));//函數(shù)f的遞歸調(diào)用

}

}}voidmain(){

intn;

printf("inputanumber:\n");

scanf("%d",&n);

printf("%d\n",f(n));

//函數(shù)f的調(diào)用}第8章結(jié)構(gòu)體、共用體和枚舉類(lèi)型思考與練習(xí)一、選擇題1、設(shè)有以下結(jié)構(gòu)體定義:structstudent{charchName[8];intiAge;charchSex;}stStaff;則下面的敘述不正確的是_________。A.struct是定義結(jié)構(gòu)體類(lèi)型的關(guān)鍵字B.structstudent是用戶(hù)定義的結(jié)構(gòu)體類(lèi)型C.stStaff是用戶(hù)定義的結(jié)構(gòu)體類(lèi)型名D.chName、iAge和chSex都是結(jié)構(gòu)體成員名2、在第(1)小題中定義的結(jié)構(gòu)體變量stStaff,則系統(tǒng)分配的內(nèi)存空間字節(jié)數(shù)是_________。A.8B.10C.11D.33、設(shè)有以下結(jié)構(gòu)體定義:structstudent{charchName[8];intiAge;charchSex;}stStaff[3];對(duì)結(jié)構(gòu)體變量成員的正確引用是_________。A、scanf(“%d”,&stStaff.iAge)B.scanf(“%s”,stStaff[0].iAge)C.scanf(“%s”,stStaff)D.scanf(“%d”,&iAge)二、填空題1、引用結(jié)構(gòu)體變量中成員的一般形式是_________。:2、若有以下結(jié)構(gòu)體類(lèi)型說(shuō)明和數(shù)組的初始化:structstTest{ intiNum; charchLetter[6];}stAlpha[2]={2,“abcde”,4,“EDCB”};則執(zhí)行語(yǔ)句printf(“%s,%c\n”,&stAlpha[0].chLetter[2],stAlpha[1].ch[2]);后的輸出結(jié)果是:_________。3、以下程序的執(zhí)行結(jié)果是:_________。fnChange(structteststHuman);structtest{intiAge;charchSex;}stStaff={18,‘M’};fnChange(structteststHuman){stHuman.iAge=20;stHuman.chSex=‘F’;}voidmain(){fnChange(stStaff);printf(“%d,%c\n”,stStaff.iAge,stStaff.chSex);第8章結(jié)構(gòu)體、共用體和枚舉類(lèi)型思考與練習(xí)答案一、1、C2、A3、B二、1、結(jié)構(gòu)體變量名.成員名2、cde,C3、18,M第9章指針?biāo)伎寂c練習(xí)1.編寫(xiě)一個(gè)函數(shù),將一個(gè)3*4的二維數(shù)組矩陣轉(zhuǎn)置。用指向數(shù)組的指針實(shí)現(xiàn)。2.編寫(xiě)一個(gè)程序統(tǒng)計(jì)候選人得票數(shù)。設(shè)有4名候選人,以輸入候選人人名方式模擬唱票,最后輸出每個(gè)候選人的得票數(shù)。計(jì)算得票數(shù)的過(guò)程用函數(shù)實(shí)現(xiàn)。3.指針作為函數(shù)參數(shù),實(shí)現(xiàn)兩個(gè)數(shù)值交換。4.利用指針查找數(shù)列中的最大值和最小值在窗體上輸入10個(gè)整數(shù),自動(dòng)查找這些數(shù)中的最大值和最小值,并顯示在窗體上。5.用函數(shù)指針來(lái)實(shí)現(xiàn)對(duì)函數(shù)的調(diào)用,返回兩個(gè)整數(shù)中的最大值。6.編寫(xiě)一個(gè)函數(shù),其功能是從一個(gè)字符指針數(shù)組中尋找指定的一個(gè)字符串,若找到返回1,否則就返回0。7.編寫(xiě)函數(shù),將一個(gè)字符串的指定字符全部刪除。要求函數(shù)的原型可聲明為:voidfnDelChar(char*str,charch);其中,參數(shù)str為要?jiǎng)h除字符的字符串,ch為要?jiǎng)h除的字符。第9章思考與練習(xí)參考答案:1.#include<stdio.h>voidfunc(int(*pa)[4],int(*pb)[3],intx,inty){ inti,j; //輸出pa指向的二維數(shù)組的元素 for(i=0;i<x;i++) { for(j=0;j<y;j++) { printf("%d\t",pa[i][j]); pb[j][i]=pa[i][j];//矩陣轉(zhuǎn)置 } printf("\n"); } printf("\n\n"); for(i=0;i<y;i++) { for(j=0;j<x;j++) { printf("%d\t",pb[i][j]); } printf("\n"); }}intmain(){inti,j; intarr[3][4],brr[4][3]; for(i=0;i<3;i++) { for(j=0;j<4;j++) { scanf("%d",&arr[i][j]); } }return0;}2.#include"string.h"structperson /*定義結(jié)構(gòu)體類(lèi)型*/{charchName[15]; intiCount;};voidfnCount(structperson*pStr) /*計(jì)算每個(gè)人的票數(shù)*/{inti,j;charchName[15];printf("\nInputname\n");for(i=1;i<=10;i++){scanf("%s",chName);for(j=0;j<4;j++)if(strcmp(chName,(pStr+j)->chName)==0)(pStr+j)->iCount++;}}voidfnData_put(structperson*pStr)/*輸出每個(gè)候選人及票數(shù)*/{intj;printf("\nresult:");for(j=0;j<4;j++,)printf("\n%s=%d",(pStr+j)->chName,(pStr+j)->iCount);}voidmain(){structpersonstLeader[4]={{"Li",0},{"Wang",0},{"Zhang",0},{"Shen",0}};fnCount(stLeader);fnData_put(stLeader);}3.#include<stdio.h>voidswap(int*a,int*b)//函數(shù)參數(shù)為指針類(lèi)型{ inttemp; temp=*a; *a=*b; *b=temp;}voidmain(){ inta=10,b=20; printf("調(diào)用函數(shù)前變量a和b的值為:%d%d\n",a,b); swap(&a,&b); printf("調(diào)用函數(shù)后變量a和b的值為:%d%d\n",a,b);}4.#include<stdio.h>voidfnMax_min(inta[],intn,int*max,int*min){int*p;*max=*min=*a; /*初始化最大值、最小值*/for(p=a+1;p<a+n;p++) if(*p>*max)*max=*p; /*最大值*/ elseif(*p<*min) *min=*p; /*最小值*/ return;}voidmain(){inti,a[10],max,min; printf("請(qǐng)輸入10個(gè)整數(shù):"); for(i=0;i<10;i++) scanf("%d",&a[i]); /*輸入數(shù)組元素*/ fnMax_min(a,10,&max,&min); /*返回最大值和最小值*/ printf("最大數(shù)是%d\n",max); /*輸出最大值*/ printf("最小數(shù)是%d\n",min); /*輸出最小值*/}5.intmax(inta,intb);intmain(){intx,y,maxVal;int(*pmax)(int,int)=max;printf("Inputtwonumbers:");scanf("%d%d",&x,&y);maxVal=(*pmax)(x,y);printf("Maxvalue:%d\n",maxVal);getchar();getchar();return0;}intmax(inta,intb){returna>b?a:b;}6.#include<stdio.h>#include<string.h>intfnFindStr(char*source,char*object){ char*p=source; chart[80]; intmaxlen=strlen(object); while(*p) { if(strncmp(object,p,maxlen)==0)return1; p++; }return0;}voidmain(){ chart[]="qwe3rtyuioswerp",g[]="swer"; printf("%d",fnFindStr(t,g));}#include<stdio.h>#include<string.h>#include<malloc.h>voidfnDelChar(char*str,charch);/*函數(shù)聲明*/voidmain(){ charstr[100]; puts("請(qǐng)輸入一個(gè)字符串:"); gets(str);fnDelChar(str,'a'); printf("結(jié)果字符串為:%s\n",str);}voidfnDelChar(char*str,charch)/*函數(shù)定義*/{ char*p,*q,*t; intlength; length=strlen(str); q=t=(char*)malloc(length+1); p=str; while(*p) { if(*p!=ch) { *t=*p; t++; } p++; }*t='\0'; strcpy(str,q); }第10章文件思考與練習(xí)一、選擇題選擇題1、當(dāng)已存在一個(gè)abc.txt文件時(shí),執(zhí)行函數(shù)fopen("abc.txt","r+")的功能是。A.打開(kāi)abc.txt文件,清除原有的內(nèi)容B.打開(kāi)abc.txt文件,只能寫(xiě)入新的內(nèi)容C.打開(kāi)abc.txt文件,只能讀取原有內(nèi)容D.打開(kāi)abc.txt文件,可以讀取和寫(xiě)入新的內(nèi)容2、若用fopen()函數(shù)打開(kāi)一個(gè)已存在的文本文件,保留該文件原有內(nèi)容,且可以讀,可以寫(xiě)。則文件打開(kāi)模式是。A."ab+" B."w+" C."a+" D."a"3、以下不能將文件指針重新移到文件開(kāi)頭位置的函數(shù)是。A.rewind(fp); B.fseek(fp,0,SEEK_SET);C.fseek(fp,-(long)ftell(fp),SEEK_CUR); D.fseek(fp,0,SEEK_END);4、若用fopen()函數(shù)打開(kāi)一個(gè)新二進(jìn)制文件,該文件可以讀也可以寫(xiě),則文件的打開(kāi)模式為。A."ab+" B."wb+" C."rb+" D."a+"5、fread(buffer,64,2,fp)的功能是。A.從fp所指的文件中讀取64并存入buffer中B.從fp所指的文件中讀取64和2并存入buffer中C.從fp所指的文件中讀取64個(gè)字節(jié)的數(shù)據(jù)并存入buffer中D.從fp所指的文件中讀取2個(gè)64字節(jié)的數(shù)據(jù)并存入buffer中6、以下程序的功能是。提示:PRN是打印設(shè)備。#include<stdio.h>voidmain(){FILE*fp;charchStr[]="HELLO";fp=fopen("PRN","w");fputs(chStr,fp);fclose(fp);}A.在屏幕顯示HELLO B.把HELLO存入PRN文件中C.在打印機(jī)上打印出HELLO D.以上都不對(duì)二、填空題1、使用fopen("abc","r+")打開(kāi)文件時(shí),若"abc"文件不存在,則返回。2、假設(shè)數(shù)組dArray聲明為doubledArray[4]={2.3,45.6,5.7,10.89},則將數(shù)值5.7寫(xiě)入文件指針fp所指向的文件的語(yǔ)句是。3、fputs("ShenZhen",fp)的功能是。其中,fp為一文件指針。4、文件指針fp指向一個(gè)打開(kāi)的文件,則將文件位置指針移離文件開(kāi)頭64個(gè)字節(jié)處,應(yīng)使用的函數(shù)調(diào)用語(yǔ)句是,將文件位置指針移離文件當(dāng)前位置32個(gè)字節(jié)處,應(yīng)使用的函數(shù)調(diào)用語(yǔ)句是,將文件位置指針移離距末尾文件128個(gè)字節(jié)處,應(yīng)使用的函數(shù)調(diào)用語(yǔ)句是。三、編程題1、從鍵盤(pán)輸入一個(gè)字符串,然后保存在文件“test.txt”中。2、將“test.txt”的內(nèi)容輸出在屏幕上。3、從鍵盤(pán)輸入5本教材的信息(書(shū)名、作者、價(jià)格、出版社),然后保存在文件“book.dat”中。4、將“book.dat”的內(nèi)容輸出在屏幕上(注意每條信息輸出為一行)。 第10章思考與練習(xí)參考答案一、選擇題1、D2、C3、D4、B5、D6、D二、填空題1、NULL2、fwrite(&disarray[2],4,1,fp);3、將字符串”ShenZhen”寫(xiě)入文件指針fp所指向的文件4、fseek(fp,64,0)、fseek(fp,32,1)、fseek(fp,128,2)三、編程題1、從鍵盤(pán)輸入一個(gè)字符串,然后保存在文件“test.txt”中。#include"stdio.h"voidmain(){FILE*fp;charchInfo[20];inti;fp=open("myInfo.txt","w");if(fp==-1){printf("cannotopenthisfile!\n");exit());}printf("pleaseinputastring:");scanf("%s",chInfo);write(fp,chInfo,10);close(fp);getch();}2、將“test.txt”的內(nèi)容輸出在屏幕上。#include"stdio.h"voidmain(){FILE*fp;charchInfo[10];fp=open("myInfo.txt","r");if(fp==-1){printf("cannotopenthisfile!\n");exit(0);}read(fp,chInfo,10);printf("%s",chInfo);close(fp);getch();}3、從鍵盤(pán)輸入5本教材的信息(書(shū)名、作者、價(jià)格、出版社),然后保存在文件“book.dat”中。#include"stdio.h"structtype_book{charchName[10];charchAuthor[10];floatfPrice;charchPress[10];};voidmain(){structtype_bookstBook[5];FILE*filePointer;inti;filePointer=fopen("book.dat","wb");if(filePointer==NULL){printf("cannotopenthisfile\n");exit(0);}for(i=0;i<5;i++){printf("pleaseinputthebookname,author,price,press:");scanf("%s%s%f%s",stBook[i].chName,stBook[i].chAuthor,&stBook[i].fPrice,&stBook[i].chPress);fwrite(&stBook[i],sizeof(structtype_book),1,filePointer);}fclose(filePointer);getch();}4、將“book.dat”的內(nèi)容輸出在屏幕上(注意每條信息輸出為一行)。#include"stdio.h"#include"stdio.h"structtype_book{charchName[10];charchAuthor[10];floatfPrice;charchPress[10];};voidmain(){structtype_bookstBook[5];FILE*filePointer;inti;filePointer=fopen("book.dat","rb");if(filePointer==NULL){printf("cannotopenthisfile\n");exit(0);}printf("NameAuthorPricePress\n");for(i=0;i<5;i++){fread(&stBook[i],sizeof(structtype_book),1,filePointer);}fclose(filePointer);for(i=0;i<5;i++){printf("%s\t%s\t%f\t%s\n",stBook[i].chName,stBook[i].chAuthor,stBook[i].fPrice,stBook[i].chPress);}getch();}項(xiàng)目6【思考與練習(xí)】1.讀10個(gè)整數(shù)存入數(shù)組,找出其中最大值和最小值。答案:#include"stdio.h"intmain(){inti,a[10],max,min;for(i=0;i<=9;i++){printf("a[%d]=",i);scanf("%d",&a[i]);}max=min=a[0];for(i=1;i<10;i++){if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i];}printf("Thetennumberis\n");printf("max=%d\n",max);printf("min=%d\n",min);}運(yùn)行結(jié)果:2.將一個(gè)數(shù)組逆序輸出。答案:#include"stdio.h"intmain(){inti,max,min;inta[10]={0,1,2,3,4,5,6,7,8,9};for(i=9;i>=0;i--) printf("%d",a[i]);printf("\n");}運(yùn)行結(jié)果:3.設(shè)計(jì)一個(gè)程序,輸出下列矩陣123456789答案:#include"stdio.h"intmain(){inti,j;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++){for(j=0;j<3;j++) printf("%d",a[i][j]);printf("\n");}}運(yùn)行結(jié)果:4.求一個(gè)三行三列矩陣對(duì)角線和。答案:#include"stdio.h"intmain(){inti,j,sum=0;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++){for(j=0;j<3;j++) if(i==j) sum=sum+a[i][j];}printf("%d",sum);}運(yùn)行結(jié)果:5.求100到999之間的所有水仙花數(shù)。(水仙花數(shù):一個(gè)n位數(shù),它的每個(gè)位上的n次冪的和,等于這個(gè)數(shù)本身,如:153、370)。答案:#include"stdio.h"voidmain(){intn,a[3],i,j,k;for(n=100;n<1000;n++){ a[3]=n;i=a[3]%10; j=a[3]/10%10; k=a[3]/100; if(a[3]==i*i*i+j*j*j+k*k*k) printf("%d",a[3]);}運(yùn)行結(jié)果:6.用篩選法求100以?xún)?nèi)的素?cái)?shù)(素?cái)?shù)是除了1和自己以外,不能被其他整數(shù)整除的整數(shù)。)。答案:#include<stdio.h>intmain(){inti,j;inta[100];for(i=0;i<100;i++)a[i]=i+1;a[0]=0;for(i=0;i<99;i++){ for(j=i+1;j<100;j++) { if(a[i]!=0&&a[j]!=0) { if(a[j]%a[i]==0) a[j]=0; } }}for(i=0;i<100;i++){ if(a[i]!=0) printf("%3d",a[i]);}printf("\n");}運(yùn)行結(jié)果7.一個(gè)打印楊輝三角的案例來(lái)加深對(duì)數(shù)組的理解。楊輝三角的前10行樣式如下所示。 1 11 121 1331 14641 15101051 1615201561 172135352171 18285670562881 193684126126843691答案:#include"stdio.h"voidmain(){inta[10][10]; inti,j; for(i=0;i<10;i++){a[i][0]=1; a[i][i]=1;}for(i=2;i<10;i++) {for(j=1;j<i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; } for(i=0;i<10;i++) {for(j=0;j<=i;j++) printf("%d",a[i][j]); printf("\n"); }}運(yùn)行結(jié)果:項(xiàng)目7【思考與練習(xí)】一、選擇題1.在C語(yǔ)言的函數(shù)中,下列說(shuō)法正確的是_________。

A.必須有形參

B.形參必須是變量名

C.可以有也可以沒(méi)形參

D.數(shù)組名不能作形參

答案:C2.數(shù)組名作為實(shí)參傳遞給函數(shù)時(shí),傳遞的是________。

A.該數(shù)組長(zhǎng)度

B.該數(shù)組的元素個(gè)數(shù)

C.該數(shù)組首地址

D.該數(shù)組中各個(gè)元素的值

答案:C3.以下函數(shù)定義正確的是________。

A.

intfnSum(intiNum1,intiNum2)

B.

intfnsum(intiNum1,iNum2)

C.

intfnsum(iNum1,iNum2)

D.

intfnsum(intiNum1;intiNum2)

答案:A4.簡(jiǎn)單變量做實(shí)參時(shí),它和對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式為_(kāi)_____。

A.地址傳遞

B.單向值傳遞

C.由實(shí)參傳給形參,再由形參傳回給實(shí)參

D.由用戶(hù)指定傳遞方式

答案:B5.C語(yǔ)言允許函數(shù)值類(lèi)型默認(rèn)定義,此時(shí)該函數(shù)值隱含的類(lèi)型是______。

A.float

B.int

C.long

D.double

答案:B以下說(shuō)法正確的是_________。

A.定義函數(shù)時(shí),形參類(lèi)型說(shuō)明可以放在函數(shù)體內(nèi)

B.函數(shù)能嵌套定義

C.return后邊的值不能為表達(dá)式

D.如果函數(shù)值的類(lèi)型與返回值的類(lèi)型不一致,以函數(shù)類(lèi)型為準(zhǔn)。

答案:D7.如果未指定局

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論