首页 理论教育 C语言程序设计:返回指针的函数

C语言程序设计:返回指针的函数

时间:2023-11-23 理论教育 版权反馈
【摘要】:一个函数可以返回一个int类型或double类型的值,也同样可以返回一个“地址”值,这就是一个返回指针的函数。如我们前边用到的动态内存分配的函数,返回的都是分配的内存区域的首地址,都是返回指针的函数。程序分析mon函数中的那么是一个字符指针数组,其每一个单元name[n]都是一个字符指针,指向每一个月份英文单词的首地址,因此它是一个返回指针的函数,其类型定义为char*。返回指针的函数在编程中应用比较广泛,希望同学们好好理解和掌握。

C语言程序设计:返回指针的函数

一个函数可以返回一个int类型或double类型的值,也同样可以返回一个“地址”值,这就是一个返回指针的函数。如我们前边用到的动态内存分配的函数,返回的都是分配的内存区域的首地址,都是返回指针的函数。

返回指针的函数定义格式如下:

返回指针的函数从概念上来说是一个函数,因此首先满足函数定义的要求,这和前边所学一致,只是其返回类型为指针而已。

如定义:

则仅说明该函数返回的是一个指向整型的指针。

【例7-29】输入一个1~12的整数,输出其对应的月份的英文单词

程序分析

(1)mon函数中的那么是一个字符指针数组,其每一个单元name[n]都是一个字符指针,指向每一个月份英文单词的首地址,因此它是一个返回指针的函数,其类型定义为char*。

(2)name[n]是整数n(1~12)对应的英文月份的首地址,返回后赋给了main函数中的字符指针变量str,str即成为该英文单词的首地址。

(3)用%s输出地址str起始的英文单词,得到整数n对应的英文的月份。

返回指针的函数在编程中应用比较广泛,希望同学们好好理解和掌握。

综合实训

1.请输入正整数n并用筛法求出n以内的素数

2.请输入n和n个整数,并将这n个整数按照升序排序后输出排序结果。

课后习题

一、单项选择题

1.下面关于指针的初始化中,正确的是(  )。

A.int a,*p=a B.int a,*p=&a

C.int a;double*p=a D.int a;double*p=&a

2.下面关于指针变量的描述中,正确的是(  )。

A.指针变量可以存放某个对象的地址

B.指针变量的类型指的是它存放的数值的类型

C.指针变量也有地址,其地址也是一个指针

D.指针变量的值是可以改变的(www.xing528.com)

3.如有定义:int a[10][20],*p;下面对指针赋值中不正确的是(  )。

A.p=a[0]B.p=a C.p=&a[3][5]D.p=*(a+3)

4.如有定义:int a[10]={1,2,3,4},*p=a+2;则执行printf(“%d,%d”,*p++,a[2])后,输出结果为(  )。

A.3,3 B.3,4 C.4,3 D.4,4

5.如有定义:int a[10][20],(*p)[20];下面对指针p赋值中正确的是(  )。

A.p=a+3 B.p=a[3]C.p=*a+3 D.p=*(a+3)+4

6.如有定义:char s[]=”abcdefg”,*p=s+2;则执行printf(“%s”,p)后,输出(  )。

A.abcdefg B.bcdefg C.cdefg D.ab

7.以下程序的输出结果是(  )。

A.gm    B.rg    C.or    D.ga

二、程序阅读题

1.以下程序的输出结果是_________。

2.以下程序的输出结果是________。

3.以下程序的输出结果是_________。

4.以下程序的输出结果是________。

三、程序设计题

1.请编写函数fun,函数的功能是:在字符串中所有数字字符前加一个$字符。例如,输入:A1B23CD45,则输出为:A$1B$2$3CD$4$5。

2.编写一个函数,该函数可以统计一个子串在另一个字符串中出现的次数。例如,输入的字符串为:asdasasdfgasdaszx67asdmklo,子字符串为:as,则应输出6。

3.定义一个整型二维数组并初始化,编程求该数组所有元素的和。要求:分别用数组下标法和指针法实现。

4.输入n和n个整数,然后输入一个整数k,编程求出数组中第k大的数。要求读入n之后用动态分配函数为数组申请内存空间,求第k大的数的功能用函数实现,并用指针作为函数的参数。

5.输入n和n个整数,并定义一个函数,用该函数同时求出这n个整数中的最大值和最小值。

6.输入n和n个整数并对这n个整数从小到大排序,要求排序功能用函数实现并用指针作为函数的参数。

7.输入m和n两个整数,并利用动态内存分配方法开辟一个m行n列的二维数组,输入m×n个整数后,对二维数组中的每一行按照从小到大的顺序排序,要求排序功能用函数实现且使用指针作为函数的参数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈