VC++.docx
《VC++.docx》由会员分享,可在线阅读,更多相关《VC++.docx(21页珍藏版)》请在冰豆网上搜索。
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;jreturns;
}
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;ptrcout<<*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;im=m/n;
intc=0;
for(i=0;iif(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<----------------------