vc++期末考试题及答案Word文档下载推荐.docx

上传人:b****3 文档编号:17572541 上传时间:2022-12-07 格式:DOCX 页数:12 大小:23.63KB
下载 相关 举报
vc++期末考试题及答案Word文档下载推荐.docx_第1页
第1页 / 共12页
vc++期末考试题及答案Word文档下载推荐.docx_第2页
第2页 / 共12页
vc++期末考试题及答案Word文档下载推荐.docx_第3页
第3页 / 共12页
vc++期末考试题及答案Word文档下载推荐.docx_第4页
第4页 / 共12页
vc++期末考试题及答案Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

vc++期末考试题及答案Word文档下载推荐.docx

《vc++期末考试题及答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《vc++期末考试题及答案Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

vc++期末考试题及答案Word文档下载推荐.docx

<

2;

(其中<

的优先级高于^),则z的二进制值是________。

A)00101110B)11111000

C)11111010D)11010010

5.下面程序段所表示的数学函数关系是________。

    x=-1;

    if(a!

=0)

{if(a>

0)x=1;

}

elsex=0;

  -1(a<

0)     1(a<

0)

A)x=0(a=0)B)x=-1(a=0)

1(a>

0)0(a>

0(a<

0)-1(a<

C)x=-1(a=0)   D)x=1(a=0)

第1页

6.设有定义:

inta=1,b=10;

则执行以下循环语句后,a和b的值分别为。

do{b-=a;

a++;

}while(b--<

0);

A)82B)-2-1C)-18D)28

7.设有宏定义如下:

#defineMIN(x,y)(x)>

(y)?

(x):

(y)

#defineT(x,y,r)x*r*y/4

则执行以下语句后,s1和s2的值分别为。

inta=1,b=3,c=5,s1,s2;

s1=MIN(a=b,b-a);

s2=T(a++,a*++b,a+b+c) 

;

A)327B)273C)241D)324

8.以下关于文件包含的描述中正确的是_____

  A)每个C++程序必须包含预处理命令:

#include<

iostream.h>

  B)#include后面的文件名用双引号("

"

)括起和尖括号(<

>

)括起完全等效

  C)#include命令行可以出现在源程序中需要的任意行

  D)用#include所包含的文件称为头文件,必须以.h作为扩展名

9.设有函数调用语句:

fun((x1,x2),x3,(x4,x5,x6));

该函数调用中实参的个数是。

A)2B)3C)5D)6

10.下列函数原型说明中,错误的是________。

A)int&

f1();

B)intf2(double=5);

C)voidf3(void(*p)());

D)intf4(inta=0,intb);

11.以下关于C++函数的描述中,正确的是________。

A)内联函数就是定义在另一个函数体内部的函数

B)函数体的最后一条语句必须是return语句

C)c++要求在调用一个函数之前,该函数已定义或已有该函数的原型说明

D)编译器会根据函数的返回值类型区分函数的不同重载形式

12.以下叙述中不正确的是_________。

A)在函数内的复合语句中定义的变量在本函数范围内有效

B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在不同函数中可以使用相同名字的变量

13.设有说明语句:

chars[80]=”Hello”;

inta[20]={1,2};

下列选项中,存在语法错误的是________。

A)cin>

s;

B)cout<

C)cin>

a;

D)cout<

共4页

14.若有说明语句:

inty[][4]={0,0};

则下面叙述不正确的是。

  A)数组y的每个元素都可得初值0

  B)二维数组y的行数为1

  C)该说明等价于inty[][4]={0};

  D)只有元素y[0][0]和y[0][1]可得到初值0,其余元素均得不到初值0

15.以下说明语句中,没有语法错误的是________。

A)inta,*pa=&

a,*pb=*pa;

B)intaa,&

b=aa,*pc=&

b;

C)intc[10],&

pc=c;

D)intdd,&

u=&

dd,*v=u;

16.执行以下程序段后,m的值是。

inta[2][3]={{1,3,5},{7,9,11}};

intm,*ptr;

ptr=&

a[0][0];

m=(*ptr)*(*ptr+2)*(*(ptr+4));

A)编译出错  B)27 C)45 D)无定值

17.设用以下程序段建立了sp与str的关系,则以下对字符串的引用不正确的是。

charstr[4][8]={"

str1"

"

str2"

str3"

str4"

},*sp[4];

for(intn=0;

n<

4;

n++)

sp[n]=str[n];

A)sp  B)*sp  C)sp[0]  D)*(sp+1)

18.若有以下定义和赋值语句,且0≤i≤1,0≤j≤2,则以下对s数组元素地址的正确引用形式是。

ints[2][3]={0},(*p)[3],i,j;

p=s;

A)(*(p+i))[j]   B)*(p[i]+j)

C)*(p+i)+j   D)(p+i)+j

19.若有函数max(a,b),并且已使函数指针变量p指向函数max,则利用函数指针调用max函数的正确形式是。

A)(*p)max(a,b)B)*pmax(a,b)C)p->

max(a,b)D)(*p)(a,b)

20.设有以下定义和语句,则以下表达式值为6的是________。

structss

{inta;

ss*b;

};

ssx[3]={5,&

x[1],7,&

x[2],9,'

\0'

},*ptr;

ptr=&

x[0];

A)ptr->

a++B)ptr++->

aC)ptr->

aD)++ptr->

a

第2页

二、读程序,写出输出结果(每题3分,共12分)

a=3

b=70

1.#include<

intf(intn)

{

inta=3;

if(n==3)a=2;

else{

cout<

a="

a<

'

\n'

a=n*f(n-2);

}

returna;

voidmain(void)

{

intb=7;

b=f(b);

b="

b<

endl;

2.#include<

intf(int&

n,int&

m)

k=17

k=45

k=122a=28b=66

staticintk=10;

n+=m;

k+=n;

m+=k;

k="

k<

return(n+m);

voidmain(void){

inta=3,b=4,k;

k=f(a,b)+f(a,b);

\t'

3.#include<

char*str(char*p1,char*p2)

char*p=p1;

while(*p)p++;

*p++='

'

while(*p++=*p2++);

returnp1;

voidmain(void)

loveNanjing

IloveNanjing

IloveNanjingloveNanjingNanjing

chars1[50]="

I"

chars2[50]="

love"

chars3[]="

Nanjing"

str(s2,s3)<

str(s1,s2)<

s1<

s2<

s3;

4.#include<

structabc{

staticinta;

intb;

}x,y;

intabc:

:

a=2;

x.b=6;

y.b=8;

x.a<

x.b<

y.a<

y.b<

x.a=18;

abc:

}

三、填程序,在空格位置填入合适的代码(每空2分,共8分)

以下函数Split()的功能是把形参链表list分割成两条链表,data值为奇数的结点保留在原链表上,值为偶数的结点移到另一个链表中,并返回该链表。

【程序】

structNode{

intdata;

Node*next;

structLinkedList{

Node*head;

intsize;

第3页

LinkedListSplit(LinkedList&

list)

LinkedListlist2=create();

Node*p1,*p2,*p3;

p3=list2.head;

p1=p2=list.head;

while(p2){

if(p2->

data%2==0){

if(p2==list.head)

list.head=p2->

next;

else

p1->

next=p2->

list.size--;

if(list2.head==0)

list2.head=p2;

p3->

next=p2;

p3=p2;

p2=p2->

next=0;

list2.size++;

p1=p2;

return(list2);

四、写程序,根据要求编写程序(每题10分,共20分)

1、编写一个函数,对一个整数数组求对应元素的集合set(即不重复元素)

intgetIntSet(constinta[],intn,intset[])

形参a中的n个整数可能存在重复,要求把其中不重复的整数放入set中,并返回不重复整数的个数。

例如,如果a={2,1,1,2,1,3},set应为{2,1,3},次序无所谓,返回3,表示有3个不重复元素。

2、输入n(n>

=2)名学生的成绩(0-100),统计如下数据:

60分以下人数及百分比;

60-69分人数及百分比;

70-79分人数及百分比;

80-89分人数及百分比;

90-100分人数及百分比;

平均分;

要求,先输入n,再输入n个float值,然后输出统计结果。

提示,自行设计结构和函数来简化复杂性。

注意使用动态内存。

 

参考答案

1、

intgetIntSet(constinta[],intn,intset[]){

intcount=0;

for(inti=0;

i<

n;

i++){

for(intj=i+1;

j<

j++)

if(a[i]==a[j])

break;

if(j==n)

set[count++]=a[i];

returncount;

2、

structGradeLevel{//成绩统计结构类型

floataverage;

//平均分

intac;

//90-100分人数

intbc;

//80-89分人数

intcc;

//70-79分人数

intdc;

//60-69分人数

intec;

//0-59分人数

voidprintGradeLevel(constGradeLevel&

gl){

intnumber=gl.ac+gl.bc+gl.cc+gl.dc+gl.ec;

统计数据:

考生数量:

number<

平均成绩:

gl.average<

90-100:

<

gl.ac<

占"

(float)gl.ac/number*100<

%"

80-89:

"

gl.bc<

(float)gl.bc/number*100<

70-79:

gl.cc<

(float)gl.cc/number*100<

60-69:

gl.dc<

(float)gl.dc/number*100<

0-59:

gl.ec<

(float)gl.ec/number*100<

voidinput(floata[],intn){

for(inti=0;

i++)

cin>

a[i];

GradeLevelstat(constfloata[],intn){

GradeLevellevel={0};

floatsum=0;

sum+=a[i];

if(a[i]>

=90)

level.ac++;

elseif(a[i]>

=80)

level.bc++;

=70)

level.cc++;

=60)

level.dc++;

else

level.ec++;

level.average=sum/n;

returnlevel;

voidmain(){

intn=0;

输入n="

cin>

n;

if(n<

2)return;

float*a=newfloat[n];

input(a,n);

printGradeLevel(stat(a,n));

delete[]a;

第4页

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

当前位置:首页 > 经管营销 > 销售营销

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

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