C程序設計實驗報告_第1頁
C程序設計實驗報告_第2頁
C程序設計實驗報告_第3頁
C程序設計實驗報告_第4頁
免費預覽已結束,剩余58頁可下載查看

下載本文檔

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

文檔簡介

安微建筑工業(yè)學院現(xiàn)代教育技術中心實驗報告課程名稱: c程序設計指導教師: 專業(yè): 班級: 姓名: 學號: 200至200 學年第 學期

實驗ーC程序運行環(huán)境、數(shù)據(jù)類型、運算符和表達式實驗地點:第機房 實驗時間: 年月日1.掌握TurboC集成環(huán)境的進入與退出、TurboC集成環(huán)境各種窗口的切換,了解TurboC集成環(huán)境的設置。2.掌握C語言源程序的建立、編輯、修改、保存及編譯和運行等操作。3.掌握C語言數(shù)據(jù)類型,熟悉如何定義ー個整型、字符型和實型變量,掌握對這些變量賦值等使用的方法,知道輸出時格式字符的使用。4.學會使用C語言的基本運算符(主要是算術運算符、賦值運算符)及其表達式,特別是自加運算符(++)和自減運算符(-)的使用。5.掌握C語言源程序的結構特點與書寫規(guī)范。1.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。2.第5題按照題H的要求編寫出程序。3.對每個程序認真進行語法檢查與邏輯檢查。4.上機調試程序。按各個程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。5.詳細記錄數(shù)據(jù)的輸入、輸岀信息,按要求寫出實驗報告。1.開機;進入TurboC集成工作環(huán)境,了解TurboC集成工作環(huán)境及其菜單的使用,輸入如實下C語言源程序,并以exl.C存盤。驗#include<stdio.h>main()內(容printf(MThisisCprogram!");/?輸出字符串/)與編譯、連接、運行該程序,并按Alt+F5查看運行結果。過運行結果是:程注意:要熟悉Turboc2.0的編譯、連接、運行、保存、裝載文件的命令及其快捷鍵2.輸入并調試以下程序,查看運行結果(由此結果可以了解到在實驗用的微型機上,幾種數(shù)結據(jù)類型所占的字節(jié)數(shù))。main()果(printf("char\t%dbytes\n",sizeof(char));printf("short\t%dbytes\n",sizeof(short)); 運行結果是:分printf("int\t%dbytes\n",sizeof(int));析printf("long\t%dbytes\n",sizeof(long));printf("float\t%dbytes\n",sizeof(float));printf("double\t%dbytes\n",sizeof(double));)

3.輸入并調試以下程序:main(){inti,j,m,n;i=8y=10;m=++i;n=j++;實驗printf("%d,%d,%d,%d",i,j,m,n);)分別作以下改動后再運行,并觀察比較運行結果:內容與過①將第4行改為:m=i++;n=++j;運行結果是:②程序改為:程main(){inti,j;ヽi=8;j=10;結printf("%d,%d”,i++,j++);)果運行結果是:>分析③在②的基礎上,將printf語句改為:printf(n%d,%d,%d,%d';i,j4++,j++);運行結果是:④將printf語句改為:printf("%d,%d,%d,%d”,i,j,++i,++j);運行結果是:4.試分析下面程序的運行結果,并回答下面的問題。#include<stdio.h>main(){inti=3,k;printf(M%d,%d\nM,(i++)+(i++)+(i++),i);i=3;printf("%d,%d\n",i,++i+(++i)+(++i));i=3;k=(i++)+(i++)+(i++);printf("%d,%d\n",k,i);)運行結果是:在該題中,若把程序中所有(i++)及(++i)的括號去掉,則編譯過程及運行結果有無變化?答:過程ヽ結果25.編程ヽ結果main(){floata,b,c;intx;a=365;b=7;c=a/b;x=(int)a%(int)b;printf("%.2f, %d\n”,c,x);

實驗內容與過程ヽ結果分析教師評閱成績: 教師簽名:年月日

實驗二最簡單的C程序設計實驗地點:第機房 實驗時間: 年月日1.掌握C語言中賦值表達式和賦值語句的使用。2.正確理解、選擇輸入格式字符所控制的數(shù)據(jù)對象、數(shù)據(jù)輸入(輸出)形式和方法。3.掌握輸出函數(shù)printf()和putchar。的用法,能正確使用各種輸出格式。4.掌握輸入函數(shù)scanf()和getchar()的用法,能正確使用各種輸入格式。1.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。5兩題按照題目的要求編寫出程序。.對每個程序認真進行語法檢查與邏輯檢查。.上機調試程序。按各個程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實1.輸入并運行以下程序:#include<stdio.h>驗main(){inta;內floatb,c;scanfC%2d%3f%*2d%4f",&a,&b,&c);容printf("\na=%d,b=%f,c=%f\n",a,b,c);}與運行時從健盤上輸入9876543210/則程序運行結果是:過程ヽ結2.輸入并運行以下程序:#include<stdio.h>main(){intc;chard;c=66;d=,B,;putchar(c);putchar(d);putchar(B);putchar(66);果ヽ)分程序運行結果是:析將以上程序作如下修改:

①將程序中兩個賦值語句改寫:c=65;d=A;②將程序最后兩個字符輸出函數(shù)改寫:putchar('A');putchar(65);則程序運行結果是:3.輸入并運行以下程序:#include<stdio.h>實voidmain(){inta=-l;longb=-1;floatf=123.456;charc-a*;驗printf(,,a=%d,a=%o,a=%x,a=%u\n,',a,a,a,a);printf("b=%ld,b=%lo,b=%lx,b=%lu\n",b,b,b,b);內printf(,'f=%f,f=%7.2f,f=%-7.2f\nf=%e,f=%g\n,',f,f,f,f,f);printf(Mc=%c,c=%3c,c=%-3c,c=%d,c=%c\n',,c,c,c,'a,,65);容printf(Ms1=%s,s2=%7.3s,s3=%-7.3s\n,V,12345"JABCD”J123450);)與程序運行結果是:ヽ4.編程,要求從鍵盤輸入數(shù)據(jù),使整型變量a=10,b=8;字符型變量cl='A;c2=,a':實型變量結x=3.1,y=64.54o并按規(guī)定格式輸出變量的值。要求輸出格式如ド:inta=10,b=8果charcl=A,c2=afloatx=3.1,y=64.545.編程,要求從鍵盤輸入ー個字符,算出它的左鄰字符和右鄰字符,并按ASCII碼值,從分大到小輸出3個字符及其對應的ASCI!碼值。析/*4.?/main(){inta,b;charcl,c2;floatx,y;scanf("刎%d",&a,&b);scanf("%c%c",&cl,&c2);scanf("%f%f”,&x,&y);printf("inta=%d,b=%d\n",a,b);printf("charcl=%c,c2=%c\n",cl,c2);實驗內容與過程實驗內容與過程printf(Afloatx=%.1f,y=%.2f”,x,y);/*5.?/^include"stdio.h"main(){charcl,c2,c3;c2=getchar();cl=c2-l;c3=c2+l;printf(*%c,%d;%c,%d;%c,%d\n*,c3,c3,c2,c2,cl,cl);實驗內容與過程ヽ結果ヽ分析教師評成績: 教師簽名:閱年月日

實驗三選擇結構程序設計實驗地點:第機房 實驗時間: 年月日實驗目的.掌握C語言表示邏輯量的方法(以〇代表"假”,非〇代表“真")。.學會正確使用關系運算符、邏輯運算符及關系表達式、邏輯表達式。.熟練掌握各種if語句和switch語句的語法結構和語句功能。.結合程序,掌握選擇結構程序設計的一般方法,能夠用多種方法編寫同一程序。實驗要求1.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。4、5三題按照題目的要求編寫出程序。.對毎個程序認真進行語法檢査與邏輯檢査。.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。驗內容與過程ヽL輸入并調試以下程序:(1)#include<stdio.h>main(){inta,b;printf(HEnteraninteger:");scanf("%d",&a);b=l;if(++a<0)b=-l;elseif(a==O)b=O;printf("a=%d,b=%d\n",a,b);)運行時,若從鍵盤上輸入ー1/則程序運行結果是:結果ヽ分析(2)#include<stdio.h>main(){intal=l0,a2=20,a3=30;charch;ch=getchar();switch(ch){case'A*:a1++;a2++;break;default:a3++;caseB:a2++;a3++;)

printf("%d,%d,%d\n",al,a2,a3);)若從鍵盤上輸入:BACZ則程序運行結果是:實驗內容2.程序填空(完善程序)。以下程序的功能是:從鍵盤輸入三個整型數(shù)據(jù),對這三個數(shù)據(jù)進行從小到大排序,并輸出排序后的數(shù)據(jù)。請在下劃線處填上適當?shù)膬热?,以完成該程序的功能?include<stdio.h>main(){intx,y,z,i;scanf("%d,%d,%d",&x,&y,&z);if( ){i=x;x=y;y=i;}與過程ヽif( ){i=x;x=z;z=i;}if( ){i=y;y=z;z=i;}printf("%d,%d,%d\n",x,y,z);)3.給出ー個百分制成績,要求輸出成績等級A、B、C、D、E。90分以上為A,80?89分為B,70?79分為C,60?69分為D,60分以下為E。要求:用鍵盤輸入百分制成績,并判斷輸入數(shù)據(jù)的合理性,對于不合理的數(shù)據(jù)給出錯誤信息。用switch語句編寫該程序。結果4.編程,計算下列分段函數(shù)值:2x-e2 (x>0)y=\3x2-2 (x<0)分析75 (x=0)5.給出ー個小于1000正整數(shù),編程求該數(shù)是幾位數(shù),并按逆序打印出各位上的數(shù)字。例如原數(shù)為321,則輸出123。/*3.*/^include"stdio.h"main()(intscore;printf(*PleaseInputscore:");scanf("/a,&score);if(score>100score<=0){printf<InputError'n");

getcharO;getchar();return;實}switch(score/10)驗{case10:case9:putchar(*A1);break;case8:putchar('B');break;內case7:putchar(*C1);break;case6:putchar('D');break;容default:putcharCE');)與}/*4.*/過^include"math,h"main()程{floatx,y;scanf("%f",&x);if(x>0)y=2*x-exp(2);ヽelseif(x<0)y=3*x*x-2;結elsey=sqrt(5);printfCx=%f,y=%f\n",x,y);果}/*5*/^include"stdio.h"ヽmain()分{inta,gw=0,sw=0,bw=0,bit;clrscr();析scanf("%d",&a);if(a>=1000||a<=0){printf("InputError\n");getchar(),getchar();return;}if(a>=100)bw=a/100,sw=a%100/10,gw二a%10,bit=3;elseif(a>=10)sw=a/10,gw=a%10,bit=2;elsegw二a,bit=l;a>=100?printf(^bit=%d,%d%d%d\n",bit,gw,sw,bw):a>=10?printf("bit=%d,%d%d\n",bit,gw,sw):printf("bit二%d, %d\n",bit,gw);}

實驗內容與過程ヽ結果ヽ分析教師評閱成績: 教師簽名:年月日

實驗四循環(huán)結構程序設計⑴實驗地點:第機房 實驗時間: 年月日實驗目的.理解循環(huán)的概念,熟悉和掌握while語句,do-while語句和for語句實現(xiàn)循環(huán)的方法。.掌握窮舉算法、迭代算法、遞推算法等ー些常用算法的程序設計方法。.理解并掌握break語句和continue語句的語句功能。.能正確使用這些語句進行筒単程序設計。實驗要求.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。.3-6題按照題目的要求編寫出程序,注意總結各題的編程思路。.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實驗內.輸入并調試以下程序:#include<stdio.h>main(){inti=0;while(i++<3)printf(M%d\nM,i);} 運行結果是:容與過程ヽ結(2)#include<stdio.h>main(){inti;for(i=l;i<5;i++){if(i%2)printf(H*n);elsecontinue;printf("%”);)printf(M@");} 運行結果是:果ヽ分析2.程序填空(完善程序)。下面程序的功能是求1000以內的所有完全數(shù),請?zhí)羁眨ㄕf明:ー個數(shù)如果恰好等于它的因子(自身除外)之和,則稱該數(shù)為完全數(shù),如6=1+2+3,則6是完全數(shù))。請在下劃線處填上適當?shù)膬热?,以完成該程序的功能?include<stdio.h>main(){inti,sum,k=2;

do{i=l;sum=0;do{if(k%i==O) i++;}while(i<=k/2);if(sum==k)printf("%d\n", );k++;實)while( ):驗}內3.編程,找出1?1000之間的全部“同構數(shù)’所謂“同構數(shù)”是指這樣的數(shù):它出現(xiàn)在它的平方數(shù)的右端。如:6的平方是36,6出現(xiàn)在36的右端,6就是一個同構數(shù)。容4.編程,輸出由1,2,3,4四個數(shù)字組成的4位數(shù),并統(tǒng)計其個數(shù)(不允許該4位數(shù)中有相與同的數(shù)字,例如:1111,1122,1212等都不是所求的數(shù))。過5.編程,用公式n/4七1ー丄+丄ー丄+…求n的近似值,當某項絕對值小于時計算結束。357程6.輸入兩個正整數(shù),編程求它們的最大公約數(shù)和最小公倍數(shù)。/*3*/ヽmain()結(longp,i,k;果for(i=1;i<l000;i++){p=i*i;k=p-i;ヽif(i<10&&k%10==0)printf(H%ld,%ld\nM,p,i);分elseif(i<100&&k%100==0)printf(M%ld,%ld\nn,p,i);elseif(i<1000&&k%1OOO==O)printf(H%ld,%ld\n”,p,i);析)}說明:i也必須定義為longint或main()(longp,i,k;for(i=l;i<1000;i++){P=i*i;

if(p%1O==illp%1OO==illp%1000=i)printf("%ld%ld",p,i);))說明:可以將if(p%10==illp%100==illp%1000==i)改寫成if(p%1000=illp%10=illp%100=i)但不能改寫成if((p-i)%10==0ll(p-i)%100==0ll(p-i)%1000==0)例如:75,75*75=5625不能滿足第一個條件但能滿足第二個條件。7*4/實main()驗inti,j,k,1,p,total=0;clrscr();內for(i=l;i<=4;i++)for(j=l;j<=4;j++)容for(k=l;k<=4;k++)for(l=l;l〈=4;l++)與{p=(i!=j&&i!=k&&i!=l)&&(j!=k&&j!=!)&&(k!=l);if(p)過(if(total%6=0)printf('\n");程printf("z%d%d%d%d”,i,j,k,1),total++;)ヽ)printf("total=%d",total);結}/*5*/果mainO{floatpi=l,sign=l,term;longi=l;ヽterm=l./(2*i+l);分while(term>=le-6){sign=~sign;析pi+=sign*term;i++;term=l./(2*i+l);}printf("i=%ld,%e\n",i,term);pi?二4;printf("%f\n",pi);)

/*6*/main(){inta,b,r,gcd,ps,x,y;printf(*Inputa,b:\n");scanfC%d, &b);while(a<=0b<=0){printf(inputerrorretry\nscanf("%d,%d",&a,&b);實}x=a,y=b;驗r=a%b;while(r!=0)內{a=b;b=r;容r=a%b;}與gcd=b;ps=x/gcd*y; /?應先除再乘例子625325*/過printf("a=%db=%d\n”,x,y);printf("gcd二%dps二%d\n,gcd,ps);程)或main()ヽ{longa,b,p,t;結printf("PleaseInputab:\n");scanf("%ld%ld",&a,&b);果if(a<b)t=a;elseLb;printf("a=%ld,b=%ld\n",a,b);p=a*b;while(a%t!=0b%t!=O)t—;分p=p/t;printf("highestcommondivisor=%-81d,leastcommonmultiple=%-81d\n”,t,p);析}驗內容與過程結果分析實驗內容與過程ヽ結果ヽ分析教師評閱成績: 教師簽名:年月日

實驗五循環(huán)結構程序設計⑵實驗地點:第機房 實驗時間: 年月日1.理解循環(huán)的概念,熟悉和掌握while語句,do-while語句和for語句實現(xiàn)循環(huán)的方法。2.掌握窮舉算法、迭代算法、遞推算法等ー些常用算法的程序設計方法。3.理解并掌握break語句和continue語句的語句功能。4.能正確使用這些語句進行筒単程序設計。.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。.3-6題按照題目的要求編寫出程序,注意總結各題的編程思路。3.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。4.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實1.輸入并調試以下程序:(1)main()驗{inti,j;for(j=10;j<U;j++)內{for(i=9;i<j;i++)if(!(j%i))break;容if(i>=j-1)printf(*\n%d\n*,j);}與} 運行結果是:過(2)^include"stdio.h"main()程{intc;while((c=getchar())!=,\n*)switch(c-*2*)ヽ{case1:putchar(c+2);結case2:putchar(c+2);break;case3:putchar(c+1);果default:putchar(c+2);break;)putchar('\n');ヽ} 運行程序輸入567/輸出結果是:分(3)下面的程序段的循環(huán)部分最多可循環(huán)多少次,最少呢?析inti,x;for(i=0,x=0;i<=9&&x!=876;i++)

scanf&x);最多: 次 最少: 次2.程序填空(完善程序)。下面程序為計算滿足下列不等式所需級數(shù)的最小項n及部分和sum:1+1/2+1/3+ +l/n>limit#include<stdio.h>實main(){intn=0;驗floatsum, ;sum= ;內scanf(H%f,,&limit);do容{n+ ;sum+= n;與}while(sum<=limit);printf(Hn=%d\tsum=%f\nM,n,sum);過)程3.輸入一行字符,編程統(tǒng)計并輸出其中的大寫英文字母和數(shù)字的個數(shù)。ヽ4.編程,打印以下圖形:結****果***************分***析.編程,打印出1000以內的所有水仙花數(shù)(所謂水仙花數(shù)是指一個三位正整數(shù),其各位數(shù)字的立方和等于該數(shù)本身,例如:407=4*4*4+0*0*0+7*7*7,則407是ー個水仙花數(shù))。10.編程,求s=、〃!=1!+2!++10!“=1/*3*/ttinclude"stdio.h"實驗內容與過程實驗內容與過程結果分析mainO{charstr;intletter=O,digit=O;while((str二getchar())!='\n'){if(str>=,A'&&str<=,Z')letter++;elseif(str>二’〇’&&strくニ’9')digit++;)printf("letter=%-8d,digit=%-8d\n",letter,digit);/*4*/ttinclude"stdio.h/zmain(){charstrl二'',str2二'*';inti,j,k;clrscr();for(i=l;i<=5;i++){for(j=5-i;j>=l;j—)putchar(strl);for(j=l;j<=2*i-l;j++)putchar(str2);putchar('\n);)for(i=4;i>=l;iーー){for(j=5-i;j>=l;j)putchar(strl);for(j=l;j<=2*i-l;j++)putchar(str2);putchar('\n');}}說明:為了實現(xiàn)將圖形放在屏幕的靠中位置顯示,可將れバ尸5一七”二1ゴー)的5改為10或更大一些。/*5*/mainO{intx,bw,sw,gw;clrscr();for(x=100;xく=999;x++){bw=x/100;sw=x%100/10;gw=x%10;if(bw*bw*bw+sw*sw*sw+gw*gw*gw==x)printf(z%5d,%5d,%5d二%5d\n",bw*bw*bw,sw*sw*sw,gw*gw*gw,x);內容與過程內容與過程結果分或mainO{inti,j,k;clrscr();for(i=l;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)printf("%d%d%d”,i,j,k);/*6/mainO{longi,sum,j=l;for(i=l,sum=0;i<=10;i++){j=j*i;sum=sum+j;)printf("sum=%ld\n”,sum);)或mainO{longi,sum,j,k;for(i=l,sum=0;i<=10;i++){j=l;for(k=2;k<=i;k++)j*=k;sum=sum+j;)printf("sum=%ld\n",sum);驗內容與過程結果分析實驗內容與過程ヽ結果ヽ分析教師評閱成績: 教師簽名:年月日

實驗六數(shù)組(1)實驗地點:第機房實驗時間: 年月日實驗地點:第機房實驗目的.理解數(shù)組的概念,掌握ー維數(shù)組和二維數(shù)組的定義、存儲結構、賦值和輸入輸出的方法。.理解字符串的概念,掌握字符數(shù)組和字符串函數(shù)的使用。.掌握常用的與數(shù)組有關的算法,如排序、查找、求極值等。.能夠用數(shù)組的方法,編寫ー些簡單程序。實驗要求1.根據(jù)題目要求,先人工計算然后再進行程序測試與驗證,并記錄結果。2.4-7題按照題目的要求編寫出程序,注意總結各題的編程思路。.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實驗內容與過程ヽ結果ヽ分析.輸入并調試以下程序:#include<stdio.h>main(){inta[3],ij;for(i=0;i<=2;i++)a[iJ=O;for(i=0;i<=2;i++)for(j=0;j<2;j++)a[j]=a[i]+j;printf("%d,%d,%d\n",a[O],a[1],a[j-1]);} 運行結果是:#include<stdio.h>main(){inti,j,h,k,m;staticintx[3][3]={{3,7,1},{5,7,2},{4,9,1}};m=x[O][O];h=O;k=O;for(i=0;i<3;i++)for(j=0;j<3;j++)if(x[i]|j]<m){m=x[i]|j];h=i;k=j;}printf("%d,%d,%d\n",m,h,k);} 運行結果是:.程序填空(完善程序)。下面程序功能是將兩個有序(由小到大排列)數(shù)組中的數(shù)據(jù)合并到ー個數(shù)組中,要求合并后的數(shù)組實驗內容與過程實驗內容與過程ヽ結果依然是由小到大順序排列,最后輸出排序后數(shù)組內容。數(shù)組中以數(shù)據(jù)。表示數(shù)據(jù)的結束。清在下劃線處填上適當?shù)膬热?以完成該程序的功能。#include<stdio.h>main(){inta[10]={1,3,5,7,9,12,0);intb[10]={2,4,7,8,10,14,18,0);inti,j,k,c[20];i=j=k=0;while((a[i]!=0)&&(b[jJ!=0)){if(a[i]<bU]){c[k]=;i++;}else{c[k]=;j++;)if(a[i]==0)while(b[j]!=0)c[k++]=b[j++];if(b[j]=0)while(a[i]!=0)c[k++]=a[i++];c[k]=0;for(i=0;i<k;i++)printf(,,%4d,,,c[i]);.輸入下面程序,說明程序的功能,并分析程序結果。#include<stdio.h>main(){inti,j;floatx[4][4],y[4][4],a;for(i=0;i<=3;i++)for(j=0;jv=3;j++){scanf(**%f,,&a);xli]|jj=a;}for(i=0;i<=3;i++){printf(M\nM);for(j=0;j<=3;j++)printf("%4.心[i皿);}printf(,'\nH);for(i=0;i<4;i++)for(j=0;j<4j++)y[j][i]=x[i][j];for(i=0;i<=3;i++){printf("\n");for(j=0;j<=3;j++)printf("%4.1f',y[i][j]);}該程序的功能是:。當輸入 _3.1_4.1_5.1_6.1_7.1_8.1_9.1」.2一2.2一3.2一4.2一5.2一6.2一7.2/(其中一表示空格)運行結果是:.將某班N(N為符號常量)個同學的成績(整型)放入數(shù)組s中,編程求該班的平均成績(實型),并統(tǒng)計各分數(shù)段上的學生人數(shù)。分數(shù)段為:100分,90?99分,80?89分,70?79分,60-69分,60分以下。.從鍵盤輸入10個整數(shù),編程將這些數(shù)按從大到小排序并輸出。.從鍵盤輸入10個有序整數(shù)(假設從小到大)放入數(shù)組a中,另輸入ー個整數(shù)X。用折半查找方法,編程判斷x是否在數(shù)組a中,若在則輸出第一次出現(xiàn)x的位置,否則輸出信息“no”。.從鍵盤上輸入20個字符,編程統(tǒng)計并輸出其中英文字母(不區(qū)分大小寫)、數(shù)字字符(〇?9)和空格的個數(shù)及所占的百分比。/*4*/^defineN10main(){ints[N],i,sum=O;intscopel0=0,scope9=0,scope8=0,scope7=0,scope6=0,scope0=0;floatave;for(i=0;i<N;i++){scanf&s[i]);sum+=s[i];switch(s[i]/10)casecasecasecasecase10:scopelO++;break;casecasecasecasecase10:scopelO++;break;9:scope9++;break;8:scope8++;break;7:scope7++;break;6:scope6++;break;default:scopeO++;}實)ave=(float)sum/N;printf("ave=%f\n”,ave);驗printf(*scopel00=%-3d,scope90to99二%-3d,scope80to89=%-3d\n”,scopelO,scope9,score8);printf("scope70to79=%-3d,scope60to69=%-3d,scope0to59=%-3d\n",scope?,scope6,scoreO);內}/*5*/容ttdefineN10mainO與{inta[N],i,j,t,p;for(i=0;i<N;i++)過scanf("%d",&a[i]);for(i=0;i<N-l;i++)程{P=i;for(j=i+l;j<N;j++)if(a[p]<a[j])p=j;t=a[i],a[i]=a[p],a[p]=t;結}for(i=0;i<N;i++)果printf("%4d",a[i]);}/*6*/ヽttdefineN10分main(){inta[N],x,i,j,t,findニ〇;析intlow,top,mid;printf("Pleasinput%dnumber\n",N);for(i二〇;iくN;i++)scanf("%d",&a[i]);clrscr();for(i=0;i<N-l;i++){for(j=0;j<N-l-i;j++)if(a[j]>a[j+l])t=a[j],a[j]=a[j+l],a[j+l]=t;}printf("serachnumberis:");scanf("%d",&x);low二〇;top=NT;mid=(low+top)/2;實驗內容與過程實驗內容與過程ヽ結果ヽ分析while(low<=top){if(a[mid]==x){find=l;break;}elseif(a[mid]>x)top=mid-l;elselow=mid+l;mid=(low+top)/2;)if(find){for(i=0;i<N;i++)if(a[i]==x){printflposition二%d\n,i+1);break;})elseprintf(*Nofind\n");printf('\t\t\tdatalist...\nz");for(i=0;iくN;i++)printf("%4d*,a[i]);}/*7*/ttinclude"stdio.h"main(){charstr[21];inti;intletter=0,digit=0,space=0;clrscrO;gets(str);if(strlen(str)>20){printf("morethan20,error^);getchar();return;}while(strlen(str)!=20){puts(,zInputlessthan20letters,retry"");gets(str);}puts(str);i二〇;while(str[i]!=0)(if(str[i]>=,a*&&str[i]<=,z|||str[i]>=,A1&&str[i]<=,Z*)letter++;elseif(str[i]>=,0*&&str[i]くニ’9')digit++;elseif(str[i]==,')space++;i++;if(letter!=0)printf(*letterhas%doccupancy=%.2f%%\n*,實驗內容與過程實驗內容與過程letter,letter/20.*100);if(digit!=0)printf(,zdigithas%doccupancy=%.2f%%\n”,digit,digit/20.*100);if(space!=0)printf(,zspacehas%doccupancy=%.2f%%\n,x,space,space/20.*100);附:從鍵盤上輸入20個字符,編程統(tǒng)計并輸出其中各個英文字母(不區(qū)分大小寫)、數(shù)字字符(。?9)和空格的個數(shù)及所占的百分比。/?附:*/#include"stdio.h"main(){charstr[21];inti;intletter[26]={0},digit[10]={0},space=0;clrscr();gets(str);if(strlen(str)>20){printf(,zmorethan20,error");getchar();return;}while(strlen(str)!=20){puts(zzInputmorethanorlessthan20letters,retryzz);gets(str);}puts(str); i=0;while(str[i]!=0)if(str[i]>='a'&&str[i]<='z')letter[str[i]-'a']++;elseif(str[i]>=,A'&&str[i]<='Z')letter[str[i]-'A']++;elseif(str[i]>=,0'&&str[i]くニ’9')digit[str[i]-'0,]++;elseif(str|i」二'')space++;i++;

}for(i=0;i<26;i++)if(letter[i]!=O)printfCletter%chas%doccupancy=%.2f%%\n,z,i+'A',letter[i],letter[i]/20.*100);for(i=0;iく10;i++)if(digit[i]!=0)printf(*digit%dhas%doccupancy=%.2f%%\n”,i,digit[i],digit[i]/20.*100);if(space!=0)printf(*spacehas%doccupancy=%.2f%%\n"z,space,space/20.*100)}教師評閱成績: 教師簽名:年月日

實驗七數(shù)組(2)實驗地點:第機房實驗時間: 年月日實驗地點:第機房1.理解數(shù)組的概念,掌握ー維數(shù)組和二維數(shù)組的定義、存儲結構、賦值和輸入輸出的方法。2.理解字符串的概念,掌握字符數(shù)組和字符串函數(shù)的使用。3.掌握常用的與數(shù)組有關的算法,如排序、查找、求極值等。4.能夠用數(shù)組的方法,編寫ー些簡單程序。1.根據(jù)題目要求,先人工計算然后再進行程序測試與驗證,并記錄結果。2.4-7題按照題目的要求編寫出程序,注意總結各題的編程思路。3.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。4.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實驗L輸入并調試以下程序:(1)voidmain(){chars[10]={ta,;b?cV0,,0,'d,};printf(M\n%D\nM,strlen(s));內)運行結果是(原始程序):容運行結果是(微調printf函數(shù)格式串):與(2)二維數(shù)組a的主對角線的值分別是:3,5,7,9,11?定義并初始化數(shù)組a的最簡捷的語句是:過程(3)寫出運行結果:main(){inti,b[6];for(i=l;i<6;i++)結{b[i]=6*(i-l+4*(i>3))%5;果printf("%2d",b[i]);}) 結果是:分析2.程序填空(完善程序)。下面程序功能是將一個整型數(shù)轉化成二進制數(shù),所得的二進制數(shù)的每一位放在ー維數(shù)組中,輸出此二進制數(shù)。#include<stdio.h>

實驗內容與過程ヽ結果ヽ分析main(){intb[16],x,k,r,i;scanf ;printf(*%6d=*,x);k=-l;do{r=x%2;b[ ]=r;x/= ;}while( );for(i=k; )printf(*%d*?b[i]);printf("\n");)3.輸入下面程序,分析程序程序實現(xiàn)的功能。#defineMAX50main(){inta[MAX+l],k,x,i,n;scanf("%d",&n);for(i=l;i<=n;i++)scanf("%d”,&a[i]);scanf(“肌T,&k);scanf("刎",&x);if((k>0)&&(kく=n+1)){for(i=n;i>=k;i~)a[i+l]=a[i];a[k]=x;n=n+l;}for(i=l;i<=n;i++)printf("%3d",a[i]);printf("\n");)該程序的功能是: 〇當輸入?_1_3_5_7_9_11_15_4_88/(其中一表示空格)運行該程序后,能在屏幕上輸出:

.設數(shù)組s[7][12]={"HeFei”,"AnQing”,“FuYang”,“HuaiBei”,“WuHu","MaAnShan”,“HuaiLan”}存放省內部分城市的名稱,編程實現(xiàn)按字典順序重新排列城市名稱在數(shù)組中的位置。.編程,將兩個字符串連接起來(不用strcat函數(shù))。實6.編程,打印楊輝三角的前8行的值:驗111內1211331容14641與7.已知a[4][4]是ー個整型數(shù)組,編程求兩條對角線上的最大元素及所在的位置過/*4選擇法排序?/main()程{inti,j,p;charstr[12];chars[7][12]={"HeFei","AnQing","FuYang","HuaiBei","WuHu","MaAnShan","HuaiLan"};ヽclrscr();結for(i=0;i<6;i++){p=i;果for(j=i+l;j<7;j++)if(strcmp(s[p],s[j])>O)p=j;ヽif(p!=i)strcpy(str,s[i]),strcpy(s[i],s[p]),strcpy(s[p],str);i分Jfor(i=0;iく7;i++)puts(s[i]);析)/*5*/main(){charsi[80],s2[40];inti=0,j=0;gets(sl);gets(s2);while(sl[i]!=0)i++;while(s2[j]!=0)si[i++]=s2[j++];sl[i]='\O';puts(sl);1實J1*6行標從〇開始?/#defineN8驗main(){intyan[N][N];內inti,j,k;clrscr();容for(i=O;i<N;i++){yan[i][0]=l;與yan[i][i]=l;}過for(i=2;i<N;i++)for(j=l;j<i;j++)程yan[i][j]=yan[i-l][j-l]+yan[i-l][j];for(i=0;i<N;i++){for(j=0;j<=i;j++)結printf(*%4d*,yan[i][j]);printf('\n");果}1*7*1>SdefineN4分main(){析inta[N][N];/*={{1,3,5,7},{4,8,9,12),{35,88,99,10},{126,78,99,55});inti,j,k,maxi,max_2,rowl,row2,col2;clrscr();for(i=0;i<N;i++)for(j=0;j<N;j++)scanf&a[i][j]);for(i=。;iCN;i++){printf('\n");for(j=0;j<N;j++)printf("%4d*,a[i][j]);}printf('\n");maxl=a[0][0],row1=0;內容與過結果ヽ分max_2=a[0]row2=0,col2=N-l;for(i=0;i<N;i++){if(a[i][i]>max_l)max_l=a[i][i],rowl=i;if(a[i][N-l-i]>max2)max_2=a[i][N-l-i],row2=i,col2=N-l-i;}printf(^max1二%-4d row=%dcol=%d\nz,,max.1,rowl,rowl);printf("max_2=%-4d row二%dcol二%d\n”,max_2,row2,col2);實驗內容與過程ヽ結果ヽ分析教師評閱成績: 教師簽名:年月日

實驗ハ函數(shù)實驗地點:第機房 實驗時間: 年月日實驗目的.理解函數(shù)的概念,掌握c語言定義函數(shù)的方法。.掌握函數(shù)實參與形參的對應關系,以及數(shù)據(jù)的“傳遞”方式。.掌握函數(shù)的嵌套調用和遞歸調用的方法。.掌握全局變量和局部變量、動態(tài)變量和靜態(tài)變量的概念及使用方法,能夠用函數(shù)的方法編寫ー些簡單程序。.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。.3~5題按照題目的要求編寫出程序,注意總結各題的編程思路。.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。4.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實1.輸入并調試以下程序:(1)#include<stdio.h>驗內容func(inta,intb){intc;c=a+b;retumc;)main(){intx=3,y=6,z;與z=func((-x,y++,x+y),y);printf(,'x=%d,y=%d,z=%d\nM,x,y,z);過} 運行結果是:程(2)#include<stdio.h>main(){inta[]={2,4,6,8},i;ヽ結intx=0;for(i=0;i<4;i++){x=sub(a,x);printf(n%dn,x);)printf(M\nM);}sub(p,x)intp[],x;{staticintt=3;果分x=p[t];t-;retum(x);析} 運行結果是:

2.程序填空(完善程序)。季生素數(shù)是指兩個相差為2的素數(shù)。例如:3和5,5和7,11和13等,下面程序功能是輸出20對李生素數(shù),請在下劃線處填上適當?shù)膬热?以完成該程序的功能。其中函數(shù)isp的功能是判斷整數(shù)a是否為素數(shù)。#include<stdio.h>main(){intk,n;實n=0;k=2;do驗{if(isp(k)&& ){n=n+l;printf(n%d,%d\nH, );}內k=k+l;)容while(n<20);}與isp(inta){intt,j;過j=l;t=2;while((t<=a/2)&&j)程{if( )j=0;elset=t+1;ヽJReturn(j);結1果3.編寫ー個判斷素數(shù)的函數(shù)ifpo在主函數(shù)中調用該函數(shù),求整型數(shù)組a[10]中有多少個素數(shù)。4.編程求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)。要求:用ー個函數(shù)(funcl)求最大公約數(shù),用分另ー函數(shù)(func2)根據(jù)求出的最大公約數(shù)求最小公倍數(shù)。兩個整數(shù)在主函數(shù)中輸入,并傳送給函數(shù)fund,求出的最大公約數(shù)返回主函數(shù),然后再與兩個整數(shù)一起作為實參傳遞給函數(shù)析func2,求出最小公倍數(shù),再返回到主函數(shù)輸出最大公約數(shù)和最小公倍數(shù)。5.編寫ー遞歸函數(shù)fac用來求階乘t!。主函數(shù)調用該函數(shù),求20!。/*3*/#include"math,h"main(){intifp(int);inta[10],s=0,i;/?={5,8,9,13,21,4,2,29,57,97)*/

for(i=0;i<10;)scanf(*%d*,&a[i++]);for(i=0;i<10;i++)if(ifp(a[i]))s++;printf(,z\nThereare%dprimenumbers\n',s);}intifp(intx){intk,i;實k=sqrt(x);for(i=2;i<=k;i++)驗if(x%i==0)break;if(i>k){printfぐ’%4d x);return1;}內elsereturn0;}容/*6*/與main(){inta,b,gcd,cmd;過printf("Inputab:\n");scanf("%d%d",&a,&b);程gcd=funcl(a,b);cmd=func2(gcd,a,b);ヽprintf("lowestcommonmultiple=%d,highestcommondivissor=%d\n",gcd,cmd);結intfund(intx,inty)果{intm;if(x<y)m=x,x=y,y=m;while(y!=0)ヽ{m=x%y;分x=y;y=m;析}returnx;}intfunc2(intgcd,intx,inty){returnx/gcd*y;}

實/*7*/main()階乘HA.{doublefac(int);printf("%d!=%e\n”,20,fac(20));內}doublefac(intn)次{doublex;合if(n==l||n==0)x=l;片elsex=n*fac(n-l);returnx;過}程ヽ結果ヽ分析教師評成績: 教師簽名:閱年月日

實驗九預處理僉金實驗地點:第機房實驗時間: 年月日實驗地點:第機房實驗目的.掌握宏定義的方法及宏替換的實質,注意區(qū)分宏定義與函數(shù)的不同之處。.掌握文件包含處理方法。.掌握條件編譯的方法。實驗要求.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。.2-4題按照題目的要求編寫出程序,注意總結各題的編程思路。.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實驗內容與過程ヽ結果ヽ分析L輸入并調試以下程序:#include<stdio.h>#defineMIN(x,y)(x)<(y)?(x):(y)main(){inti,j,k;i=l;j=5;k=2*MIN(i+3,j-2);printf(M%d\nM,k);)運行結果是:(2)#definePR(x)printf(M%3dn,x)main(){intj,a[]={l,3,4,6,8,9,10),i=5;for(j=6;j>2;j-)switch(j){case3:PR(a[i++l);break;PR(a[-i]);default:1—;))運行結果是:

(3)#defineMult(i)t=t*(i)voidmainO{intx,s=0,t=l;for(x=0;x<4;x++){Mult(x+l)*x;s+=t;i實j}程序運行后,S的值是:驗2.定義ー個帶參數(shù)的宏,使兩個參數(shù)的值互換。在主函數(shù)中輸入兩個數(shù)作為使用宏的實參,輸出已交換后的兩個值。內說明:在程序主函數(shù)中使用宏時只能用兩個實參,如SWAP(a,b),不能用三個實參。容3.用條件編譯方法實現(xiàn)以下功能:輸入一行電報文字,可以任選兩種輸出,ー為原文輸出;ー為將字母變成其下一字母(如宣與變成b'.?.N變成宣。其他字符不變)。用#define命令來控制是否要譯成密碼。例如:若#defineCHANGE1則輸出密碼。若#defineCHANGE。則不譯成密碼,按原碼輸出。過4.編程,通過使用帶參數(shù)的宏定義從3個數(shù)中找出最大數(shù)。主函數(shù)完成數(shù)據(jù)輸入、宏調用及程數(shù)據(jù)輸出。編寫的程序以ex91.C存盤。/*2*/ヽ#defineSWAP(a,b)t=a,a=b,b=t;結main(){intx,y,t;果printf("PleaseInputx,y:\nH);scanf(,'%d%d,,,&x,&y);SWAP(x,y);ヽprintf("x=%dy=%d\nn,x,y);分}/*3*/析#defineCHANGE1main(){charstr[8OJ;inti;gets(str);#ifCHANGEi=0;while(strli]!=,\O,){if(str[i]>=,a,&&str[i]<='z,llstr[i]>='A,&&str[i]<='Z')實驗內容與實驗內容與{str[i]=str[i]+l;if(str[i]='Z'+l)str[i]=,A,;elseif(str[i]==,z,+l)str[i]=,a,;)i++;)#endifputs(str);)/?4*/#defineMAX(a,b)(a)>(b)?(a):(b)main(){floatx,y,z;printf("PleaseInputx,y,z:\n");scanf("%f%f%f;&x,&y,&z);printf("max=%f\n",MAX(MAX(x,y),z));

實驗內容與過程ヽ結果ヽ分析教師評閱成績: 教師簽名:年月日

實驗十實驗十指針實驗地點:第機房實驗時間: 年月日實驗地點:第機房實驗目的.通過實驗,進ー步掌握指針的概念,會定義和使用指針變量、.學會使用數(shù)組的指針和指向數(shù)組的指針變量。.學會使用字符串的指針和指向字符串的指針變量。.學會使用指向函數(shù)的指針變量。.了解指向指針的指針的概念及其使用方法。指針數(shù)組。實驗要求1.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。2.3、4兩題按照題目的要求編寫出程序,注意總結各題的編程思路。.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。實驗內容與1.輸入并調試以下程序:(l)#include<stdio.h>main(){charstrロ=”123456789abc",*p;p=&str[5];puts(p);}運行結果是:過程結果(2)#include<stdio.h>main(){int**p,*j,i=10;j=&i;p=&j;printf("%d,%d,%d\n*,**p,(*j)+l,i++);}運行結果是:分析(3)針對以下程序段,給出了四個選項。其中那一組是對數(shù)組在規(guī)定的范圍內)voidmain(){inta[4][3]={0},(*p)[3],i,j;P=a;a元素的正確引用(設i,j均}A)a[i][j],a[i]+j,*(*(a+i)+j)

B)*(p+i)[j],p[i]+j,*(*(p+i)+j)C)*(p+i)[j],*(a+i)[j],*(p+i+j)D)p[i][j],*(p[i]+j),*(a[i]+j)結論是:實2.程序填空(完善程序)。驗下面程序功能是用選擇法對10個整數(shù)排序并輸出。請在下劃線處填上適當?shù)膬热?以完成該程序的功能。內main(){int*p,i,a[10];容for(i=0;i<10;i++)scanfp++);與sort(p,10);過for(p=a,i=0;i<10;i++){printf("刎",*p);p++;}程)sort(intx[],intn){inti,j,k,t;ヽfor(i=0;iくn-1;i++)結{k=i;for(j=i+l;j<n;j++)果if(x[j]>x[k])k=j;if(k!=i)ヽ{t=x[i]; ;x[k]=t;})分)3.編程實現(xiàn)字符串的排序(升序)。要求:析(1)用函數(shù)sortstr()編寫排序過程。(2)在主函數(shù)中輸入5個字符串,調用sortstr(),將字符串排序后輸出。4.用指針的方法編寫程序,完成如下函數(shù)的功能:(1)char*strcat(char*str1,char*str2) 把字符串str2接到strl后面,str1后面的‘、?!蝗∠?,返回str!〇(2)intstrcmp(char*strl,char*str2) 比較兩個字符串strl、str2o若strl>str2,返回正數(shù)1;strl=str2,返回〇;strl<str2,返回負數(shù)/*3(1)*/voidsortstr(char(*p)[30],intn){chartemp[30];inti,j,k;

for(i=0;i<n-l;i++){k=i;for(j=i+l;j<n;j++)if(strcmp(p[k],p[j])>0)k=j;實if(k!=i)strcpy(temp,p[i]),strcpy(p[i],p[k]),strcpy(p[k],temp);})驗/?3(2)*/main()內{chara[5][30]={"HuaiNan","BengPu","WuHu","HeFei","AnQing"};voidsortstr(char(*p)[],int);inti;clrscr();容sortstr(a,5);for(i=0;i<5;i++)與puts(a[i]);}過/?4(1)*/char*strcat(char*strl,char*str2)程{inti=0,j=0:char*p=strl;while(strl[i]!=0)i++;ヽwhile(str2[j]!=0)strl[i++]=str2[j++];結strl[i]=‘、〇';returnp;果)main(){chara[80]/*="Anhui"*/,b[10]/?="Hefei"*/;char*p;分char*strcat(char*strl,char*str2);clrscr();gets(a);gets(b);析p二strcat(a,b);puts(p);)或char*strcat(char*strl,char*str2){char*p=strl,*pl=str2;while(*p!=0)p++;while(*pl!=0)*p++=*p1++;*p二、0';returnstrl;)main(){chara[80]/*="Anhui"*/,b[10]/*="Hefei"?/;char*p;實char*strcat(char*strl,char*str2);clrscr();驗內容與過程ヽ驗內容與過程ヽ結果ヽ分析或intstrcmp(char*strl,char*str2){inti二。;while(*str1ニニ?str2&&*str1!二0&&*str2!=0)strl++,str2++;i二?strl-*str2;if(i>0)return1;elseif(i<0)return-1;elsereturn0;gets(a);gets(b);p=strcat(a,b);puts(p);}/*4(2)*/main(){char*a="Followme",*b="Followme";inti;intstrcmp(char*,char*);i=strcmp(a,b);printf("%d\n/z,i);intstrcmp(char*strl,char*str2){inti=0:while(l){i二?strl-*str2;if(i>0)return1;elseif(i<0)returnT;if(*strl==0II*str2==0)break;strl++,str2++;}i=*strl-*str2;if(i>0)return1;elseif(i<0)return-1;elsereturn0;教師評閱成績:教師簽名:實驗十ー結構體、共用體、枚舉實驗地點:第機房 實驗時間: 年月日1.掌握結構體類型變量的定義和使用。2.掌握結構體類型數(shù)組的概念和應用。3.掌握鏈表的概念,初步學會對鏈表進行操作。4.掌握聯(lián)合的概念與使用。實驗要.1.根據(jù)題目要求,進行各種程序測試與驗證,并記錄結果。2.2、3兩題按照題目的要求編寫出程序,注意總結各題的編程思路。3.上機調試程序。將各程序輸入計算機,并進行編譯和連接,如果在編譯、連接中有錯誤信息,則要根據(jù)這些信息找到程序中的錯誤所在,然后修改程序,直至正確。4.詳細記錄數(shù)據(jù)的輸入、輸出信息,按要求寫出實驗報告。1.輸入并調試以下程序:實(1)typedefunion{longx[2];驗inty[4];charz[8];JMYTYPE;內MYTYPEthem;main()容(printf(,'%d\n",sizeof(them));與}運行結果是:過程(2)#include<stdio.h>main(){structdate{intyear,month,day;結}today;printf(M%d,%d\nH,sizeof(structdate),sizeof(today));果)運行結果是:⑶main(){enumteam{my,your=3,his,her=his+5};分printf(n%3d%3d%3d%d\nu,my,your,his,her);)析運行結果是:

(4)uniondata{intx[2];longb;chary[4];);main(){uniondatau;實scanf(n%x,%x,\&u.x[O],&u.x[1]);printf(Mx[O]=%d,x[l]=%d\n",u.x[O],u.x[l]);驗printf(,,b=%ld\n,\u.b);printf(My[0]=%c,y[l]=%c,y[2]=%c\nw,u.y[0],u.y[l],u.y[2]);內)①程序運行時,若輸入4241,3231/容則運行結果是:與②若將scanf語句改為:scanf("%lx",&u.b);,再運行程序時,輸入314241/過則運行結果是:程(5)structwc{inta;int*b;}*p;inta[]={ll,16},b[]={31,36);>structwcx[2]={100,a,300,b};p=x;結根據(jù)以上定義,判斷以下四個表達式中,使得指針p->b的值增1的表達式是(多選題):A)*++p->bB)*++((++p)->b)C)*p->b++D)(p++)->b果(6)根據(jù)右圖所示的存儲結構,將以下定義和賦值語句補充完整structaa p iddate{ id; data; | | |10|A分} ;p= malloc( );析 =10; ='A'.有5個學生,包括學生學號(字符型)、姓名(字符型)和3門課成績(整型),編程完成下面的要求:(1)計算每個學生的總成績、平均分,并輸出。(2)將學生成績按總分從高到低排序并輸出,輸出項有學生學號、姓名、3門課成績及總分。.建立一個鏈表(包含5個結點),每個結點包括:學號、姓名、性別、年齡。輸入一個姓名,如果鏈表中的結點有該姓名,則將此結點刪去。實驗內容與過程實驗內容與過程結果分析/*2*/structstudent{charnum[8],name[8];intscor[3],total;floatav;}stu[5]={{"10","LI",99,60,32},{"11","Wang",75,77,67},{"12","Zhao",66,77,88),{"13","Ma",88,66,79},{"14","Qian",99,88,77}};voidsort(structstudent*,int);voidprint(structstudent*,int,int);voidtotal_a

溫馨提示

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

評論

0/150

提交評論