2011284138-王亞程序設計_第1頁
2011284138-王亞程序設計_第2頁
2011284138-王亞程序設計_第3頁
2011284138-王亞程序設計_第4頁
2011284138-王亞程序設計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計實驗報告實驗一C開發(fā)環(huán)境一實驗目的和要求: 掌握c程序的建立、編輯、編譯、運行方法掌握簡單順序程序的結構、執(zhí)行過程理解程序調試的思想,能找出并改正c程序中的語法錯誤。二實驗內容:1.編寫運行一個簡單的c程序:1)建立自己的文件夾,用于存放c程序,如D:\my_programming。2)啟動vc++,建立一個工程,放在自己的文件夾下。3)建立一個c源程序文件,添加到第二步建立的工程里。4)編寫源程序,在屏幕上顯示一個短句“HelloWorld!”。5)源程序編寫好后,執(zhí)行編譯、連接命令,并在信息窗口查看信息。6)運行程序,查看結果。1、編寫簡單程序#include<stdio.h>main(){ printf("helloworld\n");}2.編程題: 1)在屏幕上顯示自己的學號、姓名和班級。 2)在屏幕上顯示如下圖形:**** *** ** *#include<stdio.h>voidmain(){ printf("姓名:王亞\n"); printf("班級:計應1121班\n"); printf("學號:2011284138\n");}3、調試程序: 改正下列程序中的錯誤,在屏幕上顯示“WelcometoYou!” #include<stdio.h> main(){ Printf(WelcometoYou!\n”) } 1)將上述代碼編寫好。 2)執(zhí)行編譯命令,查看信息窗口的信息,找到第一條錯誤信息,雙擊該錯誤信息,箭頭指出出錯位置,同時查看錯誤信息,根據錯誤信息改正源程序。 3)再次編譯,若有錯誤,繼續(xù)修改,直至錯誤為0。 4)執(zhí)行連接命令,生產exe文件,運行程序,查看結果。#include<stdio.h> main(){ printf("WelcometoYou!\n");}實驗二表達式與輸入輸出一實驗目的和要求掌握數據類型的概念,了解基本數據類型所占的字節(jié)數和可表示數的范圍掌握如何定義合法的標識符正確書寫表達式理解運算符的優(yōu)先關系掌握數據的基本輸入輸出方法二實驗內容基本數據類型的寬度:編寫一個程序,輸出基本數據類型char,int,long,float,double的長度。使用運算符sizeof,格式如下:sizeof(類型名關鍵字或者變量名)。#include<stdio.h>voidmain(){ inta=0; intb=0; intc=0; intd=0; inte=0; else { printf("%d\n",b); }}1.2輸入三個數,求三個數中的最大值。#include<stdio.h>voidmain(){ inta,b,c; printf("請輸入任意三個數"); scanf("%d%d%d",&a,&b,&c); if(a>b&&a>c) { printf("%d\n",a); } elseif(b>c&&b>a) { printf("%d\n",b); }else { printf("%d\n",c); }}2.分段函數.分別使用單分支、雙分支及嵌套實現。2.1.x-10x<0;y=x+100x>=0include<stdio.h>voidmain(){ intx,y; printf("請輸入任意x="); scanf("%d",&x); if(x<0) { y=x-10; printf("y=x-10=%d\n",y); } else { y=x+100; printf("y=x+100=%d\n",y); }x-10x<-102.2y=x-10≤x≤10x+100x>10#include<stdio.h>voidmain(){ intx,y; printf("請輸入任意x="); scanf("%d",&x); if(x<-10) { y=x-10; printf("y=x-10=%d\n",y); } elseif(x>=-10&&x<=10) { y=x; printf("y=x=%d\n",y); } else { y=x+100; printf("y=x+100=%d\n",y); }}x-10x<-10x-3-10≤x<02.3、y=x+30≤x≤10x+100x>10#include<stdio.h>voidmain(){ intx,y; printf("請輸入任意x="); scanf("%d",&x); if(x<-10) { y=x-10; printf("y=x-10=%d\n",y); } elseif(x>=-10&&x<0) { y=x-3; printf("y=x-3=%d\n",y); } elseif(x>=0&&x<=10) { y=x+3; printf("y=x+3=%d\n",y); } else { y=x+100; printf("y=x+100=%d\n",y); }}3.輸入三個數,將這三個數排序,按從小到大的次序輸出。分別使用單分支、雙分支及嵌套實現。#include<stdio.h>voidmain(){ inta,b,c; printf("請輸入任意三個數"); scanf("%d%d%d",&a,&b,&c); if(a>=b&&b>=c) { printf("%d%d%d\n",c,b,a); } elseif(a>=c&&c>=b) { printf("%d%d%d\n",b,c,a); } elseif(b>=a&&a>=c) {printf("%d%d%d\n",c,a,b); } elseif(b>=c&&c>=a) {printf("%d%d%d\n",a,c,b); }elseif(c>=b&&b>=a) {printf("%d%d%d\n",a,b,c); } else {printf("%d%d%d\n",b,a,c); }}4.編制程序求s=z+x+ypow(e,x+y)x<0,y<0z=pow(e,2x-y)0<=x<=2,y>=0inxx>=2#include<stdio.h>#include<math.h>#definee2.71828182845904523536voidmain(){ doubles,x,y,z,k; printf("請輸入任意兩個數"); scanf("%lf%lf",&x,&y); if(x<0&&y<0) { k=x+y; z=pow(e,k); s=z+k; printf("%lf\n",s); } elseif(x>=0&&x<2&&y>=0) { k=2*x-y; z=pow(e,k); s=z+x+y; printf("%lf\n",s); } else { z=log(x)/log(e);s=x+y+z;printf("%lf\n",s); }}5.輸入a、b、c的值求一元二次方程ax2+bx+c=0的根。討論一根、2根、實根、虛根的情況。#include<stdio.h>#include<math.h>voidmain(){ floata,b,c,x1,x2,x3,x4,k=0; printf("輸入a、b、c的值求一元二次方程ax+bx+c=0的根"); scanf("%f%f%f",&a,&b,&c); k=4*a*c; if(a==0) { printf("輸入有誤"); return; } if(b*b-k==0) { x1=-b/(2*a); printf("x1=x2=%f",x1); } elseif(b*b-k>0) { x1=(-b+sqrt(b*b-k))/(2*a); x2=(-b-sqrt(b*b-k))/(2*a);printf("x1=%f",x1);printf("x2=%f",x2); } else { x3=-b/(2*a);x4=sqrt(k-b*b)/(2*a);printf("x1=%f+%fi\n",x3,x4);printf("x2=%f-%fi\n",x3,x4); }}/*6.將百分制的成績轉換成4級制成績。#include<stdio.h>voidmain(){ intx; printf("請輸入你的成績分數"); scanf("%d",&x); x=x/10; if(x<6) { printf("你的成績等級為D等級\n"); } elseif(x>=6&&x<8) { printf("你的成績等級為C等級\n"); } elseif(x>=8&&x<9) { printf("你的成績等級為B等級\n"); } elseif(x>=9&&x<=10) { printf("你的成績等級為A等級\n"); } else { printf("您輸入的有誤請重新輸入\n"); }}第五章實驗題1.設faHeight為其父身高,moHeight為其母身高,身高預測公式為男性成人時身高=(faHeight+moHeight)*0.54cm女性成人時身高=(faHeight*0.923+moHeight)/2cm此外,如果喜愛體育鍛煉,那么可增加身高2%;如果有良好的衛(wèi)生飲食習慣,可增加身高1.5%。請編程從鍵盤輸入用戶的性別(用字符型變量sex存儲,輸入字符F表示女性,輸入字符M表示男性),父母身高(用實型變量存儲,faHeigh為其父身高,moHeight為其母身高),是否喜愛體育鍛煉(用字符型變量sports存儲,輸入字符Y表示喜愛,輸入字符N表示不喜愛),是否有良好的飲食習慣等條件(用字符型變量diet存儲,輸入字符Y表示良好,輸入字符N表示不好),利用給定公式和身高預測方法對身高進行預測。#include<stdio.h>#include<math.h>voidmain(){ charsex,sport,diet; floatfaHeigh,moHeigh,k,a,y,n,f,m,h; printf("用戶的性別f為女性,m為男性"); scanf("%c",&sex); if(sex=='m') { printf("請輸入其父親、母親身高/cm"); scanf("%f%f",&faHeigh,&moHeigh); k=0.54*(faHeigh+moHeigh); } else { printf("請輸入其父親、母親身高");scanf("%f%f",&faHeigh,&moHeigh);k=(faHeigh*0.923+moHeigh)/2; } printf("是否喜歡體育鍛煉y為喜歡,n為不喜歡。請輸入(y/n)\n"); scanf("%c",&sport);if(sport=='y') { a=k*1.02; printf("%f",a); } else { a=k; printf("%f",a); }printf("是否有良好的健康的飲食習慣y為有,n為沒有。請輸入(y/n)\n"); scanf("%c",&diet); if(diet=='y') {h=a+k*0.015; printf("%f",h); } else { h=a; printf("%f",h); }}身高預測:#include<stdio.h>#include<math.h>voidmain(){ doubleh,w,t,m; printf("請輸入你的身高h(m)和體重w(kg)值"); scanf("%f,%f",&h,&w); m=h*h; t=w/m; if(t<18) { printf("該生體重為低體重\n"); } elseif(t>=18&&t<=25) { printf("該生體重正常\n"); } elseif(t>=25&&t<=27) { printf("該生體重超重\n"); } else { printf("該生體重肥胖\n"); }}實驗四循環(huán)結構程序設計1一實驗目的和要求掌握一重循環(huán)的使用及執(zhí)行流程掌握典型題目的程序設計方法熟悉程序的調試方法要求:用不同的結構(while、do…while、for)完成實驗內容的代碼,分析差別掌握基本的算法及處理技巧二 實驗內容編程計算:1.S=1+2+3+……+n#include<stdio.h>voidmain() {inti,n,s;printf("請輸入n=");scanf("%d",&n);s=0;for(i=1;i<=n;i++){s=s+i;}printf("%d\n",s);}2.s(10000)=1+1/2+1/3+1/4+1/5+....+1/10000#include<stdio.h>voidmain(){ intn; doubles,i; printf("請輸入n="); scanf("%d",&n); s=0; for(i=1;i<=n;i++) { s=s+(1/i); printf("i=%lf,s=%lf\n",i,s); } printf("s=%lf\n",s);}3.1、-2、3、-4、....前100項的和#include<stdio.h>#include<math.h>voidmain(){ inti,s,n; printf("請輸入n="); scanf("%d",&n); s=0; i=1;while(i<=n) { s=s+pow(-1,i-1)*i; i++; } printf("s=%d\n",s);}4.s=1+1/2+2/3+3/4+...+98/99+99/100#include<stdio.h>#include<math.h>voidmain(){ intn; doublei,s; printf("請輸入n="); scanf("%d",&n); s=1; if(n>=1) { for(i=1;i<=n;i++) { s=s+(i-1)/i; printf("i=%lfs=%lf\n",i,s); } printf("s=%lf\n",s); } else { printf("輸入有誤,請重新輸入\n"); }}5.s=1+1/2+2/3+3/5+5/8+8/13+...#include<stdio.h>main(){ floati=1,j=1,s=0,t; intk,n; printf("請輸入n:"); scanf("%d",&n);for(k=1;k<=n;++k){ s+=i/j;t=i+j;i=j;j=t; }printf("s=%f\n",s);}6.S=1+2+3+……+n#include<stdio.h>voidmain(){ longinti,n,s=1; printf("請輸入n="); scanf("%ld",&n);/*n<=16 for(i=1;i<=n;i++) { s=s*i; } printf("%ld!=%ld\n",n,s);}7.求1*2、2*3、3*4、…、前50項的和#include<stdio.h>voidmain() { inti,j,n; longk,s=0; printf("請輸入n="); scanf("%d",&n); for(i=1;i<=n+1;i++) { k=0; for(j=1;j<i;j++) { k=i*j; } s=s+k; } printf("s=%ld\n",s);}8.求1!+2!+3!+…+50!#include<stdio.h>voidmain(){ inti,j,n; doublek,s=0; printf("請輸入n="); scanf("%d",&n); for(i=1;i<=n;i++) { k=1; for(j=1;j<=i;j++) { k=k*j; } s=s+k; } printf("1!+2!+3!+...%d!=%lf\n",n,s);}9.輸入一個任意的整數,求其各數位上的數字的和,求該整數對應的反序整數#include<stdio.h>main(){ intm,n,a=0,s=0; printf("輸入n:"); scanf("%d",&n); while(n) { m=n%10; n=n/10; s+=m; a=a*10; a+=m; } printf("各位數之和s=%d\n",s); printf("其反序數=%d\n",a);}10.將一個十進制整數轉換成二進制、八進制、十六進制的數#include<stdio.h>#include<math.h>main(){ inta,b,c,n,k,m,i,s; i=0; s=0; printf("輸入n:"); scanf("%d",&n);k=m=n; for(;n!=0;) { a=n%2; n=n/2; s=s+pow(10,i)*a; i++; }printf("二進制數:%d\n",s); i=0; s=0; for(;m!=0;) { b=m%8; m=m/8; s=s+pow(10,i)*b; i++; } printf("八進制數:%d\n",s);printf("十六進制數:%X\n",k);}11.判斷一個整數是否為素數#include<stdio.h>voidmain(){inti,n;printf("請輸入n:");scanf("%d",&n);for(i=2;i<n;i++){if(n%i==0){break;}}if(i>=n){printf("%d是素數\n",n);}else{printf("%d不是素數\n",n);}}12.求一個整數的所有因子。如8:1,2,4,8#include<stdio.h>main(){ inta,b,i; printf("輸入讓任意整數a:"); scanf("%d",&a); for(i=1;i<a;i++) { b=a%i; if(b==0) { printf("其因子有:%d\n",i); continue; } } if(i=a) { printf("其因子有:%d\n",a); }}13.求一個整數的所有質因子。如8:215:3、5#include<stdio.h>main(){ inta,b,c,i,j; printf("輸入任意整數a:"); scanf("%d",&a); intf=1; for(i=2;i<=a;i++) { b=a%i; if(b==0) { for(j=2;j<i;j++) { c=i%j; if(c==0) { f=0; break; } } if(f==1) printf("其質因子有:%d\n",i); continue; } }}14.輸入年月日,判斷其是該年的第多少天、星期幾#include<stdio.h>main(){ inta,b,c,d,e,f,i=0,j; printf("輸入年,月,日:\n"); scanf("%d,%d,%d",&a,&b,&c); if(a%4==0&a%100!=0||a%400==0) { switch(b) { case1:d=c; printf("是該年的%d天\n",d); break; case2:d=31+c; printf("是該年的%d天\n",d); break; case3:d=31+29+c; printf("是該年的%d天\n",d); break; case4:d=31+29+31+c; printf("是該年的%d天\n",d); break; case5:d=31+29+31+30+c; printf("是該年的%d天\n",d); break; case6:d=31+29+31+30+31+c; printf("是該年的%d天\n",d); break; case7:d=31+29+31+30+31+30+c; printf("是該年的%d天\n",d); break; case8:d=31+29+31+30+31+30+31+c; printf("是該年的%d天\n",d); break; case9:d=31+29+31+30+31+30+31+31+c; printf("是該年的%d天\n",d); break; case10:d=31+29+31+30+31+30+31+31+30+c; printf("是該年的%d天\n",d); break; case11:d=31+29+31+30+31+30+31+31+30+31+c; printf("是該年的%d天\n",d); break; case12:d=31+29+31+30+31+30+31+31+30+31+30+c; printf("是該年的%d天\n",d); break; default: printf("輸入有誤!\n"); } } else { switch(b) { case1:d=c; printf("是該年的%d天\n",d); break; case2:d=31+c; printf("是該年的%d天\n",d); break; case3:d=31+28+c; printf("是該年的%d天\n",d); break; case4:d=31+28+31+c; printf("是該年的%d天\n",d); break; case5:d=31+28+31+30+c; printf("是該年的%d天\n",d); break; case6:d=31+28+31+30+31+c; printf("是該年的%d天\n",d); break; case7:d=31+28+31+30+31+30+c; printf("是該年的%d天\n",d); break; case8:d=31+28+31+30+31+30+31+c; printf("是該年的%d天\n",d); break; case9:d=31+28+31+30+31+30+31+31+c; printf("是該年的%d天\n",d); break; case10:d=31+28+31+30+31+30+31+31+30+c; printf("是該年的%d天\n",d); break; case11:d=31+28+31+30+31+30+31+31+30+31+c; printf("是該年的%d天\n",d); break; case12:d=31+28+31+30+31+30+31+31+30+31+30+c; printf("是該年的%d天\n",d); break; default: printf("輸入有誤!\n"); } } if(a>=2011) { for(j=2011;j<a;j++) { if(j%4==0&&j%100!=0||j%400==0) { i++; } } e=(a-2011)*365+(d-1)+i; f=e%7; if(f==0) { printf("是該年的星期六\n"); } elseif(f==1) { printf("是該年的星期日\n"); } elseif(f==2) { printf("是該年的星期一\n"); } elseif(f==3) { printf("是該年的星期二\n"); } elseif(f==4) { printf("是該年的星期三\n"); } elseif(f==5) { printf("是該年的星期四\n"); } elseif(f==6) { printf("是該年的星期五\n"); } } else { for(j=a;j<2011;j++) { if(j%4==0&&j%100!=0||j%400==0) { i++; } } e=(2010-a)*365+(366-d)+i; f=e%7; if(f==0) { printf("是該年的星期六\n"); } elseif(f==1) { printf("是該年的星期五\n"); } elseif(f==2) { printf("是該年的星期四\n"); } elseif(f==3) { printf("是該年的星期三\n"); } elseif(f==4) { printf("是該年的星期二\n"); } elseif(f==5) { printf("是該年的星期一\n"); } elseif(f==6) { printf("是該年的星期日\n"); } }}15.輸入一串字符,分別統(tǒng)計數字字符、大、小寫字母、其它字符的個數#include<stdio.h>main(){ inta=0,b=0,c=0,d=0; charch; printf("輸入一串字符:"); scanf("%c",&ch); while(ch!='\n') { if(ch>='A'&&ch<='Z') { a++; } elseif(ch>='a'&&ch<='z') { b++; } elseif(ch>='0'&&ch<='9') { c++; } else { d++; }scanf("%c",&ch); } printf("大寫字母a=%d\n小寫字母b=%d\n數字字符c=%d\n其他字符d=%d\n",a,b,c,d);}16.輸入一串字符,將其中的大小寫字母分別對應轉換#include<stdio.h>main(){ charch; printf("請輸入一段字符:"); scanf("%c",&ch); while(ch!='\n') { if(ch>='A'&&ch<='Z') { ch=ch+32; printf("%c\n",ch); } elseif(ch>='a'&&ch<='z') { ch=ch-32; printf("%c\n",ch); } else { printf("%c\n",ch); } scanf("%c",&ch); }實驗五循環(huán)結構程序設計2一實驗目的和要求1.掌握二重循環(huán)的使用及執(zhí)行流程2.掌握典型題目的程序設計方法3.熟悉程序的調試方法二、實驗內容1.打印三角形的9*9乘法表#include<stdio.h>voidmain(){ inti,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%d*%d=%d\t",j,i,i*j); } printf("\n"); }}2.1+(1+2)+(1+2+3)+…+(1+2+3+…+100)#include<stdio.h>voidmain(){ inti,n=0,s=0; for(i=0;i<=100;i++) { n=n+i; s=s+n; } n++; printf("%d",s);}編制輸出下圖的程序:①*********************#include<stdio.h>main(){ inti,j; for(i=1;i<=6;i++) { for(j=1;j<=i;j++) printf("*"); printf("\n"); }}將該圖形倒過來呢?#include<stdio.h>main(){ inti,j; for(i=1;i<=6;i++) { for(j=1;j<=6-i;j++) printf("*"); printf("\n"); }}②題目:****************************************************************************************************#include<stdio.h>voidmain(){ inti,j;for(i=0;i<=10;i++) { for(j=0;j<=10-i;j++) { printf(""); }for(j=0;j<2*i-1;j++) { printf("*"); } printf("\n"); }}題目:AABABCABCD第一種方法:#include<stdio.h>voidmain(){ inti,j;for(i=0;i<=0;i++) { for(j=0;j<=4;j++) if(j==1)continue; { printf("A\n"); } if(j==2)continue; { printf("AB\n"); } if(j==3)continue; { printf("ABC\n"); } if(j==4)continue; { printf("ABCD\n"); } }printf("\n");}方法二:#include<stdio.h>main(){ inti,j,k='A'; for(i=1;i<=4;i++) { k='A'; for(j=1;j<=i;j++) { printf("%c",k); k++; } printf("\n"); }}題目:12345678910#include<stdio.h>main(){ inti,j,k=1; for(i=1;i<=4;i++) { for(j=1;j<=i;j++) { printf("%d",k); k++; } printf("\n"); }}****************************#include<stdio.h>main(){ inti,j; for(i=0;i<=6;i++) { for(j=0;j<10;j++) { if(i==0||j==0||i==6||j==9) { printf("*"); } else { printf(""); } } printf("\n"); }}實驗六函數一實驗目的和要求1.掌握函數的聲明、定義和調用方法2.掌握函數參數值的傳遞方法5.了解變量的作用域和存儲類型二實驗內容1.課后習題第1題#include<stdio.h>intsquare(inti){ returni*i;}intmain(){ inti=0; i=square(i); for(;i<3;i++) { staticinti=1; i+=square(i); printf("%d,",i); } printf("%d\n",i); return0;}運行結果為2,6,43,3調用函數為i*i;執(zhí)行函數i=i+i*i的循環(huán)。第2題#include<stdio.h>inthour,minute,second;voidupdate(){ second++; if(second==60){ second=0; minute++; } if(minute==60){ minute=0; hour++; } if(hour=24) hour=0; }voiddisplay(){ printf("%2d:%2d:%2d\r",hour,minute,second);}voiddelay(){ intt; for(t=0;t<100000000;t++);}intmain(){ inti; hour=minute=second=0; for(i=0;i<100000000;i++) { update(); display(); delay(); } return0;}}2.寫一個函數計算圓的面積,并在main函數中調用#include<stdio.h>doublef(intr){returnr*r*3.1415925;}voidmain(){ intr; doubles; printf("輸入圓半徑r:"); scanf("%d",&r); s=f(r); printf("圓的面積s=%lf\n",s); return;} 3.編寫函數計算n!,在main函數中計算1?。玻。常。玭!。其中n的值由用戶輸入#include<stdio.h>intfun(intn){ inti,j=1,s=0; for(i=1;i<=n;i++) { j=i*j; s=s+j; } printf("n!=%d\n",j); returns;}voidmain(){ints=0,n;printf("輸入n:");scanf("%d",&n);s=fun(n);printf("1!+2!+...+%d!=%d\n",n,s);}4.編寫遞歸函數計算斐波那契(Fibonacci)數列的第n項#include<stdio.h>longfibonacci(inta);intmain(){intn,i,x;printf("輸入n:");scanf("%d",&n);for(i=1;i<=n;i++){ x=fibonacci(i);printf("fibonacci(%d)=%d\n",i,x);}return0;}longfibonacci(intn){ longf; if(n==0)f=0; elseif(n==1)f=1;elsef=fibonacci(n-1)+fibonacci(n-2); returnf;} 5.編寫函數計算任意一個正整數的各位數字之和。在main函數中輸入一個正整數,調用函數計算各位數字之和*/#include<stdio.h>longk(inta);intmain(){ intn,s=0; printf("輸入n:"); scanf("%d",&n);s=k(n); printf("%d",s); return0;}longk(intn) { intm,s=0,k,a; while(n) { m=n%10; n=n/10; s+=m; } returns; }/*6.編寫遞歸函數計算兩個整數的最大公約數#include<stdio.h>intf(intx,inty){inttemp;temp=x%y;if(temp==0){returny;}else{returnf(y,temp);}}voidmain(){ inta,b,t,r; scanf("%d,%d",&a,&b); if(a<b){t=a,a=b,b=t; } r=f(a,b); printf("r=%d\n",r);} 7.驗證歌德巴赫猜想:一個大于2的偶數總可分解成兩個素數之和#include<stdio.h>intprime(intn){ inti; for(i=2;i<=n/2;i++){ if(n%i==0){ return0; } } return1;}voidmain(){ inti,j,k; for(i=4;i<100;i+=2){ for(j=2;j<=i/2;j++){ k=i-j;} if(prime(j)&&prime(k)){ printf("%d=%d+%d\n",i,j,k); break; }} if(j>i/2){ printf("error!\n"); }實驗七數組程序設計1一實驗目的和要求掌握數組的聲明、初始化、賦值、引用掌握數組元素的輸入、輸出熟悉典型數組應用程序設計二實驗內容 以下實驗內容所需數據自行解決1. 將一個數組中的元素逆置#include<stdio.h>voidmain(){ inta[10]={8,6,3,2,10,5,7,4,1,9}; inti,temp; for(i=0;i<5;i++){ temp=a[i];a[i]=a[9-i];a[9-i]=temp; } for(i=0;i<10;i++){ printf("%d\n",a[i]); }}2. 求一個數組中的最大最小值及其下標#include<stdio.h>voidmain(){ inta[10]={8,6,3,2,10,5,7,4,1,9}; inti,max,min; max=0,min=0; for(i=1;i<10;i++){ if(a[max]<a[i]){ max=i; } } for(i=1;i<10;i++){ if(a[min]>a[i]){ min=i; } } printf("max=%d,i=%d\n",a[max],max); printf("min=%d,i=%d\n",a[min],min);}3. 求一個矩陣的轉置#include<stdio.h>#include<stdlib.h>voidmain(){ inta[3][3]={1,2,3,4,5,6,7,8,9}; inti,j,temp; for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("%2d",a[i][j]); } printf("\n"); } for(i=0;i<3;i++){ for(j=i;j<3;j++){ temp=a[i][j],a[i][j]=a[j][i],a[j][i]=temp; } } for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf("%4d",a[i][j]); } printf("\n"); } }4. 去掉一個數組中的重復元素#include<stdio.h>voidmain(){ inta[10]={8,6,3,2,7,9,7,4,1,9}; inti,j,m,n,max; max=9; for(m=0;m<max;m++){ for(n=m+1;n<max;n++){ if(a[m]==a[n]&&m<n){ for(i=n;i<10;i++){ a[i]=a[i+1]; } max--; } } } for(j=0;j<max;j++){ printf("%d",a[j]); }}實驗八數組程序設計2一實驗目的和要求熟悉字符串及字符串處理函數熟悉典型數組應用程序設計二 實驗內容1.從鍵盤輸入單個字符,輸出對應的大寫或小寫字符及對應的ASCII碼#include<stdio.h>voidmain(){ inti,j; chara[10]; printf("inputa[i]\n"); scanf("%c",&a[i]); for(i=0;i<10;i++){ a[i]>='a'&&a[i]<='z'; } for(j=0;j<10;j++){ printf("%c,%d",a[j],a[j]); }} 2.編寫函數實現如下功能:兩個字符串連接、兩字符串的比較,并編寫主程序驗證函數功能#include<stdio.h>voidf(chara[],charb[]){ charpa=0,pb=0; for(pa=0;a[pa]!='\0';pa++); while(b[pb]!='\0'){ a[pa++]=b[pb++]; } a[pa]='\0';}intg(chara[],charb[]){ charpa=0,pb=0; intn; while(a[pa]==b[pb]!='\0'){ pa++; pb++; } if(a[pa]==b[pb])n=0; if(a[pa]>b[pb])n=1; if(a[pa]<b[pb])n=-1; returnn;}voidmain(){ chara[10]="abc",b[5]="cdef"; f(a,b); printf("%s\n",a); printf("%d\n",g(a,b)); } 3.編寫函數實現如下功能:統(tǒng)計字符串中的單詞個數,并編寫主程序驗證#include<stdio.h>intf(charstr[]){ inti,n=1; for(i=1;str[i]!='\0';i++){ if(str[i]!=''&&str[i-1]=='') { n++; } } returnn; }intmain(){ charstr[100]; printf("inputastring:"); gets(str); printf("numberofwords=%d\n",f(str)); return0;}4. 編寫函數實現選擇排序算法,并編寫主程序驗證#include<stdio.h>voidf(inta[],intn){ inti,j,k,t; for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<n;j++){ if(a[j]>a[k]) { k=j; } } if(k!=i){ t=a[k]; a[k]=a[i]; a[i]=t; } }}voidmain(){ inta[10]={88,56,25,19,47,96,23,46,59,94}; f(a,10); inti; for(i=0;i<10;i++){ printf("%d,",a[i]); } printf("\n"); } 5.約瑟夫問題:有n各小孩按順序排成一圈,從第一個小孩開始作1~3把報數,凡報到3的小孩從圈中退出,求最后出圈的小孩的順序號是多少#include<stdio.h>#defineMAX500main(){inti,k,m,n,people[MAX],*p;printf("pleaseinputthenumberofpeople:");scanf("%d",&n);p=people;for(i=0;i<n;i++)*(p+i)=i+1;i=0;k=0;m=0;while(m<n-1){if(*(p+i)!=0)k++;if(k==3){*(p+i)=0;k=0;m++;}i++;if(i==n)i=1;}while(*p==0)p++;printf("Thepeoplewhosenumberis%disleft\n",*p);}實驗九指針1一實驗目的和要求 1.正確定義和使用簡單指針變量,指針運算 2.用指針處理數組和字符串二實驗內容將一個長度為n的字符串的字符逆序輸#include<stdio.h>#include<string.h>voidf(char*pstr){ intlen; chartemp; char*pstart; char*pend; len=strlen(pstr); for(pstart=pstr,pend=pstr+len-1;pstart<pend;psta

溫馨提示

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

評論

0/150

提交評論