版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
練習(xí)題1參考答案
一、選擇題
序號(hào)12345678
參考答案ACADCCCA
二、填空題
1.程序設(shè)計(jì)語言主要分為以下三類:機(jī)器語言、匯編語言和高級(jí)語言°
2.在C語言中,一個(gè)因數(shù)一般由兩個(gè)部分組成,它們是困數(shù)百部和函數(shù)體。
3.C程序開發(fā)過程的一般步驟為:源程序的編輯、編譯、連接和運(yùn)行。
4.C程序源文件的擴(kuò)展名為」—,編譯勝利后產(chǎn)生的文件擴(kuò)展名為汕—,連接勝
利后產(chǎn)生文件擴(kuò)展名為.exe。
三、應(yīng)用題
略
練習(xí)題2參考答案
一、選擇題
序號(hào)12345678910
參考答案BACCBABBDc
序號(hào)1112131415
參考答案ABCAC
二、填空題
1.通常一個(gè)字節(jié)包含8個(gè)二進(jìn)制位。在一個(gè)字節(jié)中能存放的最大(十進(jìn)制)整
數(shù)是一255(無符號(hào)),127(帶符號(hào)),最小(十進(jìn)制)整數(shù)息-128,它的
二進(jìn)制數(shù)的形式是一10000000。
2.在C語言中,十進(jìn)制數(shù)30的八進(jìn)制數(shù)表示形式是036,十六進(jìn)制數(shù)表示形式
是一Oxle,在內(nèi)存中它的二進(jìn)制數(shù)表示形式是0000000000011110。
3.條件“20<x<30或x<-100w的C語言表達(dá)式是x〉20&&x〈30Mx〈-100。
4.若a、b和c均是int型變量,則計(jì)算表達(dá)式a=(b=4)+(c=2)后,a值為6,b
值為4,c值為2。
5.已知inty;floatx=-3;,執(zhí)行語句丫=乂%2;后,變量y的值為語句出錯(cuò)。
6.字符串”ab\034\\\x79”的長度為5。
7.在C語言中(以16位PC機(jī)為例),一個(gè)float型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)為
4;一個(gè)double型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為8。
8.若s是ini型變量,且s-6,則s%2十(s十1)%2表達(dá)式的值為1。
9.表達(dá)式pow(2.8,scrt(double(x)))值的數(shù)據(jù)類型為double。
10.若a是int型變量,則表達(dá)式(a=4*5,a*2),a+6的值為26。
11.若a是int型變量,則執(zhí)行表達(dá)式a=25/3%3后a的值為2°
12.若i為int整型變量且賦值為6,則運(yùn)算i++后表達(dá)式的值是一6,變量i的
值是7。
13.若x為int型變量,執(zhí)行語句:*=10"+內(nèi)-力-、;則乂的值為20。
14.若x和y為double型變量,則表達(dá)式x=l,y=x+3/2的值是2.000000。
15.(-b+sqrt(b*b-4*a*c))/(2*a)的數(shù)學(xué)式子是[-b+J(b-2-4ac)]/2a
16.sqrt(p*(p-a)*(p-b)*(p-c))的數(shù)學(xué)式子是J[p*(p-a)*(p-b)*(p-c)]。
17.推斷某一年份是否為閏年的表達(dá)式是(ycar%4==0||ycar%100==0)&&ycar%400!=0)o
18.用隨機(jī)函數(shù)rand()產(chǎn)生一個(gè)在[-20,20]兩位整數(shù)的表達(dá)式是x-rand0%11-20。
三、閱讀分析下列程序。
1.寫出下列程序的輸出結(jié)果。
18
2.已知字母B的ASCII碼為66,寫出下列程序的輸出結(jié)果。
67,E
3.寫出下列程序的輸出結(jié)果。
a=4,b=3
練習(xí)題3參考答案
一、選擇題
序號(hào)12345678910
參考答案DBDDCDDBBA
二、填空題
1.c語句句尾用尾號(hào)結(jié)束。
2.若有變量定義:inta=l,b=2,c=3,d=4,x=5,y=6;則表達(dá)式(x=a>b)&&(y=c>d)的值為
0o
3.運(yùn)用強(qiáng)制轉(zhuǎn)換方法將正整數(shù)轉(zhuǎn)換成字符。本題程序如下:
本程序的執(zhí)行結(jié)果為輸入一個(gè)正整數(shù)(小于255):97
a的ASCII碼為97°
4.下面程序的輸出是TOO,5()
1=-100,j=50
i=-100
F50。
5.執(zhí)行以下程序時(shí),若從第一列起先輸入數(shù)據(jù),為使變最a=2,b=8,x=6.5,y=56.62,
el='C,c2='b',正確的數(shù)據(jù)輸入形式是a=2b=8x=6.5y=56.62cl=Cc2=b。
三、程序設(shè)計(jì)題
1.編寫程序交換兩個(gè)變量a,b的值,并輸出。如輸入時(shí)a=3,序5,輸出a=5,b=3.
#include<stdio.h>
voidmain()
(
inta,b,c;
printf("輸入兩個(gè)數(shù):a,b");
scanf("a=%d,b=%d",&a,&b);
c=a;
a=b;
b=c;
printf("a=%d,b=%dw,a,b);
)
2.編寫程序輸入小寫字符boy,輸出大寫字符BOY。
#include<stdio.h>
voidmain()
charc;
printf(wInput:");
scanf("%c",&c);
c=c-32;
printf("%c",c);
)
3.已知華氏溫度與攝氏溫度的轉(zhuǎn)換公式為:C=(F-32)*5/90編寫程序當(dāng)輸入華氏溫度F
時(shí),愉出對(duì)應(yīng)的攝氏溫度,
#include<stdio.h>
voidmain()
{floatF;
scanf(“%f",&F);
printf(,(F-32)*5/9);}
4.設(shè)圓的半徑r=1.5,圓柱高h(yuǎn)=3,編寫程序求圓周長、圓面積、圓球表面積、圓球體
積及圓柱體積。用scanf函數(shù)輸入數(shù)據(jù),輸出計(jì)算結(jié)果,輸出時(shí)要求有文字說明,取小數(shù)點(diǎn)
后2位數(shù)字。
nclude<stdio.h>
intmainO
{floath,r,1,s,sq,vq,vz;
floatpi=3.141592;
printf(“請(qǐng)輸入圓半徑r,圓柱高h(yuǎn):");
scanf(,&r,&h);
l=2*pi*r;
s=r*r*pi;
sq=4*pi*r*r;
vq=3.0/4.0*pi*r*r*r;
vz=pi*r*r*h;
printf(“圓周長為:l=%6.2f\nM,1);
printf(“圓面積為:s=%6.2f\nw,s);
printf(“圓球表面積為:sq=%6.2f\n",sq);
printf("圓球體積為:vq=%6.2f\n",vq);
printf(“圓柱體積為:vz=%6.2f\n",vz);
ruturn0;}
5.編寫程序輸入梯形的上底下a,底b和高h(yuǎn),輸出該梯形的面積。
#include<stdio.h>
voidmain。
{floata,b,h,s;
printf(“請(qǐng)輸入梯形上底,下底和高:\n");
scanf(rt%f%f%fw,&a,&b,&h);
s=(a+b)*h/2;
printf(“梯形面積為:%f\nw,s);}
6.編寫程序?qū)ⅰ癈hina〃譯成密碼,密碼規(guī)律是:用原來的字母后面第4個(gè)字母代替原來
的字母。例如,字母〃A〃后面第4個(gè)字母是"E",用〃E〃代替"〃。因此,“China”應(yīng)譯為"Glmre”。
三、程序設(shè)計(jì)題
1.編寫程序輸入有3個(gè)整數(shù)a、b、c,并依據(jù)從小到大的依次輸出。
ftinclude<stdio.h>
intmain()
{inta,b,c,t;
printf("pleaseinputabc\n");
scanf(a%d%d%d"
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;(
printf("%d,與d,%d\n”,a,b,c);
return0;}
2.有一個(gè)函數(shù):
xx<\
y=-2,v-ll<x<10
3x-llx>10
編寫一個(gè)程序,輸入x的值,輸出y的值。
#include<stdio.h>
intmainO
(intx,y;
printf(“輸入x:");
scanf("%d",&x);
if(x<l)
{y=x;
a
printf(x=%dyy=x=%d\n”,x,y);}
elseif(x<10)
{y=2*x-l;
printf(ax=%d.y=2*xT=%d\n",x,y);}
else
{y=3*x-ll;
printf(ax=%d,y=3*x-ll=%d\nw,x,y);)
return0;}
3.輸入學(xué)生的百分制成果,要求輸出學(xué)生的成果、等級(jí)以及相應(yīng)的評(píng)語。設(shè)用'A'、,B'、
‘C'、,D'、'E'五個(gè)等級(jí),且90分以上為等級(jí)”',評(píng)語為“成果優(yōu)秀”,80-89分為等
級(jí)'B',評(píng)語為“成果良好”,70-79分為等級(jí)'C',評(píng)語為"成果中等”,60-69分為等級(jí)
'D',評(píng)語為“成果及格”,60分以下為等級(jí)'E',評(píng)語為“成果不及格”。分別用if條件
語句和switch開關(guān)語句編寫程序。
方法一:if條件語句
#includc<stdio.h>
voidmainO
intscore;
printf("輸入成果:”);
scanf&score);
if(score>100Iscore<0)
printf("輸入錯(cuò)誤!\n〃);
elseif(score>=90)
printf("成果為%d,等級(jí)為A,成果優(yōu)秀\n”,score);
elseif(score>=80)
printf("成果為%d,等級(jí)為B,成果良好\n”,score);
elseif(score>=70)
printf("成果為%d,等級(jí)為C,成果中等\n”,score);
elseif(score>=60)
printf("成果為舟d,等級(jí)為D,成果及格\n”,score);
else
printf(〃成果為與d,等級(jí)為E,成果不及格\n〃,score);
}
方法二:switch開關(guān)語句
#include<stdio.h>
voidmain(){
intscore;
printf("輸入成果:”);
sccinf("*d”,&score);
if(score>100IIscore<0)
printf("輸入錯(cuò)誤!\n");
else
switch(score/10)
(
case10:
case9:
printf(〃成果為%d,等級(jí)為A,成果優(yōu)秀\n”,score);break;
case8:
printf(〃成果為%d,等級(jí)為B,成果良好\n〃,score);break;
case7:
printf("成果為為d,等級(jí)為C,成果中等\n〃,score);break;
case6:
printf("成果為國d,等級(jí)為D,成果及格\n〃,score);break;
default:
prinlf("成果為%d,等級(jí)為E,成果不及格\n",score);
}
}
4.編寫程序輸入三個(gè)整數(shù),推斷它們是否能夠構(gòu)成三角形。若能構(gòu)成三角形,則輸出
三角形的類型(等邊三角形、等腰三角形、一般三角形),并計(jì)算三角形的面積;若不能構(gòu)
成三角形,則輸出“不能構(gòu)成三角形”的信息。
#include<stdio.h>
#include<math.h>
voidmain()
floata,b,c,s,t;
printf("inputa,b,c'n");
scanfC%f%f%fz;&a,如,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a))
(
t=(a+b+c)/2;
s=sqrt(t*(t-a)*(t-b)*(t-c));
if(a==b&&b==c)
{printf("這是等邊三角形,面積為與f'n",s);)
elseif((a==b)i&(b!=c)||(b==c)&&(a!=c)||(a==c)&&(a!=b))
{printf(〃這是等腰三角形,面積為昭\n”,s);)
elseprintf("這是一般三角形,面積為5f\n",s);
1
else
printf(〃不能構(gòu)成三角形〃);
)
5.編寫程序在屏幕上顯示一張如下所示的時(shí)辰表:
*****Time*****
1morning
2afternoon
3night
Pleaseenteryourchoice(l-3):
操作人員依據(jù)提示進(jìn)行選擇,程序依據(jù)輸入的時(shí)間序號(hào)顯示相應(yīng)的問候信息,選擇1
時(shí)顯示"Goodmorning”,選擇2時(shí)顯示“Goodafternoon”,選擇3時(shí)顯示“Goodnight",
對(duì)于其他選擇顯示"Selectionerror!”。
#include<stdio.h>
voidmainO
(
intn;
printfC*****Timo******\nlmorning'n");
printf(/z2afternonn\n3night'n");
printf(z,Plcaseenteryourchoice(l-3):\nw);
scanf&n);
switch(n){
case1:printf('Goodmorning\nz,);break;
case2:printf("Goodafternoon\n,z);break;
case3:printf(z,Goodnight\n/,);break;
default:printf(''Selectionerror!\r),/);
)
)
6.設(shè)銀行整存整取不同期限的月利率分別為:一年定期為0.63%;二年定期為0.66%;
三年定期為0.69知五年定期為0.75與;八年定期為0.84機(jī)要求輸入存款的本金和期限,
求到期能從銀行得到的本金和利息的合計(jì)。分別用if語句和switch語句編與程序。
#include<stdio.h>
voidmain()
(
constdoubleratc[]=(0.0063,0.0066,0.0069,0.0075,0.0084};
intyears=0;
floatinit=0;
doublesum=0;
printf(^Xnlnputinitialamountofmoney/);
scanf("%f”,&init);
printf(^XnTypeinsaveperiodinyears:");
scanf(“與d”,&yoars);
if(years==l||years==2||years==3||years==5||years==8)
(
if(ycars==l)
sum=init*(l+rate[0]*12*years);
else
if(years==2)
sum=init*(l+rate[l]*12*years);
else
if(years==3)
sum=init*(l+rate[2]*12*ycars);
else
if(ycars==5)
sum=init*(l+rate[3]*12*years);
else
sum=init*(l+rate[4]*I2*years);
printf(^XnTotalamountafter%dyears:%.2f\n*,years,sum);
)
else
{
printf(^\n'Vrongnumber,Pleasetypeinyearsagain:;
scanf(“%d”,&years);
}
1
7.編寫程序計(jì)算個(gè)人所得稅。個(gè)人所得稅的計(jì)算方法:(實(shí)發(fā)工資-3500)*稅率-扣除數(shù),
設(shè)個(gè)人所得稅起征點(diǎn)為3E00元。共分為7級(jí),詳細(xì)如下:
級(jí)數(shù)應(yīng)納稅額稅率(%)扣除數(shù)
1不超過1500元的30
2超過1500元至4500元的部分10105
3超過4500元至9000元的部分20555
4超過9000元至35000元的部分251005
5超過35000元至55000元的部分302755
6超過55000元至80000元的部分355505
7超過80000元的部分4513505
#include<stdio.h>
voidmain()
(
floata;〃實(shí)發(fā)工資
floatb;〃應(yīng)納稅部分工資
floats;〃稅率
floatkouchu;//扣除數(shù)
floatptax;〃個(gè)人所得稅
printf("輸入工資:“);
scanf&a);
b=a-3500;
if(b>0&&b<=1500)
(s=0.03;kouchu=0;}
elseif(b<=4500)
{s=0.1;kouchu=105;}
elseif(b<=9000)
{s=0.2;kouchu=555;}
elseif(b<=35000)
{s=0.25;kouchu=1005;}
elseif(b<=55000)
{s=0.3;kouchu=2755;}
elseif(b<=800D0)
{s=0.35;kouchu=5505;}
else
(s=0.45;kouchu=13505;}
ptax=b*s-kouchu;
printf("個(gè)人所得稅為ptax);
)
8.編寫程序計(jì)算貨款。設(shè)按購買貨物款的多少分別賜予不同的實(shí)惠折扣,購貨不足250
元,沒有折扣;購貨25()元(含250元,下同),不足50()元,減價(jià)5%;購貨500元,不足
1000元,減價(jià)7.5%:購貨1000元,不足2000元,減價(jià)1C%;購貨2000元及以上,減價(jià)15%。
#include<stdio.h>
voidmain()
{floatm,d,t;
prinlf(〃請(qǐng)輸入購物金額:〃);
scanf&m);
if(m<250)
d=0;
elseif(m<500)
d=0.05;
elseif(m<1000)
d=0.075;
elseif(m<2000)
d=0.1;
else
d=O.15;
t=m*(l-d);
printf(〃實(shí)際應(yīng)付金額*f”,t);
)
9.給一個(gè)不多于5位的正整數(shù),編寫程序?qū)崿F(xiàn):(1)求出它是幾位數(shù);(2)分別輸出每
一位數(shù)字;(3)按逆序輸出各位數(shù)字。
ttinclude<stdio.h>
intmain()
(inti,j,a,b,c,d,k=0,n=0,s=l00000,t=10,p;
scanf(線d",&a);
P=a;〃保存原始輸入值,后面用到
if(p/s!=O)〃超過5位數(shù),干脆錯(cuò)誤提示,程序結(jié)束。
printf("輸入錯(cuò)誤!\n");
else
(printf("逆序輸出各位數(shù)字:〃);
for(i=0;i<6;i++)
{b=a;
if(b!=0)
{k++;
b=a%t;〃對(duì)10求余可得個(gè)十百千萬位
printf('%d",b);
a=a/t;
)
)
printf(,z\n%d是個(gè)%d位數(shù)\n",p,k);
printf("正序輸出各位數(shù)字:");
for(j=0;j<6;j++)
(
c=p;
d=c/s%10;//除以s后對(duì)10求余可得萬千百十個(gè)位
s=s/10;〃s要依次/10,求解后面的數(shù)值
if(d!=0)
printf(?,%d",d);
}
printf;
}
return0;
}
10.編寫程序?qū)?shù)據(jù)進(jìn)行加密。設(shè)加密方法為:對(duì)隨意給定的4位整數(shù),每一位數(shù)字均
加2,若某位數(shù)字加2后大于9,則取其除以10的余數(shù),如數(shù)據(jù)6987加密后的數(shù)據(jù)為8109。
#include<stdio.h>
voidmain()
(
inta,b,c,d,m;
scanf("%d",&m);
a=m%10+2;if(a>=10)a=a%10;
b=m/l()%IO+2;if(b>=IO)b=b%IO;
c=m/100%10+2;if(c>=10)c=c%10;
d=m/1000+2;if(d>=l0)d=d%IO;
m=a+b*10+c*100+d*1000;
printf("%d\n,1,m);
練習(xí)題5參考答案
一、選擇題
序號(hào)12345678910
參考答案ABBABDCDBD
二、填空題
1.以下程序的輸出結(jié)果是52。
2.以卜程序的輸出結(jié)果是170
3.有以下程序:
程序運(yùn)行時(shí),假如從健盤輸入:Y?N?〈回車),則輸出結(jié)果為X。
4.下面程序的運(yùn)行結(jié)果s=254。
5.下面程序段中循環(huán)體的執(zhí)行次數(shù)是30
6.下面程序段的運(yùn)行結(jié)果是一**。
7.下面程序的運(yùn)行結(jié)果是1,-2°
8.下面程序段的運(yùn)行結(jié)果是一8。
9.下面程序的功能是:計(jì)算1?10之間的奇數(shù)之和與偶數(shù)之和,試完善程序。
10.下面程序的功能是:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的全部整數(shù),請(qǐng)?zhí)羁铡?/p>
三、程序設(shè)計(jì)題
1.編寫程序計(jì)算1+3+5+7+…+97+99的值。
#include<stdio.h>
voidmainO
inti,sum;
sum=0;
for(i=l;i<=99;i+=2)
(
sum=sum+i;
)
,/,,
printf(%d\n,sum);
)
2.編寫程序從鍵盤輸入正整數(shù)n,求n!。
#include<stdio.h>
voidmain()
(
inti,n,fact=l:
scanf
for(i=l;i<=n;i++)
(
fact*=i;
}
printfCzn=%d,n!=%d\n",n,fact);
)
3.編寫程序求一個(gè)十進(jìn)制整數(shù)的位數(shù)。
#include<stdio.h>
voidmainO
(
intn,m;
scanf("/d",&n);
if(n<0)
printf(”請(qǐng)輸入正整數(shù)!感謝合作!\n");
if(n<=9&&n>=0)
m=l;
else
(
m=0;//t=n/10;
while(n>=l)
{
n=n/10;
++m;
)
)
printf("為d\n",m);
)
4.編寫程序輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。
#include<stdio.h>
intmain(void)
〃輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。
charch;
intchar_num=O,kongge_num=0>int_num=O,other_num=0;
while((ch=getchar())!='\n')〃回車鍵結(jié)束輸入,并且回車符不計(jì)入
(
if(ch>=,a&&ch<=,z*||ch<=,z'&&ch>=,a')
char_num++;
elseif(ch==,')
kongge_num++;
elseif(ch>=0'&&ch<=9')
int_num++;
else
other_num++;
)
printfC字母二與d,空格;機(jī)1,數(shù)字二機(jī)1,其它
=%d\n”,charnum,kongge_num,intnum,othernum);
return0;
}
5.編寫程序求一個(gè)十進(jìn)制整數(shù)是否為回文數(shù)。所謂回文數(shù)是指從左向右讀或從右向左讀
都是相同的數(shù),也就左右對(duì)稱的數(shù),如:232、3553>123321等。
#include<stdio.h>
#include<string.h>
intmain()
(
chardigits[]00],i,n;
scanf(“/s”,digits);
n=strlen(digits);
for(i=0;i<n/2;i++)
(
if(digits[i]!=digits[n-i-l])
(
printf("不是回文數(shù)\n");
return0;
}
}
printf(〃是回文數(shù)\n〃);
return0;
)
6.編寫程序用兩種方法(一種方法是運(yùn)用三重循環(huán)形成100?999之間的全部數(shù),另一種
方法是運(yùn)用單重循環(huán)干脆形成100?999之間的全部數(shù))求100?999之間的全部“水仙花數(shù)”。
所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如:153是一個(gè)
水仙花數(shù),因?yàn)?53=13+5,+33O
方法一:三重循環(huán)
#include<stdio.h>
intmain()
{inti,j,k,n;
printf(^parcissusnumbersarc:");
for(i=l;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
(
n=i*100+j*10+k;
if(n=i*i*i+j*j*j+k*k*k)
printf("%5d”,n);
}
printf("\n");
return0;
)
方法二:單重循環(huán)
#include<stdio.h>
intmain()
(inti,j,k,n;
printf(^parcissusnumbersare:");
for(n=100;n<1000;rH-+)
(
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf(“先5d”,n);
)
printf("\n");
return0;
)
7.編寫程序找出1000之內(nèi)的全部“完備數(shù)(完全數(shù)、完備數(shù))”。“完備數(shù)”也稱為“完
數(shù)”,它是指一個(gè)數(shù)恰好等于它的因子之和。例如,6的因子為1、2、3,而6=1+2+3,因此
6是“完數(shù)”。
#include<stdio.h>
intmain()
(
intm,s,i;
for(m=2;m<1000;m++)
(
s=0;
for(i=l;i〈m;i++)
if((m%i)==0)
s=s+i;
if(s==m)
printf(^%d,itsfactorsare1〃,m);
for(i=2;i<m;i++)
if(m%i==0)
printf(/,+%3d,/,i);
printf("\n");
)
)
return0;
}
8.編寫程序用窮舉法求解我國古代《張丘建算經(jīng)》中一道聞名的百雞問題:雞翁一,值
錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,雞翁、雞母、雞雛各幾何?
#include<stdio.h>
voidmain()
(
intcocks=0,hens,chicks;
while(cocks<=20)
(
hens=0;
while(hens<=33)
(
chicks=100-cocks-hens;
if(5.0*cocks+3.0*hcns+chicks/3.0==100.0)
printf("公雞外d只,母雞%d只,小雞猊只\n\n”,cocks,hens,chicks);
hens++;
)
cocks++;
)
v2J
9.已知爐=1+x+工+工+?-,編寫程序輸入x的值,求/的近似值(要求被舍去的
2!3!
項(xiàng)小于10”)。
#include<stdio.h>
#include<math.h>
voidmain()
(
doubletemp=l,sum=l,b=l.0;
inti=l;
doublex,a=l.0;
scanf(飛If",&x);
while(fabs(temp)>=le-6)
(
b=b*i;
a=a*x;
temp=a/b;//定義每一項(xiàng)的內(nèi)容
sum=sum+temp;
i++;
)
printfsum);
}
10.編寫程序利用泰勒級(jí)數(shù)sinx^x—《+看一/+^-…計(jì)算sinx的值,要求最
3!5!7!9!
終一項(xiàng)的肯定值小于10M并計(jì)算共求了多少項(xiàng)。
#include<stdio.h>
include<math.h>
voidmainO
(
intn=l,count=0;
doublex,sum,term;
printf(^pleaseinputanumberx:");
scanf&x);
sum=x;
term=x;
while(fabs(term)>=le-6)
(
term=-term*x*x/((n+1)*(n+2));〃定義后一項(xiàng)與前一項(xiàng)的關(guān)系
sunrsum+term;
n=n+2;
count++;
}
printf(,,sin(x)=%f,count?二/d\n”,sum,count);
)
11.編寫程序用牛頓迭代法求方程2/-4./+3x-5=0在1.5旁邊的根。
#include<stdio.h>
4include<math.h>
doubleFl(double);〃原函數(shù)
doubleF2(double);〃原函數(shù)的一階導(dǎo)數(shù)函數(shù)
doubleNewton(double,double):
voidmain()
(
doublexO=1.5;
doublee=pow(10,-5);
printf(''theresultis%lf\n,,?Newton(xO,e));
)
doubleFl(doublex)
(
return2*:《*x*x-4*x*x+3*x-5;
)
doubleF2(doublex)
(
return6*;《*x-8*x+3;
)
doubleNewton(doublexO,doublee)
(
doublexl;
do
(
xl=xO;
xO=xl-Fl(xl)/F2(xl);
(while(fabs(xl-xO)>e);
returnxO;
)
12.編寫程序用二分法求方程2d-4田+3%-5=0在(TO,10)之間的根。
#include<stdio.h>
#include<math.h>
doublefunction(doublex)
(
doublef;
f=2*x*x*x-4*x*x+3*x-5;
returnf;
)
voidmainO
(
doublea=-10,b=10,c,fa,fb,fc;
fa=function(a);
fb二function(b);
do
c=(a+b)/2.0;
fc=function(c);
if(fc*fa<0)
{
b=c;
fb=fc;
)
else
fa=fc;
}
}while(fabs(a-b)>=le-6);
printf(''Therootis%lf\n,/,c);
)
13.編寫程序?qū)⒁粡埫嬷禐?00元的人民幣等值換成100張5元、1元和5角的零鈔,
要求每種零鈔不少于1張,
#include<stdio.h>
intmainO{
intn5,nl,n05;
intcount=0;
for(n5=l;n5<20;n5++){
for(nl=l;nl<(100~n5);nl++){
n05-100-n5-nl;
if((n5*10+nl*2+n05)==200){
count++;
printf("第%d種:%d張五元,%d張一元,%d張五角\n",count,
n5,nl,n05);
}
}
)
return0;
)
14.編寫程序驗(yàn)證哥德巴赫猜想(任何一個(gè)大于等于6的偶數(shù)都可以分解為兩個(gè)素?cái)?shù)之
和),驗(yàn)證范圍限定為6到2000。
^include<stdio.h>
intmain()
inti,j,k,1;
intss(intn);
for(i=6;i<=20D0;i++)
(
if(i%2==0)
for(j=2;j<=(int)(i/2);j++)
{
k=ss(j);
l=ss(i-j);
if(k==l&&l==l)
printfC^d+%d=%d\n",j,i-j,i);
)
)
return0;
)
intss(intn)
(
inti;
for(i=2;i<=n;i++)
(
if(n%i==0&&n!=i)
return0;
if(n==i)
return1;
)
)
15.愛因斯坦數(shù)學(xué)題。有一條長階梯,若每步跨2階,最終剩下1階;若每步跨3階,
最終剩下2階;若每步跨5階,最終剩下4階;若每步跨6階,最終剩下5階;只有每步跨
7階,最終才正好1階不剩。編制程序求這條階梯共有多少階?
#include<stdio.h>
voidmain()
(
intn=l;
while(l)
(
if((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0))〃推斷
(
printf(,z%d\nv,n);
break;
}
n++;
}
printf(線d哪2Ad3%d\n”,n,n/2,n%2);〃驗(yàn)算
//
printf(^%d%%3=%d...%d\n>n,n/3,n%3);
printf5yd...%d\n”,n,n/5,n%5);
printf(//%d%%6=%d...%d\n,,?n,n/6,n%6);
printfC%d%%7=%d...%d\n,\n,n/7,n%7);
)
16.三色球問題。若一個(gè)口袋中放有12個(gè)球,其中有3個(gè)紅色的,3個(gè)白色的,6個(gè)黑
色的,從中任取8個(gè)球,編寫程序求共有多少種不同的顏色搭配?
^include<stdio.h>
voidmain()
(
intn=0;
inta,b,c;
for(a=0;a<=3;a++)
for(b=0;b<=3;b++)
for(c=0;c<=6;c++)
if(a+b+c==8)n++;
printf(''%d\n,z,n);
)
練習(xí)題6參考答案
一、選擇題
序號(hào)12345678910
參考答案DDDAADACBC
序號(hào)11121314
參考答案CDAA
二、填空題
1.下面程序的運(yùn)行結(jié)果是—
1123
581321
3455
2.以下程序的輸出結(jié)果是abc。
3.若有定義:inta:3][4]={{1,2),{0},{4,6,8,10});,則初始化后,
得到的初值是(),得到的i初值是6。
4.以卜.程序可求出全部水仙花數(shù)(水仙花數(shù)是指一個(gè)3位正整數(shù),其各位數(shù)字的立方
之和等于該正整數(shù)。如:407=4*4*4+0*0*0+7*7*7,故407是一個(gè)水仙花數(shù))。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
voidmain()
{intx,y,z,a[8],m,i=0;
printf("Thespecialnumbersare:\n");
for(m=100;水1000;m++)
(x=m/10D;
y=(m/10)%10;
z=m%10;
if(x*100+y*1O+z==x*x*x+y*y*y+z*z*z)
{a[i]-m;i++;}
)
for(x=0;x<i;x++)
printf("%6d",a[x]);
)
5.下面程序的功能是:將字符數(shù)組a中下標(biāo)值為偶數(shù)的元素從小到大排列,其他元素
不變,請(qǐng)?zhí)羁铡?/p>
^include<stdio.h>
#include<string.h>
voidmainO
{chara[]=Hclanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<k;i+=2;)
if()
{t=a[i];a[i]=a[j];a[j]=t;)
puts(a);
printf("\n");
)
6.下面程序的功能是將二維數(shù)組a中每個(gè)元素向右移一列,最右一列換到最左一列,
移后的數(shù)組存到另一個(gè)二維數(shù)組b中,并按矩陣形式輸出a和b,請(qǐng)?zhí)羁铡?/p>
例如:arraya:arrayb:
456645
123312
^include<stdio.h>
voidmainO
{inta[2][3]={4>5,6,l,2,3},b[2][3];
inti,j;
printf("arraya:\n");
for(i=0;i<=I;i++)
{for(j=D;j<3;j++)
{printf("%5d",a[i][j]);
)
printf("\n");
}
for(i=0;i<=l;i++)b[i][0]=a[i][2];
printf("arrayb:\n");
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf(M%5d\b[i][j]);
printf(〃\n"):
)
)
7.下面程序中的數(shù)組a包括10個(gè)整數(shù)元素,從a中其次個(gè)元素起,分別將后項(xiàng)減前項(xiàng)
之差存入數(shù)組b,并按每行3個(gè)元素輸出數(shù)組b。請(qǐng)?zhí)羁铡?/p>
0include<stdio.h>
voidmain()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=l;i<10;i++)
b[i]=a[i]-a[i-l];
for(i=l;i<10;i++)
{printf("%3d",b[i]);
if(諼3=0)printf("\n");
}
}
8.以下程序是求矩除a,b的和,結(jié)果存入矩陣C中,并按矩陣形式輸出。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
voidmain()
{inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2});
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2});
inti,j,c[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][,j]-a[i][j]+b[i][j];
for(i=0;i<3;i++)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度門窗行業(yè)綠色建筑標(biāo)準(zhǔn)合同
- 2025年度高端模具精密維修與再制造合同3篇
- 專利技術(shù)所有權(quán)變更服務(wù)合同版
- 2025年度智能裝備行業(yè)派遣人員勞動(dòng)合同模板3篇
- 二零二五年度醫(yī)療健康行業(yè)聘用合同范本
- 2025年度水資源抽水利用技術(shù)合作開發(fā)合同4篇
- 二零二五年度臨時(shí)餐飲場地租賃合同標(biāo)準(zhǔn)范本2篇
- 2025年度塑料袋品牌授權(quán)使用合同
- 2025年度新型木模板工程承包合同范本4篇
- 臨時(shí)工用工勞動(dòng)合同范本2025年全新發(fā)布
- 洛奇化石復(fù)原腳本
- 人教版三年級(jí)上冊(cè)豎式計(jì)算練習(xí)300題及答案
- 【“凡爾賽”網(wǎng)絡(luò)流行語的形成及傳播研究11000字(論文)】
- ppr管件注塑工藝
- 液化氣站其他危險(xiǎn)和有害因素辨識(shí)及分析
- 建筑工程施工安全管理思路及措施
- 高中語文教學(xué)課例《勸學(xué)》課程思政核心素養(yǎng)教學(xué)設(shè)計(jì)及總結(jié)反思
- 中國農(nóng)業(yè)銀行小微企業(yè)信貸業(yè)務(wù)貸后管理辦法規(guī)定
- 市政道路建設(shè)工程竣工驗(yàn)收質(zhì)量自評(píng)報(bào)告
- 優(yōu)秀支行行長推薦材料
- 中國版梅尼埃病診斷指南解讀
評(píng)論
0/150
提交評(píng)論