#P2054. 指针训练题
指针训练题
- 阅读程序,判断其运行输出
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x[10] = {1,2,3,4,5,6,7,8};
int *p;
p = &x[3];
cout<<*(p+2)<<" "<<*p+2;
return 0;
}
运行程序,输出为:{{ input(1) }}
- 阅读程序,判断其运行结果
#include<bits/stdc++.h>
using namespace std;
int f1(int a,int b)
{
int * pa,*pb,*pt;
pa = &a;
pb = &b;
pt = pa;
pa = pb;
pb = pt;
return *pa**pb;
}
int f2(int *pa,int *pb)
{
int *pt;
pt = pa;
pa = pb;
pb = pt;
return *pa-*pb;
}
void f3(int *pa,int *pb)
{
int t;
t = *pa;
*pa = *pb;
*pb = t;
}
int main()
{
int a,b;
a = 13;
b = 7;
cout<<f1(a,b)<<" "<<a<<" "<<b<<endl;
cout<<f2(&a,&b)<<" "<<a<<" "<<b<<endl;
f3(&a,&b);
cout<<a<<" "<<b;
return 0;
}
第一行输出 {{ input(2) }}
第二行输出 {{ input(3) }}
第三行输出 {{ input(4) }}
- 阅读程序,判断其运行结果
#include<bits/stdc++.h>
using namespace std;
char s[100];
int main()
{
scanf("%s",s);
scanf("%s",s+5);
printf("%s\n",s);
printf("%s\n",s+2);
return 0;
}
运行程序,输入 abcde12345,回车,再输入 12345abcde,再回车
程序的第一行输出为:{{ input(5) }}
程序的第二行输出为:{{ input(6) }}
- 变量的指针,其含义是指该变量的 ( )。{{ select(7) }}
- 地址
- 值
- 名
- 一个标志
- 阅读程序
#include<bits/stdc++.h>
using namespace std;
int main()
{
char *s="abcde";
s+=2;
cout<<s;
return 0;
}
程序的运行结果为 {{ select(8) }}
- 出错
- cde
- c
- 字符 'c' 的对应地址
- 若有定义: int *p[4]; 则标识符 p {{ select(9) }}
- 是一个指向整型变量的指针
- 是一个指针,它指向一个含有四个整型元素的一维数组
- 是一个指针数组名
- 说明不合法
- 设有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a,*p=a[0];
则下列能够正确表示数组元素 a[1][2] 的表达式是 {{ select(10) }}
- *((*prt+1)[2])
- *(*(p+5))
- (*prt+1)+2
- *(*(a+1)+2)