1、一、 单项选择题1. 编写 C+程序一般需经过的几个步骤依次是()A. 编辑、调试、编译、连接B. 编辑、编译、连接、运行C. 编译、调试、编辑、连接D. 编译、编辑、连接、运行答案:B2. 设有定义 int i;double j5;,则10+i+j值的数据类型是()A. intB. doubleC. floatD. 不确定答案:B3. 有关 C+编译指令,以下叙述正确的是()A. C+每行可以写多条编译指令B. #include指令中的文件名可含有路径信息C. C+的编译指令可以以#或/开始D. C+中不管if后的常量表达式是否为真,该部分都需要编译答案:B4. 在下列成对的表达式中,运算结
2、果类型相同的一对是()A. 7.02.0和7.02B. 52.0和52C. 7.02和72D. 82和6.02.0答案:A5. 在C+ 中不返回任何类型的函数应该说明为()A. intB. charC. voidD. double答案:C6. 决定 C+语言中函数的返回值类型的是()A. return语句中的表达式类型B. 调用该函数时系统随机产生的类型C. 调用该函数时的主调用函数类型D. 在定义该函数时所指定的数据类型答案:D7. 在C+ 中,函数原型不能标识()A. 函数的返回类型B. 函数参数的个数C. 函数参数类型D. 函数的功能答案:D8. 在int a=3,int *p=A. 声
3、明变量 p,其中*表示p 是一个指针变量B. 变量 p经初始化,获得变量a的地址C. 变量 p只可以指向一个整型变量D. 变量 p的值为 100答案:D17. C+对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D183.可替换#define PI 3.1415926的语句是( )A. float PI 3.1415926; B. const float PI=3.1415926;C. const PI(3.1415926);D. const 3.141
4、5926;答案:B19如果一个函数没有返回值,则应选择下列说明符中的( )。A. double B. void C. int D. char答案:B208.下列哪种默认参数的声明是不正确的(C)A. int max(int a,int b,int c,int d=0);B. int max(int a,int b,int c=0,int d=0);C. int max(int a=0,int b,int c=0,int d=0);D. int max(int a,int b=0,int c=0,int d=0);21包含哪种语句的函数不能声明为内联函数(A)A.循环 B.变量自增自减 C.if
5、.else D.变量声明22已知:const char *ptr ; 那么ptr 应该是( A )。A、 指向字符串常量的指针B、 指向字符串的常量指针C、 指向字符的常量的指针D、 指向字符常量的指针2311、在C+中,关于下列设置参数默认值的描述中,正确的是( C ). A. 不允许设置参数的默认值 B.设置参数默认值只能在定义函数时设置 C.设置参数默认值时,应该是先设置右边的再设置左边的 D.设置参数默认值时,应该全部参数都设置 二、 填空题1. 开发一个 C+语言程序的步骤通常包括编辑、 _、连接、运行和调试。答案:编译2. 假设 int a=1,b=2;则表达式 (+a/b)*b-
6、的值为_。答案:23. 下面程序的输出结果为_ 。#include void main()int num=2,i=6;doi-;num+;while(-i);cout7. C+程序的源文件扩展名为_。答案:cpp8. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是_的头文件。答案:自定义9. C+语言中如果调用函数时,需要改变实参或者返回多个值,应该采取_方式。答案:传地址或引用10. 若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_语句。答案:声明11. 在C+中有两种参数传递方式:传值和_。答案:传引用或地址12. 在函数前面用_保留字修饰时,则表
7、示该函数表为内联函数。答案:inline13. C+是通过引用运算符 _来定义一个引用的。答案:17使用new为int数组动态分配10个存储空间是_。答案:new int10;18在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句_。答案:int *ip=new int10;19 8. C+中语句const char * const p=“hello”;所定义的指针p和它所指的内容都不能被_。答案:修改20 如果要把PI声明为值为3.14159类型为双精度实数的符号常量,该声明语句是_。答案:const double PI(3.14159);或者const
8、double PI3.14159;21面向对象程序设计的3个主要性质是:_、继承、_。答案:封装,多态22使用cin和cout进行输入输出操作的程序必须包含头文件_答案:iostream.h三、改错题1. #include void main()int i,*p;i=10;*p=i;coutvoid swap(int b=a-b;a=a-b;void main()int a=19,b=15;cout#include void area()double a,b,c;coutc_coutabc;,double s=sqrt(l*(l-a)*(l-b)*(l-c);解析输入三个边的长度,由公式得出三
9、角形的面积double s=sqrt(l*(l-a)*(l-b)*(l-c);2. 下面是一个输入半径,输出其面积和周长的C+程序,在下划线处填上正确的语句。#include _;_;void main()double rad;coutrad;double l=2.0*pi*rad;double s=pi*rad*rad;coutvoid main()char a;_;cina;if(_)a=a+i;cout=A _;cout#include double area(double a,double b,double c)if(_)return -1;elsedouble ar,l;l=(a+b
10、+c)/2;ar=sqrt(l*(l-a)*(l-b)*(l-c);return ar;void main()double i=0,j=0,k=0;coutijk;double s=area(i,j,k);if(sc|a+cb|b+ca,coutusing namespace std;void info(char *name,int age) coutusing namespace std;void test () int x=10; / 动态变量x static int y=10; / 静态变量y cout1) . #include using namespace std;void main
11、()float x,y;coutx;if(x=-1void main()float x,y; /运算数char oper; /运算符coutxopery;switch(oper)case +: coutusing namespace std;void main()int i=1,sum=0;while(iusing namespace std;void main()int i=1,sum=0;dosum+=i;i+=2;while(iusing namespace std;void main()int i,sum;sum=0;for(i=1;iusing namespace std;void
12、main()int n,k;coutn;coutusing namespace std;char up (char c)if(c = 97 cout#include double power(double a, int b)int i;double result = 1.0;for(i=0;ir;coutn;cout#include using namespace std;int fac(int n) /计算一个整数绝对值的阶乘 int i,f=1;n=abs(n);for(i=1;ixy;c1=fac(x); /调用函数 fac,求 x 绝对值的阶乘c2=fac(y); /调用函数 fac,
13、求 y 绝对值的阶乘coutusing namespace std;void swap(int x,int y) int temp;temp=x; x=y; y=temp; coutusing namespace std;swap(int *p1,int *p2) int temp; temp=*p1; *p1=*p2; *p2=temp; int main( ) int a=10,b=20;int *pa=swap(pa, cout using namespace std; void sort(int if(ba) m=a; a=b; b=m; if(ca) m=a; a=c; c=m; i
14、f(cb) m=c; c=b; b=m; int main( ) int a, b, c, ma ; coutabc; sort(a,b,c);coutusing namespace std;int max(int *x,int *y,int *z); /函数声明 int main( ) int a,b,c;cinabc;cout*m) *m=*y;if(*z*m) *m=*z;return(*m);10. 编写一个求方程 ax2 + bx + c = 0 的根 的程序,用 3 个函数分别求当 b2-4ac 大于零、等于零、和小于零时的方程的根。要求从主函数输入 a,b,c 的值并输出结果。#
15、include #include void equation_1 (int a, int b, int c)double x1, x2, temp;temp = b*b - 4 * a * c;x1 = (-b + sqrt(temp) ) / (2 * a * 1.0);x2 = (-b - sqrt(temp) ) / (2 * a * 1.0);coutabc;cout 0)equation_1 (a, b, c);if(temp = 0)equation_2 (a, b, c);if(temp using namespace std;inline double CalArea(doub
16、le radius) return 3.14*radius*radius;void main()double area ,r(2.0); /r 是圆的半径area=CalArea(r); cout using namespace std; int max(int a, int b, int c=0) if(ba) a=b; if(ca) a=c; return a; int main( ) int a,b,c; cinabc; cout using namespace std; int max(int a, int b) /函数定义 if(ba) return b; else return a;int max(int a, int b, int c) /函数定义 if(ba) a=b; if(ca) a=c; return a; int main( ) int a,b,c; cinabc; cout“max(a,b,c)=“max(a,b,c)endl; /输出 3 个数中的最大者 cout“max(a,b)=“max(a,b)endl; /输出 2 个数中的最大者 return 0;