C語言程序設(shè)計實驗課程簡介_第1頁
C語言程序設(shè)計實驗課程簡介_第2頁
C語言程序設(shè)計實驗課程簡介_第3頁
C語言程序設(shè)計實驗課程簡介_第4頁
C語言程序設(shè)計實驗課程簡介_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、四川師范大學(xué)計算機科學(xué)學(xué)院C語言程序設(shè)計實驗手冊2010年2月年級: 2009級 專業(yè): 計算機科學(xué)與技術(shù) 班級: 一班 姓名: 謝丹 學(xué)號: 2009110156 指導(dǎo)教師: 廖雪花 C語言程序設(shè)計實驗課程簡介課程名稱:C語言程序設(shè)計實驗課程性質(zhì):專業(yè)必修課課程屬性:專業(yè)必修課學(xué)時學(xué)分:學(xué)時32 學(xué)分1開課實驗室:軟件實驗室面向?qū)I(yè):網(wǎng)絡(luò)工程、軟件工程、計算機科學(xué)與技術(shù)一、課程的任務(wù)和基本要求C語言程序設(shè)計實驗是面向計算機相關(guān)專業(yè)學(xué)生開設(shè)的C語言程序設(shè)計實驗課,是配合C語言程序設(shè)計課程而開設(shè)的實驗性教育環(huán)節(jié)。本課程的主要任務(wù)是讓學(xué)生充分掌握C語言程序設(shè)計的基本概念、各種數(shù)據(jù)類型的使用技巧、模

2、塊化程序設(shè)計的方法等。C語言程序設(shè)計實驗對課程中所涉及的知識進行驗證,同時也是學(xué)生很好地學(xué)習課程的輔助手段。通過C語言上機實驗的教學(xué)活動,使學(xué)生真正全面掌握C語言的基礎(chǔ)知識,培養(yǎng)和提高學(xué)生的程序開發(fā)能力。二、實驗項目【實驗一】最簡單的C程序-順序程序設(shè)計【實驗二】邏輯運算和判斷選取控制【實驗三】循環(huán)結(jié)構(gòu)程序設(shè)計(一)【實驗四】循環(huán)結(jié)構(gòu)程序設(shè)計(二)【實驗五】函數(shù)【實驗六】數(shù)組(一)【實驗七】數(shù)組(二)【實驗八】指針【實驗九】結(jié)構(gòu)體、共用體和文件【實驗十】C程序綜合性實驗三、有關(guān)說明1、與其它課程和教學(xué)環(huán)節(jié)的聯(lián)系:先修課程:計算機文化后續(xù)課程:面向?qū)ο蟪绦蛟O(shè)計、Java程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、軟件工

3、程2、教材和主要參考書目:(1)教材: C程序設(shè)計習題解答與上機指導(dǎo),譚浩強 吳偉民著,北京:清華大學(xué)出版社,2003年。(2)主要參考書目: C語言程序設(shè)計 譚浩強主編,清華大學(xué)出版社,2003年。三、實驗內(nèi)容實驗一 最簡單的C程序-順序程序設(shè)計(驗證性實驗 2學(xué)時)(一)、實驗?zāi)康?熟悉win-tc程序運行環(huán)境2掌握運行一個C程序的步驟,理解并學(xué)會C程序的編輯、編譯、鏈接方法3掌握C語言中使用最多的一種語句賦值語句4掌握數(shù)據(jù)的輸入輸出方法,能正確使用各種格式控制符(二)、實驗內(nèi)容1寫出下列程序的運行結(jié)果(1)#include <stdio.h>void main()printf

4、(“*n”);printf(“This is a c program. n”);printf(“*n”);運行結(jié)果及分析:結(jié)果:* 分析:在C語言中,n表示換行,因此運行結(jié)果為三行。 This is a c program. Printf 是預(yù)定義的標準的C函數(shù),用于顯示輸出。 *將程序中的n去掉后,運行結(jié)果及分析:結(jié)果:*This is a c program.*分析:去掉n后,運行結(jié)果將不換行,因此只有一行。(2)#include <stdio.h>void main() int a=100,b=20,sum,sb;sum=a+b;sb=a/b; printf("su

5、m=%d,sb=%d",sum,sb);運行結(jié)果及分析: 結(jié)果:sum=120,sb=5分析:變量聲明語句int·····告訴編譯器a b sum sb均為整數(shù)型,可執(zhí)行語句中的%d表示輸出的結(jié)果為整數(shù)。(3)#include <stdio.h>void main( ) char c1,c2; c1=97;c2=98;printf("%c ,%cn",c1,c2);printf("%d,%dn",c1,c2);printf("%c %cn",c1+1,c2+2);

6、運行結(jié)果及分析:結(jié)果:a,b 分析:C語言中,%c表示字符輸出,在ASC中,97、98、100 97,98 分別為a b d。 b,d(4)#include <stdio.h>void main () int i=8,j=10,m,n;m=+i;n=j+; printf("%d,%d,%d,%d",i,j,m,n);運行結(jié)果及分析:結(jié)果:9,11,9,10分析:m=+i表示i加1再賦值給m,而n=j+表示先將j賦值給n,再加1.再將本程序的第3行改為m=i+;n=+j; 運行結(jié)果及分析:結(jié)果:9,11,8,112程序填空任意輸入一個有五位數(shù)字的正整數(shù)x,分別輸出

7、每一數(shù)位上的數(shù)字(由高到低分別用b5,b4,b3,b2,b1表示),請將程序補充完整。#include <stdio.h>main() int b1,b2,b3,b4,b5; long int x;Scanf( “ %ld ”,&x);b5= (x/10000)%10 ;b4=(x/1000)%10;b3= (x/100)%10 ;b2=(x/10)%10;b1= (x/1)%10 ; printf(“the number is %ld n”,x); printf(“its bit is:%d,%d,%d,%d,%dn”,b5,b4,b3,b2,b1); 程序分析:int的

8、表示范圍只有-3276832767,并沒有包含所有的五位數(shù),而long int的表示范圍則比int的范圍大了很多,包含了所有的五位數(shù)。而算術(shù)運算符%為取模運算,該運算的結(jié)果是整數(shù)除的余數(shù)。3程序改錯(注意:題中的編號為行序號,并非程序本身)計算任意一個半徑為r的圓的面積和周長(結(jié)果保留兩位小數(shù))(1)#include <stdio.h>(2)main()(3)float r; p=3.14,c,area;(4) printf(“input r:”);(5) scanf(“%f ”, r);(6) c=2p*r;(7) area=p*r*r(8) printf(“c=%-7.2f,a

9、rea=%-7.2f”,c,area);(9)錯誤語句的行號: (3)改正后的語句全行:float r,p,c,area;錯誤語句的行號: (4)改正后的語句全行:p=3.14;錯誤語句的行號: (7)改正后的語句全行:area=p*r*r;錯誤語句的行號: (6)改正后的語句全行:c=2*p*r;改錯分析:實驗二 邏輯運算和判斷選取控制(驗證性實驗 2學(xué)時)(一)、實驗?zāi)康?了解邏輯量在C語言中的表示方法2學(xué)會使用邏輯運算符和邏輯表達式3熟練掌握if語句和switch語句(二)、實驗內(nèi)容1寫出下列程序的運行結(jié)果(1)#include <stdio.h>void main( ) i

10、nt a,b,x=10,y=9;a=(-x = y+)? -x : +y;b= y;printf(“%d,%dn”,a,b);運行結(jié)果及分析:結(jié)果:8,10分析:a=(-x = y+)? -x : +y;所表示的是:若-x=y+,則將x的值賦給a,反之就將+y的值賦給a.而-x的意思為x先減1再用變量x的新值進行表達式計算;而y+的意思為y先進行表達式計算,再加1.(2)#include <stdio.h>void main()int a=2,b=-1,c=2;If(a<b)if(b<0)c=0;else c+=1;printf(“%dn”,c);運行結(jié)果及分析:結(jié)果:

11、2分析:c+=1相當于c=c+1(3)#include <stdio.h>void main( )int a=0,b=0,c=0;if(+a > 0 | +b > 0) +c;printf(“na=%d,b=%d,c=%d”,a,b,c);運行結(jié)果及分析:結(jié)果:a=1,b=0,c=1分析:(+a > 0 | +b > 0)語句中,|是邏輯或運算符,該運算符的關(guān)聯(lián)性為從左到右,因此當|左邊的表達式滿足要求時,右邊的表達式將不再進行計算。 ?(4)#include <stdio.h>void main() int x=-1;switch (x)def

12、ault: printf(“a”); case 1: printf(“b”); case 2: printf(“c”);運行結(jié)果及分析:結(jié)果:abc在case 1:printf(“b”);后加上break;語句,結(jié)果如何?修改程序并上機調(diào)試。運行結(jié)果及分析:結(jié)果:ab2程序填空輸入兩個整數(shù),從用戶處獲取這兩個整數(shù),顯示其中較大的數(shù),在其后跟隨“is larger”。如果這兩個數(shù)相等,顯示“These numbers are equal.”。請在_內(nèi)填入正確內(nèi)容。#include <stdio.h>void main( )int a,b;printf(“please input tw

13、o numbers, a, b! “);scanf(“%d%d”,&a,&b);if( ) printf(“%d is larger”, a );else if(_) printf(“These numbers are equal”);else _ _; 填空:a>b填空:a=b填空:printf(“%d is larger”, b)結(jié)果分析:如果輸入的兩個數(shù)a和b中,a>b,則輸出結(jié)果為:a is larger;如果a=b,則輸出結(jié)果為:These numbers are equal;如果a<b,則輸出結(jié)果為:b is larger.3編寫程序?(1)編寫一

14、個程序,讀入5個整數(shù),然后確定并顯示這組數(shù)中的最大整數(shù)和最小整數(shù)。 程序清單:#include <stdio.h>main() int a, b, c, d, e; printf ("Input five different integers:"); scanf ("%d %d %d %d %d", &a, &b, &c, &d, &e);getch();程序編寫注意事項:(2)編寫程序,讀取一個整數(shù),判斷并顯示出這個整數(shù)是奇數(shù)還是偶數(shù)。(提示:使用求模運算符。偶數(shù)是2的倍數(shù)。任何2的倍數(shù)除以2時,余數(shù)

15、均為零。)程序清單:#include <stdio.h>main() int number; printf ("Enter an integer numbern"); scanf ("%d", &number); if (number % 2=0) printf ("The number is odd number.n"); else printf ("The number is even number.n");getch();程序編寫注意事項:?(3)編寫一個程序,從鍵盤中輸入3個不同的整數(shù),

16、然后顯示這3個整數(shù)的和、平均數(shù)、積、最小數(shù)和最大數(shù)。(用if語句)屏幕中的對話內(nèi)容如下所示:Input three different integers: 13 27 14Sum is 54Average is 18Product is 4914Smallest is 13Largest is 27程序清單:#include <stdio.h>main() int a,b,c; int sum, average, product, smallest, largest; printf ("Input three different integers:"); sca

17、nf ("%d %d %d", &a, &b, &c); if (sum=a+b+c) printf ("Sum is %dn", sum); if (average=sum/3) printf ("Average is %dn", average); if (product=a*b*c) printf ("Product is %dn", product);getch();程序編寫注意事項:實驗三 循環(huán)結(jié)構(gòu)程序設(shè)計(一)(驗證性實驗 2學(xué)時)(一)、實驗?zāi)康?熟悉用while語句、do-w

18、ile語句和for語句實現(xiàn)循環(huán)的方法2掌握在程序設(shè)計中用循環(huán)方法實現(xiàn)的算法(二)、實驗內(nèi)容1寫出下列程序的運行結(jié)果(1)#include <stdio.h>void main()int count=1;while(count<=10)count+;printf(“%sn”,count%2? “*”: “+”);運行結(jié)果及分析:結(jié)果:+ 分析:程序中的語句:count%2? “*”:”+”表示如果 * count%2為真,則輸出*,若count%2為假,則輸出+ + 而count+表示每循環(huán)一次就增加1,直到count的值為10 * 為止。 + * + * + *(2)#inc

19、lude <stdio.h>void main() int row=10,Column; while(row>=1) Column=1;while(Column <=10)printf(“%s”,row%2 ? “<”: “>”); Column+; row-; printf(“n”);運行結(jié)果及分析:結(jié)果:>>>>>>>>>> 分析:當row=10時,Column=1,因此row%2為假,則輸出 <<<<<<<<<< 一個>;然后C

20、olumn增加1,繼續(xù)進行while(Column<=10) >>>>>>>>>> 循環(huán),直到Column=10為止。然后運行到row-,繼續(xù)進 <<<<<<<<<< while(row>=1)的循環(huán),當運行到第二個while循環(huán)時, >>>>>>>>>> 又將進行十次循環(huán)過后再繼續(xù)運行。 <<<<<<<<<< >>>>&

21、gt;>>>>> <<<<<<<<<< >>>>>>>>>> <<<<<<<<<<(3)#include <stdio.h>void main() int y=9;for( ; y>0 ; y-) if(y%3=0) printf("%dn" , -y);運行結(jié)果及分析:結(jié)果: 8 分析: 5 22編寫程序(1)利用循環(huán)語句來顯示如下所示的數(shù)值表:程

22、序清單如下:#include<stdio.h>main() int n=0,number1,number2,number3; printf ("N 10*N 100*N 1000*Nnn"); while(n<10) n+; number1=10*n; number2=100*n; number3=1000*n; printf ("%d %d %d %dn",n,number1,number2,number3); getch();程序編寫注意事項:(2)編寫一程序,能夠輸入一組10個數(shù)字,判斷并顯示出這些數(shù)字中的最大數(shù)。提示:程序中應(yīng)該

23、使用如下的3個變量:Counter:能夠記數(shù)到10的記數(shù)器。Number:當前輸入到程序中的數(shù)字。Largest:迄今為止所發(fā)現(xiàn)的最大數(shù)字。程序清單:#include<stdio.h>main() long int a, b, number, counter=2,largest; printf("Enter one integert:"); scanf ("%ld", &a); b=a; printf ("The largest one is %ldn",b); while (counter<=10) pri

24、ntf("Enter an integer:"); scanf("%ld", &number); if(number >b) largest= number; printf ("The largest one is %ldn", largest); else largest= b; printf ("The largest one is %ldn", largest); b=largest; counter+; getch();程序編寫注意事項:(3)請開發(fā)一個程序來輸入每油箱的行程里程和所用的汽油。

25、能夠計算并顯示出對于每個油箱每加侖汽油的行駛里程。處理輸入信息后,計算并顯示所有油箱每加侖汽油的行駛里程。以下是一個事例的輸入/輸出:程序清單:程序編寫注意事項:(4)編寫一個程序讀入一個5位數(shù),并判斷該整數(shù)是否是回文。(回文指順讀和倒讀都一樣的數(shù)字和文字語句,例:12321,55555。)提示:使用除法運算符和求模運算符把該數(shù)分解成單位個數(shù)。程序清單:#include<stdio.h>main() int a, b, c, d; long int n; scanf("%ld", &n); a=n/10000; b=(n%10000)/1000; c=(

26、n%100)/10; d=n%10; if(a=d && b=c) printf("this %ld is a hui wenn",n); else printf ("this %ld is not a hui wenn",n); getch();程序編寫注意事項:實驗四 循環(huán)結(jié)構(gòu)程序設(shè)計(二)(驗證性實驗 2學(xué)時)(一)、實驗?zāi)康?熟練掌握循環(huán)語句。2較靈活地運用三種不同循環(huán)語句實現(xiàn)循環(huán)程序設(shè)計。3熟練掌握break語句、continue語句及循環(huán)的嵌套使用。(二)、實驗內(nèi)容1 寫出下列程序的運行結(jié)果(1)#include <st

27、dio.h>void main() int i,j,k,x=0;for(i=0;i<2;i+) x+;for(j=0;j<3;j+) if(j%2) continue; x+;x+;k=i+j;printf("k=%d,x=%dn" , k , x);運行結(jié)果及分析:結(jié)果為: 。分析:程序中continue語句表示控制權(quán)直接跳轉(zhuǎn)到測試條件,使循環(huán)繼續(xù)下一次循環(huán),跳過其后的全部語句。(2)#include <stdio.h> void main() int x,y;for(y=1,x=1;y<=50;y+) if(x>=10) bre

28、ak;if(x%2=1) x+=5; continue;x-=3; printf(“x=%d,y=%dn”,x,y); 運行結(jié)果及分析:結(jié)果為:x=10,y=6分析:程序中,語句if(x>=10) break;表示當x>=10時,跳出循環(huán),語句if(x%2=1) x+=5; continue;,表示當x%2為真時,繼續(xù)循環(huán)。(3)#include <stdio.h>void main()  int  i , j , sum; for(i=1;i<6;i+)  sum=0;for(j=1;j<=4;j+)sum

29、+=j; printf(“sum=%dn”, sum); 運行結(jié)果及結(jié)果:結(jié)果為:sum=10分析:程序中,有兩個循環(huán),外循環(huán)和內(nèi)循環(huán)。外循環(huán)循環(huán)一次,內(nèi)循環(huán)就循環(huán)四次,每次循環(huán)結(jié)束,sum的值為10。(4) #include <stdio.h>void main ( ) int k = 0 , m = 0 , i , j; for( i = 0 ; i < 2 ; i+) for ( j = 0 ; j < 3 ; j+) k+; k -= j; m = i + j; printf("k=%d,m=%dn",k,m);運行結(jié)果及結(jié)果:結(jié)果為:k=0

30、,m=52 程序填空(1)下面程序的功能是:輸出100以內(nèi)同時能被3和7整除的所有整數(shù),請?zhí)羁铡?include <stdio.h>void main() int i, j; for ( i=1;_; i+ ) if (_) continue;printf ( "%dt",i );填空:i<100填空:i/3 && i/7程序分析:程序中的for循環(huán)限制數(shù)的范圍,if語句中表示條件。Continue表示結(jié)束if語句,繼續(xù)for循環(huán)。(2)判斷m是否素數(shù)#include <stdio.h>void main() int m,i,k

31、; scanf(“%d”,&m); for(i=2;i<m;i+) if(_m/i=o_) break; if(i>=m)printf(“%d是一個素數(shù)n”,m); else printf(“%d不是一個素數(shù)n”,m);填空并運行分析:3 編寫程序(1)編寫一個程序,能夠找出幾個整數(shù)中最小的整數(shù)。假定程序讀取的第一個值是余下數(shù)值的數(shù)目。程序清單:程序編寫注意事項:?(2)編寫一個程序顯示出如下菱形圖案??梢允褂胮rintf語句來顯示一個(*)和一個空格,盡量多使用循環(huán)語句(嵌套的for語句),盡量少用printf語句。程序清單:#include<stdio.h>

32、 void main() int i,j,k; for (i=1;i<=4;i+) for(j=1;j<=4-i;j+) printf(" ");for(k=1;k<=2*i-1;k+) printf("*"); printf("n"); for(i=1;i<=3;i+) for(j=1;j<=i;j+) printf(" ");for(k=1;k<=7-2*i;k+) printf("*"); printf("n"); getch();程

33、序編寫注意事項:(3)輸入從19941999這個范圍內(nèi)的年份,并使用for循環(huán)語句來生成一個簡潔的日歷。注意閏年的情形。程序清單:程序編寫注意事項:實驗五 函數(shù)(驗證性實驗、綜合性實驗 2學(xué)時)(一)、實驗?zāi)康?掌握定義函數(shù)的方法2學(xué)會利用函數(shù)的相關(guān)概念解決問題3學(xué)會使用函數(shù)的方法設(shè)計程序(二)、實驗內(nèi)容1寫出下列程序的運行結(jié)果(1)#include “stdio.h”f(int x, int y);void main() int a=1,b=2;f(a,b);printf(“%d,%dn”,a,b);f(int x,int y)x=x+1;y=y+1;運行結(jié)果及分析:結(jié)果:1,2分析:程序中

34、,雖然運行了自定義函數(shù),但在自定義函數(shù)中,并沒有返回任何值,所以在main函數(shù)中,就只是運行了自定義函數(shù),而a,b的值并沒有變。(2) #include <stdio.h>fun(int a);void main() int a=3; fun(a); printf("%dn",a);fun(int a) a=a+3; printf("%d,",a);運行結(jié)果及分析:結(jié)果:6 3分析:程序中,運行到自定義函數(shù)時,輸出6.但自定義函數(shù)中并沒有要求返回a的值,所以在main 函數(shù)中a的值沒有變。(3)#include <stdio.h>

35、int fun(int x) static int a=3; a=a+x; return a; void main() int k=2,m=1,n; n=fun(k); n=fun(m); printf(“%dn”,n); 運行結(jié)果及分析:結(jié)果:6分析:程序中,自定義函數(shù)fun在main函數(shù)中運行了兩次,第一次運行fun(k),然后返回a的值為5,然后再進行第二次,則返回值為6,即將6賦給n,最后在輸出n的值。? (4) #include <stdio.h>float fac(int n) float f; if(n<0)printf(“error!”); else if(n

36、=0|n=1) f=1; else f=fac(n-1)*n; return(f); void main() int n=4; float y; y=fac(n); printf(“%d!=%fn”,n,y); 運行結(jié)果及結(jié)果分析:結(jié)果:4!=24.000000分析:2. 程序填空(1) 通過調(diào)用函數(shù)求a+b的和。 #include <stdio.h>float add(float x,float y);void main() float add(float x,float y); float a,b,c; scanf(“%f,%f”,&a,&b); c=add(a

37、,b); printf(“%f”,c);float add(float x,float y) float z; z=x+y; return z;填空并運行分析:分析:程序中自定義函數(shù)add(float x,float y)表示將x,y的值相加再賦給z,最后返回z的值,(2)從鍵盤輸入任意一個數(shù),用函數(shù)計算它的階乘#include <stdio.h>long int f(int a)long int i,t=1; for(i=1;i<=a;i+) t=t*i;return_t_;void main() long int x;scanf(“%ld”,&x);printf(

38、“%ld”,f(x);填空并運行分析:分析:程序中,自定義函數(shù)用來計算階乘,在自定義函數(shù)中,i用來限制程序進行乘法運算的次數(shù),for循環(huán)每循環(huán)一次i就增加1,即讓t進行階乘運算。3編寫程序(1) 編寫函數(shù)floor,把值四舍五入為最近的整數(shù)。語句:y = floor(x) ;將把x 四舍五入為最近的整數(shù),并存如 y 。要求讀取幾個整數(shù),并使用前面的語句把每個數(shù)字四舍五入為最近的整數(shù)。對于程序中處理的每個整數(shù),顯示出原始數(shù)字和四舍五入后的數(shù)字。程序清單:#include "stdio.h"int floor(float a) int b; b=a+0.5; return (b

39、);main() float x; int y; printf("Input a number:n"); scanf("%f",&x); y=floor(x); printf("The original number is %f and final number is %d",x,y); getch();程序編寫注意事項:(2) 實現(xiàn)下列每個整型函數(shù)。a)函數(shù) Celsius 返回與華氏溫度等價的攝氏溫度。 b)函數(shù) Fahrenheit 返回與攝氏溫度等價的華氏溫度。 c)使用這兩個函數(shù)編寫程序,使其顯示一些圖表,圖表中顯示

40、從0度 100度之間的所有攝氏溫度的華氏溫度等價值,以及從32度 212 度之間的所有華氏溫度的攝氏溫度等價值。按照見解的表格形式來顯示輸出結(jié)果,在保留可讀性的同時使輸出的行數(shù)最小。程序清單:程序編寫注意事項:實驗六 數(shù)組(一)(驗證性實驗 2學(xué)時)(一)、實驗?zāi)康?掌握一維數(shù)組的定義,賦值和輸入輸出的方法。2掌握二維數(shù)組有關(guān)的定義,賦值和輸入輸出的方法。3掌握與數(shù)組有關(guān)的非數(shù)值計算方法。(二)、實驗內(nèi)容1.寫出下列程序的運行結(jié)果。(1) #include <stdio.h>void main()int a3=1,2;int i,j;for(i=0;i<3;i+)for(j=

41、0;j<3;j+)ai=aj+1;printf("n%d",ai);運行結(jié)果及分析:結(jié)果: 分析:不明白結(jié)果中的最后一組2 2 3的由來,我算 2 出來結(jié)果應(yīng)該還是和上面的兩組一樣。 3 1 2 3 1 2 2 3 (2)#include <stdio.h>#define N 20fun(int a,int n,int m)int i,j;for(i=m;i>=n;i-)ai+1=ai;void main()int i,aN=1,2,3,4,5,6,7,8,9,10;fun(a,2,9);for(i=0;i<5;i+)printf("

42、%d,",ai);運行結(jié)果及分析:結(jié)果:1 ,2 ,3 ,3 ,4(3)#include <stdio.h>void swap1(int c)int t;t=c0;c0=c1;c1=t;void swap2(int c0,int c1)int t;t=c0;c0=c1;c1=t;void main( ) int a2=3,5,b2=3,5;swap1(a) ;swap2(b0,b1);printf("%5d %5d %5d %5d ",a0,a1,b0,b1);運行結(jié)果及分析:結(jié)果: 5 3 3 52.程序填空(1)將Fibonacci數(shù)列前15項放入

43、一個一維數(shù)組中(fib0=1,fib1=1),并計算其中奇數(shù)之和。#include <stdio.h>void main() int fib15,i,s=0;fib0=1;fib1=1;for(i=2;i<15;i+) ;for(i=0;i<15;i+)if( )s=s+fibi;printf("%dn",s);填空:fibi=fibi-1+fibi-2填空:i % 2 != 0程序分析:因為在本題中,F(xiàn)ibonacci數(shù)列從第三項開始,每項的值等于前兩項的和。程序中第一個for循環(huán)就是計算數(shù)列前十五項的值;第二個for循環(huán)則計算其中奇數(shù)之和。(2)

44、給出以下形式數(shù)據(jù),計算各行之和,并存入一個一維數(shù)組中。#include <stdio.h>void main()int a33=1,2,4,6,1,5,8,0,0,b3=0;int i,j;for(i=0;i<3;i+)for(j=0;j<3;j+) ;for(i=0;i<3;i+)printf("%6d", );填空:bi=bi+aij填空:bi程序分析:3. 編寫程序(1)已知數(shù)組a10=3,7,6,5,4,1,2,9,9,7,計算數(shù)組下標為奇數(shù)的元素之和。程序清單:#include "stdio.h"main() in

45、t a10=3,7,6,5,4,1,2,9,9,7; int i,b=0; for(i=0;i<10;i+) if(i%2=0) b+=ai; printf("The sum is %d",b); getch();程序編寫注意事項:(2)使用數(shù)組解決下列問題。公司在對銷售人員支付傭金。銷售人員每個星期收到$200,以及那個星期他們總銷售額的9%。例如,在某個星期中銷售額為$3000的銷售人員收到$200以及$3000的9%,也就是$470。編寫一個程序(使用計數(shù)器數(shù)組),確定銷售人員在下列范圍內(nèi)可以賺取的收入(假定每個銷售人員的工資將截斷為整數(shù)):a) $200 -$

46、299b) $300 -$399c) $400 -$499d) $500 -$599e) $600 -$699f) $700 -$799g) $800 -$899h) $900 -$999i) $1000 以及$1000以上程序清單:程序編寫注意事項:(3)使用二維數(shù)組來解決下列問題。公司與4個銷售人員(1 4),他們銷售5種不同的產(chǎn)品 (1 5)。每天,每個銷售人員為銷售的每種不同產(chǎn)品上交報告。每份報告包括:a) 銷售人員編號。b) 產(chǎn)品編號。c) 當天每種產(chǎn)品的總銷售額。因此,每個銷售人員每天上交05份銷售報告。假設(shè)已經(jīng)知道上個月所有報告的信息。編寫一個程序讀取所有這些信息,以得到上個月的

47、銷售額,并對銷售人員按產(chǎn)品來計算總銷售額。所有總和必須存儲在二維數(shù)組sales中。在處理了上個月的所有信息之后,以列表形式輸出結(jié)果,其中列代表特定的銷售人員,而行代表特定的產(chǎn)品。計算每行的總和,以得到上個月每個銷售人員的銷售總額。輸出結(jié)果應(yīng)該在每行的右邊顯示產(chǎn)品銷售總和,在每列的底部顯示個人銷售總和。程序清單:程序編寫注意事項:實驗七 數(shù)組(二)(驗證性實驗 2學(xué)時)(一)、實驗?zāi)康? 掌握字符數(shù)組的定義、賦值和引用2 字符串函數(shù)的使用。(二)、預(yù)習內(nèi)容1預(yù)習數(shù)組的定義、賦值及輸入輸出方法,以及典型的算法。2熟練循環(huán)語句與數(shù)組處理語句結(jié)合的方法。(三)、實驗內(nèi)容1 寫出下列程序的運行結(jié)果(1)

48、#include <stdio.h>void main()char a10= "abcdefg",b ="abcdefg"a3=0;b3=0; printf("%d,%d",sizeof(a),strlen(a);printf("%d,%d",sizeof(b),strlen(b);運行結(jié)果及分析:結(jié)果:10,38,3分析:sizeof運算符,當用于一個操作數(shù)時,將返回該操作數(shù)所占有的字節(jié)數(shù),而0字符也占有一個字節(jié)數(shù),所以輸出的sizeof(a)的值為10;而strlen ()函數(shù)在遇到第一個空字符后,

49、計算就終止。 不明白結(jié)果中38的由來(2)#include <stdio.h>void main()char ch25="6937","8254"int i,j,s=0;for(i=0;i<2;i+) 6 9 3 7for(j=0;chij>'0'&&chij<='9'j+=2) 8 2 5 4s=10*s+chij-'0'printf("%dn",s);運行結(jié)果及分析:結(jié)果:6385分析:程序中定義的是一個二行四列數(shù)組,for循環(huán)中每循環(huán)一次j就增加2。該程序顯示的是數(shù)組中每行偶數(shù)列的數(shù)。(3)下列程序的輸出結(jié)果是:#include <stdio.h>void main( )char p120="abcd",p220="ABCD",str50="xyz"strcpy(str+2,strcat(p1+2,p2+1);printf("%s",str);運行結(jié)果及分析:結(jié)果:xycdBCD2 程序填空(1)將一個字符串按逆序重新存放,并輸出。#include &

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論