大学MOOC C++程序设计基础2020春SPOC-2(华中科技大学)1454169164 最新慕课完整章节测试答案
第二章C++程序设计基础
文章目录
第二章单元测试
1、单选题:
下列字符串中不可以用作C++标识符的是( )。
选项:
A: _abc
B: 2_a
C: A_1
D: Jarry
答案: 【 2_a 】
2、单选题:
按照C++语言的规定,每个程序都必须有且仅有一个主函数,主函数的名称必须为( )。
选项:
A: winmain
B: main
C: include
D: abc
答案: 【 main】
3、单选题:
执行下列程序的功能是( ) #include <iostream>using namespace std;int main(){ int a=10,b=20; a=a+b; b=a-b; a=a-b;return 0;}
选项:
A: 求a/b的余数
B: 求a/b的商
C: 求a和b的最大公约数
D: 交换a和b的值
答案: 【 交换a和b的值】
4、单选题:
下列标识符号中,表示行注释的开始标识符是( ).
选项:
A: //
B: /*
C: */
D: #
答案: 【 //】
5、单选题:
下列语句的输出结果是( ).int i=5,j=10;cout <<i<<j;
选项:
A: 5
B: 10
C: 510
D: 5 10
答案: 【 510】
6、单选题:
表达式x&&1和下列哪个是等价的( ).
选项:
A: x==1
B: x
C: x==0
D: x!=1
答案: 【 x】
7、单选题:
对于以下代码:int i,j=6;以下哪句话是对的( )
选项:
A: i和j的初始值都是6
B: i不会被初始化,而j是6
C: 不能通过编译
D: i被初始为0,而j是6
答案: 【 i不会被初始化,而j是6】
8、单选题:
表达式(double)(10/4)*5 的结果是( ).
选项:
A: 12
B: 10
C: 10.0
D: 12.5
答案: 【 10.0】
9、单选题:
与x * = y + z等价的赋值表达式是( )
选项:
A: x = y + z
B: x = x + y * z
C: x = x * y + z
D: x = x * (y + z)
答案: 【 x = x * (y + z)】
10、单选题:
表达式17%4 /8的值为( )
选项:
A: 2
B: 0
C: 4
D: 1
答案: 【 0】
第三章分支结构
第三章单元测试
1、单选题:
若有定义“int a=1,b=2,c=3;”则执行以下程序段后a,b,c的值分别为( )。 if (a<b){ c=a;a=b;b=c;}
选项:
A: a=1,b=2,c=3
B: a=2,b=3,c=1
C: a=2,b=3,c=3
D: a=2,b=1,c=1
答案: 【 a=2,b=1,c=1】
2、单选题:
以下程序的运行结果是( )。 int main() { int n='c'; switch(n++) { default: cout<<"error"; break; case 'a': case 'b': cout<<"good "; break; case 'c': cout<<"pass "; case 'd':cout<<"warn "; } return 0;}
选项:
A: pass
B: warn
C: pass warn
D: error
答案: 【 pass warn】
3、单选题:
以下if语句书写正确的是( )。
选项:
A: if ( x = 0; ) cout << x; else cout << -x;
B: if ( x > 0 ) { x = x + 1; cout << x; } else cout << -x;
C: if ( x > 0 ); { x = x + 1; cout << x; } else cout << -x;
D: if ( x > 0 ) { x = x + 1; cout << x }; else cout << -x;
答案: 【 if ( x > 0 ) { x = x + 1; cout << x; } else cout << -x;】
4、单选题:
阅读下面语句,则程序的执行结果是() 。 #include<iostream>using namespace std;int main(){int a=-1,b=1;if((++a<0)&&!(b--<=0)) cout<<a<<b<<endl;else cout<<b<<a<<endl; return 0;}
选项:
A: 10
B: 11
C: 00
D: 01
答案: 【 10】
5、单选题:
有如下程序段 int a=14,b=15,x; char c=′A′; x=(a&&b)&&(c<′B′); cout<<x<<endl;执行该程序段后,x的值为()。
选项:
A: true
B: false
C: 0
D: 1
答案: 【 1】
6、单选题:
有如下程序 #include<iostream>using namespace std;int main(){ double x=2.0,y; if(x<0.0) y=0.0; else if(x>10.0) y=1.0/x; else y=1.0; cout<<y<<endl; return 0;}
选项:
A: 0
B: 0.25
C: 0.5
D: 1
答案: 【 1】
7、单选题:
有以下程序 #include<iostream>using namespace std;int main(){int a=5,b=4,c=3,d=2;if(a>b>c) cout<<d<<endl;else if((c-1>=d)==1) cout<<d+1<<endl;else cout<<d+2<<endl;return 0;}执行后输出结果是( )。
选项:
A: 编译时有错,无结果
B: 2
C: 3
D: 4
答案: 【 3】
8、单选题:
阅读程序的结果是():#include<iostream>using namespace std;int main(){ int n='e'; switch(n--) { default: cout<<"error "; case 'a': case 'b': cout<<"good "; break; case 'c': cout<<"pass"; case 'd': cout<<"warn"; } return 0;}
选项:
A: error
B: error good
C: good
D: 没有输出
答案: 【 error good】
9、单选题:
写出以下程序的运行结果()。#include <iostream>using namespace std;int main( ){ int a=2,b=-1,c=2;if (a<b)if (b<0) c=0;else c=c+1; cout<<c<<endl; return 0;}
选项:
A: 0
B: 2
C: 3
D: -1
答案: 【 2】
10、单选题:
对于整型变量x,下述if语句与赋值语句“x=x%2==0?1:0;”不等价的是( )。
选项:
A: if (x%2!=0) x=0; else x=1;
B: if (x%2) x=1; else x=0;
C: if (x%2==0) x=1; else x=0;
D: if (x%2==1) x=0; else x=1;
答案: 【 if (x%2) x=1; else x=0; 】
第四章循环控制结构
第四章单元测试
1、单选题:
若有整型变量x的当前值是3,则执行下列语句的结果是 。 do{ cout<<(x -= 2); }while( !(-x));
选项:
A: 输出值0
B: 输出值1
C: 输出值3和0
D: 陷入死循环
答案: 【 输出值1】
2、单选题:
在while(!a)中,其中!a与表达式 等价。
选项:
A: a == 0
B: a == 1
C: a != 1
D: a != 0
答案: 【 a == 0】
3、单选题:
下面程序段执行后,共输出数的个数和最后一个输出数的答案分别是 。int y=9;for(;y>0;y--) if(y%3==0) cout<<--y<<’t’;
选项:
A: 8 2 2
B: 8 5 2
C: 8 4 3
D: 8 3 1
答案: 【 8 5 2】
4、单选题:
C++语言的跳转语句中,对于break 和 continue说法正确的是 。
选项:
A: break语句只应用于循环体中
B: continue语句只应用于循环体中
C: break是无条件跳转语句,continue不是
D: break和continue的跳转范围不够明确,容易产生问题
答案: 【 continue语句只应用于循环体中】
5、单选题:
设有程序段int x=10; while (x=0) x=x-1;则下面描述中正确的 。
选项:
A: while 循环执行10次
B: 循环是无限循环
C: 循环体语句一次也不执行
D: 循环体语句只执行一次
答案: 【 循环体语句一次也不执行】
6、单选题:
写出下列代码运行后的结果 。int i, j;for(i=-3; i<=1; i++){ j = i; while( j < 0 ) { if(j == -1) break; j++; }} cout<<i<<'t'<<j<<endl;
选项:
A: 2 1
B: 3 2
C: 1 1
D: 1 2
答案: 【 2 1】
7、单选题:
执行上述程序段后, a,b的值分别是 。int a,b;for(b=1,a=1;b<=50;b++){ if(a>=10) break; if(a%2==1) { a+=5; continue; } a-=3;}
选项:
A: 8和 5
B: 9和 6
C: 10和 6
D: 11和 8
答案: 【 10和 6】
8、单选题:
有如下语句序列,执行下面的语句序列输出字符“$”和“*”的个数分别是 。int k=0;do {k+=5; cout<<'$';}while(k<19);while(k-->0) cout <<'*';
选项:
A: 4和20
B: 5和20
C: 4和21
D: 5和21
答案: 【 4和20】
9、单选题:
有如下程序:int x=3;do{ x-=2; cout<<x;} while(!(--x));执行这个程序的输出结果是 。
选项:
A: 1
B: 30
C: 1-2
D: 死循环
答案: 【 1-2】
10、单选题:
有如下程序段,执行这个程序段输出字符*的个数是 。int i=1;while(1){i++;if (i==10) break;if (i%3==0) cout<<"*";}
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 3】
第五章数组与指针
第五章单元测试
1、单选题:
以下数组定义正确的是()
选项:
A: char i=5, a[5]='0';
B: int i=5, a[ '5' - '0' ];
C: int i=5, a[i];
D: int a[5]="12345";
答案: 【 int i=5, a[ '5' - '0' ];】
2、单选题:
有如下程序段int i=0, j=1;int &r=i ; //① r=j; //②int *p=&i ; //③*p=&r ; //④其中会产生编译错误的语句是( )。
选项:
A: ④
B: ③
C: ②
D: ①
答案: 【 ④】
3、单选题:
若有语句“int *p=&k;”,与这个语句等效的语句序列是( )
选项:
A: int*p;p=&k ;
B: int*p;p=k;
C: int*p;*p=&k;
D: int*p;*p=k;
答案: 【 int*p;p=&k ;】
4、单选题:
下列语句中错误的是( )
选项:
A: char a[5]={1,2,3,4,5};
B: int a[]={1,2,3,4,5};
C: char a[5]={'p','o','i','n','t'};
D: char str[5]="point";
答案: 【 char str[5]="point";】
5、单选题:
已知数组arr的定义如下:int arr[5]={1,2,3,4,5};下列语句中输出结果不是2的是( )。
选项:
A: cout << *arr+1 <<endl;
B: cout << *(arr+1)<<endl;
C: cout << arr[1] <<endl;
D: cout << *arr <<endl;
答案: 【 cout << *arr <<endl; 】
6、单选题:
设有“char *s1="ABCDE", *S2="ABCDE", *S3=S1;”,下列表达式中值不等于true的是( )
选项:
A: &s1==&s2
B: s1==s3
C: s2==s3
D: strcmp(s1,s3)==0
答案: 【 &s1==&s2】
7、单选题:
执行下列语句后,屏幕的输出结果是( ).#include<iostream>using namespace std;int main(){int a=5;int *pa=&a;int &b=a;b++;cout<<(*pa)++<<endl;return 0;}
选项:
A: 5
B: 6
C: 7
D: 8
答案: 【 6】
8、单选题:
若有以下定义和语句,且0<i<10,则对数组元素地址的正确表示是( ). int a[ ]={1,2,3,4,5,6,7,8,9,0},*p,i; p=a;
选项:
A: &(a+1)
B: a++
C: *p
D: &p[i]
答案: 【 &p[i]】
9、单选题:
#include<iostream>using namespace std;int main(){char *p=0; *p='a'; cout<<"The value at p:"<<*p; return 0;} 编译运行程序将出现的情况是( )。
选项:
A: 编译时出现语法错误,不能生成可执行文件
B: 运行时一定输出:The value at p:a
C: 运行时一定输出:The value at p:*a
D: 运行时出错
答案: 【 运行时出错】
10、单选题:
以下不能对二维数组正确初始化的是( )
选项:
A: int a[2][3]={0};
B: int a[][3]={{1,2},{0}};
C: int a[2][3]={{1,2},{3,4},{5,6}};
D: int a[][3]={1,2,3,4,5,6}
答案: 【 int a[2][3]={{1,2},{3,4},{5,6}}; 】
第六章函数---对应MOOC课程第七章函数
第六章单元测试
1、单选题:
以下程序的执行结果是( )。 int fun(long b[],int n,long x)
{
int cnt=-1;
for(int i=0; i<n; i++)
if(b[i] == x) cnt=i;
return cnt;
}
int main()
{
long x = 7;
long a[5]={3,5,2,7,9};
cout<<fun(a,5,x)<<endl;
return 0;
}
选项:
A: 4
B: 1
C: 2
D: 3
答案: 【 3】
2、单选题:
不能作为函数重载的判断依据的是( )。
选项:
A: const
B: 返回类型
C: 参数个数
D: 参数类型
答案: 【 返回类型】
3、单选题:
已知函数f的原型是:void f(int *a, long &b); 变量v1、v2的定义是:int x; long y;,正确的调用语句是( )。
选项:
A: f(x, y);
B: f(x, &y);
C: f(&x, y);
D: f(&x, &y);
答案: 【 f(&x, y); 】
4、单选题:
下面的函数利用递归实现了求1*2*3…..*n的功能:
int sum(int n){
if( n==1 || n == 0)
return 1;
else
return n*sum(n-1);
}
在执行sum(10)的过程中,递归调用sum函数执行的次数是( )。
选项:
A: 10
B: 9
C: 8
D: 7
答案: 【 9】
5、单选题:
为了提高系统调用函数时的执行速度,可以将程序调用平繁且简单的函数定义为( )。
选项:
A: 内联函数
B: 递归函数
C: 函数模板
D: 重载函数
答案: 【 内联函数】
6、单选题:
已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则( )。
选项:
A: FB必须定义在FA定义之前
B: 若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
C: 若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
D: FA必须定义在FB之前
答案: 【 若FB定义在FA之后,则FB的原型必须出现在FA的定义之前】
7、单选题:
下列函数原型声明中错误的是( )。
选项:
A: void f(int a, int b);
B: void f(int a=0, int b);
C: void f(int a, int b=0);
D: void f(int a=0, int b=0);
答案: 【 void f(int a=0, int b);】
8、单选题:
已知函数fun的原型为int fun (double,int,int);下列重载函数申明形式中错误的是______。
选项:
A: double fun(double,int,int);
B: float fun(int,int,int);
C: int fun(int,clar*);
D: char fun(int,int);
答案: 【 double fun(double,int,int);】
9、单选题:
函数定义为Fun(int &i),变量定义 n=5,则下面调用函数形式正确的是( )。
选项:
A: Fun(20+n)
B: Fun(n)
C: Fun(&n)
D: Fun(20)
答案: 【 Fun(n)】
10、单选题:
有如下程序段:
int x=4;int y=1;
int main( ) {
int x=8,y=::y;
cout<<x<<y<<endl;
}
运行时的输出结果是( )。
选项:
A: 44
B: 84
C: 81
D: 41
答案: 【 81】
第七章类和对象--对应于源课程的第九章中9.1---9.6+9.9的内容
第七章单元测试
1、单选题:
下列语句中,错误的是()
选项:
A: const int buffer=256;
B: const int temp;
C: const double *point;
D: const double *rt=new double(5.5);
答案: 【 const int temp;】
2、单选题:
class AA{int a;public:int getRef()const { return &a; } //①int getValue()const { return a; } //②void set(int n)const { a=n; } //③friend void show(AA aa) const { cout<<a; } //④};其中四个函数的定义中正确的是()
选项:
A: ①
B: ②
C: ③
D: ④
答案: 【 ②】
3、单选题:
有如下类定义: class Point{ int xx, yy; public: Point():xx(0)yy(0){} Point(int x, int y =0): xx(x), yy(y){}};若执行语句 Point a(2),b[3],*c[4];则 Point类的构造函数被调用的次数是()。
选项:
A: 2次
B: 3次
C: 4次
D: 5次
答案: 【 4次】
4、单选题:
有如下程序: #include <iostream> using namespace std; class CD{ public: ~CD(){cout<<'C’;} private: char name[80];}; int main(){ CD a, *b,d [2]; return 0;}执行这个程序的输出结果是()
选项:
A: CCCC
B: CCC
C: CC
D: C
答案: 【 CCC】
5、单选题:
Sample是一个类,且有如下语句: Sample a[2], *p = new Sample;执行这个语句时调用 Sample类的构造函数的次数是()
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 3】
6、单选题:
通过运算符重载,可以改变运算符原有的()
选项:
A: 操作数类型
B: 操作数个数
C: 优先级
D: 结合性
答案: 【 操作数类型】
7、单选题:
下列运算符重载函数中肯定不属于类 FunNumber的成员函数的是()
选项:
A: int operator-(FunNumber);
B: FunNumber operator -();
C: FunNumber operator- (int);
D: int operator- (FunNumber, FunNumber);
答案: 【 int operator- (FunNumber, FunNumber);】
8、单选题:
有如下类定义: class B{ public: void fun1(){} private: void fun2(){} protected: void fun3(){}}; class D: public B{ protected: void fun4(){}};若obj是类D的对象,则下列语句中不违反访问控制权限的是()
选项:
A: obj.fun1();
B: obj.fun2();
C: obj.fun3();
D: obj.fun4();
答案: 【 obj.fun1();】
9、单选题:
有如下程序: #include<iostream> #include<string> using namespace std; class Animal{ public: virtual string GetType() const{ return "Animal";} virtual string GetVoice() const{ return "Voice";}}; class Dog: public Animal{ public: string GetType() const {return "Dog";} string GetVoice() const{ return "woof";}}; void Type(Animal a){ cout<<a. GetType();} void Speak(Animal& a){ cout<<a. GetVoice();} int main(){ Dog d; Type(d); Speak(d); return 0;}运行时的输出结果是()
选项:
A: Dog Voice
B: Dog Woof
C: Animal Voice
D: Animal Woof
答案: 【 Animal Woof】
10、单选题:
有如下函数模板: template <typename T, typename U> T cast(U u){ return u;}其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是()。
选项:
A: cast(i)
B: cast<>(i)
C: cast<char*,int>(i)
D: cast<double,int>(i)
答案: 【 cast<double,int>(i)】
第1章——初识C++语言从认识变量和常量开始数据的表示
第一章单元测试
1、单选题:
以下关于C++语言描述错误的是()
选项:
A: 一个C++程序总是从main函数开始执行
B: 每个语句和数据声明的最后必须有一个分号
C: C++语言的注释符是以“/*”开始并以“*/”结束的
D: 一个C++程序可以包含多个main函数
答案: 【 一个C++程序可以包含多个main函数】
2、单选题:
C++ 语言源程序文件后缀为( )。
选项:
A: .EXE
B: .OBJ
C: .cpp
D: .ASM
答案: 【 .cpp 】
3、单选题:
C++语言是( )
选项:
A: 机器语言
B: 汇编语言
C: 仅具有面向对象特征的语言
D: 既表现面向对象的特征,又表现面向过程的特征
答案: 【 既表现面向对象的特征,又表现面向过程的特征】
4、单选题:
C++语言中普通整型变量int在内存中占( )字节。
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 4】
5、单选题:
下列不是C++语言基本数据类型的是 ( )。
选项:
A: 字符型
B: 整型
C: 浮点型
D: 结构体
答案: 【 结构体】
6、单选题:
各种基本数据类型的存贮空间正确的长度排列为( )。
选项:
A: int < char <double
B: double <int<char
C: char<int <double
D: int <=char<double
答案: 【 char<int <double 】
7、单选题:
下面的变量说明中( )是正确的。
选项:
A: char:a, b, c;
B: char a; b; c;
C: char a, b, c;
D: char a, b, c。
答案: 【 char a, b, c; 】
8、单选题:
转义字符“反斜杠线”的表示方法正确的是( ) 。
选项:
A:
B: \
C: ‘’
D: “”
答案: 【 \ 】
9、单选题:
在C++语言中,自定义的标识符( )。
选项:
A: 能使用关键字并且不区分大小写
B: 不能使用关键字并且不区分大小写
C: 能使用关键字并且区分大小写
D: 不能使用关键字并且区分大小写
答案: 【 不能使用关键字并且区分大小写】
10、单选题:
字符串“a+b=12nt”占的字节数为( )
选项:
A: 8
B: 9
C: 10
D: 11
答案: 【 9】
第2章——计算从数据运算开始数据简单运算
第二章单元测试
1、单选题:
执行下面程序段的输出结果是( )。int x=23, y=5,z;z=2+(y++,x+8,x++); cout<<x<<" "<<z<<endl;
选项:
A: 24 25
B: 24 26
C: 25 26
D: 25 25
答案: 【 24 25】
2、单选题:
若int型变量x=29,double型变量y=6.0,则表达式x/y的值为( ) 。
选项:
A: 4.83333
B: 4
C: 5
D: 5.0
答案: 【 4.83333】
3、单选题:
判断字符型变量ch是否为大写英文字母,应使用表达式( )。
选项:
A: ch>='A' & ch<='Z'
B: ch<='A' ||ch>='Z'
C: 'A'<=ch<='Z'
D: ch>='A' && ch<='Z'
答案: 【 ch>='A' && ch<='Z'】
4、单选题:
int x=5, y=6;下列表达式结果为真的是( ) 。
选项:
A: x==y--
B: x==++y
C: x++==y
D: x==--y
答案: 【 x==--y】
5、单选题:
设有a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( )
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 2】
6、单选题:
执行下列语句后,输出的结果是( ).int a=3,b=5;double c=b/a;cout<<c<<endl;
选项:
A: 1.66666
B: 1
C: 1.0
D: 1.7
答案: 【 1】
7、单选题:
已知int x=5,y=5,z=5;执行语句x%=y+z;后,x的值是( )。
选项:
A: 5
B: 6
C: 0
D: 1
答案: 【 5】
8、单选题:
逗号表达式a=3,a++,a+=6的值是( )。
选项:
A: 10
B: 9
C: 11
D: 12
答案: 【 10】
9、单选题:
已知下列语句中的x和y都是int型变量,其中错误的语句( )。
选项:
A: x=y++;
B: x=++y;
C: (x+y)++;
D: ++x==y;
答案: 【 (x+y)++;】
10、单选题:
执行以下代码后,变量x、y、z的值分别为()int x=1,z=1,y=1,k;k=x++||++y&&++z
选项:
A: 2 1 1
B: 2 2 2
C: 1 2 2
D: 1 1 2
答案: 【 2 1 1】
第3章——分支结构无处不在的抉择
第三章单元测试
1、单选题:
执行语句序列int n;cin >> n;switch(n){ case 1: case 2: cout << '1'; case 3: case 4: cout << '2'; break;default: cout << '3';}时,若键盘输入1,则屏幕显示( )。
选项:
A: 1
B: 2
C: 3
D: 12
答案: 【 12】
2、单选题:
下面程序的输出结果是( ).#include<iostream>using namespace std;int main(){int a=2,b=-1,c=2;if (a<b) if (b<0) c=0;else c+=1;cout <<c<<endl;return 0;}
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 2】
3、单选题:
为了避免嵌套的if-else语句的二义性,C++语言规定else总是与( )组成配对关系。
选项:
A: 缩排位置相同的if
B: 在其之前未配对的if
C: 其之前未配对的最近的if
D: 同一行上的if
答案: 【 其之前未配对的最近的if 】
4、单选题:
与表达式if(!k)等价的是( )。
选项:
A: if(k==0)
B: if(k!=1)
C: if(-k)
D: if(k!=0)
答案: 【 if(k==0)】
5、单选题:
以下代码执行后,a、b、c的值分别为( )。int a=8,b=10,c=3;if (a>b) c=a,a=b,b=c;
选项:
A: 10 3 3
B: 8 10 3
C: 10 8 8
D: 10 10 8
答案: 【 8 10 3】
6、单选题:
下列描述正确的是( ) 。
选项:
A: 表示m>n为true或m<n为true的表达式为m>n&&m<n
B: switch语句结构中必须有default语句
C: if语句结构中必须有else语句
D: 如果至少有一个操作数为true,则包含"||"运算符的表达式为true
答案: 【 如果至少有一个操作数为true,则包含"||"运算符的表达式为true】
7、单选题:
下面程序的运行结果是( ).#include<iostream>using namespace std;void main(void){ int i=10; switch (i){ case 9:i++; case 10:++i; case 11:i++; default:i=i+1;}cout<<i<<endl;}
选项:
A: 9
B: 10
C: 11
D: 13
答案: 【 13】
8、单选题:
若int a=6,则执行完下列语句后,a的值为( ).if (a>10) a-=5; a+=5;
选项:
A: 1
B: 6
C: 10
D: 11
答案: 【 11】
9、单选题:
#include<iostream>using namespace std;int main(){int a=3;if(a=5)cout<<a+1<<endl;elsecout<<a<<endl;return 0;}程序的输出是( )。
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 6】
10、单选题:
若x和y是程序中的两个整型变量,则下列if语句中正确的是( )。
选项:
A: if(x==0) y=1; else y=2;
B: if(x==0) then y=1 else y=2;
C: if(x==0) y=1 else y=2;
D: if x==0 y=1; else y=2;
答案: 【 if(x==0) y=1; else y=2;】
第4章——循环结构周而复始求同存异
第四章单元测试
1、单选题:
下面关于break语句的描述中,不正确的是( ).
选项:
A: break可以用于循环体内
B: break语句可以在for循环语句中出现多次
C: break语句可以在switch语句中出现多次
D: 一个break语句就可以跳出多重循环
答案: 【 一个break语句就可以跳出多重循环】
2、单选题:
以下语句不正确的是( )。
选项:
A: 语句for(i=0;;)表示无限循环
B: for(;;)表示无限循环
C: for( )也表示无限循环
D: while(1)表示无限循环
答案: 【 for( )也表示无限循环】
3、单选题:
有如下程序: #include<iostream> using namespace std; int main( ){ int i ,f,f1=0,f2=1; for( i=3;i<=6;i++){ f=f1+f2; f1=f2;f2=f; } cout<<f<<endl; return 0; } 运行时的输出结果是( )
选项:
A: 2
B: 3
C: 5
D: 8
答案: 【 5】
4、单选题:
有如下程序段:int i=5;while (int i=0){ cout<<'*'; i--; }运行时输出"*"的个数是( )。
选项:
A: 0
B: 1
C: 5
D: 无穷
答案: 【 0】
5、单选题:
执行完以下语句int i=0; do i++; while(i*i<10);时,do后面的循环体语句i++被执行的次数为 ( )
选项:
A: 2
B: 3
C: 4
D: 5
答案: 【 4】
6、单选题:
有如下循环语句:for(int i=50; i>20; i-=2) cout<<i<<',';运行时循环体的执行次数是( )
选项:
A: 14
B: 15
C: 30
D: 27
答案: 【 15】
7、单选题:
有如下程序段: int i=1; while (1) { i++; if(i == 10) break; if(i%2 == 0) cout << '*'; } 执行这个程序段输出字符*的个数是( )
选项:
A: 10
B: 3
C: 4
D: 5
答案: 【 4】
8、单选题:
有如下程序:#include<iostream> using namespace std;int main( ){int sum;for(int i=0; i<6; i+=3){sum=i; for(int j = i; j<6; j++) sum+=j;} cout<<sum<<end1; return 0;}运行时的输出结果是( )。
选项:
A: 3
B: 10
C: 12
D: 15
答案: 【 15】
9、单选题:
下面程序的运行结果是( )。#include<iostream>using namespace std;void main(){ int i,j,a=0; for(i=0;i<2;i++) { for (j=0; j<4; j++) { if (j%2) break; a++; } a++; } cout<<a<<endl;}
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 4】
10、单选题:
有如下程序段:for (int i=1;i<=50;i++){ if (i%3!=0) continue;else if(i%5!=0) continue; cout<<i<<",";}执行这个程序段的输出是( )
选项:
A: 15,30,45,
B: 15,45,
C: 15,30,
D: 30,45,
答案: 【 15,30,45,】
第5章——数组实现算法的利器
第五章单元测试
1、单选题:
要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是( )
选项:
A: int x[3]={0,0,0};
B: int x[ ]={0};
C: int x[3]={0};
D: int x[ ]={0,0,0};
答案: 【 int x[ ]={0};】
2、单选题:
在C++语言中,二维数组元素在内存中的存放顺序是( )。
选项:
A: 按行存放
B: 按列存放
C: 由用户自己定义
D: 由编译器决定
答案: 【 按行存放 】
3、单选题:
在下述对C++语言字符数组的描述中,有错误的是( )。
选项:
A: 字符数组可以存放字符串。
B: 字符数组中的字符串可以进行整体输入输出。
C: 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。
D: 字符数组的下标从0开始。
答案: 【 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值。】
4、单选题:
以下数组的初始化,正确的是( )。
选项:
A: int a[]={1,2,3,4,5};
B: int a[4]={1,2,3,4,5};
C: int a[2]={1,2,3} ;
D: int a[][]={1,2,3,4};
答案: 【 int a[]={1,2,3,4,5};】
5、单选题:
下面关于数组的描述错误的是( )。
选项:
A: 在C++语言中数组的名字就是该数组第一个元素的首地址。
B: 长度为n的数组,下标的范围是0~n-1 。
C: 数组的大小必须在编译时确定。
D: 数组元素的个数在定义时可以缺省。
答案: 【 数组元素的个数在定义时可以缺省。】
6、单选题:
下面程序的运行结果是( )。char c[5] = {'a','b',' ','c', ' '};cout<<c;
选项:
A: 1012ACF1H
B: ab
C: ab c
D: 以上都不是
答案: 【 以上都不是】
7、单选题:
有如下程序段:char c[20]="examination";c[4]=0;cout<<c<<endl;执行这个程序段的输出是( )。
选项:
A: examination
B: exam
C: exa
D: exami
答案: 【 exam】
8、单选题:
以下程序运行后的输出结果是( )。int main( ) { char a[]="abbcabbcabbc"; int i =0,j=0,k=0; while(a[i]) { if(a[i] =='a') j++; if(a[i]=='b') k++; i++; } cout<<j<<" "<<k<<endl;return 0;}
选项:
A: 2 6
B: 3 5
C: 4 7
D: 3 6
答案: 【 3 6】
9、单选题:
已知:int i,x[3][3] = {1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( ).for(i = 0;i < 3;i ++) cout<<x[i][2-i]<<" ";
选项:
A: 1 5 9
B: 1 4 7
C: 3 5 7
D: 3 6 9
答案: 【 3 5 7】
10、单选题:
下面程序的运行结果是( ).#include <iostream>#include <cstring>using namespace std;int main( ){ char s1[10]="abc"; char s2[20]="inter"; int k=0,j=0; while (s2[k]) k++; while(s1[j]) s2[k--]=s1[j++]; cout<<s2<<endl;return 0;}
选项:
A: inter
B: abc
C: interabc
D: intcba
答案: 【 intcba】
