C語(yǔ)言程序設(shè)計(jì)第二版習(xí)題參考答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)第二版習(xí)題參考答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)第二版習(xí)題參考答案_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)第二版習(xí)題參考答案_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)第二版習(xí)題參考答案_第5頁(yè)
已閱讀5頁(yè),還剩179頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)習(xí)題參考答案習(xí)題1一、判斷題1.在計(jì)算機(jī)中,小數(shù)點(diǎn)和正負(fù)號(hào)都有專用部件來(lái)保存和表示。3.二進(jìn)制數(shù)的邏輯運(yùn)算是按位進(jìn)行的,位與位之間沒(méi)有進(jìn)位和借位的關(guān)系。5.有符號(hào)數(shù)有三種表示法:原碼、反碼和補(bǔ)碼。6.常用字符的ASCII碼值從小到大的排列規(guī)律是:空格、阿拉伯?dāng)?shù)字、大寫(xiě)英文字母、小寫(xiě)英文字母。二、單選題1.在計(jì)算機(jī)中,最適合進(jìn)行數(shù)值加減運(yùn)算的數(shù)值編碼是。A.原碼B.反碼C.補(bǔ)碼D.移碼碼為十進(jìn)制數(shù)。A.112B.120C.121D.1223.關(guān)于ASCII碼,在計(jì)算機(jī)中的表示方法準(zhǔn)確地描述是。B___________5.下列敘述中正確的是()。A.高級(jí)語(yǔ)言就是機(jī)器語(yǔ)言B.匯編語(yǔ)言程序、高級(jí)語(yǔ)言程序都是計(jì)算機(jī)程序,但只有機(jī)器語(yǔ)言程序才是計(jì)算機(jī)可以直接識(shí)別并執(zhí)行的程序C.C語(yǔ)言因?yàn)榫哂袇R編語(yǔ)言的一些特性,所以是匯編語(yǔ)言的一種D.C源程序經(jīng)過(guò)編譯、連接,若正確,執(zhí)行后就能得到正確的運(yùn)行結(jié)果6.用C語(yǔ)言編寫(xiě)的源程序經(jīng)過(guò)編譯后,若沒(méi)有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將()。A.生成可執(zhí)行文件B.生成目標(biāo)文件C.輸出運(yùn)行結(jié)果D.自動(dòng)保存源文件7.下列敘述中不正確的是()。B.C程序的執(zhí)行從main函數(shù)開(kāi)始,所以main函數(shù)必須放在程序最前面C.函數(shù)可以帶參數(shù),也可以不帶參數(shù)。D.每個(gè)函數(shù)執(zhí)行時(shí),按函數(shù)體中語(yǔ)句的先后次序,依次執(zhí)行每條語(yǔ)句三、填空題1.()=()=(1.()=()=(2.=()=()=()2816103.輸入三個(gè)數(shù),計(jì)算并輸出三個(gè)數(shù)的和與三個(gè)數(shù)的乘積。#include<>voidmain(){inta,b,c,s,z;printf("Pleaseinputabc:\n");s=a+b+c;printf("%d\n",s);}*4.輸入三角形三條邊的邊長(zhǎng),計(jì)算并輸出三角形的面積。根據(jù)三條邊的邊長(zhǎng),計(jì)算三角形面積的公式如下:#include<>#include<>voidmain(){doublex,y,z,s,dime;scanf("%lf%lf%lf",&x,&y,&z);dime=sqrt(s*(s-x)*(s-y)*(s-z));}3.scanf("%f%f%f",&a,&b,&c);z=a*b*c;printf("%f",z);4.s=(x+y+2)/2;printf("%f",dim);題1.仿照例,編程序在屏幕上顯示:*****************************MerryChristmas!HappyNewYear!*****************************voidmain(){printf("*****************************\n");printf("MerryChristmas!\n");printf("HappyNewYear!\n");printf("*****************************\n");}2.仿照例編程,輸入一個(gè)整數(shù),計(jì)算這個(gè)數(shù)的平方。voidmain()printf("請(qǐng)輸入一個(gè)整數(shù):\n");scanf("%d",&a);z=a*a;printf("%d*%d=%d\n",a,a,z);}*3.仿照例編程,輸入兩個(gè)數(shù)后,輸出其中較小值。floatmin(floatx,floaty)tmif(x<y)m=x;elsem=y;returnm;}voidmain(){floata,b,c,mindata;printf("請(qǐng)輸入二個(gè)數(shù):\n");voidmain()scanf("%f%f",&a,&b);mindata=min(a,b);}編程,輸入a、b后,輸出一元一次方程ax+b=0的解。voidmain()floata,b,x;printf("請(qǐng)輸入a、b:\n");scanf("%f%f",&a,&b);x=-a/b;printf("x=%f\n",x);}*5.仿照例編程,輸入圓柱體的半徑和高,計(jì)算并輸出圓柱體的體積。{floatr,h,s,v;printf("Pleaseinputrandh:\n");scanf("%f%f",&r,&h);v=*r*r*h;printf("V=%f\n",v);}一、判斷題1.任何變量都必須要定義其類型。3.C語(yǔ)言的任何類型數(shù)據(jù)在計(jì)算機(jī)內(nèi)都是以二進(jìn)制形式存儲(chǔ)的。4.isdigit(‘5’)的結(jié)果為0。5.printf函數(shù)中格式符“%c”對(duì)應(yīng)的參數(shù)只能是字符類型。6.按格式符“%d”輸出float類型變量時(shí),截?cái)嘈?shù)位取整后輸出。8.scanf函數(shù)中的格式符“%d”不能用于輸入實(shí)型數(shù)據(jù)。10.當(dāng)格式符中指定寬度時(shí),輸出的信息完全取決于所指定的寬度。解:(1)T(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T(10)F二、指出下列各項(xiàng)中哪些是C語(yǔ)言中的常量,并指出其類型10,150007–0x3dπ1e0e1o7o8xxosin)0xf16‘\a’‘\009’整型常量:007–0x3d0xf1610L字符型常量:‘x’‘\a’‘\\’三、指出下列各項(xiàng)中哪些是C語(yǔ)言中的用戶標(biāo)識(shí)符x_1X_2Highcountprintfβnumbernext_sizeofIFsum_12_123#NO1:doublefor解:C的用戶標(biāo)識(shí)符有:x_1X_2Highe2countIntnumbernext_IFsum_12四、單項(xiàng)選擇題1.C語(yǔ)言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是()。A.原碼B.反碼C.補(bǔ)碼D.ASCII碼3.C語(yǔ)言中的基本數(shù)據(jù)類型包括()。A.整型、實(shí)型、邏輯型B.整型、實(shí)型、字符型C.整型、邏輯型、字符型D.整型、實(shí)型、邏輯型、字符型的值分別為1和2,正確的輸入是()。A.12B.1,2C.a(chǎn)=1,b=2D.a(chǎn)=1b=2putchar(a);”后,輸出結(jié)果為()。A.AaB.A97C.A9D.a(chǎn)AAASCII,以下語(yǔ)句段的輸出結(jié)果是()。charc1='A',c2='Y';printf("%d,%d\n",c1,c2);A.輸出格式非法,輸出錯(cuò)誤信息B.65,90C.A,YD.65,899.能正確地定義符號(hào)常量的是()。AB.均為2個(gè)字節(jié)C.是任意的D.由機(jī)器字長(zhǎng)決定解:(1)D(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D五、填空題1.charch='$';floatx=; 解:$\n2.inti=123;floatx=–;解:i=123x=3.charc='a';inta=65; 語(yǔ)句“putchar(c+1);putchar(a);”的輸出結(jié)果是。 解:bA4.inta=98;語(yǔ)句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的輸出結(jié)果 是。 是(3)floatalfa=60,pi=3解:98,c,144,655.intk;floatf;句“scanf(“%3d%*4d%6f”,&k,&f);”↙則k=,f=。解:k=123f=解:#include<>(1)inti=123,j=45; 函數(shù)printf("%d,%d\n",i,j);的輸出結(jié)果是。 解:123,45(2)inti=123;floatx=;語(yǔ)句printf("i=%5dx=%\n",i,x);的輸出結(jié)果是。解:i=123x=習(xí)題31 解:x%2==1解:s=(x>=01:-1)*(y>=0y:-y)解:-5<=x&&x<=3b是否為同一字母(不區(qū)分大小寫(xiě))的邏輯表達(dá)式解:a+32==b或b-a==321:0解:a%10==b/10&&a/10==b%108.寫(xiě)出判斷某個(gè)人是否是成年人(年齡大于21),且不是老年人(年齡大于65)的解:y>21&&y<=65ch字母,則將其轉(zhuǎn)換為對(duì)應(yīng)的大寫(xiě)字母。解:ch=ch>='a'&&ch<='z'ch-32:ch三、單項(xiàng)選擇題2.已知x=10,ch='A',y=0;,則表達(dá)式“x>=y&&ch<'B'&&!y”的值是()。A.0B.1C.“假”D.“真”3.判斷char型變量c為數(shù)字字符的正確表達(dá)式為()。4.下列運(yùn)算符中,優(yōu)先級(jí)最低的是()。5.若有條件表達(dá)式“xa++:b--”,則以下表達(dá)式中()等價(jià)于表達(dá)式x。A.x==0B.x!=0C.x==1D.x!=16.有定義intk=4,a=3,b=2,c=1;,表達(dá)式“k<ak:c<bc:a”的值是()。7.執(zhí)行下列程序段后,變量a,b,c的值分別是()。intx=10,y=9,a,b,c;a=(--x==y++)--x:++y;b=x++;c=y;A.a(chǎn)=9,b=9,c=9B.a(chǎn)=8,b=8,c=10C.a(chǎn)=9,b=10,c=9D.a(chǎn)=1,b=11,c=1010.有定義doublex=1,y;,表達(dá)式“y=x+3/2”的值是()。11.設(shè)有定義intx;doubley;,則下列表達(dá)式中結(jié)果為整型的是()。12.設(shè)有整型變量x,下列說(shuō)法中,錯(cuò)誤的是()。解:(1)D(2)B(3)B(4)D(5)B(6)D(7)B(8)C(9)D(10)C(11)A1.設(shè)floatx=,y=;inta=7;,表達(dá)式x+a%3*(int)(x+y)%2/4值為。解:10解:54.設(shè)inta=6,b=4,c=2;,表達(dá)式!(a-b)+c-1&&b-c/2的值為。解:1 解:0ab等而符號(hào)相反的邏輯表達(dá)式為。解:a==-b解:a*b==0&&a+b!=08.設(shè)intm=2,n=2,a=1,b=2,c=3;執(zhí)行語(yǔ)句d=(m=a==b)&&(n=b>c);后,m和na解:0 為。 為解:1 11.寫(xiě)出與代數(shù)式(x+2)ex+2對(duì)應(yīng)的C表達(dá)式。 解:15五、寫(xiě)出下列程序的輸出結(jié)果。#include<>}voidmain(){unsignedk,n;scanf("%u",&n);f\n”,r,gv);}4.輸入三角形的底和高,求三角形面積。解:#include<>#definePIvoidmain(){doublea,h,s;scanf(“%lf,%lf”,&a,&h);s=a*h/2;5.編寫(xiě)程序,輸入一個(gè)實(shí)數(shù)后輸出該數(shù)的絕對(duì)值。解:#include<>voidmain(){doublex,y;scanf(“%lf”,&x);y=x>=0x:-x;printf(“|%g|=%g\n”,x,y);}6.輸入梯形的上底、下底和高,求梯形面積。解:#include<>voidmain(){doublea,b,h,s;printf(“請(qǐng)輸入梯形的上底,下底,高\(yùn)n”);scanf(“%lf,%lf,%lf”,&a,&b,&h);s=(a+b)*h/2;printf(“梯形面積=%f\n”,s);}7.輸入矩形的邊長(zhǎng),求矩形面積。解:#include<>voidmain(){doublea,b,s;scanf(“%lf,%lf”,&a,&b);abprintf(“矩形面積=%f\n”,s);}解:#include<>voidmain(){inta,d,n,sum;printf(“請(qǐng)輸入等差數(shù)列的首項(xiàng)公差項(xiàng)數(shù)\n”);scanf(“%d%d%d”,&a,&d,&n);sum=a*n+n*(n-1)*d/2;printf(“sum=%d\n”,sum);}解:#include<>voidmain(){intd,h,m,t;scanf(“%d%d%d”,&d,&h,&m);t=d*24*60+h*60+m;}10.編寫(xiě)程序,求出給定半徑r的圓以及內(nèi)接正n邊形的面積,輸出計(jì)算結(jié)果。r解:#include<>#include<>#definePIvoidmain(){doubler,s1,s2;printf(“Inputrn\n”);scanf(“%lf%d”,&r,&n);s1=PI*r*r;s2=n/*r*r*sin(2*PI/n);}題4一、單項(xiàng)選擇題1.下列語(yǔ)句將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,其中正確的是()。A.if(ch>='a'&ch<='z')ch=ch-32;B.if(ch>='a'&&ch<='z')ch=ch-32;C.ch=(ch>='a'&&ch<='z')ch-32:'';D.ch=(ch>'a'&&ch<'z')ch-32:ch;2.下列各語(yǔ)句中,能夠?qū)⒆兞縰、s中最大值賦給變量t的是()。A.if(u>s)t=u;t=s;B.t=s;if(u>s)t=u;C.if(u>s)t=s;elset=uD.t=u;if(u>s)t=s;3.假設(shè)變量x、k都已定義,下列語(yǔ)句片段中,無(wú)語(yǔ)法錯(cuò)誤的是()。A.switch(x){casex>=90:putchar('A');casex<60:putchar('E');}B.switch(x){case1+2:k='A';defualt:k='E';case2*4:k='B';}C.switch(x){case2+x:k=x-2;case3*x:k=x+3;default:k=0;}D.switch(x){case:k=*x;case:k=8*x;default:k=0;}*4.與語(yǔ)句while(!s)中的條件等價(jià)的是()。{A.s==0B.s!=0C.s==1D.s=05.下列語(yǔ)句中,哪一個(gè)可以輸出26個(gè)大寫(xiě)英文字母()。A.for(a='A';a<='Z';printf("%c",++a));B.for(a='A';a<'Z';a++)printf("%c",a);C.for(a='A';a<='Z';printf("%c",a++));D.for(a='A';a<'Z';printf("%c",++a));6.判斷下面的while循環(huán)體的執(zhí)行次數(shù)()。k=10;A.8次B.10次C.2次D.無(wú)數(shù)次解:(1)B(2)B(3)B(4)A(5)C(6)D二、寫(xiě)出下列程序的輸出結(jié)果1.#include<>voidmain()charx;intn=0,k=0;while((x=getchar())!='#'){nn}f\n”,area);else}6.輸入1~7,輸出對(duì)應(yīng)的星期一~星期天。voidmain(){ints;printf(“Inputs(1~7):\n”);scanf(“%d”,&s);switch(s){intfThesiserrorn}}7.輸入年、月、日,輸出是該年的第幾天。voidmain(){inty,m,d,days;printf(“Input年月日:\n”);scanf(“%d%d%d”,&y,&m,&d);days=d;switch(m){case12:days+=30;case11:days+=31;case10:days+=30;case9:days+=31;case8:days+=31;case7:days+=30;case6:days+=31;case5:days+=30;case4:days+=31;case3:days+=29;elsedays+=28;case2:days+=31;}}voidmain(){intn,i,t,x;scanf(“%d”,&n);for(i=1,t=1;i<=n;i++){scanf(“%d”,&x);if(x%2==1)t*=x;}printf(“%d\n”,t);}9.輸入一個(gè)正整數(shù),求它們所有數(shù)字之和。voidmain(){inta,sum=0;scanf(“%d”,&a);a=a>=0a:-a;while(a!=0){sum+=a%10;a/=10;}printf(“%d\n”,sum);}voidmain(){intn,i,t,s,k;doublex;t=s=k=0;scanf(“%d”,&n);for(i=1;i<=n;i++){scanf(“%lf”,&x);if(x>0)t++;elseif(x<0)s++;elsek++;}}voidmain(){inti;doublescore,min;scanf(“%lf”,&score);minscoren110-210-310-n年信息查詢234562.元旦是星期幾信息查3.程序結(jié)束\n”);scanf(“%d”,&year);returny;scanf(“%d”,&number);if(number==1){year=legal(year);leapyear(year);}if(number==2){week=judgeweeknumber(year);judgeweekchinese(week);}if(number==3)return;}intlegal(inty)do{scanf(“%d”,&y);}while(y<0);}voidleapyear(inty){printf(“%d是閏年\n”,y);printf(“%d不是閏年\n”,y);}intjudgeweeknumber(inty)week=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;returnweek;}voidjudgeweekchinese(intweek)switch(week)}}nxxn定義一個(gè)遞歸函數(shù)計(jì)算xn。doublemypow(doublex,intn){doubley=1;if(n>0)return(x*mypow(x,n-1));if(n<0)return(1/x*mypow(x,n+1));elsereturn1;}voidmain()scanf("%lf%d",&x,&n);printf("%f\n",mypow(x,n));}*15.?dāng)?shù)列的第1、2項(xiàng)為1,此后各項(xiàng)為前兩項(xiàng)之和。編制求數(shù)列中任何一項(xiàng)#include<>intf(intn)return(1);return(f(n-1)+f(n-2));}voidmain()while(scanf("%d",&n),n<0);}習(xí)題5一、單項(xiàng)選擇題1.下列能正確定義一維數(shù)組a的語(yǔ)句是()。A.inta(10);B.intn=10,a[n];C.intn;scanf("%d",&n);D.#definen102.若有定義語(yǔ)句“inta[10];”則下列對(duì)a中數(shù)組元素正確引用的是()。A.a(chǎn)[10/2–5]B.a(chǎn)[10]C.a(chǎn)[]D.a(chǎn)(1)3.能對(duì)一維數(shù)組正確初始化的語(yǔ)句是()。A.inta[6]={6*1};B.inta[6]={1,,,3};C.inta[6]={};D.inta[6]=(0,0,0);4.以下能正確定義二維數(shù)組的語(yǔ)句為()。ntaDa6.以下能對(duì)二維數(shù)組a進(jìn)行正確初始化的語(yǔ)句為()。5,6,7};C.inta[][]={1,2,3,4,5,6};D.inta[][3]={1,2,3,4,7.下列對(duì)字符數(shù)組s的初始化不正確的是()。dede8.下列程序段的運(yùn)行結(jié)果為()。chars[]="ab\0cd";printf("%s",s);A.a(chǎn)b0B.a(chǎn)bC.AbcdD.a(chǎn)bcd9.下列數(shù)組s中所存放字符串的長(zhǎng)度為()。chars[]="a\128b\\\tcd\xdg\n";A.9B.10C.11D.1810.有數(shù)組定義語(yǔ)句“chara[20];”,則正確的輸入語(yǔ)句為()。A.scanf("%s",&a);B.scanf("%s",a[]);C.gets(a[20]);D.gets(a);11.下面程序執(zhí)行后的正確輸出項(xiàng)是()。#include<>voidswap1(inta[])t=a[0];a[0]=a[1];a[1]=t;}voidswap2(inta,intb)t=a;a=b;b=t;}voidmain(){intx[2]={1,5};inty[2]={1,5};swap1(x);swap2(y[0],y[1]);printf("x:%d%d\n",x[0],x[1]);printf("y:%d%d\n",y[0],y[1]);}A.x:51B.x:15C.x:15D.x:51y:15y:51y:15y:5112.執(zhí)行下列程序后的輸出結(jié)果是()。#include<>charf(chars[],intn){return(s[n]);}main(){chara[]="ABCD";printf("%c",f(a,2)+1);}13.執(zhí)行下列程序后的輸出結(jié)果是()。#include<> intf(inta[],intn) {if(n==0)returna[0];elsereturnf(a,n-1)+a[n];}main(){intx[]={1,3,5,7,9};printf("%d\n",f(x,3));}A.1B.4C.9D.16二、填空題1.構(gòu)成數(shù)組的各個(gè)元素必須具有相同的。解:數(shù)據(jù)類型 解:0 4.C語(yǔ)言程序在執(zhí)行過(guò)程中,不檢查數(shù)組下標(biāo)是否。解:越界5.C語(yǔ)言中,二維數(shù)組元素在內(nèi)存中的存放順序是。解:按行存放 解:107.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是。 解:數(shù)組第一個(gè)元素的地址8.若有定義語(yǔ)句“chars1[]="abc",s2[]={'a','b','c'};”,則數(shù)組s1有 三、寫(xiě)出下列程序的輸出結(jié)果1.#include<>voidmain(){}}962319627196inta[6]={2,3,7,1,9,6},i,j,k,m;for(i=5;i>=0;i--){k=a[5];for(j=4;j>=0;j--)a[j+1]=a[j];a[0]=k;for(m=0;m<6;m++)printf("%2d",a[m]);putchar('\n');7137233719622371962.#include<>voidmain(){intn[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=3;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]+=n[i]+1;for(i=0;i<3;i++)printf("%5d",n[i]);}3.#include<>voidmain(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%3d",a[i][j]);printf("\n");}}010000010000010000014.#include<>voidmain(){intx[10];inti,m=1;voidsort(inta[],intn);for(i=0;i<10;i++){m=-m;x[i]=m*i;}sort(x,10);for(i=0;i<10;i++)printf("%3d",x[i]);}voidsort(inta[],intn){inti,j,t;for(i=1;i<10;i++){t=a[i];for(j=i-1;j>=0;j--)if(t>a[j])break;elsea[j+1]=a[j];a[j+1]=t;}}795.#include<>voidmain(){chars1[]="aex",s2[]="dpsy",s[10];inti1,i2,i,flag;i1=i2=i=flag=0;while(1){if(s1[i1]=='\0'){flag=1;break;}if(s2[i2]=='\0'){flag=2;break;}if(s1[i1]<s2[i2])s[i++]=s1[i1++];s[i++]=s2[i2++];}if(flag==1)while(s2[i2]!='\0')s[i++]=s2[i2++];while(s1[i1]!='\0')s[i++]=s1[i1++];s[i]='\0';puts(s);}解:adepsxy#include<>voidmain(){charh[11];intd[10];inti,n=0,x=1;gets(h);統(tǒng)計(jì)在一個(gè)字符串中各元音字母(a、e、i、o、u)出現(xiàn)的次數(shù)。#include<>voidmain(){chars[80]; inti,; printf("inputastring:\n");gets(s); for(i=0;;i++) a]++;a[1]++;a[2]++;a[3]++;a[4]++;printf("AEIOU\n");for(i=0;i<5;i++)}asi\0'③s[i]=='a'||s[i]=='A'④printf(“%5d”,i)五、編程題解:#include<>#include<>voidmain(){doublex[10],v,d;inti;for(i=0,v=0;i<10;i++){scanf("%lf",&x[i]);v+=x[i];}v=v/10;d=x[0];for(i=1;i<10;i++)if(fabs(d-v)>fabs(x[i]-v))d=x[i];}2.輸入n(n≤20)個(gè)數(shù)放在一維數(shù)組中,找出其中最小的數(shù),將它與數(shù)組最前面的元素交換后輸出這些數(shù)。解:#include<>voidmain(){inti,k,temp,n,a[20];printf("Inputn:\n");scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(k=0,i=1;i<n;i++)if(a[i]<a[k])k=i;temp=a[0];a[0]=a[k];a[k]=temp;for(i=0;i<n;i++)printf("%d",a[i]);}3.輸入一個(gè)字符串,統(tǒng)計(jì)其中數(shù)字字符出現(xiàn)的次數(shù)。解:#include<>voidmain()charchars[80];inti,n=0;gets(s);for(i=0;s[i]!='\0';i++)if(s[i]>='0'&&s[i]<='9')n++;}4.設(shè)有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個(gè)年頭開(kāi)始,每年解:#include<>#defineN20voidmain(){intx[N+1]={1},i;f,",a[i]);printf("\n");}17.統(tǒng)計(jì)學(xué)生成績(jī):某班有30人,每人學(xué)4門(mén)課,求每個(gè)人的總分和平均分。要求編三個(gè)函數(shù):①輸入成績(jī)函數(shù)input()。②計(jì)算每人總分及各課平均分函數(shù)process()。③輸出該班同學(xué)每人各課成績(jī),總成績(jī)和各課平均分函數(shù)output()。voidinput(floata[][5],intn,intm)for(i=0;i<n;i++){for(j=0;j<m;j++)scanf("%f",&a[i][j]);}}voidprocess(floata[][5],intn,intm)for(i=0;i<n;i++)f,",*p);printf("\n");for(i=0;i<10;i++)for(j=i+1;j<10;j++)if(fabs(*(a+j))<fabs(*p))p=a+j;temp=*(a+i);*(a+i)=*p;*p=temp;}for(p=a,i=0;i<10;i++,p++)printf("%.2f,",*p);printf("\n");}valuenx。voidvalue(double*a,intn,doublex)for(i=0;i<n;i++)*(a+i)=x;}voidmain(){doublea[10],x;inti,n;printf(“Inputnx:\n");scanf("%d%lf",&n,&x);value(a,n,x);for(i=0;i<n;i++)printf("%",*(a+i));}4.定義一個(gè)函數(shù),將一個(gè)字符串中的所有小寫(xiě)字母轉(zhuǎn)換為相應(yīng)的大寫(xiě)字母,其余字voidmain(){chara[80],*p;inti,j;gets(a);for(p=a;*p!='\0';p++)if(*p>='a'&&*p<='z')*p-=32;puts(a);}5.定義一個(gè)函數(shù),將數(shù)組中最大值及最小值交換位置。voidf(int*a,intn){inti,*p,*q,t;for(i=0,p=q=a;i<n;i++){if(*p<*(a+i))p=a+i;if(*q>*(a+i))q=a+i;}t=*p;*p=*q;*q=t;}voidmain()inta,i;for(i=0;i<10;i++)scanf("%d",a+i);scanf("%lf%lf",&a,&b);f(a,10);for(i=0;i<10;i++)printf("%d",*(a+i));}6.定義一個(gè)函數(shù),計(jì)算兩個(gè)數(shù)的和與乘積。voidf(doublex,doubley,double*p,double*q){*p=x+y;*q=x*y;}voidmain(){doublea,b,add,mult;printf("Inputab:\n");f(a,b,&add,&mult);printf("add=%mult=%\n",add,mult);}*7.輸入一個(gè)年號(hào),輸出它是否潤(rùn)年及元旦星期幾。要求定義一個(gè)函數(shù)同時(shí)返回是否閏年和元旦星期幾。intleap(intyear)f",a[i][j]);printf("\n");}}12.編寫(xiě)函數(shù),將5×5的二維數(shù)組每行中最大值,按一一對(duì)應(yīng)的順序放入一維數(shù)組voidfun(inta[][5],intm[])ntijmaxfor(i=0;i<5;i++)maxa+i);for(j=0;j<5;j++)if(max<*(*(a+i)+j))max=*(*(a+i)+j);*(m+i)=max;}}voidmain()inta[5][5],b[5];for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);fun(a,b);for(i=0;i<5;i++)}13.編寫(xiě)函數(shù),根據(jù)星期幾的數(shù)值(0~6),輸出該星期幾的英文名。voidfindweek(intweek){char*p[]={"SUN","MON","TUE","WED","THU","FRI","SAT"};puts(p[week]);}voidmain()printf("請(qǐng)輸入星期幾(0~6)\n");scanf("%d",&w);if(w>=0&&w<=6)findweek(w);}14.編寫(xiě)函數(shù),根據(jù)月份號(hào),輸出該月的英文名。voidfindmonth(intm)char*p[]={"Jan.","Feb.","Mar.","Apr.","May.","Jun.","July.","Aug.","Sept.","Oct.","Nov.","Dec."};puts(p[m-1]);}voidmain()printf("請(qǐng)輸入月份(1--12)\n");scanf("%d",&no);if(no>=1&&no<=12)findmonth(no);}#include""voidmain(){charstr[5][100],*p[5];inti,k;ame);B.printf("%s",&stu[1].name);C.printf("%s",stu[1].name[0]);D.printf("%s",&stu[1].name[0]);*5.以下程序的輸出結(jié)果是()。#include<>voidmain(){intx=1,y=2,z=3;structaa{inta;int*p;}s[]={4,&x,5,&y,6,&z};structaa*q=s+1;p}structnode{intn;structnode*next;}x,y,*p=&x,*q=&y;y接到x節(jié)點(diǎn)之前的語(yǔ)句是()。A.=pB.=qC.=pD.=q*7.以下程序的輸出結(jié)果為()。#include<>voidmain(){structnode{structnode*next;a[4];inti;for(i=0;i<3;i++){(a+i)->next=a+i+1;}printf("%d,%d\n",(a[1].next)->n,a[3].next->n);}所指節(jié)點(diǎn)從鏈表中刪除并釋放的語(yǔ)句為()。free(p2);pp10.若要利用下面的程序片段使指針變量p指向一個(gè)整型變量的存儲(chǔ)單元?jiǎng)t括號(hào)中需填入的內(nèi)容是()。tpp=()malloc(sizeof(int));A.intB.*intC.&intD.int*#include<>解:(1)B(2)C(3)A(4)D(5)B(6)C(7)D(8)B(9)A(10)D二、寫(xiě)出下列程序的輸出結(jié)果#include<>structstcharname[10];ntage}x[3]={{1,"zhang",19},{2,"li",20},{3,"wang",21}},*p=x;voidmain(){printf("%s,%d\n",(p+2)->name,(*p).age);}解:wang,19#include<>structs{inta[4];char*pa[4];}x,*p=&x;voidmain()chary[4][8]={"A","AB","ABC","ABCD"};for(i=1;i<4;i++)[i]=y[i];for(i=1;i<4;i++)[i]=strlen[i]);printf("%d,%d,%s\n",[1],++p->a[2],++p->pa[2]);}解:2,4,BC#include<>structks{inta;int*b;}s[4],*p;voidmain()for(i=1;i<4;i++){s[i].a=n;s[i].b=&s[i].a;n+=2;}p=&s[0];p++;printf("%d,%d\n",(++p)->a,p->a);}解:3,1#include<>structs{inta;floatb;char*c;};voidmain(){structsx={19,,"zhang"};structs*px=&x;printf("%d,%.1f,%s\n",,,;printf("%d,%.1f,%s\n",px->a,(*px).b,px->c);printf("%c,%s\n",*px->c-1,&px->c[1]);}解:19,,zhang9,,zhangy,hang三、程序填空題1.已知head指向一個(gè)單向鏈表,鏈表中每個(gè)節(jié)點(diǎn)包含整型數(shù)據(jù)域(data)和指針域(next)。以下函數(shù)max求出鏈表中數(shù)據(jù)域值最大節(jié)點(diǎn)的位置,由指針s傳回主#include<>structlink{intdata;structlink*next;};voidmain(){structlink*head,*q;structlink*max(structlink*);um=i+1;scanf("%lf",&a[i].x);}for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j].x<a[j+1].x){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%d,%.3f\n",a[i].num,a[i].x);}5.有10個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名、三門(mén)課的成績(jī)。數(shù)據(jù)從鍵盤(pán)輸入,要求打印出每個(gè)學(xué)生的總分、三門(mén)課的總平均成績(jī),以及總分最高的學(xué)生數(shù)據(jù)。解:#include""structstudent{charnum[6];um);scanf("%s",stu[i].name);for(j=0;j<3;j++)scanf("%d",&stu[i].score[j]);}printf(“姓名總分\n”);for(i=0;i<10;i++)for(j=0;j<3;j++)sum+=stu[i].score[j];stu[i].avr=sum/;aver+=stu[i].avr;if(sum>max){max=sum;maxi=i;}printf(“%-8s%-7d\n”,stu[i].name,sum);}aver=aver/10;for(i=0;i<10;i++){printf("%8s%10s",stu[i].num,stu[i].name);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%\n",stu[i].avr);}printf("平均成績(jī)是%\n",aver);printf("最好成績(jī)的學(xué)生是%s,總分是%d\n",stu[maxi].name,max);}6.建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號(hào)、姓名、性別、年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,將此結(jié)點(diǎn)刪除。解:#include""#defineNULL0#defineLENsizeof(structstudent)structstudent{charnum[6];um,stu[i].name);scanf(“%c%d”,&stu[i].sex,&stu[i].age);sum;for(j=0;j<5;j++){scanf(“%f”,&stu[i].score[j]);sum+=stu[i].score[j];}stu[i].aver=sum/5;}for(i=0,j=0;i<n;i++)if(stu[i].sex==’w’)girl[j++]=stu[i];m=j;for(i=0;i<m-1;i++)for(j=i;j<m;j++)if(girl[j].aver>girl[k].aver)k=j;temp=girl[i];girl[i]=girl[k];girl[k]=temp;}for(i=0;i<m;i++){printf(“%10s%10s”,girl[i].num,girl[i].name);printf(“%2c%3d”,girl[i].sex,girl[i].age);for(j=0;j<5;j++)printf(“%”,girl[i].score[j]);printf(“%\n”,girl[i].aver);}}的在前面加一位6,原來(lái)以1、5開(kāi)頭的號(hào)碼的在前面加一位9,其他在原號(hào)碼前面輸出處理后的通訊錄數(shù)據(jù)。解:#include<>#defineN100voidmain(){struct{charname[10],tel[9];}addr[N];inti,j,n;printf(“請(qǐng)輸入通訊錄數(shù):”);while(scanf(“%d”,&n),n>100);for(i=0;i<n;i++){scanf(“%s%s”,addr[i].name,addr[i].tel);addr[i].tel[8]='\0';{for(j=6;j>=0;j--)addr[i].tel[j+1]=addr[i].tel[j];addr[i].tel[0]=’6’;}{for(j=6;j>=0;j--)addr[i].tel[j+1]=addr[i].tel[j];addr[i].tel[0]=’9’;}{for(j=6;j>=0;j--)addr[i].tel[j+1]=addr[i].tel[j];addr[i].tel[0]=’8’;}}for(i=0;i<n;i++)printf(“%10s%10s\n”,addr[i].name,addr[i].tel);}9.在一有序(設(shè)為升序)鏈表中查找某數(shù)(由鍵盤(pán)輸入),如果存在則將它刪除,如果不存在則將它按其大小次序插入到鏈表中。解:#include<>#include<>structlink{intdata;structlink*next;};structling*find(structlink*head,intx){structlink*p,*q,*s;if(head->data==x)head=head->next;elseif(x<head->data){s=(structlink*)malloc(sizeof(structlink));s->data=x;s->next=head;head=s;}{q=head;p=head->next;while(p!=NULL){if(p->data==x){q->next=p->next;break;}elseif(x<p->data){s=(structlink*)malloc(sizeof(structinks->data=x;s->next=p;q->next=s;break;}p=p->next;}if(p==NULL){s=(structlink*)malloc(sizeof(structlink));s->data=x;s->next=NULL;q->next=s;}}returnhead;}完成,每一節(jié)點(diǎn)的數(shù)據(jù)成員存放一個(gè)所出現(xiàn)的字母。解:#include<>#include<>structnode{charc;structnode*next;};voidmain(){structnode*head,*p,*q;charstr[81];inti=0;head=NULL;igetcharstr[i]<=’z’)while(p!=NULL)if(p->c==str[i])break;else{q=p;p=p->next;}if(p==NULL){p=(struct

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論