第5章 指针

5.1 指针的概念及指针变量的定义随堂测验

1、填空题:
‏运算符“&”有三种含义,分别是          、           和          。‏
答案: 【 按位与,引用,取地址

5.2 指针与一维数组随堂测验

1、单选题:
‍有定义:char s1[20] = "hello", s2[20] = "China";                const char *ptr = s1;‍‎   则以下四种操作中,错误的是()。‍‍‎‍
选项:
A: strcpy(s2, ptr);
B: ptr = s2;
C: ptr = ptr+10;
D: *ptr = *s2;
答案: 【 *ptr = *s2;

2、单选题:
 如果以下程序第一行输出结果为0x65FDB0,则第二行输出是()。‎#include<iostream>‎using namespace std;‎void main( )‎{      int a[10]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p=a;‎        cout<<p<<endl;‎        cout<<p+9<<endl;‎‎}‎
选项:
A: 0x65FDC8
B: 0x65FDD4
C: 0x65FDB9
D: 0x65FDE6
答案: 【 0x65FDD4

3、单选题:
下列程序的运行结果是()。​#include<iostream>​using namespace std;​void main( )​{      int a[]={2, 4, 6, 8, 10}, y=1, x, *p=&a[1];​        for( x=0; x<3; x++) y+=*(p+x);​        cout<<y<<endl;​}​
选项:
A: 17
B: 18
C: 19
D: 20
答案: 【 19

4、填空题:
​若有int a[10], *p, i=5; p=a+i; 则p的内容为       , *p的内容为        。‎
答案: 【 &a[5] a[5]

5、填空题:
如果从键盘输入字符串 “HOW DO YOU DO”,则下面程序的运行结果是                           。‏#include<iostream>‏using namespace std;‏void main( )‏{      char str1[]= “how do you do”, str2[10], *p1=str1, *p2=str2;‏        cin>>p2;‏        cout<<p2<< ‘ ‘<<p1<<endl;‏‎}‏
答案: 【 HOW how do you do

5.3 指针与二维数组随堂测验

1、单选题:
‏若有int (*p)[3];以下叙述中正确的是()。‌
选项:
A: p是一个指针数组
B: (*p)[3]与*p [3]等价
C: p是一个指针,它可以指向一个一维数组中任一个元素
D: p是一个指针,它只能指向一个包含3个int类型元素的一维数组
答案: 【 p是一个指针,它只能指向一个包含3个int类型元素的一维数组

2、单选题:
对以下程序,说法正确的是()。​#include<iostream>​using namespace std;​void main( )​{      int a[4][4]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}, sum=0;​        int (*p)[4]=a;                           //A​        p=p+2;​        for( int i=0; i<2; i++)​                for(int j=0; j<2; j++)​                         sum+=p[i][j];          //B​        cout<<sum<<endl;​​}​
选项:
A: 程序输出 14
B: 程序中A行有错
C: 程序输出 46
D: 程序中B行有错
答案: 【 程序输出 46

3、单选题:
 以下程序的输出结果是()。‌#include<iostream>‌using namespace std;‌int a[3][3]={ {2}, {4}, {6}};‌void main( )‌{      int i, *p=&a[0][0];‌        for(i=0; i<2; i++)‌        {      if(i==0)   a[i][i+1]=*p+1;‌                else          ++p; ‌                         cout<<*p;‌        }‌‌}‌
选项:
A: 23
B: 26
C: 33
D: 36
答案: 【 23

4、单选题:
以下程序的输出结果是()。‌#include<iostream>‌using namespace std;‌void main( )‌{      int a[3][4]={ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23}, (*p)[4]=a;‌int i, j, k=0;‌        for(i=0; i<3; i++)‌                for(j=0; j<2; j++)    ‌                        k=k+*(*(p+i)+j);    ‌                cout<<k<<endl;‌​}‌
选项:
A: 60
B: 68
C: 99
D: 108
答案: 【 60

5、填空题:
‎以下程序的输出结果是           。‎#include<iostream>‎using namespace std;‎void main( )‎{      int a[ ][4]={ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};‎        cout<<**a<<'t';‎        cout<<*(a[1]+2)<<'t'<<*(*(a+2)+2)<<'n';‎‎}‎
答案: 【 1 7 11

5.4 指针与函数(指针类型做函数参数)随堂测验

1、单选题:
下列函数的功能是()。‏int fun1(char *x)‏{      char *y=x;‏        while(*y++);‏        return (y-x-1);‏‎}‏
选项:
A: 求字符串的长度
B: 比较两个字符串的大小
C: 将字符串复制到字符串y
D: 将字符串x直接接到字符串y的后面
答案: 【 求字符串的长度

2、单选题:
‏设有语句:void f(int a[10], int &x);     int y[10], *py=y, n; 则对函数f的正确调用语句是()。​
选项:
A: f(py[10], n);
B:  f(py, n);
C: f(*py, &n);
D: f(py, &n);
答案: 【  f(py, n);

3、单选题:
以下程序输出是()。‌#include<iostream>‌using namespace std;‌void prtv(int *x)‌{      cout<<(++*x)<<endl;     }‌void main( )‌{      int a=25;‌        prtv( &a);‌‍}‌
选项:
A: 23
B: 24
C: 25
D: 26
答案: 【 26

4、单选题:
以下程序输出是()‌#include<iostream>‌using namespace std;‌#include<cstring >‌void fun(char *w, int m)‌{      char s, *p1, *p2;‌  &n

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注