2011.1试题1.doc_第1页
2011.1试题1.doc_第2页
2011.1试题1.doc_第3页
2011.1试题1.doc_第4页
2011.1试题1.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中央广播电视大学2007秋 C+语言程序设计课程试卷(5)2011.1.13考 一、单选题(每小题2分,共20分) 1. 下面的保留字( C. new )不能作为函数的返回类型。 2. C+源程序文件的默认扩展名为( A. cpp )。 3. 在下列的标识符常量的定义语句中,错误的定义语句是( C. const char ch; )。 4. for循环语句一定能够被改写为( D. while )语句。 5. 假定a为一个数组名,则下面的( B. *+a )表达式有语法错误。 6. 在下面的二维数组定义中,只有( D. int a5=1,2,3,4,5; )语句是正确的。 7. 下面( B. AA(int a=0, int b); )的函数声明格式不正确。 8. 假定指针变量p定义为“int *p=new int30;”,要释放p所指向的动态数组空间,则使用下面的( D. delete p; )语句。 9. 假定要对结构类型AB定义加号运算符重载的普通函数,实现两个AB类型对象的加法,并返回相加结果,则该函数的声明语句为( A. AB operator +(AB& a, AB& b); )。 10. 当需要使用ifstream流类定义一个流对象并联系一个磁盘文件时,应在文件开始 使用#include命令,使之包含( D. fstream.h )头文件。 二、填空题(每小题2分,共20分) 1十进制数30表示成符合C+语言规则的十六进制数为_ 0x1E(字母x和E大小写均可) _。 2假定一个枚举类型的定义为“enum RBab,ac,ad,ae;”,则枚举常量ad的值为_2_。 3. 假定y=8,则执行y+*4运算后,y的值为_ 9 _。 4算术表达式+1对应的C+表达式为_ (x+y)/(2*x*y)+1_。 5. 关系表达式x=5 _。 6. 假定整数变量x=48,则a/12的运算结果为_4_。 7. 假定一个二维数组的定义语句为“int a34;”,则该数组包含有_12_个整型元素。 8函数被调用时,实参向形参的传送分为引用传送和_ 值_传送两种方式。 9假定一个结构类型的定义为”struct Bint a5; char* b;”,则该类型的大小为_24_字节。 10. 在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_ 构造函数_使其初始化。 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include void main() int s1=0; for(int i=1; i=5; i+) s1+=2*i; cout”s1=”s1endl; 输出结果:s1=30 2. #include void main() int a6=6,9,12,18,15,20; int c=0; for(int i=0; i6; i+) if(ai%2=1) c+; coutc=cendl; 输出结果:c=2 3. #include void main() int a34=1,2,7,8,5,6,11,15,9,20,3,4; int m=a00; for(int i=0;i3;i+) for(int j=0;jm) m=aij; coutmendl; 输出结果:20 4. #include void main() int a=10, b=15, c; c=a+b; int b=a+20; c+=a+b; coutcendl; 输出结果:655. #include void main() int a8=6,19,4,12,20,5,18,25; int *p, s=0; for(p=a; pa+8;p+) if(*p10) s+=*p; coutsendl; 输出结果:15 四、写出下列每个函数的功能(每小题8分,共24分) 1. int WC(int a, int n, int k) int c=0; for(int i=0;i=k) c+; return c; 函数功能:统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。 2. bool SG(int x) /x为大于等于2的整数 int a=int(sqrt(x); /sqrt(x)为求x的平方根 int i=2; while(i=a) if(x%i=0) break; i+; if(i=a) return true; else return false; 函数功能:判断x是否为一个素数(或质数),若是则返回真,否则返回假。 3. 假定结构类型Worker中的name域表示姓名,age域表示年龄,pay域表示工资。 void QA(Worker a, int n) for(int i=0; ai.ageai.pay; 函数功能:从键盘上输入n个Worker结构类型的记录依次保存到一维数组a的对应元素中。 五、按题目要求编写函数(6分)假定一个函数声明为“void AD(int a, int n);”,要求把数组a中的n个元素值按前后相反的次序排列。 void AD(int a, int n) for(i=0; in/2; i+) int x=ai; ai=an-1-i; an-1-i=x; 中央广播电视大学2007秋部分单选题练习: 1枚举类型中的每个枚举常量的值都是一个( )值。 A整数 B浮点数 C字符 D逻辑 2设x和y均为bool量,则逻辑表达式x | y为假的条件是( )。 A它们均为真 B其中一个为真 C它们均为假 D其中一个为假 3声明或定义一个内联函数时,必须在函数开始使用保留字( )。 Astatic Bconst Cextern Dinline 4在下面的函数声明中,存在着语法错误的是( )。 ABC(int a, int); BBC(int, int); CBC(int, int b=5); DBC(int x; int y); 5假定a为一个整型数组名,则元素a4与( )的表示等价。 Aa+4 B*a+4 C*(a+4) D*(a+16) 6循环语句“for(i=0; in; i+);”执行结束后得到的i的值为( )。 An Bn+1 Cn-1 D2n 7将两个字符串连接起来组成一个字符串时,选用( )函数。 Astrlen() Bstrcpy() Cstrcat() Dstrcmp() 8C+编译预处理命令在程序中都是以( )字符开头的。 A* B# C& D 9假定有结构类型的定义为“struct BOOKchar title10; double price;”,则该结构类型的长度为( )个字节。 A9 B12 C16 D18 10假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete px;”语句时,自动调用该类析构函数的次数为( )。 A1 Bn Cn-1 Dn+1 11在C+程序中相对独立的功能模块为( )。 A表达式 B标识符 C语句 D函数 12存储以下数据,占用存储字节最多的是( )。 A0 B0 C0 Dn 13在下面的一维数组定义中,有语法错误的是( )。 Aint a=1,2,3; Bint a10=0; Cint a; Dint a5; 14若整型变量x的值为25,则x/6的值为( )。 A3 B4 C5 D1 15C+语言中的每条简单语句以_作为结束符。 A逗号 B分号 C空格 D换行符 16随机函数表达式rand()%20的值在( )区间内。 A119 B120 C019 D020 17当处理一个循环次数已知的问题时,则通常采用( )循环来解决。 Afor循环 Bwhile Cdo循环 D任何一种 18在下面for循环语句中,循环体S语句的执行次数为( )。 for(int i=0; i5的逻辑值为_。 6假定一个一维数组的定义为“char* a8;”,则该数组占用_个字节的存储空间。 7假定x的值为10,则表达式2+x+的值为_。 8假定p所指对象的值为25,p+1所指对象的值为46,则*+p的值为_。 9假定要动态分配一个类型为int的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为int *r=_。 10设px指向一个类的动态分配的对象,则执行“delete px;”语句时,将自动调用该类的_函数。 11十进制数25表示成符合C+语言规则的十六进制数为_。 12假定一个字符数组的定义为“char a=12345;”,则该字符数组的长度为_。 13假定y的值为8,则执行y+*4运算后,y的值为_。 14算术表达式3x(2y+1)对应的C+表达式为_。 15关系表达式x5的相反表达式为_。 16假定整数变量x的值为48,则x/15的运算结果为_。 17假定一个二维数组的定义语句为“int a34;”,则该数组包含有_个整型元素。 18函数被调用时,实参向形参的传送分为引用传送和_传送两种方式。 19假定一个结构类型的定义为“struct Bint a5; char* b;”,则该类型的大小为_字节。 20在定义类对象的语句执行时,系统在建立每个对象的过程中将自动调用该类的_函数使其初始化。写出程序运行结果练习: 1#include void main() int s=0; for(int i=1;i=8;i=+2) s+=i*i; couts=sendl; 输出结果:2#include void main() int i=0,s=0; while(s10) s+=+i; coutsendl; 输出结果: 3#include void main() int a8=36,25,48,75,55,20,47,82; int c1=0, c2=0; for(int i=0; i8; i+) if(ai50) c1+; else c2+; coutc1 c2endl; 输出结果: 4#include int LB(int *a, int n) int p=1; for(int* b=a; ba+n;b+) p*=*b; return p; void main() int a5=1,2,3,4,2; coutLB(a,5)endl; 输出结果: 5#include struct Worker char name15; /姓名 int age; /年龄 float pay; /工资 ; void main() Worker x=wangfong,46,2650; Worker y, *p; y=x; p=&x; coutyage+10 pay*2endl; 输出结果: 6#include #include void main() int x=20, y=6, z; if(xy) z=x+y; else if(xy) z=x*y; else z=x+10; coutz=zendl; 运行结果: 7#include #include void main() char* a5=student,worker,cadre,soldier,apen; unsigned int n=strlen(a0); /求字符串a0的长度 for(int i=1;i5;i+) if(strlen(ai)n) n=strlen(ai); coutnendl; 运行结果:8#include int WF(int x, int y) x=x+y; y=x+y; return x*y; void main() coutWF(3,4)endl; 运行结果:9#include const int N=8; void main() int aN=2,4,6,8,10,12,14,18; int s=0; for(int i=0; iN; i+) if(ai%3=0) s+=ai; couts=sendl; 运行结果: 10#include void main() int* d=new int5; int i,s=1; for(i=0;i5;i+) di=i+1; for(i=0;i5;i+) s*=di; coutsendl; 运行结果:写出函数功能练习: 1bool WB(int a, int n, int x) for(int i=0;in;i+) if(ai=x) return true; return false; 函数功能: 2int LJ(int a, int n) int k=0; for(int i=1;iak) k=i; return ak; 函数功能: 3假定结构类型DNode中的data域为结点值域,next域为结点指针域。 void QB(DNode *f) /f指向单链表的表头结点 if(f=NULL)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论