(1)下列关于微处理器的叙述中,错误的是( )
(A)Pentium是Intel公司的微处理器产品
(B)Pc 机与Macintoch是不同厂家生产的计算机,但是他们互相兼容
(C)PowerPc与Pentium微处理器结构不同,指令系统也有很大区别
(D)Pentium机器上的程序一定可以在Pentium 4机器上运行
(2)以下选项( )中所列的都是计算机网络中传输数据常用的物理介质
(A)光缆、集线器和电源
(B)电话线、双绞线和服务器
(C)同轴电缆、光缆和插座
(D)同轴电缆、光缆和双绞线
(3)下面关于PC机中CPU的若干叙述,其中错误的是( )
(A)CPU中包含几十个甚至上不百个寄存器,用来临时存放待处理的数据
(B)CPU是PC机中不可缺少的组成部分,它担负着运行系统软件和应用软件的任务
(C)CPU的速度比主存储器低的多,使用高速缓存(Cache)可以显著提高CPU的速度
(D)PC机中可以有多个CPU
(4)键盘、显示器和硬盘等常用外围设备在系统启动时都需要参与工作,他们的驱动程序必须存放在( )
(A)硬盘 (B)BIOS (C)内存 (D)CPU
(5)下列关于计算机网络中协议功能的叙述中最为完正的是( )
(A)决定谁先接收信息
(B)决定计算机如何进行内部处理
(C)为网络中进行通信的计算机制定的一组需要共同遵守的规则和标准
(D)检查计算机通信时传送的错误
(6)当多个程序共享内存资源而内存不够时,操作系统的存储管理程序将把内存与( ) 结合起来,提供一个容量比实际内存大的多的”虚拟存储器”
(A)高速缓冲存储器
(B)光盘存储器
(C)硬盘存储器
(D)离线后备存储器
(7)若一台计算机的字长为4个字节,则表明该计算机( )
(A)能处理的数值最大为4位二进制
(B)能处理的数值最多由4位二进制组成
(C)在CPU中定点运算器和寄存器为32位
(D)在CPU中运算结果最大为2的32次方
(8)下列说法中错误的是( )
(A)现实世界中很多景物如树木,花草,烟火等很难用几何模型表示
(B)计算机图形学主要是研究使用计算机描述景物并生成其图象的原理、方法和技术
(C)用于描述景物的几何图形可以分为线框模型、曲面模型和实体模型等很多
(D)利用扫描仪输入计算机的机械零件图属于计算机图形
(9)两个同类局域网互联,应使用的设备是( )
(A)网卡
(B)路由器
(C)网桥
(D)调制解调器
(10)在下列汉字标准中,有一种不支持繁体汉字,它是( )
(A)GB2312-1980
(B)GBK
(C)BIG 5
(D)GB18030
(11)在校园网中,若只有150个因特网IP地址可给计算机中心使用,但计算机中心有500台计算机要接入因特网,以下说法中正确的是( )
(A)最多只能允许150台接入因特网
(B)由于IP地址不足,导致150台计算机无法设置IP地址,无法连网
(C)安装代理服务器,动态分配150个IP地址给500台计算机,便可使500台计算机接入因特网
(D)计算机IP地址可如意设置,只要其中150台IP地址设置正确,便可保证500台计算机接入因特网
(12)无线电波分中波、短波、超短波和微波等,其中关于微波叙述正确的是( )
(A)微波沿地面传播,绕射能力强,适用于广播和海上通信
(B)微波具有较强的电离层反射能力,适用于环球通信
(C)微波是具有极高频率的电磁波,波长很短,主要是直线传播,也可以从物体上得到反射
(D)微波通信可用于电话,但不宜传输电视图象
(13)以下关于高级程序设计语言中的数据成分的说法中,正确的是( )
(A)数据名称命名说明数据需要占用存储单元的多少和存放形式
(B)数组是一组相同类型数据元素的有序集合
(C)指针变量中存放的是某个数据对象的值
(D)用户不可以自己定义新的数据类型
(14)移动通信是当今社会的重要通信手段,下列说法错误的是( )
(A)第一代移动通信系统,是一种蜂窝式模拟移动通信系统
(B)GPRS提供分组交换传输方式的GSM新业务,是一种典型的第三代移动通信系统
(C)第二代移动通信系统采用数字传输,时分多址或码分多址作为主体技术
(D)第三代移动通信系统能提供全球漫游,高质量的多媒体业务和高质量、高保密性的优质服务
(15) 在组建局域网时,一般都需要集线器、交换机之类的网络设备。下列有关网络设备的叙述中,错误的是 ()。
A.集线器分为共享式集线器和交换式集线器。
B.网络交换机就是电话系统中的程控交换机。
C.数据传输率是集线器和交换机的重要的性能指标。
D.与共享式集线器相比,一般来说交换机的功能更强、性能更好、价格更贵。
(16)采用补码表示法,整数”0”只有一种表示形式,该表示形式为( )
(A)1000...00 (B)0000...00 (C)1111...11 (D)0111...11
(17)以下关于局域网和广域网的叙述中,正确的是( )
(A)广域网只是比局域网覆盖的地域广,它们所采用的技术是相同的
(B)家庭用户拨号入网,接入的大多是广域网
(C)现阶段家庭用户的PC机只能通过电话线接入网络
(D)单位或个人组建的网络都是局域网,国家建设的网络才是广域网
(18)日常所说的“上网访问网站”,就是访问存放在( )上的信息
A.网关 B.网桥 C.Web服务器 D.路由器
(19)下列关于计算机信息系统的叙述中,错误的是( )
(A)信息系统属于数据密集性应用,数据具有持久性
(B)信息系统的数据可分为多个应用程序所共享
(C)信息系统是以提供信息服务为主要目的的应用系统
(D)信息系统涉及的数据量大,必须存放在内存中
(20) 计算机网络中各个组成部分相互通信时都必须都必须认同的一套规则成为网络协议。在下列英文缩写中,() 不是网络协议。
A.HTTP B.TCP/IP C.FTP D.WWW
Visual C-I-+笔试试卷
第二部分Visual C++语言程序设{
一、选择题(用答题卡答题,答案依次填在21~30答题号内)
21.设有说明语句:int d,e;
以下选项中,存在语法错误的是21 。
A.d=9+e==d+2; B.d=e+=2; C.f=g+f=j*k++; D.(++d)++;
22.设有函数调用语句:fun((x1,x2),x3,(x4,x5,x6));
该函数调用中实参的个数是22
A.2 B.3 C. 5 D.6
23.以下对二维数组的说明中,存在语法错误的是23
A.int a[][3]={3,2,1,1,2,3}; B.int a[][3]={{3,2,1},{1,2,3}};
C.im a[2][3]={1} D.int a[2][]={{3,2,l},{1,2,3}};
24.以下选项中,存在语法错误的是24。
A.float x,&j=x; B.int c,&d=c,&e=d;
C.char b, &k=b; D.int f,&g;g=f;
25.下述关于抽象类的描述中,错误的是25 。
A.可以通过在类中定义纯虚函数的方式定义抽象类
B 不可以创建抽象类的对象
C 不可以创建抽象类的引用
D.可以创建抽象类的指针
26.下列有关函数缺省参数的描述中,正确的是26。
A:设置了缺省值的参数左边不允许出现没有指定缺省值的参数
B.同一个函数在同一个文件中可以提供不同缺省参数值
C.参数缺省值要设置在函数定义语句中,不能设置在函数说明语句中
D. 一个函数具有缺省值的参数只能有一个 。|
27.在以下选项中,C++语言不能重载的运算符是27
A.?: B.+ C.[] D.<=
28.假设a是类E的对象,执行语句:
E b=a;
则要调用类E中的28 。
A.缺省构造函数 B.operator=()函数
c.拷贝构造函数 D.对象之间的赋值
29.已知在函数set中,语句this一>ff=5;与语句ff=5;的效果完全相同。根据这一结
论,以下叙述中不正确的是29。
A.ff是某个类的数据成员,Set是该类的友元函数
B.ff是某个类的数据成员,Set是该类的成员函数
C.Set不是该类的静态成员函数
D.ff不是该类的常成员数据
30.以下对派生类的描述中,不正确的是30 。
A.一个派生类可以作为另一个派生类的基类
B.派生类至少有一个基类
C.派生类的成员除了它自己的成员以外,还包含它的基类的成员
D.派生类中,从基类继承来的成员的访问权限在派生类中保持不变
二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)
●基本概念题(共5分)
1.重载函数必须有不同的参数个数或(1 ) 。
2.在派生类中如果没有重载基类中的纯虚函数,则该派生类是(2 ) 类
3.设有以下程序: 、
#include #define S(X) X*X void main(void) { int k=2; cout<<++S(k+k)<<'\\n'; } 执行该程序后,输出的结果为( 3n ) ,k的值为( 4 ) 。 4.在多重派生中,若要使公共基类在派生类中只有一个拷贝,则必须将该基类说明 为 ( 5 ) 。 ●阅读程序题(共13分) 5.[程序](2分) #include void main(void) { static int a[7]={1},i,j; for(i=1;i<=6;i++) for(j=i;j>0;j--) a[j]+=a[j-1]; for(j=0;j<7;j++)。 cout< } 程序输出第三行是__6_____,第四行是_____7_______ 6.[程序](3分) #include void main(void) { char s[]="I am a student.You are a student too."; int a[26]={0}; char *P=s: while(*P++!='A' && *P<='Z') a[*p-'A']++; else if(*P>='a' && *P<='z') a[*p-'a']++; } for(int i=0;i<26;i++) if(a[i]!=0) cout<<(char)(i+'a')<<":"< } 、 程序的第一行输出为 ( 8 ) ,第三行输出为 ( 9 ) 7.[程序](2分) #include int f(int n) { int s=1; if(n==1) s=1; else{ if(n==3) cout< } return s; } void main(void) { int s; s=f(5); cout<<"s="< 程序的第一行输出为( 10 ),第二行输出为( 11 ) 8.[程序](2分) #include char *f( char *s) { for(char *p=s, *q=s; *q=*p;p++) if(*q>='0' && *q<='9') q++; return s; } void main(void) { char s1[]="It's 4 p.m.", s2[]="3米=3000毫米"; cout< 程序输出的第一行是( 12 ),第二行是( 13 ) 9.[程序](3分) #include void main(void) { int a[10]={73,86,,28,87,69,88,84,,90}; int b[4]={60,70,90,101}; int c[4]={0}; for(int i=0;i<10;i++){ int j=0; while(a[i]>=b[j]) j++; c[j]++; } for(i=0;i<4;i++) cout< 程序输出的第一行是__________,第三行是_____________,最后一行是_________ 10.[程序](2分) #include class A{ int a; . public: void seta(int aa){a=aa;} virtual void print() //第六行 {cout<}; class B:public A{ int b; public: void setb(int bb){b=bb;} void print() {cout<}; void main(void) { A a,*P; B b; a.seta(5); b.seta(10); b.setb(20); P=&a: P->print(); P=&b: P->print(); } 程序输出的是( 17 )。如果在第六行中去掉Virtual,则程序输出的是( 18 )。 11. 一个数的各位数字倒过来所得到的新数叫原数的反序数.如果一个数等于它的反序数,则称它为对称数或回文数。求10000—11000之间的二进制对称数 算法说明:先将正整数n的二进制字符形式放在字符数组s2中,二进制字符形式的反序放在字符数组s1中,然后,比较这两个字符串,若相等,则是二进制对称数 #include #include int func(int n, char *s1) { char ch, s2[33], *p,*q; p=s1; q=s2+32; *q- -=( 19 ) while(n){ ch=( 20 ) //求n的最低二进制位的字符表示形式 n/=2; *p++=ch; *q- -=ch; } *p=0; q++; if( 21 ) return true; else return false; } void main(void) { char s[33]={0}; int count=0; cout<<”二进制对称数如下:\\n”; for(int n=10000; n<11000; n++) { if( 22 ){ cout<<”n=”< } cout<<”对称数的个数为:”< 12.以下程序中的函数fun(int *a, int n)的功能是:把形参a所指向的数组中的最小值放在a[0]中,接着把形参a所指数组中的最大值放在a[1]中;把a所指数组中的次小值放在a[2]中,把a所指数组中的次大值放在a[3]中,其余依次类推,直至将数组中数据依次处理完为止 例如:把a所指向数组中的数据最初排列为:5,1,3,2,9,7,6,8,4.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5 #include #define N 9 void fun(int *a, int n) { int max, min, px, pn, t; for( int i=0; i px=pn=i; for(int j=i+1; j px=j; } if(min>a[j]){ min=a[j]; pn=j; } } if(pn!=i){ t=a[i]; a[i]=min; ____24_____ if(px==i) px=pn; } if( 25 ){ t=a[i+1]; a[i+1]=max; ( 26 ) } } } void main(void) { int b[N]={5,1,3,2,9,7,6,8,4}; cout<<”数组中的数据依次为:”< cout<<”处理后数组中的数据依次为:”< 13.下列程序中的函数change(node *pa,int x)的功能是:调整pa指向的链表中结点的 位置。根据参数X的值,使链表中各结点数据域小于X的结点放在链表的前半部,大于等于x 的结点放在链表的后半部,并将X插人这两部分结点之间。 例如,原链表上各结点的数据依次为:3,4,2,1,9,6,5,0,10,6 输入:X=7 经插入新结点后,新链表的各结点数据依次为:3,4,2,1,6,5,0,6,7,9,10 [程序](4分) #include struct node{ int data; node *next; }; node *change(node *pa,int x) { node *pl,*p2,*P,*q; pl=p2=pa; p=new node; //生成新结点 p->data=x: while(p2一>data pl=p2; ( 27 ) ; } if(p2一>next!=0) p一>next=p2: //插入以X为数据域的结点 pl一>next=p: q=pl; while( 28 ){ //通过循环,将插入结点之后所有数据域小于x的结点前移 if(p2一>data p2一>next=p; q一>next=p2; q=p2; p2=pl一>next; } else { pl= p2; p2=p2一>next: } } } else{ //如果链表中所有结点数据域均小于x,则在链尾插入以x为数据域的新结点 p2一>next=p; ( 30 ) ; } return pa; } void main(void) { node a[10]={{3},{4},{2},{1},{9},{6},{5},{0},{10},{6}},*head=a, *p; int i,x; for(i=0;i<9;i++) a[i].next=&a[i+1]; a[9].next=NULL; cout<<"输入x的值:"; cin>>x; head=change(head,x); p=head; . while(p){ cout< data<<'\'; p=p一>next; } cout< s=n*f(n-1); }