第六周作業

2022-08-21 21:03:11 字數 4456 閱讀 4057

這個作業屬於那個課程

c語言課本

這個作業要求在**

我在這個課程的目標是

理解變數、記憶體單元和位址之間的關係;掌握如何定義指標變數,怎樣使用指標變數,怎樣進行指標變數的初始化;掌握指標變數的基本運算;理解指標作為函式引數的作用;掌握如何使用指標實現函式呼叫返回多個值。

這個作業在那個具體方面幫助我實現目標

指標的基本操作

參考文獻

mooc課堂

6-1 求兩數平方根之和 (10 分)

函式fun的功能是:求兩數平方根之和,作為函式值返回。例如:輸入12和20,輸出結果是:y = 7.936238。

函式介面定義:

double fun (double *a, double *b);

其中 a和 b是使用者傳入的引數。函式求 a指標和b 指標所指的兩個數的平方根之和,並返回和。

裁判測試程式樣例:

#include#include double fun (double *a, double *b); 

int main ( )

/* 請在這裡填寫答案 */

輸出樣例:

y=7.94

double fun (double *a, double *b)

7-1 利用指標返回多個函式值 (30 分)

讀入n個整數,呼叫max_min()函式求這n個數中的最大值和最小值。

輸入格式:

輸入有兩行: 第一行是n值; 第二行是n個數。

輸出格式:

輸出最大值和最小值。

輸入樣例:

在這裡給出一組輸入。例如:

5

891203

輸出樣例:

在這裡給出相應的輸出。例如:

首先第一陣列太小了,格式輸出錯誤。for迴圈的i一開始是1而不是0.

後來找到了錯誤,並且改正好了錯誤。

二、預習題

1、最小數放前最大數放後

為一維陣列輸入10個整數;將其中最小的數與第乙個數對換,將最大的數與最後乙個數對換;輸出陣列元素。。

函式介面定義:

void input(int *arr,int n);

void max_min(int *arr,int n);

void output(int *arr,int n);

三個函式中的 arr和n 都是使用者傳入的引數。n 是元素個數。

input函式的功能是輸入 n個元素存到指標arr所指向的一維陣列中。

max_min函式的功能是求指標arr所指向的一維陣列中的最大值和最小值,其中最小的數與第乙個數對換,將最大的數與最後乙個數對換。

output函式的功能是在一行中輸出陣列元素,每個元素輸出佔3列。

裁判測試程式樣例:

">void input(int *arr,int n);

void max_min(int *arr,int n);

void output(int *arr,int n);

int main()

```/* 請在這裡填寫答案 */

####輸入樣例:

`5 1 4 8 2 3 9 5 12 7`

####輸出樣例:

` 1 5 4 8 2 3 9 5 7 12`

###1:實驗**

格式有點錯誤,聯想到選擇排序過來的

八、思考題:

1.為什麼要使用指標?它有什麼用?

(1)用指標在函式間傳遞資料效率高,尤其是當資料量大的時侯。

(2)用指標的話,對記憶體的占用會比較小,而直接用中間變數會複製出副本,占用雙重記憶體,即便在函式呼叫後變數副本會被撤銷

(3)指標的功能強大,它可以指向資料存放的位址,指標既可以指向變數位址,也可以指向函式。因此,無論是呼叫資料,還是呼叫函式,都可已使用指標。指標實現間接訪問,可以保證原資料不會丟失

指標的作用:

(1)在資料傳遞時,如果資料塊較大(比如說資料緩衝區或比較大的結構),這時就可以使用指標傳遞位址而不是實際資料,即提高傳輸速度,又節省大量記憶體。

(2)資料轉換,利用指標的靈活的型別轉換,可以用來做資料型別轉換,比較常用於通訊緩衝區的填充,比如說,乙個資料緩衝區char buf[100],如果其中buf[0,1]為命令號,buf[2,3]為型別,buf[4~7]為某一數值,型別為int,就可以使用如下語句進行賦值:

(short)&buf[0]=cmdid;

(short)&buf[2]=type;

(int)&buf[4]=value;

(3)字串指標,是使用最方便,且常用的。

(4)函式指標,形如:#define pmyfun (void*)(int,int),可以用在大量分支處理的例項當中,如某通訊根據不同的命令號執行不同型別的命令,則可以建立乙個函式指標陣列,進行散轉。

(5)在資料結構中,鍊錶、樹、圖等大量的應用都離不開指標。

2.指標變數在記憶體中暫用多大的空間?它的大小由什麼決定?

一般是四位元組,指標大小是由當前cpu執行模式的定址位數決定

學習進度條

周/日期

這週所花時間

**行數

學到的知識點簡介

目前比較疑惑的問題

第一周 2.23-3.2

三天40

一維陣列的定義和使用;一維陣列的初始化;以及使用一維陣列程式設計

無第二週 3.3-3.9

兩天50

檔案的結構與檔案型別指標;檔案的開啟方式

無第三週 3.10-3.16

四天54

預習二維陣列;

第四周 3.17-3.22

三天30

選擇排序法,氣泡排序法

無第五周

3/25-3/31兩天

78判斷回文、一維字元陣列的用法、使用字串程式設計

使用字串程式設計

4/1-4/7

兩天88

指標變數的基本運算,記憶體單元和位址之間的關係

不太了解指標陣列

學習進度條

周/日期

這週所花時間

**行數

學到的知識點簡介

目前比較疑惑的問題

第一周 2.23-3.2

三天40

一維陣列的定義和使用;一維陣列的初始化;以及使用一維陣列程式設計

無第二週 3.3-3.9

兩天50

檔案的結構與檔案型別指標;檔案的開啟方式

無第三週 3.10-3.16

四天54

預習二維陣列;

第四周 3.17-3.22

三天30

選擇排序法,氣泡排序法

無第五周

3/25-3/31兩天

78判斷回文、一維字元陣列的用法、使用字串程式設計

使用字串程式設計

4/1-4/7

兩天88

指標變數的基本運算,記憶體單元和位址之間的關係

不太了解指標陣列

時間**行數

部落格字數

第一周40

500第二週

501230

第三週54

1500

第四周30

1360

第五周78

1260

第六周80

1800

第六周作業

a.用指標訪問物件 includeusing namespace std class a a int aa a aa 定義建構函式,用引數aa初始化資料成員a void display int main b.指標型別作為成員函式的引數 includeusing namespace std class...

第六周作業

1 自建yum倉庫,分別為網路源和本地源 本地源 cd etc yum.repos.d vim local.repo local name local cdrom yum baseurl file misc cd enabled 1 gpgcheck 1 gpgkey file etc pki rp...

第六周作業

1.簡述gps載波相位測量的基本原理?載波相位測量是利用接收機測定載波相位觀測值或其差分觀測值,經基線向量解算以獲得兩個同步觀測站之間的基線向量座標差的技術和方法。載波相位觀測量理論上是gps訊號在接收時刻的瞬時載波相位值。但實際上是無法直接測量出任何訊號的瞬時載波相位值,測量接收到的是具有都卜勒頻...