VC++.docx

上传人:b****6 文档编号:8000978 上传时间:2023-01-27 格式:DOCX 页数:21 大小:20.36KB
下载 相关 举报
VC++.docx_第1页
第1页 / 共21页
VC++.docx_第2页
第2页 / 共21页
VC++.docx_第3页
第3页 / 共21页
VC++.docx_第4页
第4页 / 共21页
VC++.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

VC++.docx

《VC++.docx》由会员分享,可在线阅读,更多相关《VC++.docx(21页珍藏版)》请在冰豆网上搜索。

VC++.docx

VC++

一、填空共8题(共计32分)

第1题(4.0分)

等比数列的第1项a=1,公比q=2。

下面程序的功能是求满足前n项和小于100时的最大n,请完善下面程序

#include

voidmain(void)

{

inta,q,n,sum;

a=1;

q=2;

n=sum=0;

do

{

【1】;

++n;

a=a*q;

}

while(sum<100);

【2】

cout<

}

答案:

1).sum+=a

2).n--

 

第2题(4.0分)

执行下列循环后,a=【1】;b=【2】。

inta=1,b=2;

while(a<4)

{

a++;

a+=++b;

}

答案:

1).5

2).3

 

第3题(4.0分)

若自定义函数要求返回一个值,则应在该函数体中有一条【1】语句;

若自定义函数要求不返回值,则应在该函数定义时加一个类型符【2】.

答案:

1).return

2).void

 

第4题(4.0分)

下列程序第一行的结果是【1】,第二行的结果是【2】.

#include

f(inta)

{

staticfloatb=2;

returnb+=a/b;

}

voidmain(void)

{

for(inti=3;i<5;i++)

cout<

}

答案:

1).3

2).4

 

第5题(4.0分)

下列函数的功能是计算数组中下标为偶数的元素之和.请完善程序.#include

f(inta[],intn)

{

ints=0;

for(intj=0;j

returns;

}

voidmain(void)

{

intj,i=5;

inta[]={1,2,3,6,4,5};

cout<

}

答案:

1).s+=a[j]

2).j+=2

 

第6题(4.0分)

下列程序的输出结果为【1】.#include

#include

voidmain(void)

{

chars1[10]={"hello"};

chars3[]={'e','f','\0','g','h'};

strcat(s1,s3);

cout<

}

答案:

1).helloefef

 

第7题(4.0分)

以下程序执行后第一行结果为【1】,第二行结果为【2】.

voidmain()

{

chararr[]="ABc";

char*ptr;

for(ptr=arr;ptr

cout<<*ptr<<'\n';

}

答案:

1).A

2).B

 

第8题(4.0分)

下列的程序功能是比较两个字符串是否相等,若相等返回1,否则返回0.请完善程序.#include

intf(char*a1,char*a2)

{

char*p=a1,*q=a2;

while(【1】)

{

q++;

p++;

}

return【2】;

}

voidmain()

{

chars1[100],chars2[100];

cin.getline(s1,100);

cin.getline(s2,100);

cout<

}

答案:

1).*p==*q&&*p!

='\0'

2).*p=='\0'&&*q=='\0'

 

二、单项选择共30题(共计30分)

第1题(1.0分)

为了避免嵌套的if语句的二义性,C++语言规定else与if配对关系为____.

A:

缩排位置相同的if

B:

在其之前未配对的if

C:

在其之前未配对的最近的if

D:

同一行上的if

答案:

C

第2题(1.0分)

设有下列语句组

inta=0;

if(2*2==5<2*(a=4))a=1;

elsea=2;

a的值为____.

A:

0

B:

1

C:

2

D:

4

答案:

C

第3题(1.0分)

执行以下语句时,循环的次数是____.

for(intx=0,y=0;!

x&&y<=5;y++);

A:

无数次

B:

0

C:

5

D:

6

答案:

D

第4题(1.0分)

设有以下语句组:

intx=2,a=1;

while(x)a=a+1;

语句a=a+1执行的次数是____。

A:

0

B:

1

C:

无限次

D:

有限次

答案:

C

第5题(1.0分)

以下程序段

intx=2,y;

if(x<0)y=0;

elseif(x<4)y=5/x;

elsey=1;

cout<

执行后,y=____。

A:

0

B:

1

C:

2

D:

2.5

答案:

C

第6题(1.0分)

以下程序运行的结果是____.

#include

voidmain()

{

inti=3,j=-50;

do

{

j=j+i;

i--;

}

while(i>2);

cout<

}

A:

-50

B:

-47

C:

-46

D:

-45

答案:

B

第7题(1.0分)

下列编译预处理指令没有语法错误的是____.

A:

#defineN3=

B:

#include"iostream.h";

C:

#definePI=3.14159

D:

include"iostream.h"

答案:

A

第8题(1.0分)

下列叙述正确的是____.

A:

一个include可以用于包含一个或多个文件.

B:

编译预处理命令必须以#开始.

C:

使用include包含的文件一定要以.h为后缀.

D:

程序执行时,宏展开只作替换,而不含计算过程.

答案:

B

第9题(1.0分)

以下程序执行后输出结果是____.

#include

#defineT(x,y)(x)<(y)?

(x):

(y)

voidmain()

{inti,j,k;

i=10;j=15;k=10*T(i,j);

cout<

}

A:

15

B:

100

C:

10

D:

150

答案:

A

第10题(1.0分)

下列程序运行的结果是____.

fun1(inta,intb)

{returnfun2(a++,--b);}

fun2(inta,intb)

{returna/b;}

voidmain(void)

{

intx=5,y=6;

cout<

}

A:

1

B:

1.6

C:

2

D:

语法错

答案:

D

第11题(1.0分)

若定义函数:

intf(intx){x++;returnx;}

执行以下语句:

inta=5;f(a)+f(a);

则a的值是____.

A:

5

B:

6

C:

7

D:

8

答案:

A

第12题(1.0分)

若有函数调用语句f(g(x,y),z=x+y,(x+y))中;实参的个数____.

A:

3

B:

4

C:

5

D:

6

答案:

A

第13题(1.0分)

设有定义语句inta[2][4];则以下叙述不正确的是____.

A:

a数组可以看成是由a[0]、a[1]两个元素组成的一维数组

B:

a[0]代表一个地址常量

C:

元素a[0]是由4个整型元素组成的一维数组

D:

可用a[0]=5;的形式给数组元素赋值

答案:

D

第14题(1.0分)

数组名为函数实参时,传递给函数的是____.

A:

数组首地址

B:

数组元素个数

C:

数组首元素的值

D:

数组所有元素

答案:

A

第15题(1.0分)

下列叙述正确的是____.

charsss[][2]={"wa","ha","wb","hb","wb","hb"};//A

chars3[][3]={'a','x','y'};//B

A:

A行语句有错误

B:

B行语句有错误

C:

A行和B行语句都有错误

D:

A行和B行语句都没有错误

答案:

A

第16题(1.0分)

下列程序的运行结果是____.

chars1[]="hello";

chars2[]={'h','e','l','l','o'};

cout<

A:

0

B:

正数

C:

负数

D:

无法比较

答案:

C

第17题(1.0分)

下面程序段是输出两个字符串中对应位置相等的字符.标号为1处应选择____.

#include

#include

voidmain()

{charx[]="programming",chary[]="fortran";inti=0;

while(x[i]!

='\0'&&y[i]!

='\0')

if(x[i]==y[i])cout<<___

(1)___;

elsei++;

}

A:

x[i++]

B:

y[++i]

C:

x[i]

D:

y[i]

答案:

A

第18题(1.0分)

合法的数组初始化语句是____.

A:

chara="string";

B:

inta[6]={'0','1','2','3','4','5','6'};

C:

chara[6]="string"

D:

chara[]={0,1,2,3,4,5};

答案:

D

第19题(1.0分)

若有定义chars1[]="hello";chars2[]={'h','e','l','l','o'};intb;则下列语句正确的是____.

A:

cout>>s1+s2;

B:

b=s1==s2;

C:

strlen(s1);

D:

strcat(s1,s2);

答案:

C

第20题(1.0分)

若有下列定义

structstudent

{intnum;

charname[20];

}stud6;

A:

struct是定义结构体类型的关键字

B:

name、num是结构体成员名

C:

stud6为结构体类型名

D:

student为结构体类型名

答案:

C

第21题(1.0分)

以下程序的输出结果为____.

#include

voidmain()

{structcmplx

{intx;inty;}cnum[2]={1,3,2,7};

cout<

}

A:

0

B:

1

C:

3

D:

6

答案:

D

第22题(1.0分)

下列结构体定义不正确的是____.

A:

structabc

{inta,b,c;}stru[10];

B:

structabc[10]

{inta,b,c;};

C:

structabc

{inta,b[10],c;}stru

D:

structabc

{inta,b,c;}stru;

答案:

B

第23题(1.0分)

对于如下的结构体定义,若对变量person出生年份进行赋值,____是正确的赋值语句.

structdate

{intyear,month,day;};

structworker

{charname[20];

charsex;

datebirthday;

}person;

A:

year=2001

B:

birthday.year=2001

C:

person.birthday.year=2001

D:

person.year=2001

答案:

C

第24题(1.0分)

设有说明语句:

inti=2,*p=&i;chars[20]="Hello",*q=s;

以下选项中存在语法错误的是____.

A:

cin>>p

B:

cout<

C:

cin>>q

D:

cout<

答案:

A

第25题(1.0分)

下面关于内存的动态分配说法错误的是____.

A:

new和delete是C++提供的运算符

B:

delete只能释放由new分配的内存空间

C:

由new分配一组连续内存空间,数量可以是常数,也可以是变量

D:

使用new和delete需要加入头文件"stdio.h"

答案:

D

第26题(1.0分)

语句int*f()中,标识符f代表的是____.

A:

一个指向整型数据的指针变量

B:

一个指向一维数组的行指针

C:

一个指向函数的指针变量

D:

一个返回值为指针型的函数

答案:

D

第27题(1.0分)

以下能正确完成赋字符串的是____.

A:

chara[7]="student";

B:

char*a[]="student";

C:

chara[]="student";

D:

char*a;strcpy(a,"student");

答案:

C

第28题(1.0分)

若有以下定义intn,*p;则下列赋值正确的是____.

A:

*p=newint

(2)

B:

*p=newint[n]

C:

p=new*int[2]

D:

p=newint[n]

答案:

D

第29题(1.0分)

有以下函数

int*f(int*p)

{returnp;}

该函数的返回值是____.

A:

实参自身的地址值

B:

形参p自身的地址值

C:

一个临时存储单元的地址

D:

形参p中存放的地址值

答案:

D

第30题(1.0分)

设定义了说明语句:

staticinta[2][4]={1,2,3,4,5,6,7,8},(*p)[4]=a+1;则p[0][0]的值为.

A:

1

B:

2

C:

5

D:

6

答案:

C

三、程序填空共3题(共计18分)

第1题(6.0分)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

求三个数的最大公约数

-------------------------------------------------------*/

#include

voidmain()

{

inta,b,c,n,n1,n2,n3;

cin>>a>>b>>c;

if(a

n=a;

else

n=b;

if(n>c)

n=c;

do

{

/***********SPACE***********/

n1=【?

】;

/***********SPACE***********/

n2=【?

】;

n3=c%n;

/***********SPACE***********/

【?

】;

}

while(n1!

=0||n2!

=0||n3!

=0);

/***********SPACE***********/

cout<<【?

】;

}

 

答案:

1).a%n

2).b%n

3).n--或n=n-1或n-=1或--n

4).n+1或++n或1+n

 

第2题(6.0分)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

判断一个字符串是否是回文,是输出“yes”,

否则输出“no”.(回文是字符串正读反读一样,如level)

-------------------------------------------------------*/

 

#include

intlenth(chara[])

{

inti;

/***********SPACE***********/

for(i=0;【?

】;i++);

returni;

}

voidmain()

{

inti,j,l;

chara[50];

cin.getline(a,50);

/***********SPACE***********/

l=【?

】;

/***********SPACE***********/

for(i=0,j=l-1;i

】)

if(a[i]!

=a[j])

break;

/***********SPACE***********/

if(【?

】)

cout<<"yes";

else

cout<<"no";

}

答案:

1).a[i]!

='\0'或a[i]!

=0或a[i]

2).lenth(a)

3).j--或--j或j=j-1或j-=1

4).i>=j或j<=i

 

第3题(6.0分)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

以下程序通过调用自定义函数scopy()将字符串s1复制到

字符串s2,并输出显示。

-------------------------------------------------------*/

 

#include

voidscopy(char*p,char*q)

{

while(*p!

='\0')

{

/***********SPACE***********/

【?

】;

p++;

q++;

}

/***********SPACE***********/

【?

】;

}

voidmain()

{

char*s1="Nanjing,China";

chars2[20];

cout<<"\nThes1is:

"<

/***********SPACE***********/

【?

】;

cout<<"\nThes2is:

"<

}

答案:

1).*q=*p

2).*q='\0'

3).scopy(s1,s2)

 

四、程序设计共2题(共计20分)

第1题(10.0分)

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:

编写一个函数,统计出一维数组中

大于等于所有元素平均值的元素个数并返回它。

--------------------------------------------------

注意:

部分源程序给出如下。

请勿改动主函数main和其它

函数中的任何内容,仅在函数的花括号中填入所编

写的若干语句。

------------------------------------------------*/

 

#include

#include

intCount(doublea[],intn)

{

/**********Program**********/

 

/**********End**********/

}

voidmain()

{

intc;

doublea[10]={34,54,75,86,53,45,34,45,34,45};

c=Count(a,10);

cout<<"数组中大于等于所有元素平均值的元素个数为:

"<

voidwwjt(int);

wwjt(c);

}

voidwwjt(into)

{

intk;

fstreammyfile;

myfile.open("out.txt",ios:

:

out);

myfile<

myfile.close();

}

答案:

----------------------

doublem=0;

inti;

for(i=0;i

m=m/n;

intc=0;

for(i=0;i

if(a[i]>=m)c++;

returnc;

----------------------

第2题(10.0分)

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:

用指针作为函数的参数,设计一个实现两个参数

交换的函数。

输入三个实数,按升序排序后输出。

------------------------------------------------*/

 

/**********Program**********/

 

/**********End**********/

 

答案:

----------------------

#include

voidswap(int*p1,int*p2)

{intt;

t=*p1;*p1=*p2;*p2=t;}

voidmain()

{inta,b,c;

int*s1,*s2,*s3;

cout<<"输入三个数a,b,c:

";

cin>>a>>b>>c;

s1=&a;s2=&b;s3=&c;

if(a>b)swap(s1,s2);

if(a>c)swap(s1,s3);

if(b>c)swap(s2,s3);

cout<<"输出排好序的三个数:

";

cout<

----------------------

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1