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

C语言指针应用相关的编程实例练习题

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

1、使用指针判断回文数

一个正数如果顺着和反过来都是一样的(比如12321,反过来也是12321),那么就称为回文数。回文数不能以0开头,回文数从1开始。使用指针实现回文数判断,代码如下,

#include #include void func(int len,char *p){    int i,j;    for(i = 0,j = len - 1;i <= len;i++,j--)    {        if(*(p+i) != *(p+j))        {            printf("不是回文数");            break;        }    }    if(i >= j)    {        printf("是回文数");    }}int main(){    char a[20];    gets(a);    char *p;    p = &a;    int length;    length = strlen(a);    func(length,a);    return 0;}

2、找出字符串中的数字

输出一段包含数字的字符串,通过使用指针来找出字符串的中数字,代码如下,

#include #include #include#define MAX_LEN 80void extractNum(char *str);int main(){    char str[MAX_LEN];    fgets(str,80,stdin);    extractNum(str);    puts(str);    return 0;}void extractNum(char *str){    int j=0;    char a[80];    for(int i=0;i<80;i++){        if( *(str+i)>='0' && *(str+i)<='9' ){            if(*(str+i-1)=='-'){            a[j]='-';            j++;            }            break;            }        }    for(int i=0;i<80;i++){        if(  *(str+i)>='0' && *(str+i)<='9'  ){            a[j]=*(str+i);            j++;                }    }    for(int i=0;i

3、指针实现字符串数组排序

有一个字符串数组,通过使用指针来实现对字符串数组进行排序,代码如下,

#include#includevoid change(int n, char* strings[]) {    char* temp;    int i, j;    for (i = 0; i < n; i++) {        for (j = i + 1; j < n; j++) {            if (strcmp(strings[i], strings[j])>0) {                temp = strings[i];                strings[i] = strings[j];                strings[j] = temp;            }        }    }}int main() {    int n;    int i;    char** p;    char* strings[] = { "C", "C++", "JAVA", "C#", "Python" };    n = sizeof(strings) / sizeof(strings[0]);    printf("排序前的数组为:");    for (i = 0; i < n; i++) {        printf("%s ", strings[i]);    }    printf("\n");    change(n, strings);    printf("排序后的数组为:");    for (i = 0; i < n; i++) {        printf("%s ", strings[i]);    }    printf("\n");    return 0;}