最新广播电视大学(电大)期末考试 C++语言程序设计课程重点考试小抄整理打印版
一、单选题(每小题2分,共20分)
1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为( A )。 A. main B. MAIN C. name D. function 2.设x和y均为bool量,则x && y为真的条件是( D )。 A. 其中一个为假 B. 其中一个为真 C. 它们均为假 D. 它们均为真 3. 逻辑表达式x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5
4. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大( C )个字节。
A. 1 B. 2 C. 4 D. 8 5. 枚举类型中的每个枚举常量的值都是一个( A )。
A. 整数 B. 浮点数 C. 字符 D. 逻辑值 6. 循环体至少被执行一次的语句为( C )语句。
A. for循环 B. while循环 C. do循环 D. 任一种循环 7. 在下面的字符数组定义中,( D )语句有语法错误。 A. char a[20]=”abcdefg”; B. char a[]=”x+y=55.”; C. char a[15]={’1’,’2’}; D. char a[10]=’5’; 8. 若用数组名作为函数调用的实参,传递给形参的是( A )。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组全部元素的值 D. 数组元素的个数
9.假定AB为一个类,则执行“AB a(4), b[5], *p[2];”语句时,自动调用该类构造函数的次数为( A )。 A. 6 B. 7 C. 9 D. 11
10.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为( D )。 A. ios::in B. ios::out C. ios::in | ios::out D. 没有 二、填空题(每小题2分,共20分)
1. 若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字__ const __。
xy2?4b?1对应的C++表达式为_(x*y*y)/(3*a)+4*b-1 _。 2. 算术表达式3a 3. 逻辑表达式x>y && x!=10的相反表达式为__ x<=y || x==10__。 4. 每个字符指针变量占用内存__4____个字节。
5. 执行“typedef int DataType;”语句后,在使用int定义整型变量的地方都可以使用标识符___ DataType _______来定义整型变量。
6. 对于在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它赋予的初值为___0_____。 7.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++);”语句后,p所指对象的值为___46_____。
8.假定一个结构类型的定义为“struct A{int a; double* b; A* c;};”,则该类型的大小为____12___字节。
9.假定一维数组的定义为“int a[8];”,则该数组所含元素的个数为_____8___。
10. 若while循环语句的开始为”while(i++<=10)”,若i的初值为0,同时在循环体中不会修改i的值,则其循环体将被重复执行____11______次后正常结束。
三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include
for(int i=1; i<=6; i++) {s1+=i; s2*=i;} cout< 输出结果:21,720 2. #include int a[10]={68,79,86,65,46,94,37,78,60,53}; int c=0; for(int i=0;i<10;i++) if(a[i]>=60) c++; cout<<”c=”< 输出结果:c=7 3. #include int a[3][4]={{1,2,7,8},{5,6,11,15},{9,20,3,4}}; int m=a[0][0]; for(int i=0;i<3;i++) for(int j=0;j<4;j++) if(a[i][j]>m) m=a[i][j]; cout< 输出结果:20 4. #include cout< cout< 输出结果:10 15 30 50 30 15 5. #include int a[8]={6,19,4,12,20,5,18,25}; int* p=a; for(p=a; p if(*p<10) cout<<*p<<’ ‘; cout< 输出结果:6 4 5 四、写出下列每个函数的功能(每小题8分,共24分) 1. bool WB(int a[], int n, int x) { for(int i=0;i 函数功能:从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。 2. int LJ(int a[], int n) { int k=0; for(int i=1;i 函数功能:求出数组a中n个元素的最大值并返回。 3. 假定结构类型Dnode中的data域为结点值域,next域为结点指针域。 DNode* QB(int n) { if(n==0) {return NULL;} DNode* f=new DNode; cin>>f->data; DNode* p=f; while(--n) { p=p->next=new DNode; cin>>p->data; } p->next=NULL; return f; 函数功能:建立一个具有n个结点的链表,每个结点的值依次由键盘输入,该函数返回其表头指针。 五、按题目要求编写程序(6分) 已知6≤a≤30、15≤b≤36,求出满足不定方程2a+5b=126的全部整数组解。如(13,20)就是其中的一组解,并按此格式输出每组解。 答: #include int a,b; for(a=6;a<=30; a++) for(b=15;b<=36;b++) if(2*a+5*b==126) cout<<'('< } 训练第二套 一、单选题(每小题2分,共20分) 1. 枚举类型中的每个枚举常量的值都是一个( A )值。 A. 整数 B. 浮点数 C. 字符 D. 逻辑 2.设x和y均为bool量,则逻辑表达式x || y为假的条件是( C )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 3. 声明或定义一个内联函数时,必须在函数开始使用保留字( D )。 A. static B. const C. extern D. inline 4. 在下面的函数声明中,存在着语法错误的是( D )。 A. BC(int a, int); B. BC(int, int); C. BC(int, int=5); D. BC(int x; int y); 5. 假定a为一个整型数组名,则元素a[4]与( C )的表示等价。 A. a+4 B. *a+4 C. *(a+4) D. *(a+16) 6. 下面循环语句执行结束后输出的i值为( B )的值。 for(int i=0; i 7. 将两个字符串连接起来组成一个字符串时,选用( C )函数。 A. strlen() B. strcpy() C. strcat() D. strcmp() 8. 预处理命令在程序中都是以( B )字符开头的。 A. * B. # C. & D. @ 9. 假定有定义“struct BOOK{char title[40]; float price;};”,则不正确的变量定义语句为( D )。 A. BOOK x; ; B. BOOK x={\ C. BOOK *x=new BOOK; D. BOOK x=new BOOK; 10. 假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete []px;”语句时,自动调用该类析构函数的次数为( B )。 A. 1 B. n C. n-1 D. n+1 二、填空题(每小题2分,共20分) 1.已知'A'?'Z'的ASCII码为65?90,当执行“char ch=14*4+12;cout< 2.double类型的长度为____8____。 3. 表达式x=x+1表示成增量表达式为_____++x _____。 4. 逻辑表达式a<=b || b==15的相反表达式为____a>b && b!=15____。 5. 假定一个二维数组的定义为“char* a[5][4];”,则该数组所含元素的个数为____20____,所占存储空间的字节数为___80_____。 6.当函数中的___局部____变量没有被赋初值时,它的值是不确定的。 7.假定一个结构类型的定义为“struct A{double a,b; A* c;};”,则该类型的大小为___20_____字节。 8. 假定要访问一个结构指针p所指对象中的数据成员data,则表示方法为_ p->data _。 9.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为 AB(){}_。 10. 当在程序中执行到 break 语句时,就立即结束本层循环类语句或switch语句的执行。 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include