收藏 分销(赏)

2024年广播电视大学电大C语言程序设计期末复习资料本.doc

上传人:快乐****生活 文档编号:8106730 上传时间:2025-02-04 格式:DOC 页数:17 大小:42.04KB 下载积分:8 金币
下载 相关 举报
2024年广播电视大学电大C语言程序设计期末复习资料本.doc_第1页
第1页 / 共17页
2024年广播电视大学电大C语言程序设计期末复习资料本.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
C++语言程序设计复习题 一、单项选择题 1. 在定义函数的格式类型修饰符 函数名 (形式参数表)函数体;中,函数体能够是( )。 A、基本语句 B、复合语句 C、空语句 D、语句序列 2.A>B&&A<=B的值( )。 A、为true B、为false C、与A>B 的值相同 D、与A<=B的值相同 3.每一个实在参数就是一个( )。 A、体现式 B、常量 C、变量 D、函数调用 4. 假定AB为一个类,则该类的拷贝结构函数的申明语句为________。 A AB&(AB x); B AB(AB x) C AB(AB &x); D AB(AB* x) 5. 对于结构中定义的组员,其隐含访问权限为________。 A public B protected C private D static 6.当使用fstream流类定义一个流对象并打开一个磁盘文献时,文献的隐含打开方 式为________。 A ios::in B ios::out C ios::in | ios::out D 没有 7.在PC机中运行的C++ 语言程序,char类型的数据占    字节。 A、1 B、2 C、3 D、4 8.指出下列哪种基本类型是错误的 B 。 A、float B、integer C、char D、long 9.若a,b,c均为整型变量,则体现式a=2,b=a+2,c=0的值为    。 A、不定 B、2 C、4 D、0 10.设char t=’A’;则体现式5+0.6+t值的数据类型为    。 A、int B、float C、不确定 D、double 11.如下    为不正确的if语句。 A、if (x>y); B、if (x= =y) x+y; C、if (x! = y) cin>>x else cin>>y; D、if(x<y) {x++;y++;} 12.指向数组元素为整型的一维数组的指针变量的定义是    。 A、int *p( ) B、int (*p)( ) C、int *p[4] D、int (*p)[4] 13.如下有关switch语句和break语句的描述中不正确的是     。 A、 break语句不能用于循环语句和switch语句外的任何其他语句 B、 switch语句中使用break语句或continue语句的作用相同 C、 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 D、 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行。 14.下列有关函数定义的说法,正确的是    。 A、函数定义时,能够嵌套 B、函数定义不能够嵌套,但能够嵌套调用 C、主函数main()内能够定义函数 D、函数定义能够嵌套,调用也能够嵌套。 15.若有如下阐明语句 int a[3][4]={2,3,4,5,3,4,5,6,4,5,6,7}; 则正确对数组元素引用为    。 A、*(a+1) B、*(a[3]+2) C、a[1]+3 D、a[0][0] 16.若定义如下的共同体类型变量x,则x所占用的内存字节数为    (以IBM PC机为例) union data { int i; char ch; double f; }x; A、7 B、11 C、8 D、10 二、填空题 1.应用程序TEST.CPP中只有一个函数,这个函数的名称是 main 。 2.5|6,5&6和5^6的值分别是 7 , 4 和 3 。 3.不借助于其他变量互换x和y两个变量的值,应次序执行的三个赋值语句是 x=x+y , y=x-y 和 x=x-y 。 4.下面的语句显示输出8行8列数组h的主对角线上的所有元素,请补充完整: for( i=0 ; i<8 ;i++)cout<< h[i][i] <<' ' ; 5.若一函数是以return;结束运行的,阐明该函数是 无参 函数。 6.若正常执行了如下语句: int m[20],*p1=&m[5],*p2=m+17,n; n=p2-p1; 则n的值为 12 。 7.已知' A'一'Z'的ASCII码为65—90,当执行"char ch=14*5+2;cout<<ch<<endl;"语句序列后,得到的输出成果为 H 。 8.float和double类型的长度分别为 4 和 8 。 9.体现式x=x+l表示成增量体现式为 x++ 。 10.假定p所指对象的值为36,p+l所指对象的值为49,则*++p的值为 49 。 11.假定要访问一个结构对象x中的由a指针组员所指向的对象,则表示措施为 *(x.a) 。 12.对一个类中的数据组员的初始化能够通过结构函数中的 初始化表 实现,也能够通过结构函数中的 函数体 实现。 13.在C++程序中,语句之间必须用 ; 分隔。 14.在C++程序中, = 运算符优先级最低。 15.在C++语言中,在IBM PC机环境下,double型数据占 8 字节。 16.若k 为int型变量,则下列语句的输出为 16 。 k=017; cout<<++k; 17.体现式 b*b-4*a*c>0 是判断一元二次方式ax2+bx+c=0有实根的体现式。 18.体现式(b=10)&&(c=0)的值为 0 。 19.已知a的ASCII的十进制代码为97,则体现式10+15.2-27*(‘a’-‘b’)的值为 52.2 。 20.在C++语言中,& 作为双目运算符时表示的是 按位与 ,而作为单目运算时表示的是 引用 。 21.一个函数由函数 名 和函数 体 两部分组成。 22.C++在执行过程中不检查数组是否 越界 。 23.C++语言要求,调用一个函数时,实参数变量与形参数变量之间的数据传递是 。 24.指针变量的指针是 地址 。 25.结构体变量中的组员的引用一般形式:结构变量名.组员名 。 26.写出满足A>B则把A+B赋给M的if语句 if(A>B) M=A+B 。 27.写出指向int型变量的指针变量p的一个定义语句: int *p 。 三、给出下列程序运行后的输出成果 1.#include<iostream.h> void SB(char ch) { switch(ch) { case 'A': case 'a': cout<<"well !"; break; case 'B': case 'b': cout<<"good !"; break; case 'C': case 'c': cout<<"pass ! "; break; default: cout<<"bad! "; break; } cout<<endl; } void main() { char a[6] ="Abcaf"; for(int i=0; a[i]; i++) SB(a[i]); } 答案: well ! good ! pass ! well ! bad! 2.#include<iostream.h> void main() { int a[10]= {36,25,48,14,55,40,72,40,86,27}; int b1, b2; b1 = b2 = a[0]; for(int i= 1;i<10;i++) if(a[i]>b1) { if(b1>b2) b2=b1; b1 = a[i]; } cout<<b1<<' '<<b2<<endl; } 答案:86 72 3.#include<iomanip.h> void main() { int a[8]= {3,5,7,9,11,13,15,17}; int *p=a; for(int i=0;i<8;i++) { *p+=10; cout<<setw(5)<< *p++; if ((i+1) %3==0) cout<<endl; } } 答案: 13 15 27 19 21 23 25 27 4. #include<iomanip.h> void LE(int* a, int* b) { int x=*a; *a=*b; *b=x; cout<<*a<<' '<<*b<<endl; } void main() { int x=10, y=25; LE(&x,&y); cout<<x<<' '<<y<<endl; } 答案: 25 10 25 10 5. #include<iostream.h> class A { int a,b; public: A() {a=b=0;} A(int aa, int bb) { a=aa; b=bb; cout<<a<<' '<<b<<endl; } }; void main() { A x,y(2,3),z(4,5); } 答案:(下面是四个数,中间有空格) 2 3 4 5 6.#include<iostream.h> void main() {int m=3,x=4,y=4,z=7; m=(m<x)?x++: m; m=(m<y)?y++: m; m=(m<z)?z++: m; cout>>“m=”>>m>>endl>>”x=”>>x>>endl>>”y=”>>y>>endl>>”z=”>>z; } 程序运行后的输出成果为: 答案: m=7 x=5 y=4 z=8 7.#include<iostream.h> void sort(int x,int y,int z) { int t; if (x>y) {t=x;x=y;y=t;} if(x>z) {t=x;x=z;z=t;} if(y>z) {t=y;y=z;z=t;} cout>>“x=”>>x>>’ ‘>>”y=”>>y>>’ ‘>>”z=”>>z; } void main() { int a,b,c; cin>>a>>b>>c; cout>>“a=”>>a>>’ ‘>>”b=”>>b>>’ ‘>>”c=”>>c; sort(a,b,c); cout>>“a=”>>a>>’ ‘>>”b=”>>b>>’ ‘>>”c=”>>c; } 假设输入为:10 6 8<CR>则程序运行后的输出成果为: 参考答案: a=10 b=6 c=8x=6 y=8 z=10a=10 b=6 c=8 8. #include<iostream.h> void prn str(char *str,int m,int n) { int i; for (i=1;i<m;i++) { cout>>“*”; str++; } for (i=1;(i<=n)&&(*str);i++) court>>*str++; while(*str) { cout>>“*”; str++; } cout>>endl; } void main() { char *p=“information”; prn str(p,3,4); } 程序运行后的输出成果为: 答案: **form***** 四、写出下列每个函数的功效 1. int Count(double a[], int n) { double m=0; int i; for(i=0;i<n;i++) m+=a[i]; m=m/n; int c=0; for(i=0;i<n;i++) if(a[i]>=m) c++; return c; } 答案:计算并返回参数数组中不小于等于参数数组中所有元素平均值的元素个数 2. long fact(long n){ if (n<=1L) return 1L; return n*fact(n-1L); } 答案:通过函数递归调用,计算并返回参数n的阶乘 3. #include<iostream.h> void WA(int a[], int n) { for(int i=0;i<n-1;i++) { int k=i; for(int j=i+1;j<n;j++) if(a[j]<a[k]) k=j; int x=a[i]; a[i]=a[k]; a[k]=x; } } 答案:对参数数组中的元素进行升序排序 4.#include<iomanip.h> #include<fstream.h> void JB(char* fname) //可把以fname所指字符串作为文献标识符的文献称为fname文献, //假定该文献中保存着一批字符串,每个字符串的长度均小于20。 { ifstream fin(fname); char a[20]; int i=0; while(fin>>a) { cout<<a<<endl; i++; } fin.close(); cout<<"i="<<i<<endl; } 答案:依次把参数fname所指的文献中字符输入到字符串数组a中,并输出文献中字符个数 五、编程题 1.设计一程序,它输入一个整数,判断它是否是整数序列32,52,31,86,3,44,11,7,55,63中的一个;若是,显示该整数在序列中的序号(注:最小序号是1),否则显示0。 答案: #include<iostream.h> int getno(int val) { int a[]={32,52,31,86,3,44,11,7,55,63}; for(int i=0;i<10;i++) if(val==a[i]) return(i+1); return(0); } void main() { int val; cin>>val; cout<<getno(val); } 2.编写一个程序,统计输入的一行字符中数字、空格及其他字符分别有多少个。 答案: #include<iostream.h> void main() { int i,eng=0,numb=0,blan=0,others=0; char a[100]; cin.getline(a,100); for(i=0;a[i];i++) { if(a[i]<57&&a[i]>48) numb++; else if(a[i]==32) blan++; else if((a[i]>65&&a[i]<90)||(a[i]>97&&a[i]<97+25)) eng++; else others++; } cout<<"eng="<<eng<<endl<<"numb="<<numb<<endl; cout<<"blan="<<blan<<endl<<"others="<<others<<endl; } 3.有8个学生,每个学生四门课程的成绩存储在一个8行5列的二维数组的0到7行的1到4列中,编写一个函数实现:计算每个学生四门课程的总成绩,并存储在该学生所在行的第0列中。 答案: #include<iostream.h> void main() { int i,j; int a[8][5]={{0}}; for(i=0;i<8;i++) for(j=1;j<5;j++) cin>>a[i][j]; //输入学生成绩 for(i=0;i<8;i++) for(j=1;j<5;j++) a[i][0]+=a[i][j]; //求学生四门课程总成绩 }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服