C语言指针练习题解析.doc

上传人:坚持 文档编号:3934000 上传时间:2019-08-26 格式:DOC 页数:30 大小:109KB
下载 相关 举报
C语言指针练习题解析.doc_第1页
第1页 / 共30页
C语言指针练习题解析.doc_第2页
第2页 / 共30页
C语言指针练习题解析.doc_第3页
第3页 / 共30页
C语言指针练习题解析.doc_第4页
第4页 / 共30页
C语言指针练习题解析.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、一、知识点1 掌握指针、地址、指针类型、空指针(NULL)等概念;2 掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算、指针变量比较运算和指针表达式;3 掌握指针与数组、函数、字符串等的联系;4 掌握动态空间操作(new,delete);5 掌握引用参数的使用。二、例题分析与解答例题 1:若有以下定义,则说法错误的是( )。int a=100,*p=A声明变量 p,其中*表示 p 是一个指针变量B变量 p 经初始化,获得变量 a 的地址C变量 p 只可以指向一个整形变量D变量 p 的值为 100答案:D分析:有指针变量定义可知 A、C 说法是正确的,故不能选。在语句中float c,

2、 *q;Ap= ;z-index:1;left:0px;margin-left:144px;margin-top:1px; width:256px;height:38pxA B C Dint *p= int x, p= int *p, x=10; int *p, x;*p=10; *p=10; *p= p= x=10;答 案 : A分 析 : 在 变 量 类 型 说 明 语 句 中 *表 示 变 量 是 指 针 变 量 , 在 其 他 语 句 中 , *称 为 指 针 运 算 , 用于 访 问 指 针 所 指 向 的 对 象 的 值 , float *pf, px=3.14159,py=2.7

3、1828;pn=*pn+=m;coutpf=py+=5*(*pf);cout运 行 结 果 是 :n 现 在 的 值 是 : 30pf 现 在 的 值 是 : 18.4262分 析 : 指 针 是 通 过 在 变 量 前 加 一 个 “*”来 定 义 , 使 用 用 “*”加 变 量 名 存 取 指 针 所 指 的 值 ,用 运 算 “p=a;for(I=0;I运 行 结 果 :a0=10 *(a+0)=10 *(p+0)=10 p0=10 a1=20 *(a+1)=20 *(p+1)=20 p1=20 a2=30 *(a+2)=30 *(p+2)=30 p2=30 a3=40 *(a+3)=

4、40 *(p+3)=40 p3=40 a4=50 *(a+4)=50 *(p+4)=50 p4=50 a5=60 *(a+5)=60 *(p+5)=60 p5=60 分 析 : 分 析 程 序 根 据 指 针 与 数 组 关 系 , 引 用 数 据 可 以 有 四 种 不 同 的 表 示 方 法 : 使 用 数 组 下标 变 量 ; 使 用 数 据 固 有 的 指 针 数 组 名 间 接 引 用 ; 使 用 指 向 数 组 的 指 针 的 间 接 引 用 ; 使 用指 向 数 组 的 指 针 下 标 引 用 。例 题 9: 指 出 下 列 程 序 运 行 结 果 :#includeint b4

5、4=10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25;void main()int (*a)4,*p; a=b; /指 针 变 量 a, 取 得 二 维 数 组 第 一 行 地 址p=a1; /指 针 变 量 p,取 得 二 维 数 组 第 二 行 第 一 列 地 址for( int I=1;Ifor( I=0;I运 行 结 果 是 :14 15 16 1711 15 19 23分 析 : 根 据 题 意 , 指 针 变 量 p 取 得 二 维 数 组 第 二 行 第 一 列 地 址 , 进 行 循 环 语 句 后 , 每 循 环 一次 , 指 针

6、 变 量 下 移 一 个 元 素 , A 行 循 环 输 出 是 14,15,16,17。 指 向 一 维 数 组 指 针 a, 取 得 二 维数 组 第 一 行 地 址 , 由 指 向 一 维 数 组 指 针 定 义 , *a+1 表 示 该 行 第 一 列 元 素 地 址 , *(*a+1)表 示该 地 址 的 值 , 所 以 B 行 输 出 是 11,15,19,23。例 题 10: 写 出 下 列 程 序 运 行 结 果 :#includevoid fun(int * /Aint * p=a;for(int i=0;i*p+=i*i+1;void main() int *b,n=5;f

7、un(b,n);for(int i=0;icout coutdeleteb; /B运 行 结 果 是 :1 2 5 10 17分 析 : 指 针 变 量 在 函 数 main 中 没 有 取 得 地 址 , 所 以 在 A 行 中 , 对 被 调 用 函 数 fun 给 对 应 的形 参 指 针 变 量 申 请 地 址 , 即 指 针 变 量 b 和 形 参 指 针 变 量 p 指 向 同 一 组 地 址 。 B 行 对 申 请 地 址释 放 。例 题 11: 下 列 函 数 change 的 功 能 是 , 将 字 符 串 中 的 小 写 字 母 转 成 大 写 字 母 , 请 填 空 。#

8、include#includevoid change( ) /1int i=0;for(i=0; ;i+) /2if(ai=atemp=*p; /1; /2void main()int a,b;int *p1,*p2;coutab;p1=p2=swap(p1,p2);cout如 程 序 运 行 时 得 到 以 下 结 果 :请 输 入 两 个 正 数 : 10 20结 果 a 和 b 的 值 : 20,10答 案 :(1) (1) *p=*q(2) (2) *q=temp;分 析 : 实 参 和 形 参 都 是 指 针 变 量 , 所 以 指 针 变 量 p1 和 p 指 向 同 一 个 地

9、址 , 同 样 p2 和 q 也指 向 同 一 个 地 址 。 函 数 swap()是 交 换 两 个 数 , 故 应 填 写 语 句 *p=*q、 *q=temp。例 题 13: 下 列 函 数 sort 实 现 对 字 符 串 按 字 典 顺 序 由 小 到 大 排 序 , 请 填 空 。#include#includevoid sort( ) /1char ; /2int i,j;for(i=0;ifor(j=0;jif(strcmp( ) /3 temp=pj; /4pj+1=temp;void main() char *a5=“student“,“worker“,“cadre“,“soldier“,“apen“;sort(a,5);for(int i=0;i程 序 运 行 结 果 如 下 :apencadre

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。