C語言上機實驗答案.doc_第1頁
C語言上機實驗答案.doc_第2頁
C語言上機實驗答案.doc_第3頁
C語言上機實驗答案.doc_第4頁
C語言上機實驗答案.doc_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗一上機操作初步 (2 學時 )一、實驗方式:一人一機二、實驗目的:1、熟悉 VC+語言的上機環(huán)境及上機操作過程。2、了解如何編輯、編譯、連接和運行一個C 程序。3、初步了解 C程序的特點。三、實驗內容:說明:前三題為必做題目,后兩題為選做題目。1、輸出入下信息: ( 實驗指導書 P79)*Very Good*2、計算兩個整數的和與積。( 實驗指導書 P81)3、從鍵盤輸入一個角度的弧度值x,計算該角度的余弦值, 將計算結果輸出到屏幕。 ( 書P3)4、在屏幕上顯示一個文字菜單模樣的圖案:=1輸入數據2修改數據3查詢數據4打印數據= 5、從鍵盤上輸入兩個整數,交換這兩個整數。四、實驗步驟與過

2、程:五、實驗調試記錄:六、參考答案:1、#include void main( )printf(“ *n” );printf(“Very Goodn” );printf(“ *n” );2、#include void main( )int a,b,c,d;printf(“ Please enter a,b:”);scanf(“%d,%d” ,&a,&b);c=a+b; d=a*b;printf(“ %d+%d=%dn” ,a,b,c);printf(“ %d*%d=%dn” ,a,b,d);3、#include #include void main( )double x,s;printf(“

3、Please input value of x:”);scanf(“%lf ” ,&x);s=cos(x);printf(“ cos(%lf)=%lfn”,x,s);4、#include void main( )printf(“ =n”);printf(“1輸入數據2修改數據 n ”);printf(“3查詢數據4打印數據 n ”);printf(“ =n”);5、#include void main( )int x,y,t;printf(“ Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“ After swa

4、p:x=%d,y=%dn ” ,x,y);實驗二簡單的 C程序設計 (4 學時 )一、實驗方式:一人一機二、實驗目的:1、掌握 C語言的數據類型。2、學會使用 C語言的運算符及表達式。3、掌握不同數據類型的輸入輸出方法。三、實驗內容:說明:前四題為必做題目,后兩題為選做題目。1 、輸入 r1 、 r2 ,求出圓形墊片面積。 ( 實驗指導書 P84)2、輸入華氏溫度 h,輸出攝氏溫度 c。 ( 實驗指導書 P85)3、從鍵盤輸入一個 3 位整數,將輸出該數的逆序數。 ( 實驗指導書 P89)4、輸入并運行以下程序,分析運行結果。#include void main( ) int i,j; i=8

5、; j=10;printf(“ %d,%dn” ,+i,+j);i=8; j=10;printf(“ %d,%dn” ,i+,j+);i=8; j=10;printf(“ %d,%dn” ,+i,i);i=8; j=10;printf(“ %d,%dn” ,i+,i);5、輸入三角形三條邊的邊長,求三角形的面積。( 書 P55)6、輸入 3 個字符型數據,將其轉換成相應的整數后,求它們的平均值并輸出。( 書 P55)四、實驗步驟與過程:五、實驗調試記錄:六、參考答案:1、#include #define PI 3.14void main( ) float r1,r2; double s1,s2

6、,s;printf(“ Please enter r1,r2:n”);scanf(“%f%f”,&r1,&r2);s2=r2*r2*PI; s1=r1*r1*PI; s=s2-s1;printf(“ s=%lfn ” ,s);2、#include void main( )float h,c;printf(“請輸入華氏溫度:”);scanf(“%f” ,&h);c=5.0/9*(h-32);printf(“ n 攝氏溫度: %fn ”,c);3、#include void main( )int a,b,c,x,y;printf(“請輸入一個3 位的正整數: n ”);%d,&x);a=x/100

7、;/*b=(x-a*100)/10; /*c=x-a*100-b*10; /*求 x 的百位數 */求 x 的十位數 */求 x 的個位數 */y=c*100+b*10+a;printf(“ %d:%dn” ,x,y);4 、運行結果: 9,11 8,10 9,8 8,85、#include #include void main( ) int a,b,c; double area,s;printf( “ Please enter a,b,c: scanf( “%d,%d,%d” ,&a,&b,&c); s=(double)(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(

8、s-c);” );printf(“ area=%.2lfn”,area);6、#include void main( )char a,b,c;float x;printf(“ Please enter:n”);a=getchar(); b=getchar(); c=getchar();x=(a+b+c)/3.0;printf(“ (a+b+c)/3=%.2fn” ,x);實驗三選擇結構程序設計(2 學時 )一、實驗方式:一人一機二、實驗目的:1、熟練掌握 if語句和 switch 語句。2、練習并掌握多分支選擇結構的編程方法。3、學習調試和修改程序的步驟。三、實驗內容:說明:前三題為必做題目,

9、后兩題為選做題目。1、讀入 3 個分別表示箱子長、 寬、高的整數值,判斷并輸出該箱子是立方體還是長方體。 ( 實驗指導書 P104)2、輸入某一年月,輸出該月的天數。( 實驗指導書 P105)3、有一函數:x(x1)y= 2x-1 (1x10)3x-11 (x10)編寫程序,輸入x 值,輸出 y 值。4、從鍵盤輸入一個字符,如果該字符為小寫字母,則轉換為大寫字母輸出;如果該字符為大寫字母,則轉換為小寫字母輸出;如果為其他字符,原樣輸出。 ( 書 P94) 5、輸入 4 個整數,要求按由小到大的順序輸出。四、實驗步驟與過程:五、實驗調試記錄:六、參考答案:1、#include void main

10、( )int l,w,h;printf(“請輸入箱子的長、寬、高:n ”);scanf(“%d%d%d”,&l,&w,&h);if(l=w&w=h)/*如果長、寬、高相等,則為立方體printf(“該箱子是立方體?!?;elseprintf(“該箱子是長方體。”);*/2、#include void main( )int year,month,days;printf(“ Please enter year and month:n” );switch(month)case 2: if(year%4=0&year%100!=0|year%400=0)days=29;elsedays=28;brea

11、k;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;printf(“ %d年 %d月有 %d天n ” ,year,month,days);3、#include void main( )float x,y;printf(“ Please input x:n”);scanf(“%f” ,&x);if(x1)y=x;else if(x10)y=2*x-1;elsey=3*x-11;printf(“ y=%fn ”,y);4、#incl

12、ude void main( )char x;printf(“ Enter a char:n”);x=getchar();if(x= a&x= A&x=Z)x=x+32;putchar(x);5、#include void main( )int a,b,c,d,t;printf(“請輸入 4 個整數:” );scanf(“%d%d%d%d”,&a,&b,&c,&d);if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; if(ad) t=a; a=d; d=t; if(bc) t=b; b=c; c=t; if(bd) t=b; b=d; d=t; if(cd

13、) t=c; c=d; d=t; printf(“排序結果如下: n ” );printf(“ %d,%d,%d,%dn” ,a,b,c,d);實驗四循環(huán)結構程序設計(4 學時 )一、實驗方式:一人一機二、實驗目的:1、熟練掌握 while 語句、 do-while語句和 for 語句。2、練習并掌握循環(huán)結構的嵌套形式。3、掌握循環(huán)結構的程序設計方法。三、實驗內容:說明:前四題為必做題目,后兩題為選做題目。1、從鍵盤上輸入若干個學生的成績,統(tǒng)計并輸出最高成績和最低成績,當輸入負數時結束輸入。 ( 實驗指導書 P117)2、求所有的水仙花數。水仙花數是一個3 位數的自然數,該數各位數的立方和等于

14、該數本身。 ( 實驗指導書 P118)3、判斷輸入的某個數是否為素數。若是,輸出YES,否則輸出 NO。( 書 P123)4、計算的近似值。公式如下:/4=1-1/3+1/5-1/7+,直到最后一項的絕對值小于 10-6 為止。 ( 書 P123)5、計算 s=1!+2!+ +20! 的值并輸出。6、輸入 10 個整數,統(tǒng)計并輸出其中正數、負數和零的個數。四、實驗步驟與過程:五、實驗調試記錄:六、參考答案:1、#include void main( )float x,max,min;printf(“ Please input scores:scanf(“%f” ,&x);max=min=x;w

15、hile(x=0)”); if(xmax) max=x; if(xmin) min=x;scanf(“ %f”,&x);printf(“ nmax=%fnmin=%fn ”,max,min);2、#include void main( ) int x,y,z; int k=100; while(k=999) x=k/100;y=(k-x*100)/10;z=k-x*100-y*10;if(k=x*x*x+y*y*y+z*z*z)printf(k+;“%dn”,k);3、#include #include void main( )int i,x,yes,a;printf(“ Enter inte

16、ger number:scanf(“%d” ,&x);yes=1;i=2;a=(int)sqrt(double)x);while(yes&i=a)if(x%i=0)i+;”);yes=0;printf(“ %d” ,x);if(yes)printf(“ YESn”);elseprintf(“ NOn” );4、#include #include void main( ) float pi,t,n; int sign=1; pi=0; n=1; t=1; while(fabs(t)=1e-6) t=sign/n;pi+=t;n+=2; sign=-sign;pi=pi*4;printf(“ pi

17、=%fn ” ,pi);5、#include void main( ) float s=0,t=1; int n; for(n=1;n=20;n+) t=t*n;s=s+t;printf(“ 1!+2!+ +20!=%fn ” ,s);6、#include void main( ) int x,i,a1=0,b1=0,c1=0; for(i=1;i0)a1+;else if(x0) b1+;elsec1+;printf(“整數有 %d個,負數有 %d個,零有 %d個 n ”,a1,b1,c1);實驗五綜合實驗 1:結構化程序設計(2 學時 )一、實驗方式:一人一機二、實驗目的:1、進一步掌握選

18、擇結構、循環(huán)結構的編程特點。2、掌握 C語言的結構化程序設計思想。3、學習利用循環(huán)結構實現的一些常用算法(如窮舉、迭代、遞推等)。三、實驗內容:說明:前兩題為必做題目,后兩題為選做題目。1、編一程序,對于給定的一個百分制成績, 輸出對應 A,B,C,D,E 表示的的等級成績。 設:90 分以上為 A, 80-89 分為 B,70-79 分為 C, 60-69 分為 D,60 分以下為 E。( 書 P93)2、百馬百擔問題。 ( 實驗指導書 P121)3、輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數字和其他字符的個數。4、輸出如下圖案:*四、實驗步驟與過程:五、實驗調試記錄:六、參考答案:1、

19、#include void main( ) int score,temp,logic; char grade;logic=1;while(logic) printf(“ Input score: ” ); scanf( “ %d”,&score); if(score100|score0)printf(“nError,Input again!n”);elselogic=0;printf(“ n ”);if(score=100)temp=9;elsetemp=score/10;switch(temp)case 9: grade=case 8: grade=case 7: grade=case 6:

20、 grade=A;break;B;break;C;break;D;break;default: grade=E;printf(“ Score is %d,the grade is %c.n” ,score,grade);2、#include void main( )int m,n,k;int sum=0;printf(“各種馱法如下: n ” );for(m=1;m=100;m+)for(n=1;n=100-m;n+) k=100-m-n; if(k%2=0&m*3+n*2+k/2=100)printf(“大馬 %3d匹;中馬 %3d匹;小馬 %3d匹.n ” ,m,n,k);sum+;pri

21、ntf(“共有 %d種馱法 .n ”,sum);3、#include void main( )char c;int letter=0,space=0,digit=0,other=0;printf(“請輸入一行字符: n ”);while(c=getchar( )!= n )if(c= a &c= A&c=0&c= 9 )digit+;elseother+;printf(“字母數 =%d,空格數 =%dn”,letter,space);printf(“數字數 =%d,其他字符數 =%dn”,digit,other);4、#include void main( ) int i,j,k; for(i

22、=0;i=3;i+)for(j=0;j=2-i;j+)printf(“ ”);for(k=0;k=2*i;k+)printf(“* ”);printf(“ n ”);for(i=0;i=2;i+)for(j=0;j=i;j+)printf(“ ”);for(k=0;k=4-2*i;k+) printf(“* ”);printf(“ n ”);實驗六函數程序設計 (4 學時 )一、實驗方式:一人一機二、實驗目的:1、掌握 C語言中函數的三要素:函數定義、函數調用和函數說明。2、掌握通過參數在函數間傳遞數據的方法。3、掌握全局變量、局部變量、動態(tài)變量、靜態(tài)變量的概念和使用方法。三、實驗內容:說明:

23、前四題為必做題目,后兩題為選做題目。1、從鍵盤輸入三角形的3 條邊,調用三角形面積函數求出其面積,并輸出結果。( 實驗指導書 P130)2、輸入整數 n,輸出高度為n 的等邊三角形。當n=5 時的等邊三角形如下:( 實驗指導書 P134)*3、輸入并運行以下程序,分析運行結果。#include int a=5;int b=7;void main( ) int a=4,b=5,c;c=plus(a,b);printf(“a+b=%dn” ,c);plus(int x,int y) int z; z=x+y; return (z);4、求 500 以內的所有親密數對。若正整數A 的所有因子(包括1

24、 但不包括自身,下同)之和為 B,而 B 的因子之和為 A,則稱 A 和 B 為一對親密數對。 ( 實驗指導書 P136) 5、輸入并運行以下程序,分析運行結果。#include int d=1;fun(int p) static int d=5; d+=p;printf(“ %d ”,d);return (d);void main( )int a=3;printf(“ %d ”,fun(a+fun(d);6、設計一個函數,輸出整數n 的所有素數因子。 ( 書 P157)四、實驗步驟與過程:五、實驗調試記錄:六、參考答案:1、#include #include float area(float

25、 a,float b,float c) float s,p,area; s=(a+b+c)/2; p=s*(s-a)*(s-b)*(s-c); area=sqrt(p); return (area);void main( )float x,y,z,ts;scanf(“%f%f%f”,&x,&y,&z);if(x0&y0&z0&x+yz&y+zx&x+zy)ts=area(x,y,z);printf(“ area=%fn ” ,ts);elseprintf(“ data error!n” );2、#include void trangle(int n) int i,j; for(i=0;in;i

26、+) for(j=0;j=n-i;j+) putchar( for(j=0;j=2*i;j+) putchar( );/* );/*打印每一行的空格 */打印每一行的 * 號 */putchar( n );void main( ) int n;Please enter n:);scanf(“%d”,&n);printf(“n ” );trangle(n);3、a+b=94、#include int facsum(int m) int sum=1,f=2; while(f=m/2) if(m%f=0) sum=sum+f; f+;return sum;void main( ) int m=3,n

27、,k; while(m=500) n=facsum(m);k=facsum(n);if(m=k&m=n)printf( “%d,%dn”,m,n); m+;5、615156、#include int prime(int n) int i,flag=1; for(i=2;i=n/2;i+)if(n%i=0) flag=0;retun flag;return flag;void factor(int n) int i; i=2; while(i=n)if(n%i=0)&prime(i)printf(n=n/i;continue;“%d ”,i);i+;void main( )int num;pri

28、ntf(“ Enter num:” );scanf(“%d” ,&num);printf(“ prime factor is:n”);factor(num);實驗七數組程序設計(4學時 )一、實驗方式:一人一機二、實驗目的:1、掌握數組的定義、賦值和輸入輸出的方法。2、學習用數組實現相關的算法(特別是排序算法)。3、掌握 C語言中字符數組和字符串處理函數的使用。三、實驗內容:說明:前四題為必做題目,后兩題為選做題目。1、下列程序的功能是:輸入 10 個整數,按每行 3 個數輸出這些整數,最后輸出 10 個整數的平均值。程序中有幾處錯誤,試找出它們后加以修改,并上機驗證修改結果。#include

29、 void main( ) int i,n,a10,avg;for(i=0;in;i+)scanf( “ %d”,ai); for(i=0;in;i+)if(i%3=0)printf(printf(“%d ”,ai);“ n ”);for(i=0;in;i+)avg+=ai;printf(“navg=%fn ”,avg);2、寫一個函數,對輸入的 10 個整數按從小到大的順序排序(升序,用冒泡排序實現) 。 ( 實驗指導書 P147)3、編寫程序,判斷某一字符串是不是“回文數” ,回文數是從左至右或從右至左讀起來都是一樣的字符串。 ( 實驗指導書 P153)4、輸入一個 3 行 3 列矩陣的所

30、有元素,然后求出主對角線元素之和。5、給定某年某月某日,將其轉換成這一年的第幾天并輸出。( 實驗指導書 P152)6、編寫程序,在有序的數列中查找某數,若該數在此數列中,則輸出它所在的位置,否則輸出 no found 。( 書 P191)四、實驗步驟與過程:五、實驗調試記錄:六、參考答案:1、#include void main( ) int i,n=10,a10; float avg=0;for(i=0;in;i+)scanf(“ %d”,&ai);for(i=0;in;i+)if(i%3=0)printf(printf(“%d ”,ai);“ n ”);for(i=0;in;i+)avg+

31、=ai;avg=avg/n;printf(“navg=%fn ”,avg);2、#include void sort1(int s ,int n) int i,j; int t; for(i=0;i=i+1;j-) if(sjsj-1) t=sj;sj=sj-1;sj-1=t; void main( )int i,a10;printf(“ Please input 10 numbers:n”);for(i=0;i10;i+)scanf(“%d” ,&ai);sort1(a,10);printf(“ The sorted 10 numbers:n”);for(i=0;i10;i+)printf(

32、“ %d ”,ai);3 、#include #include #define N 40 void main( )char strN,ch=int i;Y;int len;printf(“Input a string:n”);scanf(“ %s” ,str);len=strlen(str);for(i=0;ilen/2;i+)if(stri!=strlen-1-i) ch= N; break;if(ch=Y)printf(“%s是一個回文數 n ”,str);elseprintf(“%s不是一個回文數 n ”,str);4、#include void main( ) int a33,sum;

33、 int i,j; sum=0; for(i=0;i3;i+)for(j=0;j3;j+)scanf(“ %d”,&aij);for(i=0;i3;i+)sum=sum+aii;printf(“sum=%dn”,sum);5、#include int day_tab213=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31;int day_year(int year,int month,int day)int i,j,s=0;if(year%4=0&year%100!=0|year%400=0)

34、 i=1; else i=0;for(j=1;jmonth;j+)s=s+day_tabij;return (s+day);void main( )int y,m,d;printf(“Input year,month and day:n”);scanf(“ %d%d%d”,&y,&m,&d);printf(“是這年的第 %d天n ” ,day_year(y,m,d);6、#include #define N 10void main( )int aN;int num,i;char ch=n;printf(“請輸入一個數組: n ” );for(i=0;iN;i+)scanf(“ %d”,&ai)

35、;printf(“輸出數組: n ” );for(i=0;iN;i+)printf(“ %d ” ,ai);printf(“n ”);printf(“請輸入一個數: n ”);scanf(“ %d” ,&num);printf(“開始查找 n ”);for(i=0;iN;i+)if(num=ai)ch= y;printf(“%d在數組的第 %d位n ” ,num,i+1);if(ch=n )printf(“ no foundn”);實驗八指針程序設計 (2 學時 )一、實驗方式:一人一機二、實驗目的:1、通過實驗進一步掌握指針的概念,會定義和使用指針變量。2、能正確使用指向數組和字符串的指針變

36、量。3、熟悉指針作為函數參數的編程特點。三、實驗內容:說明:前兩題為必做題目,后兩題為選做題目。要求用指針方法實現。1、指針基礎及指針運算。( 實驗指導書 P168)2、輸入 3 個整數,按從小到大的次序輸出。( 書 P234)3、數據交換。實驗要求:1) 定義兩個函數,分別為void swap1(int a,int b)和voidswap2(int*a,int*b) ,用于交換 a,b 的值。 2) 從主函數中分別輸入兩個整型變量a、b。3) 從主函數中分別調用上述兩個交換函數,并打印輸出交換后a、b 的結果。 ( 實驗指導書 P169)4、編寫一個程序計算字符串長度的函數, 模擬 C的 函

37、數庫內的計算字符串長度的函數 strlen( ) 。四、實驗步驟與過程:五、實驗調試記錄:六、參考答案:1、#include #include #define N 5void main( ) int *p,*q,aN; int i,tmp; p=a;q=(int *)malloc(N*sizeof(int);printf(“ Please input the first group:for(i=0;iN;i+)”);scanf(printf(“%d” ,p+i);/*使用指針“ Please input the second group:p 輸入 ” );a 的 N 個元素 */for(i=0

38、;iN;i+)scanf(“%d” ,&qi);/*使用數組輸入指針for(i=0;i*(q+i) tmp=*(p+i); *(p+i)=*(q+i); *(q+i)=tmp; printf(“ Result:n”);q 地址上的交換N 個整數 */for(i=0;iN;i+)printf(“ %d ”,*(a+i);/*按指針輸出第一組數*/printf(“ n ” );for(i=0;iN;i+)printf(printf(“ %d ”,qi);/*按數組輸出第二組數“ The memory address of p,a,q are:%x,%x,%xn*/” ,p,a,q);free(q)

39、;2、#include void swap(int *p1,int *p2)int p;p=*p1; *p1=*p2; *p2=p;void main( ) int n1,n2,n3; int *p1,*p2,*p3;printf(“ Please input three integer datas:scanf(“%d%d%d”,&n1,&n2,&n3);p1=&n1; p2=&n2; p3=&n3;if(n1n2) swap(p1,p2);if(n1n3) swap(p1,p3);if(n2n3) swap(p2,p3);printf(“ After swap:”);printf(“ %d

40、%d %dn” ,n1,n2,n3);” );3、#include void swap1(int x,int y);void swap2(int *x,int *y);void main( )int a,b;printf(“ Please input a=:” );scanf(“%d” ,&a);printf(“ Please input b=:” );scanf(“%d” ,&b);swap1(a,b);printf( “ nAfter call swap1:a=%d b=%dn ” ,a,b); swap2(&a,&b);printf(“ nAfter call swap2:a=%d b=

41、%dn” ,a,b);void swap1(int x,int y) int temp;temp=x; x=y; y=temp;void swap2(int *x,int *y) int temp;temp=*x; *x=*y; *y=temp;4、#include int strlength(char *s);void main( )int n1,n2;char *list1=“See no evil,hear no evil.char *list2=“blind and deaf” ;n1=strlength(list1);n2=strlength(list2);puts(list1);printf(“ The length of list1=%dn”,n1);puts(list2);printf(“ The length of list2=%dn”,n2);” ;int strlength

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論