《VC++程序设计基础》习题Word文档下载推荐.docx
《《VC++程序设计基础》习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《VC++程序设计基础》习题Word文档下载推荐.docx(61页珍藏版)》请在冰点文库上搜索。
A)15,6fB)16,70C)15,71D)16,6f
9.若给出以下程序,其输出为〖B〗。
#include<
iostream.h>
voidmain(void)
{inta=4,b=7;
(a=a+1,b+a,b+1)<
}
A)5B)8C)11D)程序有错误,无法运行
10.以下程序不用第三个变量,实现将两个数进行对调的操作。
{inta,b;
"
a="
'
\t'
b="
b<
a=〖1A〗;
b=〖2B〗;
a=〖3B〗;
〖1〗A)a+bB)a-bC)a*bD)a/b
〖2〗A)a+bB)a-bC)b-aD)a*b
〖3〗A)a+bB)a-bC)b*aD)a/b
11.若变量a已说明为float类型,i为int类型,则表达式(或语句)〖B,C〗能实现将a中的数值保留小数点后两位,第三位进行四舍五入的运算。
(多项选择)。
A)a=(a*100+0.5)/100.0;
B)i=a*100+0.5,a=i/100.0;
C)a=(int)(a*100+0.5)/100.0;
D)a=(a/100+0.5)*100.0;
12.在以下关于C++语言的注释的叙述中,不正确的是〖C〗。
A)在C++程序中,注释可用"
/*"
、"
*/"
形式表示,也可用"
//"
形式表示
B)C++编译器在编译一个程序时,将跳过注释,不对其进行处理
C)C++编译器在编译一个程序时,可发现注释中的单词拼写错误
D)程序中注释的多少不会影响所生成的可执行文件的长度
13.在以下叙述中,不正确的是〖A〗。
A)C++语言中,仅在处理字符及字符串时才区分字母的大小写
B)C++语言没有输入/输出语句,输入/输出是通过输入/输出库函数实现的
C)C++语言是C语言的一个超集
D)程序中注释不会影响所生成的可执行文件的长度
14.若有以下说明和语句,则输出结果为〖B〗。
inta=16,b=10,i;
floatx=10;
i=a<
b&
&
(x=25)>
b;
cout<
i<
x<
A)0,25B)0,10C)1,25D)1,10
15.若有以下语句,则输出结果为〖D〗。
inta=2,b=1;
a>
b?
"
a大于b"
:
a小于b"
A)a大于bB)a小于bC)1D)输出语句有错
16.以下运算中,运算结果为8的是〖B〗。
A)sizeof(2.5f)B)sizeof("
\n\t\0X234"
)C)sizeof(long)D)sizeof('
\100'
+1000)
第二章控制结构
1.在以下各组运算符中,优先级最高的运算符为〖1B〗,〖2C〗,〖3C〗,〖4D〗。
〖1〗A)?
B)++C)&
D)+=
〖2〗A)*=B)>
=C)(类型)D),
〖3〗A)||B)%C)!
D)==
〖4〗A)=B)!
=C)*(乘号)D)()
2.若给定条件表达式(m)?
(a++):
(a--),则其中表达式m〖C〗。
A)和(m==0)等价B)和(m==1)等价C)和(m!
=0)等价D)和(m!
=1)等价
3.以下程序的输出为〖D〗。
{inti,j,k,a=3,b=2;
i=(--a==b++)?
--a:
++b;
j=a++;
k=b;
i="
j="
j<
k="
k<
A)i=2,j=1,k=3B)i=1,j=1,k=2C)i=4,j=2,k=4D)i=1,j=1,k=3
4.在C++语言的if语句中,用作判断的表达式为〖D〗。
A)关系表达式B)逻辑表达式C)算术表达式D)任意表达式
5.表达式〖B,D〗是满足:
当x的值在-10到10,100到110时值为"
真"
,否则为"
假"
的表达式(多项选择)。
A)(10>
x>
-10)||(100>
x-100)
B)!
((x<
=-10)||(x>
=10))||!
100)||(x>
=110))
C)(x<
10)&
(x>
-10)&
100)&
(x<
110)
D)(x>
10)||(x<
110)&
100)
6.表达式〖A,C,D〗是满足:
a和b的值都大于0,小于n时值为"
,否则值为"
A)(a>
0)&
(b>
(a<
n)&
(b<
n)
B)a&
C)!
((a<
=0)||(b<
=0)||(b>
=n)||(a>
=n))
D)!
=0)&
!
=n)&
(a>
=n)
7.表达式〖B,C,D〗是满足:
当intc的值为1,3,5三个数时值为"
A)(c=1)||(c=3)||(c=5)
B)!
((c<
3)&
(c>
1))&
5)&
3))&
(c<
=5)&
=1)
C)(c!
=2)&
(c!
=4)&
=1)&
=5)
D)(c==1)||(c==3)||(c==5)
8.以下程序的输出为〖B〗。
{inta=10,b=50,c=30;
if(a>
b)a=b;
b=c;
c=a;
a<
b<
c="
c<
A)a=10,b=50,c=10B)a=10,b=30,c=10C)a=50,b=30,c=10D)a=50,b=30,c=50
9.执行下面程序后的输出为〖D〗。
{inta=2,b=3;
a:
b<
A)2B)3C)无法确定D)有语法错
10.在下面给出的四个语句段中,〖A〗能够正确表示出以下的函数关系:
┌-1(x<
0)
y=┤0(x=0)
└1(x>
A)if(x!
=0)B)y=0;
if(x>
0)y=1;
=0)
elsey=-1;
if(x)y=1;
elsey=0;
C)if(x<
0)y=-1;
D)y=-1;
if(x!
=0)y=1;
0)y=1;
11.设i和k都是int类型,则以下for循环语句〖B〗。
for(i=0,k=-1;
k=1;
i++,k++)cout<
****\n"
A)判断循环结束的条件不合法B)是无限循环
C)循环体一次也不执行D)循环体只执行一次
12.设i和x都是int类型,则以下for循环语句〖A〗。
for(i=0,x=0;
=9&
x!
=876;
i++)cin>
x;
A)最多执行10次B)最多执行9次C)是无限循环D)循环体一次也不执行
13.以下程序的输出为〖B〗。
{inti,j,x=0;
for(i=0;
2;
i++)
{x++;
for(j=0;
=3;
j++)
{if(j%2)continue;
x++;
}
x++;
x="
x<
A)x=4B)x=8C)x=6D)x=12
14.以下程序的输出为〖B〗。
{inti,j,k=0,m=0;
{for(j=0;
3;
j++)k++;
k-=j;
m=i+j;
<
m="
m<
A)k=0,m=3B)k=0,m=5C)k=1,m=3D)k=1,m=5
15.Ⅰ在C++语言中,当while语句中的条件为〖A〗时,结束该循环。
Ⅱ在C++语言中,当do...while语句中的条件为〖A〗时,结束该循环。
A)0B)1C)trueD)非0
16.当k为整型,以下while循环执行〖C〗次。
k=10;
while(k=0)k=k-1;
A)10B)无限C)0D)1
17.当k为整型,以下while循环执行〖B〗次。
k=2;
while(k==0)cout<
k;
k--;
\n'
A)无限B)0C)1D)2
18.以下程序段中,〖C〗不是无限循环。
A)inti=100;
while
(1)
{i=i%100;
i++;
if(i>
100)break;
B)for(;
);
C)intk=32764;
do{
k++;
}while(k>
0);
D)ints=32764;
while((s++%2)||(s%2))s++;
19.以下程序的输出结果为〖B〗。
{intk=0;
charc='
A'
do
{switch(c++)
{case'
k++;
break;
case'
B'
k--;
C'
k+=2;
D'
k=k%2;
continue;
E'
k=k*10;
default:
k=k/3;
}while(c<
G'
A)k=3B)k=4C)k=2D)k=0
20.以下程序的输出结果为〖C〗。
{inti=0,j=0,a=6;
if((++i>
0)||(++j>
0))a++;
i<
j<
A)i=0,j=0,a=6B)i=1,j=1,a=7C)i=1,j=0,a=7D)i=0,j=1,a=7
21.以下程序的输出结果为〖15913〗。
〖261014〗
〖371115〗
〖481216〗
#include<
voidmain()
{inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
inti,j,t;
for(j=i+1;
4;
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
j++)cout<
a[i][j]<
第三章指针与数组
1.若有说明:
char*p1,*p2,*p3,*p4,ch;
则不能正确赋值的程序语句为〖C〗。
A)p1=&
ch;
*p1;
B)p2=newchar;
*p2;
C)cin.get(*p3);
D)p4=&
cin.get(*p4);
2.对于基类型相同的指针变量,不能进行〖A〗运算
A)+B)-C)=D)==
3.若有以下说明和语句,则〖C〗是对数组元素的错误引用。
inta[]={1,2,3,4,5,6,7,8,9,0},*p=a,i=2;
A)*(a+i)B)a[p-a]C)p+iD)*(&
a[i])
4.若有以下说明和语句,则〖D〗是对数组元素地址的正确表示。
A)&
(a+i)B)a++C)&
pD)&
p[i]
5.下面的程序中〖A〗有错误(每行前面的数字是行号)。
1#include<
2voidmain(void)
3{floata[3]={0.0};
4inti;
5for(i=0;
i++)cin>
a[i];
6for(i=1;
i++)a[0]=a[0]+a[i];
7cout<
a[0]<
8}
A)没B)第3行C)第6行D)第7行
6.以下程序找出数组中最大值和此元素的下标,数组元素的值由键盘输入,请从对应的一组选择项中,选择正确的填入。
{inta[10],*p,*s,i;
10;
〖1D〗;
for(p=a,s=a;
〖2A〗<
p++)
if(*p>
*s)s=〖3A〗;
max="
〖4C〗<
index="
〖5C〗<
〖1〗A)&
a[i]B)p+iC)a+iD)a[i]
〖2〗A)p-aB)s-aC)a-pD)a-s
〖3〗A)pB)a[p]C)a[s]D)a-p
〖4〗A)a[p-a]B)a[p]C)*sD)a[s]
〖5〗A)p-aB)pC)s-aD)a-s
7.以下程序的输出结果是〖D〗。
{inta[]={1,2,3,4,5,6},*p;
p=a;
*(p+3)+=2;
*p<
*(p+3)<
A)0,5B)1,5C)0,6D)1,6
8.以下程序输出两个整数中大的那个数,两个整数由键盘输入,请从对应的一组选择项中,选择正确的填入。
{inta,b,*p1,*p2;
p1=new〖1A〗;
p2=new〖1A〗;
〖2B〗;
if(*p2>
*p1)*p1=*p2;
〖3A〗<
deletep1;
deletep2;
〖1〗A)intB)floatC)int*D)float*
〖2〗A)p1>
p2B)*p1>
*p2C)&
p1>
p2D)&
a>
b
〖3〗A)*p1B)*p2C)p1D)p2
9.在以下说明中,标识符ptr〖C〗。
int(*ptr)[3];
A)说明不合法
B)是一个指针数组名,每个元素是一个指向整数变量的指针
C)是一个指针,它指向一个具有三个整型元素的一维数组
D)是一个指向整型变量的指针
10.以下说明与〖C〗中的说明等价。
int*p[4];
A)intp[4]B)int*pC)int*(p[4])D)int(*p)[4]
11.若有说明:
inta[4][10];
则〖B〗是对数组元素a[i][j]的错误引用(此处0<
=i<
4,0<
=j<
10)。
A)*(&
a[0][0]+10*i+j)B)*(a+i)[j]C)*(*(a+i)+j)D)*(a[i]+j)
12.若有说明:
inta[4][3],b[3][4],(*ptr)[3];
且0<
3,则〖A〗是正确的赋值语句。
A)ptr=aB)ptr=bC)ptr=b[i]D)ptr=a[i]
13.设有以下说明语句:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12},(*prt)[3]=a,*p=a[0];
能够正确表示数组元素a[1][2]的表达式是〖D〗。
A)*((*prt+1)[2])B)*(*(p+5))C)(*prt+1)+2D)*(*(a+1)+2)
14.以下程序建立一个如下所示的二维数组,并按以下格式输出。
请从对应的一组选择项中,选择正确的填入。
10001
01010
00100
iomanip.h>
{inta[5][5]={0},*p[5],i,j;
5;
i++)p[i]=〖1A〗;
{*(p[i]+〖2C〗)=1;
*(p[i]+5-〖3D〗)=1;
j++)cout<
setw(3)<
p[i][j];
〖4A〗;
a[i][0]B)&
a[i][1]C)&
p[i]D)&
a[0][i]
〖2〗A)0B)1C)iD)(i+1)
〖3〗A)0B)1C)iD)(i+1)
〖4〗A)cout<
B)cout<
\0'
C)cout<
\0"
D)cout<
15.以下程序的输出结果是〖D〗。
{inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
i++)p[i]=&
a[i*3];
p[3][2]<
A)输出项不合法,输出结果不定B)6C)8D)12
16.以下程序的输出结果是〖B〗。
{inta[20],*p[4],i,k=0;
20;
i++)a[i]=i;
a[i*(i+1)];
i++)k+=p[i][i];
A)数组元素引用不合法,输出结果不定B)26C)10D)16
17.若有以下说明和语句,则〖D〗中表示的都是对a数组元素的正确引用,其中0<
4,0<
3。
inta[4][3]={0},(*ptr)[3],i,j;
ptr=a;
...
A)a[i][j],a[i]+j,*(*(a+i)+j)
B)*(ptr+i)[j],ptr[i]+j,*(*(ptr+i)+j)
C)*(ptr+i)[j],*(a+i)[j],*(ptr+i)
D)ptr[i][j],*(ptr[i]+j),*(a[i]+j)
18.若有以下说明和语句,则〖A〗是对a数组元素的错误引用。
inta[12]={0},*p[3],**pp,i;
a[i*4];
pp=p;
A)a[12]B)p[2][3]C)a[10]D)pp[0][1]
19.若有以下说明和语句,则〖B〗中表示的都是a数组元素的地址,其中0<
inta[4][3]={0},*p[4],**pa,i,j;
i++)p[i]=a[i];
pa=p;
a[i][j],p[i]+j,pa[i][j]B)*(pa+i)+j,p[i],*(p+i)+j
C)&
a[j],&
p[i],*(*(pa+i)+j)D)**pa,a,p
20.请填空。
以下程序把一由小到大的有序数列放在a[1]到a[n]中,a[0]用做工作单元,程序