cin>>x;y+=x;
}
returny;
}
函数功能:
2.intWG(inta,intb){
if(a>b)return1;
elseif(a==b)return0;
elsereturn-1;
}
函数功能:
3.假定结构类型StrNode带有一个字符串域name[20]和一个结点指针域next。
voidQB(StrNode*&f,intn){//f为单链表的表头指针
if(n==0){f=NULL;return;}
f=newStrNode;//由f指向一个新结点
cin>>f->name;
StrNode*p=f;
while(--n){
p=p->next=newStrNode;
cin>>p->name;
}
p->next=NULL;
}
函数功能:
五、按题目要求编写函数(6分)
假定一个函数声明为“intfun(intn);”,要求判断出n是否为一个素数,若是则返回1否则返回0;特别地,若n小于等于1则返回-1。
中央广播电视大学2007
C++语言程序设计课程试卷答案及评分标准(5)
(供参考)
一、单选题(每小题2分,共20分)
1.C2.A3.C4.D5.B
6.D7.B8.D9.B10.D
二、填空题(每小题2分,共20分)
1.x1=542.’\n’
3.44.6
5.16.break
7.引用8.*(a+i)
9.4410.文件
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
1.sum=15
2.8340//每个数据3分
3.41648//每个数据2分
4.3438//每个数据3分
5.23//每个数据3分
四、写出下列每个函数的功能(每小题8分,共24分)
评分标准:
每题与参考答案的叙述含义相同者得8分,否则酌情给分。
1.求出并返回从键盘上输入的n个实数之和。
2.比较两个整型参数a和b的大小,若a>b则返回1,若a==b则返回0,若a
3.根据从键盘上依次输入的n个字符串建立一个具有n个结点的链表,链表的表头指针由引用变量f带回。
五、按题目要求编写函数(6分)
评分标准:
根据编程的完整程度酌情给分。
intfun(intn){
if(n<=1)return-1;//2分
for(inti=2;i<=sqrt(n);i++)
if(n%i==0)break;//4分
if(i<=sqrt(n))return0;elsereturn1;//6分
}
中央广播电视大学2007年秋
C++语言程序设计课程试卷2
08年9月汶川补考
题号
一
二
三
四
五
总分
得分
一、单选题(每小题2分,共20分)
1.枚举类型中的每个枚举常量的值都是一个()值。
A.整数B.浮点数C.字符D.逻辑
2.设x和y均为bool量,则逻辑表达式x||y为假的条件是()。
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
3.声明或定义一个内联函数时,必须在函数开始使用保留字()。
A.staticB.constC.externD.inline
4.在下面的函数声明中,存在着语法错误的是()。
A.BC(inta,int);B.BC(int,int);
C.BC(int,int=5);D.BC(intx;inty);
5.假定a为一个整型数组名,则元素a[4]与()的表示等价。
A.a+4B.*a+4C.*(a+4)D.*(a+16)
6.循环语句“for(inti=0;iA.nB.n+1C.n-1D.2n
7.将两个字符串连接起来组成一个字符串时,选用()函数。
A.strlen()B.strcpy()C.strcat()D.strcmp()
8.C++编译预处理命令在程序中都是以()字符开头的。
A.*B.#C.&D.@
9.假定有结构定义为“structBOOK{chartitle[40];doubleprice;};”,则该结构类型的长度为()个字节。
A.28B.40C.44D.48
10.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete[]px;”语句时,自动调用该类析构函数的次数为()。
A.1B.nC.n-1D.n+1
二、填空题(每小题2分,共20分)
1.执行“cout<2.在C++语言中包括有________种注释的方式。
3.表达式float(25)/4的值为___________。
4.关系表达式x+y>5的相反式为____________。
5.假定一个二维数组的定义为“inta[3][6];”,则该数组含有__________个整数元素。
6.执行“typedefintABC[20];”语句把________标识符定义为具有20个整型元素的数组类型。
7.假定p所指对象的值为36,p+1所指对象的值为49,则*++p的值为________。
8.假定a是一个一维数组,则a[i]的指针访问方式为____________。
9.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的____________实现。
10.当一个类对象离开它的作用域时,系统将自动调用该类的____________。
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
1.#include
voidSB(charch){
switch(ch){
case'A':
case'a':
cout<<"优!
"<<’’;break;
case'B':
case'b':
cout<<"良!
"<<’’;break;
case'C':
case'c':
cout<<"通过!
"<<’’;break;
default:
cout<<"不通过!
";break;
}
}
voidmain(){
SB(’A’);SB(’c’);
cout<}
运行结果:
2.#include
voidmain(){
inta[6]={36,25,48,14,55,40};
intx=a[0];
for(inti=1;i<6;i++)
if(a[i]>x)x=a[i];
cout<<”x=”<}
运行结果:
3.#include
voidmain()
{
inta[6]={32,53,27,19,12,45};
for(int*p=a;pif(*p%3==0)cout<<*p<<’’;
cout<}
运行结果:
4.#include
int*LG(intm){
int*a=newint(m+5);
returna;
}
voidmain(){
intn1=12;
int*b=LG(n1);
cout<<*b<deleteb;
}
运行结果:
5.#include
#include
structWorker{
charname[15];intage;floatpay;
};
voidmain(){
Workerx;
strcpy(x.name,"WeiRong");
x.age=45;x.pay=3275;
cout<}
运行结果:
四、写出下列每个函数的功能(每小题8分,共24分)
1.doubleFI(doublen){//n为大于等于1的整数
doublex,y=0;
for(inti=0;icin>>x;y+=x;
}
returny;
}
函数功能:
2.intWG(inta,intb){
if(a>0&&b>0)return1;
elseif(a<0&&b<0)return-1;
elsereturn0;
}
函数功能:
3.假定结构类型StrNode带有一个字符串域name[20]和一个结点指针域next。
intQB(StrNode*f){//f为单链表的表头指针
if(f==NULL)return0
intn=0;
while(f!
=NULL){n++;f=f->next;}
returnn;
}
函数功能:
五、按题目要求编写函数(6分)
假定一个函数声明为“intSum(intn);”,要求计算并返回12+22+...+n2的值。
中央广播电视大学2007年秋
C++语言程序设计课程试卷2答案及评分标准
(供参考)
一、单选题(每小题2分,共20分)
1.A2.C3.D4.D5.C
6.A7.C8.B9.D10.B
二、填空题(每小题2分,共20分)
评分标准:
每题与参考答案相同者得2分,否则不得分。
1.D2.2(两)
3.6.254.x+y<=5
5.186.ABC
7.498.*(a+i)
9.函数体10.析构函数
三、写出下列每个程序运行后的输出结果(每小题6分,共30分)
1.优!
通过!
//每个数据占3分
2.x=55
3.271245//每个数据占2分
4.17
5.WeiRong453275
四、写出下列每个函数的功能(每小题8分,共24分)
评分标准:
每题与参考答案的叙述含义相同者得8分,否则酌情给分。
1.求出并返回从键盘上输入的n个实数之和。
2.若a和b都大于0则返回1,若a和b都小于0则返回-1,其他任何情况则返回0。
3.求出并返回f单链表的长度(即结点个数)。
五、按题目要求编写函数(6分)
评分标准:
根据编程完整程度酌情给分。
intSum(intn)
{
inti;
ints=0;//1分
for(i=1;i<=n;i++)
s+=i*i;//4分
returns;//6分
}