智慧树CC程序设计答案 章测试期末答案 知到cc加
智慧树C/C++程序设计答案 章测试期末答案 知到C/C++程序设计答案
以下答案都是我在微信公众号【xuanx***】找到的
分享给大家,希望可以对大家有所帮助.
章单元测试
完整版可在【xuanx***】获取
个高级语言Fortran出现在( )年 1954
下列关于计算机语言的叙述中,正确的是( ) C语言属于高级语言
源程序test.c经编译产生的目标文件和连接后产生的可执行文件是( ) test.obj和test.exe
在算法的流程图表示中,菱形表示( ) 算法条件的转移操作
关于结构化程序设计阐述正确的是( ) 采用结构化程序设计方法,可以把一个模块的功能逐步分解细化
第二章单元测试
完整版可在【xuanx***】获取
以下定义语句中正确的是( ) int a=10, *b=&a;
下列选项中,不能用作标识符的是( ) 2_int_
有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( ) (c+w)%(int)a
有以下程序:main(){int m=3,n=4,x;x=-m++;x=x+8/++n;printf{"%d",x);}程序运行后的输出结果是( ) -2
表达式3.6-5/2+1.2+5%2的值是( ) 3.8
第三章单元测试
完整版可在【xuanx***】获取
下列语句中符合C语言语法的赋值语句是( ) a=7+b,c=a+7;
下面程序的输出是( )main(){ int x=10,y=3;printf("%d",y=x/y);} 3
下面程序的输出是( )main(){ int x=023;21printf(%d",--x);} 18
设有如下程序段:int x=2002, y=2003;printf("%d",(x,y));则以下叙述中正确的是( ) 输出值为2003
有定义语句:int x, y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是( ) 11 12<回车>
完整版大家去公众号【选修宝】里面自取 我就不一一发上来了 如果觉得有用可以把文章分享给你的同学哦
第四章单元测试
完整版可在【xuanx***】获取
1
关于C语言逻辑值的说法错误的是( )
A. 逻辑值只有两个值,表示为1和0
B. C语言中没有逻辑数据类型
C. C语言中有逻辑数据类型
D. 逻辑值以整型类型保存
2
下列运算符中优先级低的是( )
A. ||
B. !=
C. <=
D. +
3
算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( )
A. 算术运算、赋值运算、关系运算
B. 算术运算、关系运算、赋值运算
C. 关系运算、赋值运算、算术运算
D. 关系运算、算术运算、赋值运算
4
以下关于if语句的错误描述是( )
A. 条件表达式可以是任意的表达式
B. 条件表达式只能是关系表达式或逻辑表达式
C. 条件表达式的括号不能省
D. 与else配对的if语句是其之前近的未配对的if语句
5
main()
{ int x=0,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf(“a=%d,b=%d”,a,b);}
该程序的输出结果是( )
A. a=2,b=1
B. a=1,b=1
C. a=1,b=0
D. a=2,b=2
第五章单元测试
1
对于do...while语句,下列说法中的是( )
A. 用do...while语句可实现分支程序设计
B. 当循环条件不成立时,至少也要执行一次循环体
C. 当循环条件不成立时,一次也不执行循环体
D. do...while与while结构完全相同
2
下列程序段执行时,若从键盘输入23,则输出为( )
int c,num;
scanf("%d",&num);
do
{c=num%10;printf("%d",c);
num=num/10;
}while(num>0);
printf("\n");
A. 3,2
B. 3
C. 2
D. 2, 3
3
有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i++) s=s+i;
printf(“%d”,s);
}
程序执行后的输出结果是 ( )
A. 自然数1~9的累加和
B. 自然数1~10的累加积
C. 自然数1~9中的奇数之和
D. 自然数1~10中的偶数之和
4
若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( )
for (i=5;i;i--)
for(j=0;j<4;j++){...}
A. 20
B. 25
C. 24
D. 30
5
有以下程序段
int k = 10 ;
while( k == 0 ) k = k - 1 ;
则下面描述中的是( )
A. while循环执行10次
B. 循环是无限循环
C. 循环体语句一句也不执行
D. 循环体语句执行一次
第六章单元测试
1
C语言中,下列不合法的字符常量是( )
A. ‘ÿ’
B. ‘5’
C. ‘&’
D. ‘8’
2
有以下程序
main()
{ char a,b,c,d;
scanf{"%c,%c,%d,%d",&a,&b,&c,&d);
printf{"%c,%c,%c,%c\n",a,b,c,d);}
若运行时从键盘上输入:6,5,65,66 <回车> 。则输出结果是( )
A. 6,5,A,B
B. 6,5,65,66
C. 6,5,6,5
D. 6,5,6,6
3
有定义语句: int b;char c[10];, 则的输入语句是( )
A. scanf("%d%s",&b,&c);
B. scanf("%d%s",&b,c);
C. scanf("%d%s",b,c);
D. scanf("%d%s",b,&c);
4
以下程序运行后的输出结果是( )。
main()
{ char c1,c2;
for(c1='0',c2='5';c1<c2;c1++,c2--) printf("%c%c",c1,c2);
printf("\n");
}
A. 012345
B. 051423
C. 035241
D. 543210
5
已知字符A的ASCII代码值为65, 以下程序运行时若从键盘输入: B33<回车>。则输出结果是( )。
#include <stdio.h>
main()
{ char a,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0'; b=b*2;
printf("%c %c"a,b); }
A. 1 B
B. 2 B
C. 1 A
D. 2 A
第七章单元测试
1
#include<stdio.h>
func(int x)
{ x=10;
printf(“%d, ”,x); }
main( )
{ int x=20;
func(x);
printf(“%d”, x); }
运行结果为( )
A. 20, 20
B. 20,10
C. 10, 20
D. 10, 10
2
有以下程序
int f(int a)
{ return a%2;}
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s);i++)d+=s;
printf("%d",d);}
程序运行后的输出结果是( )
A. 9
B. 11
C. 19
D. 21
3
#include <stdio.h>
void main()
{ int max(flaot x, float y);
float a, b;
int c;
scanf(“%f,%f”, &a, &b);
c=max(a, b);
printf(“Max is %d”, c);}
int max(float x, float y)
{ float z;
z = x > y ? x : y;
return z;}
函数max的返回值是什么数据类型( )
A. float
B. int
C. void
D. 无返回值
4
以下叙述中的是( )
A. 局部交量说明为static存储类,其生存期将得到延长
B. 全局变量说明为static存储类,其作用域将被扩大
C. 任何存储类的变量在未赋初值时,其值都是不确定的
D. 形参可以使用的存储类说明符与局部变量完全相同
5
程序中对fun函数有如下说明
void *fun();
此说明的含义是( )
A. fun函数无返回值
B. fun函数的返回值可以是任意的数据类型
C. fun函数的返回值是无值型的指针类型
D. 指针fun指向一个函数,该函数无返回值
第八章单元测试
1
“&”称为取地址运算符
A. 对
B. 错
2
以下程序段的输出结果是( )
int *var,ab;
ab=100;
var=&ab;
ab=*var+10;
printf("%d\n",*var);
A. 100
B. 不确定
C. 110
D. 90
3
指针的基类型是指指针的类型
A. 对
B. 错
4
两个指针变量的值相等时,表明两个指针变量是( )
A. 占据同一内存单元
B. 指向同一内存单元地址或者都为空
C. 是两个空指针
D. 都没有指向
5
若有定义:int x,*pb; 则以下的赋值表达式是( )
A. pb=&x
B. pb=x
C. *pb=&x
D. *pb=*x
第九章单元测试
1
数组的下标从1开始
A. 对
B. 错
2
C语言调用函数中,当数组名做实参时,实参和形参之间的传递方式是按地址传递
A. 对
B. 错
3
若有以下定义:
double w[10];
则w数组元素下标的上限是10
A. 对
B. 错
4
若有如下定义,则( )是对数组元素 int a[10] , *p ; p=a ;的引用
A. *&a[10]
B. a[11]
C. *(p+2)
D. p
5
若有以下定义和语句,且0<=i<5,则( )是对数组元素地址的表示
int a[]={1,2,3,4,5},*p,i; p=a;
A. &(a+i)
B. &p
C. a++
D. &p
第十章单元测试
1
已有定义: char a[]="xyz",b[]={'x','y','z'};, 以下叙述中的是( )
A. 数组 a 和 b 的长度相同
B. a数组长度小于 b 数组长度
C. a 数组长度大于 b 数组长度
D. 其余说法都不对
2
有以下程序
main()
{ char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s",p);}
程序运行后的输出结果是( )
A. ABCD
BCD
CD
D
B. A
B
C
D
C. B
C
D
D. BCD
CD
D
3
有以下程序
main()
{ char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
程序运行后的输出结果是( )
A. 15
B. 16
C. 12
D. 59
4
有以下程序
main()
{ char a[7]="a0\0a0\0";int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是( )
A. 2 2
B. 7 6
C. 7 2
D. 6 2
5
设有以下定义和语句 char str[20]="Program",*p;p=str;则以下叙述中的是( )
A. *p与str[0]中的值相等
B. str与p的类型完全相同
C. str数组长度和p所指向的字符串长度相等
D. 数组str位中存放的内容和指针变量p中存放的内容相同
第十一章单元测试
1
已知学生记录描述为:
struct student
{
int num;
char name[20];
struct
{
int year;
int month;
int day;
}birth;
};
struct student s;
下列对“生日”的赋值方式是( )
A. year=1980; month=6; day=11;
B. birth.year=1980;birth.month=6;birth.day=11;
C. s.year=1980; s.month=6; s.day=11;
D. s.birth.year=1980; s.birth.month=6; s.birth.day=11;
2
若有以下说明和定义
typedef int *INTEGER
INTEGER p,*q;
以下叙述的是( )
A. p是int型变量
B. p是基类型为int的指针变量
C. q是基类型为int的指针变量
D. 程序中可用INTEGER代替int类型名
3
设有如下定义:
struct sk
{
int a;
float b;
}data;
int *p;
若要使p指向data中的a域,的赋值语句是( )
A. p=&a;
B. p=data.a;
C. p=&data.a;
D. *p=data.a
4
有以下程序
struct STU
{
char num[10];
float score[3];
}
main()
{
struct STU s[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90}
},*p=s;
int i; float sum=0;
for(i=0;i<3;i++)
sum=sum+p->score;
printf("%6.2f\n",sum);
}
程序运行后的输出结果是( )
A. 260.00
B. 270.00
C. 280.00
D. 285.00
5
下面程序的输出结果为( )
struct st
{ int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st
aa[4]={ 50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] };
main()
{
p=aa;
printf("%d\t", ++p->x );
printf("%d\t", (++p)->x);
printf("%d\n", ++( *p->y));
}
A. 10 20 20
B. 50 60 21
C. 51 60 21
D. 60 70 31
第十二章单元测试
1
适宜采用inline定义函数情况是( )
A. 函数体含有循环语句
B. 函数体含有递归语句
C. 函数代码少、频繁调用
D. 函数代码多、不常调用
2
函数重载是指( )
A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C. 两个以上的函数名字不同,但形参的个数或类型相同
D. 两个以上的函数取相同的函数名,并且函数的返回类型相同
3
下列( )的调用方式是引用调用
A. 形参和实参都是变量
B. 形参是指针,实参是地址值
C. 形参是引用,实参是变量
D. 形参是变量,实参是地址值
4
以下的描述是( )
A. 不允许设置参数的默认值
B. 设置参数的默认值只能在定义函数时设置
C. 设置参数的默认值时,应该设置右边的参数
D. 设置参数的默认值时,应该全部参数都设置
5
【判断题】(2分)
当执行cin语句时,从键盘上输入每个数据后必须接着输入一个>>,然后才能继续输入下一个数据
A. 对
B. 错
第十三章单元测试
1
类的实例化是指( )
A. 定义类
B. 创建类的对象
C. 指明具体类
D. 调用类的成员
2
对于友元描述的是( )
A. 友元是本类的成员函数
B. 友元不是本类的成员函数
C. 友元不是函数
D. 友元不能访问本类私有成员
3
类中定义的成员默认访问属性为( )
A. public
B. private
C. protected
D. friend
4
下面说法的是( )
A. 生成对象时调用析构函数
B. 定义类时必须写出该类的构造函数
C. 主函数中的调用格式决定系统调用哪个构造函数
D. 析构函数不可以重载
5
下述静态数据成员的特征中,( )是错误的
A. 说明静态数据成员时前边要加修饰符static
B. 静态数据成员要在类体外进行初始化
C. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
D. 静态数据成员不是所有对象所共用的
6
静态成员函数直接访问类的数据成员( )
A. 是不允许的
B. 只允许是静态数据成员
C. 只允许是非静态数据成员
D. 可允许是静态数据成员或非静态数据成员
第十四章单元测试
1
派生类的对象对它的哪一类基类成员是可以访问的( )
A. 公有继承的基类的公有成员
B. 公有继承的基类的保护成员
C. 公有继承的基类的私有成员
D. 保护继承的基类的公有成员
2
下面对派生类的描述中,错误的是( )
A. 一个派生类可以作为另外一个派生类的基类
B. 派生类至少有一个基类
C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员
D. 派生类中继承的基类成员的访问权限到派生类中保持不变
3
当保护继承时,基类的( )在派生类中成为保护成员,不能通过派生类的对象直接访问
A. 任何成员
B. 公有成员和保护成员
C. 公有成员和私有成员
D. 私有成员
4
设置虚基类的目的是( )
A. 简化程序
B. 二义性
C. 提高运行效率
D. 减少目标代码
5
【判断题】(2分)
多继承时,多个基类中的同名的成员在派生类中由于标识符不而出现封装性
A. 对
B. 错
第十五章单元测试
1
下列关于运算符重载的描述中,( )是的
A. 运算符重载可以改变操作数的个数
B. 运算符重载可以改变优先级
C. 运算符重载可以改变结合性
D. 运算符重载不可以改变语法结构
2
下列运算符中,( )运算符在C++中不能重载
A. ?:
B. +
C. |
D. <=
3
以下关于C++运算符重载的描述中,的是( )
A. 任何运算符均可重载
B. 运算符重载可以改变运算符的优先级
C. 运算符重载可创造新的运算符
D. 运算符重载可以改变运算符的功能
4
运算符重载可以改变运算符的功能
A. 对
B. 错
5
在C++中,运算符的重载有两种实现方法,一种是通过成员函数实现,另一种则通过友元函数实现
A. 对
B. 错
第十六章单元测试
1
假设声明了以下的函数模板,错误的调用语句是( )
template <class T>
T max(T x,T y){ retum(x>y)?x:y;}
并定义了int i; char c;
A. max(i, i)
B. max(c,c)
C. max((int)c, i)
D. max(i, c)
2
定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来( )
A. <>
B. “”
C. ()
D. {}
3
下列有关模板和继承的叙述的是 ( )
A. 模板和继承都可以派生出一个类系
B. 从类系的成员看,模板类系的成员比继承类系的成员较为稳定
C. 从动态性能看,继承类系比模板类系具有更多的动态特性
D. 相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
4
下列叙述错误的是( )
A. catch(…)语句可捕获所有类型的异常
B. 一个try语句可以有多个catch语句
C. catch(…)语句可以放在catch语句组的中间
D. 程序中try语句与catch语句是一个整体,缺一不可
5
下列叙述错误的是( )
A. 当catch语句捕获一个异常后,可能不能完全处理异常
B. 在try块中抛出异常后,程序后回到try块中继续执行后面的语句
C. 一个程序中可以有try语句而没有throw语句
D. throw语句抛出的异常可以不被捕获
关注公从号【选修宝】获取完整版
以下答案都是我在微信公众号【xuanx***】找到的
分享给大家,希望可以对大家有所帮助.
章单元测试
完整版可在【xuanx***】获取
个高级语言Fortran出现在( )年 1954
下列关于计算机语言的叙述中,正确的是( ) C语言属于高级语言
源程序test.c经编译产生的目标文件和连接后产生的可执行文件是( ) test.obj和test.exe
在算法的流程图表示中,菱形表示( ) 算法条件的转移操作
关于结构化程序设计阐述正确的是( ) 采用结构化程序设计方法,可以把一个模块的功能逐步分解细化
第二章单元测试
完整版可在【xuanx***】获取
以下定义语句中正确的是( ) int a=10, *b=&a;
下列选项中,不能用作标识符的是( ) 2_int_
有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( ) (c+w)%(int)a
有以下程序:main(){int m=3,n=4,x;x=-m++;x=x+8/++n;printf{"%d",x);}程序运行后的输出结果是( ) -2
表达式3.6-5/2+1.2+5%2的值是( ) 3.8
第三章单元测试
完整版可在【xuanx***】获取
下列语句中符合C语言语法的赋值语句是( ) a=7+b,c=a+7;
下面程序的输出是( )main(){ int x=10,y=3;printf("%d",y=x/y);} 3
下面程序的输出是( )main(){ int x=023;21printf(%d",--x);} 18
设有如下程序段:int x=2002, y=2003;printf("%d",(x,y));则以下叙述中正确的是( ) 输出值为2003
有定义语句:int x, y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是( ) 11 12<回车>
完整版大家去公众号【选修宝】里面自取 我就不一一发上来了 如果觉得有用可以把文章分享给你的同学哦
第四章单元测试
完整版可在【xuanx***】获取
1
关于C语言逻辑值的说法错误的是( )
A. 逻辑值只有两个值,表示为1和0
B. C语言中没有逻辑数据类型
C. C语言中有逻辑数据类型
D. 逻辑值以整型类型保存
2
下列运算符中优先级低的是( )
A. ||
B. !=
C. <=
D. +
3
算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( )
A. 算术运算、赋值运算、关系运算
B. 算术运算、关系运算、赋值运算
C. 关系运算、赋值运算、算术运算
D. 关系运算、算术运算、赋值运算
4
以下关于if语句的错误描述是( )
A. 条件表达式可以是任意的表达式
B. 条件表达式只能是关系表达式或逻辑表达式
C. 条件表达式的括号不能省
D. 与else配对的if语句是其之前近的未配对的if语句
5
main()
{ int x=0,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf(“a=%d,b=%d”,a,b);}
该程序的输出结果是( )
A. a=2,b=1
B. a=1,b=1
C. a=1,b=0
D. a=2,b=2
第五章单元测试
1
对于do...while语句,下列说法中的是( )
A. 用do...while语句可实现分支程序设计
B. 当循环条件不成立时,至少也要执行一次循环体
C. 当循环条件不成立时,一次也不执行循环体
D. do...while与while结构完全相同
2
下列程序段执行时,若从键盘输入23,则输出为( )
int c,num;
scanf("%d",&num);
do
{c=num%10;printf("%d",c);
num=num/10;
}while(num>0);
printf("\n");
A. 3,2
B. 3
C. 2
D. 2, 3
3
有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i++) s=s+i;
printf(“%d”,s);
}
程序执行后的输出结果是 ( )
A. 自然数1~9的累加和
B. 自然数1~10的累加积
C. 自然数1~9中的奇数之和
D. 自然数1~10中的偶数之和
4
若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( )
for (i=5;i;i--)
for(j=0;j<4;j++){...}
A. 20
B. 25
C. 24
D. 30
5
有以下程序段
int k = 10 ;
while( k == 0 ) k = k - 1 ;
则下面描述中的是( )
A. while循环执行10次
B. 循环是无限循环
C. 循环体语句一句也不执行
D. 循环体语句执行一次
第六章单元测试
1
C语言中,下列不合法的字符常量是( )
A. ‘ÿ’
B. ‘5’
C. ‘&’
D. ‘8’
2
有以下程序
main()
{ char a,b,c,d;
scanf{"%c,%c,%d,%d",&a,&b,&c,&d);
printf{"%c,%c,%c,%c\n",a,b,c,d);}
若运行时从键盘上输入:6,5,65,66 <回车> 。则输出结果是( )
A. 6,5,A,B
B. 6,5,65,66
C. 6,5,6,5
D. 6,5,6,6
3
有定义语句: int b;char c[10];, 则的输入语句是( )
A. scanf("%d%s",&b,&c);
B. scanf("%d%s",&b,c);
C. scanf("%d%s",b,c);
D. scanf("%d%s",b,&c);
4
以下程序运行后的输出结果是( )。
main()
{ char c1,c2;
for(c1='0',c2='5';c1<c2;c1++,c2--) printf("%c%c",c1,c2);
printf("\n");
}
A. 012345
B. 051423
C. 035241
D. 543210
5
已知字符A的ASCII代码值为65, 以下程序运行时若从键盘输入: B33<回车>。则输出结果是( )。
#include <stdio.h>
main()
{ char a,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0'; b=b*2;
printf("%c %c"a,b); }
A. 1 B
B. 2 B
C. 1 A
D. 2 A
第七章单元测试
1
#include<stdio.h>
func(int x)
{ x=10;
printf(“%d, ”,x); }
main( )
{ int x=20;
func(x);
printf(“%d”, x); }
运行结果为( )
A. 20, 20
B. 20,10
C. 10, 20
D. 10, 10
2
有以下程序
int f(int a)
{ return a%2;}
main()
{ int s[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s);i++)d+=s;
printf("%d",d);}
程序运行后的输出结果是( )
A. 9
B. 11
C. 19
D. 21
3
#include <stdio.h>
void main()
{ int max(flaot x, float y);
float a, b;
int c;
scanf(“%f,%f”, &a, &b);
c=max(a, b);
printf(“Max is %d”, c);}
int max(float x, float y)
{ float z;
z = x > y ? x : y;
return z;}
函数max的返回值是什么数据类型( )
A. float
B. int
C. void
D. 无返回值
4
以下叙述中的是( )
A. 局部交量说明为static存储类,其生存期将得到延长
B. 全局变量说明为static存储类,其作用域将被扩大
C. 任何存储类的变量在未赋初值时,其值都是不确定的
D. 形参可以使用的存储类说明符与局部变量完全相同
5
程序中对fun函数有如下说明
void *fun();
此说明的含义是( )
A. fun函数无返回值
B. fun函数的返回值可以是任意的数据类型
C. fun函数的返回值是无值型的指针类型
D. 指针fun指向一个函数,该函数无返回值
第八章单元测试
1
“&”称为取地址运算符
A. 对
B. 错
2
以下程序段的输出结果是( )
int *var,ab;
ab=100;
var=&ab;
ab=*var+10;
printf("%d\n",*var);
A. 100
B. 不确定
C. 110
D. 90
3
指针的基类型是指指针的类型
A. 对
B. 错
4
两个指针变量的值相等时,表明两个指针变量是( )
A. 占据同一内存单元
B. 指向同一内存单元地址或者都为空
C. 是两个空指针
D. 都没有指向
5
若有定义:int x,*pb; 则以下的赋值表达式是( )
A. pb=&x
B. pb=x
C. *pb=&x
D. *pb=*x
第九章单元测试
1
数组的下标从1开始
A. 对
B. 错
2
C语言调用函数中,当数组名做实参时,实参和形参之间的传递方式是按地址传递
A. 对
B. 错
3
若有以下定义:
double w[10];
则w数组元素下标的上限是10
A. 对
B. 错
4
若有如下定义,则( )是对数组元素 int a[10] , *p ; p=a ;的引用
A. *&a[10]
B. a[11]
C. *(p+2)
D. p
5
若有以下定义和语句,且0<=i<5,则( )是对数组元素地址的表示
int a[]={1,2,3,4,5},*p,i; p=a;
A. &(a+i)
B. &p
C. a++
D. &p
第十章单元测试
1
已有定义: char a[]="xyz",b[]={'x','y','z'};, 以下叙述中的是( )
A. 数组 a 和 b 的长度相同
B. a数组长度小于 b 数组长度
C. a 数组长度大于 b 数组长度
D. 其余说法都不对
2
有以下程序
main()
{ char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s",p);}
程序运行后的输出结果是( )
A. ABCD
BCD
CD
D
B. A
B
C
D
C. B
C
D
D. BCD
CD
D
3
有以下程序
main()
{ char s[]="159",*p;
p=s;
printf("%c",*p++);
printf("%c",*p++);
}
程序运行后的输出结果是( )
A. 15
B. 16
C. 12
D. 59
4
有以下程序
main()
{ char a[7]="a0\0a0\0";int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是( )
A. 2 2
B. 7 6
C. 7 2
D. 6 2
5
设有以下定义和语句 char str[20]="Program",*p;p=str;则以下叙述中的是( )
A. *p与str[0]中的值相等
B. str与p的类型完全相同
C. str数组长度和p所指向的字符串长度相等
D. 数组str位中存放的内容和指针变量p中存放的内容相同
第十一章单元测试
1
已知学生记录描述为:
struct student
{
int num;
char name[20];
struct
{
int year;
int month;
int day;
}birth;
};
struct student s;
下列对“生日”的赋值方式是( )
A. year=1980; month=6; day=11;
B. birth.year=1980;birth.month=6;birth.day=11;
C. s.year=1980; s.month=6; s.day=11;
D. s.birth.year=1980; s.birth.month=6; s.birth.day=11;
2
若有以下说明和定义
typedef int *INTEGER
INTEGER p,*q;
以下叙述的是( )
A. p是int型变量
B. p是基类型为int的指针变量
C. q是基类型为int的指针变量
D. 程序中可用INTEGER代替int类型名
3
设有如下定义:
struct sk
{
int a;
float b;
}data;
int *p;
若要使p指向data中的a域,的赋值语句是( )
A. p=&a;
B. p=data.a;
C. p=&data.a;
D. *p=data.a
4
有以下程序
struct STU
{
char num[10];
float score[3];
}
main()
{
struct STU s[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90}
},*p=s;
int i; float sum=0;
for(i=0;i<3;i++)
sum=sum+p->score;
printf("%6.2f\n",sum);
}
程序运行后的输出结果是( )
A. 260.00
B. 270.00
C. 280.00
D. 285.00
5
下面程序的输出结果为( )
struct st
{ int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st
aa[4]={ 50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] };
main()
{
p=aa;
printf("%d\t", ++p->x );
printf("%d\t", (++p)->x);
printf("%d\n", ++( *p->y));
}
A. 10 20 20
B. 50 60 21
C. 51 60 21
D. 60 70 31
第十二章单元测试
1
适宜采用inline定义函数情况是( )
A. 函数体含有循环语句
B. 函数体含有递归语句
C. 函数代码少、频繁调用
D. 函数代码多、不常调用
2
函数重载是指( )
A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C. 两个以上的函数名字不同,但形参的个数或类型相同
D. 两个以上的函数取相同的函数名,并且函数的返回类型相同
3
下列( )的调用方式是引用调用
A. 形参和实参都是变量
B. 形参是指针,实参是地址值
C. 形参是引用,实参是变量
D. 形参是变量,实参是地址值
4
以下的描述是( )
A. 不允许设置参数的默认值
B. 设置参数的默认值只能在定义函数时设置
C. 设置参数的默认值时,应该设置右边的参数
D. 设置参数的默认值时,应该全部参数都设置
5
【判断题】(2分)
当执行cin语句时,从键盘上输入每个数据后必须接着输入一个>>,然后才能继续输入下一个数据
A. 对
B. 错
第十三章单元测试
1
类的实例化是指( )
A. 定义类
B. 创建类的对象
C. 指明具体类
D. 调用类的成员
2
对于友元描述的是( )
A. 友元是本类的成员函数
B. 友元不是本类的成员函数
C. 友元不是函数
D. 友元不能访问本类私有成员
3
类中定义的成员默认访问属性为( )
A. public
B. private
C. protected
D. friend
4
下面说法的是( )
A. 生成对象时调用析构函数
B. 定义类时必须写出该类的构造函数
C. 主函数中的调用格式决定系统调用哪个构造函数
D. 析构函数不可以重载
5
下述静态数据成员的特征中,( )是错误的
A. 说明静态数据成员时前边要加修饰符static
B. 静态数据成员要在类体外进行初始化
C. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符
D. 静态数据成员不是所有对象所共用的
6
静态成员函数直接访问类的数据成员( )
A. 是不允许的
B. 只允许是静态数据成员
C. 只允许是非静态数据成员
D. 可允许是静态数据成员或非静态数据成员
第十四章单元测试
1
派生类的对象对它的哪一类基类成员是可以访问的( )
A. 公有继承的基类的公有成员
B. 公有继承的基类的保护成员
C. 公有继承的基类的私有成员
D. 保护继承的基类的公有成员
2
下面对派生类的描述中,错误的是( )
A. 一个派生类可以作为另外一个派生类的基类
B. 派生类至少有一个基类
C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员
D. 派生类中继承的基类成员的访问权限到派生类中保持不变
3
当保护继承时,基类的( )在派生类中成为保护成员,不能通过派生类的对象直接访问
A. 任何成员
B. 公有成员和保护成员
C. 公有成员和私有成员
D. 私有成员
4
设置虚基类的目的是( )
A. 简化程序
B. 二义性
C. 提高运行效率
D. 减少目标代码
5
【判断题】(2分)
多继承时,多个基类中的同名的成员在派生类中由于标识符不而出现封装性
A. 对
B. 错
第十五章单元测试
1
下列关于运算符重载的描述中,( )是的
A. 运算符重载可以改变操作数的个数
B. 运算符重载可以改变优先级
C. 运算符重载可以改变结合性
D. 运算符重载不可以改变语法结构
2
下列运算符中,( )运算符在C++中不能重载
A. ?:
B. +
C. |
D. <=
3
以下关于C++运算符重载的描述中,的是( )
A. 任何运算符均可重载
B. 运算符重载可以改变运算符的优先级
C. 运算符重载可创造新的运算符
D. 运算符重载可以改变运算符的功能
4
运算符重载可以改变运算符的功能
A. 对
B. 错
5
在C++中,运算符的重载有两种实现方法,一种是通过成员函数实现,另一种则通过友元函数实现
A. 对
B. 错
第十六章单元测试
1
假设声明了以下的函数模板,错误的调用语句是( )
template <class T>
T max(T x,T y){ retum(x>y)?x:y;}
并定义了int i; char c;
A. max(i, i)
B. max(c,c)
C. max((int)c, i)
D. max(i, c)
2
定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来( )
A. <>
B. “”
C. ()
D. {}
3
下列有关模板和继承的叙述的是 ( )
A. 模板和继承都可以派生出一个类系
B. 从类系的成员看,模板类系的成员比继承类系的成员较为稳定
C. 从动态性能看,继承类系比模板类系具有更多的动态特性
D. 相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系
4
下列叙述错误的是( )
A. catch(…)语句可捕获所有类型的异常
B. 一个try语句可以有多个catch语句
C. catch(…)语句可以放在catch语句组的中间
D. 程序中try语句与catch语句是一个整体,缺一不可
5
下列叙述错误的是( )
A. 当catch语句捕获一个异常后,可能不能完全处理异常
B. 在try块中抛出异常后,程序后回到try块中继续执行后面的语句
C. 一个程序中可以有try语句而没有throw语句
D. throw语句抛出的异常可以不被捕获
关注公从号【选修宝】获取完整版