当前位置:文档之家› 5--函数和编译预处理

5--函数和编译预处理

一、选择题1、函数调用语句int fun( ) { return 50,60; },则函数调用后返回值为()。

A、50B、60C、50,60D、编译错2、设有函数定义调用语句“f((e1,e2),(e3,e4,e5));”,则实参个数是()。

A、2B、3C、4D、53、若用下列程序f(char a){ float b=5;b+=a/b;return b;}则函数返回值的类型是()。

A、intB、charC、voidD、float4、若定义函数int f(int x) { x++; return x; }执行以下语句:int a=5; f(a)+f(a);则a的值是()。

A、5B、6C、7D、85、下列程序的运行结果是()。

fun1(int a, int b){ return fun2(a++, --b); }fun2(int a, int b){ return a/b; }void main( ){ int x=5, y=6;cout<<fun1(x,y);}A、1B、1.6C、2D、语法错6、以下程序执行后输出结果是()。

int f(int x,int y){ return (y-x)*x; }void main( ){ int a=3, b=4, c=5, d;d=f(f(a,b),f(a,c));cout<<d;}A、3B、8C、9D、67、设有宏定义和语句#define P(x, y) x/y#define PP(a,b) a*bint c=P(2+3, 2+3)+PP(2+3, 2+3);则变量C的值是()。

A、26B、17C、17.5D、318、若有定义int k=3,以k+1作为参数,对下列宏定义进行宏展开,则最终结果不为7的是()。

A、#define s(x) x*xB、#define s1(x) (x)*(x)C、#define s2(x) (x*x)D、#define s4(x) (x*(x))9、下列编译预处理指令没有语法错误的是()。

A、#define N 3=B、#inc lude “iostream.h”;C、#define PI=3.14159D、include”iostream.h”10、在下面的函数声明中,存在着语法错误的是()。

A、void A(int a, int)B、void B(int, int)C、void C(int, int=5)D、int D(int x; int y)11、在程序中,函数声明语句正确位置是()。

A、随便任何位置B、不包含在另一函数中的任何位置C、该函数使用前的任何位置D、该函数使用前的任何位置,但包含在另一函数中12、下面保留字中不能作为函数的返回类型的是()。

A、voidB、intC、newD、long13、设有函数定义F(int &i),变量定义int n=10,则下面调用正确的是()。

A、F(20)B、F(10+n)C、F(n)D、F(&n)14、在一个函数中定义的静态变量的作用域为()。

A、本程序的全部范围B、本函数的全部范围C、从定义该变量的位置开始到本文件结束D、以上说法都不正确15、对于下面几个函数函数:void f(int x) {…} //1int f(int y) {…} //2int f(int i, int j) {…} //3float k(int x) {…} //4()是重载函数。

A、4个全部B、1和4C、2和3D、3和416、以下描述正确的是()。

A、函数定义可以嵌套,函数调用也可以嵌套B、函数定义不可以嵌套,函数调用可以嵌套C、函数定义不可以嵌套,函数调用也不可以嵌套D、函数定义可以嵌套,函数调用不可以嵌套17、以下描述正确的是()。

A、调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参B、函数既可以嵌套定义,又可以递归调用C、函数必须有返回值,否则不能被调用D、函数只能调用同一个源程序文件中定义的其他函数18、以下描述正确的是()。

A、函数中,return后面一定要有表达式B、函数中,不可以有多条return语句C、函数返回值一定要通过return语句返回D、return语句是函数中不可缺少的语句19、在C++语言程序中,当调用函数时,()。

A、实参和形参各占一个独立的存储单元B、实参和形参可以共用存储单元C、可以由用户指定是否共用存储单元D、计算机系统自动确定是否共用存储单元20、有函数定义如下f(int a) { return a++; }并有定义float f=5.88; char c=”d”;则以下不合法的函数调用语句是()。

A、f(2,3);B、f(f);C、f((2,3));D、f( c);21、有函数定义f(int a, int b) { return a++;}则以下对函数f的原型说明不正确的是()。

A、f(int a, int b)B、f(int, int);C、f(int s, int y);D、f(int s, int);22、若有函数调用语句f(g(x,y),z=x+y,(x+y))中,实参的个数是()。

A、3B、4C、5D、623、关于下列叙述正确的是()。

void f(int a) {…} //1int f(int a,int b) {…} //2int f(int b) {…} //3A、1和2是重载函数B、1和3是重载函数C、都是重载函数D、都不是重载函数24、下列叙述正确的是()。

A、一个include可以用于包含一个或多个文件B、编译预处理命令必须以#开始C、使用include包含的文件一定要以.h为后缀D、程序执行时,宏展开只作替换,而不含计算过程25、下列编译预处理命令正确的是()。

A、#define MUL(int a, int b) a*bB、#include ”iostream.h”C、#define MUL(int a) a*bD、#include “iostream.h”, ”math.h”26、以下程序的输出结果是()。

#include<iostream.h>#define T(x,y) (x)<(y)?(x): (y)void main( ){ int i,j,k;i=10; j<15; k=10*T(I,j);cout<<k<<endl;}A、15B、100C、10D、15027、以下程序的运行结果是()。

#include<iostream.h>int func(int a, int b){ static int m, i=2;i+=m+1;m=i+a+b;return m;}void main( ){ int k=4, m=1, p;p=func(k,m);cout<<p<<’,’;p=func(k,m);cout<<p<<endl;}A、8,17B、8,16C、8,20D、8,8二、填空题1、若自定义函数要求返回一个值,则应在该函数体中有一条()语句;若自定义函数要求不返回值,则应在该函数定义时加一个类型符()。

2、静态整型变量的缺省初值为()。

3、函数的调用方式分为()、()、()。

4、在一个函数的定义或者声明前加上关键字()时,该函数就声明为内联函数。

5、程序第一行的结果是(),第二行的结果是()。

void fun(int x, int y){ int t;t=x; x=y; y=t;cout<<”x=”<<x<<’\t’<<”y=”<<y<<’\n’;}void main( ){ int a=4, b=5;fun(a,b);cout<<”a=”<<a<<’\t’<<”b=”<<b<<’\n’;}6、以下程序输出的第一行是(),第二行的结果是()。

#include<iostream.h>void s(int a,int &b){ int t=a; a=b; b=t; }void main( ){ int x=500, y=1000;cout<<x<<’\t’<<y<<’\n’;s(x,y);cout<<x<<’\t’<<y<<’\n’;}7、程序的输出的结果是()。

void fun( ){ static int a=0;a+=2;cout<<a<<’\n’;}void main( ){ int c;for(c=1; c<3; c++)fun( );}8、以下程序的输出的第一行是(),第三行的结果是()。

#include<iostream.h>void fn(int &x){ static int y=10;x+=y; y+=x;cout<<x<<”,”<<y<<endl;}void main( ){ int y=1;fn(y); fn(y); fn(y);}9、程序运行的结果是()。

int x=100;void main( ){ int x=200;x+=::x;{ int x=500;::x+=x;}cout<<x<<’\t’<<::x;}10、以下程序的运行结果()。

#include<iostream.h>void f1(int n){ cout<<n%10;if(n/10) f1(n/10);}void f2(int n){ int j=n%10;if(n/10) f2(n/10);cout<<j;}void main( ){ f1(1234);cout<<’\n’;f2(1234);cout<<’\n’;}11、程序运行结果是()。

int m(int a, int b);int m(int a, int b, int c);void main( ){ cout<<m(15,85,42); }int m(int a, int b){ return a; }int m(int a, int b, int c){ int t=m(a,b);return t;}12、下列程序第一行的结果是(),第二行的结果是()。

#include<iostream.h>int f(int a){ static float b=2;return b+=a/b;}void main( ){ for(int i=3; i<5; i++) cout<<f(i)<<’\n’; }13、下列程序运行后第一行至第三行分别是()、()、()。

相关主题