程序設計語言C實驗_第1頁
程序設計語言C實驗_第2頁
程序設計語言C實驗_第3頁
程序設計語言C實驗_第4頁
程序設計語言C實驗_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學1程序設計語言C實驗實驗一C簡單程序設計

實驗目的了解C程序的基本編輯操作,熟悉編輯界面;掌握在TurboC集成開發(fā)環(huán)境下編輯、編譯、連接和運行C程序的方法實驗內(nèi)容使用DOS操作命令查看TC目錄下的文件。學習建立個人的C源程序文件子目錄在TurboC集成開發(fā)環(huán)境下,輸入教材P37例3.1的程序并進行編譯和運行。觀察C程序的書寫格式,學會在用戶屏幕上查看運行結果,熟悉編輯操作,了解基本調(diào)試程序的操作。第1頁/共38頁實驗二數(shù)據(jù)類型、運算符和表達式

實驗目的掌握C語言的基本數(shù)據(jù)類型:整型、字符型、長整型、單精度、雙精度類型,以及對它們賦值的方法學會使用C有關的運算符和表達式,以及自加和自減運算符的使用實驗內(nèi)容編寫一個程序,分別定義字符型、整型、長整型、單精度、雙精度變量,并給這些變量賦值,輸出這些變量的存儲寬度。運行P5例1.1,模仿例1.1編寫P9的習題3程序。運行P6例1.2、P13例2.1、P15的程序、P18頁的程序運行課堂中的有關自加(減)的例題。第2頁/共38頁實驗三數(shù)據(jù)類型、運算符和表達式實驗目的進一步理解數(shù)據(jù)類型的概念,理解運算符的含義;掌握運用編程的方法來分析表達式值的方法;重點分析整型表達式運算結果、邏輯表達式運算結果實驗內(nèi)容編程完成第二章的習題第3頁/共38頁實驗三數(shù)據(jù)的輸入和輸出實驗目的掌握輸出函數(shù)printf、輸入函數(shù)scanf的幾種常用的控制格式的用法掌握字符輸入函數(shù)getchar、輸出函數(shù)putchar的用法實驗內(nèi)容編寫一個程序,輸入一個字符,輸出它的前后鄰居編寫一個程序,求三角形的面積。其中,a、b、c為三角形的三條邊,s=(a+b+c)/2,面積為area=編寫一個程序,求攝氏溫度。公式:c=5*(f-32)/9第4頁/共38頁實驗四自己動手編寫一個C程序實驗目的利用已學的知識編寫一個解決實際問題的程序實驗內(nèi)容設計一個程序,輸入正五邊形的邊長的長度a,按公式計算該五邊形外接圓的半徑。設計一程序,輸入空間中兩點的坐標x1,y1,z1和x2,y2,z2計算兩點之間的距離。編寫一個C程序,輸入一個3位整數(shù),分別輸出百位數(shù)、十位數(shù)和個位數(shù)。第5頁/共38頁實驗五選擇結構基礎實驗目的掌握選擇控制語句掌握正確使用邏輯運算符和邏輯表達式實驗內(nèi)容編寫程序輸入四個整數(shù),要求輸出最小的一個。編寫程序判斷體重。體指數(shù)(t)=體重(w)/身高2(h)其中,t<18時體重偏輕,18<=t<25時體重正常,25<=t<27時體重偏重,t>=27時為肥胖。分別用if…else…if語句和switch語句編寫書P58⑸第6頁/共38頁實驗六選擇結構的使用實驗目的練習根據(jù)具體問題,利用選擇控制語句編寫程序實驗內(nèi)容有一人過獨木橋,到橋中間時看見前面有狼,后面有虎,底下是深深的河水。編程寫出此人的最后結局。從鍵盤輸入3個數(shù),判斷能否構成三角形,若能構成三角形,計算以這3個數(shù)為邊長的三角形面積;否則,輸出相應的提示信息。編寫一個程序,輸入某學生成績,若成績在85分以上,則輸出“VeryGood”,若成績在60分到85分之間,則輸出“Good”,若成績低于60分,則輸出“Bad”。編寫程序,讀入一個年份和月份,打印出該月有多少天第7頁/共38頁實驗七循環(huán)結構的實現(xiàn)實驗目的掌握三種基本循環(huán)語句注意循環(huán)條件的控制實驗內(nèi)容請分別用while語句和do-while語句編程求的值請分別用while語句和do-while語句編程求12/(1+1)+22/(2+1)+32/(3+1)+…+n2/(n+1)輸入一個字符串,將其中的空格和數(shù)字刪除后輸出第8頁/共38頁實驗八循環(huán)結構應用實驗目的掌握在程序設計中用循環(huán)的方法編寫程序實現(xiàn)各種算法實驗內(nèi)容編寫程序求出滿足不等式1+2+3+…+n<500的最大n值及總和。編程實現(xiàn)求數(shù)列1/2,3/4,5/8,7/16…的所有大于等于0.000001的數(shù)據(jù)項之和,顯示輸出計算結果。編程找出1000以內(nèi)的完數(shù)。所謂完數(shù)是它等于它的因子之和。如:6=1+2+3。第9頁/共38頁實驗九綜合訓練實驗目的掌握用順序結構、選擇結構、循環(huán)結構編寫程序,解決實際問題掌握程序的調(diào)試方法實驗內(nèi)容求100~200之間的素數(shù)。求20+21+22+…+263。完成P55~58的練習。第10頁/共38頁實驗十上機測試

實驗目的綜合測驗實驗內(nèi)容編寫一個程序,能顯示兩行文字。已知三角形的兩個邊長A,B和其夾角а,求三角形的面積S。輸入圓的半徑R和一個整數(shù)K,K=1時,計算圓的面積;當K=2時,計算圓的周長;當K=3時,既要求面積也要求周長。編程實現(xiàn)以上功能。編寫程序,求1-3+5-7+9……-99+101的值。第11頁/共38頁實驗十一一維數(shù)組的使用

實驗目的掌握一維數(shù)組的定義、賦值和輸入輸出方法;掌握一維數(shù)組的基本用法。實驗內(nèi)容1.用篩法求100以內(nèi)的素數(shù)。2.編寫一個程序,計算若干學生的某門功課的平均成績、標準差,找出最高分和最低分。3.

編寫一個程序,讓計算機產(chǎn)生20個隨機數(shù),用選擇法排序。4.根據(jù)上題的內(nèi)容1,編一程序在數(shù)組中查找一個數(shù)。要求:⑴若有該數(shù),則輸出該數(shù),否則輸出找不到的信息;⑵用順序查找實現(xiàn);⑶用折半查找實現(xiàn)。第12頁/共38頁實驗十二一維數(shù)組實驗內(nèi)容1、根據(jù)實驗11中的內(nèi)容3,編寫一程序刪除指定的一個數(shù)。2、根據(jù)實驗11中的內(nèi)容3,編寫一程序插入一個指定的數(shù),插入后,數(shù)組仍然有序。3、完成《C語言復習》中第六章的練習題(選擇、填空)第13頁/共38頁實驗十三二維數(shù)組的使用

實驗目的掌握二維數(shù)組的定義、賦值和輸入輸出的方法。練習用二維數(shù)組解決實際問題。實驗內(nèi)容1.找出一個二維數(shù)組的“鞍點”,即該位置上的元素在該行上最大,在該列上最小。也可能沒有“鞍點”。要求用隨機函數(shù)生成數(shù)據(jù)。

2.使用二維數(shù)組,打印楊輝三角形前10行。3.編寫程序,將一個5×5的矩陣中最大的元素放在中心,4個角分別放4個最小的元素(按從左到右、從上到下的順序,依次從小到大存放。4.編寫程序,用隨機函數(shù)產(chǎn)生一個二維迷宮(用0表示通道,1表示隔墻)第14頁/共38頁實驗十四字符數(shù)組與字符串函數(shù)的使用

實驗目的掌握字符數(shù)組和字符串函數(shù)的使用實驗內(nèi)容1、編寫一個程序,將字符數(shù)組s2中的全部字符拷貝到字符數(shù)組s1中。(不能使用strcpy函數(shù)。)2、有一篇文章,共有3行文字,每行有80個字符。要求分別統(tǒng)計出其中英文大寫字母、小寫字母、數(shù)字、空格以及其他字符的個數(shù)。3、有n個字符串,要求找出其中最大和最小的字符串。第15頁/共38頁實驗十五編程實現(xiàn)非數(shù)值信息的處理

實驗目的進一步掌握字符數(shù)組的使用;了解非數(shù)值信息的處理;初步了解排序算法。實驗內(nèi)容1、有n個字符串,要求按字母順序從小到大對其排序。2、編寫一個程序,解決騎士周游世界問題。在國際象棋中,馬的走步是“L”形(相當于中國象棋中的馬走日),如上圖。那么,馬從國際象棋盤(棋盤為8╳8=64格)上的某一點出發(fā),能否跳遍全棋盤,且每個方格只跳過一次?試打印出馬的路線。馬第16頁/共38頁實驗十六排序問題

實驗目的掌握選擇法排序的思想掌握冒泡法排序的思想掌握插入法排序的思想實驗內(nèi)容1.編一程序,對n個整數(shù)用選擇法排序(從小到大);2.編一程序,對n個整數(shù)用冒泡法排序(從大到?。?;3.編一程序,輸入若干學生某門功課的成績,計算平均分、標準差,并按從高分到低分的順序排列(用插入法排序)。

第17頁/共38頁實驗十六常用算法

實驗目的掌握查找的常用算法(順序查找、折半查找)掌握在數(shù)組中刪除一個元素或插入一個元素的算法實驗內(nèi)容1、根據(jù)實驗15中的內(nèi)容1,編一程序在數(shù)組中查找一個數(shù)。要求:⑴若有該數(shù),則輸出該數(shù),否則輸出未找到的信息;⑵用順序查找實現(xiàn);⑶用折半查找實現(xiàn)。2、根據(jù)實驗內(nèi)容1,編寫一程序刪除指定的一個數(shù)。3、根據(jù)實驗內(nèi)容1,編寫一程序插入一個指定的數(shù),插入后,數(shù)組仍然有序。

第18頁/共38頁實驗十七函數(shù)的定義與調(diào)用

實驗目的掌握定義函數(shù)的方法;掌握函數(shù)的調(diào)用方法;掌握函數(shù)實參和形參的對應關系;

實驗內(nèi)容1、寫一個判斷素數(shù)的函數(shù)。要求:⑴在主函數(shù)中輸入一個整數(shù)并輸出是否素數(shù)的信息;⑵用自定義函數(shù)判斷此數(shù)是否素數(shù);⑶測試數(shù)據(jù):17、34、2、1、0、49、39。2、編一個函數(shù),其功能是:求高于平均分的人數(shù),并作為函數(shù)值返回。要求:⑴學生的成績放在student數(shù)組中;⑵在主函數(shù)中輸入學生的成績,用-1結束成績的輸入;⑶在主函數(shù)中輸出高于平均分的人數(shù);⑷測試數(shù)據(jù):78、34、65、86、54、76、65、48、29、9487、46、88、71、68、60、83、92、57、5169、89、79、39、55、44、21、99、96、703、P103第三題的第三小題。

第19頁/共38頁實驗十八函數(shù)實參、形參的結合及遞歸調(diào)用

實驗目的進一步掌握函數(shù)的實參與形參的結合;掌握函數(shù)的遞歸調(diào)用;實驗內(nèi)容1、用遞歸法求n階勒讓德多項式的值,遞歸公式為:2、運行漢諾塔程序3、寫一個函數(shù),使輸入的一個字符串反序存放。第20頁/共38頁實驗十八函數(shù)實參、形參的結合及遞歸調(diào)用

實驗內(nèi)容2、編輯調(diào)試下列程序:voidmove(charx,chary){printf(“%c%c\n”,x,y);}voidHanoi(intn,charone,chartwo,charthree){if(n==1)move(one,three);else{Hanoi(n-1,one,three,two);move(one,three);Hanoi(n-1,two,one,three);}}main(){intm;printf(“inputthenumberofdiskes:”);scanf(“%d”,&m);printf(“Thesteptomoving%3ddiskes:\n”,m);Hanoi(m,‘A’,‘B’,‘C’);}

測試用例:4,10。

第21頁/共38頁實驗十九模塊化程序設計的綜合練習(上)實驗目的綜合掌握程序的控制結構和數(shù)組;進一步學習模塊化程序設計;實驗內(nèi)容1、有一行原文,請按下面規(guī)律譯成密碼:

A→Za→z,B→Yb→y,C→Xc→x,……

即第1個字母變成第26個字母,第i個字母變成第(26-i+1)個字母。非字母字符不變。要求:⑴在主函數(shù)中輸入電文;⑵寫一個函數(shù)將密碼譯回原文;⑶在主函數(shù)中輸出密碼和原文;⑷測試用例:Iamastudent,youareateather.2、有n位學生,每個學生有m門功課,請編寫程序解決:⑴在主函數(shù)中定義數(shù)組;⑵寫一個enter函數(shù)輸入學生的成績;⑶寫一個sort函數(shù),按總成績對數(shù)組排序;⑷寫一個print函數(shù)輸出成績表,每行輸出一位學生的成績。

第22頁/共38頁實驗二十模塊化程序設計的綜合練習(下)實驗目的進一步掌握模塊化程序設計的思想;階段考核實驗內(nèi)容1、編寫一個程序,解決以下問題:

n個人圍成一圈,從第一個人開始順序報數(shù)1、2、3。凡是報到“3”的人退出圈子。找出最后留在圈子中的人的原來的序號。測試用例:15、22、39。2、用遞歸方法求n階勒讓德多項式的值,遞歸公式為:3.打印楊輝三角形,要求:⑴用自定義函數(shù)輸出三角形;⑵輸出行數(shù)由用戶自行決定。

第23頁/共38頁實驗二十一多文件程序的編輯、編譯及運行

實驗目的掌握在TC下如何編輯、編譯運行一個多文件程序

實驗內(nèi)容編寫一段程序,用來實現(xiàn)10個學生成績的輸入、求和、求平均分,分別用三個函數(shù)來實現(xiàn)。將三個函數(shù)分別存為三個獨立的程序文件,名稱分別是f1.c、f2.c和f3.c在編譯狀態(tài)下,建立一個“項目文件”,名稱為f,將以上三個程序文件放入項目文件中并存盤。編譯執(zhí)行,并得出結果。第24頁/共38頁實驗二十二預處理命令的使用

實驗目的掌握預處理命令(重點是宏定義)的使用方式,并用預處理命令來解決實際問題

實驗內(nèi)容編譯執(zhí)行下列程序,體會宏定義的用法:#include<stdio.h>#defineP2#definePOWER(x)P*x*xmain(){intx=1,y=2;printf(“%d,%d”,POWER(x+y),POWER(y+x));}編寫一段程序,用來求兩個數(shù)的最小值,其中用來求最小值的部分用宏定義來實現(xiàn)。編寫完成后編譯執(zhí)行。有以下程序,將其格式輸出部分改寫成宏定義后并添加到format.h頭文件中,編寫完成后編譯執(zhí)行。#definePRprintf#defineNL“\n”#defineF“%36.3f”#defineF1FNL#defineF2FFNL#defineF3FFFNLmain(){floatx,y,z;x=1.2;y=2.3;z=3.4;PR(F1,x);PR(F2,x,y);PR(F3,x,y,z);}第25頁/共38頁實驗二十三指針和指針變量的使用

實驗目的掌握指針的概念,要求會定義和使用指針變量;了解指向指針的概念及其使用方法;

實驗內(nèi)容編制交換整型變量值的函數(shù)swap()。函數(shù)swap()的功能是交換兩個整型變量的值,函數(shù)swap()設有兩個指向整型變量的指針參數(shù),函數(shù)利用指針參數(shù)間接訪問變量。調(diào)用swap()函數(shù)時,兩個參數(shù)分別是兩個待交換值得整型變量的地址。編寫程序,用指針來實現(xiàn)數(shù)組的輸入和輸出。數(shù)組定義如下:a[10]={1,2,3,4,5,6,7,8,9,0}用指針編寫一個程序,解決以下問題:

n個人圍成一圈,從第一個人開始順序報數(shù)1、2、3。凡是報到“3”的人退出圈子。找出最后留在圈子中的人的原來的序號。測試用例:15、22、39。第26頁/共38頁實驗二十三指針和指針變量的使用輸入10個整數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。寫3個函數(shù):⑴輸入10個數(shù);⑵對換處理;⑶輸出10個數(shù)。有n個整數(shù),使前面各數(shù)順序向后移m個位置,最后m個數(shù)變成最前面m個數(shù)。寫一函數(shù)實現(xiàn)上面的功能,在主函數(shù)中輸入n個整數(shù)和輸出調(diào)整后的n個數(shù)。有一個班5個學生,5門課程。⑴求第一門課的平均成績;⑵找出有2門以上課程不及格的學生,輸出他們的學號和全部課程成績和平均分;⑶找出平均成績在90分以上或全部課程成績在85分以上的學生。分別編寫3個函數(shù)實現(xiàn)以上3個要求。第27頁/共38頁實驗二十四用“數(shù)組指針”和“字符串指針”

解決實際問題

實驗目的掌握數(shù)組指針和字符串指針二者的概念和聯(lián)系;學會使用字符串的指針的指向字符串的指針變量;學會使用數(shù)組的指針和指向數(shù)組的指針變量;學會使用指向函數(shù)的指針變量;實驗內(nèi)容編制實現(xiàn)對整型數(shù)組前n個成分求和的函數(shù)sun()。編寫一函數(shù),將字符串按照順序的逆序存放,并在主函數(shù)中從鍵盤輸入該字符串(字符串長度不超過30),輸出其逆序結果。下面的程序是用來完成將一個3×3的矩陣進行轉置。將程序補充完整并調(diào)試通過。main(){inta[3][3],*p,i;printf(“請按行輸入3×3的矩陣:\n”);for(i=0;i<3;i++)scanf(“%d%d%d”,&a[i][0],&a[i][1],&a[i][2]);p=&a[0][0];move(p);printf(“轉置后的矩陣為:\n”);for(i=0;i<3;i++)printf(“%d%d%d\n”,a[i][0],a[i][1],a[i][2]);}第28頁/共38頁趣味小程序編寫一個程序,用隨機數(shù)發(fā)生器生成句子。程序中要使用以下4個char類型的指針數(shù)組:article、noun、verb、preposition。每個數(shù)組指向一組單詞。程序按以下順序抽取單詞:article、noun、verb、preposition、article、noun。抽取的單詞放入一個足夠大的字符型數(shù)組(用于存放句子)中,每抽取一個單詞,放到前一個單詞的后面,單詞中間用空格分隔。最后輸出整個句子。輸出時,第一個字符要大寫,最后要有句號。冠詞article指向:“the”,“a”,“one”,“some”,“any”名詞noun指向:“boy”,“girl”,“dog”,“town”,“car”動詞verb指向:“drove”,“jumped”,“ran”,“walked”,“skipped”介詞preposition指向:“to”,“from”,“over”,“under”,“on”用上述程序生成20個句子并調(diào)試運行。修改上述程序,使其能夠生成一個小故事。第29頁/共38頁趣味小程序洗牌和發(fā)牌模擬用intdeck[4][13]表示一副牌,其中0~3行分別表示紅心、方塊、梅花和黑桃,0~12列分別表示A、2、…、K;用char*face[13]表示牌面點數(shù),記錄A、2、…、K;用char*suit[4]表示牌面花色,記錄紅心、方塊、梅花和黑桃;洗牌步驟:首先把數(shù)組deck清0;然后,隨機地從0~3中選擇一行(row),從0~12中選擇一列(column)。把數(shù)1插入到deck[row][column]中,表示這張牌將是從洗好的牌中發(fā)出的第一張牌;繼續(xù)這個過程,把數(shù)2、3、…、52隨機地插入到數(shù)組deck中,表示從洗好的牌中發(fā)出的第2、第3、…、第52張牌。在把發(fā)牌序號插入到數(shù)組deck中的過程中,一張牌被選擇兩次以上是可能的,第二次及以后的選中應該忽略,因此第二次及以后選中時,應重新隨機得到row、column本算法效率低下,請重新設計算法,提高效率。第30頁/共38頁實驗二十五結構體數(shù)據(jù)類型的定義和應用

實驗目的掌握結構體的定義方式和使用,并可以地用結構體來處理一些簡單問題;掌握結構體類型變量的定義和使用;掌握結構體類型數(shù)組的概念和應用。實驗內(nèi)容從鍵盤輸入10個人的姓名和年齡并存到結構數(shù)組中,編寫程序從中查找年齡最大和最小的人的姓名和年齡,并輸出。利用結構體來實現(xiàn)一個簡單的數(shù)據(jù)庫,該數(shù)據(jù)庫可以完成添加、按序號查詢、顯示等功能。下面將該程序的主函數(shù)部分給出,要求學生將給出自定義函數(shù)補充完整,并在機器上調(diào)試通過。#include<stdio.h>#include<stdlib.h>#include<conio.h>voidadd(void);/*向數(shù)據(jù)庫中添加記錄*/voidquery(void);/*按指定的序號查找相應的記錄*/voidlistall(void);/*列出數(shù)據(jù)庫中的全部記錄*/voidlist(intn);/*列出給定序號的記錄*/structemployee{intno;/*序號*/charname[15];/*姓名*/charphone[12];/*電話號碼*/intage;};/*年齡*/第31頁/共38頁實驗二十五結構體數(shù)據(jù)類型的定義和應用

實驗內(nèi)容(續(xù))intindex;structemployeerecord[20];main(){charch;system(“cls”);while(1){printf(“\n1.Enternewemployee\n”);printf(“2.Queryemployee\n”);printf(“3.Listall\n”);printf(“4.Quit\n”);printf(“Select:”);ch=getchar();實驗內(nèi)容(續(xù))switch(ch){case‘1’:add();break;case‘2’:query();break;case‘3’:listall();break;case‘4’:exit(0);default:break;}}}…………第32頁/共38頁實驗二十六單鏈表的建立和操作

實驗目的在掌握指針和結構體的基礎上學習單鏈表的使用,讓學生初步掌握基本數(shù)據(jù)結構的操作方法;掌握鏈表的概念,初步學會對鏈表進行操作。實驗內(nèi)容建立一個包含學生信息的單鏈表,要求包含三個學生,每個學生具有學號、姓名、成績?nèi)椈拘畔?。在以上單鏈表中再加入一個學生。將一個鏈表按逆序排列,即將鏈頭當鏈尾,鏈尾當鏈頭。

第33頁/共38頁實驗二十七綜合練習

實驗目的在前面學習的基礎上,要求學生掌握C的綜合使用;復習C語言中最基本的結構,如數(shù)組、函數(shù)、指針、結構體等。實驗內(nèi)容編程實現(xiàn),從終端輸入名字表,然后按字符串從小到大順序排序名字表,最后輸出排序后的名字表。將一個5×5的矩陣中最大的元素放

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論