第一章 单元测试
1、单选题:
以下可以作为C++自定义标识符的是:
选项:
A:sqrt
B:break
C:123
D:dollar$
答案: 【sqrt】
2、单选题:
下列选项中合法的用户标识符是:
选项:
A:3Dmax
B: A.dat
C: _2Text
D:10ng
答案: 【 _2Text】
3、单选题:
以下各选项组中,均可作为自定义标识符的组是:
选项:
A: i while >=
B:public _No1 this
C:No1 Cout a
D:shod No.1 sta
答案: 【No1 Cout a】
4、单选题:
以下说明语句中,正确的是:
选项:
A:int a,break;
B:int For,INT;
C:int x,%y;
D:int a.cpp;
答案: 【int For,INT;】
5、单选题:
以下不符合C++语法规则的数值常量是:
选项:
A:0Xab23
B:2.1E3
C: 034
D:2E1.4
答案: 【2E1.4】
6、单选题:
存储下列数据,占用存储字节最多的是:
选项:
A:0
B: “0”
C: ‘0’
D:0.0
答案: 【0.0】
7、单选题:
执行语句unsigned a=-1;auto c=a;后,c的类型为:
选项:
A:int
B:unsigned
C:long
D:char
答案: 【unsigned】
8、单选题:
在VC++中,基本数据类型所占字节长度,正确的是:
选项:
A:char<int<double<float
B:char<short<int<double
C:char<short<float<int
D:char<int<float<double
答案: 【char<short<int<double】
9、单选题:
以下说明语句中,不存在语法错误的是 。
选项:
A:float X3-Dmax;
B:char X.txt[20];
C:int 10long;
D:int _2int;
答案: 【int _2int;】
10、单选题:
以下选项中,不能将字母A的ASCII码保存到变量ch的语句是:
选项:
A:char x= “A”;
B:char x=65;
C:char x=’A’;
D:char x=’101’;
答案: 【char x= “A”;】
第二章 单元测试
1、单选题:
以下运算符中运算对象一定不能是double类型的是:
选项:
A:/
B:<=
C:=
D:%
答案: 【% 】
2、单选题:
设有语句:char x=6,y=10;int z; z=(x^y)<<2; 则z的值是:
选项:
A:3
B:-4
C:-52
D:48
答案: 【48】
3、单选题:
设有int s=-2; 则执行表达式s++||++s后s的值为:
选项:
A:0
B:1
C:-1
D:-2
答案: 【-1】
4、单选题:
设有int a=3,b=2,x=4; 则cout<<(a<x<b)输出为:
选项:
A:1
B:0
C:3
D:5
答案: 【1】
5、单选题:
若有声明int m=7,n=4;float a=38.4,b=6.4,x;则执行语句x=m/2*n+a/b+1/2;后,x的值为:
选项:
A:20
B:18
C:18.5
D:20.5
答案: 【18】
6、单选题:
若有int a=1,b=2,c=3,d=4; 则表达式b<a?a:c<d?c:d的值为(运算符?:的结合性为从左向右):
选项:
A:2
B:4
C:1
D:3
答案: 【3
】
7、单选题:
执行下面语句: int i = -5; cout<<-(i++)<<“;”; cout<<i<<endl;
输出结果是下面哪一个?
选项:
A:5; -5
B:4;-4
C:5;-4
D:4;-5
答案: 【5;-4 】
8、单选题:
尝试执行下面语句: unsigned int i = 2; int j = -3; cout<<(i*j)<<endl;
输出结果是下面哪一个?
选项:
A:一个无符号整数
B:6
C: -6
D:编译出错,无输出
答案: 【一个无符号整数 】
9、单选题:
下列字符串常量表示中,错误的是()。
选项:
A:””yes”or”
B: “Right””
C:”ABCDt”
D:”abcdef”
答案: 【””yes”or”】
10、单选题:
设int a=5,b;,执行以下代码后,b的值不为2的是:
选项:
A:b=a/2;
B:b=a>>1;
C:b=a^7;
D:b=6-(a–);
答案: 【b=6-(a–); 】
第三章 单元测试
1、单选题:
执行以下语句:for(int k=43210;k=k/10;cout<<k%10); 其输出结果是:
选项:
A:1234
B:4321
C:43210
D:01234
答案:
2、单选题:
执行程序段: int x,y; x=3; do { y=x–; if(!y) {cout<<‘#’; continue;} cout<<‘#’; } while((x=1)||(x=2));
选项:
A:将进入死循环
B:含有不合法的控制表达式
C:将输出###
D:将输出##
答案:
3、单选题:
执行程序段: int x=6; do { if(x%3) {cout<<‘#’; continue;} } while(x–);
选项:
A:将输出#
B:将输出###
C:将输出##
D:将输出####
答案:
4、单选题:
执行以下语句,输出结果是int x=3; do{ cout<<(x-=2)<<” “; }while(!–x);
选项:
A: 0 -1
B: 0 -2
C: 3 0
D: 1
答案:
5、单选题:
执行程序段 int k=5,n=0; while(k–) switch(k) { case 1: case 3:n+=1;break; default:n+=2; case 2: case 4: n+=3;break; }后,n和k的值分别为:
选项:
A:8 0
B:10 -1
C:13 -1
D:10 0
答案:
6、单选题:
以下语句段执行结果: int a=2,b=0;while(!b–)cout<<a–<<‘ ‘<<b;
选项:
A:没有输出
B:2 -1
C:1 -1
答案:
7、单选题:
在下列选项中,没有构成死循环的语句段是:
选项:
A:int i=100;while(1){i=i%100;if(i>=100)break;}
B:int s=3;while(s);–s;
C:for(;;);
D:int k=1000;do{k;}while(k>1000);
答案:
8、单选题:
以下说法正确的是:
选项:
A:while语句中,循环体语句可能是一条语句,也可能没有语句。
B:执行do-while语句时,可能不执行循环体语句。
C:do-while语句总能用while或for语句实现
D:for语句如果第2个表达式为空,则必然进入死循环。
答案:
9、单选题:
下面程序输出是:using namespace std;#include <iostream>
int t(){
static int i;
i+=5;
return i;
}
int main(void){
cout << t() << ‘t’;
cout << t() << ‘n’;
return 0 ;
}
选项:
A:5 10
B:随机数
C:5 5
D:0 5
答案:
10、单选题:
以下关于文件包含的描述中正确的是_____
选项:
A:每个C++程序必须包含预处理命令:#include <iostream.h>
B:#include 后面的文件名用双引号(””)括起和尖括号(<>)括起完全等效
C:用#include 所包含的文件称为头文件,必须以.h作为扩展名
D:#include 命令行可以出现在源程序中需要的任意行
答案:
第四章 单元测试
1、单选题:
设有“#define M(a,b,c) a*b-c”,执行“cout<<M(2+3,2+3,4);”输出为
选项:
A:21
B:0
C:7
D:1
答案:
2、单选题:
若有宏:
#define AA 10
#define D(x) x*x
则执行cout<<D(1+2)*AA;,输出结果为:
选项:
A:50
B:编译出错
C:23
D:90
答案:
3、单选题:
考虑函数原型void test(int,char=’*’,int=7); 以下合法的函数调用是:
选项:
A:test(5,”0″);
B:test(5,”&” ,6);
C:test(5)
D:test(5,6,”%”);
答案:
4、单选题:
下列定义中不正确的是:
选项:
A:#define PI 3.1415926
B:#define S345
C:int max(x,y);
D:static char c;
答案:
5、单选题:
以下正确的说法是:
选项:
A:用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中
B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C:系统不允许用户重新定义标准库函数
D:用户调用标准库函数前,必须重新定义
答案:
6、单选题:
要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用:
选项:
A:内联函数
B:递归函数
C:带缺省值的函数
D:重载函数
答案:
7、单选题:
不能作为重载函数的调用的依据是
选项:
A:参数个数
B:函数返回类型
C:函数名称
D:参数类型
答案:
8、单选题:
尝试执行下面程序:using namespace std;#include <iostream>
void f(int n){
if (n/10){ cout<<n%10<<“,”; f(n/10);}
else cout<<n;
}
int main(){ f(638); cout<<endl; return 0; }
输出结果为:
选项:
A:8,3
B:8,3,6
C:6,3,8
D:语法错
答案:
9、单选题:
下面程序输出是:using namespace std;#include <iostream>
int t(){
static int i;
i+=5;
return i;
}
int main(void){
cout << t() << ‘t’;
cout << t() << ‘n’;
return 0 ;
}
选项:
A:5 10
B:5 5
C:随机数
D:0 5
答案:
10、单选题:
以下关于文件包含的描述中正确的是_____
选项:
A:#include 命令行可以出现在源程序中需要的任意行
B:用#include 所包含的文件称为头文件,必须以.h作为扩展名
C: #include 后面的文件名用双引号(””)括起和尖括号(<>)括起完全等效
D:每个C++程序必须包含预处理命令:#include <iostream.h>
答案:
第五章 单元测试
1、单选题:
执行下面语句,输出结果是______。 int b[3][3] = {0,1,2,0,1,2,0,1,2},t = 1; for(int i = 0; i < 3; i++) for(int j = i; j <= i; j++) t += b[i][i] + b[j][j]; cout<<t<<endl;
选项:
A:7
B:6
C:9
D:4
答案:
2、单选题:
以下正确的数组定义语句是:
选项:
A:
int b[2][ ]={{1}, {2}};
B:
char a[5]={‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ”};
C:char d[5]=”CHINA”;
D:
float c[ ][3]={1, 2, 3, 4, 5};
答案:
3、单选题:
设有说明性语句:char s[]=”a’29″;,sizeof(s)的结果是:
选项:
A:3
B:6
C:5
D:4
答案:
4、单选题:
一个数组作为实参调用某个函数,实际传递给形参的值是
选项:
A:整个数组。
B:该数组的元素个数。
C:该数组的首地址。
D:该数组的长度。
答案:
5、单选题:
设有说明语句:char s[80]=”Hello”; int a[20]={1,2}; 下列选项中,存在语法错误的是________。
选项:
A:cout<<s;
B:cin>>a;
C:
cout<<a;
D:cin>>s;
答案:
6、单选题:
若有说明语句:int y[ ][4]={0,0}; 则下面叙述不正确的是 。
选项:
A: 二维数组y的行数为1
B:数组y的每个元素都可得初值0
C:该说明等价于int y[ ][4]={0};
D: 只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0
答案:
7、单选题:
设有声明”int p[10]={1,2},i=0;”,以下语句中与”p[i]=p[i+1],i++;”等价的是:
选项:
A:p[i]=p[i++];
B: p[++i]=p[i];
C:p[++i]=p[i+1];
D:i++,p[i-1]=p[i];
答案:
8、单选题:
设有说明语句:char s[5][5] ={“abc”,”efgh”}; 值为字符g的数组元素是:
选项:
A:s[4][4]
B:s[1][4]
C:s[1][3]
D: s[1][2]
答案:
9、单选题:
以下数组声明中正确的是:
选项:
A:int a[2+3]={0};
B: int a[3.14];
C:int a[];
D:int a[3]={1,2,3,4};
答案:
10、单选题:
以下选项中,能正确计算a数组中元素个数的表达式是:
选项:
A:a[0]/sizeof(a)
B:sizeof(a[0])/sizeof(a);
C:a/sizeof(a)
D:sizeof(a)/sizeof(a[0]);
答案:
第六章 单元测试
1、单选题:
假设有下面语句:
enum tag{Up=1,Down,Left,Right}a;
下面哪一条语句不正确:
选项:
A:a=Down;
B:a=(tag)2;
C:a=2;
D:a=tag(2);
答案:
2、单选题:
下面哪一条语句不正确:
选项:
A:enum Gender{female, male};
B:struct Person{
char name[20];
Gender sex;
C:Person father;
D:};
Person members[30];
答案:
3、单选题:
设有以下枚举说明语句:
enum weekday{Mon=1,Tues,Wed,Thurs,Fri,Sat,Sun=0}week;
下面那一条赋值语句是错误的?
选项:
A:week=weekday(1);
B:week=1;
C:week=Mon;
D:week=(weekday)1;
答案:
4、单选题:
设有结构定义及变量声明如下: struct product {char code[5]; float price; }y[4]={“200”,100}; 以下表达式中正确的是:
选项:
A:y.price=100;
B:y[0].code=’a’;
C:y[0].code[0]=45;
D:y.code[0]=’b’;
答案:
5、单选题:
设有语句:struct xy{ int x ; float y; char z ;} example; 下面哪一个叙述错误?
选项:
A:x,y,z 都是结构的成员名称
B:struct 是结构类型的关键字
C:xy 是结构类型的名称
D:example 是结构类型的名称
答案:
6、单选题:
已知有声明“struct data{int y,m;}i={2014,6},j={0};”,以下选项中合法的语句是:
选项:
A:j={i.y,i.m};
B:i++;
C:cout<<i;
D:j=i;
答案:
7、单选题:
设有以下语句:union Numeric{int i; float f; double d;}u;变量u 所占存储单元的字节数为:
选项:
A:2
B:16
C:8
D:4
答案:
8、单选题:
下面代码的输出结果是 。int main(void){
union baby {
char name[10];
int number;
}b={“YangYang”};
cout<<b.name<<” “;
b.number=65;
cout<<b.name<<” “<<b.number<<endl;
return 0;}
选项:
A:YangYang 65
B:YangYang 65 65
C: YangYang A 65
D:YangYang YangYang 65
答案:
9、单选题:
有以下语句:struct Point{int x, y;}ps[3]={{1, 2}, {3, 4}};那么ps[1].x 和ps[2].y 的值分别是:
选项:
A:3 4
B:3 0
C:1 4
D:1 2
答案:
10、单选题:
设有语句struct mys { int m1; int m2; }; 下面哪一个语句是错误的?
选项:
A:mys a1=();
B:mys a3{5, 6};
C:mys a0;
D:mys a2={5};
答案:
第七章 单元测试
1、单选题:
要使语句p=new double[20];能够正常执行,p应声明为:
选项:
A:double *p;
B:double **p;
C:double (*p)[20];
D:double &p;
答案:
2、单选题:
以下说明语句中正确的是:
选项:
A:int a,&ra=a,&&ref=ra;
B:int *pi,*&pref=pi;
C:int a,&ra=a,&*refp=&ra;
D:int &refa[10];
答案:
3、单选题:
以下程序的执行结果是:
void f1(int *x){++*x;}
void f2(int &x){x++;}
void f3(int x){++x;}
int main(){
int a=10;
f1(&a); f2(a); f3(a);
cout<<a;
}
选项:
A:12
B:13
C:10
D:11
答案:
4、单选题:
若有语句int a, *(*fun)(int *);fun表示____
选项:
A:指向函数的指针,该函数返回int*;
B:一个函数名,该函数返回int;
C:一个函数名,该函数返回int*;
D:指向函数的指针,该函数返回int;
答案:
5、单选题:
已知有声明:
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12,13};
若需要引用值为12的数组元素,则下列选项中错误的是:
选项:
A:*(a[2]+3)
B:*(*(a+2)+3)
C:*(a+2)[3]
D:a[2][3]
答案:
6、单选题:
有声明:
int *a[]={new int{2},new int[4]{3,4,5},new int[3]{6,7,8}};
则a[2]的值是:
选项:
A:6
B:3
C:值为3的数据地址
D:值为6的数据地址
答案:
7、单选题:
关于void 指针,下列说法正确的是:
选项:
A:void 指针就是未指向任何数据的指针
B:指向任何类型数据的指针可直接赋值给一个void 指针
C:void 指针值可直接赋给一个非void 指针
D:void 指针就是已定义而未初始化的指针
答案:
8、单选题:
若有如下定义
struct person
{ char name[20];
int age;
} pup[5],*p=pup;
则下列语句中对结构体成员的引用不正确的是:
选项:
A:cin>>(*p).age;
B:cin>>p[0]->name;
C:cin>>pup[0].age;
D: cin>>p->name;
答案:
9、单选题:
以下程序的可执行文件名为abc.exe,位于D盘根目录下,如果在命令行输入:
D:abc.exe we study cpp language <回车>,
该程序执行结果是: #include <iostream.h> void main(int argc, char *argv[]) { cout<<argc<<” ”<<argv[0]<<” “<<argv[3]<<’n’;}
选项:
A:5 we language
B:5 D:abc.exe cpp
C:4 we language
D:4 D:abc.exe cpp
答案:
10、单选题:
假设函数原型和变量说明如下:
void f4(int **p);
int a[4] = {1,2,3,4};
int b[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int *q[3] = {b[0],b[1],b[2]};
下面哪个调用是合法的?
选项:
A:f4(&a);
B:f4(b);
C:f4(q);
D:f4(a);
答案:
评论0