最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

廈門大學《C語言程序設(shè)計》第四版教材課后習題答案

2021-03-17 21:39 作者:Idream璀璨  | 我要投稿

本文是廈門大學《C語言程序設(shè)計》教材第四版課后習題的完整答案。完整版答案word文檔共38頁,10章內(nèi)容,由于篇幅限制本文只放出第1-4章內(nèi)容部分,需者自取~~~

關(guān)注我+給本篇文章點贊投幣收藏+截圖私信我,即可領(lǐng)取本文完整文檔~~~

祝大家學習進步,考試順利!?。?/strong>



???第一章 緒論

一、問答題

1、下面列出一些C語言編寫的基本規(guī)則,請指出正確規(guī)則。

(1)語句結(jié)束必須用分號

(2)程序中的標點符號(如分號“;”)必須用英文的標點符號

(3)注釋不影響程序的運行

(4)\n實現(xiàn)換行

(5)main函數(shù)必不可少

(6)若使用printf輸出結(jié)果,則必須在程序前添加#include<stdio.h>

答案:正確規(guī)則有(1)(2)(3)(4)(5)(6)

?

2、請指出下面程序的錯誤。

int mian()

{

??printf(“hello world”)

? return 0;

}

(1)printf(“hello world”)后面少分號。

(2)主函數(shù)名寫錯。

(3)多了return 0;

(4)main()后面少分號。

(5)少了#include<stdio.h>

答案:(1)(2)(5)

?

3、指出輸出結(jié)果為500+200=700的語句。

答案:(1)printf(“500+200=%d”,500+200);

???? (2)printf(“500+200=700”);

?

4、下面是關(guān)于C程序注釋的敘述,指出其中正確的。

答案:正確的有

(1)/*......*/可以注釋多行,也可以注釋一行

(4)//是行注釋,從//開始至行尾為注釋內(nèi)容

?

5、設(shè)有程序“1.cpp”,編譯后運行該程序,執(zhí)行的是()文件

答案:(3)1.exe

?

二、單選題

1、下面的敘述正確的是()

答案:A、一個C的源程序可以由一個或多個函數(shù)組成

2、C程序是從()開始執(zhí)行的

答案:A、主函數(shù)

3、下面程序的運行結(jié)果是()

答案:A、程序出錯,不能運行????? 原因是:/*沒有對應(yīng)的*/

4、以下正確的printf語句是()

答案:A、printf(“This is a C program.\n”);

三、編程題

1、編寫一個程序,在屏幕上顯示下列信息:

We study the C programming language.

We all like it.

?

#include <stdio.h>

void main()

{

? printf("We study the C Programming language.\nWe all like it.\n");

/*或者printf("We study the C Programming language.\n”);

????? printf(“We all like it.\n");? */

?

}

?

2、編寫一個程序,在屏幕中央顯示你的姓名、學號和出生日期。

#include <stdio.h>

void main()

{

? printf("姓名:鄭杭杰\n學號:23020091152716\n出生日期:19870118\n");

}

?

3、編寫一個程序,在屏幕上顯示下列信息

This Program prints a formula:

72*88=6336

?

答案

#include <stdio.h>

void main()

{

? printf("This Program prints a formula:\n”);

printf(“72*88=%d\n",72*88);

}

?第二章?

一、????? 問答題

1、? 下面哪些是C語言的合法常量?

(1)?????? 是(2)是(3)否(4)是(5)是(6)否(7)是(8)是

2、? 為下面的每個數(shù)據(jù),選擇short,int,long,float,double中能存儲他們的最小類型

(1)?????? int(2)int(3)short(4)float

3、? 編程求1/20的值,下面哪個公式結(jié)果為0?

(1)1/20

4、有int型變量a、b,求a與b的平均值,為得到精確值,可以使用下面哪些公式?

?? (2)(a+b)/2.0

?? (3)(a+b)/2.

(4)(float)(a+b)/2

5、在C語言中的=并不是數(shù)學符號中的等號,指出下面錯誤的表達式

?? (2)3=a

?(3)x+1=6

6、下面兩個語句都正確嗎?請將不正確的改正

?? (1)int a=b=c=5??? 不正確,int a=5,b=5,c=5 ;

7、printf(“%d”,表達式);語句將輸出表達式的值,(1)上面兩個語句輸出的結(jié)果都相同,都是2,問:為什么結(jié)果相同?

++i是先讓i自加1后再參加其他運算,所以第一個輸出2,這時候i的值已經(jīng)變成2,所以下一個仍輸出2

(2)?????? 輸出結(jié)果相同嗎?

?? 不同,i++是先參加其他運算i再自加1,所以先輸出結(jié)果為1,這時執(zhí)行i++,i的值為2,第二個輸出結(jié)果為2

???? 8、將下列數(shù)學式子改成合法的C語言表達式

??????? (1)fabs((x+y)*(z+u)+2*c)

??????? (2)3.14* r*r/(a+b)

(3)(In(x)+cos(y))/3

(4)4*x*x*x+2*exp(y)

(5)4*3.14*R*R

???? 9、說出下列C語言表達式的值和類型

??????? (1)-5,int

??????? (2)6,int

??????? (3)24.0,double

??????? (4)100.5,double

??????? (5)5,int

???? 10、指出可以使整型變量i的值加1的語句

??????? (1)i++?? (2)++i? (3)i=i+1?? (4)i+=1

???? 11、下面3組語句能完成變量a,b兩個變量值的交換嗎?

??????? (1)可以 (2)可以 (3)不可以

二、單選題

? ?1.D 2.C 3.C 4.B 5.C 6.A 7.A 8.A 9.A 10.A 11.A 12.B 13.D 14.A

三、編程題

1、編寫程序,輸出|-6|+16.3*5.4的值

#include<stdio.h>
#include<math.h>

int?main()
{

printf("%f\n",abs(-6)+16.3*5.4);
??return?0;
}

?

?

2、編一程序,輸入a,b兩個值,輸出兩個數(shù)中較大值的平方根。a和b兩數(shù)的較大值為(a+b+abs(a-b))/2

?

#include<stdio.h>

#include<math.h>

?

int main()

{

? int a,b,max;

? float c;

? scanf("%d%d",&a,&b);

? max=(a+b+abs(a-b))/2;

? c=sqrt(max);

? printf("%f\n",c);

? return 0;

}

?

3、編一程序,計算從鍵盤輸入的一個數(shù)的平方和立方。

?

#include<stdio.h>

#include<math.h>

?

int main()

{

? double a,b,c;

? scanf("%lf",&a);

? b=a*a;

? c=a*a*a;

? printf("%.2f\n",b);

? printf("%.2f\n",c);

? return 0;

}

?

4、編寫程序,從鍵盤輸入四個實數(shù),輸出他們的平均值

#include<stdio.h>

#include<math.h>

?

int main()

{

? double a,b,c,d,avg;

? scanf("%lf%lf%lf%lf",&a,&b,&c,&d);

? avg=(a+b+c+d)/4;

? printf("%.2f\n",avg);

? return 0;

}

?

5.編寫程序,從鍵盤輸入兩個字符分別存放在變量c1,c2中,要求交換c1和c2的值并輸出

#include<stdio.h>

void main(){

char c1,c2,temp;

scanf(“%c,%c”,&c1,&c2);

temp=c1;

c1=c2;

c2=temp;

printf(“after:c1=%c,c2=%c\n”,c1,c2);

?

}

第三章

一、問答題

查找下列程序段的錯誤,并將其改正。

??? (1)?? float? x,y;

??????? scanf(“%f , %f”,x,y);

?? (2) double? f=3.1415926;

??????? printf? ( “%d”,f);

(3)? float? x, y;

??? scanf (“%f%f\n”,x ,y);

(4) ?double x; long y;

???????? scanf ( “%f%d”,&x,&y);

?? ?(1) 將scanf(“%f , %f”,x,y); 改為 scanf(“%f , %f”, &x, &y);

?? (2)將printf ( “%d”,f); 改為 printf ( “%f”,f);或printf ( “%lf”,f);都可以.

?? (3)將scanf (“%f%f\n”,x ,y); 改為scanf (“%f%f”,&x ,&y);

?? (4)將scanf ( “%f%d,&x,&y);改為scanf ( “%lf%ld”,&x,&y);

二、選擇題

1、A

2、A

3、putchar函數(shù)可以向終端輸出一個D)字符或字符變量值

4、運行以下程序時,從鍵盤輸入25,13,10(回車),則輸出結(jié)果是A)a1+a2+a3=48

main() {

??? int a1,a2,a3;

??? scanf(“%d,%d,%d”,&a1,&a2,&a3);

??? printf(“a1+a2+a3=%d\n”,a1+a2+a3);

}

5、若有以下定義和語句

char c1=’b’,c2=’e’;

printf(“%d,%c\n”,c2-c1,c2-‘a(chǎn)’+’A’);

則輸出結(jié)果是B) 3,E

6、下面的語句正確地描述了計算公式。C)y=(a*x*x*x)/(x-b)

7、有以下列程序,敘述正確的是B)程序輸出小寫字母m

?? void main ()

{? char? a1=‘M’,a2=‘m’;

 printf (“%c\n”,(a1,a2));

}

三、編程題

1、請編程序 輸入圓的半徑,計算并輸出圓的周長和面積。常量PI的值取3.14159,周長和面積取小數(shù)點后兩位數(shù)字。

#include<stdio.h>

#define PI 3.14159

void main()

{

??????? float r,s,c;

??????? printf("輸入半徑:");

??????? scanf("%f",&r);

??????? s=PI*r*r;

??????? c=2.0*PI*r;

??????? printf("圓的面積是:%.2f\n",s);

??????? printf("圓的周長是:%.2f\n",c);

}

2.編寫程序,把整數(shù)華式溫度f轉(zhuǎn)換為浮點型的攝氏溫度c。轉(zhuǎn)換公式為c=5/9(f-32)計算并輸出攝氏溫度,輸出時要求有文字說明,取2位小數(shù)。

#include<stdio.h>

void main()

{

??????? float f,c;

??????? printf("輸入華氏溫度:");

??????? scanf("%f",&f);

??????? c=5.0/9*(f-32);

??????? printf("攝氏溫度是:%.2f",c);

}

3.編寫程序,從鍵盤輸入一個5位正整數(shù),然后分別求出它的個位數(shù)、十位數(shù)、百位數(shù)、千位數(shù)和萬位數(shù),并打印出這5位數(shù)字的和。

#include<stdio.h>

int main()

{

??????? int num;

??????? int n1,n2,n3,n4,n5;

??????? printf("請輸入一個5位整數(shù)\n");

??????? scanf("%d",&num);

??????? n1=num/10000;

??????? n2=num/1000%10;

??????? n3=num/100%10;

??????? n4=num/10%10;

??????? n5=num%10;

??????? printf("%d\n",n1+n2+n3+n4+n5);

??????? return 0;

}

4.輸入三角形的三邊長,求三角形面積。請編程序。

#include<stdio.h>

#include<math.h>

main()

{

??????? float a,b,c,s,area;

??????? printf("輸入三角形的三條邊長:");

??????? scanf("%f%f%f",&a,&b,&c);

??????? if(a+b>c&&a+c>b&&b+c>a)? {

??????????????? s=1.0/2*(a+b+c);

??????????????? area=sqrt(s*(s-a)*(s-b)*(s-c));

??????????????? printf("面積是:%f",area);

??????? }

??????? else

??????????????? printf("該三角形不存在!");

}

5.編寫一個程序,輸入一個小寫字母,輸出其對應(yīng)的大寫字母。

#include<stdio.h>

void main()

{

??????? char ch;

??????? printf("輸入一個小寫字母,將輸出一個相應(yīng)大寫字母:");

??????? ch=getchar();

??????? ch=ch-‘a(chǎn)’+’A’;

??????? putchar(ch);

}

6、若a=3,b=4,c=5,x=1.2,y=2.4,z= -3.6,u=51274,n=128765,c1=’a’,c2=’b’,想得到以下的輸出結(jié)果,請寫出程序(包括定義變量和輸出設(shè)計)。

#include<stdio.h>

int main()

{

??????? int a = 3, b = 4, c = 5;

??????? double x = 1.2, y = 2.4, z = -3.6;

??????? int u = 51274, n = 128765;

??????? char c1 = 'a', c2 = 'b';

??????? printf("a=%d b=%d c=%d\n",a,b,c);

??????? printf("x=%.6f y=%.6f z=%.6f\n",x,y,z);

??????? printf("x+y=%.2f y+z=%.2f z+x=%.2f\n",x+y,y+z,z+x);

??????? printf("u=%6d n=%6d\n",u,n);

??????? printf("c1='%c' or %d(ASCII)\n",c1,c1);

??????? printf("c2='%c' or %d(ASCII)\n", c2, c2);

??????? return 0;

}

7、編寫程序,社銀行定期存款的年利率rate為3.25%,存款期為n年,存款本金為capital元,計算并輸出n年后的本利之和deposit.

?????????????????? Interest(利息)=principal(本金)*rate(年利率)*n(年)

#include<stdio.h>

void main()

{

??????? float r=0.0325,n,c,d;

??????? printf("輸入存款期n:");

??????? scanf("%f",&n);

??????? printf("輸入本金c:");

??????? scanf("%f",&c);

??????? d=c*(r*n+1);

??????? printf("%f",d);

}

8、編寫程序,輸入銷售員的銷售額,計算并輸出其月工資,公司規(guī)定銷售員的工資由底薪加提成構(gòu)成,底薪為1000元,提成為當月總銷售額的9%。

#include<stdio.h>

void main()

{

??????? float r=1000.0,n,d;

??????? printf("輸入銷售額n:");

??????? scanf("%f",&n);

??????? d=r+n*0.09;

??????? printf("%f",d);

}

?第四章

一、問答題

1、(1)1?? (2)1 0 (3)1?? (4)0?? (5)1 3,4,5? (6)1 8,8,9?? (7)1 2,1,1

2、(1)3,2,2???? (2)1,2,3

3、t? %f %f? a=b

4、等價

二、單選題

1.D 2.C 3.C 4.A 5.A 6.C 7.A 8.D 9.D 10.D 11.A 12.B 13.C 14.C 15.C 16.B 17.C 18.B

三、編程題

??? 1、輸入一個整數(shù),判別它是奇數(shù)還是偶數(shù)。

#include<stdio.h>

void? main()

{

? int n;

? scanf("%d",&n);

? if(n%2==0) printf("%d是偶數(shù)\n",n);

? else printf("%d是奇數(shù)\n",n);

}

?

2、從鍵盤輸入一個字符,如果輸入的是大寫字母,則將它轉(zhuǎn)換成小寫字母后輸出,否則輸出原來輸入的字符。

#include<stdio.h>

void main()

{

? char c;

? scanf("%c",&c);

? if(c>='A'&&c<='Z')? printf("%c\n",c-‘A’+’a’);

? else printf("%c\n",c);

}

3、輸入一個不超過4位的整數(shù),確定這個數(shù)的位數(shù)并輸出。

#include<stdio.h>

void main()

{

?? int n,

?? sacnf(“%d”,&n);

?? if(n<0)

????? n=-n;? //保證n是正數(shù)

?? if(n<=9)

????? printf(“一位數(shù)”);

?? else if(n<=99)

????? printf(“二位數(shù)”);

else if(n<=999)

????? printf(“三位數(shù)”);

?? else if(n<=9999)

????? printf(“四位數(shù)”);

?? else

????? printf(“輸入錯誤”);

}

?

4、輸入24小時制的時間,輸出12小時制的格式。

#include <stdio.h>

void main()

{ int hour,minute;

??? scanf(“%d:%d”,&hour,&minute);

??? if( hour<12 )

?????? printf(“%d:%d AM”, hour, minute);

??? else

?????? printf(“%d:%d PM”,hour-12,minute);???

}

?

5、輸入兩個日期,判斷并輸出哪個日期更早,要求日期格式為mm/dd/yy

#include <stdio.h>

void main()

{ int month1,day1,year1,month2,day2,year2;

??? printf(“Enter first date(mm/dd/yy):”);

??? scanf(“%d/%d/%d”,&month1,&day1,&year1);

??? printf(“Enter second date(mm/dd/yy):”);

??? scanf(“%d/%d/%d”,&month2,&day2,&year2);

??? if( year1==year2 && month1==month2 && day1==day2)

??????? printf(“equal day”);

??? else if( year1<year2 || (year1==year2 && month1<month2)?

|| (year1==year2 && month1==month2 && day1<day2 ) )

??????? printf( “%d/%d/%d is earlier than %d/%d/%d\n”,

month1,day1,year1,month2,day2,year2);

??? ????else

?????? printf( “%d/%d/%d is later than %d/%d/%d\n”,

month1,day1,year1,month2,day2,year2);

?

}

?

6、輸入4個整數(shù),從中找出最大值和最小值并輸出。要求盡可能少使用IF語句

#include<stdio.h>

void main(){

int a,b,c,d,max1,max2,min1,min2;

scanf(“%d%d%d%d”,&a,&b,&c,&d);

if(a>b)

?{max1=a; min1=b;}

else

??? {max1=b; min1=a;}

if(c>d)

?{max2=c; min2=d;}

else

??? {max2=d; min2=c;}

printf(“max=%d\nmin=%d\n”,max1>max2?max1:max2,min1<min2?min1:min2);

}

?

7、輸入三角形三條邊的長度,判斷是否構(gòu)成三角形,是否為直角三角形

#include<stdio.h>

void main()

{ float a, b, c;

scanf("%f%f%f",&a, &b, &c);

if (a+b>c&&a+c>b&&b+c>a)? {

printf("構(gòu)成三角形!\n");

if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)

printf("是直角三角形!\n");

else

printf("不是直角三角形!\n");

}

else

printf("不能構(gòu)成三角形!\n");

}

?? 8、輸入員工的工作時間,計算并輸出該員工的工資。公司規(guī)定每個雇員40小時以內(nèi)的報酬為10.00美元/小時,超出40小時以外的按工資的1.5倍工資付酬。

?#include<stdio.h>
void?main()
{
??float??hour,salary;
??scanf("%f",&hour);
??if(hour<=40)?salary=10*hour;
??else?salary=400+(hour-40)*10*1.5;
??printf("該員工工資為%.2f\n",salary);
}

?? 9、根據(jù)分段函數(shù)y=f(x)的定義,輸入x,輸出y的值

?#include<stdio.h>
#include<math.h>
void?main()
{
??float?x,y;
????? scanf("%f",&x);
????? if(x<=-1)??y=2*x*x*x-1;
????? else?if(x<=0)?y=x*x;
???? ?else?if(x<=1)?y=sqrt(x);
???? ?else?y=3*x+2;
???? ?printf("%.2f",y);

}

10、輸入某年某月某日,計算這一天是該年的第幾天

#include<stdio.h>

void main()

{? int year,month,day,sum;

??? scanf("%d%d%d",&year,&month,&day);

sum=day;

switch(month) {

?? case 12: sum+=30;/*第11月的天數(shù)*/

???? ??case 11: sum+=31; /*第10月的天數(shù)*/

???? ??case 10: sum+=30; /*第9月的天數(shù)*/

???? ??case 9 : sum+=31;

?? case 8: sum+=31;

?? case 7: sum+=30;

?? case 6: sum+=31;

?? case 5: sum+=30;

???? ??case 4: sum+=31;

???? ??case 3: if( year%400==0 || year%4==0 && year%100!=0 ) sum+=29;

? ???????????else sum+=28;

???? ??case 2: sum+=31;

?? ????case 1: break;

?????? default : printf(“月份輸入有誤!”);break;

}

printf("該日是該年的第%d天\n",sum);

}

?

11、判斷體重屬于何種類型

#include<stdio.h>

void main()

{

? float weight,height,t;

? scanf("%f%f",&weight,&height);

? t=weight/(height*height);

? if(t<18) printf("體重偏輕\n");

? else if(t<25) printf("體重正常\n");

? else if(t<27) printf("體重超重\n");

? else printf("肥胖\n");

}

?


廈門大學《C語言程序設(shè)計》第四版教材課后習題答案的評論 (共 條)

分享到微博請遵守國家法律
墨脱县| 广丰县| 洛浦县| 江口县| 遵化市| 马鞍山市| 龙口市| 蓝山县| 皋兰县| 海兴县| 永和县| 卓资县| 新建县| 广饶县| 肥城市| 临颍县| 金乡县| 修水县| 沙坪坝区| 忻城县| 固始县| 竹山县| 云霄县| 双城市| 灵寿县| 墨玉县| 南投县| 仁怀市| 新郑市| 句容市| 额敏县| 那坡县| 信丰县| 合肥市| 滦平县| 金堂县| 如皋市| 堆龙德庆县| 京山县| 丰台区| 岳阳县|