大学MOOC VC++程序设计(江苏师范大学科文学院)1450296604 最新慕课完整章节测试答案
第3章函数
3.1函数的定义和调用随堂测验
1、单选题:
在C++语言的函数体中,下面说法正确的是()。
选项:
A: 可以定义和调用其他函数
B: 可以调用但不能定义其他函数
C: 不可调用但可以定义其他函数
D: 不可调用及定义其他函数
答案: 【 可以调用但不能定义其他函数】
2、单选题:
以下说法中,正确的是()
选项:
A: C++语言程序总是从第一个定义的函数开始执行
B: 在C++语言程序中,要调用的函数必须在main()函数中定义
C: C++语言程序总是从main()函数开始执行
D: C++语言程序中的main()函数必须放在程序的开始部分
答案: 【 C++语言程序总是从main()函数开始执行】
3.2函数的参数传递和返回值随堂测验
1、单选题:
以下关于函数参数的说法,不正确的是()。
选项:
A: 函数调用时,先将实参的值按照位置传递给对应的形参。
B: 实参与形参的个数及顺序不必一一对应。
C: 实参与形参的名字可以相同。
D: C++支持两种参数传递:传值和传引用。
答案: 【 实参与形参的个数及顺序不必一一对应。】
2、单选题:
以下关于引用的说法,正确的是()。
选项:
A: 引用其实是定义了一个新的变量。
B: 通过引用做参数,可以修改调用函数中变量的值。
C: 如果函数具有多个引用参数,则只需在第一个引用变量前加符号&。
D: 如果函数f的形参是引用,主调函数在调用f时,实参可以是一个值。
答案: 【 通过引用做参数,可以修改调用函数中变量的值。】
3、单选题:
以下程序的运行结果是()。#include<iostream>using namespace std;int swap(int x, int y, int z){ int t; t=x; x=y; y=t; z=x*y; x=x*x; y=y*y; return z;}void main( ){ int x=50, y=20, z=0; x=swap(x, y, z); cout<<"x="<<x<<", y="<<y; cout<<", z="<<z<<'n';}
选项:
A: x=2500, y=400, z=1000
B: x=50, y=20, z=0
C: x=1000, y=400, z=1000
D: x=1000, y=20, z=0
答案: 【 x=1000, y=20, z=0】
4、填空题:
以下程序的输出为 。#include<iostream>using namespace std;void s(int a, int &b) {int t=a; a=b; b=t;}void main( ){ int x=500, y=1000; cout<<x<<'t'<<y<<'n'; s(x, y); cout<<x<<'t'<<y<<'n';}
答案: 【 500 1000
500 500】
3.3局部变量和全局变量随堂测验
1、单选题:
以下程序的输出结果是( )。#include<iostream>using namespace std;int x=10;void main( ){ int x=20; x+=::x; { int x=50; ::x+=x; } cout<<x<<'t'<<::x<<'n';}
选项:
A: 6 4
B: 30 60
C: 3 4
D: ::x是非法引用
答案: 【 30 60】
2、单选题:
以下程序的输出结果是( )。#include<iostream>using namespace std;int m=13;int fun2(int x, int y){ int m=3; return (x*y-m);}void main(){ int a=7, b=5; cout<<fun2(a, b)/m<<endl;}
选项:
A: 1
B: 2
C: 7
D: 10
答案: 【 2】
3.4变量的存储类别随堂测验
1、单选题:
以下程序的输出结果是( )。#include<iostream>using namespace std;int t( ){ static int i=100; i+=5; return i;}void main( ){ cout<<"i="<<t( )<<'t'; cout<<"i="<<t( )<<'n';}
选项:
A: 105 110
B: 105 105
C: 100 100
D: 110 105
答案: 【 105 110】
2、单选题:
以下程序的运行结果是()。#include<iostream>using namespace std;int fun (int x){ static int a=3; a+=x; return a;}void main(){ int k=2, m=1, n; n=fun(k); n=fun(m); cout<<n<< endl;}
选项:
A: 3
B: 4
C: 6
D: 9
答案: 【 6】
3.6函数重载随堂测验
1、单选题:
以下有关函数重载的正确说法是()
选项:
A: 重载函数的函数名可以不同,但其实现的功能必须相同。
B: 完成不同功能的函数可以具有相同的函数名,而且其参数的个数和类型也必须相同。
C: 完成不同功能的函数可以具有相同的函数名,但必须具有不同的返回值类型。
D: 完成不同功能的函数可以具有相同的函数名,但必须具有不同的参数个数或不同的参数类型。
答案: 【 完成不同功能的函数可以具有相同的函数名,但必须具有不同的参数个数或不同的参数类型。】
3.9编译预处理随堂测验
1、单选题:
编译预处理包括()。
选项:
A: 构造工程文件
B: 语句注释
C: 宏定义、文件包含和条件编译
D: 编译源程序
答案: 【 宏定义、文件包含和条件编译】
2、单选题:
预处理命令不具有如下特点:
选项:
A: 均以“#”开头
B: 必在程序开头
C: 后面不加分号
D: 在真正编译前处理
答案: 【 必在程序开头】
3、单选题:
设有以下宏定义和语句:#define P(x, y) x/y#define PP(a, b) a*bint c=P(2+3, 2+3)+PP(2+3, 2+3);则变量c的值是()。
选项:
A: 26
B: 17
C: 17.5
D: 31
答案: 【 17】
第4章数组
4.1一维数组随堂测验
1、单选题:
以下对一维数组a的正确定义是()。
选项:
A: int i=5, a[i];
B: int a(5)
C: #define N 5 int a[N];
D: int n; cin>>n; int a[n];
答案: 【 #define N 5 int a[N];】
2、单选题:
下列数组定义中错误的是()。
选项:
A: char s1[‘a’];
B: char s2[6] = “string”;
C: static int a[4] = {1};
D: char p[] = {‘a’, ‘b’, ‘c’}
答案: 【 char s2[6] = “string”;】
3、单选题:
若有定义:int a[4]={1};则下面正确的叙述是()。
选项:
A: 只有元素a[0]可得到初值1,其余元素的值不确定。
B: 该语句有错误。
C: 元素a[0]可得到初值1,其余元素的值均为0。
D: 数组a中各元素都可得到初值1。
答案: 【 元素a[0]可得到初值1,其余元素的值均为0。】
第5章指针
5.1指针的概念及指针变量的定义随堂测验
1、填空题:
运算符“&”有三种含义,分别是 、 和 。
答案: 【 按位与,引用,取地址】
5.2指针与一维数组随堂测验
1、单选题:
下列程序的运行结果是()。#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】
2、填空题:
若有int a[10], *p, i=5; p=a+i; 则p的内容为 , *p的内容为 。
答案: 【 &a[5] a[5]】
5.3指针与二维数组随堂测验
1、单选题:
对以下程序,说法正确的是()。#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】
2、单选题:
以下程序的输出结果是()。#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】
3、填空题:
以下程序的输出结果是 。#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、单选题:
以下程序输出是()。#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】
5.6指针数组与指向指针的指针随堂测验
1、单选题:
以下程序的输出结果是()。#include<iostream>using namespace std;void main( ){ int a[5]={2, 4, 6, 8, 10}, *p, **k; p=a; k=&p; cout<<(*(p++))<<'t'; cout<<(**k)<<endl;}
选项:
A: 2 2
B: 2 4
C: 4 4
D: 4 6
答案: 【 2 4】
2、填空题:
下面程序的运行结果是 。 #include<iostream>using namespace std;void main( ){ char *p[]={ “BOOL”, “OPK”, “H”, “SP”}; int i; for (i=3; i>=0; i--, i--) cout<<*p[i]; cout<<endl;}
答案: 【 SO】
3、填空题:
假设有:char *argv[]={ “hello”, “nanjing”, “jiangsu”}; char **pargv=argv; 则请给出下列语句的输出结果:cout<<*(pargv+1); 结果为 。cout<<char(**pargv+1); 结果为 。cout<<*(*(pargv+1)); 结果为 。 cout<<*(*(pargv+2)+4); 结果为 。
答案: 【 nanjing
i
n
g】
第6章结构体与链表
6.2结构体的应用随堂测验
1、单选题:
以下程序的运行结果是()。 #include<iostream>using namespace std;void main( ){ struct cmplx { int x; int y;} cnum[2]={1, 3, 2, 7}; cout<<(cnum[0].y/ cnum[0].x* cnum[1].x)<<endl;}
选项:
A: 0
B: 1
C: 3
D: 6
答案: 【 6】
6.3用typedef定义类型随堂测验
1、单选题:
下列说法中,不正确的是()。
选项:
A: typedef 只能用于为已知数据类型名定义新的类型名。
B: typedef 应用于软件移植。
C: typedef并没有增加新的数据类型。
D: typedef和define等价。
答案: 【 typedef和define等价。】
第7章文件操作
7.7随机访问文件随堂测验
1、填空题:
假设文本文件中已经存有“ILOVECHINA”九个字符,则下列程序的运行结果是 。void main(void){ fstream file("letters.txt",ios::in); char ch; if (!file) exit(0); file.seekg (1L, ios::beg); file.get(ch); cout << ch << endl; file.seekg (-4L, ios::end); file.get(ch); cout << ch << endl; file.seekg (2L, ios::cur); file.get(ch); cout << ch << endl; file.close( );}
答案: 【 L
H
A】
2、填空题:
假设文本文件letters.txt中已经存有“1234567890”十个字符,则下列程序的运行结果是 。#include<fstream.h>#include<stdlib.h>void m
