开发手册 欢迎您!
软件开发者资料库

C语言指针与函数相关编程实例练习题

指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。本文主要介绍C语言中指针与函数相关编程实例练习题,以及相关的示例代码。

1、函数指针求最大值

定义一个函数求函数最大值,通过函数指针调用,代码如下,

#include int Max(int, int);  //函数声明int main(void){    int(*p)(int, int);  //定义一个函数指针    int a, b, c;    p = Max;  //把函数Max赋给指针变量p, 使p指向Max函数    printf("请输入 a 和 b:");    scanf("%d%d", &a, &b);    c = (*p)(a, b);  //通过函数指针调用Max函数    printf("a = %d\nb = %d\nmax = %d\n", a, b, c);    return 0;}int Max(int x, int y)  //定义Max函数{    int z;    if (x > y)    {        z = x;    }    else    {        z = y;    }    return z;}

注意:* 和函数名要用括号括起来,否则因为运算符的优先级原因就变成指针函数。

2、指针作为函数参数

使用函数时需要有多个返回值,此时可以使用指针作为函数参数,通过输入的学生数量和每个学生的学号和成绩,找出成绩最高学生的学号和学分,代码如下,

#include #define N 40void FindMax(int score[],long num[],int n,int *pMaxScore,long *pMaxNum){    int i;    *pMaxScore=score[0];//假设第一个同学为最高分    *pMaxNum=num[0];//记录当前学生学号    for (i=1;i*pMaxScore)//获得最高分        {            *pMaxScore=score[i];//不用交换,直接覆盖值            *pMaxNum=num[i];        }    }}int main(){    int score[N],maxScore;    int n,i;    long num[N],maxNum;    printf("请输入学生数量:\n");    scanf("%d",&n);    printf("n = %d\n",n);    printf("请输入学号 ID 和 学分:\n");    for (i=0;i

3、指针作为函数返回值

返回指针的函数,主体是函数,返回值是一个指针,也就是指针函数。使用函数时返回字符串,就需要用到指针函数,代码如下,

#include char* getword(char);char* getword(char c){        switch (c)    {    case'C':return "C/C++/C#";    case'J':return "Java";    case'P':return "Python";    case'L':return "Linux";    default:return "CJAVAPY";    }}int main(){    char input;    printf("请输入一个大写字母:\n");    scanf("%c", &input);    printf("%s\n", getword(input));}