第一篇:教案1-C語言實(shí)驗(yàn)報(bào)告
機(jī)電學(xué)院機(jī)械專業(yè)—XX
C語言程序設(shè)計(jì)(A)
(2011-2012-1)
實(shí)驗(yàn)報(bào)告1
教學(xué)班級(jí):
機(jī)械091 學(xué)號(hào): 09 姓名:熊燁華
課程教師:胡春安
實(shí)驗(yàn)輔導(dǎo)教師:胡春安
江西理工大學(xué)
機(jī)電學(xué)院機(jī)械專業(yè)—XX
教
案1 Pxx-yy1:/*Pxx-yy1表示第xx頁第yy1題*/
實(shí)驗(yàn)前的源程序:(P16-11)
#include
int a,b,c,d;
cout<<“請(qǐng)輸入今天是星期幾:”< cin>>a; cout<<“請(qǐng)輸入天數(shù):”< cin>>b; c=a+(b%7);&&少了分號(hào) if(c<7) cout<<“今天是星期:”< else { d=c-7 ; &&少了分號(hào) cout<<“今天是星期:”< [Error]C:Documents and SettingsAdministratorMy Documents C-FreeTemp未命名1.cpp:9: parse error before character 0311 實(shí)驗(yàn)后的源程序: #include int a,b,c; cout<<“請(qǐng)輸入今天是星期幾:”< cin>>a; cout<<“請(qǐng)輸入天數(shù):”< cin>>b; c=a+(b%7); if(c>=7) c=c-7; cout<<“今天是星期:”< 江西理工大學(xué) 機(jī)電學(xué)院機(jī)械專業(yè)—XX 方法二: #include int a,b,c; cout<<“請(qǐng)輸入天數(shù):”< cin>>a; b=a%7; switch(b) { case 0: cout<<“今天是星期一”< case 1: cout<<“今天是星期二”< case 2: cout<<“今天是星期三”< case 3: cout<<“今天是星期四”< case 4: cout<<“今天是星期五”< case 5: cout<<“今天是星期六”< case 6: cout<<“今天是星期日”< } Pxx-yy2: Pxx-yy3: 江西理工大學(xué) 計(jì)算機(jī)軟件技術(shù)基礎(chǔ)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)一:線性表的排序與查找 一.實(shí)驗(yàn)內(nèi)容 a)鍵盤輸入一組無序數(shù)據(jù),添加到線性表中; b)排序線性表并輸出排序結(jié)果; c)鍵盤輸入一個(gè)數(shù),并插入到排好序的線性表中(要求插入后的表仍為有序表),輸出結(jié)果; d)鍵盤輸入一個(gè)數(shù),并從線性表中刪除相應(yīng)的數(shù)據(jù),輸出結(jié)果。 二,源程序 // Experiment1.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。// #include “stdafx.h” #include “iostream” #include // 程序?qū)崿F(xiàn)有各種方法,這里給出一個(gè)實(shí)例。 // 定義一個(gè)線性表 const int nMaxSize = 15;// 最大值 int nLen = 0; // 表中元素個(gè)數(shù) int nLinearList[nMaxSize]; // 定義操作 void LSort();void LOut();void LInsert(int n);void LDelete(int n); int main(int argc,TCHAR*argv[]){ // 輸入數(shù)據(jù)并放入線性表中 printf(“Please input datan”);// std::cout << “Please input datan”;int nIn = 0;for(int i = 1;i <= 10;i++){ scanf(“%d”,&nIn);// std::cin >> nIn; nLinearList[i] = nIn; nLen++; } LSort();// 排序線性表 LOut();// 輸出結(jié)果 printf(“Please input a data to insert n”);scanf(“%d”,&nIn);LInsert(nIn);// 輸入一個(gè)數(shù)字,并插入到線性表中 LOut(); printf(“Please input a data to delete n”);scanf(“%d”,&nIn);LDelete(nIn);// 輸入一個(gè)數(shù)字,并從線性表中刪除 LOut(); char chTmp;printf(“Please input a char to finish this program.”);chTmp = getch();return 0;} void LSort() // 冒泡排序,由大到小 { int j,F,k,M; F=nLen;while(F>0) {k=F-1;F=0;for(j=1;j<=k;j++){if(nLinearList[j] M=nLinearList[j];nLinearList[j]=nLinearList[j+1];nLinearList[j+1]=M;F=j; }}} } void LOut(){ printf(“n”);for(int i = 1;i <= nLen;i++){ printf(“%d, ”, nLinearList[i]);} printf(“n”);} void LInsert(int n){ int i,j;i=1;while(i 三 運(yùn)行結(jié)果 實(shí)驗(yàn)2:棧與隊(duì)列的應(yīng)用 一. 實(shí)驗(yàn)內(nèi)容 a)鍵盤輸入算數(shù)表達(dá)式,并放入隊(duì)列當(dāng)中; b)應(yīng)用棧的概念設(shè)計(jì)表達(dá)式求值算法; 輸出表達(dá)式求值結(jié)果 二.源程序 // Experiment2.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。 #include “stdio.h” #include // 程序?qū)崿F(xiàn)有各種方法,這里給出一個(gè)實(shí)例。 const int MAX_LEN = 10;// 字符串的長(zhǎng)度 const int MAX_SIZE = 30;// 棧或隊(duì)的最大元素個(gè)數(shù) // 定義一個(gè)隊(duì)列的結(jié)構(gòu) struct QUEUE { int nMaxSize;// 最大值 int nCount;// 個(gè)數(shù) int nFront;// 頭 int nRear;// 尾 char szQueue[MAX_SIZE][MAX_LEN];}; //定義一個(gè)棧的結(jié)構(gòu) struct STACK { int nMaxSize;// 最大值 int nTop;// 棧頂 char szStack[MAX_SIZE][MAX_LEN];}; // 隊(duì)列的操作 void InitQueue(QUEUE *q,int nMaxSize){ q->nMaxSize=nMaxSize;q->nCount=0;q->nFront=0;q->nRear=0;q->szQueue[MAX_SIZE][MAX_LEN]=0;} void InQueue(QUEUE *q, char *pItem){ if(q->nCount==q->nMaxSize){ printf(“The Queue is full!n”); return;} strcpy(q->szQueue[q->nRear],pItem);if(q->nRear++==MAX_SIZE)q->nRear=0;q->nCount++;} void OutQueue(QUEUE *q, char *pItem){ if(q->nCount==0){ printf(“The Queue is empty!n”); return;} strcpy(pItem,q->szQueue[q->nFront]);if(q->nFront++==MAX_SIZE)q->nFront=0;q->nCount--;} //棧的操作 void InitStack(STACK *s,int nMaxSize){ s->nMaxSize=nMaxSize; s->nTop=0; s->szStack[MAX_SIZE][MAX_LEN]=0;} void PushStack(STACK *s, char *pItem){ char *p;if(s->nTop p=s->szStack[s->nTop]; strcpy(p,pItem); s->nTop++;} else { printf(“The stack overflow!n”);return;} } void PopStack(STACK *s, char *pItem){ char *p;if(s->nTop==0){ printf(“stack is empty!n”); return;} else { p=s->szStack[--s->nTop]; strcpy(pItem,p);} } void GetTopStack(STACK *s, char *pItem){ char *p;char a[10]={0};if(s->nTop==0){ a[0]=';'; strcpy(pItem,a);} else { p=s->szStack[s->nTop-1]; strcpy(pItem,p);} } //字符判斷 int isdigit(char x){ if(x>='0'&&x<='9')return 1;return 0;} int Priority(char *op);// 獲得操作符的優(yōu)先級(jí) void Compute(char *num1, char *num2, char *op, char *chResult);//主函數(shù) void main(){ // 計(jì)算表達(dá)式的值 char x[MAX_LEN]; // 掃描的表達(dá)式 char op[MAX_LEN]; // 棧頂運(yùn)算符 char num1[MAX_LEN], num2[MAX_LEN]; // 兩個(gè)操作數(shù) char chResult[MAX_LEN]; // 運(yùn)算結(jié)果 // ***聲明一個(gè)隊(duì)列 struct QUEUE q1; struct QUEUE *q;// ***聲明OS棧和NS棧 struct STACK OS; struct STACK NS; struct STACK *o; struct STACK *n; int i=0; int j=0; int k=0;//****初始化 q=&q1; o=&OS; n=&NS; InitStack(o,20); InitStack(n,20); InitQueue(q,20); printf(“please input the expression end with //錄入表達(dá)式 do { printf(”nextn“); scanf(”%s“,x); InQueue(q,x);} while(x[0]!=';');printf(”expression n“);while(true){ if(q->nCount!=0) { OutQueue(q, x); printf(”%s“,x); } ”;n“); if(isdigit(x[0])) PushStack(n,x); else { // 是數(shù) // 認(rèn)為是運(yùn)算符,沒有考慮空格等 GetTopStack(o,op);// 獲得OS棧頂運(yùn)算符 if(x[0] == ';' && op[0] == ';') // 掃描結(jié)束 { printf(”n result is “);break;} if(Priority(x)> Priority(op)){ PushStack(o,x);continue;} // 運(yùn)算符的優(yōu)先級(jí)〉棧頂運(yùn)算符 while((Priority(x)<= Priority(op))&&Priority(op)) { PopStack(n,num1); PopStack(n,num2); PopStack(o,op); Compute(num2,num1,op,chResult); PushStack(n,chResult); GetTopStack(o,op); } PushStack(o,x); } } PopStack(n,chResult);printf(”%sn“,chResult);} int Priority(char *op){ int nPriority = 0; switch(op[0]){ case '^': nPriority = 3; break;case '*': case '/': nPriority = 2; break;case '+': // 不大于棧頂運(yùn)算符 case '-': nPriority = 1; break;case ';': nPriority = 0;} return nPriority;} void Compute(char *num1, char *num2, char *op, char *chResult){ double fNum1,fNum2;double fResult = 0;fNum1 = atof(num1);fNum2 = atof(num2);switch(op[0]){ case '^': fResult = pow(fNum1,fNum2); break;case '*': fResult = fNum1*fNum2; break;case '/': fResult = fNum1/fNum2; break;case '+': fResult = fNum1+fNum2; break;case '-': fResult = fNum1-fNum2; break;} } sprintf(chResult,”%.4f",fResult);//把計(jì)算的結(jié)果轉(zhuǎn)化為字符串 return;三.運(yùn)行結(jié)果 實(shí)驗(yàn)三:關(guān)系數(shù)據(jù)語言的應(yīng)用 一、實(shí)驗(yàn)內(nèi)容 查詢學(xué)生出生日期(Sno, Sname, BirthDay);按學(xué)號(hào)順序查詢一個(gè)班級(jí)的所有學(xué)生(Class, Sname);列出學(xué)生選擇各門課程的成績(jī)(Sname, Cname, Grade);列出有過不及格成績(jī)的學(xué)生名單(Sno, Sname, Class);求學(xué)生的平均成績(jī)和總成績(jī)(Sname, PJCJ, ZCJ);查找各科成績(jī)都 >= 85 分的學(xué)生(Sname, Class);將課程號(hào)為“01”的課程名稱修改為“軟件技術(shù)”;修改一名學(xué)生的姓名、性別、年齡;將成績(jī)?yōu)?5~59分的男生的成績(jī)修改為60分;刪除90年以后、80年以前出生的學(xué)生的所有信息(包括選課和成績(jī));刪除一個(gè)班級(jí)的所有學(xué)生;刪除所有數(shù)據(jù)表和數(shù)據(jù)庫。 二 程序清單及結(jié)果: CREATE TABLE Stu(Sno CHAR(4)PRIMARY KEY, Sname CHAR(10), Sex CHAR(2), Age NUMERIC, BirthDay DATETIME, Class CHAR(10),);CREATE TABLE Course(Cno CHAR(2)PRIMARY KEY, Cname CHAR(10), Chour NUMERIC,);CREATE TABLE Score(Sno CHAR(4), Cno CHAR(2), PRIMARY KEY(Sno,Cno), Grade NUMERIC,)Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3626','張小唯','女','18','1995-09-24','電科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3628','王紅','女','19','1994-06-27','電科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3634','李雷','男','20','1992-11-30','電科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3635','張明','男','18','1994-06-03','電科1202');Insert into Stu(Sno,Sname,Sex,Age,BirthDay,Class)values('3641','趙小東','男','20','1993-03-15','電科1202'); Insert into Course(Cno,Cname,Chour)values('01','asdf','12');Insert into Course(Cno,Cname,Chour)values('02','qwer','23');Insert into Course(Cno,Cname,Chour)values('03','zxcv','34' Insert into Score(Sno,Cno,Grade)values('3570','01','97');Insert into Score(Sno,Cno,Grade)values('3580','01','54');Insert into Score(Sno,Cno,Grade)values('3584','01','56');Insert into Score(Sno,Cno,Grade)values('3583','01','88');Insert into Score(Sno,Cno,Grade)values('3574','02','87');Insert into Score(Sno,Cno,Grade)values('3575','03','79');Insert into Score(Sno,Cno,Grade)values('3576','02','68');Insert into Score(Sno,Cno,Grade)values('3577','03','58');Insert into Score(Sno,Cno,Grade)Values('3578','03','98');Insert into Score(Sno,Cno,Grade)values('3626','01','97');Insert into Score(Sno,Cno,Grade)values('3628','01','54');Insert into Score(Sno,Cno,Grade)values('3637','01','56');Insert into Score(Sno,Cno,Grade)values('3640','01','88');Insert into Score(Sno,Cno,Grade)values('3657','02','87');Insert into Score(Sno,Cno,Grade)values('3675','03','79');Insert into Score(Sno,Cno,Grade)values('3676','02','68');Insert into Score(Sno,Cno,Grade)values('3677','03','58');Insert into Score(Sno,Cno,Grade)Values('3678','03','98'); 1.查詢學(xué)生出生日期(Sno, Sname, BirthDay); Select Sno,Sname,BirthDay from Stu; 2.按學(xué)號(hào)順序查詢一個(gè)班級(jí)的所有學(xué)生(Class, Sname); Select Class,Sname from Stu order by Sno; 3.列出學(xué)生選擇各門課程的成績(jī)(Sname, Cname, Grade); Select Sname,Cname,Grade from Stu,Course,Score where Stu.Sno=Score.Sno and Course.Cno=Score.Cno; 4.列出有過不及格成績(jī)的學(xué)生名單(Sno, Sname, Class);Select distinct Stu.Sno,Sname,Class from Stu,Score where Stu.Sno=Score.Sno and Grade<60; 5.求學(xué)生的平均成績(jī)和總成績(jī)(Sname, PJCJ, ZCJ); Select Sname,avg(Grade)PJCJ,sum(Grade)ZCJ from Stu,Score where Score.Sno=Stu.Sno group by Stu.Sname; 6.查找各科成績(jī)都 >= 85 分的學(xué)生(Sname, Class); Select Sname,Class from Stu where exists(Select * from Score where Stu.Sno=Score.Sno and Score.Cno='01' and Score.Grade>=85)and exists(Select * from Score where Stu.Sno=Score.Sno and Score.Cno='02' and Score.Grade>=85)and exists(Select * from Score where Stu.Sno=Score.Sno and Score.Cno='03' and Score.Grade>=85); 7.將課程號(hào)為“01”的課程名稱修改為“軟件技術(shù)” Update Course set Cname='軟件技術(shù)' where Cno='01'; 8.修改一名學(xué)生的姓名、性別、年齡; Update Stu set Sname='aha',Sex='wm',age='10'where Sno='3626'; 9.將成績(jī)?yōu)?5~59分的男生的成績(jī)修改為60分 Update Score set Grade=60 where Sno in(Select Sno from Stu where Sex='女')and Grade between 55 and 59; 10.刪除90年以后、80年以前出生的學(xué)生的所有信息(包括選課和成績(jī))Delete Stu where Sno in(select Sno from Stu where BirthDay < '1980-01-01' or BirthDay>'1990-12-31') 11.刪除一個(gè)班級(jí)的所有學(xué)生 Delete from Stu where Class='電科1202'; 12.刪除所有數(shù)據(jù)表和數(shù)據(jù)庫 Drop database MyDB; 南昌大學(xué)實(shí)驗(yàn)報(bào)告 學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): √ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新 實(shí)驗(yàn)日期: 實(shí)驗(yàn)成績(jī): 實(shí)驗(yàn)類型:□ 驗(yàn)證 □一.實(shí)驗(yàn)名稱 實(shí)驗(yàn)3 控制語句 二.實(shí)驗(yàn)?zāi)康?/p> 1.熟練掌握if、if…else、if……elseif語句和switch語句格式及使用方法,掌握if語句中的嵌套關(guān)系和匹配原則,利用if語句和switch語句實(shí)現(xiàn)分支選擇結(jié)構(gòu)。 2.熟練掌握while語句、do……while語句和for語句格式及使用方法,掌握三種循環(huán)控制語句的循環(huán)過程以及循環(huán)結(jié)構(gòu)的嵌套,利用循環(huán)語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。 3.掌握簡(jiǎn)單、常用的算法,并在編程過程中體驗(yàn)各種算法的編程技巧。進(jìn)一步學(xué)習(xí)調(diào)試程序,掌握語法錯(cuò)誤和邏輯錯(cuò)誤的檢查方法。 三.實(shí)驗(yàn)內(nèi)容 1. 選擇結(jié)構(gòu)程序設(shè)計(jì); 2. if語句的使用; 3. 使用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu); 4. 三種循環(huán)語句的應(yīng)用; 5. 循環(huán)結(jié)構(gòu)的嵌套; 6. break和continue語句的使用。 三.實(shí)驗(yàn)環(huán)境 PC微機(jī) DOS操作系統(tǒng)或 Windows 操作系統(tǒng) Visual c++程序集成環(huán)境 四.實(shí)驗(yàn)內(nèi)容和步驟 本實(shí)驗(yàn)要求事先編好解決下面問題的程序,然后上機(jī)輸入程序并調(diào)試運(yùn)行程序。學(xué)會(huì)單步調(diào)試和斷點(diǎn)調(diào)試程序及變量跟蹤方法。 1. 任意輸入4個(gè)整數(shù),要求按由小到大的順序輸出。 2.編程實(shí)現(xiàn):輸入一個(gè)整數(shù),將其數(shù)值按照①小于10,②10~99,③100~999,④1000以上四個(gè)類別分類并顯示。 要求:(1)將變量定義為整型。 (2)輸入整數(shù)前,利用puts()/printf()給出提示信息。 (3)輸出結(jié)果時(shí)要有必要的說明,例如:輸入358時(shí),顯示358 is 100 to 999。(4)該程序利用if語句實(shí)現(xiàn)。 運(yùn)行程序,分別輸入9,21,321,4321數(shù)據(jù)檢查輸出信息的正確性。 3.編寫程序:根據(jù)公式 ?26?1111???......?,輸出 π的值。 122232n2要求: (1)變量π為單精度類型,n為整型; (2)計(jì)算當(dāng)n的取值分別為20,50,100,200時(shí)的π值,說明什么問題? (3)修改程序,不給出n值,而改為求π值,直到最后一項(xiàng)的數(shù)值小于10-4 為止。 (4)對(duì)修改后的程序,輸出π值以及總的項(xiàng)數(shù)n。輸出格式為:π=值;n=值。 4.從鍵盤輸入一個(gè)0~1000之間的任意整數(shù),輸出該整數(shù)的所有因子(例如:輸入12,其因子為1,2,3,4,6,12)。 要求: (1)采用while循環(huán)語句實(shí)現(xiàn)。 (2)輸出格式為:Input:12 Output:1,2,3,4,6,12 5.從鍵盤輸入學(xué)生的考試成績(jī),利用計(jì)算機(jī)將學(xué)生的成績(jī)劃分等級(jí)并輸出。學(xué)生的成績(jī)可分成5個(gè)等級(jí),90-100分為A級(jí),80-89分為B級(jí),70-79分為C級(jí),60-69分為D級(jí),0-59分為E級(jí)。要求在輸入負(fù)數(shù)時(shí),給出錯(cuò)誤提示。 ① 事先編好程序,要求分別用if語句和switch語句實(shí)現(xiàn)。運(yùn)行程序,并檢查結(jié)果是否正確。 ② 再運(yùn)行一次程序,輸入分?jǐn)?shù)為負(fù)值(如-70),這顯然是輸入時(shí)出錯(cuò),不應(yīng)給出等級(jí)。修改程序,使之能正確處理任何數(shù)據(jù)。當(dāng)輸入數(shù)據(jù)大于100或小于0時(shí),通知用戶“輸入數(shù)據(jù)錯(cuò)”,程序結(jié)束 6.某航空公司規(guī)定:在旅游旺季7~9月份,如果訂票20張及其以上,優(yōu)惠票價(jià)的10%,20張以下,優(yōu)惠5%;在旅游淡季1~6月份,10~12月份,訂票20張及其以上,優(yōu)惠票價(jià)的20%,20張以下,優(yōu)惠10%。編寫一個(gè)C程序,根據(jù)月份和旅客訂票張數(shù)決定優(yōu)惠率。已知機(jī)票單價(jià),請(qǐng)算出旅客的總付款。請(qǐng)使用不同的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試。7.計(jì)算并輸出1000以內(nèi)最大的10個(gè)素?cái)?shù)以及它們的和。 要求: (1)在程序內(nèi)部加必要的注釋。 (2)由于偶數(shù)不是素?cái)?shù),可以不考慮對(duì)偶數(shù)的處理。 (3)雖然在1000以內(nèi)的素?cái)?shù)超過10個(gè),但是要對(duì)1000以內(nèi)不夠10個(gè)素?cái)?shù)的情況進(jìn)行處理。 (4)輸出形式為:素?cái)?shù)1+素?cái)?shù)2+素?cái)?shù)+…+素?cái)?shù)10 = 總和值。 五.實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果 /*寫出實(shí)驗(yàn)內(nèi)容的算法(用流程圖表示)、完整的程序、結(jié)果并能對(duì)結(jié)果的正確性及上機(jī)時(shí)產(chǎn)生的問題進(jìn)行分析,注意程序變量命名應(yīng)見名知意、有適當(dāng)?shù)淖⑨?,程序書寫?guī)范*/ 【習(xí)題1】 【設(shè)計(jì)思路】 :輸入a,b,c,d四個(gè)數(shù),將四個(gè)數(shù)兩兩進(jìn)行比較,如果前者大于后者,則將兩數(shù)的值交換,否則不變。這樣重復(fù)操作6次,最后輸出a,b,c,d的值,則a,b,c,d從大到小排列。 【數(shù)據(jù)輸入】輸入整型變量 a,b,c,d 【數(shù)據(jù)輸出】輸出 a,b,c,d的值,使其從大到小排列?!驹闯绦?qū)崿F(xiàn)】 #include int a,b,c,d,t;printf(“please input four numbers(example:1 2 3 4):n”);scanf(“%d %d %d %d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;}/* 實(shí)現(xiàn)a,b的交換 */ if(a>c){t=a;a=c;c=t;}/* 實(shí)現(xiàn)a,c的交換 */ if(a>d) } {t=a;a=d;d=t;}/* 實(shí)現(xiàn)a,d的交換 */ if(b>c){t=b;b=c;c=t;}/* 實(shí)現(xiàn)b,c的交換 */ if(b>d){t=b;b=d;d=t;}/* 實(shí)現(xiàn)b,d的交換 */ if(c>d){t=c;c=d;d=t;}/* 實(shí)現(xiàn)c,d的交換 */ printf(“%d,%d,%d,%d”,a,b,c,d);【結(jié)果及截圖】 答:輸入64 3 5 23,運(yùn)行結(jié)果為3,5,23,64,其截圖如下: 輸入格式的提示。 【修改后程序?qū)崿F(xiàn)及結(jié)果】 /*習(xí)題2、4請(qǐng)?zhí)砑哟瞬?/ 【問題分析】 輸入數(shù)據(jù)時(shí),沒有按正確格式輸入,所以在輸入數(shù)據(jù)之前,應(yīng)該給出一個(gè)【習(xí)題2】 【設(shè)計(jì)思路】 【數(shù)據(jù)輸入】 輸入整型變量x。【數(shù)據(jù)輸出】 輸出x的范圍?!驹闯绦?qū)崿F(xiàn)】 #include main() { int x; printf(“Please input a number:n”); scanf(“%d”,&x); printf(“%d is ”,x); if(x<10)printf(“l(fā)ess than 10n”); else if(x<100)printf(“10 to 99n”); else if(x<1000)printf(“100 to 999n”); else printf(“more than 1000n”); return 0; } 【結(jié)果及截圖】 答:運(yùn)行程序,分別輸入9,21,321,4321,截圖如下: 【習(xí)題3】 【源程序?qū)崿F(xiàn)】 #include #include main() { int n,N; float pi,sum=0; printf(“Please input a number:nN=”); scanf(“%d”,&N); for(n=1;n<=N;n++) sum+=1.0/(n*n); pi=sqrt(6*sum); printf(“pi=%f”,pi); return 0;} 修改后的程序: #include int n=0; float pi,sum=0; do { n++; sum+=1.0/(n*n); }while(1.0/(n*n)>=1e-4); pi=sqrt(6*sum); printf(“pi=%f;n=%d”,pi,n); return 0;} 【結(jié)果i及截圖】 答:計(jì)算當(dāng)N的取值分別為20,50,100,200時(shí),截圖如下: 【結(jié)果ii及截圖】 【習(xí)題4】 【源程序?qū)崿F(xiàn)】 #include 【結(jié)果及截圖】 答:輸入30,得其因式為 1,2,3,5,6,10,15,30,截圖如下: 【習(xí)題5】 【源程序?qū)崿F(xiàn)】 If 語句 #include int num; printf(“Input:”); scanf(“%d”,&num); if(num<0||num>100)printf(“The number is wrong!”); else if(num<=59)printf(“E”); else if(num<=69)printf(“D”); else if(num<=79)printf(“C”); else if(num<=89)printf(“B”); else printf(“A”); return 0;} Switch 語句 #include int num,n; printf(“Input:”); scanf(“%d”,&num); n=num/10; switch(n) { case 0: case 1: case 2: case 3: case 4: case 5: printf(“E”);break; case 6: printf(“D”);break; case 7: printf(“C”);break; case 8: printf(“B”);break; case 9: case 10: printf(“A”);break; default: printf(“error!”); } return 0;} 【問題分析】 【習(xí)題6】 【源程序?qū)崿F(xiàn)】 #include 【習(xí)題7】 【源程序?qū)崿F(xiàn)】 #include 六.簡(jiǎn)答題 七、實(shí)驗(yàn)總結(jié)及體會(huì) C語言程序設(shè)計(jì)(B) (2010-2011-2) 實(shí)驗(yàn)報(bào)告 教學(xué)班級(jí): 學(xué)號(hào): 姓名: 課程教師: 實(shí)驗(yàn)輔導(dǎo)教師: 江西理工大學(xué) 自由編輯的程序 一、實(shí)驗(yàn)前的源程序: //任意整數(shù)的疊加 #include 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名10.cpp:7: parse error before `for' [Error] D:Program FilesC-Free 4temp未命名10.cpp:7: parse error before `)' 構(gòu)建中止 未命名10: 2 個(gè)錯(cuò)誤, 0 個(gè)警告 實(shí)驗(yàn)后的源程序: //任意整數(shù)的疊加 #include int i,j,sum=0;printf(“please input a int numbern”);scanf(“%d”,&j);for(i=0;i<=j;i++)sum=sum+i;printf(“此數(shù)的疊加=%dn”,sum);} 二、實(shí)驗(yàn)前的源程序: /*小寫字母轉(zhuǎn)大寫字母*/ #include 江西理工大學(xué) } c2='s';c1=c1-32;c2=c2-32;printf(“%c,%cn”,c1,c); 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名11.cpp:9: `c' undeclared(first use this function)[Error] D:Program FilesC-Free 4temp未命名11.cpp:9:(Each undeclared identifier is reported only once [Error] D:Program FilesC-Free 4temp未命名11.cpp:9: for each function it appears in.)構(gòu)建中止 未命名11: 3 個(gè)錯(cuò)誤, 0 個(gè)警告 實(shí)驗(yàn)后的源程序: /*小寫字母轉(zhuǎn)大寫字母*/ #include 三、實(shí)驗(yàn)前的源程序: /*查看某一年是否為閏年*/ #include { if(year%100==0) { if(year%400==0) i=1; else 江西理工大學(xué) i=0; } else i=1; } else i=0;if(i) printf(“%d 是閏年n”,year);else printf(“%d 不是閏年n”,year);} 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名14.cpp:15: parse error before `else' [Error] D:Program FilesC-Free 4temp未命名14.cpp:25: parse error at end of input 構(gòu)建中止 未命名14: 2 個(gè)錯(cuò)誤, 0 個(gè)警告 實(shí)驗(yàn)后的源程序: /*查看某一年是否為閏年*/ #include { if(year%100==0) { if(year%400==0) i=1; else i=0; } else i=1; } else i=0;if(i) 江西理工大學(xué) printf(“%d 是閏年n”,year);else printf(“%d 不是閏年n”,year);} 數(shù)據(jù)的輸入和輸出 四、程序改錯(cuò)題 改錯(cuò)前的源程序;#include #include 改錯(cuò)前的源程序;#include 江西理工大學(xué) #include long x=7654123;x*=10;printf(“x=%7d”,x);} 改錯(cuò)前的源程序: #include #include 五、程序編寫題:已知char ch’b’;int i=3 ,j=5;float x=22.354,y=435.6789;根據(jù)下面的輸出結(jié)果編寫程序。ch =’b’,ASCII=98 i=3□□□□□□j=5 x=22.35□□□y=435.68 實(shí)驗(yàn)前的源程序: #include 江西理工大學(xué){ char ch='b';int i=3,j=5;float x=22.354,y=435.6789;printf(“ch='%c',ASCII=%dn”,ch,ch);printf(“i=%d j=%dn”,i,j);printf(“x=%.2f y=%.2fn”,x,y);} 實(shí)驗(yàn)錯(cuò)誤報(bào)告:無 實(shí)驗(yàn)后的源程序: #include j=%dn”,i,j);printf(“x=%.2f y=%.2fn”,x,y);} 六、從鍵盤輸入一行字符,統(tǒng)計(jì)其中小寫字母、大寫字母和其它字符的個(gè)數(shù): 實(shí)驗(yàn)前的源程序: #include “stdio.h” void main(){ printf(“請(qǐng)任意輸入一串字符:n”); char ch,sum1=0,sum2=0,other=0; ch=getchar(); while(c!='n') { if(c>='A'&&c<='Z')sum1++; else if(c>='a'&&c<='z')sum2++; else other++; c=getchar(); } printf(“大寫字母的個(gè)數(shù):%dn”,sum1);printf(“小寫字母的個(gè)數(shù):%dn”,sum2); 江西理工大學(xué)printf(“其他字符母?jìng)€(gè)數(shù):%dn”,other);} 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名7.cpp:7: `c' undeclared(first use this function)[Error] D:Program FilesC-Free 4temp未命名7.cpp:7:(Each undeclared identifier is reported only once [Error] D:Program FilesC-Free 4temp未命名7.cpp:7: for each function it appears in.)構(gòu)建中止 未命名7: 3 個(gè)錯(cuò)誤, 0 個(gè)警告 實(shí)驗(yàn)后的源程序: #include “stdio.h” void main(){ printf(“請(qǐng)任意輸入一串字符:n”); char ch,sum1=0,sum2=0,other=0; ch=getchar(); while(ch!='n') { if(ch>='A'&&ch<='Z')sum1++; else if(ch>='a'&&ch<='z')sum2++; else other++; ch=getchar(); } printf(“大寫字母的個(gè)數(shù):%dn”,sum1);printf(“小寫字母的個(gè)數(shù):%dn”,sum2);printf(“其他字符母?jìng)€(gè)數(shù):%dn”,other);} 七、使用以下公式求∏的近似值,要求精確到最后一項(xiàng)的絕對(duì)值小于10e-4 ∏/4=1-1/3+1/5-1/7+…… 實(shí)驗(yàn)前的源程序: #include “stdio.h” #include “math.h” main(){ 江西理工大學(xué) } float sum=0;int i,j;for(i=1;;i++){ j=2*i-1;if(1.0/j>0.0001){ sum+=pow(-1,i+1)*(1.o/j);continue;break;} printf(“∏=%fn”,sum*4.0); 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名9.cpp:13: nondigits in number and not hexadecimal [Error] D:Program FilesC-Free 4temp未命名9.cpp:19: parse error at end of input 構(gòu)建中止 未命名9: 2 個(gè)錯(cuò)誤, 0 個(gè)警告 實(shí)驗(yàn)后的源程序: #include “stdio.h” #include “math.h” main(){ float sum=0;int i,j;for(i=1;;i++){ j=2*i-1;if(1.0/j>0.0001){ sum+=pow(-1,i+1)*(1.0/j);continue;} break;} printf(“∏=%fn”,sum*4.0);} 八、用選擇法對(duì)10個(gè)整數(shù)排序: 實(shí)驗(yàn)前的源程序: 江西理工大學(xué)#include scanf(“%d”,a[i]);} printf(“n”);for(i=0;i<10;i++)for(j=0;j<10-j;j++){ if(a[j]>a[j+1]) { k=a[j]; a[j]=a[j+1]; k=a[j+1];} printf(“這10個(gè)整數(shù)從小到大排列為:”);for(j=0;j<10;j++){ printf(“%d ”,a[j]);} printf(“n”);printf(“這10個(gè)整數(shù)從大到小排列為:”);for(j=9;j>=0;j--){ printf(“%d ”,a[j]);} 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名1.cpp:33: parse error at end of input 構(gòu)建中止 未命名1: 1 個(gè)錯(cuò)誤, 0 個(gè)警告 實(shí)驗(yàn)后的源程序: //用選擇法對(duì)10個(gè)整數(shù)排序 #include 江西理工大學(xué) int i,j,k;for(i=0;i<10;i++){ scanf(“%d”,a[i]);} printf(“n”);for(i=0;i<10;i++)for(j=0;j<10-j;j++){ if(a[j]>a[j+1]){ k=a[j]; a[j]=a[j+1]; k=a[j+1];} } printf(“這10個(gè)整數(shù)從小到大排列為:”);for(j=0;j<10;j++){ printf(“%d ”,a[j]);} printf(“n”);printf(“這10個(gè)整數(shù)從大到小排列為:”);for(j=9;j>=0;j--){ printf(“%d ”,a[j]);} } 九、求一個(gè)3*3的整數(shù)矩陣對(duì)角線元素之積: 實(shí)驗(yàn)前的源程序: #include scanf(“%d”,&a[i][j])} for(i=0;i<3;i++) 江西理工大學(xué) { for(j=0;j<3;j++) { printf(“%d ”,a[i][j]); } printf(“n”); } printf(“n”); for(i=0;i<3;i++) { for(j=0;j<3;j++) if(i=j) ji*=a[i][j]; printf(“主對(duì)角線的積為:%dn”,ji); } } 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名4.cpp:11: parse error before `}' 構(gòu)建中止 未命名4: 1 個(gè)錯(cuò)誤, 0 個(gè)警告 實(shí)驗(yàn)后的源程序: #include scanf(“%d”,&a[i][j]);} for(i=0;i<3;i++){ for(j=0;j<3;j++) { printf(“%d ”,a[i][j]); } printf(“n”); } 江西理工大學(xué) printf(“n”); for(i=0;i<3;i++) { for(j=0;j<3;j++) if(i=j) ji*=a[i][j]; printf(“主對(duì)角線的積為:%dn”,ji); } } 十、將一個(gè)數(shù)組中的值按你需從新存放。例如,原來順序?yàn)?,6,5,4,1。要求改為1,4,5,6,8。 實(shí)驗(yàn)前的源程序: #include scanf(“%d”,&a[i]);} for(i=0;i t=a[i]; a[i]=a[j-i-1]; t=a[j-i-1];} printf(“該數(shù)組逆序排列為:”); for(i=0;i printf(“%d ”,a[i]);printf(“n”);} 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] D:Program FilesC-Free 4temp未命名3.cpp:25: parse error at end of input 構(gòu)建中止 未命名3: 1 個(gè)錯(cuò)誤, 0 個(gè)警告 江西理工大學(xué)實(shí)驗(yàn)后的源程序: #include scanf(“%d”,&a[i]);} for(i=0;i t=a[i]; a[i]=a[j-i-1]; a[j-i-1]=t;} printf(“該數(shù)組逆序排列為:”); for(i=0;i printf(“%d ”,a[i]);} printf(“n”);} 江西理工大學(xué) C語言程序設(shè)計(jì)(B) (2010-2011-2) 實(shí)驗(yàn)報(bào)告 教學(xué)班級(jí): 學(xué)號(hào): 姓名: 課程教師:王華金 實(shí)驗(yàn)輔導(dǎo)教師:王華金 江西理工大學(xué)P123-- 五、1、編寫函數(shù),找出5*5數(shù)組對(duì)角線上元素的最小值,并在主函數(shù)中調(diào)用它。要求元素的值通過鍵盤輸入。 實(shí)驗(yàn)前的源程序: #include for(j=0;j<5;j++) if(i==j) if(p[i][j] return min;} void main(){ int i,j,m,a[5][5];printf(“請(qǐng)輸入a[5][5]:n”);for(i=0;i<5;i++)for(j=0;j<5;j++)scanf(“%d”,&a[i][j]);printf(“a[5][5]:n”);for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%4d”,a[i][j]);printf(“n”);} m=func(a);printf(“主對(duì)角線上元素的最小值為:%dn”,m);} 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] C:Users陶鑫DocumentsC-FreeTemp未命名4.cpp:13: error: `main' must return `int' [Warning] C:Users陶鑫DocumentsC-FreeTemp未命名4.cpp:27:2: warning: no newline at end of file 構(gòu)建中止 未命名4: 1 個(gè)錯(cuò)誤, 1 個(gè)警告 江西理工大學(xué) 實(shí)驗(yàn)后的源程序: #include for(j=0;j<5;j++) if(i==j) if(p[i][j] return min;} main(){ int i,j,m,a[5][5];printf(“請(qǐng)輸入a[5][5]:n”);for(i=0;i<5;i++)for(j=0;j<5;j++)scanf(“%d”,&a[i][j]);printf(“a[5][5]:n”);for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%4d”,a[i][j]);printf(“n”);} m=func(a);printf(“主對(duì)角線上元素的最小值為:%dn”,m);} P123-- 五、3、編寫從整形數(shù)組中檢索給定數(shù)值的函數(shù),若找到則輸出該數(shù)值在數(shù)組中的位置。 實(shí)驗(yàn)前的源程序: #include “stdio.h” int Find(int array[],int Array size,int num){ int i;for(i=0;i 江西理工大學(xué)int main(){ int a[]={1,2,3,4,5};num=4,n=5,index;index=find(a,5,num);if(index)printf(“%d在數(shù)組中第%d位置”,num,index);else printf(“數(shù)組中沒有這個(gè)數(shù)!”);} 實(shí)驗(yàn)錯(cuò)誤報(bào)告: [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:2: error: expected `,' or `...' before “size” [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: expected `;' before “size” [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: `size' was not declared in this scope [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: expected `)' before ';' token [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:5: error: expected `;' before ')' token [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:13: error: `num' was not declared in this scope [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:13: error: `n' was not declared in this scope [Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:13: error: `index' was not declared in this scope 江西理工大學(xué)[Error] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:14: error: `find' was not declared in this scope [Warning] C:Users陶鑫DocumentsC-FreeTemp未命名3.cpp:19:2: warning: no newline at end of file 實(shí)驗(yàn)后的源程序: #include “stdio.h” int Find(int Array[], int Array_size, int num){ int i;for(i=0;i P123-- 五、6、輸入10名學(xué)生5門課的成績(jī),分別用函數(shù)求:(1)每門課的平均分。(2)找出最高的分?jǐn)?shù)所對(duì)應(yīng)的學(xué)生和成績(jī)。 實(shí)驗(yàn)前的源程序: #include for(i=0;i<10;i++) { printf(“輸入第%d個(gè)學(xué)生五門課的成績(jī):”,i+1); for(j=0;j<5;j++) scanf(“%f”,&a[i][j]); } } void aver_cour(float a[10][5])//課程的平均分 江西理工大學(xué) { int i,j; float sum; for(i=0;i<5;i++) { sum=0; for(j=0;j<10;j++) sum+=a[j][i]; printf(“第%d門課的平均成績(jī)?yōu)椋?6.2fn”,i+1,sum/10); } } void highest(float a[10][5])//查找最高分 { int i,j,flag1,flag2;float max=0; for(i=0;i<10;i++) { for(j=0;j<5;j++) {第二篇:c語言實(shí)驗(yàn)報(bào)告
第三篇:c語言實(shí)驗(yàn)報(bào)告
第四篇:C語言 實(shí)驗(yàn)報(bào)告
第五篇:C語言實(shí)驗(yàn)報(bào)告