第七章测试1.
下列各函数首部中,正确的是( )。
A:void play(var :Integer, var b:Integer) B:void play(int a, int b) C:Sub play(a as integer, b as integer) D:void play(int a, b)
答案:B
2.
在C语言中,函数值类型的定义可以是默认类型,此时函数值的默认类型是( )。
A:int B:float C:void D:double 3.
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )。
A:传递方式由用户指定 B:地址传递 C:由实参传给形参,再由形参传回实参 D:单向值传递 4.
在C语言程序中,有关函数的叙述正确的有( )。
A:函数的定义和调用均可以嵌套 B:函数的定义可以嵌套,但函数的调用不可以嵌套 C:函数的定义不可以嵌套,但函数的调用可以嵌套 D:函数的定义和调用均不可以嵌套 5.
以下叙述中不正确的是( )。
A:函数中的形式参数是局部变量 B:在一个函数内的复合语句中定义的变量在本函数范围内有效 C:在不同的函数中可以使用相同名字的变量 D:在一个函数内定义的变量只在本函数范围内有效 6.
有如下函数调用语句:
func(recl, rec2+rec3, (rec4,rec5));
该函数调用语句中,含有的实参个数是( )。
A:5
B:3 C:4 D:有语法错误 7.
以下叙述中正确的是( )。
A:全局变量的作用域一定比局部变量的作用域范围大 B:未在定义语句中赋初值的auto变量和static变量的初值都是随机值 C:静态(static)类别变量的生存期贯穿于整个程序的运行期间 D:函数的形参都属于全局变量 8.
以下程序的运行结果是( )。
#include "stdio.h"
main( )
{ int a=24,b=16,c;
c=abc(a,b);
printf("%d",c);
}
int abc(int u,int v)
{
int w;
while(v)
{ w=u%v;u=v;v=w; }
return u;
}
A:8 B:9 C:6 D:7 9.
以下程序的运行结果是( )。
#include "stdio.h"
int f1(int x,int y)
{ return x>y? x : y; }
int f2(int x,int y)
{ return x>y? y :x ; }
main( )
{
int a=4,b=3,c=5,d,e,f;
d=f1(a,b); d=f1(d,c);
e=f2(a,b); e=f2(e,c);
f=a+b+c-d-e;
printf("%d,%d,%d",d,f,e);
}
A:5,4,3 B:3,5,4 C:5,3,4 D:3,4,5 10.
以下程序的运行结果是( )。
#include "stdio.h"
void f(int x,int y)
{ int t;
if(x<y){ t=x; x=y; y=t; }
}
main( )
{ int a=5,b=6,c=7;
f(a,b); f(a,c); f(b,c);
printf("%d,%d,%d",a,b,c);
}
A:7,5,6 B:7,6,5 C:5,7,6 D:5,6,7 11.
以下程序的运行结果是( )。
#include "stdio.h"
int f( )
{
static int i=0;
int s=1;
s+=i; i++;
return s;
}
main( )
{
int i,a=0;
for(i=0;i<5;i++) a+=f( );
printf("%d",a);
}
A:20 B:24 C:15 D:25 12.
以下程序的运行结果是( )。
#include "stdio.h"
int func(int a,int b)
{return(a+b);}
main( )
{
int x=2,y=5,z=7,r;
r=func(func(x,y),z);
printf("%d",r);
}
A:14 B:12 C:15 D:13 13.
以下程序的运行结果是( )。
#include "stdio.h"
f(int a)
{
int b=0;
static int c = 3;
b++; c++;
return(a+b+c);
}
main( )
{
int a=2,i;
for(i=0;i<3;i++) printf("%4d",f(a));
}
A:7 8 9 B: 7 7 7 C:7 9 11 D:7 10 13 14.
以下程序的运行结果是( )。
#include "stdio.h"
int a, b;
void fun( )
{ a=100; b=200; }
main( )
{
int a=5, b=7;
fun( );
printf("%d %d ", a,b);
}
A:5 7 B:100 200 C:7 5 D:200 100 15.
以下程序的运行结果是( )。
#include "stdio.h"
int x=3;
main( )
{ int i;
void nore( );
for(i=1;i<x;i++) nore( );
}
void nore( )
{ static int x=1;
x*=x+1;
printf("%d ",x);
}
A:2 5 B:2 2 C:3 3 D:2 6 16.
以下程序执行后的输出结果是( )。
#include "stdio.h"
void swap (int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
}
main( )
{ int b[2]={7,8};
swap(b[0],b[1]);
printf("%d %d",b[0],b[1]);
}
A:7 8 B:8 7 C:7 7 D:8 8 17.
以下程序执行后的输出结果是( )。
#include "stdio.h"
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{
printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{
printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main( )
{
int i=0;
func1(i);
printf("");
}
A:hel B:hlo C:Hlm D:hello 18.
以下函数值的类型是( )。
fun(double x)
{
double y;
y=3*x-4;
return y;
}
A:double B:void C:不确定 D:int 19.
下面程序的输出结果是()。
#include "stdio.h"
int m=6;
int fun( int x, int y)
{
int m=3;
return( x*y-m);
}
main( )
{
int a=9, b=8;
printf("%d", fun(a, b)/m);
}
A:24 B:32 C:12
D:11 20.
若有以下程序,执行后输出结果是( )。
#include "stdio.h"
int f(int x, int y)
{return ((y-x)*x);}
main()
{ int a=3, b=4, c=5, d;
d=f(f(3, 4), f(3, 5));
printf("%d", d);
}
A:8
B:9 C:10 D:11