2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩37頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、程序設計語言C實驗,金鑫,實驗一 C簡單程序設計,實驗目的了解C程序的基本編輯操作,熟悉編輯界面; 掌握在Turbo C集成開發環境下編輯、編譯、連接和運行C程序的方法 實驗內容使用DOS操作命令查看TC目錄下的文件。學習建立個人的C源程序文件子目錄 在Turbo C集成開發環境下,輸入教材P37例3.1的程序并進行編譯和運行。觀察C程序的書寫格式,學會在用戶屏幕上查看運行結果,熟悉編輯操作,了解基本調試程序的操作。,實驗二

2、 數據類型、運算符和表達式,實驗目的掌握C語言的基本數據類型:整型、字符型、長整型、單精度、雙精度類型,以及對它們賦值的方法學會使用C有關的運算符和表達式,以及自加和自減運算符的使用 實驗內容編寫一個程序,分別定義字符型、整型、長整型、單精度、雙精度變量,并給這些變量賦值,輸出這些變量的存儲寬度。運行P5例1.1,模仿例1.1編寫P9的習題3程序。運行P6例1.2、P13例2.1、P15的程序、P18頁的程序運行課堂中的

3、有關自加(減)的例題。,實驗三 數據類型、運算符和表達式,實驗目的進一步理解數據類型的概念,理解運算符的含義;掌握運用編程的方法來分析表達式值的方法;重點分析整型表達式運算結果、邏輯表達式運算結果實驗內容編程完成第二章的習題,實驗三 數據的輸入和輸出,實驗目的掌握輸出函數printf、輸入函數scanf的幾種常用的控制格式的用法掌握字符輸入函數getchar、輸出函數putchar的用法實驗內容編寫一個程序,輸入一

4、個字符,輸出它的前后鄰居編寫一個程序,求三角形的面積。其中,a、b、c為三角形的三條邊,s=(a+b+c)/2,面積為area=編寫一個程序,求攝氏溫度。公式:c=5*(f-32)/9,實驗四 自己動手編寫一個C程序,實驗目的利用已學的知識編寫一個解決實際問題的程序 實驗內容設計一個程序,輸入正五邊形的邊長的長度a,按公式 計算該五邊形外接圓的半徑。設計一程序,輸入空間中兩點的坐標x

5、1,y1,z1和x2,y2,z2計算兩點之間的距離。編寫一個C程序,輸入一個3位整數,分別輸出百位數、十位數和個位數。,,實驗五 選擇結構基礎,實驗目的掌握選擇控制語句掌握正確使用邏輯運算符和邏輯表達式實驗內容編寫程序輸入四個整數,要求輸出最小的一個。編寫程序判斷體重。體指數(t)=體重(w)/身高2(h)其中,t=27時為肥胖。分別用if…else…if語句和switch語句編寫書P58⑸,實驗六 選擇結構的使用,實

6、驗目的練習根據具體問題,利用選擇控制語句編寫程序實驗內容有一人過獨木橋,到橋中間時看見前面有狼,后面有虎,底下是深深的河水。編程寫出此人的最后結局。從鍵盤輸入3個數,判斷能否構成三角形,若能構成三角形,計算以這3個數為邊長的三角形面積;否則,輸出相應的提示信息。編寫一個程序,輸入某學生成績,若成績在85分以上,則輸出“Very Good”,若成績在60分到85分之間,則輸出“Good”,若成績低于60分,則輸出“Bad”。編

7、寫程序,讀入一個年份和月份,打印出該月有多少天,實驗七 循環結構的實現,實驗目的掌握三種基本循環語句注意循環條件的控制實驗內容請分別用while語句和do-while語句編程求 的值請分別用while語句和do-while語句編程求12/(1+1)+22/(2+1)+32/(3+1)+…+n2/(n+1)輸入一個字符串,將其中的空格和數字刪除后輸出,,實驗八 循環結構應用,實驗目的掌握在程序設計中用

8、循環的方法編寫程序實現各種算法 實驗內容編寫程序求出滿足不等式1+2+3+…+n<500的最大n值及總和。 編程實現求數列1/2,3/4,5/8,7/16…的所有大于等于0.000001的數據項之和,顯示輸出計算結果。編程找出1000以內的完數。所謂完數是它等于它的因子之和。如:6=1+2+3。,實驗九 綜合訓練,實驗目的掌握用順序結構、選擇結構、循環結構編寫程序,解決實際問題 掌握程序的調試方法實驗內容求100

9、~200之間的素數。求20+21+22+…+263。完成P55~58的練習。,實驗十 上機測試,實驗目的綜合測驗實驗內容編寫一個程序,能顯示兩行文字。已知三角形的兩個邊長A,B和其夾角а,求三角形的面積S。輸入圓的半徑R和一個整數K,K=1時,計算圓的面積;當K=2時,計算圓的周長;當K=3時,既要求面積也要求周長。編程實現以上功能。編寫程序,求1-3+5-7+9……-99+101的值。,實驗十一 一維數組的使用

10、,實驗目的掌握一維數組的定義、賦值和輸入輸出方法;掌握一維數組的基本用法。實驗內容1. 用篩法求100以內的素數。2. 編寫一個程序,計算若干學生的某門功課的平均成績、標準差,找出最高分和最低分。3. 編寫一個程序,讓計算機產生20個隨機數,用選擇法排序。4. 根據上題的內容1,編一程序在數組中查找一個數。要求:⑴若有該數,則輸出該數,否則輸出找不到的信息;⑵用順序查找實現;⑶用折半查找實現。,實驗十二 一維數組,實

11、驗內容1、根據實驗11中的內容3,編寫一程序刪除指定的一個數。2、根據實驗11中的內容3,編寫一程序插入一個指定的數,插入后,數組仍然有序。3、完成《C語言復習》中第六章的練習題(選擇、填空),實驗十三 二維數組的使用,實驗目的掌握二維數組的定義、賦值和輸入輸出的方法。練習用二維數組解決實際問題。實驗內容1.找出一個二維數組的“鞍點”,即該位置上的元素在該行上最大,在該列上最小。也可能沒有“鞍點”。要求用隨機函數生成數據

12、。 2.使用二維數組,打印楊輝三角形前10行。3.編寫程序,將一個5×5的矩陣中最大的元素放在中心,4個角分別放4個最小的元素(按從左到右、從上到下的順序,依次從小到大存放。4 .編寫程序,用隨機函數產生一個二維迷宮(用0表示通道,1表示隔墻),實驗十四 字符數組與字符串函數的使用,實驗目的掌握字符數組和字符串函數的使用實驗內容1、編寫一個程序,將字符數組s2中的全部字符拷貝到字符數組s1中。(不能使用strcp

13、y函數。)2、有一篇文章,共有3行文字,每行有80個字符。要求分別統計出其中英文大寫字母、小寫字母、數字、空格以及其他字符的個數。3、有n個字符串,要求找出其中最大和最小的字符串。,實驗十五 編程實現非數值信息的處理,實驗目的進一步掌握字符數組的使用;了解非數值信息的處理;初步了解排序算法。實驗內容1、有n個字符串,要求按字母順序從小到大對其排序。2、編寫一個程序,解決騎士周游世界問題。 在國際象棋中,馬的走步

14、是“L”形(相當于中國象棋中的馬走日),如上圖。那么,馬從國際象棋盤(棋盤為8╳8=64格)上的某一點出發,能否跳遍全棋盤,且每個方格只跳過一次?試打印出馬的路線。,實驗十六 排序問題,實驗目的掌握選擇法排序的思想掌握冒泡法排序的思想掌握插入法排序的思想實驗內容1.編一程序,對n個整數用選擇法排序(從小到大);2.編一程序,對n個整數用冒泡法排序(從大到?。?;3.編一程序,輸入若干學生某門功課的成績,計算平均分、標準差,

15、并按從高分到低分的順序排列(用插入法排序)。,實驗十六 常用算法,實驗目的掌握查找的常用算法(順序查找、折半查找)掌握在數組中刪除一個元素或插入一個元素的算法實驗內容1、根據實驗15中的內容1,編一程序在數組中查找一個數。要求:⑴若有該數,則輸出該數,否則輸出未找到的信息;⑵用順序查找實現;⑶用折半查找實現。2、根據實驗內容1,編寫一程序刪除指定的一個數。3、根據實驗內容1,編寫一程序插入一個指定的數,插入后,數組仍

16、然有序。,實驗十七 函數的定義與調用,實驗目的掌握定義函數的方法;掌握函數的調用方法;掌握函數實參和形參的對應關系; 實驗內容1、寫一個判斷素數的函數。要求:⑴在主函數中輸入一個整數并輸出是否素數的信息;⑵用自定義函數判斷此數是否素數;⑶測試數據:17、34、2、1、0、49、39。2、編一個函數,其功能是:求高于平均分的人數,并作為函數值返回。要求:⑴學生的成績放在student數組中;⑵在主函數中輸入學生

17、的成績,用-1結束成績的輸入;⑶在主函數中輸出高于平均分的人數;⑷測試數據:78、34、65、86、54、76、65、48、29、94 87、46、88、71、68、60、83、92、57、51 69、89、79、39、55、44、21、99、96、703、P103第三題的第三小題。,實驗十八 函數實參、形參的結合及遞歸調用,實驗目的進一步

18、掌握函數的實參與形參的結合;掌握函數的遞歸調用;實驗內容1、用遞歸法求n階勒讓德多項式的值,遞歸公式為:2、運行漢諾塔程序3、寫一個函數,使輸入的一個字符串反序存放。,實驗十八 函數實參、形參的結合及遞歸調用,實驗內容2、編輯調試下列程序:void move(char x, char y) { printf(“%c?%c\n”, x, y); } void Hanoi(int n, char one,

19、char two, char three) { if(n==1) move(one, three); else { Hanoi(n-1, one, three, two); move(one, three); Hanoi(n-1, two, one, three); } } main( ) { int m; printf(“in

20、put the number of diskes:”); scanf(“%d”, &m); printf(“The step to moving %3d diskes:\n”,m); Hanoi(m, ‘A’, ‘B’, ‘C’); } 測試用例:4,10。,實驗十九 模塊化程序設計的綜合練習(上),實驗目的綜合掌握程序的控制結構和數組;進一步學習模塊化程序設計;實驗內容1、有一行原文,請

21、按下面規律譯成密碼: A→Z a→z,B→Y b→y,C→X c→x,…… 即第1個字母變成第26個字母,第i個字母變成第(26-i+1)個字母。非字母字符不變。要求:⑴在主函數中輸入電文;⑵寫一個函數將密碼譯回原文;⑶在主函數中輸出密碼和原文;⑷測試用例:I am a student, you are a teather.2、有n位學生,每個學生有m門功課,請編寫程序解決:⑴在主函數中定義數組;⑵寫一個en

22、ter函數輸入學生的成績;⑶寫一個sort函數,按總成績對數組排序;⑷寫一個print函數輸出成績表,每行輸出一位學生的成績。,實驗二十 模塊化程序設計的綜合練習(下),實驗目的進一步掌握模塊化程序設計的思想;階段考核實驗內容1、編寫一個程序,解決以下問題: n個人圍成一圈,從第一個人開始順序報數1、2、3。凡是報到“3”的人退出圈子。找出最后留在圈子中的人的原來的序號。測試用例:15、22、39。2、用遞歸方法

23、求n階勒讓德多項式的值,遞歸公式為:3.打印楊輝三角形,要求:⑴用自定義函數輸出三角形;⑵輸出行數由用戶自行決定。,,實驗二十一多文件程序的編輯、編譯及運行,實驗目的掌握在TC下如何編輯、編譯運行一個多文件程序 實驗內容編寫一段程序,用來實現10個學生成績的輸入、求和、求平均分,分別用三個函數來實現。將三個函數分別存為三個獨立的程序文件,名稱分別是f1.c 、 f2.c和f3.c 在編譯狀態下,建立一個“項目文件”

24、,名稱為f,將以上三個程序文件放入項目文件中并存盤。編譯執行,并得出結果。,實驗二十二 預處理命令的使用,實驗目的掌握預處理命令(重點是宏定義)的使用方式,并用預處理命令來解決實際問題 實驗內容編譯執行下列程序,體會宏定義的用法:#include #define P 2#define POWER(x) P*x*xmain(){ int x=1,y=2; printf(“%d,%d”,POWER(x+y),POW

25、ER(y+x)); }編寫一段程序,用來求兩個數的最小值,其中用來求最小值的部分用宏定義來實現。編寫完成后編譯執行。有以下程序,將其格式輸出部分改寫成宏定義后并添加到format.h頭文件中,編寫完成后編譯執行。#define PR printf#define NL “\n”#define F “%36.3f”#define F1 F NL#define F2 F F NL#define F3

26、F F F NL,main(){ float x,y,z; x=1.2;y=2.3;z=3.4; PR(F1,x); PR(F2,x,y); PR(F3,x,y,z);},實驗二十三 指針和指針變量的使用,實驗目的掌握指針的概念,要求會定義和使用指針變量;了解指向指針的概念及其使用方法; 實驗內容編制交換整型變量值的函數swap( )。函數swap( )的功能是交換兩個整型變量的值,函數swap( )設

27、有兩個指向整型變量的指針參數,函數利用指針參數間接訪問變量。調用swap( )函數時,兩個參數分別是兩個待交換值得整型變量的地址。編寫程序,用指針來實現數組的輸入和輸出。數組定義如下:a[10]={1,2,3,4,5,6,7,8,9,0}用指針編寫一個程序,解決以下問題: n個人圍成一圈,從第一個人開始順序報數1、2、3。凡是報到“3”的人退出圈子。找出最后留在圈子中的人的原來的序號。測試用例:15、22、39。,實驗二十三

28、 指針和指針變量的使用,輸入10個整數,將其中最小的數與第一個數對換,把最大的數與最后一個數對換。寫3個函數:⑴輸入10個數;⑵對換處理;⑶輸出10個數。有n個整數,使前面各數順序向后移m個位置,最后m個數變成最前面m個數。寫一函數實現上面的功能,在主函數中輸入n個整數和輸出調整后的n個數。有一個班5個學生,5門課程。⑴求第一門課的平均成績;⑵找出有2門以上課程不及格的學生,輸出他們的學號和全部課程成績和平均分;⑶找出平均成績在9

29、0分以上或全部課程成績在85分以上的學生。分別編寫3個函數實現以上3個要求。,實驗二十四 用“數組指針”和“字符串指針”解決實際問題,實驗目的掌握數組指針和字符串指針二者的概念和聯系;學會使用字符串的指針的指向字符串的指針變量;學會使用數組的指針和指向數組的指針變量;學會使用指向函數的指針變量;實驗內容編制實現對整型數組前n個成分求和的函數sun()。編寫一函數,將字符串按照順序的逆序存放,并在主函數中從鍵盤輸入該字符

30、串(字符串長度不超過30),輸出其逆序結果。下面的程序是用來完成將一個3×3的矩陣進行轉置。將程序補充完整并調試通過。main( ){ int a[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=&am

31、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]); },趣味小程序,編寫一個程序,用隨機數發生器生成句子。程序中要使用以下4個char類型的指針數組:article、noun、verb、preposition。每個數組指向一組單詞。程序按以下順序抽取單

32、詞: article、noun、verb、preposition、article、noun。抽取的單詞放入一個足夠大的字符型數組(用于存放句子)中,每抽取一個單詞,放到前一個單詞的后面,單詞中間用空格分隔。最后輸出整個句子。輸出時,第一個字符要大寫,最后要有句號。冠詞article指向:“the”,“a”,“one”,“some”,“any”名詞noun指向:“boy”,“girl”,“dog”,“town”,“car”動詞v

33、erb指向:“drove”,“jumped”,“ran”,“walked”,“skipped”介詞preposition指向:“to”,“from”, “over”,“under”,“on”用上述程序生成20個句子并調試運行。修改上述程序,使其能夠生成一個小故事。,趣味小程序,洗牌和發牌模擬用int deck[4][13]表示一副牌,其中0~3行分別表示紅心、方塊、梅花和黑桃,0~12列分別表示A、2、…、K;用char *fa

34、ce[13]表示牌面點數,記錄A、2、…、K ;用char *suit[4]表示牌面花色,記錄紅心、方塊、梅花和黑桃;洗牌步驟:首先把數組deck清0;然后,隨機地從0~3中選擇一行(row),從0~12中選擇一列(column)。把數1插入到deck[row][column]中,表示這張牌將是從洗好的牌中發出的第一張牌;繼續這個過程,把數2、3、…、52隨機地插入到數組deck中,表示從洗好的牌中發出的第2、第3、…、第52張牌。

35、在把發牌序號插入到數組deck中的過程中,一張牌被選擇兩次以上是可能的,第二次及以后的選中應該忽略,因此第二次及以后選中時,應重新隨機得到row、column本算法效率低下,請重新設計算法,提高效率。,實驗二十五 結構體數據類型的定義和應用,實驗目的掌握結構體的定義方式和使用,并可以地用結構體來處理一些簡單問題;掌握結構體類型變量的定義和使用;掌握結構體類型數組的概念和應用。實驗內容從鍵盤輸入10個人的姓名和年齡并存到結構

36、數組中,編寫程序從中查找年齡最大和最小的人的姓名和年齡,并輸出。利用結構體來實現一個簡單的數據庫,該數據庫可以完成添加、按序號查詢、顯示等功能。下面將該程序的主函數部分給出,要求學生將給出自定義函數補充完整,并在機器上調試通過。#include #include #include void add(void); /*向數據庫中添加記錄*/void query(void); /*按指定的序號查找相應的記錄*/

37、void listall(void); /*列出數據庫中的全部記錄*/void list(int n); /*列出給定序號的記錄*/ struct employee{ int no; /*序號*/ char name[15]; /*姓名*/ char phone[12]; /*電話號碼*/ int age; }; /*年齡*/,實驗二十五 結構體數據類

38、型的定義和應用,實驗內容(續)int index;struct employee record[20];main(){ char ch; system(“cls”); while(1) { printf(“\n1.Enter new employee\n”); printf(“2.Query employee\n”); printf(“3.List all\n”); pri

39、ntf(“4.Quit\n”); printf(“Select:”); ch=getchar();,實驗內容(續)switch(ch) { case ‘1’: add();break; case ‘2’: query();break; case ‘3’: listall();break; case ‘4’: exit(0);

40、default:break; } } }…………,實驗二十六 單鏈表的建立和操作,實驗目的在掌握指針和結構體的基礎上學習單鏈表的使用,讓學生初步掌握基本數據結構的操作方法;掌握鏈表的概念,初步學會對鏈表進行操作。實驗內容建立一個包含學生信息的單鏈表,要求包含三個學生,每個學生具有學號、姓名、成績三項基本信息。在以上單鏈表中再加入一個學生。將一個鏈表按逆序排列,即將鏈頭當鏈尾,鏈尾當鏈頭。,實驗二十七 綜合練習

41、,實驗目的在前面學習的基礎上,要求學生掌握C的綜合使用;復習C語言中最基本的結構,如數組、函數、指針、結構體等。實驗內容編程實現,從終端輸入名字表,然后按字符串從小到大順序排序名字表,最后輸出排序后的名字表。將一個5×5的矩陣中最大的元素放在中心,4個角分別放4個最小的元素(按從左到右、從上到下的的順序,依次從小到大存放),編程實現。,實驗二十八 上機測試,測試內容編程實現從鍵盤輸入以字符串,要求將每個單詞中的第

42、一個字母改寫成大寫字母(如果原來已經是大寫字母則保持不變)然后輸出轉換結果。利用指針數組實現,在主函數中輸入10個等長的字符串,用另一個函數對它們進行排序,然后在主函數中輸出已排好序的字符串。 請詳細說明實現上述兩題的基本思想和算法。,實驗二十九 文件的基本操作,實驗目的掌握文件的基本使用;掌握基本文件庫函數的用法;掌握文件以及緩沖文件系統、文件指針的概念。實驗內容編程實現從鍵盤輸入一個字符串,將其中的小寫字母全部轉換成

43、大寫字母,然后輸出到磁盤文件“test”中保存。輸入的字符串以“!”結束。先有兩個文件A和B,文件A存放的信息是“QingHai University”,文件B中存放的信息是“”,現要求將這兩個文件中的信息進行合并,最后輸出“QingHai University I am a student”,并存放到文件C中去。,實驗三十 用文件實現一個具體的應用,實驗目的通過編制該程序讓學生初步掌握用C語言文件來實現具體的應用程序的開發;進一

44、步熟悉如何利用文件進行世紀應用程序開發的技巧。實驗內容有5個學生,每個學生有3門課的成績,從鍵盤輸入以上數據(包括學生學號、姓名、三門課的成績),要輸入的5個學生的信息如下:99101 Wang 89, 98, 67.5 99103 Li 60, 80, 9099106 Fun 75.5, 91.5, 99 99110 Ling

45、100, 50, 62.599113 Yuan 58, 68, 71現編程實現以下操作:計算出平均成績,將原有數據和計算出的平均分數存放在磁盤文件stud。將stud文件中的學生數據按平均分進行排序處理,并將已排序的學生數據存入一個新文件stud_sort中。在已排好序的學生成績中插入一個學生的3門課成績,實現方法如下:先計算新插入學生的平均成績,然后將它按平均成績高低順序插入,插入后建立一個新文件new_sort

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論