【實驗目的】
1. 掌握位址和指標的基本概念,學會定義和使用指標變數;
2. 熟悉指標與陣列之間的關係,能正確使用陣列的指標和指向陣列的指標變數;
3. 掌握指標形參的作用,熟練掌握編寫指標形參的函式;
4. 掌握結構體型別變數和結構體指標的定義及結構體成員的引用方式;
5. 掌握結構體陣列的定義及應用方法;
6. 掌握鍊錶的定義及操作,並能熟練編寫鍊錶應用程式。
【實驗內容】
1、程式填空
給定程式中函式fun的功能是:對形參s所指字串中下標為奇數的字元按ascii碼大小遞增排序,並將排序後下標為奇數的字元取出,存入形參p所指字元陣列中,形成乙個新串。
例如,形參s所指字串為baawrskjghzlicda,執行後p所指字元陣列中的字串應為aachjlsw。
在以下程式的下劃線處填入正確的內容並把下劃線刪除,使程式得出正確結果。不得增行或刪行,也不得更改程式結構。
程式填空如下:
#include <>
void fun(char *s,char *p)
}for(i=1,j=0;ifound
p[j]= 』\0』 ;
}main()
2、程式填空
學生的記錄由學號和成績組成,n名學生的資料已在主函式中放入結構體陣列s中,給定函式fun的功能是:把分數最低學生的資料放在b指定的陣列中,分數最低的學生可能不止乙個,函式應返回分數最低學生的人數。在程式的下劃線處填入正確的內容並把下劃線刪除,使程式得出正確結果。
不得增行或刪行,也不得更改程式結構。
需填空程式如下:
#include <>
#define n 16
typedef struct
strec;
int fun(strec *a,strec *b)
found
return n;
}main()
,,,,,,
,,,,,,
,,,};
strec h[n];
int i,n; file *out;
n=fun(s,h);
printf(「the %d lowest score: \n」,n);
for(i=0;iprintf(「%s %4d\n」,h[i].num,h[i].s);
printf(「\n」);
out=fopen(「
fprintf(out,「%d\n」,n);
for(i=0;ifprintf(out,「%4d\n」,h[i].s);
fclose(out);
}3.程式改錯
給定程式中函式fun的功能是:從低位開始取出長整型變數s中偶數字上的數,依次構成乙個新數放在t中。高位仍在高位,低值仍在低位。
例如,當s中的數為7654321時,t中的數為642。
請改正程式中指定部位的錯誤,使它能夠得出正確結果。
注意:不要改動main函式,不得增行或刪行,也不得更改程式的結構。
需改正程式如下:
#include <>
found
void fun(long s, long t)
}main()
正確的程式:
#include <>
found
void fun(long s, long *t)
}main()
4.程式改錯
給定程式中函式creatlink的功能是建立帶頭結點的單向鍊錶,並為各結點資料域賦0~m-1的值。
請改正函式creatlink中指定部位的錯誤,使它能夠得出正確結果。
需改正程式如下:
#include <>
#include <>
typedef struct aa
node;
node *creatlink(int n,int m)
found
return h;
}outlink(node *h)
printf(「\n」);
}main()
C指標結構體
1007 08a1 若有定義 char str1 6 abcdm str2 abcdef 正確的是 a stycpy str1,str2 b 表示式strcmp str1,str2 的值 0 c str1 str2d 表示式strlen str1 的值為6 1007 b 1008 08c2 main...
實驗迴圈結構程式設計 有答案
1 程式填空 下面程式的功能為 計算1 100之間的偶數之和,完成以下的程式並執行出正確的結果。include void main printf s d s 執行結果 s 2550 2 程式改錯 1 下面程式的功能為 計算10!修改以下的程式並上機執行通過。include void main 正確的...
實驗11結構體變數和結構體陣列的應用
一 實驗目的 1 學會定義乙個結構體型別。2 熟練掌握結構體變數的定義以及初始化。3 熟練掌握結構體變數的賦值方法。4 學會使用結構體陣列解決實際問題 二 實驗知識點 1 結構體型別。2 結構體變數的初始化。3 對結構體變數成員的引用的兩種方式。成員運算子和指標運算子 4 結構體陣列的定義以及陣列元...