第一章 单元测试
1、单选题:
有定义 int a=9,b=6,c; 执行语句 c=a/b+0.5;后,c 的值为 ( )。
A:2
B:1.4
C:1
D:2.0
正确答案:【1】
2、单选题:C++语言源代码文件扩展名为( )。
A:.cpp
B:.c++
C:.exe
D:.obj
正确答案:【.cpp】
3、单选题:以下用户标识符中,合法的是()。
A:Ling@li
B:%123
C:moon
D:Int
正确答案:【moon】
4、单选题:int x=10,y=5;则表达式x+=x*=y+8的值为( )。
A:150
B:260
C:230
D:130
正确答案:【260】
5、单选题:5、有定义 int a=9,b=6,c; 执行语句 c=a/b+0.5;后,c 的值为 ( )。
A:2.0
B:1.4
C:1
D:2
正确答案:【1】
6、单选题:以下标识符中,不能作为合法的 C++用户定义标识符的是( )。
A:_if
B:signed
C:answer
D:to
正确答案:【signed】
7、单选题:下列字符串中可以用作 C++标识符的是( )。
A:5char
B:delete
C:_256
D:class
正确答案:【_256】
8、单选题:下列 C++标点符号中表示一条预处理命令开始的是( )。
A:#
B:}
C:;
D://
正确答案:【#】
9、单选题:9、以下程序的运行结果是( )。
main() { int a,b,d=241; a=d/100%9;
b=(-1)&&(-1); cout<<a<<”,”<<b;}
A:6,1
B:2,0
C:6,0
D:2,1
正确答案:【2,1】
10、单选题:语句while(!E); 中的表达式 !E等价于( )
A:E==1
B:E!=0
C:E==0
D:E!=1
正确答案:【E==0】
11、单选题:下面程序段的运行结果是:( )。
int a=1;b=2;c=2;
while (a<b<c){t=a;a=b;b=t;c–;}cout<<a<<”,”<<b<<”,”<<c;
A:1,2,1
B:2,1,0
C:1,2,0
D: 2,1,1
正确答案:【1,2,0】
12、单选题:设有程序段: int x=0,s=0;while(!x!=0) s+=++x;cout<<s;输出( )。
A:程序段中的控制表达式是非法的
B:运行程序段后输出1
C:程序段执行无限次
D:运行程序段后输出0
正确答案:【运行程序段后输出1 】
13、单选题:
以下程序的正确运行结果是(
)。
#include<stdio.h> void num() { extern int x,y; int a=15,b=10; x=a-b; y=a+b; } int x,y; void main() { int a=7,b=5; x=a+b; y=a-b; num(); cout<<x<<”,”<<y<<endl; }
A:12,2
B:5,25
C:不确定
D:1,12
正确答案:【5,25】
14、单选题:
已知: int m=5;下列表示引用的方法中,正确的是:( )。
A:int &t=5;
B:int &Z;
C:float &f=&m;
D:int &X=m;
正确答案:【int &X=m;】
15、单选题:C++语言源程序的基本单位是( )。
A:子程序
B:函数
C:过程
D:标识符
正确答案:【函数
】
16、单选题:下面程序段的输出结果是( ) 。
char a[7]=”abcdef”;
char b[4]=”ABC”;strcpy(a,b);cout<<a;
A:f
B:e
C:b
D:
正确答案:【f】
17、单选题:
下面程序段的输出结果是( ) 。
char c[ ]=”tvwilln”;cout<<strlen(c);
A:3
B:6
C:14
D:9
正确答案:【3】
第二章 单元测试
1、单选题:结构化程序设计所规定的三种基本控制结构是:( ) 。
A:树形、网形、环形
B:输入、处理、输出
C:主程序、子程序、函数
D:顺序、选择、循环
正确答案:【顺序、选择、循环】
2、单选题:下面程序的输出结果是( )。
main ( )
{ char str[ ]=”SSWLIA” , C; int k; for (k=2;(c=str[k])!=’’;k++) { switch (c) { case ‘I’ : ++k; break ; case ‘L’: continue; default : putchar(c) ; continue ; } putchar(‘*’); }}
A:W*
B:W*A
C:W
D:SW
正确答案:【W*】
3、单选题:C++语言中,while和do-while循环的主要区别是:( )。
A:
while 的循环控制条件比do-while的循环控制条件严格
B:
do-while的循环体至少无条件执行一次
C:
do-while 允许从外部转到循环体内
D:
do-while的循环体不能是复合语句
正确答案:【
do-while的循环体至少无条件执行一次
】
4、单选题:下面程序段执行完后,x 的值是( )。
int x=0; for(int i=0;i<90;i++) if(i) x++;
A:89
B:0
C:30
D:90
正确答案:【90】
5、单选题:
以下关于 do-while 循环的不正确描述是( )。
A:do-while 循环由 do 开始,至 while 结束,在 while(表达式)后面不能写分号
B:在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“ 假”)) 的操作
C:do-while 的循环体可以是复合语句
D:do-while 的循环体至少执行一次
正确答案:【do-while 循环由 do 开始,至 while 结束,在 while(表达式)后面不能写分号】
6、单选题:运行下面程序,程序运行结果是( )。 #include <iostream> using namespace std; int main() { static int a[4]={7,8,9},b[4]={4,5,6},c[4],i; for(i=0;i<3;i++) c[i]=a[i]+b[i]; cout<<c[i]<<” “; cout<<endl; return 0; }
(
A:11 13
B:15
C:0
D:11 13 15
正确答案:【0】
7、单选题:以下程序的输出是( )。#include<stdio.h> main() { int x=1; if(x=2) cout<<“OK”; else if(x<2) cout<<x; else cout<<“Quit”; }
A:1
B:Quit
C:无输出结果
D:OK
正确答案:【OK】
8、单选题:
若w,x,y,z,m均为int 型变量,则执行下面语句后的m值为( )。
w=1;x=2;y=3;z=4; m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;
A:1
B:4
C:2
D:3
正确答案:【1
】
9、单选题:若u、w、x、y均是正整型变量,则以下正确的switch语句是( )。
A: switch(pow(x,2)+pow(y,2))
{ case 1: case 3: w=x+y; break;
case 0: case 5: w=x-y;
}
B:switch(x*x+y*y)
{ case 3:
case 3: w=x+y; break;
case 0: w=y-x; break;
}
C:switch x
{ default : u=x+y;
case 10 : w=x-y; break;
case 11 : u=x*y; break;
}
D:switch(x+y)
{ case 10 : u=x+y; break;
case 11 : w=x-y; break;
}
正确答案:【switch(x+y)
{ case 10 : u=x+y; break;
case 11 : w=x-y; break;
}
】
10、单选题:语句 while(!E);中的表达式!E等价于( )。A)E==0 B)E!=1 C)E!=0 D)E==1
A:E==0
B:E==1
C:E!=1
D:E!=0
正确答案:【E==0】
11、单选题:
以下程序段( )。 x=-1; do {x=x*x;} while(!x);
A:循环执行一次
B:有语法错误
C:循环执行二次
D:是死循环
正确答案:【循环执行一次】
第三章 单元测试
1、单选题:
以下正确的说法是( )。
A:用户若需要调用标准库函数,调用前必须重新定义
B:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
C:用户可以重新定义标准库函数,若如此,该函数将失去原有含义
D:系统根本不允许用户重新定义标准库函数
正确答案:【用户可以重新定义标准库函数,若如此,该函数将失去原有含义】
2、单选题:以下正确的描述是( )。 在C++语言中
A:函数的定义和函数的调用均不可以嵌套
B:函数的定义不可以嵌套,但函数的调用可以嵌套
C:函数的定义和函数的调用均可以嵌套
D:函数的定义可以嵌套,但函数的调用不可以嵌套
正确答案:【函数的定义不可以嵌套,但函数的调用可以嵌套】
3、单选题:以下程序的正确运行结果是( )。 void main() { int a=2,i; for(i=0;i<3;i++) cout<<f(a); } f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c);
}
A:
7 8 9
B:
7 7 7
C:
7 10 13
D:
7 9 11
正确答案:【
7 8 9
】
4、单选题:以下程序的正确运行结果是( )。 #include<stdio.h> func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); } void main() { int k=4,m=1,p; p=func(k,m); cout<<p<<”,”; p=func(k,m); cout<<p<<endl; }
A:8,20
B:8,16
C:8,17
D:8,8
正确答案:【8,17】
5、单选题:C++语言规定,函数返回值的类型是由( )。
A:return语句中的表达式类型所决定
B:调用该函数时的主调函数类型所决定
C:调用该函数时系统临时决定
D:在定义该函数时所指定的函数类型所决定
正确答案:【在定义该函数时所指定的函数类型所决定】
6、单选题:下面函数调用语句含有实参的个数为( )。
func((exp1,exp2),(exp3,exp4,exp5));
A:2
B:5
C:1
D:4
正确答案:【2】
7、单选题:C++语言中,以下不正确的说法是( ) 。
A:
实参可以是常量、变量和表达式
B:
形参应与其对应的实参类型一致
C:
形参可以是常量、变量和表达式
D:
实参可以为任意类型
正确答案:【
形参可以是常量、变量和表达式
】
8、单选题:在计算机高级语言 C++中,下面对函数不正确的描述是( )。
A:函数形参的作用范围只是局限于所定义的函数内
B:被调用函数必须位于主函数之前
C:允许函数递归调用
D:当用数组名作形参时,形参数组元素值的改变可以使实参数组元素的值相 应改变
正确答案:【被调用函数必须位于主函数之前】
9、单选题:对下面程序段的描述正确的是( )。 #include<iostream> using namespace std; int Fun(int x, int y) { return x+y; } int main() { int i=10; cout<<Fun(i++, i)<<endl; return 0; }
A:程序输出结果是 20
B:程序输出结果是 22
C:程序输出结果不能确定
D:程序输出结果是 21
正确答案:【程序输出结果是 20 】
10、单选题:下列有关形式参数和实际参数的说法正确的是( )。
A:定义函数指定的形参,会一直占用内存中的存储单元。
B:一般情况下,在调用函数结束后,形参所占的内存单元不会被释放
C:即便是在发生函数调用时,函数中的形参也不会分配内存单元。
D:在定义函数时,必须在函数首部指定形参的类型。
正确答案:【在定义函数时,必须在函数首部指定形参的类型。】
11、单选题:若使用一维数组名作为函数实参,则以下正确的说法是( )。
A:实参数组类型与形参数组类型可以不匹配
B:在被调函数中,不需要考虑形参数组的大小
C:实参数组与形参数组名必须一致
D:必须在主调函数中说明此数组的大小
正确答案:【必须在主调函数中说明此数组的大小】
12、单选题:以下正确的说法是( )。
A:只有当实参和与其对应的形参同名时才共同占用存储单元;
B:实参和与其对应的形参共占用一个存储单元;
C:实参和与其对应的形参各占用独立的存储单元;
D:形参是虚拟的,不占用存储单元。
正确答案:【实参和与其对应的形参各占用独立的存储单元;】
13、单选题:
以下正确的说法是( )。
如果在一个函数的复合语句中定义了一个变量,则该变量( )。
A:只在该复合语句中有效
B:为非法变量
C:在本程序范围内均有效
D:在该函数中有效
正确答案:【只在该复合语句中有效】
第四章 单元测试
1、单选题:下面关于C++字符数组的叙述中,错误的是( )。
A:字符数组的字符可以整体输入、输出
B:可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
C:可以用关系运算符对字符数组比较大小
D:字符数组可以放字符串
正确答案:【可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值】
2、单选题:若有数组名作为函数调用的实参,则传递给形式参数的是( )。
A:数组的首地址
B:数组第1个元素的值
C:数组元素的个数
D:数组中全部元素的值
正确答案:【数组的首地址】
3、单选题:已定义一个数组int x[10];则对此数组元素正确的引用是( )。
A:cout<<x[3+7];
B:cout<<x[0];
C:cout<<x[10];
D:int b;b=x[1]+x;
正确答案:【cout<<x[0];】
4、单选题:假定a为一个整型数组名,则元素a[4]的地址可表示为( )。
A:a+32
B:a+16
C:a+8
D:a+4
正确答案:【a+4】
5、单选题:设有数组定义char a[]=”China”;则数组a所占的空间字节数为( )。
A:6个字节
B:5个字节
C:7个字节
D:4个字节
正确答案:【6个字节】
6、单选题:设有定义语句int a[3][3],则以下叙述错误的是( )。
A:a[1]是由3个整型元素组成的一维数组
B:可以用a[2]=1;的形式给数组元素赋值
C:a[0]代表一个地址常量
D:a数组可以看成是由a[0]、a[1]、a[2]3个元素组成的一维数组
正确答案:【可以用a[2]=1;的形式给数组元素赋值】
7、单选题:有如下声明语句int B[3][3]={{1,2,0},{3,2},{4,5,10}};那么B[1][1]的值是( )。
A:3
B:1
C:2
D:10
正确答案:【2
】
8、单选题:以下对一维数组a的正确定义是( )。
A:int a(9);
B:const int N=9; int a[N];
C:int n; cin>>n; int a[n];
D:int n=9, a[n];
正确答案:【const int N=9; int a[N];】
9、单选题:运行下面程序,程序运行结果是( )。#include <iostream>using namespace std;int main(){
static int a[4]={7,8,9},b[4]={4,5,6},c[4],i; for(i=0;i<3;i++) c[i]=a[i]+b[i]; cout<<c[i]<<” “; cout<<endl; return 0;}
A:0
B:11 13 15
C:15
D:11 13
正确答案:【0】
10、单选题:若有初始化 char a[ ]=”BASIC”;则cout<<&a[3];的输出结果是( )。
A:’S’
B:’I’
C:输出a[3]的地址
D:”IC”
正确答案:【”IC”】
11、单选题:在C++语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A:整型常量
B:整型常量或整型表达式
C:任何类型的表达式
D:整型表达式
正确答案:【整型常量或整型表达式】
12、单选题:在C++中一组同样类型的数据在内容中占用连续存贮空间的数据类型是( )。
A:引用
B:指针
C:指向指针的指针
D:数组
正确答案:【数组】
13、单选题:运行以下程序的输出结果是( )。int f ( int b [ ], int n ){
int i, r = 1;
for ( i = 0; i<=n; i++)r = r* b[i];
return r;}int main(){
int x, a[ ]={2,3,4,5,6,7,8,9};
x = f (a,3);
cout<<x;
return 0;}
A:120
B:6
C:720
D:24
正确答案:【120】
14、单选题:下列do-while 循环的循环次数为( ).已知: int j=5; do{ cout<<j- -<<endl; j- -; }while(j!=0);
A:无限
B:0
C:1
D:5
正确答案:【无限】
15、单选题:若有定义char str1[10]= {“China”},str2[10];要将str1中的字符串复制到str2中去,正确的方法是( ).
A:strcpy(str2,str1);
B:strcpy(str1,str2);
C:strcpy(“China”,str2);
D:str2=str1;
正确答案:【strcpy(str2,str1);】
第五章 单元测试
1、单选题:下面结构体的定义语句中错误的是( ).
A:struct st{int num,char name[20];} st a;
B:struct {int num,char name[20];} a;
C:struct st{int num,char name[20];} ;st a;
D:struct st{int num,char name[20];} a;
正确答案:【struct st{int num,char name[20];} st a;】
2、单选题:struct abc{int x;int y;} data1=(2,3),data2;则以下赋值语句中错误的是( )。
A:data2.x=data1.x;
B:data2=data1;
C:data2.y=data1.y;
D:data2(9,10);
正确答案:【data2(9,10);】
3、单选题:struct abc{int x;char y[20];double z;} data;则以下给结构体变量成员x赋值语句中正确的是( )。
A:data.x=100;
B:*data.x=100;
C:data->x=100;
D:data.(*x)=100;
正确答案:【data.x=100;】
4、单选题:struct s {int a,b;}
data[2]={10,100,20,200};int main(){ s p=data[1]; cout<<p.a<<endl; return 0;}程序运行后的输出结果是( )。
A:11
B:21
C:20
D:10
正确答案:【20】
5、单选题:运行程序,程序输出结果是( )。#include <iostream>using namespace std;int main(){
struct stud {
char num [5]; int s[4]; double ave; } a; cout<<sizeof(stud)<<endl; return 0;}
A:30
B:32
C:31
D:29
正确答案:【32
】
6、单选题:有下列结构体声明语句struct student{int num; char name[20]; float score[3]; };student s[3]={123,”Li Fang”,67,89,90};要对第1个学生的成绩输出总分,下列表达式正确的是( ).
A:cout<<score[0].s[1]+ score[1].s[1]+score[2].s[1];
B:cout<<s[0].score[0]+s[0].score[1]+s[0].score[2];
C:cout<<s.score[1]+s.score[2]+s.score[3];
D:cout<<s.score[0]+s.score[1]+s.score[2];
正确答案:【cout<<s[0].score[0]+s[0].score[1]+s[0].score[2];】
7、单选题:定义以下结构体类型,运行程序的输出结果是( )。#include <iostream>using namespace std;int main(){ struct s{int a;double b;}; cout<<sizeof(s)<<endl; return 0;}
A:16
B:18
C:14
D:12
正确答案:【16】
8、单选题:当定义一个结构体变量时,系统为它分配的内存空间是( ).
A:结构中第一个成员所需的内存容量
B:结构中各成员所需内存容量之和
C:结构体中占内存容量最大者所需的容量
D:结构中一个成员所需的内存容量
正确答案:【结构中各成员所需内存容量之和】
9、单选题:运行程序,程序输出结果为( )#include <iostream>using namespace std;int main(){
struct s { int x; } a[3]; cout<<sizeof(a); return 0;}
A:6
B:12
C:18
D:4
正确答案:【12】
10、单选题:定义以下结构体数组,运行程序,程序输出结果是( )。 #include <iostream>using namespace std;int main(){
struct c
{ int x;
int y;
} s[2]={1,3,2,7}; cout<<s[0].x*s[1].x<<endl; return 0;}
A:6
B:2
C:21
D:14
正确答案:【2】
11、单选题:运行程序,程序运行结果是( ) #include <iostream>using namespace std;struct KeyWord{
char Key[20];
int ID;
} kw[]={“void”,1,”char”,2,”int”,3,”float”,4,”double”,5};int main(){
cout<<kw[3].Key[0]<< “,”<< kw[3].ID ; return 0;
}
A:n,3
B:i,3
C:l,4
D:f,4
正确答案:【f,4】
12、单选题:#include <iostream>using namespace std;struct student
{
char name[10];
int score[50];
float average;
} stud1;
int main(){
cout<<sizeof(student); return 0;}
A:128
B:64
C:256
D:216
正确答案:【216】
13、单选题:运行程序,程序运行结果是( )。 #include <iostream>using namespace std;int main(){ struct person {
char name[9]; int age; }; person a[5]={“John”,17,”Paul”,19,”Mary”,18,”Adam”,16}; cout<<a[2].name; return 0;}
A:Mary
B:John
C:Adam
D:Paul
正确答案:【Mary】
14、单选题:运行程序,程序运行结果是( ) #include <iostream>using namespace std;int main(){ struct date { int year; int month; int day; }; struct s { date birthday; char name[20];
} x[4]={{2008,10,1, “guangzhou”},{2009,12,25,”Tianjin”}}; cout<< x[0].name<<“,”<<x[1].birthday.year<<endl; return 0;}
A:Tianjin,2009
B:guangzhou,2009
C:Tianjin,2008
D:guangzhou,2008
正确答案:【guangzhou,2009】
15、单选题:运行程序,程序输出结果是( )。#include <iostream>using namespace std;struct contry{ int num; char name[20];
} x[5]={1,”China”,2,”USA”,3,”France”,4,”Englan”,5,”Spanish”};int main(){
int i; for (i=3;i<5;i++)
cout<<x[i].num<<“,”<<x[i].name[0]<<endl; return 0;}
A:c2U3F4E
B:4E5S
C:3F4E5S
D:F4E
正确答案:【4E5S】
第六章 单元测试
1、单选题:若有定义语句int c[5],*p=c;则以下对数组c第1个元素地址的正确引用是( )。
A:&c+1
B:p+5
C:&c[0]
D:c++
正确答案:【&c[0]】
2、单选题:
运行程序,程序输出结果是( )。
#include <iostream>
using namespace std;
int main()
{
int a[3][3],*p=&a[0][0],i;
for(i=0;i<9;i++) p[i]=i;
for(i=0;i<3;i++) cout<<a[1][i];
return 0;}
A:123
B:345
C:234
D:012
正确答案:【345
】
3、单选题:
运行程序,程序输出结果是( ).
#include <iostream>
using namespace std;
int main()
{
int fun(char *s);
char y[]=”abcd”;
cout<<fun(y)<<endl;
return 0;
如有任何疑问请及时联系QQ 50895809反馈