VC++程序设计试卷

更新时间:2023-03-16 15:03:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

:名姓 ******************************************* 装 :级年***************** 订 ****************** 线 :业专***************************************

大学 第 学期期末试卷

《VC++程序设计》学科

题 号 一 二 三 四 五 总 分 得 分

阅卷人 分,共20分)

得 分 一、单项选择题(每题21.设有说明语句:int d,e;以下选项中,存在语法错误的是( )。 A.d=9+e==d+2; B.d=e+=2; C.f=g+f=j*k++; D.(++d)++;

2.设有函数调用语句:fun((x1,x2),x3,(x4,x5,x6));该函数调用中实参的个数是( A.2 B.3 C. 5 D.6 3.以下对二维数组的说明中,存在语法错误的是( )。

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}}; 4.以下选项中,存在语法错误的是( )。 A.float x,&j=x; B.int c,&d=c,&e=d; C.char b, &k=b; D.int f,&g;g=f; 5.下述关于抽象类的描述中,错误的是( )。 A.可以通过在类中定义纯虚函数的方式定义抽象类 B 不可以创建抽象类的对象 C 不可以创建抽象类的引用 D.可以创建抽象类的指针

6.下列有关函数缺省参数的描述中,正确的是( )。

A:设置了缺省值的参数左边不允许出现没有指定缺省值的参数 B.同一个函数在同一个文件中可以提供不同缺省参数值

C.参数缺省值要设置在函数定义语句中,不能设置在函数说明语句中 D. 一个函数具有缺省值的参数只能有一个。|

7.在以下选项中,C++语言不能重载的运算符是( )。 A.?: B.+ C.[] D.<= 8.假设a是类E的对象,执行语句: E b=a;

则要调用类E中的( )。

A.缺省构造函数 B.operator=()函数 c.拷贝构造函数 D.对象之间的赋值

9.已知在函数set中,语句this一>ff=5;与语句ff=5;的效果完全相同。根据这一结论,以下叙述中不正确的是( )。

第 1 页 共 5 页

。 )

:名姓 ******************************************* 装 :级年***************** 订 ****************** 线 :业专***************************************

A.ff是某个类的数据成员,Set是该类的友元函数 B.ff是某个类的数据成员,Set是该类的成员函数 C.Set不是该类的静态成员函数 D.ff不是该类的常成员数据

10.以下对派生类的描述中,不正确的是( )。 A.一个派生类可以作为另一个派生类的基类 B.派生类至少有一个基类

C.派生类的成员除了它自己的成员以外,还包含它的基类的成员 D.派生类中,从基类继承来的成员的访问权限在派生类中保持不变

阅卷人 二、填空题(每题4分,共20分)

得 分 1.重载函数必须有不同的参数个数或( ) 。

2.在派生类中如果没有重载基类中的纯虚函数,则该派生类是( ) 类 3.设有以下程序: 、 #include #define S(X) X*X void main(void) {

int k=2;

cout<<++S(k+k)<<'\\n'; }

执行该程序后,输出的结果为( ) ,k的值为( ) 。 4.在多重派生中,若要使公共基类在派生类中只有一个拷贝,则必须将该基类说明为(

阅卷人 得 分 三、写出程序运行结果(每题8分,共40分)

1.[程序]

#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<

程序输出第三行是_______,第四行是____________ 2.[程序]

第 2 页 共 5 页

)。 :名姓 ******************************************* 装 :级年***************** 订 ****************** 线 :业专***************************************

#include void main(void) {

char s[]=\.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')<<\:\ } 、

程序的第一行输出为_______,第三行输出为 _______。3.[程序]

#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<<\; }

程序的第一行输出为_______,第二行输出为_______。4.[程序]

#include char *f( char *s) {

for(char *p=s, *q=s; *q=*p;p++) if(*q>='0' && *q<='9') q++; return s; }

第 3 页 共 5 页

void main(void) {

:名姓 ******************************************* 装 :级年***************** 订 ****************** 线 :业专*************************************** char s1[]=\米=3000毫米\ cout<

程序输出的第一行是_______,第二行是_______。 5.[程序]

#include void main(void) {

int a[10]={73,86,89,28,87,69,88,84,64,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.[程序]

#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)

第 4 页 共 5 页

:名姓 ******************************************* 装 :级年***************** 订 ****************** 线 :业专***************************************

{

A a,*P; B b; a.seta(5); b.seta(10); b.setb(20); P=&a: P->print(); P=&b: P->print(); }

程序输出的是_______,如果在第六行中去掉Virtual,则程序输出的是_______。 阅卷人 得 分 四、编程(20分)

一个数的各位数字倒过来所得到的新数叫原数的反序数.如果一个数等于它的反序数,则称它为对称数或回文数。求10000—11000之间的二进制对称数

第 5 页 共 5 页

本文来源:https://www.bwwdw.com/article/4luv.html

Top