版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計實驗教案目錄TOC\o"1-3"\u實驗一visualc++編譯環(huán)境的使用2實驗二順序程序設計6實驗三選擇結(jié)構程序設計9實驗四循環(huán)結(jié)構程序設計13實驗五函數(shù)17實驗六指針22實驗七數(shù)組25實驗八結(jié)構體32實驗一visualc++編譯環(huán)境的使用實驗目的:掌握c程序設計編程環(huán)境visualc++,掌握運行一個c程序設計的根本步驟,包括編輯、編譯、連接和運行。掌握c語言程序設計的根本框架,能夠編寫簡單的c程序。了解程序調(diào)試的思想,能找出并改正c程序中的語法錯誤。實驗內(nèi)容:在“我的電腦〞上新建一個文件夾,用于存放c程序,文件夾名字可以是學號姓名。調(diào)試例如,在屏幕上顯示一個短句“HelloWorld!〞。源程序#include<stdio.h>voidmain(){ printf(“HelloWorld!\n〞);}運行結(jié)果:HelloWorld!根本步驟:(要求熟練掌握)啟動VC++“開始〞->“程序〞->“MicrosoftVisualStudio6.0”->“MicrosoftVisualC++6.0”進入VC++編程環(huán)境。新建文件〔*.cpp〕“文件〞->“新建〞,單擊“文件〞選項卡,選擇“C++SourceFiles〞,修改文件保存“目錄〞和“文件〞〔文件名〕,單擊“確定〞。編輯和保存〔注意:源程序一定要在英文狀態(tài)下輸入,即字符標點都要在半角狀態(tài)下,同時注意大小寫,一般都用小寫〕在編輯窗口輸入源程序,然后執(zhí)行“文件〞->“保存〞或“文件〞->“另存為〞編譯(*.obj)用來檢查語法錯誤“編譯〞->“編譯〞或Ctrl+F7,在產(chǎn)生的工作區(qū)隊話框中,選擇“是〞。連接(*.exe)“編譯〞->“構件〞或F7運行“編譯〞->“執(zhí)行〞或Ctrl+F5關閉程序工作區(qū)“文件〞->“關閉工作區(qū)〞翻開文件“文件〞->“翻開〞查看C源文件、目標文件和可執(zhí)行文件的存放位置。源文件在保存目錄下,目標文件和可執(zhí)行文件在“保存目錄\Debug〞中編程,在屏幕上顯示一個短句“thisismyfirstcprogram.〞。調(diào)試例如,在屏幕上顯示一個短句“welcometoyou!〞。源程序〔有錯誤的程序〕#include<stdio.h>voidmian(){ printf(WelcometoYou!\n〞)}運行結(jié)果〔改正后的運行結(jié)果〕WelcometoYou!操作步驟:1〕按照實驗2中介紹的步驟1〕~3〕輸入上述源程序并保存。2〕編譯,“編譯〞->“編譯〞〔Ctrl+F7〕,信息窗口中顯示編譯出錯信息,如以下圖所示。3〕找出錯誤,在信息窗口中依次雙擊出錯信息,編輯窗口就會出現(xiàn)一個箭頭指向程序出錯的位置,一般在箭頭的當前行或上一行,可以找到出錯語句。第4行,出錯信息:Welcome是一個未定義的變量,但Welcome并不是變量,出錯的原因是Welcome前少了一個雙引號。4〕改正錯誤,重新編譯,得下如以下圖所示出錯信息。出錯信息:“}〞前少了分號。5〕再次改正錯誤,在“}〞前即printf()后加上“;〞〔英文狀態(tài)〕,生新編譯,顯示正確6〕連接,“編譯〞->“構件〞〔F7〕,出現(xiàn)如下出錯信息。出錯信息:缺少主函數(shù)。7〕改正錯誤,即把“mian〞改為“main〞后,重新連接,信息窗口顯示連接正確。8〕運行,“編譯〞->“執(zhí)行〞〔Ctrl+F5〕,觀察結(jié)果是否與要求一致。改錯,改正以下程序中的錯誤,在屏幕上顯示以下3行信息。****************Welcome****************源程序〔有錯誤的程序〕#include<stdio.h>voidmain(){ Printf(“****************\n〞); Printf(“Welcome〞) Printf(“****************\n〞);}實驗報告要求將以上各題的源程序、運行結(jié)果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。實驗二順序程序設計【實驗目的】1.學會順序程序設計的思想2.進一步熟悉TurboC集成編譯環(huán)境的使用,到達熟練使用的目的3.熟練掌握各種數(shù)據(jù)類型的輸入輸出格式,并學會使用輸入輸出函數(shù)4.學會使用表達式【實驗內(nèi)容】1.在屏幕中輸出一行文字“Hello,Welcome!〞說明:〔1〕只需要在屏幕中顯示一行文字即可參考程序如下:#include<stdio.h>main(){printf("Hello,Welcome!\n");}2.輸入一個華氏溫度,要求輸出攝氏溫度。公式為輸出要求有文字說明,取兩位小數(shù)說明:〔1〕攝氏溫度F和華氏溫度c都應用float類型變量存儲〔2〕注意表達式書寫中的各變量的順序問題〔3〕輸出時只需輸出兩位小數(shù)參考程序如下:#include<stdio.h>main(){floatF,c;printf("inputF:");scanf("%f",&F);c=5*(F-32)/9;printf("c=%.2f\n",c);}3.輸入三角形三邊長、、,求三角形周長和面積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果,輸出時要求有文字說明,取消書店后兩位小數(shù)。說明:〔1〕程序設計中使用的所有變量均為float類型〔2〕三角形周長公式:〔3〕三角形面積公式;,其中〔4〕注意應保證輸入數(shù)據(jù)能夠構成三角形〔5〕需要使用開根號函數(shù)sqrt,在程序頂部加上#include<math.h>一句〔6〕以,,運行程序,查看執(zhí)行結(jié)果參考程序如下:#include<stdio.h>#include<math.h>main(){floata,b,c,l,s;floatp;printf("inputa,b,c:");scanf("%f,%f,%f",&a,&b,&c);l=a+b+c;p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("l=%.2f\n",l); printf("s=%.2f\n",s);}4.設圓半徑,圓柱高,求圓周長、圓面積、圓球外表積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果,輸出時要求有文字說明,取消書店后兩位小數(shù)。說明:〔1〕程序設計中使用的所有變量均為float類型〔2〕圓周長公式:〔3〕圓面積公式:〔4〕圓球外表積公式:〔5〕圓球體積公式:〔6〕圓柱體積公式:參考程序如下:#include<stdio.h>#definePI3.14main(){floatr=1.5,h=3;floatl,s1,s2,v1,v2;l=2*PI*r;s1=PI*r*r;s2=4*PI*r*r; v1=4*PI*r*r*r/3; v2=PI*r*r*h;printf("l=%.2f\n",l); printf("s1=%.2f\n",s1); printf("s2=%.2f\n",s2); printf("v1=%.2f\n",v1); printf("v2=%.2f\n",v2);}實驗三選擇結(jié)構程序設計【實驗目的】1.了解C語言的邏輯運算2.學會使用if語句和switch語句3.熟練掌握選擇結(jié)構程序設計方法【實驗內(nèi)容】1.有一函數(shù)寫一程序,輸入,輸出值說明:〔1〕根據(jù)輸入的不同求的值,使用if語句〔2〕分別輸入三個分段中的三個數(shù),判斷輸出結(jié)果是否正確,測試程序正確與否參考程序如下:#include<stdio.h>main(){floatx,y;printf("inputx:");scanf("%f",&x);if(x<1) y=x;if(x>=1&&x<10) y=2*x-1;if(x>=10) y=3*x-11; printf("y=%f\n",y);}2.從鍵盤輸入一個字符,可以是數(shù)字、字母、或是標點符號,對輸入的字符進行判斷,如果是數(shù)字那么輸出“*isanumber!〞,如果是字母那么輸出“*isaletter!〞,如果是其他的字符怎輸出“*istheother!〞〔*為輸入的字符〕說明:〔1〕從鍵盤輸入一個字符,用char類型變量存儲〔2〕使用if語句作判斷〔3〕判斷條件根據(jù)輸入字符的ASCII碼值的范圍,具體的ASCII碼值參看書后的ASCII碼表參考程序如下:#include<stdio.h>main(){charc;printf("inputachar:");scanf("%c",&c);if(c>=48&&c<=57) printf("%cisanumber!\n",c);elseif((c>=65&&c<=90)||(c>=97&&c<=122)) printf("%cisaletter!\n",c);else printf("%cistheother!\n",c);}3.輸入兩個實數(shù)、,保證變量中存儲的是較大的數(shù),變量中存儲的實較小的數(shù),并按照由大到小的順序輸出。說明:〔1〕需要對輸入的兩個數(shù)進行比擬,判斷是否需要交換兩個數(shù)〔2〕按照從大到小的順序輸出兩個數(shù)參考程序如下:#include<stdio.h>main(){floata,b;floattemp;printf("inputa,b:");scanf("%f,%f",&a,&b);if(a<b){ temp=a; a=b;b=temp; } printf("%f,%f\n",a,b);}4.輸入一年份,判斷該年是否是閏年。說明:〔1〕判斷閏年的條件:能夠被4整除,但不能被100整除或者能被100整除,又能被400整除〔2〕使用一個變量來代表是否是閏年〔3〕如果是閏年那么輸出“*isaleapyear!〞,否那么輸出“*isnotaleapyear!〞。*代表輸入的年份參考程序如下:#include<stdio.h>main(){intyear;intflag=0;printf("inputayear:");scanf("%d",&year);if((year%4==0&&year%100!=0)||(year%100==0&&year%400==0)) flag=1;if(flag==1) printf("%disaleapyear!\n",year);else printf("%disnotaleapyear!\n",year);}5.從鍵盤輸入一個月號,顯示輸出該月號的英文名稱說明:〔1〕使用if語句較為麻煩,因為需要做12次比擬〔2〕使用switch語句〔3〕如果輸入月份超出范圍,那么應當輸出錯誤信息參考程序如下:#include<stdio.h>main(){intmonth;printf("inputamonth:");scanf("%d",&month);switch(month){ case1: printf("January!\n"); break; case2: printf("February!\n"); break; case3: printf("March!\n"); break; case4: printf("April!\n"); break; case5: printf("May!\n"); break; case6: printf("June!\n"); break; case7: printf("July!\n"); break; case8: printf("August!\n"); break; case9: printf("September!\n"); break; case10: printf("October!\n"); break; case11: printf("November!\n"); break; case12: printf("December!\n"); break; default: printf("inputerror!\n"); }}實驗四循環(huán)結(jié)構程序設計【實驗目的】1.學會使用while、do-while、for語句2.熟練掌握循環(huán)結(jié)構程序設計方法3.掌握選擇結(jié)構與循環(huán)結(jié)構的嵌套【實驗內(nèi)容】1.求和〔即求1!+2!+……+20!〕說明:〔1〕首先要求出每一項的n!的值〔2〕然后把各項相加得到所求的值〔3〕存儲求和運算結(jié)果的變量的初始值應為0〔4〕存儲求積運算結(jié)果的變量的初始值應為1參考程序如下:①使用while循環(huán)#include<stdio.h>main(){floatsum=0;floatmid=1;intn=1;while(n!=21){ mid=mid*n;n++; sum=sum+mid; } printf("sum=%f\n",sum);}②使用for循環(huán)#include<stdio.h>main(){floatsum=0;floatmid=1;intn;for(n=1;n<=20;n++){ mid=mid*n; sum=sum+mid; } printf("sum=%f\n",sum);}2.求出100到200以內(nèi)最大的素數(shù)和最小的素數(shù),并求出兩者的差值說明:〔1〕素數(shù)的概念:只能被1和自身整除的正整數(shù)〔2〕分別求出這個兩個素數(shù),并輸出,輸出格式為: bigone:* smallone:*最小的素數(shù)正序找出最大的素數(shù)倒序找出〔3〕求出兩者的差,并輸出,輸出格式為: result:*參考程序如下:#include<stdio.h>main(){intbig,small;intresult;inti,j;intflag;for(i=100;i<200;i++){ flag=0; for(j=2;j<i;j++) { if(i%j==0){ flag=1; break; } } if(flag==0) { small=i;break; } } for(i=200;i>=100;i--) { flag=0; for(j=2;j<i;j++) { if(i%j==0){ flag=1; break; } } if(flag==0) { big=i; break; } } result=big-small; printf("big:%d\n",big); printf("small:%d\n",small); printf("reslut:%d\n",result);}3.輸入兩個正整數(shù)和,求其最大公約數(shù)和最小公倍數(shù)說明:〔1〕最大公約數(shù):能夠被和同時整除的最大正整數(shù)〔2〕最小公倍數(shù):和相乘的積除以最大公約數(shù)〔3〕使用for循環(huán),將和同時除以1到〔為和兩者中較小者〕,直到找出最大的正整數(shù)即為最大公約數(shù)〔4〕輸出格式如下: Thegreatestcommondivisoris*! Theleastcommonmultipleis*!參考程序如下:#include<stdio.h>main(){ intm,n,temp; inti; intgreat,least;printf("inputm,n:");scanf("%d,%d",&m,&n); if(m>n) { temp=m; m=n; n=temp;} for(i=1;i<=m;i++) { if(n%i==0&&m%i==0)great=i; } least=m*n/great; printf("Thegreatestcommondivisoris%d\n",great); printf("Theleastcommonmultipleis%d\n",least);}4.打印出所有的“水仙花數(shù)〞,所謂“水仙花數(shù)〞是指一個3位數(shù),其各位數(shù)字立方和等于該數(shù)本書。例如,153是一水仙花數(shù),因為說明:〔1〕“水仙花數(shù)〞是三位數(shù),所以范圍是從100到999〔2〕使用for循環(huán)〔3〕循環(huán)中需要把數(shù)字的每一位都別離出來,然后求和,同原數(shù)字比擬,進行判斷參考程序如下:#include<stdio.h>main(){ inta,b,c; inti; inttemp; for(i=100;i<1000;i++) { a=i/100; b=(i-a*100)/10; c=i%10; temp=a*a*a+b*b*b+c*c*c; if(i==temp) printf("%d\n",i); }}實驗五函數(shù)【實驗目的】1.掌握C語言函數(shù)的定義、聲明以及函數(shù)的調(diào)用方法2.了解主調(diào)函數(shù)和被調(diào)函數(shù)之間的參數(shù)傳遞方式3.熟練掌握數(shù)組作為函數(shù)參數(shù)的用法【實驗內(nèi)容】1.寫一個判斷素數(shù)的函數(shù),在主函數(shù)輸入一個整數(shù),輸出是否素數(shù)的信息。說明:〔1〕判斷素數(shù)的函數(shù)名為Prime〔2〕傳遞參數(shù)為int類型的變量〔3〕輸出格式為: *isaprime!或者*isnotaprime!參考程序如下:#include<stdio.h>Prime(intnum){ inti; intflag=0; for(i=2;i<num;i++){ if(num%i==0) { flag=1; break; } } if(flag==0) printf("%disaprime!\n",num); else printf("%disnotaprime!\n",num);}main(){ intnum; printf("inputanum:"); scanf("%d",&num);Prime(num);}2.寫一個函數(shù),用“冒泡法〞對輸入的10個數(shù)字由小到大順序排列,并輸出。說明:〔1〕排序的函數(shù)名為Sort〔2〕排序前后的輸入輸出都應在主函數(shù)中完成〔3〕使用數(shù)組作為函數(shù)參數(shù)〔4〕使用“冒泡法〞排序參考程序如下:#include<stdio.h>Sort(intnum[]){ inti,j; inttemp; for(i=0;i<=8;i++) { for(j=0;j<9-i;j++){ if(num[j]>num[j+1]) { temp=num[j]; num[j]=num[j+1]; num[j+1]=temp; } } }}main(){ intnum[10];inti; printf("input10numbers:");for(i=0;i<10;i++) scanf("%d",&num[i]);Sort(num); printf("thesortednumbers:");for(i=0;i<10;i++) printf("%d",num[i]);}3.寫一函數(shù),使給定的一個二維數(shù)組〔5×5〕轉(zhuǎn)置,即行列互換。說明:〔1〕使用5×5的二維數(shù)組存放數(shù)據(jù)〔2〕矩陣轉(zhuǎn)置的函數(shù)名為Turn〔2〕轉(zhuǎn)置前后的輸入輸出都應在主函數(shù)中完成〔3〕使用數(shù)組作為函數(shù)參數(shù)參考程序如下:#include<stdio.h>voidTurn(intnum[5][5]){ inti,j; inttemp; for(i=0;i<5;i++) { for(j=i;j<5;j++){ temp=num[i][j]; num[i][j]=num[j][i]; num[j][i]=temp; } }}main(){ intnum[5][5]={{1,2,3,4,5},{6,7,8,9,0},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}}; inti,j;printf("Beforearraybeturned:\n");for(i=0;i<5;i++) { for(j=0;j<5;j++)printf("%2d",num[i][j]);printf("\n"); } Turn(num); printf("Afterarraybeturned:\n");for(i=0;i<5;i++) { for(j=0;j<5;j++)printf("%2d",num[i][j]);printf("\n"); }}4.寫一函數(shù),使輸入的字符串反序存放,在主函數(shù)中輸入和輸出字符串。說明:〔1〕字符串反序的函數(shù)名為Reverse〔2〕反序前后的輸入輸出都應在主函數(shù)中完成〔3〕使用數(shù)組作為函數(shù)參數(shù)〔4〕需要使用strlen函數(shù)得到字符串長度,需要在源文件頭部參加#include<string.h>參考程序如下:#include<stdio.h>#include<string.h>voidReverse(charstr[]){ intlength; inti; chartemp; length=strlen(str); for(i=0;i<length/2;i++) { temp=str[i]; str[i]=str[length-1-i]; str[length-1-i]=temp; }}main(){ charstr[50]; printf("inputastring:"); scanf("%s",str); Reverse(str); printf("Afterreversedis%s\n",str);}5.寫一函數(shù),將兩個字符串連接。說明:〔1〕連接兩個字符串的函數(shù)名為:Connect〔2〕將連個字符串存入兩個字符串數(shù)組中,要保證第一個字符串的長度能夠容納兩個字符串之和〔3〕連接兩個字符串主要是找到第一個字符串的結(jié)尾,然后將第二個字符串連接到第二個字符串的后邊〔4〕輸出格式為: Theconnectedstringis*!〔5〕使用數(shù)組作為函數(shù)參數(shù)〔6〕連接前后的字符串輸出都要在主函數(shù)中完成,自定義函數(shù)只完成連接功能參考程序如下:#include<stdio.h>voidConnect(charstr1[],charstr2[]){ inti,j; for(i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++,i++) str1[i]=str2[j]; str1[i]='\0';}main(){ charstr1[50],str2[20]; inti,j; printf("inputstring1:"); scanf("%s",str1); getchar(); printf("inputstring2:"); scanf("%s",str2); Connect(str1,str2); printf("Theconnectedstringis%s\n",str1);}6.寫一函數(shù),求字符串的長度,并編寫主函數(shù)。說明:〔1〕求字符串長度的函數(shù)名為:Count〔2〕字符串結(jié)束的標志是’\0’〔3〕輸出格式為: Thelengthofstringis*!〔4〕使用數(shù)組作為函數(shù)參數(shù)參考程序如下:#include<stdio.h>intCount(charstr[]){ inti; for(i=1;str[i]!='\0';i++);returni;}main(){ charstr[10]; intlength; printf("inputthestring:"); scanf("%s",str); length=Count(str); printf("Thelengthofstringis%d!\n",length);}實驗六指針【實驗目的】1.掌握C語言指針變量的定義、聲明和賦值2.學會使用指針變量的程序設計3.掌握指針作為函數(shù)參數(shù)的用法【實驗內(nèi)容】1.使用指針作為函數(shù)參數(shù),寫一交換兩個數(shù)的函數(shù)說明:〔1〕交換兩個數(shù)的函數(shù)名為:Swap〔2〕使用指針變量作為函數(shù)參數(shù)〔3〕在主函數(shù)中輸入輸出,自定義函數(shù)只完成交換功能參考程序如下:#include<stdio.h>Swap(int*p1,int*p2){ inttemp; temp=*p1; *p1=*p2; *p2=temp;}main(){ inta,b; int*p1,*p2; printf("inputa,b:"); scanf("%d,%d",&a,&b); p1=&a; p2=&b; printf("Beforeswapa=%d,b=%d\n",a,b); Swap(p1,p2); printf("Afterswapa=%d,b=%d\n",a,b);}2.使用指針作為函數(shù)參數(shù),寫一求數(shù)組中最大值和最小值的函數(shù)。說明:〔1〕函數(shù)名為:MaxAndMin〔2〕使用指針指向一維數(shù)組〔3〕最大值和最小值的輸出必須要在主函數(shù)中參考程序如下:#include<stdio.h>MaxAndMin(int*array,int*max,int*min){ inti; *max=array[0]; *min=array[0]; for(i=0;i<10;i++) { if(*max<array[i]) *max=array[i]; if(*min>array[i]) *min=array[i]; }}main(){ intarray[10]={0,1,2,3,4,5,6,7,8,9}; intmax,min; int*p1,*p2; p1=&max; p2=&min; MaxAndMin(array,p1,p2); printf("max=%d\nmin=%d\n",max,min);}3.找出以下程序的錯誤,并加以修改。①交換兩個數(shù)#include<stdio.h>Swap(int*p1,int*p2){ int*temp; temp=p1; p1=p2; p2=temp;}main(){ inta,b; int*pointer_1,*pointer_2; scanf("%d,%d",&a,&b); pointer_1=&a;pointer_2=&b; Swap(pointer_1,pointer_2); printf("\n%d,%d\n",a,b);}②輸出數(shù)組重點全部元素#include<stdio.h>main(){ int*p,i,a[10];p=a; for(i=0;i<10;i++) *p++=i; for(i=0;i<10;i++)printf("a[%d]=%d\n",i,*p++);}4.寫一函數(shù),求出矩陣中的最大值和最小值,要求使用指針作為函數(shù)參數(shù)。說明:〔1〕使用二維數(shù)組存放矩陣元素〔2〕只用指針變量指向數(shù)組〔3〕函數(shù)名為:ArrayMaxAndMin參考程序如下:#include<stdio.h>ArrayMaxAndMin(int*array,int*max,int*min,intn){ inti=0,j=0;*max=*(array+i*n+j); *min=*(array+i*n+j); for(i=0;i<n;i++){ for(j=0;j<n;j++) { if(*max<*(array+i*n+j)) *max=*(array+i*n+j); if(*min>*(array+i*n+j)) *min=*(array+i*n+j); } }}main(){ intarray[3][3]={1,2,3,4,5,6,7,8,9}; intmax,min; int*p,*p1,*p2; p=array;p1=&max; p2=&min; ArrayMaxAndMin(p,p1,p2,3); printf("max=%d\nmin=%d\n",max,min);}實驗七數(shù)組【實驗目的】1.掌握一維數(shù)組和二維數(shù)組的定義、賦值和初始化的方法2.掌握字符數(shù)組的使用3.熟練掌握與數(shù)組相關的各種算法【實驗內(nèi)容】1.從鍵盤輸入10個整數(shù),對這個十個數(shù)進行排序,并輸出說明:〔1〕將這10個整數(shù)存入一個含有10個元素的一維數(shù)組中〔2〕冒泡法:從第一個數(shù)開始依次讓相鄰的兩個數(shù)進行比擬,如次序?qū)δ敲床蛔鋈魏尾僮鳎蝗绱涡虿粚δ敲词惯@兩個數(shù)交換位置。第一遍比擬后,最大的數(shù)已放在最后,第二遍只需考慮剩下的數(shù),以此類推直到最后兩個數(shù)比擬后就可以完成排序?!?〕比擬完成后將數(shù)組中元素依次輸出參考程序如下:#include<stdio.h>main(){ intnum[10]; inti,j; inttemp; printf("input10numbers:"); for(i=0;i<10;i++)scanf("%d",&num[i]); for(i=0;i<=8;i++){ for(j=0;j<9-i;j++) { if(num[j]>num[j+1]) { temp=num[j]; num[j]=num[j+1]; num[j+1]=temp;} } } printf("thesortednumbers:"); for(i=0;i<10;i++) printf("%d",num[i]);}2.從鍵盤輸入一串字符串,統(tǒng)計字符串中特定字符的個數(shù)〔特定字符也需要從鍵盤輸入〕,并輸出個數(shù)說明:〔1〕輸入時需要用到的輸入格式控制字是%s〔2〕字符串存入一個足夠大的字符數(shù)組中,保證輸入的字符個數(shù)不要超過最大個數(shù)〔3〕使用循環(huán)控制語句,需要了解字符數(shù)組的結(jié)束標志是’\0’,作為循環(huán)的結(jié)束標志〔4〕輸出格式如下: Thenumberof*is*!參考程序如下:#include<stdio.h>main(){ charstr[50]; charch; intcount=0; inti=0; printf("inputastring:"); scanf("%s",str); getchar(); printf("inputthechar:"); scanf("%c",&ch); while(str[i]!='\0') { if(str[i]==ch) count++; i++; } printf("Thenumberof%cis%d!\n",ch,count);}注意:程序中多了一行getchar(),這并不是多余的,而是因為在輸入完字符串后,鍵入的回車被放入到內(nèi)存的輸入緩沖區(qū)中,在輸入特殊字符的時候ch得到了上一個回車,而無法得到我們要輸入的字符,因此需要使用一行getchar()將緩沖區(qū)中的回車讀出,相當于去除緩沖區(qū)的作用。3.青年歌手參加歌曲大獎賽,有10個評委進行打分,試編程求這位選手的平均得分〔去掉一個最高分和一個最低分〕。說明:〔1〕將10位評委的打分放入一個含有10個元素的一維數(shù)組中〔2〕程序設計重點是排序〔3〕排序后只要用中間的8個元素即可〔4〕輸出格式為: Theaverageis*!參考程序如下:#include<stdio.h>main(){ floatscore[10]; floataverage=0; floatsum=0; inti,j; floattemp; printf("inputthe10score:");for(i=0;i<10;i++) scanf("%f",&score[i]); for(i=0;i<=8;i++) { for(j=0;j<9-i;j++){ if(score[j]>score[j+1]){ temp=score[j]; score[j]=score[j+1]; score[j+1]=temp; } } } for(i=1;i<=8;i++){ sum=sum+score[i]; } average=sum/8; printf("Theaverageis%f!\n",average);}4.將兩個字符串連接起來,不要使用strcat函數(shù)。說明:〔1〕將連個字符串存入兩個字符串數(shù)組中,要保證第一個字符串的長度能夠容納兩個字符串之和〔2〕連接兩個字符串主要是找到第一個字符串的結(jié)尾,然后將第二個字符串連接到第二個字符串的后邊〔3〕輸出格式為: Theconnectedstringis*!參考程序如下:#include<stdio.h>main(){ charstr1[50],str2[20]; inti,j; printf("inputstring1:"); scanf("%s",str1); getchar(); printf("inputstring2:"); scanf("%s",str2);for(i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++,i++) str1[i]=str2[j]; str1[i]='\0';printf("Theconnectedstringis%s\n",str1);}5.已有一個已排好序的數(shù)組,從鍵盤輸入一個數(shù),要求按原來排序的規(guī)律將它插入數(shù)組中。說明:〔1〕需要保證數(shù)組的元素據(jù)個數(shù)比插入前多1〔2〕需要找到在數(shù)組中插入的位置〔3〕可倒序查找:假設從小到大排序,從最后一個開始查找,如果要插入元素比當前數(shù)組元素小那么將該數(shù)組元素賦予后邊一個元素,繼續(xù)比擬;否那么將要插入元素賦予該數(shù)組元素的下一個元素,然后break結(jié)束循環(huán)〔4〕輸入該數(shù)組即可參考程序如下:#include<stdio.h>main(){ inta[10]={0,1,2,4,5,6,7,8,9};intb=3; inti; for(i=8;i>=0;i--){ if(a[i]>b) a[i+1]=a[i]; else { a[i+1]=b; break; } } printf("Thenewsortedarrayis"); for(i=0;i<10;i++) printf("%d",a[i]);}6.將一個數(shù)組中的值按逆序重新存放。例如:原來順序為8,6,5,4,1,要求改為1,4,5,6,8。說明:〔1〕只要將原來數(shù)組中的值以中間值為中心交換〔2〕交換次數(shù)為次〔3〕注意此時的是數(shù)組最后一個元素的下標參考程序如下:#include<stdio.h>main(){ intnum1[10]={0,1,2,3,4,5,6,7,8,9}; intnum2[9]={1,2,3,4,5,6,7,8,9}; inti; inttemp; for(i=0;i<(9+1)/2;i++) { temp=num1[i];num1[i]=num1[9-i]; num1[9-i]=temp;} for(i=0;i<(8+1)/2;i++) { temp=num2[i];num2[i]=num2[8-i]; num2[8-i]=temp;} printf("Theconvertedarray1is");for(i=0;i<10;i++) printf("%d",num1[i]);printf("\nTheconvertedarray2is");for(i=0;i<9;i++) printf("%d",num2[i]);}7.求一個3×3矩陣的對角線元素之和說明:〔1〕使用3×3的二維數(shù)組存儲數(shù)據(jù)〔2〕使用for循環(huán)嵌套,判斷數(shù)組中元素是否是對角線元素,如果是那么相加〔3〕對角線元素的特點是行號和列號相同參考程序如下:#include<stdio.h>main(){ intarray[3][3]={1,2,3,4,5,6,7,8,9}; intsum=0; inti,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { if(i==j) sum=sum+array[i][j]; } } printf("summaryis%d\n",sum);}8.設計一個較為復雜的一維數(shù)組操作程序,實現(xiàn)對一維數(shù)組的根本操作說明:〔1〕通過輸入函數(shù)實現(xiàn)對一維數(shù)組的輸入,可以將數(shù)組定義為100個整型元素,輸入其中的10個元素〔2〕在屏幕上將數(shù)組中的10個元素輸出〔3〕往數(shù)組中插入一個元素,并將插入后的11個元素輸出〔4〕從數(shù)組中刪除一個元素,并將刪除后的10個元素輸出〔5〕從數(shù)組中查找一個元素,并將查找后的元素下標輸出,如果元素不存在,給出提示參考程序如下:#include<stdio.h>main(){ inta[100],i,j; intins,del,find,pos; printf("input
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024高考化學一輪復習專練14鐵銅及其化合物含解析新人教版
- 2024高考化學一輪復習第一部分考點13化學與可持續(xù)發(fā)展強化訓練含解析
- 2024高考化學一輪復習第四章非金屬及其化合物第二講富集在海水中的元素-氯規(guī)范演練含解析新人教版
- 2024高考歷史一輪復習模塊四選修部分第1講歷史上重大改革回眸學案含解析人民版
- 學校視頻監(jiān)控配置情況匯報
- 鋼結(jié)構廠房工程施工要點
- 2024年湖北三峽職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 平安福產(chǎn)說會修正版
- 八年級物理下冊121杠桿課件新版新人教版
- 二零二五年度高校畢業(yè)生就業(yè)見習實習實訓基地安全管理合同3篇
- 高一上半學期總結(jié)教學課件
- 外科對非計劃再手術原因分析品管圈魚骨圖
- 明朝歷代內(nèi)閣成員
- 高速公路初步設計匯報課件
- 民法典法律知識普及講座村居版本
- 鋼爪校直安全技術操作規(guī)程
- 機動車維修竣工出廠合格證
- 申根簽證申請表模板
- 陜西延長石油精原煤化工有限公司 60 萬噸 - 年蘭炭綜合利用項目 ( 一期 30 萬噸 - 年蘭炭、1 萬噸 - 年金屬鎂生產(chǎn)線)竣工環(huán)境保護驗收調(diào)查報告
- 企業(yè)會計準則、應用指南及附錄2023年8月
- 2022年浙江省事業(yè)編制招聘考試《計算機專業(yè)基礎知識》真題試卷【1000題】
評論
0/150
提交評論