电子专业c++考试题题库及答案.docx
《电子专业c++考试题题库及答案.docx》由会员分享,可在线阅读,更多相关《电子专业c++考试题题库及答案.docx(8页珍藏版)》请在冰豆网上搜索。
电子专业c++考试题题库及答案
电子专业c++考试题题库及答案
一、选择题:
1、C++源程序文件的扩展名是:
A
A).CPPB).CC).DLLD).EXE
2、将小写字母n赋值给字符变量one_char,正确的操作是:
C
A)one_char=‘/n’;B)one_char=“n”;
C)one_char=110;D)one_char=‘N’;
3、整型变量i定义后赋初值的结果是:
B
inti=2.8*6;
A)12B)16C)17D)18
4、下列表达式的值为false的是:
C
A)1<3&&5<7B)!
(2>4)C)3&0&&1D)!
(5<8)||(2<8)
5、设inta=10,b=11,c=12;表达式(a+b)B
A)2B)0C)–2D)1
6、下列程序执行完后,x的值是:
C
intx=0;
for(intk=0;k<90;k++)
if(k)x++;
A)0B)30C)89D)90
7、下列程序段循环次数是:
A
intx=-10;
while(++x)cout<A)9B)10C)11D)无限
8、表示“大于10而小于20的数“,正确的是:
D
A)1010||x<20C)x>10&x<20D)!
(x<=10||x>=20)
9、若整型变量x=2,则表达式x<<2的结果是:
D
A)2B)4C)6D)8
10、设a=1,b=2,则(a++)+b与a+++b这两个表达式的值分别为:
A
A)3,3B)3,4C)4,3D)4,4
二、程序填空题。
1、下列程序计算1000以内能被3整除的自然数之和。
#include
voidmain()
{intx=1,sum;
sum=0_______;
while(true)
{if(x>1000)break;
if(x%3==0)sum+=x;
x++;
}
cout<}
三、假定输入10个整数:
32,64,53,87,54,32,98,56,98,83。
下列程序的输出结果是?
#include
voidmain()
{inta,b,c,x;
a=b=c=0;
for(intk=0;k<10;k++)
{cin>>x;
switch(x%3)
{case0:
a+=x;break;
case1:
b+=x;break;
case2:
c+=x;break;
}
}
cout<}
结果:
141,64,452
四、写出下列程序运行结果。
#include
voidmain()
{intj,k;
for(j=5;j>0;j--)
{for(k=j;k>0;k--)
cout<<”*”;
cout<}
}
结果:
*****
****
***
**
*
五、写出下列程序的运行结果。
#include
#include
voidmain()
{
cout<<”x_width=”<cout<<”x_fill=”<cout<<”x_precision=”<cout<<123<<””<<123.45678<cout<<”***x_width=10,x_fill=&,x_precision=8***”<cout.fill(‘&’);
cout.precision(8);
cout<<123<<”“<<123.45678<cout.setf(ios:
:
left);
cout<<123<<”“<<123.45678<cout.width(10);
cout<<123<<”“<<123.45678<cout<<”x_width=”<cout<<”x_fill=”<cout<<”x_precision=”<}
结果:
x_width=0
x_fill=
x_precision=6
123123.457
***x_width=10,x_fill=&,x_pre
&&&&&&&123123.45678
123123.45678
123&&&&&&&123.45678
x_width=0
x_fill=&
x_precision=8
六、程序题。
1、编写程序,求解方程ax2+bx+c=0的根。
#include
#include
usingnamespacestd;
voidmain()
{
inta,b,c;
floatx1,x2,z;
cin>>a>>b>>c;
z=b*b-4*a*c;
if(z>0)
{
x1=((-b)+sqrt(z))/(2*a);
x2=((-b)-sqrt(z))/(2*a);
cout<<"Theresult:
x1="<}
else
if(z==0)
{
x1=-b/(2*a);
cout<<"Theresult:
x1="<}
else
cout<<"noresult";
}
2、编写程序输出所有的水仙花数。
所谓水仙花数是指一个三位数,其各位数的立方和等于该数。
例如:
153=13+53+33。
#include
usingnamespacestd;
voidmain()
{
inta,b,c;
for(inti=100;i<=999;i++)
{
a=i/100;
b=i%100/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
cout<
}
}
3、编写程序,计算s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。
#include
usingnamespacestd;
voidmain()
{
intn,s,sum=0;
cin>>n;
for(inti=1;i<=n;i++)
{
s=0;
for(intj=1;j<=i;j++)
s+=j;
sum+=s;
}
cout<}
4、某百货公司为了促销,采用购物打折的办法。
(1)在1000元以上者,按九五折优惠;
(2)在2000元以上者,按九折优惠;
(3)在3000元以上者,按八五折优惠;
(4)在5000元以上者,按八折优惠。
编写程序,输入购物款数,计算并输出优惠价。
(要求用switch语句编写)
#include
usingnamespacestd;
voidmain()
{
intcost;
doubleprice,d;
cin>>cost;
if(cost>5000)
d=0.8;
switch(cost/1000)
{
case0:
d=1.0;break;
case1:
d=0.95;break;
case2:
d=0.9;break;
case3:
case4:
d=0.85;break;
}
price=cost*d;
cout<}
4、将一张一元纸币兑换成一分、二分和五分的硬币,假定每种至少一枚,计算共有多少种兑换法并打印出各种兑换法。
#include
usingnamespacestd;
voidmain()
{
inta,b,c,count=0;
for(a=1;a<100;a++)
for(b=1;b<100;b++)
for(c=1;c<100;c++)
if(c*5+b*2+a==100)
{
count++;
cout<<"1分:
"<"<
"<}
cout<<"Counts:
"<}
6、“同构数”是指这样的整数:
它恰好出现在其平方数的右端。
如:
376*376=141376。
请找出10000以内的全部“同构数”。
#include
usingnamespacestd;
voidmain()
{
for(inti=1;i<10000;i++)
{
if(i<10&&i==i*i%10)
cout<
else
if(i<100&&i==i*i%100)
cout<
else
if(i<1000&&i==i*i%1000)
cout<
else
if(i==i*i%10000)
cout<
}
}