c語言程式實驗————實驗報告十二
- 實驗專案名稱: 實驗報告十二 用指標處理函式與陣列
- 實驗專案型別:驗證性
- 實驗日期:2024 年 5 月 30 日
一、實驗目的
1.掌握指標變數的定義格式,會定義和使用指標變數
2.能正確建立指標變數與陣列(包括一維、兩維和字串陣列)的聯絡,並正確使用指
針變數訪問陣列元素
3.掌握透過指標在函式間傳遞陣列的各種方法
4.進一步學習程式除錯
二、實驗硬、軟體環境
Windows計算機、Dev c 6.0
實驗內容:
(1)將字串中指定的字元用另一個字元替換。
(2)已知兩個整型變數a,b,編寫程式透過指標呼叫函式,輸出兩個數的最大值。
(3)已知一個整數陣列,透過函式呼叫的方式,獲取第n個陣列元素的地址並輸出。
三、實驗步驟:
專案一
解題思路
輸入int replace(char,char,char);輸入主函式,首先char宣告一個陣列字串"My name is jason."再宣告c1,c2;指定一個被替換的字元gatchar()輸入c1,輸入fflush(stdin),輸入新字元getchar輸入c2,輸入replace(s,c1,c2)將字串s中的c1替換成c2。輸入int replace(charp,char oldc,char newc),int宣告整型i,for函式定義(i=0;p[i]!='\0';i++),p[i]=newc;
核心程式碼
#include<stdio.h>
int replace(char,char,char);
int main()
{
char s[]="My name is jason.";
char c1,c2;
printf("\n原來的字串=%s",s);
printf("\n請指定一個被替換的字元:");
c1=getchar();
fflush(stdin);
printf("請輸入一個新字元:");
c2=getchar();
replace(s,c1,c2);
printf("新的字串=%s\n",s);
printf("31韓翔-專案1");
}
int replace(charp,char oldc,char newc)
{
int i;
for(i=0;p[i]!='\0';i++)
if(p[i]==oldc)
p[i]=newc;
}
實驗截圖
專案二
解題思路
輸入float max(float,float);輸入主函式;float宣告指標(p)(float,float)和a,b,m。scanf呼叫&a,&b;輸入表示式p=max和m=(p)(a,b)。printf輸出,a,b,m;輸入自定義函式float max(float u,float v),float宣告 z;輸入表示式z=(u>=v)?u:v;return返回 (z);
核心程式碼
#include<stdio.h>
float max(float,float);
int main()
{
float(p)(float,float);
float a,b,m;
scanf("%f,%f",&a,&b);
p=max;
m=(p)(a,b);
printf("a=%5.1f,b=%5.1f,max=%5.1f\n",a,b,m);
printf("31韓翔-專案2");
}
float max(float u,float v)
{
float z;
z=(u>=v)?u:v;
return (z);
}
實驗截圖
專案三
解題思路
輸入自定義函式int c(int *p,int n),printf輸出地址&p[n];輸入int main(),int 宣告陣列a[10]={1,2,3,4,5,6,7,8}和整形變數n;scanf呼叫&n;輸入c(a,n)去a中的第n個元素;
核心程式碼
#include <stdio.h>
int c(int *p,int n)
{
printf("%d\n",&p[n]);
return 0;}
int main()
{
int a[10]={1,2,3,4,5,6,7,8},n;
printf("請輸入想要獲取的陣列元素地址的下標\n");
scanf("%d",&n);
c(a,n);
printf("31韓翔-專案三\n");}
實驗截圖
實驗結果及分析
在專案1中的輸出程式碼printf("新的字串=%s\n",s);後忘加分號,後改正
在專案2中scanf處沒加分號,後改正。
在專案3中printf("%d\n",&p[n]);沒加&,後改正