大学MOOC C++程序设计II(南阳师范学院)1450455193 最新慕课完整章节测试答案
第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
