C++考试资料.docx
《C++考试资料.docx》由会员分享,可在线阅读,更多相关《C++考试资料.docx(12页珍藏版)》请在冰点文库上搜索。
C++考试资料
程序题:
1.输入年份,判断闰年或者平年
功能:
自己定义一个函数runnian,主函数调用runnian,输出是闰年还是平年
闰年定义:
年数能被4整除而不能被100整除,或者能被400整除的年份。
效果如下:
#include
intrunnian(int);
voidmain()
{
intn;
loop:
printf("请输入年份:
");
scanf("%d",&n);
runnian(n);
gotoloop;
}
intrunnian(inta)
{
if((a%400==0)||(a%4==0&&a%100>0))
printf("%d是闰年.\n",a);
else
printf("%d是平年.\n",a);
}
2.根据以下条件确定(百米跑步成绩):
-结果1:
如果是男生,成绩<12.00,填充为“优秀”
12<=成绩<13.00,填充为“良好”;
13<=成绩<14.00,填充为“合格”
成绩>=14.00,填充为“不合格”;
如果是女生,成绩<13.00,填充为“优秀”
13<=成绩<14.00,填充为“良好”;
14<=成绩<16.00,填充为“合格”
成绩>=16.00,填充为“不合格”;
效果图:
#include
voidmain()
{
intn;
floatl;
printf("请选择男女(男:
输入1,女:
输入2):
");
scanf("%d",&n);
printf("请输入成绩:
");
scanf("%f",&l);
switch(n)
{
case1:
if(l>=14)//男生判断
printf("不合格。
\n");
elseif(l>=13)
printf("合格。
\n");
elseif(l>=12)
printf("良好。
\n");
else
printf("优秀。
\n");
break;
case2:
if(l>=16)//女生判断
printf("不合格。
\n");
elseif(l>=14)
printf("合格。
\n");
elseif(l>=13)
printf("良好。
\n");
else
printf("优秀。
\n");
break;
default:
printf("请选择正确的性别。
\n");
}
}
3.144页练习1:
一个10个整数的数组:
(34,91,83,56,29,93,56,12,72,88),找出最小数和其下标,并在主函数中打印最小数和下标。
#include
voidmain()
{
inta[10]={34,91,83,56,29,93,56,12,72,88};
intn=0;
for(inti=0;i<=9;i++)
{if(n==1)
break;
for(intj=i+1;j<=9;j++)
{
if(a[i]>a[j])
break;
elseif(j==9)
{n=1;
printf("最小数:
%d\n",a[i]);
printf("下标值:
%d\n",i);
break;
}
}
}
}
4.144页练习2:
有5个数,已按从小到大顺序排列好。
在主函数中输入一个数,把输入的数插入到原有数列中,保持大小顺序,输出插入前后的两个数组,并将被挤出的最大数(有可能就是被插入数)返回给主函数输出。
#include
voidmain()
{inta[5];
for(inti=0;i<=4;i++)
scanf("%d",&a[i]);
for(inti=0;i<=4;i++)
printf("%d",a[i]);
printf("\n");
loop:
intb,max;
scanf("%d",&b);
for(inti=4;i>=0;i--)
{
if(b>=a[4])//第一种情况:
输入数大于数组最大数
{
max=b;
for(inti=0;i<=4;i++)
printf("%d",a[i]);
printf("\n");
printf("被挤出的最大数为:
%d\n",b);
break;
}
elseif(b>=a[i])//第二种情况:
输入数小于数组最大数
{
max=a[4];
for(intj=4;j>i+1;j--)
a[j]=a[j-1];
a[i+1]=b;
for(inti=0;i<=4;i++)
printf("%d",a[i]);
printf("\n");
printf("被挤出的最大数为:
%d\n",max);
break;
}
}
gotoloop;
}
5.P33页
以函数调用的方式,求圆柱体的体积。
主函数中先输入圆柱体的半径和高,然后调用求体积的函数,最后输出结果。
#include
voidtiji(int,int);
voidmain()
{
intr,h;
printf("请输入半径:
");
scanf("%d",&r);
printf("请输入高:
");
scanf("%d",&h);
tiji(r,h);
}
voidtiji(inta,intb)
{
printf("体积为:
%.2f\n",3.14*a*b*b);
}
6.P53页
编程实现输入一个整数,判断其能否被3,5,7整除,并输出以下信息之一:
(1)能同时被3,5,7整除
(2)能被其中两数(要指出哪2个)整除
(3)能被其中一个数(要指出哪1个)整除
(4)不能被3,5,7任一个整除
#include
voidmain()
{
inta;
printf("请输入整数:
");
scanf("%d",&a);
intj,k,l;
j=a%3;
k=a%5;
l=a%7;
if(j+k+l==0)
printf("输入的整数能够同时被3,5,7整除。
\n");
elseif(j+k==0&&l>0)
printf("输入的整数能够同时被3,5整除。
\n");
elseif(j+l==0&&k>0)
printf("输入的整数能够同时被3,7整除。
\n");
elseif(k+l==0&&j>0)
printf("输入的整数能够同时被5,7整除。
\n");
elseif(j==0&&k>0&&l>0)
printf("输入的整数能够被3整除。
\n");
elseif(k==0&&j>0&&l>0)
printf("输入的整数能够被5整除。
\n");
elseif(l==0&&k>0&&j>0)
printf("输入的整数能够被7整除。
\n");
else
printf("不能被3,5,7任一个整除。
\n");
}
7.p75页,请编写程序,实现下图图形的输出:
#include
voidmain()
{
for(intj=1;j<=8;j++)
{
for(intk=1;kprintf("");//输出最前面的空格
for(inti=1;i<=18-j;i++)
printf("#");//分行输出#的个数
printf("\n");
}
}
8.p76页,请编写程序,实现下图格式的乘法口诀表:
#include
voidmain()
{
printf("*");//2空格加上*输出
for(inti=1;i<=9;i++)//输入第一行数字部分*1-9
printf("%5d",i);
printf("\n");
for(intj=1;j<=12;j++)//-----------------------
printf("----");
printf("\n");
for(intk=1;k<=9;k++)//3行-12行内容
{
printf("%3d",k);
for(intm=1;m<=9;m++)
{
if(mprintf("");//5个空格
else
printf("%5d",k*m);
}
printf("\n");
}
}
选择题
1.编写C++程序一般需经过的几个步骤依次是()
A.编辑、调试、编译、连接B.编辑、编译、连接、运行
C.编译、调试、编辑、连接D.编译、编辑、连接、运行
答案:
B
2.由C十十目标文件连接而成的可执行文件的缺省扩展名为______。
A.cppB.exe
C.objD.lik
答案:
A
3.对于结构中定义的成员,其隐含访问权限为______。
A.publicB.protected
C.privateD.static
答案:
A
4.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()
A.内联函数B.重载函数
C.递归函数D.嵌套函数
答案:
A
5.适宜采用inline定义函数情况是()
A.函数体含有循环语句B.函数体含有递归语句
C.函数代码少、频繁调用D.函数代码多、不常调用
答案:
C
6.在C++中,使用流进行输入输出,其中用于屏幕输入()
A.cinB.cerr
C.coutD.clog
答案:
A
7.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()
A.x.aB.x.a()
C.x->aD.(*x).a()
答案:
B
8.在下面的一维数组定义中,哪一个有语法错误。
______
A.inta[]={1,2,3}B.inta[10]={0}
C.inta[]D.inta[5]
答案:
C
9.在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的()
A.私有成员B.公有成员
C.保护成员D.保护成员或私有成员
答案:
A
10.设x和y均为bool量,则x||y为假的条件是()。
A.它们均为真B.其中一个为真
C.它们均为假D。
其中一个为假
答案:
C
填空题:
1.已知’A’~’Z’的ASCII码为65~90,当执行“charch=14*5+2;cout<答案H
2.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为_________________。
答案*(p->b)
3.若需要把一个函数”voidF();”定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:
_________________。
答案FriendvoidF();
4.若要在程序文件中进行标准输入输出操作,则必须在开始的#inlude命令中使用__________________头文件。
答案Iostream.h或iomanip.h
5.局部对象和全局对象中,在同一程序中___生存期最长。
答案全局对象
6.执行下列代码stringstr("HelloC++");cout<(C++)
7.在用class定义一个类时,数据成员和成员函数的默认访问权限是___。
答案:
private
8.执行下列程序inta=21,j=16;cout.setf(ios:
:
hex);cout<:
hex);cout<答案1516