C语言指针练习题集
需积分: 19 21 浏览量
更新于2024-08-27
收藏 35KB DOCX 举报
"C指针练习.docx"
C指针是C语言中的一个重要概念,它允许程序员直接操作内存地址,提供了高效的数据操作和管理能力。针对新手的指针练习题可以帮助理解并熟练掌握这一核心概念。
1. 在选择题中,选项A "a,point,*&a" 是一组代表地址的选项。因为`a`是一个整型变量的名称,代表其存储地址;`point`是一个指向整型变量的指针,同样代表地址;`*&a`是一个解引用操作,它会给出`a`的值,而不是地址,所以不是地址选项。
2. 代码段 "int*p,m=5,n; 以下正确的程序段是:p=&n;" 显示正确赋值指针`p`指向变量`n`的地址。其余选项或语法错误,或未初始化指针,或试图对未初始化的指针解引用。
3. 错误的`scanf`调用 "Scanf(“%d”,*p);" 的原因在于`*p`表示的是变量`a`的值,而不是变量`a`的地址,因此应使用`&a`来传递地址给`scanf`。
4. 下面的程序:
```c
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;
p=q;
q=r;
printf("%d,%d,%d,%d,\n",m,n,*p,*q);
```
执行后,指针`p`和`q`发生了交换,但`r`仍然指向`m`的地址,因此输出结果为 `1,2,2,1`。
5. 以下程序:
```c
int a=1,b=3,c=5;
int *p1=&a, *p2=&b, *p=&c;
*p=*p1*(p2);
printf("%d\n",c);
```
执行后,`c`的值被设置为`a`和`b`的乘积,即`3`。
6. 当执行 `A=p1==&m;` 后,`A`的值取决于`p1`是否等于`&m`。在这里,`p1`最初指向`k`,而`&m`是`m`的地址,两者不等,因此`A`的值为`0`。
7. 在16位系统上,定义 `inta[]={10,20,30},*p=&a;`,执行`p++`后,`p`向高地址移动了一个存储单元,即2个字节(因为一个整型通常占2个字节),所以选项B和C是错误的。`p`与`a+1`等价,意味着它现在指向数组中的第二个元素。
8. 代码段 `int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];` 中,`b`的值是`p`所指数组位置的第五个元素,即`8`。
9. 对于定义 `int a[5],*p=a;`,正确引用数组`a`的元素包括 `*p`(第一个元素),`p[0]`(第一个元素),`p[1]`(第二个元素),等等。`&a[0]`等价于`a`或`&p[0]`,都是数组的第一个元素的地址。`*(&a[2]+1)`则表示数组的第三个元素。
通过这些练习题,初学者可以深入理解指针的概念,包括指针的赋值、解引用、数组和指针的关系以及指针算术操作。熟悉这些基础知识对于理解和编写更复杂的C程序至关重要。
2012-04-07 上传
2023-06-10 上传
2023-02-24 上传
2023-05-30 上传
2023-05-31 上传
2023-05-31 上传
2023-09-04 上传
白告月当空照丶
- 粉丝: 2
- 资源: 1
最新资源
- Employee_Tracker
- 8-coming-soon
- raffaello:将照片发送到您当地的照片零售商-开源
- todoredux:使用React,Redux和Scss的todo应用程序
- crud_app:一个在React中编辑用户记录的CRUD应用程序
- PV-Battery:该项目的目标是为弗拉芒语参考家庭设计光伏和电池系统,其中要考虑由电费以及屋顶类型和方向决定的不同情况。 光伏和电池系统的设计涉及输入数据的使用,组件的选择,功率流的计算等,以从财务角度提供针对具体案例的最佳解决方案。 当然,设计还应考虑相关的实践,操作和法规方面
- BayesianEstimatorSelfing:一种用于估计自我受精率和其他交配系统参数的贝叶斯方法
- ruah44.github.io:得益于https,结构清晰
- torch-scatter和torch-sparse用于处理图形数据和稀疏张量·「下載地址」
- accessibility:媒体可访问性的提示,资源和提示的集合
- react-todolistt:在线React Editor和IDE:编译,运行和托管React应用
- Practise_Makes_Perfect
- a-stream:用于管理异步事件的库
- kb:知识库说明
- 愤怒的小鸟java程序源码-BallBattle:小鱼成长游戏
- fast bev修改版最终板端测试结果,由之前的9提升至25FPS