精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

大學(xué)C/C++語言程序設(shè)計實驗教程

陽小華 羅晨暉 編 / 電子工業(yè)出版社

王大膽 上傳

查看本書

書名:大學(xué)C/C++語言程序設(shè)計實驗教程

作者: 陽小華 羅晨暉 編

出版社:電子工業(yè)出版社



實驗1 ?基本程序示例

任務(wù)1 ?熟悉C語言程序的編輯、編譯、連接和運行過程

【上機內(nèi)容】

1.輸入并運行下面程序,寫出運行結(jié)果。

#include "stdio.h"

main(?)

{

??char ?c1,c2;

???????c1=97;c2=98;

???????printf("%c,%c", c1, c2);

}

在此基礎(chǔ)上,完成以下3項任務(wù):

1)在c1=97;c2=98;語句后加入如下語句,并運行。

printf("%d, %d", c1, c2 );

運行結(jié)果:

ab9798

2)將char ?c1,c2;改為如下語句,再運行。

int c1, c2;

運行結(jié)果:

ab

3)將c1=97;c2=98;改為如下語句,再運行,并分析其運行結(jié)果。

c1=300; c2=400;

運行結(jié)果:

,,怭(或,,?

?????

2.分析下面程序,寫出運行結(jié)果,再輸入計算機中運行,將得到的結(jié)果與分析得到的結(jié)果比較對照。

#include "stdio.h"

main(?)

{

char c1='a',c2='b',c3='c',c4='\101',c5='\116';

printf("a%c b%c\tabc%c \n",c1,c2,c3);

printf("\t\b%c %c",c4,c5);

}

運行結(jié)果:

aa bb ??abcc

A N

?

3.分析下面程序,寫出運行結(jié)果,再輸入計算機中運行,將得到的結(jié)果與分析得到的結(jié)果比較對照。

#include "stdio.h"

main(?)

{

????int i , j , m , n ;

????i=8; j=10;

????m=++i; n=j++;

????printf("%d,%d,%d,%d",i,j,m,n);

}

運行結(jié)果:

9,11,9,10

分別進行以下改動后,先分析結(jié)果,再運行對照。

1)將m=++i; n=j++;改為如下:

m=i++; n= ++ j;

運行結(jié)果:

9,11,8,11

2)程序改為如下:

#include "stdio.h"

main(?)

{

int i , j ;

i=8; j=10;

printf("%d,%d", i++, j++);

}

運行結(jié)果:

8,10

3)程序改為如下:

#include "stdio.h"

main(?)

{

int i , j ;

i=8; j=10;

printf("%d,%d", ++ i, ++ j);

}

運行結(jié)果:

9,11

4)程序改為如下:

#include "stdio.h"

main(?)

{

int i , j ;

i=8; j=10;

printf("%d,%d,%d,%d",i,j,i++j++);

}

運行結(jié)果:

8,10,8,10

5)程序改為如下:

#include "stdio.h"

main(?)

{

int i , j , m=0 , n=0 ;

i=8; j=10;

m+= i ++; n-= --j;

printf("i=%d,j=%d,m=%d,n=%d",i,j,m,n);

}

運行結(jié)果:

i=9,j=9,m=8,n=-9

任務(wù)2 ?簡單的C語言程序設(shè)計

1.按格式要求輸入輸出數(shù)據(jù)。

程序請單如下:

#include "stdio.h"

main(?)

{ ?

????in a,b;

????float x,y;

????char c1,c2;

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

????scanf("%f, %e",&x,&y);

????scanf("%c %c",&c1,&c2); ??/*錄入時%c%c之間有個空格*/

????printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);

}

運行該程序,必須按如下方式在鍵盤上輸入數(shù)據(jù):

????a=3,b=7 ↙

????8.5,71.82a ?A?↙ ??(注解:aA之間輸入一個空格,且a緊跟71.82后寫,不要空格)

請寫出輸出結(jié)果。

運行結(jié)果:

a=7,b=3,x=8.500000,y=71.820000,c1=a,c2=A

?

2.輸入三角形的三條邊長,求三角形面積。

程序清單如下:

#include "stdio.h"

#include "math.h"

main(?)

{

float a,b,c,s,area;

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

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

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

printf("area=%f",area);

}

運行結(jié)果:(具體情況根據(jù)自己輸入的數(shù)據(jù)而定)

如在鍵盤上輸入:3,4,5↙

則運行結(jié)果為:

area=6.000000

3.已知圓半徑、圓柱高、求圓周長、圓柱體積。

程序清單如下:

#include "stdio.h"

main(?)

{

float r,h,l,v,pi;

pi=3.1415926;

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

l=2*pi*r;

v=pi*r*r*h;

printf("圓周長為:%6.2f\n",l);

printf("%圓柱體積為:6.2f",v);

}

運行結(jié)果:(具體情況根據(jù)自己輸入的數(shù)據(jù)而定)

如在鍵盤上輸入:5,6↙

則運行結(jié)果為:

圓周長為:31.42

圓柱體積為:471.24

4.輸入一個攝氏溫度,要求輸出華氏溫度,公式為f = 5/9·c+32

程序清單如下:

#include "stdio.h"

main(?)

{

float ?c,f;

scanf("%f",&c);

f=5.0/9*c+32;

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

}

運行結(jié)果:(具體情況根據(jù)自己輸入的數(shù)據(jù)而定)

如在鍵盤上輸入:37↙

則運行結(jié)果為:

52.56

?

實驗2 選擇結(jié)構(gòu)

任務(wù)1 ?if語句程序設(shè)計

1.修改下列程序,使之滿足輸入10時輸出“= =”,否則輸出“!=”的條件。

#include"stdio.h"

main()

{int x;

scanf("%d",&x);

if(x==10)printf("==\n");

else printf("!=\n");

}

2.修改下列程序,使之實現(xiàn)以下功能:當(dāng)a=?=b并且b==c時,輸出“a==b==c”當(dāng)a!=b時,輸出“a!=b”。

#include “stdio.h”

??main( )

????{ ?int a,b,c;

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

if (a==b)

????????????if(b==c)

????????????????printf(“a==b==c”);

???

?else

????????????????printf(“a!=b”);

}

3.程序填空。從鍵盤輸入任意一個大寫字母,將其轉(zhuǎn)換成相應(yīng)小寫字母輸出。

????#include <stdio.h>

??????main()

??????{ char c;

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

????????if?(c>='A'&&c<='Z')或(c>=65&&c<=90)

?????????????c=c+32;

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

??}

4.有以下程序,執(zhí)行后輸出結(jié)果為_______4_______。

#include “stdio.h”

main( )

??{ ?int ?a=1,b=2,c=3,d=4;

?????if(a<b<c) ?printf(“%d\n”,d);

?????else if((c-b)==a) ?printf(“%d\n”,2*d);

?????else ??printf(“%d\n”,4*d);

}

5.有以下程序,執(zhí)行后輸出結(jié)果為______9 ???7 ???0_____。

#include "stdio.h"

?????main( )

???{ int ?a=8,b=7,c=9,t=0;

????????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("%5d%5d%5d\n",a,b,c);

}

6.有以下程序,執(zhí)行后輸出結(jié)果為_____9 ???8 ???7_____。

#include "stdio.h"

???main( )

???{ ??int ?a=8,b=7,c=9,t=0;

????????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("%5d%5d%5d\n",a,b,c);

???}

7. ?x、y有如下函數(shù)關(guān)系,編寫程序輸入x,輸出y值。??

????????????????????????????x ???????(x<1)

?????????????????????y = ???2x–1 ???(1≤x<10)

????????????????????????????3x–11 ??(x≥10)

?????????參考答案:

#include "stdio.h"

main()

{ double x,y;

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

??if (x<1)

?????y=x;

??else ?if(x<10)

?????y=2*x-1;

??else

?????y=3*x-11;

??printf ("y=%lf",y);

}

8. 輸入一個百分制分數(shù),要求輸出對應(yīng)的成績等級:90100為‘A’,8089為‘B’,7079為‘C’,6069為‘D’,不及格為‘E’。

參考答案:

#include<stdio.h>

main(?)

{ ?float score;

???printf("input socre:");

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

???if(score>=90)

????????printf("A\n");

???else ?if(score>=80)

???????????????printf("B\n");

????????else ??if(score>=70)

??????????printf("C\n");

??????????else ??if(score>=60)

???????printf("D\n");

?????????else

???????printf("E\n");

}

9.給一個不多于3位的正整數(shù),編寫程序完成以下要求:

1)求出它是幾位數(shù);

2)分別輸出每一位數(shù)字;

3)按逆序輸出各位數(shù)字,例如,原數(shù)為321,應(yīng)輸出123

參考答案:

#include "stdio.h"

void main()

{int a,b,c,x,n;

scanf("%d",&x);

a=x/100;

b=(x-a*100)/10;

c=x%10;

if(a!=0)

??printf("%d為3位數(shù),原數(shù)為%d,逆序數(shù)為%d\n",x,x,c*100+b*10+a);

else if(b!=0)

???printf("%d為2位數(shù),原數(shù)為%d,逆序數(shù)為%d\n",x,x,c*10+b);

?????else

????printf("%d為1位數(shù),原數(shù)為%d,逆序數(shù)為%d\n",x,x,c);

}

?

任務(wù)2 ?switch語句程序設(shè)計

1.有如下程序,執(zhí)行后輸出結(jié)果為______14______。

#include “stdio.h”

??main ( )

{ ?int i=5;

????switch(i)

????{ ??case 4:i+=1;

????????case 5:i+=2;

????????case 6:i+=3;

????????default:i+=4;

?????}

????printf("%d\n",i);

}

2.有如下程序段,若grade的值為'C',則輸出結(jié)果是_____?Medium!____

??????Pass!______ ?。

switch(grade)

{ case 'A':printf("Excellent!\n");

case 'B':printf("Fine!\n");break;

case 'C':printf("Medium!\n");

case 'D':printf("Pass!\n");break;

default:printf("Fail!\n");

}

3.有以下程序,執(zhí)行后輸出結(jié)果為_______a=3,b=5__________

#include "stdio.h"

main( )

{ ?int x=0,y=1,a=2,b=3;

???switch(x)

???{ ?case ?0:

?????????????switch(y)

?????????????{ ?case 0: ??a++; ?

????????????????case 1: ??b++; ?break;

?????????????}

??????case ?1: ?a++;b++; break;

??????case ?2: ?a++;b++;

????}

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

}

4.將下列的程序段改用switch語句來實現(xiàn),使它完成相同的功能。

if(x>=0&&x<10) y=x;

else if(x<20) y=x+3;

else if(x<40) y=-0.5*x+10;

else ????y=2*x-5;

參考答案:

#include "stdio.h"

main()

{ ??float x1,x2;

????float y;

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

????x2=x1;

????switch(x1>0)

????{ ?case 0 :y=0; ?break;

???case 1 : ?switch((int)x2/10)

?????????????????{ ?case 0: ?y=x2; ?break;

????????????????????case 1: ??y=x2+3;break;

????????????????????case 2: ?

????case 3: ??y=-0.5*x2+10;break;

? ? ? ? ? ? ? ? ? ?default: ?y=2*x2-5;break;

???} ???????

?????} ?

????printf("x=%f,y=%f",x1,y);

}

5.以下程序計算某年某月有幾天,閏年與平年的二月份天數(shù)不同。判別閏年的條件是:能被4整除但不能被100整除的年是閏年,或者能被400整除的年也是閏年。請分析程序填空。

#include "stdio.h"

#include "stdio.h"

main()

{ ?int yy,mm,days;

???printf("input ?year ?and ?month:");

???scanf("%d %d",&yy,&mm);

???switch(mm)

???{ case 1: case 3: case 5: case 7:case 8:

?????case 10:case 12:??days=31 ?;break;

?????case 4: case 6: case 9: case 11:days=30;break;

?????case 2:if(yy%4==0&&yy%100!=0||yy%400==0)??days=29 ?;

??????????else ???days=28;

???????????break;

????default:printf("input error");break;

???}

???printf("the days of %d %d is %d\n",yy,mm,days);

}

?

6.假設(shè)獎金稅率如下(ma代表獎金,tr代表稅率), 利用switch語句編寫程序?qū)斎氲囊粋€獎金數(shù),輸出稅率和應(yīng)交稅款以及實得獎金數(shù)(扣除獎金稅后),

① ma<1000 ??????????tr=0%;

② 1000?ma<2000, ????tr=5%

③ 2000?ma<4000, ????tr=8%;

④ 4000?ma時, ?????????tr=10%。

參考答案

#include "stdio.h"

main()

{ ?float ma, tr,ma_tr;

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

???printf("獎金數(shù)為%8.2f",ma); ?????

???switch(ma>=1000)

???{ ?case 0 :tr=0; ?break;

??case 1 : ?switch((int)ma/1000)

????????????????{ ?case 1: ??tr=0.05;break;

???????????????????case 2: ?

???case 3: ??tr=0.08;break;

???????????????????default: tr=0.1;break;

} ???????

???} ?

???printf("稅率為=%.2f,應(yīng)交稅款為=%.2f,實得獎金數(shù)為=%.2f\n",tr,ma*tr,ma*(1-tr));

}


查看更多