C語言程序設(shè)計(第二版)習(xí)題參考答案1之歐陽道創(chuàng)編_第1頁
C語言程序設(shè)計(第二版)習(xí)題參考答案1之歐陽道創(chuàng)編_第2頁
C語言程序設(shè)計(第二版)習(xí)題參考答案1之歐陽道創(chuàng)編_第3頁
C語言程序設(shè)計(第二版)習(xí)題參考答案1之歐陽道創(chuàng)編_第4頁
C語言程序設(shè)計(第二版)習(xí)題參考答案1之歐陽道創(chuàng)編_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

歐陽道創(chuàng)編2021.03.06歐陽道創(chuàng)編2021.03.06C語言程序設(shè)計習(xí)題參考答案時間:2021.03.06創(chuàng)作:歐陽道習(xí)題1一、判斷題1.在計算機中,小數(shù)點和正負(fù)號都有專用部件來保存和表示。2.二進制是由0和1兩個數(shù)字組成的進制方式。3.二進制數(shù)的邏輯運算是按位進行的,位與位之間沒有進位和借位的關(guān)系。4.在整數(shù)的二進制表示方法中,0的原碼、反碼都有兩種形式。5.有符號數(shù)有三種表示法:原碼、反碼和補碼。6.常用字符的ASCII碼值從小到大的排列規(guī)律是:空格、阿拉伯?dāng)?shù)字、大寫英文字母、小寫英文字母。解:1.F2.T3.T4.T5.T6.T二、單選題1.在計算機中,最適合進行數(shù)值加減運算的數(shù)值編碼是。A.原碼B.反碼C.補碼D.移碼2.已知英文小寫字母m的ASCII碼為十進制數(shù)109,則英文小寫字母y的ASCII碼為十進制數(shù)。A.112B.120C.121D.1223.關(guān)于ASCII碼,在計算機中的表示方法準(zhǔn)確地描述是。A.使用8位二進制數(shù),最右邊一位為1B.使用8位二進制數(shù),最左邊一位為1C.使用8位二進制數(shù),最右邊一位為0D.使用8位二進制數(shù),最左邊一位為04.設(shè)在機器字長4位,X=0111B,Y=1011B,則下列邏輯運算中,正確的是___________。A.X∧Y=1000B.X∨Y=1111C.X⊕Y=0011D.=10005.下列敘述中正確的是()。A.高級語言就是機器語言B.匯編語言程序、高級語言程序都是計算機程序,但只有機器語言程序才是計算機可以直接識別并執(zhí)行的程序C.C語言因為具有匯編語言的一些特性,所以是匯編語言的一種D.C源程序經(jīng)過編譯、連接,若正確,執(zhí)行后就能得到正確的運行結(jié)果6.用C語言編寫的源程序經(jīng)過編譯后,若沒有產(chǎn)生編譯錯誤,則系統(tǒng)將()。A.生成可執(zhí)行文件B.生成目標(biāo)文件C.輸出運行結(jié)果D.自動保存源文件7.下列敘述中不正確的是()。A.main函數(shù)在C程序中必須有且只有一個B.C程序的執(zhí)行從main函數(shù)開始,所以main函數(shù)必須放在程序最前面C.函數(shù)可以帶參數(shù),也可以不帶參數(shù)。D.每個函數(shù)執(zhí)行時,按函數(shù)體中語句的先后次序,依次執(zhí)行每條語句解:1.C2.C3.D4.B5.B6.B7.B三、填空題1.(87.625)10=()2=()8=()162.(1001010111001.10111)2=()8=()16=()103.輸入三個數(shù),計算并輸出三個數(shù)的和與三個數(shù)的乘積。程序如下:#include<stdio.h>voidmain(){inta,b,c,s,z;printf("Pleaseinputabc:\n");s=a+b+c;printf("%d\n",s);}*4.輸入三角形三條邊的邊長,計算并輸出三角形的面積。根據(jù)三條邊的邊長,計算三角形面積的公式如下:程序如下:#include<stdio.h>#include<math.h>voidmain(){doublex,y,z,s,dime;scanf("%lf%lf%lf",&x,&y,&z);dime=sqrt(s*(s-x)*(s-y)*(s-z));}解:1.1010111.101127.557.A2.11271.5612B9.B84793.718753.scanf("%f%f%f",&a,&b,&c);z=a*b*c;printf("%f",z);4.s=(x+y+2)/2;printf("%f",dim);四、編程題1.仿照例1.1,編程序在屏幕上顯示:*****************************MerryChristmas!HappyNewYear!*****************************解:#include<stdio.h>voidmain(){printf("*****************************\n");printf("MerryChristmas!\n");printf("HappyNewYear!\n");printf("*****************************\n");}2.仿照例1.2編程,輸入一個整數(shù),計算這個數(shù)的平方。解:#include<stdio.h>voidmain(){inta,z;printf("請輸入一個整數(shù):\n");scanf("%d",&a);z=a*a;printf("%d*%d=%d\n",a,a,z);}*3.仿照例1.3編程,輸入兩個數(shù)后,輸出其中較小值。解:#include<stdio.h>floatmin(floatx,floaty){floatm;if(x<y)m=x;elsem=y;returnm;}voidmain(){floata,b,c,mindata;printf("請輸入二個數(shù):\n");scanf("%f%f",&a,&b);mindata=min(a,b);printf("較小數(shù):%f\n",mindata);}*4.仿照例1.2編程,輸入a、b后,輸出一元一次方程ax+b=0的解。解:#include<stdio.h>voidmain(){floata,b,x;printf("請輸入a、b:\n");scanf("%f%f",&a,&b);x=-a/b;printf("x=%f\n",x);}*5.仿照例1.2編程,輸入圓柱體的半徑和高,計算并輸出圓柱體的體積。解:#include<stdio.h>voidmain(){floatr,h,s,v;printf("Pleaseinputrandh:\n");scanf("%f%f",&r,&h);v=3.14*r*r*h;printf("V=%f\n",v);}習(xí)題2一、判斷題1.任何變量都必須要定義其類型。2.C語言的double類型數(shù)據(jù)在其數(shù)值范圍內(nèi)可以表示任何實數(shù)。3.C語言的任何類型數(shù)據(jù)在計算機內(nèi)都是以二進制形式存儲的。4.isdigit(‘5’)的結(jié)果為0。5.printf函數(shù)中格式符“%c”對應(yīng)的參數(shù)只能是字符類型。6.按格式符“%d”輸出float類型變量時,截斷小數(shù)位取整后輸出。7.在C語言程序中,ABC與abc是兩個相同的變量。8.scanf函數(shù)中的格式符“%d”不能用于輸入實型數(shù)據(jù)。9.格式符“%f”不能用于輸入double類型數(shù)據(jù)。10.當(dāng)格式符中指定寬度時,輸出的信息完全取決于所指定的寬度。解:(1)T(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T(10)F二、指出下列各項中哪些是C語言中的常量,并指出其類型10,150007–0x3dπ1e0e1o7o8‘x’‘xo’1.52e0.5sin(3)0xf16‘\a’‘\009’1.414E+22.54‘\\’‘a(chǎn)’+20x100h012810L解:合法的C常量有:整型常量:007–0x3d0xf1610L實型常量:1e01.414E+2字符型常量:‘x’‘\a’‘\\’三、指出下列各項中哪些是C語言中的用戶標(biāo)識符x_1X_2Highprintfβ3DSi/je2-e2countIntnumber$23next_sizeofIFsum_12_123#NO1:doublefor解:C的用戶標(biāo)識符有:x_1X_2Highe2countIntnumbernext_IFsum_12四、單項選擇題1.C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是()。A.原碼B.反碼C.補碼D.ASCII碼2.若有定義語句“charc='\72';”則變量c()。A.包含1個字符B.包含2個字符C.包含3個字符D.定義不合法3.C語言中的基本數(shù)據(jù)類型包括()。A.整型、實型、邏輯型B.整型、實型、字符型C.整型、邏輯型、字符型D.整型、實型、邏輯型、字符型4.設(shè)c1、c2為字符型變量,執(zhí)行語句“c1=getchar();c2=getchar();”時,從鍵盤輸入A↙,c1和c2的值分別為()。A.都是‘A’B.c1是‘A’,c2未輸入C.c1未輸入,c2是‘A’D.c1是‘A’,c2是‘\n’5.a(chǎn)、b是整型變量,執(zhí)行語句“scanf("a=%d,b=%d",&a,&b);”,使a和b的值分別為1和2,正確的輸入是()。A.12B.1,2C.a(chǎn)=1,b=2D.a(chǎn)=1b=26.設(shè)c為字符型變量值為‘A’,a為整型變量值為97,執(zhí)行語句“putchar(c);putchar(a);”后,輸出結(jié)果為()。A.AaB.A97C.A9D.a(chǎn)A7.已知字母A的ASCII碼值為65,以下語句段的輸出結(jié)果是()。charc1='A',c2='Y';printf("%d,%d\n",c1,c2);A.輸出格式非法,輸出錯誤信息B.65,90C.A,YD.65,898.若要使用輸入語句“scanf("%4d%4d%10f",&i,&j,&x);”,為i輸入-10,為j輸入12,為x輸入345.67,則正確的輸入形式是()。A.–1012345.67↙B.–1012345.67↙C.–10001200345.67↙D.–10,12,345.67↙9.能正確地定義符號常量的是()。A.#definen=10B.#definen10C.#definen10;D.#DEFINEN1010.在C語言中,int、char、short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)()。A.由用戶自己定義B.均為2個字節(jié)C.是任意的D.由機器字長決定解:(1)D(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D五、填空題1.charch='$';floatx=153.4523;語句“printf("%c%–8.2f\\n",ch,x);”的輸出結(jié)果是。解:$153.45\n2.inti=123;floatx=–1234.56789;語句“printf("i=%5dx=%7.3f\n",i,x);”的輸出結(jié)果是。解:i=123x=-1234.5683.charc='a';inta=65;語句“putchar(c+1);putchar(a);”的輸出結(jié)果是。解:bA4.inta=98;語句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的輸出結(jié)果是。解:98,c,144,655.intk;floatf;語句“scanf(“%3d%*4d%6f”,&k,&f);”執(zhí)行時輸入12345678765.43↙則k=,f=。解:k=123f=8765.46.使用pow()函數(shù)時,程序的開頭必須寫一條預(yù)處理命令:。解:#include<math.h>5.填空題。(1)inti=123,j=45;函數(shù)printf("%d,%d\n",i,j);的輸出結(jié)果是。解:123,45(2)inti=123;floatx=-45.678;語句printf("i=%5dx=%7.4f\n",i,x);的輸出結(jié)果是。解:i=123x=-45.6780(3)floatalfa=60,pi=3習(xí)題3一、根據(jù)下列數(shù)學(xué)式,寫出C的算術(shù)表達式。解:-(a2+b2)×y4的C表達式:-(a*a+b*b)*pow(y,4)的C表達式:(sqrt(2)+10*10)/(pow(tan(x),-1)+3.141593)的C表達式:sqrt(pow(fabs(sin(x)),3.5))的C表達式:pow(x,6)-exp(5)的C表達式:(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)二、按照要求,寫出下列C的表達式。1.寫出int類型變量x為“奇數(shù)”的表達式。解:x%2==12.Int類型變量x、y、z,寫出描述“x或y中有且僅有一個小于z”的表達式。解:x<z&&y>=z||x>=z&&y<z3.將double類型變量y保留四位小數(shù)的表達式。解:(int)(y*10000+0.5)/10000.04.為變量s賦值:取變量x的符號,取變量y的絕對值。解:s=(x>=0?1:-1)*(y>=0?y:-y)5.條件“-5≤x≤3”所對應(yīng)的C邏輯表達式。解:-5<=x&&x<=36.a(chǎn)、b是字符變量,已知a的值為大寫字母、b的值為小寫字母,寫出判斷a、b是否為同一字母(不區(qū)分大小寫)的邏輯表達式解:a+32==b或b-a==32?1:07.int類型變量a、b均為兩位正整數(shù),寫出判斷a的個位數(shù)等于b的十位數(shù)、且b的個位數(shù)等于a的十位數(shù)的邏輯表達式。解:a%10==b/10&&a/10==b%108.寫出判斷某個人是否是成年人(年齡大于21),且不是老年人(年齡大于65)的邏輯表達式。解:y>21&&y<=659.寫出取變量a、b、c中最大值的條件表達式。解:(a>b?a:b)>c?(a>b?a:b):c10.若字符變量ch為小寫字母,則將其轉(zhuǎn)換為對應(yīng)的大寫字母。解:ch=ch>='a'&&ch<='z'?ch-32:ch三、單項選擇題1.設(shè)intx=3,y=4,z=5;,下列表達式中值為0的是()。A.'x'&&'y'B.x<=yC.x||y+z&&y–zD.!((x<y)&&!z||1)2.已知x=10,ch='A',y=0;,則表達式“x>=y&&ch<'B'&&!y”的值是()。A.0B.1C.“假”D.“真”3.判斷char型變量c為數(shù)字字符的正確表達式為()。A.'0'<=c<='9'B.'0'<=c&&c<='9'C.c>='0'||c<='9'D.c>=0&&c<=94.下列運算符中,優(yōu)先級最低的是()。A.?:B.&&C.==D.*=5.若有條件表達式“x?a++:b--”,則以下表達式中()等價于表達式x。A.x==0B.x!=0C.x==1D.x!=16.有定義intk=4,a=3,b=2,c=1;,表達式“k<a?k:c<b?c:a”的值是()。A.4B.3C.2D.17.執(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=108.有定義inta=9;,語句“a+=a–=a+a;”執(zhí)行后,變量的值是()。A.18B.9C.–18D.–99.設(shè)x和y均為int型變量,則語句“x+=y;y=x–y;x–=y;”的功能是()。A.把x和y按從小到大排列B.把x和y按從大到小排列C.無確定結(jié)果D.交換x和y中的值10.有定義doublex=1,y;,表達式“y=x+3/2”的值是()。A.1B.2C.2.0D.2.511.設(shè)有定義intx;doubley;,則下列表達式中結(jié)果為整型的是()。A.(int)y+xB.(int)x+yC.int(y+x)D.(double)x+y12.設(shè)有整型變量x,下列說法中,錯誤的是()。A.“5.0”不是表達式B.“x”是表達式C.“!x”是表達式D.“sqrt(x)”是表達式解:(1)D(2)B(3)B(4)D(5)B(6)D(7)B(8)C(9)D(10)C(11)A(12)A四、填空題。1.設(shè)floatx=2.5,y=4.7;inta=7;,表達式x+a%3*(int)(x+y)%2/4值為。解:2.52.設(shè)intx=2,y=3;,執(zhí)行語句“x*=x+y”后x的值為。解:103.設(shè)intx=17,y=5;,執(zhí)行語句“x%=x–y”后x的值為。解:54.設(shè)inta=6,b=4,c=2;,表達式!(a-b)+c-1&&b-c/2的值為。解:15.設(shè)inta=2,b=4,x,y;,表達式!(x=a)||(y=b)&&!(2-3.5)的值為。解:06.判斷變量a、b是否絕對值相等而符號相反的邏輯表達式為。解:a==-b7.判斷變量a、b中必有且只有一個為0的邏輯表達式為。解:a*b==0&&a+b!=08.設(shè)intm=2,n=2,a=1,b=2,c=3;執(zhí)行語句d=(m=a==b)&&(n=b>c);后,m和n的值分別為。解:m為0,n為29.設(shè)inta=2;,表達式“a%2!=0”的值為。解:010.設(shè)charc='y';,表達式“c>='a'&&c<='z'||c>='A'&&c<='Z'”的值為。解:111.寫出與代數(shù)式(x+2)ex+2對應(yīng)的C表達式。解:(x+2)*exp(x+2)12.設(shè)inta=2;執(zhí)行語句a=3*5,a*4;后a的值為。解:15五、寫出下列程序的輸出結(jié)果。1.#include<stdio.h>voidmain(){unsignedk,n;scanf("%u",&n);//輸入數(shù)據(jù)為:69k=n%10*10+n/10;printf("n=%dk=%d\n",n,k);}解:n=69k=962.#include<stdio.h>voidmain(){intx=2,y=3;x*=y+4;printf("%d,%d\n",x,y);x/=y=5;printf("%d,%d\n",x,y);x-=y%2;printf("%d,%d\n",x,y);}解:14,32,51,53.#include<stdio.h>voidmain(){inta,b;a=8;b=7;a=(a--==b++)?a%3:a/3;printf("a=%db=%d\n",a,b);}解:a=2b=8六、程序填空題。1.以下程序輸入三個整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a中的值給c,交換后輸出a、b、c的值。例如輸入123,輸出a=2b=3c=1。#include<stdio.h>voidmain(){inta,b,c,①;printf(“Entera,b,c:”);scanf(“%d%d%d”,②);③;a=b;b=c;④;printf(“a=%db=%dc=%d\n”,a,b,c);}解:①t②&a,&b,&c③t=a④c=t2.以下程序不借助任何變量把a、b中的值進行交換。#include<stdio.h>voidmain(){inta,b;printf(“Inputa,b:”);scanf(“%d%d”,①);a+=②;b=a-③;a-=④;printf(“a=%db=%d\n”,a,b);}解:①&a,&b②b③b④b七、編程題。1.輸入3個字符后,按各字符ASCII碼從小到大的順序輸出這些字符。解:#include<stdio.h>voidmain(){charc1,c2,c3,t,min,mid,max;c1=getchar();c2=getchar();c3=getchar();min=(t=c1<c2?c1:c2)<c3?t:c3;max=(t=c1>c2?c1:c2)>c3?t:c3;mid=c1+c2+c3-min-max;putchar(min);putchar(mid);putchar(max);}2.輸入兩點坐標(biāo)(x1,y1)、(x2,y2),計算并輸出兩點間的距離。解:#include<stdio.h>#include<math.h>voidmain(){doublex1,y1,x2,y2,d;printf(“請輸入兩點坐標(biāo)(x1,y1),(x2,y2)\n”);scanf(“(%lf,%lf),(%lf,%lf)”,&x1,&y1,&x2,&y2);d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));printf(“兩點間距離=%f\n”,d);}3.編寫程序,計算球體積并輸出它的值。要求輸入半徑值,計算結(jié)果保留三位小數(shù)。解:#include<stdio.h>#include<math.h>#definePI3.1415926voidmain(){doubler,gv;printf(“請輸入半徑值:\n”);scanf(“%lf”,&r);gv=4.0/3*PI*pow(r,3);printf(“半徑為%f的球的體積為:%.3f\n”,r,gv);}4.輸入三角形的底和高,求三角形面積。解:#include<stdio.h>#definePI3.14159voidmain(){doublea,h,s;printf(“請輸入三角形的底,高\n”);scanf(“%lf,%lf”,&a,&h);s=a*h/2;printf(“三角形面積=%f\n”,s);}5.編寫程序,輸入一個實數(shù)后輸出該數(shù)的絕對值。解:#include<stdio.h>voidmain(){doublex,y;printf(“請輸入一個實數(shù)\n”);scanf(“%lf”,&x);y=x>=0?x:-x;printf(“|%g|=%g\n”,x,y);}6.輸入梯形的上底、下底和高,求梯形面積。解:#include<stdio.h>voidmain(){doublea,b,h,s;printf(“請輸入梯形的上底,下底,高\n”);scanf(“%lf,%lf,%lf”,&a,&b,&h);s=(a+b)*h/2;printf(“梯形面積=%f\n”,s);}7.輸入矩形的邊長,求矩形面積。解:#include<stdio.h>voidmain(){doublea,b,s;printf(“請輸入矩形的長,寬\n”);scanf(“%lf,%lf”,&a,&b);s=a*b;printf(“矩形面積=%f\n”,s);}8.已知等差數(shù)列的第一項為a,公差為d,求前n項之和,a、d、n由鍵盤輸入。解:#include<stdio.h>voidmain(){inta,d,n,sum;printf(“請輸入等差數(shù)列的首項公差項數(shù)\n”);scanf(“%d%d%d”,&a,&d,&n);sum=a*n+n*(n-1)*d/2;printf(“sum=%d\n”,sum);}9.編寫程序,將d天h小時m分鐘換算成分鐘,輸入d、h、m,輸出換算結(jié)果。解:#include<stdio.h>voidmain(){intd,h,m,t;printf(“請輸入天小時分鐘\n”);scanf(“%d%d%d”,&d,&h,&m);t=d*24*60+h*60+m;printf(“%d天%d小時%d分鐘=%d分鐘\n”,d,h,m,t);}10.編寫程序,求出給定半徑r的圓以及內(nèi)接正n邊形的面積,輸出計算結(jié)果。r和n的值由鍵盤輸入。解:#include<stdio.h>#include<math.h>#definePI3.14159voidmain(){doubler,s1,s2;intn;printf(“Inputrn\n”);scanf(“%lf%d”,&r,&n);s1=PI*r*r;s2=n/2.0*r

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論