云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《c语言程序设计基础》单元总结与练习题及答案()

《c语言程序设计基础》单元总结与练习题及答案()

  • 62 次阅读
  • 3 次下载
  • 2025/6/8 2:15:26

单元八 指针的使用

单元总结提升

在本单元中,对指针的理解,以及利用指针访问不同形式的数据是核心内容。通过本单元的学习,我们应该知道:

6. 内存地址就称为指针。C语言允许用一个变量来存放指针,这种变量称为指针变量,而指针变量的值就是某个内存单元的地址。

7. 定义指针变量的一般格式为: 类型标识符 *指针变量名 ,其中:

(1)“指针变量名”前面的“*”,表示该变量是指针变量,不能省略。 (2)“类型标识符”表示该指针变量所指向的变量的数据类型。

(3)当一个指针变量已确定指向某类型的变量时,不能再指向另一种类型的变量。

3.指针变量被赋值后即可引用,引用指针变量的一般方法为: *指针变量名 。

4.指针和数组有着密切的关系,任何通过控制数组下标实现的对数组的操作,都可用指针来实现。要通过指针操作数组,首先要建立指针变量与数组之间的关系,然后才能通过指针变量访问数组元素。若有语句段:??int a[10]; int *p; ?p=a;,则对于数组元素的访问方式有 a[i]、 *(p+i) 、 p[i] ,对数组元素地址的表示方式有 a+i 、 p+i 、 &a[i] 。

5.数组名代表数组的首地址,利用函数处理一维数组数据时,函数之间的参数传递为 数组首地址 。将数组的首地址作为实参传递给函数的形参以后,实参数组和形参数组其实是同一段内存中的数据。

6.字符串是存放在某存储区域的一串字符序列,可通过字符数组和字符指针两种方式操作字符串。

7.函数返回值可以是地址(指针类型),返回值为地址的函数定义形式为: <类型标识符> *<函数名> ([形参列表]); 。

通过本单元的学习,应明确地址和指针的关系,掌握使用指针访问内存数据的基本方法。

单元练习

一.选择题

1.假设整型变量a的值是12,a的地址是2200,若想使整型指针变量p指向a,以下赋值正确的是

( )。

A.&a=2200; ??B.*p=12;

C.*p=2200; D.p=&a;

2.若有定义int *p,m=5,n;,以下正确的程序段是( )。

A.p=&n; scanf\ C.scanf(\

3.以下合法的定义是( )。

? B.p=&n; scanf(\

D.p=&n; *p=m; B.char *p=\

D.char str[13]; str[]=\

A.str[]={\ ?

C.char *p; strcpy(p, \ ( )。 A.a

??B.a[6]

4.若有定义int a[ ]={1,3,5,7,9,11}, *p=a;,则能够正确引用该数组元素的是

C.*(p--)

D.*(--p)

5.以下程序运行结果为( )。

#include void main( ) { }

char a[]=\char *p,*q; int k; p=a;q=b; for(k=0;k<8;k++)

if(*(p+k)==*(q+k))

printf(\

A.gae ??B.ga C.Language

D.programe

二.填空题

1.给出以下程序的执行结果 。

#include void main( ) {

int *p1,*p2,*p; int a=10,b=12; p1=&a;p2=&b; if(a

}

{p=p1;p1=p2;p2=p;} printf(\printf(\

2.以下程序的功能是把数组元素的最大值放入a[0]中,则条件表达式应为 。

#include void main( ) { }

int a[10]={6,7,2,9,5,10,4,3,8,1}; int *p=a,i;

for(i=0;i<10;i++,p++)

if( ) *a=*p;

printf(\

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

#include void main( ) { }

int a[2][3]={{1,2,3},{4,5,6}}; int m,*ptr; ptr=&a[0][0];

m=(*ptr)*(*(ptr+2))*(*(ptr+4)); printf(\

4.下列函数功能是计算str所指字符串的长度,并作为函数值返回。请填空。

int mystrlen(char *str) { }

char *p;

for(p=str; !='\\0';p++); return( );

5.以下程序中,函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址。试问当程序运行时依次输入:abcd、abba和abc三个字符串,则输出结果为 。

#include

#include

char *scmp(char *s1,char *s2) { if(strcmp(s1,s2)<0) return(s1); else }

void main( ) { int i;

char string[20],str[3][20]; for(i=0;i<3;i++)

gets(str[i]); return(s2);

strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[2])); printf(\}

*******************************************************************************

习题答案:

一.选择题

1.D 2.D 3.C 4.C 5.A

二.填空题

1.12,10,10,12 2.*p>*a 3.15

4.*p p-str 5.abba

*******************************************************************************

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

单元八 指针的使用 单元总结提升 在本单元中,对指针的理解,以及利用指针访问不同形式的数据是核心内容。通过本单元的学习,我们应该知道: 6. 内存地址就称为指针。C语言允许用一个变量来存放指针,这种变量称为指针变量,而指针变量的值就是某个内存单元的地址。 7. 定义指针变量的一般格式为: 类型标识符 *指针变量名 ,其中: (1)“指针变量名”前面的“*”,表示该变量是指针变量,不能省略。 (2)“类型标识符”表示该指针变量所指向的变量的数据类型。 (3)当一个指针变量已确定指向某类型的变量时,不能再指向另一种类型的变量。 3.指针变量被赋值后即可引用,引用指针变量的一般方法为: *指针变量名 。 4.指针和数组有着密切的关

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com