![C語言實驗指導書全教程_第1頁](http://file4.renrendoc.com/view/4787f74fd2b0642dd79da5f13a996af9/4787f74fd2b0642dd79da5f13a996af91.gif)
![C語言實驗指導書全教程_第2頁](http://file4.renrendoc.com/view/4787f74fd2b0642dd79da5f13a996af9/4787f74fd2b0642dd79da5f13a996af92.gif)
![C語言實驗指導書全教程_第3頁](http://file4.renrendoc.com/view/4787f74fd2b0642dd79da5f13a996af9/4787f74fd2b0642dd79da5f13a996af93.gif)
![C語言實驗指導書全教程_第4頁](http://file4.renrendoc.com/view/4787f74fd2b0642dd79da5f13a996af9/4787f74fd2b0642dd79da5f13a996af94.gif)
![C語言實驗指導書全教程_第5頁](http://file4.renrendoc.com/view/4787f74fd2b0642dd79da5f13a996af9/4787f74fd2b0642dd79da5f13a996af95.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2C語言程序設計》試驗教學大綱一、本試驗課的性質(zhì)、任務與目的本試驗課目的是使學生把握C語言編程的常用方法,以任務驅(qū)動教學法,重點培育學生的編程力氣C語言中的各個學問點編寫嚴密地結(jié)合起來,以提高學生能靈敏運用的學問分析問題和解決問題的力氣。二、本試驗課所依據(jù)的課程根本理論本試驗課基于C語言的語法和詞法規(guī)章、數(shù)據(jù)的表示及算法的處理,而語法及算法正是高級語言程序設計的主要爭論對象CC語言是一種應用廣泛構(gòu)造化程序設計語言,本課程介紹C語言的根本概念、根本語法和編程方法,重點描述C語言的構(gòu)造化的特征,并通過本課程的學習,使學生把握確定的構(gòu)造化程序設計的學問,以及用C語言編寫程序的力氣。三、試驗類型與要求每做好試驗的預備工作;寫出預習報告,畫出流程圖,要求獨立完成。每序號實名驗稱內(nèi)提容要組人試驗時數(shù)試驗要求試驗類別備注數(shù)1C簡潔的C程序編譯、運行12必做驗證性2挨次構(gòu)造程序設計含輸入\輸出語句的簡潔程序14必做驗證性3選擇構(gòu)造程序設計if\switch14必做驗證性4循環(huán)構(gòu)造程序設計while\do-while\for16必做驗證性5數(shù)組的定義及其應用一維、二維、字符數(shù)組的定義與運用14必做驗證性6函數(shù)的定義及其應用函數(shù)的定義、調(diào)用與使用14必做驗證性7構(gòu)造體的定義及其應用構(gòu)造體類型及其變量、構(gòu)造體數(shù)組14必做驗證性8指針的定義及其應用指針變量的定義及多方面的應用12必做驗證性9文件的應用磁盤文件的操作12必做驗證性10綜合性試驗軟件系統(tǒng)小程序18必做綜合性四、每組人數(shù)與試驗學時數(shù)140學時五、考核方式與評分方法試驗總成績=出勤狀況*10%+試驗報告*20%+尋常*30%+試驗內(nèi)容*40%六、本試驗課配套教材或試驗指導書教材:蘇小紅主編.C2023.7參考書:[1]何欽銘,顏暉主編.C語言程序設計,高等教育出版社,十一五規(guī)劃教材,2023.1[2]顏暉主編.C語言程序設計試驗指導,高等教育出版社,2023.1張引,何欽銘等.C程序設計根底課程設計,浙江大學出版社,2023.9譚浩強.C程序設計題解與上機指導.北京:清華大學出版社.202333版[5]譚浩強.C程序設計試題匯編.北京:清華大學出版社.202332版夏寬理.C語言程序設計.北京:中國鐵道出版社.202321版夏寬理.C語言程序設計上機指導與習題解答.北京:中國鐵道出版社.2023.2[8]王士元.C高級有用程序設計.北京:清華大學出版社.19961月第1版[9]譚浩強.C程序設計.北京:清華大學出版社.202333版七、試驗報告要求上機試驗目的在于:①通過驗證課本中的內(nèi)容及自己編寫的程序,加深對課本中詞法、語法的掌握;②生疏所用的C語言開發(fā)環(huán)境;③上機調(diào)試自己的程序,學會編程,重要是能上機調(diào)試通過,調(diào)試閱歷是通過自己的直接實踐來累積。完成調(diào)試過程,自行解決編譯錯誤;③試驗完畢,認真編寫試驗報告0分。要求認真編寫試驗報告。報告內(nèi)容應包含以下內(nèi)容:試驗題目試驗目的和要求解題思路調(diào)試過程〔試驗過程消滅的問題及解決的方法或尚未解決的問題〕程序代碼及運行結(jié)果試驗結(jié)果分析教師評語其次局部:C語言程序設計的運行環(huán)境VC++6.0------VC++6.0集成開發(fā)環(huán)境的使用在眾多的面對對象程序設計語言中,Microsoft公司的VC++6.0獨樹一幟,是一個集程序編輯、編譯、連接和調(diào)試于一體的CWindowsVCC1、啟動VisualC++6.0開發(fā)環(huán)境2、創(chuàng)立一個工程〔1〕在VisualC++6.0開發(fā)環(huán)境主窗口,單擊File菜單中的New選項,顯示一個New對話框,如下:ProjectsWin32ConsoleApplocation,并在右側(cè)相應的文本框中填入工程的路徑和名稱在彈出的Win32ConsoleApplocation-Step1of1對話框中選擇Anemptyproject單項選擇項,然后Finish.(4)最終在NewProjectInformation對話框中單擊OK。3、建立C源程序文件選擇菜單命令Project|AddtoProject|New,New對話框。310在New對話框的Files中選擇C++Source在New對話框的Files中選擇C++SourceFile,并寫入文件名,單擊OK4、編輯C語言源程序在文件編輯窗口中輸入源代碼選擇File|Save,保存程序5、建立并運行可執(zhí)行程序選擇菜單命令Build|ExecuteFilename.exe運行程序,觀看顯示的內(nèi)容6、關閉工作空間選擇菜單命令File|CloseWorkspace關閉工作空間。例:從鍵盤上輸入兩個整數(shù),輸出兩者中的較大數(shù)。例:從鍵盤上輸入兩個整數(shù),輸出兩者中的較大數(shù)。1、建一CPP2、編譯、連接后,從鍵盤上輸入12,34<回車>,則可查看程序運行結(jié)果:2、編譯、連接后,從鍵盤上輸入12,34<回車>,則可查看程序運行結(jié)果:第三局部:試驗內(nèi)容試驗一:生疏VC++6.0運行環(huán)境【目的與要求】1VCC2C3CC【試驗內(nèi)容】1、題目:由鍵盤輸入兩個整數(shù),計算并輸出兩個數(shù)之和。2、程序代碼:#include“stdio.h”voidmain{inta,b,sum;printf(“Pleaseinputtwointegernumbers:\n”);scanf(“%d%d”,&a,&b);sum=a+b;printf(“%d+%d=%d”,a,b,sum);}3、具體操作:再進展調(diào)試,直到?jīng)]有語法錯誤。運行后,依以下不同的方式輸入數(shù)據(jù),查看程序執(zhí)行結(jié)果。①12<Spacebar>34 ↙②12↙34↙③12<Tab>34↙【試驗分析與爭論】1C2、分析調(diào)試過程中常見的錯誤提示和解決策略。3、把握調(diào)試過程中問題解決的方法和思路DIY】一、改錯:實現(xiàn)求三個數(shù)的平均值。#include<stdio.h>voidmain{ floata,b,c,sum;float average;a=10; b=20; average==sum/3;printf(“theaverageis%4d”,average);}4小數(shù)。#include“stdio.h”voidmain{ 1 a,b,c;printf(“pleaseentertwonumbers”);scanf(“%f%f”,&a,&b);c= 2 ;printf(“c= 3 ”,c);}三、編程1、編寫程序,實現(xiàn)對兩個整數(shù)進展求和。2、編寫程序,在屏幕上顯示如以以下圖案。********3、菜單制作。請在屏幕上顯示以下菜單信息。=======MainMenu=======1---Input2---Calculate3---DisplayResult試驗二:挨次構(gòu)造程序設計【目的與要求】〔int、float、char〕變量的定義。2、把握算術運算符、賦值運算符及其表達式的應用。3C【試驗內(nèi)容】一、求出含有兩個實根〔b2-4ac>=0〕的一元二次方程ax2+bx+c=0的解。1、程序分析::a,b,c,x1,x2,deltaa,b,c計算delta=b2-4ac x1=(-b+sqrt(delta))/(2*a)x2=(-b-sqrt(delta))/(2*a)2、程序代碼:#include“stdio.h”#include“math.h”voidmain{floata,b,c,x1,x2;float delta;printf(“Pleaseinputthethreecoef.:\n”);scanf(“%f%f%f”,&a,&b,&c);delta=b*b-4*a*c;x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);printf(“Therootsare:\nx1=%4.2f,x2=%4.2f”,x1,x2);}3、具體操作:輸入程序,按Ctrl+F9。假設在運行后有詞法或語法錯誤,則依據(jù)提示進展修改,再進展調(diào)試,直到?jīng)]有語法錯誤。注:輸入浮點型系數(shù)方法同試驗一。,VeryBeautiful!1、程序分析:2、程序代碼:#include“stdio.h“voidmain(){chara=176,b=219;printf(“%c%c%c%c%c\n“,b,a,a,a,b);printf(“%c%c%c%c%c\n“,a,b,a,b,a);printf(“%c%c%c%c%c\n“,a,a,b,a,a);printf(“%c%c%c%c%c\n“,a,b,a,b,a);printf(“%c%c%c%c%c\n“,b,a,a,a,b);} /*運行程序,觀看結(jié)果*/【試驗分析與爭論】1C2、分析調(diào)試過程中常見的錯誤提示和解決策略。DIY】一、改錯#include<stdio.h>voidmain{inta,b,ab,ac,c;,printf(“pleasseenter3numbers:”)scanf(“%d,%d,%f”;&a,&b,&c);ab=a+b;ac=a*c;printf(“a+b+c=%d\n”,&ab+c);printf(“a*b*c=%d\n”,&ac*b);}二、請寫出下面程序的運行結(jié)果#include“stdio.h“voidmain{ inta=10;longintb=10; floatc=10.0; doubled=10.0;printf(“%d\n%ld\n%f\n%lf\n“,a,b,c,d);printf(“%d\n%ld\n%f\n%lf\n“,b,a,d,c);printf(“%d\n%f\n%lf“,c,c,c);}三、編程求和并將結(jié)果分別以“sum=?”和”?+?=?”形式輸出。如:float a=3.4,b=9.0;結(jié)果顯示:(1)sum=12.40(2)3.4+9.0=12.403moneyyearrate,依據(jù)公式sum〔稅前〕,2公式:sum=money(1+rate)year提示:冪函數(shù)ax用庫函數(shù)pow(a,x)來計算。試驗三:選擇構(gòu)造程序設計【目的與要求】1ifswitch2、把握關系運算符和規(guī)律運算符的運用3ifswitch【試驗內(nèi)容】輸入的x的值,計算出y的值,并輸出。(x+5)2+3x (x>0)y= 0 (x=0)(x-5)2-3x 1、程序分析:2、程序代碼:#include“stdio.h”voidmain{floatx,y;printf(“EnterX:\n”);scanf(“%f”,&x);if(x>0) else if(x==0) y=0;else y=(x-5)*(x-5)-3*x;printf(“x=%.2f y=%.2f\n”,x,y);}1、程序分析:a=0,不是一元二次方程;②b2-4ac=0,有兩個相等的實根;③b2-4ac>0,有兩個不等的實根;④b2-4ac<0,有兩個共軛復根。(1)定義變量:a,b,c,x1,x2,deltaa,b,c假設 (a==0)則,不是一元二次方程否則,計算delta=b2-4ac依據(jù)delta的取值,輸出方程根的狀況:if (b2-4ac==0)x1=x2=-b/(2*a);elseif(b2-4ac>0){x1=(-b+sqrt(delta))/(2*a);x2=(-b-sqrt(delta))/(2*a);}else {x1=(-b+sqrt(-delta)i)/(2*a);else {x1=(-b+sqrt(-delta)i)/(2*a);x2=(-b-sqrt(-delta)i)/(2*a);}2、程序代碼:#include“stdio.h”#include“math.h”voidmain{floata,b,c,x1,x2,d;floatq,p;printf(“Pleaseinputthethreecoef.:\n”);scanf(“%f%f%f”,&a,&b,&c);if(a==0) else{delta=b*b-4*a*c;if(delta==0)printf(“Thetwoequalrootsare:x1,x2=%4.2f”,-b/(2*a));elseif(delta>0){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf(“Thetwoactualrootsare:x1=%4.2f,x2=%4.2f”,x1,x2);}else /*sqr(b)-4*a*c<0*/{p=-b/(2*a);q=sqrt(-d)/(2*a);printf(“Thetwovirtualrootsare:x1=%4.2f+%4.2fi,x2=%4.2f-%4.2fi”,p,q,p,q);}}輸出運算結(jié)果。2+45程序代碼:#include“stdio.h”voidmain{charoperatorfloat operand1,operand2;printf(“Typeinanexpression:\n”);scanf(“%f%c%f”,&operand1,&operator,&operand2);switch(operator){case‘+’:printf(“%.2f+%.2f=%.2f\n”,operand1,operand2,operand1+operand2);break;case‘-’:printf(“%.2f-%.2f=%.2f\n”,operand1,operand2,operand1-operand2);break;case‘*’:printf(“%.2f*%.2f=%.2f\n”,operand1,operand2,operand1*operand2);break;case‘/’:printf(“%.2f/%.2f=%.2f\n”,operand1,operand2,operand1/operand2);break;}}【試驗分析與爭論】1、總結(jié)分支選擇構(gòu)造的設計方法與技巧。2switchDIY】一、改錯:調(diào)試以下程序使之能求出三個數(shù)中的最小數(shù)。#include“stdio.h”voidmain{ inta,b,c;scanf(“%d%d%d”,a,b,c);if((a>b)&&(a>c))if(b<c) else if((a<b)&&(a<c)) printf(“min=%d\n”,a);}二、程序填空#include<stdio.h>voidmain{intyear,month,days;printf(“enteryearandmonth:”);scanf(“%d%d”,&year,&month);switch( 1 ){case1:case3:case5:case7:case8:case10:case12:days=31;break;case4:case6:case9:case11:days=30;break;case2:if〔 2 days=29;else days= 3 ; 4 default:printf(“input error!!!\n”);days=0;}if( 5 )printf(“%d,%dis%ddays\n”,year,month,days);}三、編程三、編程22〔3〕,按從小到大的挨次顯示到顯示器。353101021050%的回空補351〔公里〕與等待時間〔分鐘〕,計算并輸出乘客應支付的車費〔元〕。5score,按以下定義輸出等級。等級劃分:A〔90~100〕、B〔70~89〕、C〔60~69〕、D〔0~59〕試驗四:循環(huán)構(gòu)造程序設計【目的與要求】1、把握三種循環(huán)語句在編程中的使用。3、了解循環(huán)的嵌套調(diào)用過程。4、把握分支、循環(huán)嵌套在程序設計中的應用?!驹囼瀮?nèi)容】一、求以下表達式的值。1/3+3/5+5/7+??+n/(n+2) //n1、程序分析:從上述表達式的形式看,當n1/3n/(n+2)2、程序代碼:#include“stdio.h”voidmain{floati,n,sum=0.0;printf(“Pleaseinputanodd:\n”);scanf(“%f”,&n);for(i=1;i<=n;i=i+2)sum=sum+i/(i+2);printf(“%.2f”,sum);}二、輸入兩個正整數(shù),求出它們的最大公約數(shù)與最小公倍數(shù)。1、算法分析:[輾轉(zhuǎn)相除法]對于兩個數(shù)mn,nm,0,nnm,n,nm,0,n2、程序代碼:#include“stdio.h”#include“math.h”voidmain{intm,n,t,max,min;printf(“Pleaseinputtwointegernumbers:\n”);scanf(“%d%d”,&m,&n);min=m*n;while(n!=0){t=m%n;m=n;n=t;}printf(“最大公約數(shù)為:%d\n”,m);最小公倍數(shù)為:%d\n”,min/m);},50〔假設三種零錢每種都可不消滅〕。1、算法分析運用窮舉算法實現(xiàn):考慮到三種零錢各種可以不消滅,則各自的張數(shù)范圍如下:10--------01020--------0張到550--------0張到22、程序代碼:#include“stdio.h“voidmain{intTencount,Twecount,Fifcount,i=0;for(Tencount=0;Tencount<=10;Tencount++)for(Twecount=0;Twecount<=5;Twecount++)for(Fifcount=0;Fifcount<=2;Fifcount++)if printf(“No-%d:10%d 20%d 50%d\n“,++i,Tencount,Twecount,Fifcount);}【試驗分析與爭論】1for,while,do-while3、三種構(gòu)造的程序嵌套設計。4、多完成小綜合性試驗。DIY】一、改錯#include“stdio.h”voidmain{ int t,s,i,n;scanf(“%d”,&n);for(i=1;i<=n;i++)t=1/I;s=s+t;printf(“s=%f\n”,s);}s=1.0;for(k=1;k<=n;k++)s=s+1.0(k+1);printf(“%f\n”,s);填空完成下述程序,使之與上述程序的功能完全一樣。s=0.0; 1 k=0;do{ s=s+d; 2 d=1.0/(k*(k+1));}while( 3 )printf(“%f\n”,s);三、編程1、輸出2—100之間的全部質(zhì)數(shù)〔兩種方法〕。 *2、求1—100之間,能被5整除的數(shù)之和。 ***3、輸出一有規(guī)章的圖形,如右圖。 *****4、求以下表達式的值: ***(1)1/2-2/3+3/5-??+n/(n+1)〔n為奇數(shù)〕 1/2-2/3+3/5-??-n/(n+1)〔n為偶數(shù)〕(2)a+aa+aaa+aaaa+?? 〔如:a=3,n=4則表達式為:3+33+333+3333〕(3)1!+2!+3!+4!+??+n!、Fibonacci,F(xiàn)ibonacci即:1 1 2 3 5 8 13 21??請輸出前20項數(shù)據(jù),并每行顯示5個數(shù)。6、(1)輸入一個整數(shù),輸出它的位數(shù)。如:輸入126,輸出3?!瞝ong〕,從高位開頭逐位分割并輸出〔或反序輸出〕。例如:輸123456,逐位輸出:1、2、3、4、5、6。的本身。如:13+53+33=15390,90=2*3*3*5。1010試驗五:數(shù)組的定義及其應用【目的與要求】1、把握一維數(shù)組與二維數(shù)組的定義。1、把握一維數(shù)組與二維數(shù)組的定義。2、把握一維數(shù)組的應用〔排序、查找、插入和刪除〕3、把握字符數(shù)組與字符串的區(qū)分與使用。4、把握運用數(shù)組〔含菜單〕編寫小系統(tǒng)【試驗內(nèi)容】和平均成績,并輸出到顯示器上。1、程序分析:運行循環(huán)對其進展初始化〔輸入〕,定義另變sumave2、程序代碼:#include“stdio.h“voidmain{floats[10],sum=0,ave;inti=0;printf(“Pleaseinput10students’score:\n”);while(i<10){scanf(“%f”,&s[i]);sum+=s[i];i++;}ave=sum/10;printf(“sum=%.2f ave=%.2f\n”,sum,ave);}1、算法分析:i;一空間來存儲待插入的整數(shù)。2、程序代碼:#include“stdio.h“voidmain{inta[10]={2,5,7,11,14,19,21,33,67};int i,k,m;printf(“Array:”);for(i=0;i<9;i++)printf(“%4d”,a[i]);printf(“\nPleaseinputthekeyword:”);scanf(“%d”,&m);for(i=0;i<9;i++)if(m<=a[i])break;//查找待插入的位置for(k=9;k>=i;k--)a[k]=a[k-1]; a[i]=m;printf(“Thenewarray:”);for(i=0;i<10;i++)printf(“%4d”,a[i]);}三、編程實現(xiàn):str1。1、算法分析:str1str2要留意的是字符串的完畢標志。2、程序代碼:#include“stdio.h“#include“string.h“voidmain{charstr1[40],str2[20];inti,j,len1,len2;printf(“Enterastring:\n“);gets(str1);len1=strlen(str1);printf(“Entertheotherstring:\n“);gets(str2);len2=strlen(str2);for(i=len1,j=0;j<len2;i++,j++)str1[i]=str2[j];str1[i]=”\0”;printf(“Thenewstring:“);puts(str1);}【試驗分析與爭論】1、分析兩種根本排序算法的核心與兩者的不同之處。2、對有序數(shù)組進展插入、刪除、查找操作的實現(xiàn)。3、在實現(xiàn)字符串處理函數(shù)時的一些留意事宜及其實現(xiàn)方法。4、爭論二維數(shù)組解決矩陣與行列式。DIY】一、改錯:往一個遞增的數(shù)列中插入一個數(shù)。#include“stdio.h“voidmain{inta[11],i=0,key,j;printf(“pleaseentertennumbers\n“);for(i=0;i<10;i++)scanf(“%d”,a[i]);printf(“pleaseenteranumber\n”);scanf(“%f”,&key);for(i=0;i<10;i++)if(key>a[i-1]||key<a[i])for(j=11;j>i;j--)a[j]=a[j-1];a[i]=key;for(i=0;i<11;i++)printf(“%d”,&a[i]);}saa#include<stdio.h>voidmain{ char char s[10]=“fbla”;inti,k,j;for(k=0;s[k]!=‘\0’;k++){ j=0;while(s[k]>=a[i]&&a[j]!=‘\0’)j++;for( 1 ) 2 puts( 3 );}三、編程110maxscoreminscore?!埠崭瘛?,統(tǒng)計其中的大寫字母、小寫字母、空格、數(shù)字以及其他字符的個數(shù)。字符串。如:level.實現(xiàn)兩個字符串拷貝(strcopy(str1,str2))的功能。4、推斷一個(3×3)方陣是不是對稱矩陣。試驗六:函數(shù)的定義及其應用【目的與要求】11C2、把握函數(shù)嵌套調(diào)用、遞歸調(diào)用的設計。3、把握變量、函數(shù)的作用域及存儲類?!驹囼瀮?nèi)容】一、設計一個子函數(shù)對n排序,并在主函數(shù)中進展輸出顯示。1、算法分析:①子函數(shù)的設計 兩個參數(shù)來實現(xiàn),一個是接收主函數(shù)傳來的數(shù)組首地址,另一個是持排序的整數(shù)個數(shù),如fun(inta[],intn);②主函數(shù)的實現(xiàn) 定義一整型數(shù)組,從鍵盤上接收假設干個整數(shù),調(diào)用子函數(shù)fun,再將最終的結(jié)果輸出。2、程序代碼:#include“stdio.h“voidfun(inta[],intn) //選擇排序算法{inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if (a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}}voidmain{inta[10],i;for(i=0;i<10;i++)scanf(“%d“,&a[i]);輸入的數(shù)值序列為:“);for(i=0;i<10;i++)printf(“%4d“,a[i]);printf(“\n“);fun(a,10);輸入的數(shù)值序列為:“);for(i=0;i<10;i++)printf(“%4d“,a[i]);}二、輸入任意兩數(shù)m,n的值,輸出以下表達式的值。m!S= (m n)!n!1、算法分析①編寫一函數(shù)fac(n),返回n!的值。②編寫主函數(shù),從鍵盤輸入m,nfac函數(shù),計算表達式的值,并將其輸出。2、程序代碼#include“stdio.h”longfac(intn){if(n==1)return elsereturnn*fac(n-1);}voidmain{intm,n,t;floats;printf(“pleaseinput2integernumbers:”);scanf(“%d%d”,&m,&n);if(m<n){t=m;m=n;n=t;}printf(“s=%f”,fac(m)/(fac(m-n)fac(n)));}【試驗分析與爭論】1、被調(diào)函數(shù)的實現(xiàn)及調(diào)用過程。2、簡潔遞歸問題的實現(xiàn)。3、變量的作用范圍的正確應用【DIY】#include“stdio.h“#include“stdlib.h“intA(intn,intk){if(k>n)return0;elseif(n==k&&k==0)return1;}voidmain{intn,k;
elsereturnA(n-1,k)+A(n-1,k-1);intA(intn,intk);printf(“pleaseenter2numbers!!!“);scanf(“%d%d“,&n,&k);printf(“%d“,A);}序輸出。如輸入12345,則輸出54321.#include “stdio.h“r(intm){ printf(“%d“, 1 m= 2 ;if( 3 ) 4 ;}voidmain{intn;printf(“input:“);scanf(“%d“, 5 r(n);printf(“\n“);}三、編程1AA5,6,76100以內(nèi)的全部同構(gòu)數(shù)。要求:〔1〕intfun〔intn〕,推斷給定正整數(shù)n1,0。編寫主函數(shù),調(diào)用函數(shù)fun,查找并輸出100以內(nèi)的全部同構(gòu)數(shù)。在輸出同構(gòu)數(shù)的同時,要輸出其平方的值。2、運用遞歸,求任一個字符串的長度。試驗七:指針的定義及其應用【目的與要求】1、了解指針的定義與應用。2、把握使用指針變量的程序設計。3、了解使用函數(shù)指針的程序設計。4、了解使用指針數(shù)組的程序設計?!驹囼瀮?nèi)容】一、先輸入一個正整數(shù)n,nnn程序代碼:#include“stdio.h”#include“stdlib.h”voidmain{intn,sum=0,i,*p;printf(“Entern:”);scanf(“%d”,&n);if((p=(int*)calloc(n,sizeof(int)))==NULL){printf(“Notabletoallocatememory.\n”);exit(1);}printf(“Enter%dintegers:\n”,n);for(i=0;i<10;i++){scanf(“%d”,p+i);sum+=*(p+i);}printf(“sum=%d\n”,sum);free(p);}二、設計一程序,將兩個變量的值進展交換。1、算法分析:編寫一個函數(shù)swap(int*p,int*q),交換兩個參數(shù)指針所指的數(shù)據(jù)。2、程序代碼:#include“stdio.h”voidswap(int*p,int*q);voidmain{inta,b;printf(“Entertwointegers:\n”);scanf(“%d%d”,&a,&b);printf(“BeforeSwap:a=%d,b=%d”,a,b);swap(&a,&b);printf(“AfterSwap:a=%d,b=%d”,a,b);}voidswap(int*p,int*q){intt;t=*p;*p=*q;*q=t;}str1str1。1、算法分析:str1str2接,要留意的是字符串的完畢標志,并運用指向字符串的指針來實現(xiàn)。2、程序代碼:#include“stdio.h“#include“string.h“voidmain{char str1[20],str2[10],*p=str1,*q=str2 printf(“Enterthefirststring:“); gets(str1);len1=strlen(str1); p=p+len1-1;printf(“Enterthesecondstring:“); len2=strlen(str2);for(j=0;j<len2;j++)*(++p)=*(q++);str1[len1+len2]=”\0”;printf(“Thenewstringis:“);puts(str1);}【試驗分析與爭論】1、指針運算符與地址運算符2、動態(tài)申請內(nèi)存空間的好處與應用3、指針作為函數(shù)參數(shù)的實現(xiàn)4、指向數(shù)組指針的應用【DIY】運用指針將以字符串反向。strchange(s)char *s;{char p=s;while(*p!=”\0”) p--;while(s<p){ c=*s;*s++=*p;*p--=c;}}二、程序填空下面程序的功能是實現(xiàn)數(shù)組中元素中值的逆轉(zhuǎn)。#include “stdio.h“voidinvert(int*s,intnum){ int*t,k;t=s+num;while( 1 ){k=*s;*s=*t;*s=*t;*t=k; 2 ; 3 ;}}voidmain{ inti,n=10,a[10]={1,2,3,4,5,6,7,8,9,10};invert(a,n-1);for(i=0;i<10;i++)printf(“%4d“,a[i]);printf(“\n“);}三、編程1int2、運用指向數(shù)組的指針,求一數(shù)組中全部元素之和。3、運用指向字符串的指針,推斷一個字符串是否為回文。低分。要求使用動態(tài)內(nèi)存安排來實現(xiàn)。試驗八:構(gòu)造體的定義及其應用【目的與要求】1、了解構(gòu)造體類型的定義。2、把握構(gòu)造體類型變量的定義與使用。3、把握構(gòu)造體數(shù)組的定義與應用?!驹囼瀮?nèi)容】10據(jù),要求輸出三門課中每一門課的平均成績,以及最高分學生的數(shù)據(jù)。1、算法分析:求解決上述問題。2、程序代碼:#include“stdio.h“typedefstructstu{intnumber;charname[4];floatlen1,len2,len3;floatscore;}student;voidmain{studentstu[10];inti,flag;floatave[3],sum[3]={0,0,0},max=0;for(i=0;i<10;i++){scanf(“%d%s%f%f%f“,&stu[i].number,stu[i].name,&stu[i].len1,&stu[i].len2,&stu[i].len3);stu[i].score=stu[i].len1+stu[i].len2+stu[i].len3;if(stu[i].score>=max){max=stu[i].score;flag=i;}sum[0]+=stu[i].len1; sum[1]+=stu[i].len2;sum[2]+=stu[i].len3;}for(i=0;i<3;i++)ave[i]=sum[i]/3;for(i=0;i<3;i++)printf(“%6.2f“,ave[i]);printf(“\n最高分是:%d %s %6.2f%6.2f %6.2f“,stu[flag].number,stu[flag].name,stu[flag].len1,stu[flag].len2,stu[flag].len3);}【試驗分析與爭論】分析構(gòu)造體的使用方法,比較構(gòu)造體變量與一般變量的使用?!綝IY】structint charname[];int score;}stu;二、程序填空#include structstudent{charname[20];intscore;}stu,*p;voidmain{p=&stu; printf(“entername:“);gets( 1 );printf(“enterscore:“);scanf(“%d“, 2 );printf(“output:%s,%d“,p 3 ,p 4 );}三、編程1、定義一個構(gòu)造體從終端上輸入三個人的年齡、性別、和姓名,然后輸出。2、定義一個構(gòu)造體是該程序能夠按學生的姓名查詢其成績排名和平均成績。3、定義描述日期〔年、月、日〕的構(gòu)造體類型,將其運用于學生信息處理小程序中。試驗九:文件的應用【目的與要求】1、了解運用于文件操作的庫函數(shù)。2、把握對文件進展簡潔的處理?!驹囼瀮?nèi)容】5計算每個人的平均成績,并將原有數(shù)據(jù)及平均成績存放于磁盤文件“stud.txt”中。1、算法分析:stud.txt”,52、程序代碼:#include“stdio.h“type
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二手商鋪租賃合同標準版本(4篇)
- 2025年三方月嫂保姆合同(三篇)
- 辦公室基礎裝修合作協(xié)議
- 液態(tài)堿液罐車配送合同
- 古建筑修繕服務合同
- 南京市藥店裝修合同
- 農(nóng)業(yè)科技成果物流合同
- 商業(yè)用地招商合同
- 裝修怎么做防水施工方案
- 私人模塊化廁所施工方案
- 地下停車場充電樁技術方案建議書
- 幼兒園設施設備安全教育
- 廢舊保溫棉處置合同范例
- 《軌道交通工程盾構(gòu)施工技術》 課件 項目5 盾構(gòu)隧道防水施工
- 2024年數(shù)據(jù)編織價值評估指南白皮書-Aloudata
- 四川省算力基礎設施高質(zhì)量發(fā)展行動方案(2024-2027年)
- 托育園老師培訓
- 人教版八年級英語上冊Unit1-10完形填空閱讀理解專項訓練
- 脊柱外科護理進修心得
- 4.1中國特色社會主義進入新時代+課件-2024-2025學年高中政治統(tǒng)編版必修一中國特色社會主義
- 護理工作中的人文關懷
評論
0/150
提交評論