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