




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言c程序设计课件高级语言c程序设计课件2/313.什么是指针?地址和指针有什么样的关系?P139*=;初值:可缺省。可以是该类型的某变量的地址 牛牛文库文档分享4/313.什么是指针?地址和指针有什么样的关系?P1393/314.指针的值和类型是怎样规定的?它有哪些运 算?P139-140*=;类型名-基本类型名及派生类型名,用户定义的类、枚 举类型、结构类型、联合类型名初值可缺省。可以是该类型的某变量的地址运算:取地址运算&和取内容运算*; 数组指针的算术运算; 指针的关系运算; 指针的赋值运算。 牛牛文库文档分享5/314.指针的值和类型是怎样规定的?它有哪些运4/315.用指针可有
2、几种表示数组元素的方法,试简 述3种方法的使用方法。P142指向数组元素的指针指向数组的指针指针数组 牛牛文库文档分享6/315.用指针可有几种表示数组元素的方法,试简指向数组元5/316.简述指针和数组的关系。P142 牛牛文库文档分享7/316.简述指针和数组的关系。P142www.niuwk6/317.指针有哪些运算?和普通的数据类型的运 算有什么不同?P139-140运算:取地址运算&和取内容运算*; 数组指针的算术运算; 指针的关系运算; 指针的赋值运算。 牛牛文库文档分享8/317.指针有哪些运算?和普通的数据类型的运运算:取地址7/318.&和*的用法各有几种?它们的使用方法是
3、什么?P140&:取地址运算; *:指针/取内容运算。 牛牛文库文档分享9/318.&和*的用法各有几种?它们的使用方法是&:取地址8/319.试述函数指针的用法。在计算机上实现 simpson函数。P147-148 牛牛文库文档分享10/319.试述函数指针的用法。在计算机上实现www.ni9/3110.试述指针在函数的参数传递中的作用及其 使用方法。P146指针作函数参数-函数的参数(引用型参数除外)在调用过程 中,实参(表达式)的值仅在调用中有意义 的形参,参加函数体的运算。难以实现相 对于函数的外部的“全局”变量作某些处理。 牛牛文库文档分享11/3110.试述指针在函数的参数传递中的
4、作用及其指针作函10/3111.简述指针和函数的关系。P146函数返回指针-指针型函数:返回值为指针的函数,返回类 型的说明应指明指针的对象类型后加*。函数指针-函数的地址也可作指针的值,使函数作为 参数指针作函数参数-函数的参数(引用型参数除外)在调用过程 中,实参(表达式)的值仅在调用中有意义 的形参,参加函数体的运算。难以实现相 对于函数的外部的“全局”变量作某些处理。 牛牛文库文档分享12/3111.简述指针和函数的关系。P146函数返回指针-11/3112.怎样使用动态分配运算符对指针变量进行 动态分配?P148new-动态数据生成 生成1个无名的动态变量,返回1个该类型的指针值,程
5、序中利用指针对该变量操作;newnewsize /数组new() 牛牛文库文档分享13/3112.怎样使用动态分配运算符对指针变量进行new-12/3112.怎样使用动态分配运算符对指针变量进行 动态分配?P148deletedelete delete-动态数据释放 释放/撤消new生成的动态变量。 牛牛文库文档分享14/3112.怎样使用动态分配运算符对指针变量进行dele13/3113.什么是引用?P150,引用和指针的区别是 什么?P151&=;指针:对象变量的地址,表示对象变量时, 用*;*=;引用变量:已定义的变量的别名,表示对象 变量时,直接代表。 牛牛文库文档分享15/3113.
6、什么是引用?P150,引用和指针的区别是类14/3114.引用性参数具有哪些优点?P152(1)函数外的变量以别名形式引入到函数体内参 加运算;(2)不必在调用时创建与实参变量/对象对应的值 参数变量,当实参变量/对象占用内存较多时, 节省内存;(3) 指针可以改变内容,任意赋值,不如引用参 数安全。 牛牛文库文档分享16/3114.引用性参数具有哪些优点?P152(1)函数外15/3115.简述指针在C+语言中的重要性和它在程 序安全方面的负面影响。P138-153 牛牛文库文档分享17/3115.简述指针在C+语言中的重要性和它在程www16/3116.尝试将6.1节中选择排序的程序改造为
7、从 小到大的排列顺序。P136#include#include void ssort(float*,int);void main(void)const int n=500;int i;float listn,*pf; /listi=*(list+i)for(i=0;in;i+) listi=rand();pf=&list0; /&list0= list= list首地址ssort(pf,n); /= ssort(list,n) 牛牛文库文档分享18/3116.尝试将6.1节中选择排序的程序改造为从#in17/31void swapl(float *a,float *b) float temp;
8、 temp=*a; *a=*b; *b=temp;void ssort(float *a,int m)/对m个浮点数组排序 int i,j,index; float elem; for(i=0;im-1;i+) elem=*(a+i); /*(a+i)=ai index=i; for(j=i+1;jm;j+) if(*(a+j)elem) elem=*(a+j); index=j; swapl(a+i,a+index); 牛牛文库文档分享19/31void swapl(float *a,float18/31练习题解答1.说明下面定义的指针的含义。 float *pf; / pf:未赋初值的fl
9、oat型的指针变量 double *pd23; /pd:2维的double型的指针数组 int(*pi)2; /指向int型1维数组的指针 P142 char *ch=“abcde”; /ch:字符串指针=a存储地址 char *name=“Tom”,”John”,”Lennis”; /name:字符串指针数组 P145 牛牛文库文档分享20/31练习题解答1.说明下面定义的指针的含义。www.n19/312.读下面的代码并完成要求的问题。 已知程序的第1行输出数据是65fdf4,请判断下 面的4行上出哪些可以确定其输入值,请写出哪 些可以判断的值。P140#include “stdio.h”
10、main()int tmp=10;int *p=&tmp;int *q=p;printf(“%xn”,q); /65fdf4printf(“%dn”,*p); /10printf(“%xn”,&tmp); /65fdf4printf(“%xn”,&p); /65fdf4-4=65fdf0 VC中,int占4Bprintf(“%xn”,p); /65fdf4tmp10p q&tmp 牛牛文库文档分享21/312.读下面的代码并完成要求的问题。#include20/313.下面语句声明的是什么?P143 double *ara46; a.双精度浮点型数组 b.双精度浮点型指针数组 c.非法的声明
11、牛牛文库文档分享22/313.下面语句声明的是什么?P143www.niuw21/314.设有以下的语句: int a10=0,1,2,3,4,; int *p=a; 请指出以下的对a数组元素的正确引用是哪些? 并指出其值是什么。P1422p-a; /p2; /=*(p+2)=2*(*(a+1); /*(&a3); /3012340apP2a3 牛牛文库文档分享23/314.设有以下的语句:012340aP2a322/315.编制函数char *FindPlace(char *str,char c);该函 数返回字符串str中第1次出现字符c的位置以后的 字符串。若没有c字符则返回1个空字符串
12、。#include#includechar *FindPlace(char *str,char c);main()char a15=This is a dog.;char charc,*p;int i;cout字符串:;for(i=0;i14;i+)coutai;coutendlcharc; 牛牛文库文档分享24/315.编制函数char *FindPlace(cha23/31coutendl查找到的字符串:;p=FindPlace(a,charc);if(p!=NULL) for(i=0;istrlen(p);i+) cout*(p+i);char *FindPlace(char *str,
13、char c)int i; bool flag; flag=false; for(i=0;istrlen(str);i+) if (*(str+i)=c) flag=true; return (str+i+1); break; if (flag=false) return (NULL); 牛牛文库文档分享25/31coutendl查找到的字符串:;ww24/31执行结果 牛牛文库文档分享26/31执行结果 牛牛文库文档分25/316.完成下面的一段程序,使该程序能够输出指定 的2维数组任意行任意列元素的值。P142main()static int a33=1,2,3,4,5,6,7,8,9;i
14、nt (*p)3,i,j;p=a;scanf(“i=%d”,&i,&j);printf(“a%d,%d=%dn”,i,j,_);请在空格处填入代码,使得运行情况可以达到如下效果:i=0,j=0 a0,0=1aij/*(p)0 牛牛文库文档分享27/316.完成下面的一段程序,使该程序能够输出指定mai26/317.已知如下的结构: static char *name=“Tom”,”John”,”Follow me” 试编写1个程序来输出这个数组中的数据,输出效 果如下:Tom John Follow me P145#include #include main()int i;static cha
15、r *name=Tom,John,Follow me;for(i=0;i3;i+) printf(%sn,namei); 牛牛文库文档分享28/317.已知如下的结构:#include stdio27/31执行结果 牛牛文库文档分享29/31执行结果 牛牛文库文档分28/318.仔细检查以下的代码,完成题目。P149#include void main(void)int *p;p=new int;*p=10;cout“int value is:”*p;delete p;请指出程序的输出。 牛牛文库文档分享30/318.仔细检查以下的代码,完成题目。P149www.29/318.仔细检查以下的代
16、码,完成题目。P149 #include void main(void)int *p;p=new int;*p=10;cout“int value is:”*p;delete p;详细描述这段程序在内存中执行时的变化情况。10p 牛牛文库文档分享31/318.仔细检查以下的代码,完成题目。P14910pw30/318.仔细检查以下的代码,完成题目。P149 #include #include0 void main(void)1 int *p;2 p=new int;3 *p=10;4 cout“int value is:”*p;delete p;printf(“%xn”,&p);回答下列问题:
17、在程序的第3行执行后,p中的数据是什么?*p的值是什么?在程序的第4行执行后,p中的数据是什么?*p的值是什么?若在delete p;后还有输出&p的printf(“%xn”,&p),这条语句是否意义?10p 牛牛文库文档分享32/318.仔细检查以下的代码,完成题目。P149 131/319.编写求3*4阶矩阵和其自身转置矩阵的乘积的程 序,自定义结构。要求具有比较好的模块化功能。 完成上述题目后,尝试编制可以允许用户自己输 入矩阵的阶数的矩阵乘积程序。 牛牛文库文档分享33/319.编写求3*4阶矩阵和其自身转置矩阵的乘积的程w32/31#includemain()int i,j,k;in
18、t a34=1,2,3,4,9,8,7,6,-10,10,-5,2;int b43,c33; /转置矩阵,积for(i=0;i=2;i+) /行 for(j=0;j=3;j+) /列 bji=aij; /求乘积for(i=0;i=2;i+) for(k=0;k=3;k+) for(j=0;j=3 & j=i;j+) cij+=aik*bkj; 牛牛文库文档分享34/31#includewww.n33/3110.设计1种数据结构,编写个函数Imalloc(n),当 用户输入1个n后,可以在内存中为用户分配n个 字节的空间,并将内存空间的首地址的指针返 回给用户。编制函数IMFree()来释放这些
19、内存 空间。(提示:可参考11题的结构)#includestruct StringNode *IMalloc(int n);IMFree(struct StringNode *iNode);struct StringNodechar m_char;struct StringNode *Next; 牛牛文库文档分享35/3110.设计1种数据结构,编写个函数Imalloc(34/31main()int n;struct StringNode *p;p=IMalloc(n);IMFree;struct StringNode *IMalloc(int n)int i; struct StringNo
20、de *Node; Node=NULL; for(i=1;iNext=new (struct StringNode); return Node; 牛牛文库文档分享36/31main() 牛牛文库35/31IMFree(struct StringNode *iNode)int i; struct StringNode *Node,*tmp; Node=iNode; tmp=Node-Next; while(tmp!=NULL) Node=Node-Next-Next; delete tmp; tmp=Node-Next; delete Node; 牛牛文库文档分享37/31IMFree(struct StringNode 36/3111.有如下定义的结构:struct StringNodechar m_char;StringNode *Next; 试利用这种结构存储字符串,并编制函数 SearchMax在这个字符串中检索出出现次 数最多的字符。P157#include struct StringNodechar m_char;StringNode *Next;SearchMax(StringNode *str); 牛牛文库文档分享38/3111.有如下定义的结构:#include ios37/31main()/建立字符串struct StringNode *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中数学分层练习(压轴题)06:函数与导数(30题)【含解析】
- 水池专项施工方案
- 洗手洗脚池施工方案
- 电梯施工方案模板
- 基于涉入理论的高尔夫球手地方依恋研究
- 6到12岁的感统训书籍
- consider的固定搭配和例句总结
- 2025年往年英语a b级试题及答案
- 灯火阑珊处高情商回复
- 4-氨基-丁酸叔丁酯醋酸盐
- 活性炭吸附设计计算表(带公式)
- 中建幕墙后置埋件施工方案
- 特种设备安全管理员考试题库及答案
- 电烤箱的使用方法ppt
- 部编版人教道德与法治(政治)八上(初二)期末复习第一单元走进社会生活教案
- 《新媒体导论》(第二版)课件全套 -第1-9章 理解新媒体:多重属性的复合-新媒体文化:流动的亚文化
- 安徽高中毕业生登记表
- 机场物业服务投标方案(技术标)
- 手套完整性测试仪手套检漏仪安全操作及保养规程
- 规划建设工程竣工验收测量技术方案(最全)
- 管理会计学习通超星课后章节答案期末考试题库2023年
评论
0/150
提交评论