版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計呼克佑課后習(xí)題答案
C語言程序設(shè)計習(xí)題解答(參考)
習(xí)題一
一、單項選擇題
1.D
2.A
3.D
二、填空題
1.順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)
2算法
3.語言簡潔、運算符豐富、結(jié)構(gòu)化語言
4.可移植性強、代碼效率高、書寫格式自由
5.錯誤隱蔽、有時會難以理解、有時會難以修改
6.群舉法(枚舉法)、遞推法(迭代法)、遞歸法
7.做什么怎么做
三、應(yīng)用題
1.
include
voidmain()
printf(〃*************************\nn)?
printf("Clanguageprogram\nH);
printf(〃*************************\n〃)*
)
2.
include
voidmain()
inta,b,c,max;
scanf("%d%d%d",&a,&b,&c);
if(a>b)max=a;
elsemax=b;
if(max
printf(wMax=%d\nM,max);
)
一、單項選擇題
l.A,D,E
2.B,E
3.B,D,E,F,H
4.B,F
5.A,B,E
二、填空題
l.(i)int(2)char(3)double(4)long(5)char⑹char⑺int(8)long
2.(i)0(2)0(3)2(4)4(5)4(6)8(7)0(8)2
3.2111
4.不做
5.sin(25*3.14159/180)+cos(30*3.14159/180)
6.2
8.5
三、給出各個程序的運行b結(jié)果
1.運行結(jié)果如下:
3
21
5
5
2.運行結(jié)果如下:
6,9
9,27
一、單項選擇題
l.D
2.B
3.D
4.C
5.B
6.C
7.B
8.A
9.C10.D
ll.D12.D13.B14.A15.A16.B17.C18.C19.B20.B
21.D22.C23.C24.D25.C26.C27.D28.D29.B3O.A
二、填空題
1.從標(biāo)準(zhǔn)設(shè)備(鍵盤)上讀入一個字符向標(biāo)準(zhǔn)設(shè)備(鍵盤)上輸
出一個字符
#include
2.以十進制形式輸入一個整數(shù)表示從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)讀取
輸入的3個整型數(shù)
表示掉過3個整數(shù)不讀取用來輸入一個字符
3.以十進制形式輸出一個整數(shù)以十六進制形式輸出一個整數(shù)
以十進制小數(shù)形式輸出,輸出的數(shù)據(jù)長度為7位,其中有兩位為
小數(shù)
以字符形式輸出一個字符
4.分程序;;
5.-1
6.非00
7.a%7==0else8.39.2
lO.forwhiledo-while11.Continue12.a=16,y=42
13.1014.y=1915.22222
16.3917.718.5,5
19.n=420.-321.8
三、程序閱讀分析題
1.2.
3.0
4.567
5.thisnumberisahuiwen
四、編程題
1.編寫一個程序,要求用戶輸入兩個整數(shù),判定其中一個是否能
整除另一個。
#include
intmain()
(
inta,b;
while(scanf("%d%d",&a,&b)==2)
{
if(a%b)printf("不能整除\n");
elseprintf("能整除\n");
)
return0;
)
2.編程實現(xiàn):輸入一個整數(shù),判斷它能否被3,5,7整除,并輸
出以下信息之一:
①能同時被3,5,7整除;
②能被其中兩數(shù)(要指出哪兩個)整除;
③能被其中一個數(shù)(要指出哪一個)整除;
④不能被3,5,7任一個整除。
#include
voidmain()
(
inta;
printf("請輸入一個整數(shù)\n");
scanf("%d",&a);
if(a%3==0&&a%5==0&&a%7==0)
printf("%d能同時被3,5,7整除\n",a);
eIseif(a%3!=0&&a%5==0&&a%7==0)
printf("%d能同時被5,7整除\n",a);
eIseif(a%3==0&&a%5!=0&&a%7==0)
printf("%d能同時被3,7整除\n",a);
eIseif(a%3==0&&a%5==0&&a%7!=0)
printf("%d能同時被3,5整除\n",a);
eIseif(a%3==0&&a%5!=0&&a%7!=0)
printf("%d能被3整除\n",a);
eIseif(a%3!=0&&a%5==0&&a%7!=0)
printf("%d能被5整除\n",a);
elseif(a%3!=0&&a%5!=0&&a%7==0)
printf("%d能被7整除\n",a);
eIseprintf("%d不能被3,5,7整除\n",a);
)
3.市郊長途電話收費標(biāo)準(zhǔn)如下:通話時間在三分鐘以下收費一角,
三分鐘以上則每超過一分鐘加一角。在7:00—21:00之間通話者,
按收費標(biāo)準(zhǔn)全價收費;在其它時間通話者,按收費標(biāo)準(zhǔn)的一半收費。
請計算某人在x時間通話y分鐘,應(yīng)繳多少電話費。(通話時間利用
整數(shù)輸入實現(xiàn))include
main()
(
floatx,y=O;
intt;
scanf("%f%d",&x,&t);
if(t>7&8it<21)
if(x<3)
y=o.i;
else
do
(
y=0.2+y;
x=x-l;
}while(x-3>0);
)
eIse
(
if(x<3)
y=0.1/2;
else
do
(
y=(0.2+y)/2;
x=x-l;
}while(x-3>0);
}
printf("%f",y);
)
4.輸入a、b、c三條邊,判斷它是否構(gòu)成三角形。若能構(gòu)成三角
形,則計算三角形面積。
#include
#include
main()
fIoata,b,c,S=0,x=0;
printf("輸入三角形三條邊的邊長:");
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
(
x=(a+b+c)/2.0;
S=sqrt(x*(x-a)*(x-b)*(x-c));
printf("area=%.3f\n",S);
)
EIse
printf("不能構(gòu)成三角形\n");
)
5.打印出所有"水仙花數(shù)"。所謂"水仙花數(shù)”是指一個三位數(shù),
其各位數(shù)字的立方和等于該數(shù)本身。例如,153是一個"水仙花數(shù)",
因為153=13+53+33。
#include"stdio.h"
#include"math.h"
main()
(
inti;
inta,b,c;
for(i=100;i<=999;i++)
(
a=i%10;/*取個位數(shù)*/
b=i/10%10;/*取十位數(shù)*/
c=i/100;/*取百位數(shù)*/
if(i==a*a*a+b*b*b+c*c*c)
printf("%d",i);
)
)
6.編寫一個程序,在屏幕上顯示如下圖形(圖形的層數(shù)讀者自行
設(shè)定):
*
***
*****
*******
*****
***
*
#include
#include
main()
(
inti,j,k;
for(i=-3;i<=3;i++)
{
for(j=l;j<=abs(i);j++)
printf("%c",32);
for(j=l;j<=7-2*abs(i);j++)
printf("*");
printf("\n");
)
)
7.求斐波那契(Fibonacci)數(shù)歹ij:1,1,2,3,5,8,……的前
40個數(shù)。斐波那契數(shù)列的定義:
Fl=l(n=l)
F2=l(n=2)
Fn=Fn-l+Fn-2(n>3)
#include
main()
(
intfl,f2,f;
inti;
fl=f2=l;
printf("%d\n%d\n",fl,f2);
for(i=l;i<=38;i++)/*已經(jīng)有兩個數(shù),只要再產(chǎn)生38個數(shù)即可*/
(
f=fl+f2;
fl=f2;
f2=f;
printf("%d\n",f);
)
)
8.編程實現(xiàn)求1+2+3+…+n之和,并輸出當(dāng)其和第一次大于或等
于100時的值及n值。
#include
main()
(
inti,s,t=0;
i=l;s=0;
while(i<=100)
(
s=s+i;
if(s>=100&&t<l)/*設(shè)定t只求第一次和大于100的內(nèi)容*/
(
printf("第一次和大于或等于100時和為%d\n",s);
printf("第一次和大于或等于100時n^]%d\n",i);
t+=l;
}
i=i+l;
)
printf("s=%d\n",s);
)
9.整元換零錢問題。把1元兌換成1分、2分、5分的硬幣,共有
多少種不同的換法?
#include
main()
(
inti,j,k,n;
n=100,k=0;
for(i=0;i<=n/5;i++)
for(j=0;j<=(n-i*5)/2;j++)
(
printf("5cent=%d\t2cent=%d\t1cent=%d\n",i/j,n-i*5-j*2);
k++;
)
printf("totaltimes=%d\n",k);
)
10.編寫解雞兔同籠問題的程序。用戶輸入頭的數(shù)目和腳的數(shù)目,
輸出雞、兔各有多少只。^include
main()
{intx,y,a,b;
printf("輸入雞兔頭的數(shù)目:)
scanf("%d",&x);
printf("輸入雞兔腳的數(shù)目:");
scanf("%d",&y);
a=x-(y-2*x)/2;
b=(y-2*x)/2;
printfC1雞有%d只,兔有%dR",a,b);
)
11.打印楊輝三角形,即(x+y)n展開式的各項系數(shù)。并且在程序
運行開始時,問用戶n的值為多少,接著打印如下形式至指定行數(shù)。
1
11
121
1331
14641
#include
intmain()
{intn,k,j,c;
printf("Input=");
scanf("%d",&n);
for(k=l;k<=n;k++)
(
〃printf("%*s",4*(n-k));/*格式控制語句,有和沒有是兩種顯示方
式*/
c=l;
printf("%4d",c);
for(j=l;j<=k-l;j++)
(
c=c*(k-j)/j;
printf("%8d",c);
)
printf("\n");
)
return0;
)
12.個位數(shù)是6,且能被3整除的五位數(shù)共有多少個?
#include
main()
{inta,count=0;
longi;
for(i=10000;i<100000;i++)
(
a=i%10;
if(a==6&&i%3==0)
count++;
)
printf("這樣的數(shù)共計:%d",count);
)
習(xí)題四
一、單項選擇題
1.C
2.D
3.D
4.D
5.C
6.D
7.B
8.A
9.B10.B
二、填空題
1.—15014float
2.8
3.連續(xù)數(shù)組名
4.按行存儲
5.04
6.350
7.368.9
9.710.#include#include
三、程序閱讀分析題
1.i==ja[i][j]a[i][j]printf("\n")
2.k=32
3.gbcdefa
4.012345
123456
234567
345678
456789
5678910
5.you&me
四、編程題
1.設(shè)數(shù)組V中的數(shù)據(jù)元素遞增有序,現(xiàn)將x插入到數(shù)組V的適當(dāng)
位置,使數(shù)組元素的值仍保持有序。
#include
voidmain()
(
intV[15]={65,70,73,75,79,81,85,88,90};/*有9個初值,有序*/
intn=9,x=77;/*數(shù)組中當(dāng)前有n個數(shù)據(jù),將x插入數(shù)組V中,仍
保持有序*/
inti;
for(i=n-l;i>=0&&V[i]/*將V數(shù)組中的數(shù)據(jù)從后往前比較
*/
V[i+l]=V[i];/*若大于x,后移一個位置*/
V[i+l]=x;/*將x插入數(shù)組V中*/
n++;/*數(shù)組中數(shù)據(jù)個數(shù)增1*/
for(i=0;i<=""bdsfid="475"p="">
printf("%d",V[i]);
printf("\n");
)
2.定義一個含有30個整型元素的數(shù)組,按順序分別賦予從2開始
的偶數(shù),然后按順序每五個數(shù)求出一個平均值,放在另一個數(shù)組中并
輸出。
#include
voidmain()
(
intarray[30],average[6]={0};
inti,j;
for(i=0;i<30;i++)
array[i]=2*(i+l);
for(j=0;j<6;j++)
(
for(i=5*j;i<5*(j+l);i++)
average[j]+=array[i];
average[j]/=5;
printf("%d",average[j]);
)
printf("\n");
)
3.輸入一個字符串,在指定位置插入一個字符。
#include
voidmain()
(
charstr[81],ch;
inti,position;
printf("輸入一個字符串:");
gets(str);
printf("輸入要插入字符的位置:");
scanf("%d",&position);
printf("輸入要插入的字符:");
scanf("%*c%c",&ch);
for(i=0;str[i]!='\0';i++);
while(i>=position-l)
(
str[i+l]=str[i];
i--;
)
str[position-l]=ch;
printf("在指定位置插入字符后的字符串:%s\n",str);
)
4.輸入一行字符,分別統(tǒng)計其中十個數(shù)字字符'O',T,…,9出
現(xiàn)的次數(shù)。
#include
voidmain()
{
charstr[81];
intcount[10]={0},i;
printf("輸入一行字符:\n");
gets(str);
for(i=0;str[i]!='\0';i++)
if(str[i]>='0'&&str[i]<=,9,)
count[str[i]-'Ol]++;
for(i=0;i<10;i++)
primf('%c\,:%d\rr,,0,+i,count[i]);
)
5.輸入矩陣A(2行3列)和矩陣B(3行4列),計算它們的乘
積C=A-B。
(矩陣乘積計算公式:Cij=IAikBkj)
#include
voidmain()
inta[2][3],b[3][4],c[2][4];
inti,jzk;
printf("輸入2行3列矩陣數(shù)據(jù):\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("輸入3行4列矩陣數(shù)據(jù):\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&b[i][j]);
for(i=0;i<2;i++)
for(j=0;j<4;j++)
(
c[i][j]=O;
for(k=0;k<3;k++)
c[i][j]+=a[i][k]*b[k][j];
)
printf("兩矩陣的乘積矩陣是:\n");
for(i=0;i<2;i++)
(
for(j=0;j<4;j++)
printf("%5d",c[i][j]);
printf("\n");
)
)
6.下面是一個5x5階的螺旋方陣。試編程打印出此形式的nxn(n
<10,順時針方向旋進)。
12345
161718196
152425207
142322218
131211109
#include
#defineN5
voidmain()
(
inta[N][N],i,j,k,n;
i=0;
j=0;
n=l;
for(k=l;k<=N*N;k++)
(
if(i==n-l&8ij<n-n)<bdsfid="583"p=""></n-n)<>
疝[j++]=k;
elseif(j==N-n&&i<n-n)<bdsfid="586"p=""></n-n)<>
a[i++][j]=k;
elseif(i==N-n&&j>n-l)
a[i][j-]=k;
else
a[i-][j]=k;
if(i==n&&j==n-l)
n++;
)
for(i=0;i<n;i++)<bdsfid="596"p=""></n;i++)<>
(
for(j=0;j<n;j++)<bdsfid="599"p=""></n;j++)<>
printf("%5d",a[i][j]);
printf("\n");
)
)
7.編一程序,實現(xiàn)字符串復(fù)制,不使用strcpy()函數(shù)。
#include
voidmain()
charstrl[81],str2[]="Iamastudent.";
inti;
for(i=0;(strl[i]=str2[i])!='\0';i++);
printf("%s\n%s\n",strl,str2);
)
8.編一程序,求字符串的長度,不使用strlen()函數(shù)。
#include
voidmain()
(
charstr[81];
intn;
printf("輸入一個字符串:");
gets(str);
n=0;
while(str[n]!='\O')
n++;
printf("字符串的長度是:%d\n",n);
)
9.有一篇文章,共有3行文字,每行有80個字符。要求分別統(tǒng)計
出其中英文大寫字母、/」寫字母、數(shù)字、空格以及其他字符的個數(shù)。
#include
voidmain()
(
charstr[3][81];
char
category[5][10]={"UPPER","LOWER","DIGIT","SPACE","OTHER"};
inti,j,count[5]={0};
printf("輸入3行文字:\n");
for(i=0;i<3;i++)
gets(str[i]);
for(i=0;i<3;i++)
for(j=0;str[i][j]!='\0';j++)
if(str[i][j]>='A'&&str[i][j]<='Z')
count[0]++;
elseif(str[i][j]>='a'&&str[i][j]<=,z')
count[l]++;
elseif(str[i][j]>='0'&&str[i][j]<='9')
count[2]++;
elseif(str[i][j]=='')
count[3]++;
else
count[4]++;
for(i=0;i<5;i++)
printf("%s:%d\n",category[i],count[i]);
)
10.某班期終考試科目為高等數(shù)學(xué)(MT)、英語(EN)和物理(PH)。有
30人參加考試。為評定獎學(xué)金,要求統(tǒng)計并輸出一個表格,表格內(nèi)容
包括學(xué)號、各科分?jǐn)?shù)、總分和平均分,并標(biāo)出三門課均在90分以上者
(該欄標(biāo)志輸出為"Y",否則為"N"),表格形式如下:
NOMTENPHSUMV>90
197879
227692Y
292919027
391Y
39081822538
4N
可以將學(xué)生的學(xué)號和各科成績放在數(shù)組a[30][4]中,然后進行統(tǒng)
計處理。
#include
#defineN30
voidmain()
(
intstu[N][4],sum;
inti,j;
chargreat90;
for(i=0;i<n;i++)<bdsfid="673"p=""></n;i++)<>
(
printf("輸入第%d個學(xué)生的數(shù)學(xué)、英語和物理成績(空格分
隔):",i+1);
stu[i][0]=i+l;
for(j=l;j<4;j++)
scanf("%d",&stu[i][j]);
)
printf("NOMTENPHSUMV>90\n");
printf("------------------------------------\n");
for(i=0;i<n;i++)<bdsfid="683"p=""x/n;i++)<>
(
sum=0;
great90='Y';
printf(n%5d",stu[i][0]);
for(j=l;j<4;j++)
(
printf(n%5d",stu[i][j]);
sum+=stu[i][j];
if(stu[i][j]<90)
great90='N';
)
printf("%5d",sum);
printf("%5d",sum/3);
printf("%5c\n",great90);
)
)
習(xí)題五
一、單項選擇題
1.B)2.D)3.A)4.D)5.A)6.C)
二、填空題
1.52.883.2
4.12125.4126.1行的行地址
三、程序分析題
1.24
2.ENGLISH
MATH
MUSIC
PHYSICS
CHEMISTRY
四、編程題(以下題目均要求用指針方法實現(xiàn))
1.#include
#include
voidmain()
(
char
n[]={"china","japan","korea","american"/"england"},*temp;
inti,j,k;
for(i=0;i<5;i++)
(
k=i;
for(j=i+l;j<5;j++)
if(strcmp(n[k],n[j])>0)k=j;
if(k!=i)
(
temp=n[k];n[k]=n[i];n[i]=temp;
)
)
for(i=0;i<5;i++)
printf("%s\n",n[i]);
)
2.#include
voidmain()
{
inta[10]={87,78,69,79,98,86,91,75,71,95},*p,temp;
inti,min_order;
p=a;
for(i=l;i<10;i++)
if(*p>a[i])p=a+i;
min_order=p-a;
printf("Min=a[%d]=%d\n",min_order,a[min_order]);
temp=*p;*p=a[O];a[O]=temp;
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
)
3.略
4.#include
voidmain()
inta[10]={10,20,30,40,50,60,70,80,90};/*數(shù)組中9個數(shù)有序*/
int*p,x=35;/*x為待插入的數(shù)據(jù)7
for(p=&a[8];(p>=a)8i&(*p>x);p—)
*(p+l)=*p;/*從后向前將比x大的數(shù)據(jù)后移一個位置*/
*(p+l)=x;/*將X插入到數(shù)組中*/
for(p=a;p<=""bdsfid="761"p="">
printf("%4d",*p);
printf("\n");
)
5.#include
voidmain()
(
chars[255],prrior='',*p;
printf("輸入一行英文:\n");
gets(s);
for(p=s;*p!='\0';p++)/*掃描字符串*/
(
if(prrior==''&&*p>='a'&&*p<='z')/*單詞開始且是小寫字母
*/*p-=32;/*將單詞的第一個字母改為大寫*/
prrior=*p;
)
puts(s);
)
6.#include
voidmain()
(
charstrl[81],str2[]="Iamaboy.";
char*s,*t;
s=str2;
t=strl;
while((*t=*s)!='\0')
S++;
t++;
)
puts(strl);
)
7.略
8.略
9.編寫程序,實現(xiàn)輸入月份號,輸出相應(yīng)的英文月份名。10.略
11.略
12.#include
voidmain()
{
charstr[81],*p,*q;
printf("輸入一個字符串:\n)
gets(str);
for(q=str;*q!='\0';q++);
for(p=str,q—;(p<q)&&(*p==*q);p++,q--);<bdsfid="807"
n)();;
p="></q&&*p==*qp4-+fq-)<>
if(p<="">
elseprintf("字符串:%s是回文串!\n",str);
)
13.#include
voidmain()
(
charstr[81],
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《基因突變和基因重組》教學(xué)設(shè)計1
- 課題申報參考:競合供應(yīng)鏈企業(yè)社會責(zé)任審計、運營與融資策略研究
- 課題申報參考:檢察公益訴訟立法研究
- 2025年上半年水產(chǎn)漁業(yè)生產(chǎn)情況總結(jié)及下半年工作安排(三篇)
- 二零二五版房地產(chǎn)土地使用權(quán)交易爭議解決協(xié)議3篇
- 影視劇臨時演員聘用協(xié)議2025版2篇
- 2025年度個人與派遣公司教育培訓(xùn)派遣合同范本4篇
- 二零二五年鍋爐維修安全風(fēng)險評估與處理協(xié)議3篇
- 二零二五版新材料產(chǎn)業(yè)臨時用工聘用管理協(xié)議3篇
- 2025年香港公司股權(quán)轉(zhuǎn)讓手續(xù)糾紛解決合同3篇
- 慈溪高一期末數(shù)學(xué)試卷
- 天津市武清區(qū)2024-2025學(xué)年八年級(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產(chǎn)5000噸硅樹脂項目環(huán)境影響評價
- 高端民用航空復(fù)材智能制造交付中心項目環(huán)評資料環(huán)境影響
- 量子醫(yī)學(xué)成像學(xué)行業(yè)研究報告
- DB22T 3268-2021 糧食收儲企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化評定規(guī)范
- 辦事居間協(xié)議合同范例
- 正念減壓療法詳解課件
- 學(xué)校校本課程《英文電影鑒賞》文本
- 華為HCSA-Presales-IT售前認(rèn)證備考試題及答案
評論
0/150
提交評論