C++ 基础学习笔记(2)---函数(测试题)

2014-11-24 13:01:21 · 作者: · 浏览: 0

一、选择题

1、 以下函数调用语句中的实参个数为( D )。

excc((vl,v2),(v3,v4,v5),v6);

(A)3 (B)4 (C)5 (D)6

2、 在C/C++程序中,( A )。 (A)函数的定义可以嵌套,但函数的调用不可以嵌套

(B)函数的定义不可以嵌套,但函数的调用可以嵌套

(C)函数的定义和函数的调用均不可以嵌套

(D)函数的定义和函数的调用均可以嵌套

3、 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( D )。

(A)函数调用可以作为独立的语句存在 (B)函数调用可以作为一个函数的实参

(C)函数调用可以出现在表达式中 (D)函数调用可以作为一个函数的形参

4、 若有以下调用语句,则不正确的fun0函数的首部是( B )。 void main( )

{ …

int a[50],n;

fun(n,&a[9]);

}

(A) void fun(int m,int x[]) (B) void fun(int s, int h[41])

(C) void fun(int p,int *s) (D) void fun(int n, int a)

5、 以下函数的功能是( C )。

fun(char *p2, char *pl)

{

while((*p2=*pl)!=’’)

{p1++;p2++;}

}

(A)将pl所指字符串复制到p2所指内存空间

(B)将pl所指字符串的地址赋给指针p2

(C)对pl和p2两个指针所指字符串进行比较

(D)检查pl和p2两个指针所指字符串中是否有

二、读程序分析程序的运行结果

6、 以下程序的输出结果是( B )。

float fun(int x,int y)

{ return (x+y); }

int main()

{

int a=2,b=5,c=8;

printf("%3.0f " ,fun((int)fun(a+c,b),a-c));

}

(A)编译出错 (B)9 (C) 21 (D)9.0

7、 以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序,程序运行后的输出结果是( C )。

void sort(int a[],int n)

{

int i,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]

{t=a[i];a[i]=a[j];a[j]=t;}

}

int main()

{

int a[10]={1,2,3,4,5,6,7,8,9,10},i;

sort(&a[3],5);

for(i=0;i<10;i++)

printf("%d,",a[i]);

printf(" ");

}

(A)1,2,3,4,5,6,7,8,9,10 (B)10,9,8,7,6,5,4,3,2,1 (C)1,2,3,8,7,6,5,4,9,10 (D)8,7,6,5,4,3,2,1,9,10

四、读程序回答问题

8、 以下程序段的输出结果是( 4321 )。

int si(int *s1,int y)

{

static int i1=3;

y=s1[i1];

i1--;

return(y);

}

int main()

{

int s[ ]={1,2,3,4},i,x=0;

for(i=0;i<4;i++)

{

x=si(s,x);

printf("%d",x);

}

printf(" ");

}

9、 下列程序的执行结果是( 5 10 17 32 15 38 )。

void fun(int *s, int n1, int n2)

{

int i=n1,j=n2;

while(i

{

*(s+i)+=*(s+j); *(s+j)+=*(s+i);

i++;j--;

}

}

int main()

{

int a[6]={1,2,3,4,5,6},i,*p=a;

fun(p,0,3);

fun(p,1,4);

fun(p,3,5);

for(i=0;i<6;i++)

printf("%d ",*(a+i));

printf(" ");

}

10、 已知函数isaplha(ch)的功能是判断自变量ch是否是字母;若是,该函数返回数值1,否则返回0。下面程序的输出是( Itis )。

#include

void fun4(char str[])

{

int i,j;

for(i=0,j=0;str[i];i++)

if(isalpha(str[i]))str[j++]=str[i];

str[j]=;

}

int main()

{

char ss[80]="lt is!";

fun4(ss);

printf("%s ",ss);

}

11、 下面程序的输出结果是( 12 )。

unsigned fun6(unsigned num)

{

unsigned k=1;

do {

k*=num%10;

num/=10;

}while(num);

return(k);

}

int main()

{

unsigned n=26;

printf("%d ",fun6(n));

}

12、下面程序的输出结果是( 9 )。

long fun5(int n)

{

long s;

if((n==1)||(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

int main()

{

long x;

x=fun5(4);

printf("%ld ",x);

}

13、下面的程序完成的功能是( 将一维数组按升序排列 )。

#define SIZE 5

void func (int data [SIZE]);

int main()

{

int i,buf[SIZE];

printf("please input %d numbers: ", SIZE);

for(i=0;i

scanf("%d",&buf[i]);

func(buf);

for(i=0;i

printf("%5d",buf[i]);

}

void func (int data [SIZE])

{

&