




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
c程序設計教程與實驗__吉順如__實驗一到七c程序設計教程與實驗__吉順如__實驗一到七c程序設計教程與實驗__吉順如__實驗一到七資料僅供參考文件編號:2022年4月c程序設計教程與實驗__吉順如__實驗一到七版本號:A修改號:1頁次:1.0審核:批準:發(fā)布日期:實驗1熟悉VisualC++環(huán)境及運行C程序一、實驗目的1.掌握在VisualC++環(huán)境下C程序的建立、編輯、編譯和執(zhí)行過程。2.掌握C程序的最基本框架結(jié)構(gòu),完成簡單程序的編制與運行和調(diào)試。3.掌握發(fā)現(xiàn)語法錯誤、邏輯錯誤的方法以及排除簡單錯誤的操作技能。二、實驗內(nèi)容1.從鍵盤輸入兩個數(shù)a和b,求它們的平方和,并在屏幕上輸出。輸入該C程序,編譯并運行之,記下屏幕的輸出結(jié)果,以文件名保存。#include<>main(){inta,b,sum;/*定義整型變量a、b、sum*/printf("PleaseInputa,b\n");/*輸出提示信息*/scanf("%d%d",&a,&b);/*從鍵盤輸入兩個整數(shù)分別賦予a和b*/sum=a*a+b*b;/*賦值語句,把a2+b2的結(jié)果賦給變量sum*/printf("%d*%d+%d*%d=%d\n",a,a,b,b,sum);/*輸出語句*/}該程序的運行結(jié)果:該程序的運行結(jié)果:PleaseInputa,b242*2+4*4=20改錯題在程序中畫出錯誤的語句,將修改后的語句完整地寫在該語句的右邊。(1計算x*y的值并將結(jié)果輸出。試糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。#include<>mainmain(){intx=2;y=3;aintx=2,y=3,a;該程序的運行結(jié)果:a=6A=x*ya=x*y該程序的運行結(jié)果:a=6print('a=%d",A);printf("a=%d",a);printf("\n"); }(2)下程序的功能為:求兩數(shù)中的較大數(shù)據(jù)并輸出。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。#include<>viodmain()voidmain()
{inta,b,max;Scanf(“%d,%d”,&a,&b);scanf(“%d,%d”,&a,&b);Max=a;max=a;If
(max<b)
max=b;if
(max<b)
max=b;Printf(“max=%d”,max);printf(“max=%d”,max);}該程序的運行結(jié)果:該程序的運行結(jié)果:5,3max=53.程序填空題(1)從鍵盤輸入兩個整數(shù),輸出這兩個整數(shù)的和。根據(jù)注釋信息填寫完整程序,以實現(xiàn)其功能。以文件名保存。#include<>main(){intx,y,total;/*定義整型變量x,y,total*/printf("Pleaseinputx,y!");/*輸出提示信息*/scanf(“%d%d”,&x,&y);/*由鍵盤輸入兩個數(shù)分別賦予x和y*/total=x+y;/*賦值語句*/printf("%d+%d=%d\n",x,y,total);/*輸出兩個整數(shù)的和*/該程序的運行結(jié)果:P該程序的運行結(jié)果:Pleaseinputx,y!242+4=6該程序的運行結(jié)果:Inputa,bplease!2017該程序的運行結(jié)果:Inputa,bplease!201720-17=3#include<>main(){inta,b,m;printf("Inputa,bplease!");scanf("%d%d",&a,&b);_m=a-b;___/*賦值語句,將a和b的差值賦給m*/_printf(“%d-%d=%d\n”,a,b,m);_/*輸出a和b差的結(jié)果值后換行*/}4.編程題(1)編程序,運行后輸出如下信息:“BetterCity,BetterLife!”。程序以文件名保存。#include<>main(){printf("BetterCity,BetterLife!\n");}(2)編程序,從鍵盤輸入3個整數(shù),輸出它們的平方和。程序以文件名保存。#include<>main(){inta,b,c,sum;printf("PleaseInputa,b,c\n");scanf("%d,%d,%d",&a,&b,&c);sum=a*a+b*b+c*c;printf("%d*%d+%d*%d+%d*%d=%d\n",a,a,b,b,c,c,sum);}該程序的運行結(jié)果:該程序的運行結(jié)果:PleaseInputa,b,c2,3,42*2+3*3+4*4=29
實驗2數(shù)據(jù)類型、運算符和表達式一、實驗目的1.理解C語言中各種數(shù)據(jù)類型的意義,掌握各種數(shù)據(jù)類型的定義方法。2.掌握C語言常量、變量的定義與使用。3.掌握C語言數(shù)據(jù)類型及運算符的使用規(guī)則。二、實驗內(nèi)容1.改錯題在程序中畫出錯誤的語句,將修改后的語句完整地寫在該語句的右邊。(1)下列程序的功能為:已知圓錐半徑r和高h,計算圓錐體積v。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。計算圓錐體積的公式為:#include#include<>main();main(){floatr=10,h=5;floatr=10,h=5,v;v=1/3**r^2*h;v=3**r*r*h;printf("v=%d\n",v)printf("v=%d\n",v);}該程序的運行結(jié)果:該程序的運行結(jié)果:v=(2)下列程序的功能為:通過鍵盤輸入兩個整數(shù)分別存放在變量x、y中,不借用第3個變量實現(xiàn)變量x、y互換值。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。#include<>main(){ intx,y; printf("請輸入兩個整數(shù)\n"); scanf("%d%d",x,y);scanf("%d%d",&x,&y); printf("初始狀態(tài)下的x:%dy:%d\n",x,y);該程序的運行結(jié)果:請輸入兩個整數(shù)25初始狀態(tài)下的x:2y:5最終狀態(tài)下的x:5y:2該程序的運行結(jié)果:請輸入兩個整數(shù)25初始狀態(tài)下的x:2y:5最終狀態(tài)下的x:5y:2 y=x-y; x=x-y;printf("最終狀態(tài)下的x:%dy:%d/n",x,y);}2.程序填空題該程序的運行結(jié)果:(1)計算當x=4時,公式×2x2的值。補充完善程序,以實現(xiàn)其功能。程序以文件名保存。該程序的運行結(jié)果:#include<>main(){floatx=,y;y=(1+x*x*x)/(x*x+4*sqrt(x)+10)*2*x*x;printf("%f",y);}(2)下列程序的功能為:從鍵盤輸入3個整數(shù)分別存入變量a、b、c,然后,將變量a的值存入變量b,將變量b的值存入變量c,將變量c的值存入變量a,輸出經(jīng)過轉(zhuǎn)存后變量a、b、c的值。(提示:使用中間變量)補充完善程序,以實現(xiàn)其功能。程序以文件名保存。該程序的運行結(jié)果:Pleaseinputa,b,c:123該程序的運行結(jié)果:Pleaseinputa,b,c:123a=3b=1c=2main(){inta,b,c,t;printf("Pleaseinputa,b,c:");scanf("%d%d%d",&a,&b,&c);t=a;a=c;c=b;b=t;printf("a=%d\nb=%d\nc=%d\n",a,b,c);}3.編程題(1)從鍵盤輸入3個大寫英文字母,把它們轉(zhuǎn)換成小寫字母后輸出。程序以文件名保存。該程序的運行結(jié)果:該程序的運行結(jié)果:ABCabc#include<>main(){charc1,c2,c3;scanf("%c%c%c",&c1,&c2,&c3);c1=c1+32;c2=c2+32;c3=c3+32;printf("%c%c%c\n",c1,c2,c3);}(2)從鍵盤輸入3個整數(shù),輸出它們的平均值與積。程序以文件名保存。#include<>main(){ inta,b,c,ji; floatave; printf("請輸入3個整數(shù)\n"); scanf("%d%d%d",&a,&b,&c);ave=(a+b+c)/; ji=a*b*c;printf("ave=%f,ji=%d\n",ave,ji);}該程序的運行結(jié)果:該程序的運行結(jié)果:請輸入3個整數(shù)246ave=,ji=48
實驗3順序結(jié)構(gòu)程序設計一、實驗目的1.掌握scanf()、printf()以及其他常用輸入、輸出函數(shù)的使用。2.掌握格式控制符的使用。3.掌握順序結(jié)構(gòu)程序設計的方法。二、實驗內(nèi)容1.改錯題在程序中畫出錯誤的語句,將修改后的語句完整地寫在該語句的右邊。該程序的運行結(jié)果:請輸入一個華氏溫度:75攝氏溫度為:(1)下列程序的功能為:輸入一個華氏溫度,要求輸出攝氏溫度。公式為:C=該程序的運行結(jié)果:請輸入一個華氏溫度:75攝氏溫度為:#include<>main(){floatc,f;printf("請輸入一個華氏溫度:\n");scanf("%f",f);scanf("%f",&f);c=(5/9)*(f-32);c=9)*(f-32);printf("攝氏溫度為:%\n"c);printf("攝氏溫度為:%\n",c);}(2)下列程序的功能為:按下列公式計算并輸出x的值。其中a和b的值由鍵盤輸入。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。該程序的運行結(jié)果:4,6該程序的運行結(jié)果:4,6x=#include<>main(){inta,b;floatx;scanf("%d,%d",a,b);scanf("%d,%d",&a,&b);x=2ab/(a+b)(a+b);x=*a*b/((a+b)*(a+b));printf("x=%d\n",x);printf("x=%f\n",x);}該程序的運行結(jié)果:aa,97A,65(3)該程序的運行結(jié)果:aa,97A,65#include<>main(){charc1,c2;c1=getchar;c1=getchar();/*從鍵盤輸入一個小寫字母*/printf("%c,%d\n",c1,c1);c2=c1+26;c2=c1-32;/*轉(zhuǎn)換為大寫字母*/printf("%c,%d\n",c2,c2);/*輸出大寫字母及其ASCII碼值*/}2.程序填空題(1)下列程序的功能為:按給定格式輸入數(shù)據(jù),按要求格式輸出結(jié)果。補充完善程序,以實現(xiàn)其功能。程序以文件名保存。該程序的運行結(jié)果:enterx,y:2x+y=該程序的運行結(jié)果:enterx,y:2x+y=輸出形式x+y=#include<>main(){intx;floaty;printf("enterx,y:");scanf("%d%f",&x,&y);printf("x+y=%.1f\n",x+y);}(2)下列程序的功能為:設圓半徑r=,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù)r、h,輸出計算結(jié)果,輸出時要求有文字說明,取小數(shù)點后2位數(shù)字。(周長l=2,圓面積s=,圓球表面積sq=,圓球體積vq=;圓柱體積vz=),請補充完善程序,以實現(xiàn)其功能。程序以文件名保存。#include<>main(){floatpi,h,r,l,s,sq,vq,vz;pi=;printf("請輸入圓半徑r,圓柱高h:\n");scanf("%f%f",&r,&h);l=2*pi*r;s=pi*r*r;sq=4*pi*r*r;vq=3*pi*r*r*r;該程序的運行結(jié)果:請輸入圓半徑r,圓柱高h:3圓周長為:該程序的運行結(jié)果:請輸入圓半徑r,圓柱高h:3圓周長為:圓面積為:圓球表面積為:圓球體積為:圓柱體積為:printf("圓周長為:%.2f\n",l);printf("圓面積為:%.2f\n",s);printf("圓球表面積為:%.2f\n",sq);printf("圓球體積為:%.2f\n",vq);printf("圓柱體積為:%.2f\n",vz);}該程序的運行結(jié)果:請輸入x,y:35交換后的x:5y該程序的運行結(jié)果:請輸入x,y:35交換后的x:5y:3#include<>main(){intx,y,t;printf("請輸入x,y:\n");scanf("%d%d",&x,&y);if(x<y)/*如果x<y*/{t=x;x=y;y=t;}/*x與y交換*/printf("交換后的x:%dy:%d\n",x,y);}3.編程題(1)編寫一個程序?qū)崿F(xiàn)如下功能:從鍵盤輸入3個字符,然后在屏幕上分3行輸出該3個字符。程序以文件名保存。該程序的運行結(jié)果:該程序的運行結(jié)果:ABCABC#include<>main(){charc1,c2,c3;c1=getchar();c2=getchar();c3=getchar();putchar(c1);putchar('\n');putchar(c2);putchar('\n');putchar(c3);putchar('\n');}(2)編寫一個程序?qū)崿F(xiàn)如下功能:輸入一元二次方程ax2+bx+c=0的系數(shù)a、b、c,求方程的根。要求:運行該程序時,輸入a、b、c的值,分別使b2-4ac的值大于、等于和小于零,觀察并分析運行結(jié)果。程序以文件名保存。求根公式如下:該程序的運行結(jié)果:該程序的運行結(jié)果:a=1,b=3,c=2x1=x2=.....#include<>#include<>voidmain(){floata,b,c,disc,x1,x2,p,q;scanf("a=%f,b=%f,c=%f",&a,&b,&c);disc=b*b-4*a*c;p=-b/*a);q=sqrt(disc)/*a);x1=p+q;x2=p-q;printf("x1=%\nx2=%\n",x1,x2);}#include<>#include<>voidmain(){floata,b,c,disc,x1,x2,p,q;scanf("a=%f,b=%f,c=%f",&a,&b,&c);if(a==0) printf("不是二次方程\n"); else disc=b*b-4*a*c; if(disc<0) printf("無實根\n"); else if(disc==0) {p=-b/*a);q=sqrt(disc)/*a);x1=p+q;x2=p-q; printf("有兩個相同的實根\n"); printf("x1=%\nx2=%\n",x1,x2); } else {p=-b/*a);q=sqrt(disc)/*a);x1=p+q;x2=p-q; printf("有兩個不同的實根\n"); printf("x1=%\nx2=%\n",x1,x2); }}實驗四選擇結(jié)構(gòu)程序設計(解答)1.改錯題(1)下列程序的功能為:輸入1個字母,如果它是小寫字母,則首先將其轉(zhuǎn)換成大寫字母,再輸出該字母的前序字母、該字母、該字母的后序字母,例如:輸入g,則輸出FGH;輸入a,則輸出ZAB;輸入M,則輸出LMN;輸入Z,則輸出YZA。請糾正程序中存在錯誤,使程序?qū)崿F(xiàn)其功能,程序以文件名保存。該程序的運行結(jié)果:Enteracharacter:該程序的運行結(jié)果:Enteracharacter:gFGHmain(){charch,c1,c2;printf("Enteracharacter:");ch=getchar();if((ch>='a')||(ch<='z'))該程序的運行結(jié)果:請輸入3個整數(shù):5273個數(shù)中最大者為:7該程序的運行結(jié)果:inputthemonthnumber:該程序的運行結(jié)果:請輸入3個整數(shù):5273個數(shù)中最大者為:7該程序的運行結(jié)果:inputthemonthnumber:2Feb該程序的運行結(jié)果:da-z該程序的運行結(jié)果:Pleaseinputaexpression:2*62*6=12該程序的運行結(jié)果:請主持人輸入時尚手機的實際價格1500請觀眾猜時尚手機的價格1450低了printf("\nmax=%dmin=%d\n",max,min);}(2)有一分段函數(shù)如下,要求用scanf函數(shù)輸入x的值,求y值并在屏幕上輸出。程序以文件名保存。0x<5y=x-15≤x<156x2-1x≥15參考源程序#include<>voidmain(){floatx,y;scanf("%f",&x);if(x<5)y=0;elseif(x<15)y=x-1; elsey=6*x*x-1;printf("x=%f,y=%f\n",x,y);}(3)從鍵盤輸入一個數(shù)字0~6,輸出相應星期幾的英文單詞,其中數(shù)字0對應Sunday,數(shù)字1~6對應Monday~Saturday,如果輸入的不是0~6的數(shù)字,則顯示錯誤信息。程序以文件名保存。參考源程序#include<>main(){intm;printf("請輸入數(shù)字(0-6):");scanf("%d",&m);switch(m){case0:printf("Sunday");break;case1:printf("Monday");break;case2:printf("Tuesday");break;case3:printf("Wednesday");break;case4:printf("Thursday");break;case5:printf("Friday");break;case6:printf("Saturday");break;default:printf("數(shù)據(jù)輸入錯誤。");}}實驗5循環(huán)結(jié)構(gòu)程序設計一、實驗目的1.掌握循環(huán)結(jié)構(gòu)程序設計的3種控制語句——while語句、do···while語句、for語句的使用方法。2.了解用循環(huán)的方法實現(xiàn)常用的算法設計。二、實驗內(nèi)容1.改錯題(在程序中畫出錯誤的語句,將修改后的語句完整地寫在該語句的右邊。)該程序的運行結(jié)果:Thesumfrom1to100is5050(1)下列程序的功能為:求1~100之和(和值為5050)并輸出。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存該程序的運行結(jié)果:Thesumfrom1to100is5050#include<>main(){inti,sum=0;i=1;while(i<100)while(i<=100)sum=sum+i;{sum=sum+i;i++;i++;}printf(“Thesumfrom1to100is%d\n”,sum);}該程序的運行結(jié)果:(2)下列程序的功能為:倒序打印26個英文字母。糾正程序中存在的錯誤,以實現(xiàn)其功能,程序以文件名保存。該程序的運行結(jié)果:#include<>main(){charx;x='z';while(x!='a')while(x!='a'-1)或while(x>='a') {printf("%3d",x);printf("%3c",x);x++;x--;}}(3)下列程序的功能為:輸入一個大寫字母,打印出一個菱形。該菱形中間一行由此字母組成,其相鄰的上下兩行由它前面的一個字母組成,按此規(guī)律,直到字母A出現(xiàn)在第一行和最末行為止。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。例如,輸入字母D,打印出如下圖形:#include<>main(){inti,j,k;charch;scanf("%c",&ch);k=ch-'A'+1;for(i=1;i<=k;i++){for(j=20;j>=i;j--)printf("%c",'');for(j=1;j<=i-1;j++)for(j=1;j<=2*i-1;j++)printf("%c",'A'+i-1);printf("\n");}k=ch-'A';for(i=k;i>=1;i--){for(i=20;i>=i;i--)for(j=20;j>=i;j--)printf("%c",'');for(j=1;j<2*i-1;j++)for(j=1;j<=2*i-1;j++)printf("%c",'A'+i-1);printf("\n");}}2.程序填空題(1)用輾轉(zhuǎn)相除法求兩個正整數(shù)的最大公約數(shù)和最小公倍數(shù)。補充完善程序,以實現(xiàn)其功能,程序以文件名保存。該程序的運行結(jié)果:#include<>該程序的運行結(jié)果:main(){intr,m,n,k,t;scanf("%d%d",&m,&n);if(m<n){t=m; m=n; n=t;}/*交換兩數(shù)*/k=m*n;r=m%n;while(r){m=n;n=r;r=m%n;}printf("%d%d\n",n,k/n);/*輸出最大公約數(shù)和最小公倍數(shù)*/}(2)假設有1020個西瓜,第一天賣了一半多兩個,以后每天賣剩的一半多兩個,求幾天后能賣完。補充完善程序,以實現(xiàn)其功能。程序以文件名保存。#include<>main(){intday,x1,x2;day=0;x1=1020;while(x1>0){該程序的運行結(jié)果:該程序的運行結(jié)果:day=8該程序的運行結(jié)果:x2=x1/2-2該程序的運行結(jié)果:該程序的運行結(jié)果:day=8該程序的運行結(jié)果:x1=x2;day++;}printf("day=%d\n",day);}(3)下列程序的功能為:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù).補充完善程序,以實現(xiàn)其功能。程序以文件名保存。#include<>main(){inti,j;for(i=0;__i<10_____;i++){j=i*10+6;if(___i%3!=0____)continue;printf("%d",j);}}3.編程題(寫出程序運行結(jié)果)(1)計算1~100之間所有含8的數(shù)之和。程序以文件名保存。參考程序:#include<>main(){inti,sum=0;for(i=1;i<=100;i++)if(i%10==8||i/10==8) sum+=i;printf("sum=%d\n",sum);}(2)編寫程序,利用下列近似公式計算e值,誤差應小于10-5。程序以文件名保存。該程序的運行結(jié)果:…該程序的運行結(jié)果:參考程序:#include<>main(){inti=0;longn=1;floate=0,t=1;while(t>1e-5){e+=t; i++; n*=i; t=n;}printf("e=%f\n",e);}(3)某學校有近千名學生,在操場上排隊,若5人一行余2人,7人一行余3人,3人一行余1人。編寫程序,求該校的學生總?cè)藬?shù)。程序以文件名保存。該程序的運行結(jié)果:該程序的運行結(jié)果:參考程序:該程序的運行結(jié)果:該程序的運行結(jié)果:#include<>main(){inti;for(i=900;i<=1000;i++) if(i%5==2&&i%7==3&&i%3==1) break; printf("學生總?cè)藬?shù)=%d\n",i);}(4)從鍵盤輸入N個學生的學號和每人M門課程的成績,計算每個學生的總分及平均分。輸出內(nèi)容包括每個學生的學號、總分和平均分。程序以文件名保存。#include<>voidmain(){ inti,j,n,m,no,score,sum; floatave; printf("輸入學生數(shù)和每人課程數(shù):"); scanf("%d%d",&n,&m);for(i=1;i<=n;i++){sum=0; printf("輸入第%d個學生的學號:",i); scanf("%d",&no); printf("輸入第%d個學生的%d門課程成績:",i,m); for(j=1;j<=m;j++) { scanf("%d",&score); sum+=score; } ave=(float)sum/m;printf("\n**第%d個學生的學號為:%d總分為:%d平均分為:%.2f\n\n",i,no,sum,ave);}}實驗6數(shù)組程序設計一、實驗目的掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法。掌握字符數(shù)組和字符串函數(shù)的使用。掌握與數(shù)組有關(guān)的算法。二、實驗內(nèi)容1.改錯題(在程序中畫出錯誤的語句,將修改后的語句完整地寫在該語句的右邊。)(1)下列程序的功能為:為指定的數(shù)組輸入10個數(shù)據(jù),并求這些數(shù)據(jù)之和。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。#include<>voidmain(){intn=10,i,sum=0;inta[n];inta[10];for(i=0;i<10;i++){scanf("%d",a[i]);scanf("%d",&a[i]);sum=sum+a[i];}printf("sum=%d\n",sum);}(2)下列程序的功能為:將字符串b連接到字符串a(chǎn)。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。#include<>voidmain(){chara[]="wel",b[]="come";chara[20]="wel",b[]="come";inti,n=0;while(!a[n])n++;while(a[n]!='\0')n++;for(i=0;b[i]!='\0';i++) a[n+i]=b[i];a[n+i]=’\0’;printf("%s\n",a);}(3)下列程序的功能為:找出一個二維數(shù)組中的鞍點,即該位置上的元素在該行上最大,在該列上最小。也可能沒有鞍點。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名保存。#include<>#defineN4#defineM4main(){inti,j,k,flag1,flag2,a[N][M],max,maxj;for(i=0;i<N;i++)for(j=0;j<M;j++)scanf("%d",&a[i][j]);flag2=0;for(i=0;i<N;i++){max=a[j][0];max=a[i][0];for(j=0;j<M;j++)if(a[i][j]>max)if(a[i][j]>=max) { max=a[i][j]; maxj=j;}for(k=0,flag1=1;k<N&&flag1;k++)if(max>a[k][maxj]) flag1=0;if(flag1){printf("\nThesaddlepointis:a[%d][%d]=%d\n",i,maxj,max);flag2=1;}}if(flag2)if(!flag2)printf("\nThereisnosaddlepointintheMatrix\n");}2.程序填空題(1)以下程序的功能是:采用二分法在給定的有序數(shù)組中查找用戶輸入的值,并顯示查找結(jié)果。補充完善程序,以實現(xiàn)其功能。程序以文件名保存。#include""#defineN10main(){inta[]={0,1,2,3,4,5,6,7,8,9},k;intlow=0,high=N-1,mid,find=0;printf("請輸入欲查找的值:\n");scanf("%d",&k);while(low<=high){mid=(low+high)/2;if(a[mid]==k){printf("找到位置為:%d\n",mid+1);find=1;}if(a[mid]>k)_high=mid-1;else_low=mid+1_____;}if(!finD.printf("%d未找到\n",k);`}(2)以下程序的功能是:求3個字符串(每串不超過20個字符)中的最大者。補充完善程序,以實現(xiàn)其功能。程序以文件名保存。#include<>#include<>voidmain(){charstring[20],str[3][20];inti;for(i=0;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);if(strcmp(string,str[2])<0)strcpy(string,str[2]);puts(string);}(3)下列程序的功能為:從鍵盤輸入20個整數(shù),統(tǒng)計非負數(shù)個數(shù),并計算非負數(shù)之和。補充完善程序,以實現(xiàn)其功能。程序以文件名保存。#include<>main(){inti,a[20],sum=0,count;count=0;for(i=0;i<20;i++)scanf("%d",&a[i]);for(i=0;i<20;i++){if(a[i]<0)continue;sum+=a[i];count++;}printf("s=%d\tcount=%d\n",sum,count);}3.編程題(寫出程序運行結(jié)果)(1)從鍵盤輸入10個數(shù),用選擇排序法將其按由大到小的順序排序;然后在排好序的數(shù)列中插入一個數(shù),使數(shù)列保持從大到小的順序。程序以文件名存盤。#defineN11#include<>voidmain(){inta[N],i,j,k,t,p;printf("請輸入%d個整數(shù):\n",N);for(i=0;i<N-1;i++)scanf("%d",&a[i]);for(i=0;i<N-2;i++)//選擇排序{k=i;for(j=i+1;j<N-1;j++)if(a[k]>a[j])k=j;if(k!=i){t=a[k];a[k]=a[i];a[i]=t;}}printf("\n排序后:\n");for(i=0;i<N-1;i++)printf("%5d",a[i]);printf("\n請輸入插入整數(shù):");scanf("%d",&p);j=9;while(j>=0&&a[j]>p)//找插入位置{a[j+1]=a[j];j--;}a[j+1]=p;//插入printf("\n插入后:\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}(2)從鍵盤輸入兩個矩陣A、B的值,求C=A+B。程序以文件名存盤。#include<>voidmain(){inta[2][3],b[2][3],c[2][3],i,j;for(i=0;i<2;i++)for(j=0;j<3;j++) scanf("%d",&a[i][j]);for(i=0;i<2;i++)for(j=0;j<3;j++) scanf("%d",&b[i][j]);for(i=0;i<2;i++)for(j=0;j<3;j++) c[i][j]=a[i][j]+b[i][j];for(i=0;i<2;i++){for(j=0;j<3;j++) printf("%3d",c[i][j]);printf("\n");}}(3)從鍵盤輸入一個字符串,刪除其中某個字符。如輸入字符串“abcdefededff”,刪除其中的字符e,則輸出的字符串為“abcdfddff”。程序以文件名存盤。//方法一:#include<>#include<>voidmain(){ inti,j; chars[80],c; printf("輸入一行字符:"); gets(s);printf("輸入要刪除字符:"); scanf("%c",&c); for(i=0,j=0;s[i]!='\0';i++) if(s[i]!=c) s[j++]=s[i]; s[j]='\0'; puts(s);}//方法二:#include<>#include<>voidmain(){charline[80];charch;inti,j;intlen;printf("輸入一行字符:");gets(line);printf("輸入要刪除字符:");ch=getchar();i=0;while(line[i]!='\0'){while(line[i]!='\0'&&line[i]!=ch)i++;len=strlen(line); for(j=i;j<len-1;j++) line[j]=line[j+1]; line[j]='\0';}puts(line);}
實驗7函數(shù)程序設計一、實驗目的1.掌握函數(shù)定義的方法。掌握函數(shù)實參與形參的傳遞方式。掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法。了解全局變量和局部變量、動態(tài)變量、靜態(tài)變量的概念和使用方法。二、實驗內(nèi)容1.改錯題(在程序中畫出錯誤的語句,將修改后的語句完整地寫在該語句的右邊。)(1)下列sub函數(shù)的功能為:將s所指字符串的反序和正序進行連接形成一個新串放在t所指的數(shù)組中。例如,當s所指字符串的內(nèi)容為“ABCD”時,t所指數(shù)組中的內(nèi)容為“DCBAABCD”。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名存盤。#include<>#include<>voidsub(chars[],chart[]){inti,d;d=strlen(s);for(i=1;i<d;i++)for(i=0;i<d;i++)t[i]=s[d-1-i];for(i=0;i<d;i++)t[d+i]=s[i];t[2*d]='/0';t[2*d]='\0'}main(){chars[100],t[100];printf("Pleaseenterstrings:");scanf("%s",s);sub(s,t);printf("\nTheresultis:%s\n",t);}(2)下列程序的功能為:將字符數(shù)組中的字符串逆序輸出。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名存盤。#include<>#include<>#defineARR_SIZE=80;#defineARR_SIZE80voidInverse(charstr[])voidInverse(charstr[]);main(){chara[ARR_SIZE];printf("Pleaseenterastring:");gets(a);Inverse(chara[]);Inverse(a); printf("Theinversedstringis:"); puts(a);}voidInverse(charstr[]){intlen,i=0,j; chartemp;len=strlen(str);for(j=len-1;i<j;i++,j--){temp=str[i];str[j]=str[i];str[i]=str[j];str[j]=temp; }}(3)下列程序的功能為:求整數(shù)n的階乘。糾正程序中存在的錯誤,以實現(xiàn)其功能。程序以文件名存盤。#include<>intfun(intn){staticintp=1;p=p*n;returnp;}voidmain(){intn,i;intf=0;intf=1;printf("inputmember:");scanf("%d",&n);for(i=1;i<=n;i++) f=f*fun(i);f=fun(i);printf("%d!=%d\n",n,f);}2.程序填空題(1)下列sum()函數(shù)的功能是:計算數(shù)組x前n個元素之和。在主函數(shù)中,輸入10個任意整數(shù)和下標i1、i2的值(設1≤i1≤i2≤9),調(diào)用sum()函數(shù)計算從第i1元素到第i2元素的和,并輸出結(jié)果。補充完善程序,以實現(xiàn)其功能。程序以文件名存盤。#include<>intsum(intx[],intn){ inti,s=0; for(i=0;i<n;i++) s=s+x[i]; returns;}voidmain(){ inti,i1,i2,result; intx[10]; for(i=0;i<10;i++) scanf("%d",&x[i]); scanf("%d%d",&i1,&i2); result=sum(x+i1,i2-i1+1); printf("Sum=%d\n",result);}(2)下列程序的功能為:輸入一個字符數(shù)小于100的字符串string,然后將string所存盤字符串中的每個字符之間加一個空格。補充完善程序,以實現(xiàn)其功能。程序以文件名存盤。#inclu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆云南省楚雄彝族自治州大姚縣第一中學高三3月質(zhì)檢語文試題試卷含解析
- 浙江工業(yè)大學《外國新聞事業(yè)史》2023-2024學年第二學期期末試卷
- 滁州職業(yè)技術(shù)學院《平面快題設計》2023-2024學年第二學期期末試卷
- 嘉興南洋職業(yè)技術(shù)學院《英語時事導讀》2023-2024學年第二學期期末試卷
- 北京大學《數(shù)字媒體后期制作》2023-2024學年第二學期期末試卷
- 新疆師范大學《建筑工程造價軟件應用》2023-2024學年第二學期期末試卷
- 口袋鼠員工時間管理分享
- 審計學接受業(yè)務委托財務報表審計的過程
- 南平市建甌市2025年數(shù)學五年級第二學期期末學業(yè)質(zhì)量監(jiān)測試題含答案
- 天津市大港區(qū)2025年數(shù)學四下期末質(zhì)量檢測模擬試題含解析
- 2024年中國家具浸漬紙市場調(diào)查研究報告
- 大學美育學習通超星期末考試答案章節(jié)答案2024年
- 2024年版《輸變電工程標準工藝應用圖冊》
- 2024年大學生信息素養(yǎng)大賽(校賽)培訓考試題庫(含答案)
- 1 水到哪里去了(教案)-2024-2025學年科學三年級上冊教科版
- 遼寧大連歷年中考語文現(xiàn)代文之記敘文閱讀10篇(含答案)(2003-2023)
- 深海組網(wǎng)技術(shù)調(diào)研
- 教科版科學三年級下冊《 直線運動和曲線運動 》課件
- DL∕T 5210.2-2018 電力建設施工質(zhì)量驗收規(guī)程 第2部分:鍋爐機組
- 中藥學總結(jié)(表格)
- 卒中相關(guān)性肺炎的護理課件
評論
0/150
提交評論