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]);没加&,后改正