- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2014湖南大学c语言实验题目及其答案
第3章 指针
一. 目的和要求
掌握指针的概念和定义方法。
掌握指针的操作符和指针的运算。
了解指针与数组的关系。
了解指针与字符串的关系。
学习指针在函数中的应用。
二. 相关知识
1、指针变量的定义和初始化
指针变量是用来存放其它变量地址的变量。其定义格式如下:
存储类型 数据类型 *指针变量名1[=初值1],…
说明:
① 相同类型的指针变量和普通变量可以放在一起说明。
② 指针变量和普通变量完全一样,由它的定义位置决定指针的作用域和生命期。
③ 要使一个指针变量指向一个确定的变量,必须将该变量的地址赋给指针变量。
④ 一个指针只能指向同一个类型的变量。
2、运算符和*运算符
在C语言中提供了两个有关指针的运算符:
① 运算符称为“取地址运算符”。
② 运算符称为“指针运算符”,也称为“间接运算符”,如:*p代表p所指向的变量。
3、使用指针运算符应注意的问题
指针变量定义中的“*”与“*”运算符的区别。
指针变量定义中的“*”不是运算符,它只是表示其后的变量是一个指针类型的变量。而对于语句“*p=5;”,其中的“*”是指针运算符“*”,“*p”代表p指向的变量。
② 运算符与*运算符是互逆的。如:y=x; y=*x; 两个语句是等效的。
4、对指针变量的操作
在定义了一个指针变量之后,如:int *p, a; 就可以对该指针进行各种操作。
① 给一个指针变量赋予一个地址值,如:p=a;。
② 输出一个指针变量的值, printf(“%o”,p);。
③ 访问指针变量所指向的变量, 如:printf(“%d”,*p);。
5、指向数组的指针变量的使用
数组名本身可以看成是该数组的指针,但它的位置是固定的。如果定义一个指针变量,并把这个指针指向该数组的起始地址,那么通过对指针的运算,就可以完成对数组的访问。
如,引用一维数组元素(int a[10], *p=a;)的方法有:
① 下标法, 如:a[i], p[i]。
地址法, 如:*(a+i), *(p+i)。
指针数组和多级指针
① 一个数组,如果每个元素都是指针类型的,则它是指针数组。指针数组是用来存放一批地址的。
② 当定义的某个指针变量专门用来存放其它指针变量的地址时,这样的指针变量就称为指针的指针,也称二级指针。
7、指针型函数及函数指针
指针型函数,是指函数的返回值是指针型的,即这类函数的返回值是地址数据。
指针型函数调用与一般函数的调用方法完全相同,唯一需要注意的是只能用指针变量或指针型数组元素来接受指针型函数的返回值。
② 指向函数的指针称为函数指针,当把函数名赋给指针变量时,该指针变量的内容就是函数的存储地址。
函数指针的作用主要是把指针作为参数传送到其它函数。如果使指针变量指向不同的函数,将它的值传给被调用函数中的形参时,能调用不同的函数。
三. 实验练习
实验练习1:输入3个整数,按从大到小的次序输出(使用指针)。
本练习要求在封闭式实验课中在助教或者讲师的指导下完成。本练习分成6个部分:
实验目的
问题描述
事例输出
程序模板
问题解答提示
后续问题和任务
程序模板是完整的、可实际运行的C程序,其中关键的一行或者多行代码已经替换为注释。请先阅读问题描述,分析事例输出;然后研究模板的代码。参考问题解答提示,用C代码替换/* */注释。编译并执行程序,并将输出结果与提供的事例输出进行比较。然后回答强化练习。
实验目的
本实验旨在巩固学生对指针这种数据结构的理解,增强程序设计能力。在这个实验中,学生将练习:
? 定义一个指针变量并使它指向一个一维数组,它有三个数组元素。
? 在循环语句中使指针下移,依次输入三个整数存入数组中。
? 使指针上移,指向第三个数组元素。
? 第三个数与第一个数进行比较,若小于第一个数则交换。
? 第三个数与第二个数进行比较,若小于第二个数则交换。
?? 第二个数与第一个数进行比较,若小于第一个数则交换。
? 利用循环语句,按反序输出数组,即输出第一个数、第二个数、第三个数。
在强化练习中,学生将练习:
? 按从小到大的次序输出三个整数。
? 在循环语句中,不使用循环控制变量i,就用指针p进行输入输出。
? 不用数组,使用三个指针变量完成该题。
问题描述
编写程序,从键盘输入三个整数存入数组中,使指针p指向该数组,操作指针使数组中的数按从大到小的次序输出。
示例输出
请输入三个整数:12 90 55
90
55
12
程序模板
#include stdio.h
void main()
{ int a[3],*p=a;
int i,temp;
printf(请输入三个整数:);
您可能关注的文档
- 2012基础工程B卷.doc
- 2012基础工程A卷.doc
- 2012年ADA糖尿病诊疗指南文档.doc
- 2012年专门水文地质学试卷.doc
- 2012年9月份考试工程力学.doc
- 2012年兰州交通大学考研材料力学真题.doc
- 2012年上海市高一地理学业水平模拟.doc
- 2012麻醉生理学(一)(医学必看试题带详细解析答案).doc
- 2012版生物一轮精品复习学案11DNA重组技术的基本工具基因工程的基本操作程序(选修3).doc
- 2013会计电算化综合测试.doc
- 微题型26镁及其化合物海水提镁-2022年新高考一轮复习微题型巩固加练100天().docx
- 谷雨节气养生导向.pptx
- 春分气象与生活指南.pptx
- 高考高三数学三轮复习模拟考试卷(二十八).doc
- 2024年咨询工程师之工程项目组织与管理题库附参考答案(b卷).pdf
- 安全生产管理人员配置标准解析 .pdf
- 春分营销,传统媒体新策.pptx
- 考点12指数运算和指数函数-2022-2023学年高一数学题型归纳与解题策略(人教A版2019)(原卷版).docx
- 安全生产月安全知识试题 .pdf
- 中图版高考地理一轮总复习精品课件 第八章 生产活动与地域联系 第1讲 农业区位因素与地域类型.ppt
文档评论(0)