江苏省二级VISUAL C++-4
(总分100, 做题时间90分钟)
第一部分 计算机基础知识
选择题
1. 
下列关于数字技术与微电子技术的叙述错误的是______。
A 数字技术的处理对象是“比特”,一个触发器可以存储2个比特
B 在数据通信时,远距离传输或者无线传输时需要用比特对载波进行调制
C 现代集成电路使用的半导体材料主要是硅
D 我国第2代居民身份证中使用了非接触式IC芯片
2. 
下列关于台式PC芯片组的叙述错误的是______。
A 芯片组是主板上最为重要的部件之一,存储器控制、I/O控制等功能主要由芯片组实现
B 芯片组与CPU同步发展,有什么样功能和速度的CPU,就需要使用什么样的芯片组
C 芯片组决定了主板上能安装的内存最大容量及可使用的内存条类型
D 同CPU一样,用户可以很方便、很简单地更换主板上的芯片组
3. 
下列关于I/O设备的叙述错误的是______。
A 目前平板电脑、智能手机的触摸屏大多为“多点触摸屏”,可同时感知屏幕上的多个触控点
B 扫描仪可分为手持式、平板式和滚筒式等类型,目前普通家用/办公用扫描仪大多为滚筒式
C 目前一些型号的数码相机已具有拍摄视频和进行录音的功能
D 为了降低成本,目前许多PC采用集成显卡,其显示控制器被集成在芯片组中
4. 
下列关于PC外存储器的叙述错误的是______。
A 目前PC采用的硬盘,其盘片的直径通常为3.5英寸、2.5英寸或1.8英寸
B U盘和存储卡都是采用闪烁存储器制作的,目前其容量大多为几GB至几十GB
C 目前固态硬盘的存储容量大多为数百GB,但其读写速度远不如传统硬盘(硬磁盘)
D 蓝光光盘是目前最先进的大容量光盘,单层盘片的存储容量可达25GB
5. 
下列关于Windows操作系统功能的叙述错误的是______。
A 对于多任务处理,系统一般采用按时间片轮转的策略进行处理器调度
B 系统采用了虚拟存储技术进行存储管理,其页面调度算法为“最近最少使用”(LRU)算法
C 系统支持多种文件系统(如FAT32、NTFS、CDFS等)以管理不同的外存储器
D 系统支持任何I/O设备的“即插即用”和“热插拔”
6. 
下列关于程序设计语言的叙述错误的是______。
A 虽然机器语言不易记忆、机器语言程序难以阅读和理解,但目前还有很多人使用其编写程序
B 汇编语言与计算机的指令系统密切相关,不同类型的计算机,其汇编语言通常不同
C VBScript语言是VB的子集,用其编写的程序可以嵌入在HTML文档中以扩充网页的功能
D Java语言是一种适用于网络环境的程序设计语言,目前许多手机软件就是用Java编写的
7. 
下列关于通信技术的叙述错误的是______。
A 调制与解调技术主要用于模拟通信,在数字通信中不需要使用调制与解调技术
B 使用多路复用技术的主要目的是提高传输线路的利用率,降低通信成本
C 在数据通信中采用分组交换技术,可以动态分配信道资源,提高传输效率和质量
D 数据通信网络大多采用分组交换技术,但不同类型网络的数据包格式通常不同
8. 
Internet使用TCP/IP协议实现了全球范围的计算机网络的互联,连接在Internet上的每一台主机都有一个IP地址。目前使用的是IPv4标准(32位地址),下一代互联网将会采用IPv6标准,其IP地址为______。
A 48位
B 64位
C 96位
D 128位
9. 
下列关于字符编码标准的叙述错误的是______。
A 在ASCII标准中,每个字符采用7位二进制编码
B 在绝大多数情况下,GB2312字符集包含的1万多个汉字足够使用
C Unicode字符集既包含简体汉字,也包含繁体汉字
D 中文版Windows XP及其后的Windows系列操作系统均支持国标GB18030
10. 
由于采用的压缩编码方式及数据组织方式的不同,图像文件形成了多种不同的文件格式。在下列四种图像文件中,常用于网页上发布并可具有动画效果的是______。
A BMP
B JPEG
C GIF
D TIF
11. 
下列关于信息、信息技术、信息产业与信息化的叙述错误的是______。
A 信息是人们认识世界、改造世界的一种基本资源,没有信息则任何事物都没有意义
B 雷达、卫星遥感等感测与识别技术不属于现代信息技术
C 进入21世纪以来,信息产业已经成为全球第一大产业
D 目前我国正处于工业化的中期阶段,因此必须走适合我国国情的信息化道路,既要充分发挥工业化对信息化的基础和推动作用,又要使信息化成为带动工业化升级的强大动力
12. 
对二进制数01与01分别进行算术加和逻辑加,其结果的二进制形式分别是______。
A 01、10
B 01、01
C 10、01
D 10、10
13. 
下列关于台式PC芯片组的叙述错误的是______。
A 芯片组是主板上最为重要的部件之一,存储器控制、I/O控制等功能主要由芯片组实现
B 芯片组与CPU同步发展,有什么样功能和速度的CPU,就需要使用什么样的芯片组
C 芯片组决定了主板上能安装的内存最大容量及可使用的内存条类型
D 同CPU一样,用户可以很方便、很简单地更换主板上的芯片组
14. 
下列关于I/O设备的叙述错误的是______。
A 目前平板电脑、智能手机的触摸屏大多为“多点触摸屏”,可以同时感知屏幕上的多个触控点
B 扫描仪可分为手持式、平板式和滚筒式等类型,目前普通家用/办公用扫描仪大多为滚筒式
C 目前一些型号的数码相机已具有拍摄视频和录音的功能
D 为了降低成本,目前许多PC采用集成显卡,其显示控制器被集成在芯片组中
15. 
下列关于软件的叙述正确的是______。
A BIOS是固化在主板ROM芯片中的程序,它既不属于系统软件,也不属于应用软件
B Microsoft Access等数据库管理系统属于应用软件
C 大多数自由软件为免费软件,但免费软件不全是自由软件
D 所有商品软件均保证百分之百正确,软件厂商对软件使用的正确性、精确性、可靠性做出承诺
16. 
下列关于程序设计语言的叙述错误的是______。
A 虽然机器语言不易记忆、机器语言程序难以阅读和理解,但目前还是有很多人使用其编写程序
B 汇编语言与计算机的指令系统密切相关,不同类型的计算机,其汇编语言通常不同
C VBScript语言是VB的子集,用其编写的程序可以嵌入在HTML文档中以扩充网页的功能
D Java语言是一种适用于网络环境的程序设计语言,目前许多手机软件就是用Java编写的
17. 
下列是我国第2代和第3代移动通信采用的一些技术标准,其中我国自主研发的是______。
A GSM
B TD-SCDMA
C CDMA 2000
D WCDMA
18. 
Internet使用TCP/IP协议实现了全球范围的计算机网络的互联,连接在Internet上的每一台主机都有一个IP地址。目前使用的是IPv4标准(32位地址),下一代互联网将会采用IPv6标准,其IP地址为______。
A 48位
B 64位
C 96位
D 128位
19. 
下列关于字符编码标准的叙述错误的是______。
A 在ASCII标准中,每个字符采用7位二进制编码
B 在绝大多数情况下,GB2312字符集包含的1万多个汉字足够使用
C Unicode字符集既包含简体汉字,也包含繁体汉字
D 中文版Windows XP及其后的Windows系列操作系统均支持国标GB18030
20. 
下列四种声音文件,不可能用于保存歌曲的是______。
A WAV
B MP3
C MIDI
D WMA
21. 
下列关于信息、信息技术、信息产业与信息化的叙述错误的是______。
A 世间一切事物都在运动,都具有一定的运行状态,因而都在产生信息
B 现代信息技术的主要特征之一是以数字技术为基础
C 信息产业特指利用信息设备进行信息处理与服务的行业,它不包括任何生产制造行业
D 信息化是一个推动人类社会从工业社会向信息社会转变的社会转型的过程
22. 
在以下选项中,数值相等的一组数是______。
A 十进制数54020与八进制数54732
B 八进制数13657与二进制数1011110101111
C 十六进制数F429与二进制数1011010000101101
D 八进制数7324与十六进制数B93
23. 
下列关于台式PC主板的叙述错误的是______。
A 为了便于不同PC主板的互换,主板的物理尺寸已经标准化,如ATX和BTX规格
B 芯片组是主板上的重要部件,它与CPU芯片及外设同步发展
C 主板上的BIOS集成电路芯片中存储了CMOS设置程序
D 主板上的CMOS存储器是一种非易失性存储器,在任何情况下其信息均不会丢失
24. 
下列关于常用I/O设备的叙述错误的是______。
A 鼠标器与主机的接口主要有PS/2和USB两种
B 光学分辨率是扫描仪的重要性能指标,目前普通办公用扫描仪的分辨率可达1000dpi以上
C 数码相机的成像芯片均为CCD类型,且绝大多数相机的存储卡是通用的、可互换的
D 宽屏LCD显示器是目前最常见的PC显示器,其显示屏的宽度与高度之比为16:9或16:10
25. 
下列关于软件的叙述错误的是______。
A 软件是用于特定用途的一整套程序、数据及相关的文档
B 共享软件是没有版权的软件,允许用户对其进行修改并散发
C 目前,Adobe Reader、360杀毒软件是有版权的免费软件
D 操作系统、程序设计语言处理系统、数据库管理系统均属于系统软件
26. 
下列关于程序设计语言及其处理系统的叙述错误的是______。
A 机器语言就是计算机的指令系统,机器语言程序一般为二进制代码形式
B 汇编程序是指用汇编语言编写的源程序,不同计算机的汇编程序通常是相同的
C Microsoft Office软件(如Word、Excel等)中包含VBA程序设计语言,VBA是VB的子集
D 高级语言的语言处理系统的工作方式通常分为两种,即“解释”方式和“编译”方式
27. 
下列关于因特网接入技术的叙述错误的是______。
A 采用电话拨号接入时,需要使用电话Modem,其主流产品的速率为56kbps
B 采用ADSL接入时,数据上传速度低于数据下行速度,理想状态下数据下行速度可达8Mbps
C 采用有线电视网接入时,多个终端用户均可独享连接段线路的带宽
D 目前我国许多城市采用“光纤到楼、以太网入户”的做法,用户可享受数兆乃至百兆的带宽
28. 
现在因特网上的多数邮件系统使用______协议,它允许邮件正文具有丰富的排版格式,可以包含图片、声音和超链接,从而使邮件的表达能力更强,内容更丰富。
A MIME
B SMTP
C POP3
D HTML
29. 
下列关于字符编码标准的叙述错误的是______。
A ASCII标准是美国制定的标准,也是目前使用最为广泛的西文字符编码标准
B GB2312、GBK和GB18030都是我国制定的标准,在这些标准中所有字符均采用双字节编码
C 目前在台、港、澳等地区广泛使用BIG5编码标准,它与GB2312不兼容
D UCS是ISO制定的标准,相应的工业标准称为Unicode
30. 
目前数字有线电视和卫星电视所传输的数字视频采用的压缩编码标准大多是______。
A MPEG-1
B MPEG-2
C MPEG-4
D MPEG-7
第二部分 Visual C++
一、选择题
1. 
设有说明:“char s[100]="my"s apple.\n your=\65 n";”,则strlen(s)的值是______。
A 19
B 24
C 27
D 28
2. 
下列有关break和continue语句的叙述正确的是______。
A 前者用于循环语句,后者用于switch语句
B 前者用于循环语句或switch语句,后者用于循环语句
C 前者用于switch语句,后者用于循环语句
D 前者用于循环语句,后者用于循环语句或switch语句
3. 
下列关于函数重载的叙述正确的是______。
A 函数名相同,函数的参数个数和参数类型也相同,但函数的返回值的类型不同
B 函数名相同,函数的参数个数必须不同,对参数类型和函数的返回值的类型没有限制
C 函数名相同,函数的参数类型必须不同,对参数个数和函数的返回值的类型没有限制
D 函数名相同,函数的参数个数或者参数类型不同,对函数的返回值的类型没有限制
4. 
下列有关类的叙述错误的是______。
A 类是一组对象的模板
B 类是数据和函数(方法)的封装体
C 在类中定义数据成员时,可直接对数据成员设置初值或赋值
D 对象是类的实例,类声明在前,而对象定义在后
5. 
下列有关运算符重载的叙述正确的是______。
A 能用成员函数重载的运算符,均能用友元函数重载
B 能用友元函数重载的运算符,均能用成员函数重载
C 用成员函数或友元函数重载同一运算符时,两者的参数类型与个数相同
D 通过运算符重载,能改变运算符的优先级
6. 
设有说明语句“int hh[4]={2,3,4}, *p=hh;”,则以下选项存在语法错误的是______。
A p++;
B hh++;
C (*p)++;
D (*hh)++;
7. 
设有语句“int a=10,b=20,c=30;”,则执行语句“cout<<(a,b,c);”,其输出结果是______。
A 10
B 20
C 30
D 10,20,30
8. 
设有函数原型说明“float *f(int,float);”,则函数f的返回值为______。
A 一个实数
B 指向一个实数的指针
C 该函数的地址
D 指向一个函数的指针
9. 
下列有关类成员的叙述错误的是______。
A 当不指定类成员的访问权限时则为私有成员
B 友元函数可访问类中的任一成员
C 指定为public的成员不允许在类外访问
D 成员函数可访问类中的任一成员
10. 
以下关于指针运算的叙述错误的是______。
A 可以将NULL赋给任一指针变量
B 两个同类型的指针变量可进行相等或不等的比较运算
C 指针变量的值加上整常数n,可使该指针指向当前元素后的第n个元素
D 指向同一数组的两个指针变量,在任何情况下,两指针变量相减都是无意义的
11. 
对于for和do...while循环语句,以下描述正确的是______。
A for语句中的循环体至少执行一次
B 两个语句中的循环体可能都不执行
C do...while语句中的循环体至少执行一次
D 两个语句中的循环体至少执行一次
12. 
以下说明语句不存在语法错误的是______。
A int s=26,this=30;
B int _s1=25,-s2=100;
C int n;cin>>n;int arr[n];
D char str[]={"I am a student"};
13. 
以下关于运算符重载的叙述正确的是______。
A C++已有的任何运算符都可以重载
B 可以重载C++中没有的运算符
C 运算符重载时可改变其优先级
D 运算符重载时可改变其实现的功能
14. 
下列有关构造函数的叙述错误的是______。
A 可以定义没有构造函数的类
B 任何一个类必定有构造函数
C 类的构造函数可以重载
D 构造函数没有返回值
15. 
以下关于类和对象的叙述错误的是______。
A 不同的类可以产生相同类型的对象
B 类是一种类型,它定义了数据和操作
C 对象是类的实例
D 任一对象必属于某一个类
二、填空题
1. 
[程序]
#include<iostream.h>
int fun(int x,int &y)
{
int a=x;
static int b=10;
x=a+y;
y=b+y;
b=y+a;
return(x++);
}
void main(void)
{
int x=1,y=5;
for(int i=0;i<3;i++)
{
cout<<fun(x,y)<<"\t";
cout<<y<<endl;
}
}
执行以上程序后,输出的第一行是______,第二行是______。
2. 
[程序]
#include<iostream.h>
int *p;
void fun(int a,int &b)
{
p=&b;
a+=*p;
b+=a;
cout<<a<<"\t"<<b<<"\t"<<*p<<endl;
}
void main(void)
{
int x=20,y=30;
fun(x,y);
cout<<x<<"\t"<<y<<"\t"<<*p<<endl;
}
执行以上程序后,输出的第一行是______,第二行是______。
3. 
[程序]
#include<iostream.h>
int n1=0,n2=0,n3=0,n4=0;
class T
{
public:
T(int a)
{
ia=a;
n1 ++;
}
void print()
{
cout<<ia<<endl;
}
int Getia()
{
return ia;
}
private:
int ia;
};
class S1:public T
{
int x;
public:
S1(int a,int c):T(a)
{
x=c;
n2 ++;
}
void printS1()
{
cout<<Getia()<<"\t"<<x<<endl;
}
};
class S2:public T
{
int y;
public:
S2(int a):T(10)
{
y=a;
n3 ++;
}
void printS2()
{
cout<<Getia()<<"\t"<<y<<endl;
}
};
class S:public S1,public S2
{
int xx;
public:
S(int a,float b,int c,int d):S1(a,b),S2(c)
{
xx=d;
n4 ++;
}
void prints()
{
cout<<xx<<endl;
}
};
void main(void)
{
T t1(2);
S1 t2(3,4);
S2 t3(5);
S t4(6,7,8,9),*p;
p=&t4;
p->printS();
p->printS1();
p->printS2();
cout<<n1<<"\t"<<n2<<"\t"<<n3<<"\t"<<n4<<endl;
}
执行以上程序后,输出的第二行是______,第三行是______,第四行是______。
4. 
[程序]
#include<iostream.h>
class A
{
public:
int x,y;
A(int a,int b)
{
x=a;
y=b;
}
virtual void display()
{
cout<<x<<"\t"<<y<<endl;
}
};
class B:public A
{
public:
int z;
B(int a,int b,int c):A(a,b)
{
x=c;
}
void display()
{
cout<<x<<"\t"<<y<<"\t"<<z<<endl;
}
};
class D:public B
{
public:
int m;
D(int a,int b,int c,int d):B(a,b,c)
{
m=d;
}
void display()
{
cout<<x<<"\t"<<y<<"\t"<<z<<"\t"<<m<<"\t"<<endl;
}
};
class E:public A
{
public:
int n;
E(int a,int b,int c):A(a,b)
{
n=c;
}
void display1()
{
cout<<"E::"<<x<<"\t"<<y<<n<<endl;
}
};
void fun(A *p1)
{
p1->display();
}
void main(void)
{
A b0(10,20),*p;
p=&b0;
fun(p);
B b1(30,40,50);
D d1(31;41;51;61);
p=&b1;
fun(p);
p=&d1;
fun(p);
E e1(100,200,300);
p=&e1;
fun(p);
}
执行以上程序后,一共输出______行,第二行是______,第四行是______。
5. 
以下程序运行时,输出到屏幕的结果中第一行是______,第二行是______。
#include<iostream.h>
#define A(x)x/2
int B(int x)
{
return x/2;
}
int main()
{
cout<<A(7+3)<<"in"<<B(7+3)<<endl;
return 0;
}
6. 
以下程序运行时,输出到屏幕的结果中第一行是______,第三行是______。
#include<iostream.h>
void main(void)
{
int i,c2,c3,c5,m=20;
c2=c3=c5=0;
for(i=1;i<=m;i++)
{
if(i==15 || i==14)
continue;
if(i%2==0)
c2 ++;
if(i%3==0)
c3 ++;
if(i%7==0)
c5 ++;
}
cout<<c2<<"\n"<<c3<<"\n"<<c5<<endl;
}
7. 
以下程序运行时,输出到屏幕的结果中第一行是______,第二行是______,第三行是______。
#include<iostream.h>
void f(int x,int y)
{
char res[10]={0};
int i=0,rem;
do
{
rem=x%y;
x=x/y;
if(rem<10)
res[i]="0"+rem;
else
res[i]="A"+rem-10;
i ++;
}
while(x!=0);
i--;
for(;i>=0;i--)
cout<<res[i];
cout<<endl;
}
void main(void)
{
f(23,10);
f(45,8);
f(50,16);
}
8. 
以下程序运行时,输出到屏幕的结果中第一行是______,第二行是______,最后一行是______。
#include<iostream.h>
class A{
public:
A(char *s)
{
cout<<S<<endl;
}
A(){};
};
class B:public A
{
public:
B(char *s1,char *s2):A(s1)
{
cout<<s2<<endl:
}
};
class C:public A
{
public:
C(char *s1,char *s2):A(s1)
{
cout<<s2<<endl:
}
};
class D:public B,public C
{
public:
D(char *s1,char *s2,char *s3,char *s4):B(s1,s2),C(s1,s3)
{
cout<<s4<<endl:
}
};
void main(void)
{
D *ptr=new D("students","study","C++","hard");
delete ptr;
}
9. 
以下程序运行时,输出到屏幕的结果中第一行是______,第二行是______。
#include<iostream.h>
void main(void)
{
int i=1,j=1;
for(;j<10;j++)
{
if(j>5)
{
i+=2;
break;
}
if(j%2!=0)
{
j+=2;
continue;
}
cout<<i<<"\t"<<j<<endl;
}
cout<<i<<"\t"<<j<<endl;
}
10. 
以下程序运行时,输出到屏幕的结果中第一行是______,第二行是______。
#include<iostream.h>
int fun1(int p[],int n)
{
int i,s=0;
for(i=0;i<n;i++)
s+=p[i];
return s;
}
int fun2(int *s,int n)
{
if(n==1)
return *s;
else
return( *s)+fun2(s+1,n-1);
}
void main()
{
int a[]={5,6,7,8,9,10};
cout<<fun1(a,2)<<endl;
cout<<fun2(a,2)<<endl;
}
11. 
以下程序运行时,输出到屏幕的结果中第一行是______,第二行是______,第三行是______。
#include<iostream.h>
char *str(char *p1,char *p2)
{
char *p=p1;
while(*p)
p++;
*p++="";
while(*p++=*p2++);
*p++="";
return p1;
}
void main(void)
{
char s1[200]={"NanJing"};
char s2[200]={"is"};
char s3[]={"good"};
cout<<str(s2,s3)<<endl;
cout<<str(s1,s2)<<endl;
cout<<s1<<"!"<<s2<<"!"<<s3<<endl;
}
12. 
以下程序运行时,输出到屏幕的结果中第一行是______,第二行是______,最后一行是______。
#include<iostream.h>
class A
{
int x,y;
public:
A(int a,int b)
{
y=b;
}
virtual void fun1()
{
cout<<"x+y="<<x+y<<"\n";
}
};
class B:public A
{
int m,n;
public:
B(int a,int b,int c,int d):A(c,d)
{
m=a;
n=b;
}
void fun1()
{
cout<<"m*n="<<m*n<<"\n";
}
};
void print(A&ra)
{
ra.fun1();
}
void main(void)
{
A a(10,20),*pa;
B *p;
p=new B(20,30,40,50);
p->fun1();
pa=&a;
pa->fun1();
pa=p;
pa->fun1();
print(a);
delete p;
}
答题卡