}
A)0B)22C)12D)10
51、以下选项中合法的用户标识符是(B)。
A.long
B._2Test
C.3Dmax
D.A.dat
52、已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则字符常量’\102’是(C)
A.字符A
B.字符a
C.字符B
D.字符b
53、在inta[][3]={{1,0},{3,2},{4,5,6},{0}};中a[2][2]的值是( C )。
A.0;B.5;C.6;D.2
54、设有数组定义:
chararray[]=”China”;则数组array所占的空间为(C)
A.4个字节
B.5个字节
C.6个字节
D.7个字节
55、设有如下说明
typedefstruct
{intn;charc;doublex;}STD;
则有以下选项,能正确定义结构体数组并赋初值的语句是(A)
A.STDtt[2]={{1,'A',62},{2,'B',75}};
B.STDtt[2]={1,”A”,62,2,”B”,75};
C.structtt[2]={{1,'A'},{2,'B'}};
D.structtt[2]={{l,”A”,62.5},{2,”B”,75.0}};
56、对于int*p[5];的描述,( B )是正确的。
A.p是一个指向数组的指针,所指向的数组是5个int型元素;
B.p是一个具有5个元素的指针数组,每个元素是一个int型指针;
C.p是一个指向某个数组中第5个元素的指针,该元素是int型变量;
D.p[5]表示某个数组的第5个元素的值;
57、若已定义inta[]={1,2,3,4,5,6,7,8,9,10),*p=a,i=5;则对数组元素的不正确的引用是(D)
A.a[p-a]
B.*(&a[i])
C.p[i]
D.*(*(a+i))
58、已知语句intm=10;则下列表示引用的表示中正确的是(A)
A.int&x=m;
B.int&v=10;
C.int&z;
D.float&t=&m;
59、执行语句x=5*4,x+5,3+4;x的值是(C)。
A.20B.24
C.7D.51
60、下面对宏定义的描述中不正确的是(C)
A.宏不存在类型问题,宏名无类型,它的参数也无类型
B.宏替换不占用运行时间
C.宏替换时先求出实参表达式的值,然后代入形参数运算求值
D.其实,宏替换只不过是字符替代而已
61、以下非法的赋值语句是(C)
A.n=(i=2,++i);B.j++;
C.++(i+1);D.x=j>0;
62、现已定义整型变量inti=3;
执行循环语句“while(i-->0);”后,i的值为(C)。
A.1B.0
C.-1D.以上三个答案均不正确
63、下面程序的输出结果是(B)
#include
inti=0;
intfun(intn)
{
staticinta=2;
a++;
returna+n;
}
voidmain()
{
intk=5;
{
inti=2;
k+=fun(i);
}
k+=fun(i);
cout<}
A.13B.14
C.15D.16
64.执行下列语句,输出的结果是(C)
inti=0;
while(i<25)i+=3;
cout<
A)24B)25C)27D)28
65.for(intx=0,y=0;!
x&&y<=5;y++)语句执行循环的次数是(C)
A)0B)5C)6D)无次数
66.下列程序段中对数组定义错误的是(B)
A)inta[10+2]B)intlength=10;inta[length]
C)intconstlength=10;inta[length]D)inta[12];
67.下列关于do……while语句叙述正确的是(D)
A)do……while语句不可以转换为等价的while循环
B)do……while语句所构成的循环只能用break语句跳出
C)do……while语句所构成的循环只有在while后面的表达式为零时才结束
D)do……while语句先执行循环内容后判断条件
68.表达式0x13&0x17的值是(B)
A)0x17B)0x13C)0xf8D)0xec
69.在位运算中,操作数每左移一位,其结果相当于:
(A)
A)操作数乘以2B)操作数除以2
C)操作数除以4D)操作数乘以4
70.运行时给变量x输入12,则以下程序的运行结果是(A)
voidmain()
{intx,y;
cin>>x;
y=x>12?
x+10:
x-12;
cout<}
A)0B)22C)12D)10
71.下列关于c++函数的叙述中,正确的是(D)
A)每个函数至少要具有一个参数B)函数必须返回一个值
C)函数被调用之前必须先说明D)函数可以自己调用自己
72.下列说法正确的是(B)
A)指针只要赋给一个地址就可以
B)数组大小必须在编译的时候确定
C)使用引用的时候可以不必初始化
D)引用可以指向不同的变量,只要类型一致就可以
73.下列各运算符中,三元运算符是(C)
A)?
:
B)=C)>=D)++
74.下面关于c++语言变量的叙述错误的是(B)
A)c++语言变量分为auto,static,extern和register四种存储类型
B)自动变量和外部变量的作用域是整个程序
C)内部静态变量的作用域是定义它的函数
D)外部静态变量的作用域是定义它的文件
二、填空题
1.以下程序的功能是:
输出100以内能被3整除且个位为6的所有整数。
#include
voidmain()
{inti,j;
for(i=0;i<10;i++)
{j=i*10+6;
if(j%3!
=0)continue;
cout<}
}
2.下列函数的功能是计算并输出5!
+4!
+3!
+2!
+1!
的结果。
#include
intfac(inta);
voidmain()
{ints(0);
for(inti
(1);i<=5;i++)s+=fac(i);
cout<<"5!
+4!
+3!
+2!
+1!
="<
}
intfac(inta)
{staticintb=1;
b*=a;
returnb;}
3.以下程序中,函数fun()的功能是:
将数组元素的值反序存放,例如:
若某数组中的元素值依次为1、2、3、4、5、6、7、8、9,则反序存放后依次为9、8、7、6、5、4、3、2、1。
形参n给出数组元素的个数。
#include
voidfun(inta[],intn)
{inti,t;
for(i=0;i{t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
}
voidmain()
{intb[9]={1,2,3,4,5,6,7,8,9};
fun(b,9);
for(inti=0;i<9;i++)cout<
}
4.下面程序的功能是求数组中大于0的元素之和,请将空格内的语句补充完整。
voidmain()
{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
intsum=0,i;
for(i=0;i<=9;i++)
{if(num[i]>0)
sum=sum+num[i];}
cout<<”sum=”<}
5.下列程序段的功能为输入一个正整数,要求以相反顺序输出,例如,输入123,输出321。
#include
voidmain()
{
unsignedn;
cout<<"输入一个正整数:
";
cin>>n;
cout<<"相反顺序:
";
do
{
cout<n=n/10;
}while(n!
=0);
cout<}
6.下面程序是判断一个数是不是素数,请填空。
#include
#include
voidmain()
{
intm,i,k;
cin>>m;
k=sqrt(m);或k=m-1
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>k)cout<elsecout<}
7.下面程序的功能是将字符串b复制到字符串a。
请填空。
#include
voids(char*s,char*t)
{inti=0;
while(t[i]!
='\0')
{s[i]=t[i];i++;}
s[i]='\0';
}
voidmain()
{chara[20],b[10];
cin>>b;
s(a,b);
cout<}
8.下面程序的功能是求数组中大于0的元素之和,请将空格内的语句补充完整
voidmain()
{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
intsum=0,i;
for(i=0;i<10或i<=9_;i++)
{if(num[i]>0)
sum=sum+num[i];}
cout<<”sum=”<}
9.下列程序段的功能为,使用递归调用方法将一个n位整数转换成字符串。
#include
#include
voidconvert(intn)
{intm;
m=n/10;
if(n/10)或(m)convert(m);
cout<}
voidmain()
{intnum;
cout<<"请输入一个整数:
";
cin>>num;
cout<";
convert(num);
cout<}
10、十进制28和3.26的类型分别是int和double。
11、执行语句序列
charstrl[10]=”ABCD'’,str2[10]=”XYZxyz'’;
for(inti=0;strl[i]=str2[i];i++);
后,数组str1中的字符串是XYZxyz。
12、将以下if-else语句改写成switch语句,请填空。
if(s>0&&s<10)
if(s>5)x=2;
elsex=1;
elsex=0;
改写成的switch语句:
switch(s>0&&s<10)
{case1:
switch(s>5)
{case1:
x=2;break;
case0:
x=1;
}break;
case0:
x=0;
}
13、程序的功能是用递归算法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5