CC++语言样卷Word格式文档下载.docx
《CC++语言样卷Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CC++语言样卷Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
![CC++语言样卷Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/31/1cb0edad-f459-4a50-8095-780ccdb883fe/1cb0edad-f459-4a50-8095-780ccdb883fe1.gif)
{inta;
intb;
}data,*p=&
data;
则对data中的成员a引用不正确的是()。
A、p.aB、p->
aC、(*p).aD、data.a
8.在C语言中,以()作为字符串结束标志
A.‘\n’B.’\0’C.‘0’D.‘’
9.如有定义:
inta,*p=&
a;
不能对变量a正确赋值的是()
A.cin>
>
p;
B.*p=15;
C.a=15;
D.cin>
10.不能实现2数交换功能的函数是()
A.voidswapa(intx,inty)B.voidswapb(int&
x,int&
y)
{inttemp;
{inttemp;
temp=x;
x=y;
y=temp;
}temp=x;
}
C.voidswapc(int*x,int*y)
{inttemp
;
temp=*x;
*x=*y;
*y=temp;
}
二、阅读程序(每小题5分,共40分)
1.#include<
iostream>
usingnamespacestd;
若输入23和5,运行结果为:
若输入46和7,运行结果为:
intmain(void)
{inta,b,c;
cout<
<
"
inputaandb:
cin>
a>
b;
cout<
inputa+b="
c;
if(a+b==c)
cout<
right!
endl;
else
error!
return0;
2.#include<
若输入2,运行结果为:
若输入3,运行结果为:
intmain(void)
{intchoice;
floatprice;
Enterchoice:
"
choice;
switch(choice)
{
case1:
price=3;
case2:
price=2.5;
break;
case3:
price=4;
case4:
price=3.5;
default:
price=0.0;
}
price="
price<
return0;
}
3.#include<
若输入4↙,运行结果为:
如去掉for语句后面的{},运行结果为:
{inti,n;
floatitem,sum;
Entern:
cin>
n;
sum=0;
for(i=1;
i<
=n;
i++)
{
item=1.0/(2*i-1);
sum=sum+item;
sum="
sum;
4.#include<
若输入73↙,运行结果为:
若输入-129↙,运行结果为:
intsum_dig(intnum)
{intk=0;
do
{k=k+(num%10);
num=num/10;
}while(num);
returnk;
}
{intm=1,n;
“\ninputdata:
”;
if(n<
0)
m=-1;
m*sum_dig(m*n)<
return0;
}
选择你认为必须的几组测试数据,并写出运行结果
测试数据运行结果
5.#include<
{intscore;
Enteryourgrade:
score;
if(score>
100||score<
0)
cout<
“inputerror!
\n”;
elseif(score>
=80)
yourgradeisA\n"
elseif(score>
=60)
yourgradeisB\n"
else
yourgradeisC\n"
程序功能:
运行结果(不必写出全部结果,示意清楚即可):
6.#include<
{
inti,j;
for(i=1;
i<
10;
for(j=1;
j<
=i;
j++)
j<
*"
i<
="
i*j<
\t"
cout<
endl;
7.#include<
#defineN6
运行结果为:
{inti;
intfib[N]={1,1};
for(i=2;
N;
i++)
fib[i]=fib[i-1]+fib[i-2];
for(i=0;
fib[i]<
程序功能为:
8.#include<
{inti,j,sum;
inta[2][3]={1,2,3,4,5,6};
for(i=0;
2;
i++){
for(j=0;
j<
3;
j++)
a[i][j]<
i++){
sum=0;
sum=sum+a[i][j];
sum”<
”="
sum;
}
三、在划线处填上适当的语句或表达式,使程序能实现要求的功能(每空2分,共10分)
1.程序功能:
在数组(组内无重值)中查找x,找到,显示其在数组中的下标
#include<
constintN=5;
{inti,x,a[N];
\nEnterintegers:
a[i];
Enterx:
x;
for(i=0;
;
if(){
Indexis"
if(i>
=N)
“NOTfind”<
2.(中国古典算术问题)某工地需要搬运砖块,已知男人一人搬3块,女人一人搬2块,小孩两人搬一块。
问用45人正好搬45块砖,列出所有有效的搬法,并统计有多少种搬法。
#include<
{intchild,women,men,n=0;
for(men=0;
men<
=15;
men++)
for()
for(child=0;
child<
=44;
child=child+2)
if(men*3+women*2+child/2==45&
)
{cout<
men="
men<
women="
women<
child="
;
n="
n<
四.根据程序功能要求,找出错误,并改正,若是找不出错误,请具体说明如何调试排错(每题4分,共8分)
1.程序功能为:
输入1批学生成绩,以负数结束,求平均分。
{intn=0;
intscore,sum;
“pleaseinputthescore:
cin>
while(score>
=0)
{sum=score+sum;
//第9行
n++;
if(n>
“theaveis”<
(float)sum/n;
else
“novaliddata”;
该程序没有语法错误,第9行有一个警告,localvariable'
sum'
usedwithouthavingbeeninitialized
程序运行结果不对,现象是如输入的第一个数是负数,运行结果为novaliddata;
如输入的第一个数不是负数,则程序无法结束。
请根据以上信息,分析程序,找出错误(2处)并改正(可在原题处更改)。
2.程序功能:
输入一个形式如“操作数运算符操作数”的四则运算表达式,输出运算结果。
原程序没有考虑除数为零的情况,请改进程序。
floatdata1,data2;
charop;
“\npleaseinputexpressionlikethis:
3.14*5\n”;
cin>
data1>
op>
data2;
switch(op)
{case‘+’:
data1+data2<
break;
case‘-‘:
data1-data2<
break;
case’*’:
data1*data2<
case’/’:
data1/data2<
break;
default:
”<
五.编程题(每题8分,共32分)
1.C语言总成绩由平时成绩和期末成绩两部分组成,平时成绩占30%,期末成绩占70%,输入你希望的总成绩(百分制),再输入平时成绩(百分制),计算并显示出你期末试卷应该达到的分数(百分制),并给出2组测试数据及预期结果。
(编程不必考虑输入出错的情况,注意是求期末成绩,而不是总成绩)
y=5x+1x<
0
y=1/x0≤x<
1
y=x31≤x
2.编写一个程序,实现右侧的分段函数(即当用户从键盘输入任意一个x值,程序可以求出对应的y值并输出)
3.自定义一个函数计算圆柱体的体积,并编写主函数,输入半径和高,调用函数求出圆柱体体积
4.定义一个长度为6的整型数组,从键盘输入6个数据给数组,找出并显示最大值和它所对应的下标。
参考答案及评分标准
一、选择题,评分标准:
每题1分,共10分
CABCBCABAA
二、阅读程序;
评分标准:
每题5分,可根据答案给0~5分。
共40分
1.若输入23和5,运行结果为:
right
!
error
2.若输入2,运行结果为:
price=2.5
若输入3,运行结果为:
price=3.5
3.若输入4,运行结果为:
sum=1.67619
sum=0.142857
4.若输入73↙,运行结果为:
10
-12
5.测试数据运行结果
107inputerror!
-40inputerror!
90yourgradeisA
73yourgradeisB
32yourgradeisC
6.程序功能:
打印九九乘法表
1*1=1
1*2=22*2=4
…
1*9=92*9=183*9=27…9*9=81
7.运行结果:
112358
8.运行结果:
123
456
sum0=6
sum1=15
程序功能:
输出数组,并求出各行元素之和
三、填空,评分标准:
每空2分,共10分
1.i<
N;
a[i]==x
2.women=0;
23;
women++
men+women+child==45
n++
四.改错:
1.#include<
intscore,sum=0;
评分标准:
答案不唯一,可根据答题情况给分,本题得分为0~4分
2.#include<
if(data2!
dividedbyzero!
3.自定义一个函数计算圆柱体的体积,并编编写主函数,输入半径和高,调用函数求出圆柱体体积
(编程方法不唯一,答案仅供参考)
(1)对于程序中出现的语法错误,每错一处扣0.5分,但最多不得超过3分。
(2)变量数据类型定义准确,编程思路清晰,算法设计合理,程序结构完整,输入输出语句格式正确,完全实现了题目的要求,程序书写规范,给满分。
(3)算法设计合理,但程序中出现有逻辑错误,给60%以上得分。
(4)没有明确的编程思路,但能实现一些基本功能,可得5~55%得分。
(5)最低得分为0分。
{intscore1,score
floatscore2;
\npleaseinputyourscore1:
score1;
\npleaseinputyourscore:
score2=(score-0.3*score1)/0.7;
score2="
score2;
测试数据预期结果
score1scorescore2
709098.5714
906047.1429
{floatx,y;
\npleaseinputx:
if(x<
y=5*x+1;
elseif(x<
1)
y=1/x;
elsey=x*x*x;
y="
y
3.#include<
floatget_volume(floatr,floath)
{floatv;
constdoublePI=3.14159;
v=PI*r*r*h;
returnv;
{floatr,h,v;
Enterrandh:
r>
h;
v=get_volume(r,h);
volume="
v<
return0;
{constintN=6;
inti,a[N],index;
Enterintegers:
a[i]<
index=0;
for(i=1;
if(a[i]>
a[index])
index=i;
Themaxis"
a[index]<
”,positionis“<
index<