?C語言程序設計實驗報告2021~2022學年第二學期,現在小編就來說說關于?下面内容希望能幫助到你,我們來一起看看吧!
C語言程序設計實驗報告
2021~2022學年第二學期
實驗一
實驗項目名稱:C程序的運行環境和運行C程序的方法
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1.了解在Visual C 6.0環境下如何編輯、編譯、連接和運行一個C程序;
2.通過運行簡單的C程序,初步了解C源程序的特點。
二、預習内容:
教材《C語言程序設計教程》第1章。
三、實驗内容:
1.編程實現從鍵盤輸入a,b,c三個整數,求這三個數之和。
源程序:
運行結果:
2.編程實現從鍵盤輸入任意兩個整數,進行值的交換并輸出交換後的值。
源程序:
運行結果:
成績
實驗二
實驗項目名稱:簡單的輸入輸出及順序程序設計
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1. 掌握整型、實型與字符型數據的正确輸入方法(scanf函數的使用);
2. 掌握整型、實型與字符型數據的正确輸出方法(printf函數的使用);
3. 掌握編寫順序程序的方法。
二、預習内容:
教材《C語言程序設計教程》第3章。
三、實驗内容:
1. 下面程序的功能是:從鍵盤輸入2個整數,輸出它們的和。
#include <stdio.h>
int main( )
{
int a,b,sum;
sum=a b;
printf("%d %d=%d\n",a,b,sum);
return 0;
}
請在橫線上填寫一條合适的語句,使程序完整,然後上機運行該程序。
運行結果:
2.編寫程序,計算并輸出球的表面積和體積,球的半徑在程序運行時由鍵盤輸入。
源程序:
運行結果:
3.編寫程序,要求從鍵盤輸入一個華氏溫度f,轉換成攝氏溫度c輸出,轉換公式為
,輸出結果保留小數點後2位。
源程序:
運行結果:
4.編寫程序,從鍵盤輸入一個三位正整數,輸出該數的逆序數。如:輸入123,輸出321
源程序:
運行結果:
實驗三
實驗項目名稱:選擇結構程序設計
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1. 正确使用關系運算符和關系表達式;
2. 正确使用邏輯運算符和邏輯表達式;
3. 熟練使用if語句實現選擇結構程序;
4. 熟練使用switch語句實現多分支選擇結構程序。
二、預習内容:
教材《C語言程序設計教程》第4章。
三、實驗内容:
1. 下面程序的功能是:輸入學生成績,若成績在90分以上,輸出“Excellent!”;若成績在60—89分之間,輸出“Pass!”;若成績在60分以下,輸出“Fail!”。請将程序補充完整,并上機運行程序。
#include <stdio.h>
main( )
{
int score;
printf("請輸入分數(0--100):");
scanf("%d", );
if(score>100 || score<0)
printf("Input Error!\n");
else if( )
printf("Excellent!\n");
else if( )
printf("Pass!\n");
printf("Fail!\n");
}
運行該程序4次,分别輸入4個不同的數據,對應4種不同的情況,記錄運行結果:
輸入數據
運行結果
2. 有如下分段函數:
編寫程序,要求輸入x的值,求解對應的y值并輸出。
源程序:
運行該程序3次,分别輸入3個不同數據,分别對應3個不同區間,記錄結果。
輸入數據
運行結果
3. 某商場進行節日優惠促銷活動,活動細則如下: 購物金額10000元以上(含5000元),實際付款為購物金額的80%; 購物金額5000到10000元之間(含5000元,不含10000元),實際付款90%; 購物金額3000到5000元之間(含3000,不含5000),實際付款95%; 3000元以下無優惠。
編寫程序,要求從鍵盤輸入購物金額(為實型數據),計算并輸出優惠後的實際付款額(小數 點後保留2位)。
源程序:
(1)采用if語句的源程序:
(2)采用switch語句的源程序:
分别運行每個程序4次,輸入4個不同數據,分别對應4個不同區間,記錄結果。
輸入數據
運行結果
實驗四
實驗項目名稱:簡單循環程序設計
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1. 掌握循環程序的基本結構;
2. 熟練掌握while、do—while及for語句,并會用來編寫循環結構程序。
二、預習内容:
教材《C語言程序設計教程》第5章。
三、實驗内容:
1. 編寫程序,求
的和。(要求用while語句)
源程序:
運行結果:
2. 有一個分數序列:
,
,
,
…… 編寫程序,求這個數列的前20項之和。(要求用for語句,且結果保留6位小數)
源程序:
運行結果:
3. 一個乒乓球從100米高空自由落下,每次落地後,反跳回原高度的一半再落下。求它在第10次落地時,共經過多少距離以及第10次落地後乒乓球反彈的高度。(選擇自己擅長的循環語句,結果保留6位小數。)
源程序:
運行結果:
實驗五
實驗項目名稱:多層循環程序設計及break、continue語句在循環程序中的應用
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1. 掌握多層循環程序的執行過程及設計方法;
2. 掌握break及continue語句在循環程序中的使用方法。
二、預習内容:
教材《C語言程序設計教程》第5章。
三、實驗内容:
1. 編寫一個程序,打印一個如下圖所示的圖形。
*
***
*****
*******
源程序:
2. 編程輸出100以内的所有素數。
源程序:
運行結果:
3. 編程輸出前2個水仙花數(所謂“水仙花數”,是指一個3位數,其各位數字的立方和等于該數本身,例如,153=13 53 33,所以153是一個水仙花數)。
源程序:
運行結果:
實驗六
實驗項目名稱:數組及其應用
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1. 掌握一維數組的定義、賦值、輸入輸出及其應用;
2. 掌握二維數組的定義、賦值、輸入輸出及其應用;
3. 掌握字符數組的定義、賦值、輸入輸出及其應用。
二、預習内容:
教材《C語言程序設計教程》第6章。
三、實驗内容:
1. 編程在一個已按從小到大排列好的數組中插入一個數,要求插入該數後的數組仍按原規律排列。
源程序:
運行結果:
2. 編程輸出楊輝三角形(書本151頁編程題第4小題)。
源程序:
3. 編程輸入一行字符,将其中的所有英文字母組成一個新的字符串并輸出。
源程序:
運行結果:
實驗七
實驗項目名稱:函數的定義及調用
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1.熟悉定義函數的方法;
2. 掌握函數的調用方式及主調函數與被調函數間的信息傳遞方法;
3. 掌握遞歸方法以及會用函數來實現遞歸。
二、預習内容:
教材《C語言程序設計教程》第7章。
三、實驗内容:
1. 編寫一個判斷素數的函數prime,在主函數中輸入一個正整數,調用prime判斷是否是素數,結 果在主函數中輸出。
源程序:
運行結果:
2. 編寫一個函數gbs,計算兩個正整數的最小公倍數。在主函數中輸入兩個正整數,調用函數求它 們的最小公倍數,結果在主函數中輸出。
源程序:
運行結果:
3. 用遞歸方法求解猴子吃桃問題。猴子第1天摘下若幹個桃子,當即吃了一半,還不過瘾,又多吃了一個。第2天又将剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,就隻剩一個桃子了。求第1天共摘了多少個桃子。
源程序:
運行結果:
實驗八
實驗項目名稱:數組名作函數參數及變量的作用域與存儲方式
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1.掌握數組名作函數參數時形參與實參的定義方法;
2.會使用數組名作函數參數在主調函數與被調函數間傳遞多個數據;
3.掌握變量的作用域(局部變量與全局變量);
4. 掌握變量的存儲方式(動态存儲與靜态存儲)。
二、預習内容:
教材《C語言程序設計教程》第7章。
三、實驗内容:
1. 運行以下程序,并分析結果。
#include <stdio.h>
int x=8,y=3;
int max(int a,int b)
{
int c;
if(a>b) c=a;
else c=b;
return c;
}
int main( )
{
int x=4,maxi;
maxi=max(x,y);
printf("%d\n",maxi);
return 0;
}
2. 運行以下程序,并分析結果。
#include <stdio.h>
int f(int a)
{
static int b=0;
b=b a;
return b;
}
int main( )
{
int x=1,y1,y2;
y1=f(1);
y2=f(1);
printf("y1=%d,y2=%d\n",y1,y2);
return 0;
}
3. 在主函數中輸入10個整數,調用函數sort将它們按從小到大的順序排序,排序結果在主函數中輸出。
四、源程序清單:
3.
五、實驗結果:
1. 運行結果:
2. 運行結果:
3. 運行結果:
實驗九
實驗項目名稱:指針及其應用
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的:
1.掌握指針和間接訪問的概念,會定義和使用指針變量;
2. 能利用指針變量作函數參數得到多個要改變的值;
3.能正确定義指向數組的指針變量,并能用其對數組進行訪問;
4.能正确定義指向字符串的指針變量,并能用其對字符串進行訪問。
二、預習内容:
教材《C語言程序設計教程》第9章。
三、實驗内容:
1. 在主函數中輸入2個整數,調用swap函數将它們的值交換,結果在主函數中輸出。
2. 在主函數中輸入10個整數,調用函數sum求它們的和,結果在主函數中輸出(要求:實參用數組名,形參用指針變量)。
3. 在主函數中輸入一個字符串,調用converse函數将該字符串逆序,結果在主函數中輸出。(要求:實參用字符數組名,形參用指針變量)。
四、源程序清單:
1.
2.
3.
五、實驗結果:
1. 運行結果:
2. 運行結果:
3. 運行結果:
實驗十
實驗項目名稱:構造數據類型
所使用的工具軟件及環境:Visual C 6.0
一、實驗目的
1.掌握結構體類型變量和結構體類型指針的定義和使用;
2.掌握結構體類型數組的定義和使用;
3.掌握共用體類型、枚舉類型、用戶自定義類型的定義和使用。
二、預習内容
教材《C語言程序設計》第10章。
三、實驗内容
1.調試、運行下面的程序一。
#include "stdio.h"
union data
{
int a;
float b;
char c;
};
void main( )
{
union data d={65};
printf("%d\n",d.a);
printf("%f\n",d.b);
printf("%c\n",d.c);
}
程序的運行結果(或其截圖):
2.下面程序二中結構體數組stu1[ ]存放了五個同學的姓名name[ ]和年齡age信息。該程序的功能是想輸出成員年齡age最小的元素的各成員值,但程序中有錯誤,請調試、運行該程序。
已知結構體數組stu1[ ]中各元素的成員信息是:
結構體數組元素
成員name[ ]
成員age
stu1[0]
張三
20
stu1[1]
李四
18
stu1[2]
王五
19
stu1[3]
孫六
20
stu1[4]
陳七
19
#include "stdio.h"
#define N 5
typedef struct students
{
char name[9];
int age;
}STUDENT[N];
void main( )
{
STUDENT stu,stu1[N];
int i,j,k;
struct students *pstu=&stu[0],*t=stu1[0];
printf("請輸入同學的姓名、年齡:\n");
for(i=0;i<N;i )
scanf("%s%d",stu[i].name,&stu[i].age);
for(i=0;i<N-1;i )
{
k=i;
for(j=i 1;j<N;j )
{
if(((pstu j)->age)>((pstu k)->age))
k=j;
}
*t=*(pstu k);
*(pstu k)=*(pstu i);
*(pstu i)=*t;
}
printf("年齡最小的同學:姓名 %s,年齡 %d\n",stu[0].name,stu[0].age);
}
改正後的程序二:
程序的運行結果(或其截圖):
3.編寫程序三。鍵盤輸入某日,計算并顯示該日在本年度中是第幾天?例如,若輸入是:2015 10 8(表示2015年10月8日),則程序運行結果是:2015年10月8日是2015年中的第281天。要求:用包括年、月、日信息的結構體變量。
代碼如下:
程序的運行結果(或其截圖):
實驗十一
實驗項目名稱:文件
一、實驗目的
1.掌握文件、緩沖文件系統、文件指針的概念。
2.學會使用文件的打開、關閉、讀、寫等文件操作函數。
二、預習内容
教材《C語言程序設計》第11章。
三、實驗内容
1.編寫程序一。從鍵盤輸入一個字符串(以“!”結束),将其中的小寫字母全部轉換成大寫字母,然後輸出到磁盤文件“test.txt”中保存。
代碼如下:
插入文件“test.txt”的内容:
2.編寫程序二。已有十位同學的三門課成績等信息:
學号
姓名
高等數學
大學英語
體育
總分
201501
趙一
92
74
91
201502
錢二
67
88
74
201503
張三
89
68
95
201504
李四
95
94
90
201505
王五
85
75
65
201506
孫六
87
79
73
201507
陳七
82
81
69
201508
劉八
73
89
70
201509
周九
66
92
68
201510
謝十
78
85
93
由鍵盤輸入以上數據,計算每個同學的總分,将原有數據和計算出來的總分存放在磁盤文件“stud.txt”中。
代碼如下:
插入文件“stud.txt”的内容:
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!