




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
..C語言程序設(shè)計課后習(xí)題1-8參考答案習(xí)題1參考答案一、簡答題1、馮諾依曼計算機(jī)模型有哪幾個基本組成部分?各部分的主要功能是什么?
答:馮諾依曼計算機(jī)模型是由運(yùn)算器、控制器、存儲器、輸入設(shè)備、輸出設(shè)備五大功能部件組成的。
運(yùn)算器又稱算術(shù)邏輯部件,簡稱ALU,是計算機(jī)用來進(jìn)行數(shù)據(jù)運(yùn)算的部件。數(shù)據(jù)運(yùn)算包括算術(shù)運(yùn)算和邏輯運(yùn)算。
控制器是計算機(jī)的指揮系統(tǒng),計算機(jī)就是在控制器的控制下有條不紊地協(xié)調(diào)工作的。
存儲器是計算機(jī)中具有記憶能力的部件,用來存放程序和數(shù)據(jù)。
輸入設(shè)備是用來輸入程序和數(shù)據(jù)的部件。輸出設(shè)備正好與輸入設(shè)備相反,是用來輸出結(jié)果的部件。2、簡述計算機(jī)的工作原理。答:計算機(jī)的工作原理可簡單地概括為:各種各樣的信息,通過輸入設(shè)備,進(jìn)入計算機(jī)的存儲器,然后送到運(yùn)算器,運(yùn)算完畢把結(jié)果送到存儲器存儲,最后通過輸出設(shè)備顯示出來。整個過程由控制器進(jìn)行控制。3、計算機(jī)軟件系統(tǒng)分為哪幾類?答:軟件內(nèi)容豐富,種類繁多,通常根據(jù)軟件用途將其分為兩大類:系統(tǒng)軟件和應(yīng)用軟件。
系統(tǒng)軟件是指管理、監(jiān)控、維護(hù)計算機(jī)正常工作和供用戶操作使用計算機(jī)的軟件。這類軟件一般與具體應(yīng)用無關(guān),是在系統(tǒng)一級上提供的服務(wù)。系統(tǒng)軟件主要包括以下兩類:一類是面向計算機(jī)本身的軟件,如操作系統(tǒng)、診斷程序等。另一類是面向用戶的軟件,如各種語言處理程序〔像BC、VC等、實(shí)用程序、字處理程序等。
應(yīng)用程序是指某特定領(lǐng)域中的某種具體應(yīng)用,供最終用戶使用的軟件,它必須在操作系統(tǒng)的基礎(chǔ)上運(yùn)行。4、什么叫軟件?說明軟件與硬件之間的相互關(guān)系。答:軟件是指計算機(jī)程序及有關(guān)程序的技術(shù)文檔資料。兩者中更為重要的是程序,它是計算機(jī)進(jìn)行數(shù)據(jù)處理的指令集,也是計算機(jī)正常工作最重要的因素。在不太嚴(yán)格的情況下,認(rèn)為程序就是軟件。硬件與軟件是相互依存的,軟件依賴于硬件的物質(zhì)條件,而硬件則需在軟件支配下才能有效地工作。在現(xiàn)代,軟件技術(shù)變得越來越重要,有了軟件,用戶面對的將不再是物理計算機(jī),而是一臺抽象的邏輯計算機(jī),人們可以不必了解計算機(jī)本身,可以采用更加方便、更加有效地手段使用計算機(jī)。從這個意義上說,軟件是用戶與機(jī)器的接口。二、填空題1、算術(shù)邏輯
2、鍵盤鼠標(biāo)
3、控制器運(yùn)算器
4、102
5、00x
6、原碼反碼補(bǔ)碼
7、0001011111101001
8、127-128三、選擇題1、C2、A3、B4、A5、B6、B7、D8、A9、A10、B11、A12、B習(xí)題2參考答案一、簡答題1、C語言有哪些特點(diǎn)?答:〔1簡潔緊湊、靈活方便;〔2運(yùn)算符豐富;〔3數(shù)據(jù)結(jié)構(gòu)豐富;〔4C語言是結(jié)構(gòu)式語言;〔5C語言的語法限制不太嚴(yán)格、程序設(shè)計自由度大;〔6C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作;〔7C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高;〔8C語言使用范圍大,可移至性好;〔9具有預(yù)處理功能;〔10具有遞歸功能。2、C語言的主要應(yīng)用有哪些?答:〔1許多系統(tǒng)軟件和大型應(yīng)用軟件都是用C語言編寫的,如UNIX、Linux等操作系統(tǒng)?!?在軟件需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其他高級語言。例如,各種硬件設(shè)備的驅(qū)動程序〔像顯卡驅(qū)動程序、打印機(jī)驅(qū)動程序等一般都是用C語言編寫的。〔3在圖形、圖像及動畫處理方面,C語言具有絕對優(yōu)勢,特別是游戲軟件的開發(fā)主要就是使用C語言?!?隨著計算機(jī)網(wǎng)絡(luò)飛速發(fā)展,特別是Internet的出現(xiàn),計算機(jī)通信就顯得尤其重要,而通信程序的編制首選就是C語言。〔5C語言適用于多種操作系統(tǒng),像Windows、UNIX、Linux等絕大多數(shù)操作系統(tǒng)都支持C語言,其他高級語言未必能得到支持,所以在某個特定操作系統(tǒng)下運(yùn)行的軟件用C語言編制是最佳選擇。3、列舉幾種程序設(shè)計語言。答:C語言、Java語言、Pascal語言、BASIC語言、LOGO語言等。二、填空題1、機(jī)器語言匯編語言高級語言
2、機(jī)器語言
3、ALGOL60
4、多個函數(shù)
5、main
6、#include
7、定義使用
8、聲明部分執(zhí)行部分聲明部分執(zhí)行部分三、選擇題1、D2、B3、B4、C5、C6、C7、D8、C9、D10、A11、B12、A13、B14、C15、A習(xí)題3參考答案一、填空題1、整型字符型實(shí)型
2、字母數(shù)字下劃線字母下劃線
3、直接符號符號
4、00x
5、12
6、48
7、-32768~32767
8、-16
9、x+=1;
10、26
11、<m/10>%10*100+m/100<100*10>+m%10二、選擇題1、D2、C3、A4、B5、B6、D7、B8、C9、A10、A11、C12、B13、B14、D15、B16、D17、B18、D19、C20、A21、B22、D23、D24、D25、D26、D27、C28、A29、C30、B習(xí)題4參考答案一、填空題1、scanfprintf
2、按指定的輸出格式將信息輸出到屏幕上常規(guī)字符格式控制符
3、X、E、G
4、getche輸入的字符回顯,而getch輸入的字符不回顯
5、fflush
6、解決某個問題的具體的方法和步驟
7、自然語言描述偽代碼流程圖N-S圖
8、順序分支循環(huán)二、選擇題1、B2、C3、D4、C5、B6、C7、D8、C9、B10、B11、D12、C13、D14、D15、A三、編程題1、編寫一程序要求任意輸入四位十六進(jìn)制整數(shù),以反序的方式輸出該十六進(jìn)制數(shù)。例如:輸入9AF0,則輸出0FA9。#include<stdio.h>
voidmain<>
{
unsignedshorta,b;
scanf<"%4x",&a>//輸入4位十六進(jìn)制數(shù)給變a
b=<a&0X000F><<12;//取a的最低一位十六進(jìn)制數(shù)并左移12位后賦值給b
b+=<a&0X00F0><<4;//取a的次第一位十六進(jìn)制數(shù)并左移4位后與b相加再賦值給b
b+=<a&0X0F00><<4;//取a的次高一位十六進(jìn)制數(shù)并右移4位后與b相加再賦值給b
b+=<a&0XF000><<12;//取a的最高一位十六進(jìn)制數(shù)并右移12位后與b相加再賦值給b
printf<"%4x\n",b>;//輸出變化后的十六進(jìn)制數(shù)
}2、編程從鍵盤輸入兩個整數(shù)分別給變量a和b,要求在不借助于其他變量的條件下,將變量a和b的值實(shí)現(xiàn)交換。
#include<stdio.h>
voidmain<>
{
inta,b;
scanf<"%d%d",&a,&b>;
printf<"beforeswap:a=%db=%d\n",a,b>;
a=a+b;
b=a-b;
a=a-b;
printf<"afterswap:a=%db=%d\n",a,b>;
}3、編程從鍵盤輸入圓的半徑r,計算出圓的周長和面積。
#include<stdio.h>
#definePI3.14159
voidmain<>
{
floatr,c,s;
scanf<"%f",&r>;
c=2*r*PI;
s=PI*r*r;
printf<"c=%fs=%f\n",c,s>;
}4、編程從鍵盤輸入任意一個十六進(jìn)制負(fù)整數(shù),以輸入的形式輸出。例如:輸入-FA98,輸出-FA98。#include<stdio.h>
voidmain<>
{
shortinta;
scanf<"%x",&a>;
printf<"-%hx\n",-a>;
}5、已知一元二次方程ax2+bx+c=0,編一程序當(dāng)從鍵盤輸入a、b、c的值后,計算x的值。
#include<stdio.h>
#include<math.h>
voidmain<>
{
floata,b,c;
floatd;
floatx1,x2;
printf<"inputa,b,c:">;scanf<"%f%f%f",&a,&b,&c>;
d=sqrt<b*b-4*a*c>;
x1=<-b+d>/<2*a>;
x2=<-b-d>/<2*a>;printf<"x1=%.2fx2=%.2f\n",x1,x2>;
}6、假設(shè)從鍵盤輸入某日午夜零點(diǎn)到現(xiàn)在已經(jīng)歷的時間〔單位:s,遍一程序計算到現(xiàn)在為止已近過了多少天,現(xiàn)在的時間是多少?
#include<stdio.h>
voidmain<>
{
unsignedlongt,r;
intd,h,m,s;
printf<"second=">;
scanf<"%d",&t>;
d=t/<24*3600>;
r=t%<24*3600>;
h=r/3600;
m=<r%3600>/60;
s=<r%3600>%60;
printf<"havepasseddaysis%d,currenttimeis%02d:%02d:%02d\n",d,h,m,s>:}習(xí)題5參考答案編程題1、編一程序判斷輸入整數(shù)的正負(fù)性和奇偶性。#include<stdio.h>
voidmain<>
{
inta;
scanf<"%d",&a>;
if<a>=0>
printf<"thenumber%dispositivenumber\n",a>;
else
printf<"thenumber%disnegativenumber\n",a>;
if<a%2==0>
printf<"thenumber%disevennumber\n",a>;
else
printf<"thenumber%disoddnumber\n",a>;
}2、編程判斷輸入數(shù)據(jù)的符號屬性。
#include<stdio.h>
voidmain<>
{
intx,sign;
scanf<"%d",&x>;
if<x>0>
sign=1;
elseif<x==0>
sign=0;
else
sign=-1;
printf<"sign=%d\n",sign>;
}
3、輸入任意三個數(shù)num1、num2、num3,按從小到大的順序排序輸出。#include<stdio.h>
voidmain<>
{
intnum1,num2,num3;
scanf<"%d%d%d",&num1,&num2,&num3>;
if<num1<=num2>
if<num2<=num3>
printf<"%d%d%d\n",num1,num2,num3>;
else
if<num1>=num3>
printf<"%d%d%d\n",num3,num1,num2>;
else
printf<"%d%d%d\n",num1,num3,num2>;
else
if<num2>=num3>
printf<"%d%d%d\n",num3,num2,num1>;
else
if<num1>=num3>
printf<"%d%d%d\n",num2,num3,num1>;
else
printf<"%d%d%d\n",num2,num1,num3>;
}4、在屏幕上顯示一張如下所示的時間表。
#include<stdio.h>
voidmain<>
{
charc;
printf<"*****Time*****\n">;
printf<"1morning\n">;
printf<"2afternoon\n">;
printf<"3night\n">;
printf<"Pleaseenteryourchoice:">;
c=getcahr<>;
switch<c>
{
case‘1’:printf<"Goodmorning\n">;brenk;
case‘2’:printf<"Goodafternoon\n">;break;
case‘3’:printf<"Goodnight\n">;break;
default:printf<"Selectionerror!\n">;
}
}5、輸入一個年份和月份,打印出該月份有多少天〔考慮閏年,用switch語句編程。
#include<stdio.h>
voidmain<>
{
intyear,month;
printf<"Inputyear,month:">;
scanf<"%d%d",&year,&month>;
switch<month>
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:printf<"31days\n">;
break;
case4:
case6:
case9:
case11:printf<"30days\n">;
break;
case2:if<<year%4==0&&year%100!=0>||<year%400==0>>
printf<"29days\n">;
else
printf<"28days\n">;
break;
default:printf<"Inputerror!\n">;
}
}習(xí)題6參考答案編程題1、編程計算2+4+6+…+98+100的值?!?利用for循環(huán)語句實(shí)現(xiàn),在循環(huán)體外為sum賦初值0。
#include<stdio.h>
voidmain<>
{
inti,sum=0;
for<i=2;i<=100;i+=2>
sum+=i;
printf<"sum=%d\n",sum>;
}〔2利用while循環(huán)語句實(shí)現(xiàn),在循環(huán)體外為i和sum賦初值。#include<stdio.h>
voidmain<>
{
inti=2,sum=0;
while<i<=100>
{
sum+=i;
i+=2;
}
printf<"sum=%d\n",sum>;
}2、編程計算1*2*3+4*5*6+…+99*100*101的值。#include<stdio.h>
voidmain<>
{
inti;
longterm,sum=0;
for<i=1;i<=99;i+=2>
{
term=i*<i+1>*<i+2>;
sum+=term;
}
printf<"sum=%d\n",sum>;
}3、編程計算1!+2!+3!+…+10!的值。
〔1用累加和算法,累加項為term=term*i;i=1,2,…,10。Term的初始值為1,使用單重循環(huán)完成。
#include<stdio.h>
voidmain<>
{
longterm=1,sum=0;
inti;
for<i=1;i<=10;i++>
{
term*=i;
sum+=term;
}
printf<"1!+2!+3!+…+10!=%ld\n",sum>;
}
〔2用內(nèi)層循環(huán)求階乘,外層循環(huán)控制累加的項數(shù)。
#include<stdio.h>
voidmain<>
{
longterm,sum=0;
inti,j;
for<i=1;i<=10;i++>{
term=1;
for<j=1;j<=i;j++>
term*=j;
sum+=term;
}
printf<"1!+2!+3!+…+10!=%ld\n",sum>;
}4、編程計算a+aa+aaa+…+aa..a〔n個a的值,n和a的值由鍵盤輸入。#include<stdio.h>
voidmain<>
{
longterm=0,sum=0;
inta,i,n;printf<"Inputa,n:\n">;
scanf<"%d,%d",&a,&n>;
for<i=1;i<=n;i++>
{
term=term*10+a;
sum+=term;
}
printf<"sum=%ld\n",sum>;
}5、參考答案:
#include<stdio.h>
voidmain<>
{
floatterm,result=1;
intn;
for<n=2;n<=100;n+=2>
{
term=<float><n*n>/<<n-1>*<n+1>>;
result*=term;
}
printf<"result=%f\n",2*result>;
}6、參考答案:
#include<stdio.h>
#include<math.h>
voidmain<>
{
intn=1,count=0;floatx;
doublesum,term;
printf<"Inputx:">
scanf<"%f",&x>;
sum=x;
term=x;
do{
term=-term*x*x/<<n+1><n+2>>;//計算相應(yīng)項,并改相應(yīng)符號
sum+=term;
n+=2;
count++;
}while<fabs<term>>=le-5>;
printf<"sin<x>=%f,count=%d\n",sum,count>;
}7、參考答案:
#include<stdio.h>
voidmain<>
{
inti,j,k,n;
printf<"resultis:">;
for<n=100;n<1000;n++>
{
i=n/100;//分出百位
j=<n-i*100>/10//分出十位
k=n%10;//分出個位
if<n==i*i*i+j*j*j+k*k*k>
printf<"%d",n>;
}
printf<"\n">;
}8、參考答案:
#include<stdio.h>
#include<math.h>
voidmain<>
{
inti1,i2,i3,i4,k,n;
printf<"Inputdatais:">;
scanf<"%d",&n>;
k=abs<n>;
i1=k/1000;//分離出千位
i2=<k-i1*1000>/100//分離出百位
i3=<k-i1*1000-i2*100>/10//分離出十位
i4=k%10;//分離出個位
printf<"Thesumofthetotalbitis%d\n",i1+i2+i3+i4>;
}9、參考答案:
#include<stdio.h>
voidmain<>
{
intn,m=0,s,r;
printf<"Inputdatais:">;
scanf<"%d",&n>;
s=n;While<s!=0>
{
r=s%10;//從低位到高位逐一分離
m=10*m+r;//重新組合一正數(shù)
s=s/10;//求其商
}
if<m==n>
printf<"yes\n">;
else
printf<"no\n">;
}10、參考答案:
#include<stdio.h>
voidmain<>
{
intx,y,z,count=0;//x,y,z分別表示5分、2分和1分硬幣的數(shù)量
for<x=1;x<=28;x++>//5分硬幣最多不超過28枚
for<y=1;y<=73;y++>//2分硬幣最多不超過73枚
{
z=100-x-y;//共有100枚硬幣,減去5分和2分硬幣后為1分硬幣數(shù)量
if<5*x+2*y+z==150>
{
count++//增加一種方案
printf<"%02d,%02d,%02d",x,y,z>;//輸出每一種方案
if<count%6==0>
printf<"\n">;//沒輸出6種方案后,換行
}
}
printf<"count=%d\n",count>;
}11、設(shè)計思想:將A、B、C、D4個人的回答用一條件表達(dá)式來表示,對于A的回答:thisman!=’A’;對于B的回答:thisman==’C’;對于C的回答:thisman==’D’;對于D的回答:thisman!=’D’;然后,采用枚舉的方法,一個人一個人的去試,如果這4個條件表達(dá)式中有3個為真,即4個條件表達(dá)式的值相加為3,則可判定是其中某人做的好事。
參考答案:
#include<stdio.h>
voidmain<>
{
intk=0;sum=0;g=0;
charthisman=’’;
for<k=0;k<=3;k++>//循環(huán)控制變量為k,循環(huán)共進(jìn)行4次
{
thisman=’A’+k;//初始認(rèn)為A做好事,依次為B、C、D
sum=<thisman!=’A’>+<thisman==’C’>+<thisman==’D’>+<thisman!=’D’>;
if<sum==3>
{
printf<"Thismanis%c\n",thisman>;
g=1;
}
}
if<g!=1>
printf<"Can’tfound\n">;
}12、參考答案<1>:
#include<stdio.h>
voidmain<>
{
inti,j;
for<i=1;i<=3;i++>//先顯示前三行
{
for<j=1;j<=i-1;j++>//輸出每行前的空格
printf<"">;
for<j=1;j<=5-2*<i-1>;j++>//輸出每行的*號
printf<"*">;
printf<"\n">;
}
for<i=1;i<=2;i++>//接著顯示后兩行
{
for<j=1;j<=2-i;j++>
printf<"">;
for<j=1;j<=2*i+1;j++>
printf<"*">;
printf<"\n">;
}
}參考答案<2>:
#include<stdio.h>
voidmain<>
{
inti,j,k;
for<i=1;i<=5;i++>//i控制行數(shù)
{
for<j=1;j<=5-i;j++>//隨行數(shù)的增加,輸出遞減數(shù)目的空格
printf<"">;
for<k=1;k<=5;k++>//每行輸出5個*字符
printf<"*">;
printf<"\n">;//將光標(biāo)移到下一行起始位置處
}
}參考答案<3>:
#include<stdio.h>
voidmain<>
{
inti,j;
for<i=1;i<=5;i++>
{
for<j=1;j<=2*<i-1>+1;j++>
printf<"*">;
printf<"\n">;
}
}習(xí)題7參考答案編程題1、參考答案:#include<stdio.h>
voidmain<>
{
inti,sum=0;a[20];
for<i=0;i<20;i++>
Scanf<"%d",&a[i]>;//輸入20個整數(shù)
for<i=0;i<20;i++>//對非負(fù)數(shù)進(jìn)行統(tǒng)計
{
if<a[i]<0>continue;//為負(fù)數(shù),進(jìn)入下一輪循環(huán)sum+=a[i];//非負(fù)數(shù)累計
}
printf<"sum=%d\n",sum>;
}2、參考答案
#include<stdio.h>
voidmain<>
{
inti,j,odd,even,n,t,a[10];
odd=0;
even=9;
for<i=0;i<10;i++>//將鍵盤輸入的數(shù)據(jù)存入數(shù)組中
{
scanf<"%d",&n>;
if<n%2!=0>
a[odd++]=n;//將奇數(shù)放置在數(shù)組的左邊
else
a[even--]=n;//將偶數(shù)放置在數(shù)組的喲邊
}
for<i=0;i<odd-1;i++>//通過選擇排序?qū)ζ鏀?shù)進(jìn)行升序排列
{
n=j;
for<j=i+1;j<odd;j++>
if<a[j]<a[n]>
n=j;
if<n!=i>
{
t=a[i];
a[i]=a[n];
a[n]=t;
}
}
for<i=odd;i<9;i++>//通過選擇排序?qū)ε紨?shù)進(jìn)行升序排列
{
n=i;
for<j=i+1;j<10;j++>
if<a[j]<a[n]>
n=j;If<n!=i>
{
t=a[i];
a[i]=a[n];
a[n]=t;
}
}
for<i=0;i<10;i++>
printf<"%d",a[i]>;輸出排序結(jié)果
printf<"\n">;
}3、參考答案:
#include<stdio.h>
voidmain<>
{
inti,max,min,a[10];printf<"Input10integernumber:">;//輸入10個整數(shù)
for<i=0;i<10;i++>
scanf<"%d",&a[i]>;
max=0;
min=0;
for<i=1;i<10;i++>
{
if<a[i]>a[max]>
max=i;if<a[i]<a[min]>
min=i;
}
i=a[max];
a[max]=a[min];
a[min]=i;
for<i=0;i<10;i++>
printf<"%d",a[i]>;
printf<"\n">;
}
4、參考答案:
#include<stdio.h>
voidmain<>
{
inti,j,t,a[6];
printf<"Input6integernumber:">;
for<i=0;i<6;i++>
scanf<"%d",&a[i]>;printf<"\n">;
for<i=0;i<6;i++>
{
for<j=0;j<6;j++>
printf<"%d",a[j]>;
printf<"\n">;
t=a[5];
for<j=5;j>0;j-->
a[j]=a[j-1];
a[0]=t;
}
}5、參考答案:
#include<stdio.h>
voidmain<>
{
inti,j,sum=0,mul=1,a[5][5];
printf<"Input5*5array:\n">;
for<i=0;i<5;i++>
for<j=0;j<5;j++>
scanf<"%d",&a[i][j]>;
printf<"\n">;
for<i=0;i<5;i++>
{
sum+=a[i][j];
if<i!=2>
sum+=a[i][4-i];
if<i%2!=0>
continue;
mul*=a[i][i];
if<i!=2>
mul*=a[i][4-i];
}
printf<"sum=%dmul=%d\n",sum,mul>;
}6、參考答案:
#include<stdio.h>
#defineN6
voidmain<>
{
inti,j,a[N][N];
for<i=0;i<N;i++>
{
a[i][0]=1;
a[i][i]=1;
for<j=1;j<i;j++>
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
for<i=0;i<N;i++>
{
for<j=0;j<N-i-1;j++>
printf<"">;
for<j=0;j<=i;j++>
printf<"%2d",a[i][j]>;
printf<"\n">;
}
}7、參考答案:
#include<stdio.h>
#include<string.h>
#defineN80
voidmain<>
{
charstr[N];
inti;
printf<"Inputastring:">;
gets<str>;
printf<"Afterreverse:">;
for<i=strlen<str>-1;i>=0;i-->
printf<"%c",str[i]>;
printf<"\n">;
}8、參考答案:
#include<stdio.h>
#include<string.h>
#defineN80
voidmain<>
{
charstr[N],strtemp[N];
unsignedinti,j;
printf<"Inputastring:">;
gets<str>;
for<i=0,j=0;i<strlen<str>;i++>
if<str[i]!=’c’>
strtemp[j++]=str[i];
strtemp[j]=’\0’;
strcpy<str,strtemp>;
printf<"Afterdeletecharacter\’c\’:">;
printf<"%s\n",str>;
}
9、參考答案:
#include<stdio.h>
#defineN80
voidmain<>
{
chars1[N],s2[N]="abcdefg\0hijk";
unsignedinti;
i=0;
while<1>
{
s1[i]=s2[i];
if<s2[i]==’\0’>
break;i++;
}
printf<"Afterstringcopy:%s\n",s1>;
}10、參考答案:
#include<stdio.h>
voidmain<>
{
chardstStr[20]=’12345’,srcStr[20]=’67890’;
unsignedinti,j;
printf<"Beforestrcat:dstStr=%ssrcStr=%s\n",dstStr,srcStr>;
for<i=0;dstStr[i]!=’\0’;i++>
;
for<j=0;srcStr[j]!=’\0’;j++>
dstStr[i+j]=srcStr[j];
dstStr[i+j]=’\0’;
printf<"Afterstrcat:dstStr=%s\n",dstStr>;
}11、參考答案:
#include<stdio.h>
voidmain<>
{
inta[10]={1,3,5,7,9},num=5,i,n;
printf<"Beforeinsert:">;
for<i=0;i<num;i++>
printf<"%d",a[i]>;
printf<"\n">;
printf<"Inputanumber:">
scanf<"%d",&n>;
for<i=num-1;i>=0;i-->
if<a[i]>n>
a[i+1]=a[i];
else
break;
a[i+1]=n;
printf<"Afterinsert:">;
for<i=0;i<num+1;i++>
printf<"%d",a[i]>;
printf<"\n">;s
}習(xí)題8參考答案編程題1、設(shè)計一個函數(shù),用來判斷一個整數(shù)是否為素數(shù)。參考答案:
#include<stdio.h>
#include<math.h>
intIsPrimeNumber<intnumber>;
voidmain<>
{
inta;
printf<"Inputaintegernumber:">;
scanf<"%d",&a>;
if<IsPrimeNumber<a>>
printf<"%disprimenumber.\n",a>;
else
printf<"%disn’tprimenumber.\n",a>;
}
intIsPrimeNumber<intnumber>
{
intI;
if<number<=-1>
return<0>;
for<i=2;i<sqrt<number>;i++>
if<number%i==0>
return<0>;
return<i>;
}2、設(shè)計函數(shù)MaxCommonFactor<>,計算兩個正整數(shù)的最大公約數(shù)。
參考答案:
#include<stdio.h>
intMaxCommonFactor<inta,intb>;
voidmain<>
{
inta,b,c;
printf<"Inputtwointegernumber:">;
scanf<"%d%d",&a,&b>;
c=MaxCommonFactor<a,b>;
if<c!=-1>
printf<"Thebiggestcommonfactorof%dand%dis%d\n",a,b,c>;
else
printf<"Thebiggestcommonfactorof%dand%disn’texist\n",a,b>;
}
intMaxCommonFactor<inta,intb>
{
if<a<=0||b<=0>
return<-1>;
while<a!=b>
{
if<a>b>
a=a-b;
else
if<b>a>
b=b-a;
}
ruturn<a>;
}3、定義函數(shù)GetData<>用于接收鍵盤輸入的一組整型數(shù)據(jù),并放入一數(shù)組中;另外再定義一個函數(shù)Sort<>用于對輸入的這一組數(shù)據(jù)按照降序排列。主函數(shù)向后調(diào)用GetData和Sort函數(shù),輸出最后的排序結(jié)果。參考答案:
#include<stdio.h>
#defineN10
voidGetData<inta[],intn>;
voidSort<inta[],intn>;
voidmain<>
{
inti,a[N];
GetData<a,N>;
Sort<a,N>;
printf<"Aftersort:">;
for<i=0;i<n;i++>
printf<"%d",a[i]>;
printf<"\n">;
}
voidGetData<inta[],intn>
{
inti;
printf<"Inputnumber:">;
for<i=0;i<n;i++>
scanf<"%d",&a[i]>;
}
voidSort<inta[],intn>
{
inti,j,k,t;
for<i=0;i<n-1;i++>
{
k=i;
for<j=i+1;j<n;j++>
if<a[j]>a[k]>
k=j;
if<k!=i>
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}4、參考答案:
#include<stdio.h>
#include<string.h>
voidJsSort<charstr[]>;
voidmain<>
{
charstr[80];
printf<"Inputastring:">
gets<str>;
JsSort<str>;
printf<"Aftersort:%s\n",str>;
}
voidJsSort<charstr[]>
{
inti,j,k,len;
charch;
len=strlen<str>;
for<i=1;i<len-1;i+=2>
{
k=i;
for<j=i+2;j<len;j+=2>
if<str[j]>str[k]>
k=j;
if<k!=j>
{
ch=str[i];
str[i]=str[k];
str[k]=ch;
}
}
}5.參考答案:
#include<stdio.h>
#include<string.h>
#defineN30
voidJosegh<intp[],intn,ints,intm>;
voidmain<>
{
inti,p[N];
Josegh<p,N,1,10>;
for<i=N-1;i>=0;i-->
{
printf<"%4d",p[i]>;
if<i%10==0>
printf<"\n">;
}
}
voidJosegh<intp[],intn,ints,intm>
{
inti,j,s1,w;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 16826:2025 EN Non-destructive testing - Ultrasonic testing - Testing for discontinuities perpendicular to the surface
- 山東省濱州市惠民縣2024-2025學(xué)年九年級上學(xué)期期末化學(xué)試題(含答案)
- 遼寧省鞍山市2024-2025學(xué)年高一上學(xué)期期末物理試卷(含答案)
- 綠色營銷的評價體系講義
- (一模)哈三中2025屆高三第一次模擬考試 地理試題(含答案)
- 中小學(xué)消防知識培訓(xùn)課件
- 企業(yè)員工培訓(xùn)體系構(gòu)建與實(shí)踐經(jīng)驗(yàn)分享
- 形容詞級與最高級的用法對比高一英語教學(xué)設(shè)計
- 物聯(lián)網(wǎng)智能家居解決方案合同
- 三只小豬蓋房記讀后感
- GB 9688-1988食品包裝用聚丙烯成型品衛(wèi)生標(biāo)準(zhǔn)
- 種族民族與國家
- 01車輪踏面清掃裝置左
- 化學(xué)品安全技術(shù)說明書 MSDS( 石腦油)
- 《集合的基本運(yùn)算》-完整版PPT
- 2022新教科版科學(xué)五下全冊教案、全冊教學(xué)反思(表格式)含目錄
- 土力學(xué)-第二章-土的工程性質(zhì)及工程分類
- 小學(xué)體育《陽光運(yùn)動身體好》課件
- 研究生面試復(fù)試英語+常問問題
- 數(shù)學(xué)名詞中英文對照
- 線束加工工時對照表
評論
0/150
提交評論