6.C语言指针练习题(2)
a[2]=30 *(a+2)=30 *(p+2)=30 p[2]=30 a[3]=40 *(a+3)=40 *(p+3)=40 p[3]=40 a[4]=50 *(a+4)=50 *(p+4)=50 p[4]=50 a[5]=60 *(a+5)=60 *(p+5)=60 p[5]=60
分析:分析程序根据指针与数组关系,引用数据可以有四种不同的表示方法:使用数组下标变量;使用数据固有的指针——数组名间接引用;使用指向数组的指针的间接引用;使用指向数组的指针下标引用。
例题9:指出下列程序运行结果: #include
int b[4][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=a[1]; //指针变量p,取得二维数组第二行第一列地址 for( int I=1;I<=4;p=p+1,I++) //A行 cout<<*p<<'\\t'; cout<
for( I=0;I<=3;I++) //B行 {cout<<*(*a+1)<<'\\t'; a++;} //C行 cout<
14 15 16 17 11 15 19 23
分析:根据题意,指针变量p取得二维数组第二行第一列地址,进行循环语句后,每循环一次,指针变量下移一个元素,A行循环输出是14,15,16,17。指向一维数组指针a,取得二维
数组第一行地址,由指向一维数组指针定义,*a+1表示该行第一列元素地址,*(*a+1)表示该地址的值,所以B行输出是11,15,19,23。
例题10:写出下列程序运行结果:
#include
void fun(int *& a, int &m) { a=new int[m]; //A
int * p=a;
for(int i=0;i
*p++=i*i+1;
}
void main()
{ int *b,n=5; fun(b,n);
for(int i=0;i
cout< cout<
delete[]b; //B }
运行结果是: 1 2 5 10 17
分析:指针变量在函数main中没有取得地址,所以在A行中,对被调用函数fun给对应的形参指针变量申请地址,即指针变量b和形参指针变量p指向同一组地址。B行对申请地址释放。
例题11:下列函数change的功能是,将字符串中的小写字母转成大写字母,请填空。 #include #include
void change( ) //1 {int i=0;
for(i=0; ;i++) //2 if(a[i]>='a'&&a[i]<='z')
; //3 }
void main() {char p[80]; cout<<\
cin.getline(p,80) ; //读一行字符,中间可以有空格 change(p);
cout<
}
如程序运行时得到以下结果: 请输入一行字符: This is a book.. THIS IS A BOOK.
答案:(1)char *a 或 char a[80]
(2) a[i] 或 a[i]!=’\\0’
(3) a[i]= a[i] –32或a[i]-= a[i] 分析:
(1) 由指针和字符串关系知:当实参是数组,形参可以是字符串变量,也可以是字符指针变量。
(2) 循环语句结束条件是字符标记’\\0’。
(3) 大写字母的ASCII码比小室字母的ASCII码小32。
例题12:下列函数swap实现数据交换功能功能,请填空。 #include
void swap(int *p,int *q) {int temp; temp=*p;
; //1 ; //2 }
void main() {int a,b; int *p1,*p2;
cout<<\请输入两个正数:\ cin>>a>>b; p1=&a; p2=&b; swap(p1,p2);
cout<<\结果a和b的值:\}
如程序运行时得到以下结果: 请输入两个正数:10 20 结果a和b的值:20,10 答案:
(1) (1) *p=*q (2) (2) *q=temp;
分析:实参和形参都是指针变量,所以指针变量p1和p指向同一个地址,同样p2和q也指向同一个地址。函数swap()是交换两个数,故应填写语句*p=*q、*q=temp。
例题13:下列函数sort实现对字符串按字典顺序由小到大排序,请填空。 #include #include
void sort( ) //1 {char ; //2 int i,j;
for(i=0;i
; //4
p[j+1]=temp;
} }
void main() {
char *a[5]={\ sort(a,5);
for(int i=0;i<5;i++) cout< }
程序运行结果如下: apen cadre soldier
…… 此处隐藏:132字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




