1以下正确的函数定义是(
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
sub2()
{ int a[MAX], i ,max;
max=5;
for(i=0; i<MAX; i++) a[i]=i;
}
sub3(int a[])
{ int i;
for(i=0; i<MAX; i++) printf("%d",a[i]);
printf("\n");
}
main()
{ sub1(); sub3(A.; sub2(); sub3(A.;
一、选择题
1.以下正确的函数定义是()。
A.double fun(int x, int y)B.double fun(int x,y)
{ z=x+y; return z ; }{ int z; return z;}
C.fun (x,y)D.double fun (int x, int y)
{ int x, y; double z ;{ double z ;
【答案】B
【说明】地址传递是在实参和形参是数组的情况下进行的。
5.C语言规定,函数返回值的类型是决定于()。
A.return语句中的表达式类型B.调用该函数时的主调函数类型
C.调用该函数时由系统临时D.在定义函数时所指定的函数类型
【答案】D
6.若用数组名作为函数调用的实参,传递给形参的是()。
A.数组的首地址B.数组中第一个元素的值
C.ifdef或ifndef或defineD.ifdef或ifndef
【答案】D
二、填空题
1.C语言函数返回类型的默认定义类型是。
【答案】整型
2.函数调用语句:fun((a,B.,(c,d,e))实参个数为。
【答案】2
3.函数的实参传递到形参有两种方式:和。
【答案】传值、传址
4.在一个函数内部调用另一个函数的调用方式称为。在一个函数内部直接或间接调用该函数成为函数的调用方式。
}
【答案】
024681012141618
024681012141618
3.若输入的值是-125,写出下面程序的运行结果。
#include <math.h>
fun(int n)
{int k,r;
for(k=2; k<=sqrt(n); k++)
{ r=n%k;
while(!r)
{ printf("%d",k); n=n/k;
1.下面add函数是求两个参数的和;判断下面程序的正误,如果错误请改正过来。
void add(int a,intb )
{int c;
c=a+b;
return(c);
}
【答案】错误
add(int a,intb )
{int c;
c=a+b;
return(c);}
2.下面函数fun的功能是:将长整型数中偶数位置上的数依次取出,构成一个新数返回,例如,当s中的数为87653142时,则返回的数为8642;判断下面程序的正误,如果错误请改正过来。
#ifdef DEBUG
printf("a=%d,b=%d,",a,b );
#endif
printf("c=%d\n",c);}
【答案】a=14,b=15,c=0
三、程序阅读题
1.写出下面程序的运行结果。
func(int a,int B.
{ static int m=0,i=2;
i+=m+1;
m=i+a+b;
C.数组中的全部元素的值D.数组元素的个数
【答案】A
7.如果在一个函数中的复合语句中定义了一个变量,则该变量()。
A.只在该复合语句中有定义B.在该函数中有定义
C.在本程序范围内有定义D.为非法变量
【答案】C
【说明】因为该变量为局部变量。
8.下面程序的输出是()。
int i=2;
printf("%d%d%d",i*=2,++i,i++);
{ int a=10,b=20,c;
c=a/b;
#ifdef DEBUG
printf("a=%d,b=%d",a,b );
#endif
printf("c=%d\n",c );}
【答案】c=0
16.下面程序的运行结果是。
#defineDEBUG
main()
{ int a=14,b=15,c;
c=a/b;
main()
{ float c,a=4.5;
c=B(a );
printf("%5.1f\n",c );}
【答案】9.0
13.以下程序的输出结果是。
#include"stdio.h"
#define F(y) 3.84+y
#define PR(A. printf("%d",(int)(A.)
#define PRINT(A. PR(A.;putchar('\n')
if((i*100+j*10+k)==(i*i*i+j*j*j+k*k*k))
return n;
return 0;
}
main()
{int n;
for(n=100; n<1000; n++)
if(n==func(n)) printf("%d",n);
}
【答案】输出100~1000之间的水仙花数
四、程序判断题
【答案】定义时赋值运行中赋值
11.下面程序的运行结果是。
#define MAX(a,b)(a>b?a:b)+1
main()
{ int j=6,k=8,f;
printf("%d\n",MAX(j,k));}
【答案】9
12.下面程序的运行结果是。
#define A 4
#define B(x) A*x/2
return (m);
}
main()
{ int k=4,m=1,p1,p2;
p1=func(k,m); p2=func(k,m);
printf("%d,%d\n",p1,p2);
}
【答案】8,17
2.写出下面程序的运行结果。
#define MAX 10
int a[MAX], i;
sub1()
{ for(i=0; i<MAX; i++) a[i]=i+i;
long fun(long s)
{long t, sl=1;
int d;
t=0;
while(s>0)
{ d=s%10;
if(d%2=0)
{ t=d*sl+t;
sl*=10;
}
s/=10;
}
return(t);
}
【答案】错误
long fun(long s)
{long t, sl=1;
int d;
t=0;
z=x+y; return z;}return z;}
【答案】D
【说明】其返回值与函数类型相符。
2.若调用一个函数,且此函数中没有return语句,则正确的说法是()。
A.该函数没有返回值B.该函数返回若干个系统默认值
C.能返回一个用户所希望的函数值D.返回一个不确定的值
【答案】A
3.以下不正确的说法是()。
int i=0;
fun1(int i)
{i=(i%i)*(i*i)/(2*i)+4;
printf("i=%d\n",i);
return(i);
}
fun2(int i)
{i=i<=2?5:0;
return(i);
}
main()
{int i=5;
fun2(i/2); printf("i=%d\n",i);
C.凡是C源程序中行首以“#”标识的控制行都是预处理指令。
D.C语言的编译预处理就是对源程序进行初步的语法检查。
【答案】B
13.C语言提供的预处理功能包括条件编译,其基本形式是:
#XXX标识符
程序段1
#else
程序段2
#endif
这里XXX可以是()。
A.define或includeB.ifdef或include
【答案】A
10.以下不正确的说法是()。
A.全局变量,静态变量的初值是在编译时指定的
B.静态变量如果没有指定初值,则其初值为0
C.局部变量如果没有指定初值,则其初值不确定
D.函数中的静态变量在函数每次调用时,都会重新设置初值
【答案】D
【说明】静态局部变量在其函数调用结束后仍然可以保留变量值。
11.以下任何情况下计算平方数时都不会引起二义性的宏定义是()。
A.#define POWER(x) x*xB.#define POWER(x) (x)*(x)
C.#define POWER(x) (x*x)D.#define POWER(x) ((x)*(x))
【答案】D
12.以下正确的叙述是()。
A.C语言的预处理功能是指完成宏替换和包含文件的调用。
B.C语言的预处理指令只能位于C源程序文件的首部。
y=1-1/2×2-1/3×3-…-1/m×m
if(n>1) printf("*");
r=n%k;
}
}
if(n!=1) printf("%d\n",n);
}
main()
{int n;
scanf("%d",&n);
printf("%d=",n);
if(n<0) printf("-");
n=fabs(n); fun(n);
}
【答案】
-5*5*5
4.写出下面程序的运行结果。
{int k; i=5;
for(k=0; k<I; k++)
num[i]=0;
for(k=0; s[k]; k++)
{ i=-1;
switch(s)
{case'a':case'A':i=0;
case'e':case'E':i=1;
case'i':case'I':i=2;
case'o':case'O':i=3;
fun2(i=i/2); printf("i=%d\n",i);
fun2(i/2); printf("i=%d\n",i);
fun1(i/2); printf("i=%d\n",i);
}
【答案】
i=5
i=2
i=2
i=4
i=2
5.写出下面程序的功能。
func(int n)
{int i,j,k;
i=n/100; j=n/10-i*10; k=n%10;
while(s<0)
{ d=s/10;
if(d%2=0)
{*t=d* sl+*t;
sl*=10;
}
s/=10;
}
return(t);
}
3.下面函数fun的功能是:统计字符串s中各元音字母(即A,E,I,O,U)的个数,(字母不分大,小写)判断下面程序的正误,如果错误请改正过来。
fun(char s[], int num[5])
Байду номын сангаасA.实参可以是常量,变量或表达式
B.形参可以是常量,变量或表达式
C.实参可以为任意类型
D.如果形参和实参的类型不一致,则以形参类型为准
【答案】B
【说明】形参只能是变量或数组。
4.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()。
A.地址传递B.值传递
C.有实参传给形参,再由形参传给实参D.由用户指定传递方式
A.8,4,2B.8,4,3C.4,4,5D.4,5,6
【答案】A
9.已知一个函数的定义如下:
double fun(int x, double y)
{}
则该函数正确的函数原型声明为()。
A.double fun (int x,double y)B.fun (int x,double y)
C.double fun (int ,double );D.fun(x,y) ;
7.C语言变量的存储类别有,,和。
【答案】自动变量和寄存器变量静态外部变量静态局部变量外部变量
8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为。
【答案】自动
9.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为。
【答案】静态全局变量
10.变量被赋初值可以分为两个阶段:即和。
{ case'a':case'A':i=1;
case'e':case'E':i=2;
case'i':case'I':i=3;
case'o':case'O':i=4;
case'u':case'U':i=5;
}
if(i>0)
num[i]++;
}
}
4.函数fun的功能是:根据整型形参m,计算如下公式的值:
main()
{ int x=2;
PRINT(F(3)*x);}
【答案】9
14.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。
main()
{ int x=2,y=3;
printf("%d\n",pow(x,y));}
【答案】#include <math.h>
15.下面程序的运行结果是。
main()
case'u':case'U':i=4;
}
if(i>=0)
num[i]++;
}
}
【答案】错误
fun(char s[], int num[5])
{int k; i=5;
for(k=1; k<=i; k++)
num[k]=0;
for(k=1; s[k]='\0'; k++)
{ i=-1;
switch(s)
【答案】嵌套调用递归
5.C语言变量按其作用域分为和;按其生存期分为和。
【答案】全局变量局部变量动态变量静态变量
6.已知函数定义:void dothat(int n,double x) {…},其函数声明的两种写法为
和。
【答案】dothat(int n,double x) {…} dothat(int,double) {…}
sub2()
{ int a[MAX], i ,max;
max=5;
for(i=0; i<MAX; i++) a[i]=i;
}
sub3(int a[])
{ int i;
for(i=0; i<MAX; i++) printf("%d",a[i]);
printf("\n");
}
main()
{ sub1(); sub3(A.; sub2(); sub3(A.;
一、选择题
1.以下正确的函数定义是()。
A.double fun(int x, int y)B.double fun(int x,y)
{ z=x+y; return z ; }{ int z; return z;}
C.fun (x,y)D.double fun (int x, int y)
{ int x, y; double z ;{ double z ;
【答案】B
【说明】地址传递是在实参和形参是数组的情况下进行的。
5.C语言规定,函数返回值的类型是决定于()。
A.return语句中的表达式类型B.调用该函数时的主调函数类型
C.调用该函数时由系统临时D.在定义函数时所指定的函数类型
【答案】D
6.若用数组名作为函数调用的实参,传递给形参的是()。
A.数组的首地址B.数组中第一个元素的值
C.ifdef或ifndef或defineD.ifdef或ifndef
【答案】D
二、填空题
1.C语言函数返回类型的默认定义类型是。
【答案】整型
2.函数调用语句:fun((a,B.,(c,d,e))实参个数为。
【答案】2
3.函数的实参传递到形参有两种方式:和。
【答案】传值、传址
4.在一个函数内部调用另一个函数的调用方式称为。在一个函数内部直接或间接调用该函数成为函数的调用方式。
}
【答案】
024681012141618
024681012141618
3.若输入的值是-125,写出下面程序的运行结果。
#include <math.h>
fun(int n)
{int k,r;
for(k=2; k<=sqrt(n); k++)
{ r=n%k;
while(!r)
{ printf("%d",k); n=n/k;
1.下面add函数是求两个参数的和;判断下面程序的正误,如果错误请改正过来。
void add(int a,intb )
{int c;
c=a+b;
return(c);
}
【答案】错误
add(int a,intb )
{int c;
c=a+b;
return(c);}
2.下面函数fun的功能是:将长整型数中偶数位置上的数依次取出,构成一个新数返回,例如,当s中的数为87653142时,则返回的数为8642;判断下面程序的正误,如果错误请改正过来。
#ifdef DEBUG
printf("a=%d,b=%d,",a,b );
#endif
printf("c=%d\n",c);}
【答案】a=14,b=15,c=0
三、程序阅读题
1.写出下面程序的运行结果。
func(int a,int B.
{ static int m=0,i=2;
i+=m+1;
m=i+a+b;
C.数组中的全部元素的值D.数组元素的个数
【答案】A
7.如果在一个函数中的复合语句中定义了一个变量,则该变量()。
A.只在该复合语句中有定义B.在该函数中有定义
C.在本程序范围内有定义D.为非法变量
【答案】C
【说明】因为该变量为局部变量。
8.下面程序的输出是()。
int i=2;
printf("%d%d%d",i*=2,++i,i++);
{ int a=10,b=20,c;
c=a/b;
#ifdef DEBUG
printf("a=%d,b=%d",a,b );
#endif
printf("c=%d\n",c );}
【答案】c=0
16.下面程序的运行结果是。
#defineDEBUG
main()
{ int a=14,b=15,c;
c=a/b;
main()
{ float c,a=4.5;
c=B(a );
printf("%5.1f\n",c );}
【答案】9.0
13.以下程序的输出结果是。
#include"stdio.h"
#define F(y) 3.84+y
#define PR(A. printf("%d",(int)(A.)
#define PRINT(A. PR(A.;putchar('\n')
if((i*100+j*10+k)==(i*i*i+j*j*j+k*k*k))
return n;
return 0;
}
main()
{int n;
for(n=100; n<1000; n++)
if(n==func(n)) printf("%d",n);
}
【答案】输出100~1000之间的水仙花数
四、程序判断题
【答案】定义时赋值运行中赋值
11.下面程序的运行结果是。
#define MAX(a,b)(a>b?a:b)+1
main()
{ int j=6,k=8,f;
printf("%d\n",MAX(j,k));}
【答案】9
12.下面程序的运行结果是。
#define A 4
#define B(x) A*x/2
return (m);
}
main()
{ int k=4,m=1,p1,p2;
p1=func(k,m); p2=func(k,m);
printf("%d,%d\n",p1,p2);
}
【答案】8,17
2.写出下面程序的运行结果。
#define MAX 10
int a[MAX], i;
sub1()
{ for(i=0; i<MAX; i++) a[i]=i+i;
long fun(long s)
{long t, sl=1;
int d;
t=0;
while(s>0)
{ d=s%10;
if(d%2=0)
{ t=d*sl+t;
sl*=10;
}
s/=10;
}
return(t);
}
【答案】错误
long fun(long s)
{long t, sl=1;
int d;
t=0;
z=x+y; return z;}return z;}
【答案】D
【说明】其返回值与函数类型相符。
2.若调用一个函数,且此函数中没有return语句,则正确的说法是()。
A.该函数没有返回值B.该函数返回若干个系统默认值
C.能返回一个用户所希望的函数值D.返回一个不确定的值
【答案】A
3.以下不正确的说法是()。
int i=0;
fun1(int i)
{i=(i%i)*(i*i)/(2*i)+4;
printf("i=%d\n",i);
return(i);
}
fun2(int i)
{i=i<=2?5:0;
return(i);
}
main()
{int i=5;
fun2(i/2); printf("i=%d\n",i);
C.凡是C源程序中行首以“#”标识的控制行都是预处理指令。
D.C语言的编译预处理就是对源程序进行初步的语法检查。
【答案】B
13.C语言提供的预处理功能包括条件编译,其基本形式是:
#XXX标识符
程序段1
#else
程序段2
#endif
这里XXX可以是()。
A.define或includeB.ifdef或include
【答案】A
10.以下不正确的说法是()。
A.全局变量,静态变量的初值是在编译时指定的
B.静态变量如果没有指定初值,则其初值为0
C.局部变量如果没有指定初值,则其初值不确定
D.函数中的静态变量在函数每次调用时,都会重新设置初值
【答案】D
【说明】静态局部变量在其函数调用结束后仍然可以保留变量值。
11.以下任何情况下计算平方数时都不会引起二义性的宏定义是()。
A.#define POWER(x) x*xB.#define POWER(x) (x)*(x)
C.#define POWER(x) (x*x)D.#define POWER(x) ((x)*(x))
【答案】D
12.以下正确的叙述是()。
A.C语言的预处理功能是指完成宏替换和包含文件的调用。
B.C语言的预处理指令只能位于C源程序文件的首部。
y=1-1/2×2-1/3×3-…-1/m×m
if(n>1) printf("*");
r=n%k;
}
}
if(n!=1) printf("%d\n",n);
}
main()
{int n;
scanf("%d",&n);
printf("%d=",n);
if(n<0) printf("-");
n=fabs(n); fun(n);
}
【答案】
-5*5*5
4.写出下面程序的运行结果。
{int k; i=5;
for(k=0; k<I; k++)
num[i]=0;
for(k=0; s[k]; k++)
{ i=-1;
switch(s)
{case'a':case'A':i=0;
case'e':case'E':i=1;
case'i':case'I':i=2;
case'o':case'O':i=3;
fun2(i=i/2); printf("i=%d\n",i);
fun2(i/2); printf("i=%d\n",i);
fun1(i/2); printf("i=%d\n",i);
}
【答案】
i=5
i=2
i=2
i=4
i=2
5.写出下面程序的功能。
func(int n)
{int i,j,k;
i=n/100; j=n/10-i*10; k=n%10;
while(s<0)
{ d=s/10;
if(d%2=0)
{*t=d* sl+*t;
sl*=10;
}
s/=10;
}
return(t);
}
3.下面函数fun的功能是:统计字符串s中各元音字母(即A,E,I,O,U)的个数,(字母不分大,小写)判断下面程序的正误,如果错误请改正过来。
fun(char s[], int num[5])
Байду номын сангаасA.实参可以是常量,变量或表达式
B.形参可以是常量,变量或表达式
C.实参可以为任意类型
D.如果形参和实参的类型不一致,则以形参类型为准
【答案】B
【说明】形参只能是变量或数组。
4.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()。
A.地址传递B.值传递
C.有实参传给形参,再由形参传给实参D.由用户指定传递方式
A.8,4,2B.8,4,3C.4,4,5D.4,5,6
【答案】A
9.已知一个函数的定义如下:
double fun(int x, double y)
{}
则该函数正确的函数原型声明为()。
A.double fun (int x,double y)B.fun (int x,double y)
C.double fun (int ,double );D.fun(x,y) ;
7.C语言变量的存储类别有,,和。
【答案】自动变量和寄存器变量静态外部变量静态局部变量外部变量
8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为。
【答案】自动
9.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为。
【答案】静态全局变量
10.变量被赋初值可以分为两个阶段:即和。
{ case'a':case'A':i=1;
case'e':case'E':i=2;
case'i':case'I':i=3;
case'o':case'O':i=4;
case'u':case'U':i=5;
}
if(i>0)
num[i]++;
}
}
4.函数fun的功能是:根据整型形参m,计算如下公式的值:
main()
{ int x=2;
PRINT(F(3)*x);}
【答案】9
14.设有以下程序,为使之正确运行,请在横线中填入应包含的命令行。
main()
{ int x=2,y=3;
printf("%d\n",pow(x,y));}
【答案】#include <math.h>
15.下面程序的运行结果是。
main()
case'u':case'U':i=4;
}
if(i>=0)
num[i]++;
}
}
【答案】错误
fun(char s[], int num[5])
{int k; i=5;
for(k=1; k<=i; k++)
num[k]=0;
for(k=1; s[k]='\0'; k++)
{ i=-1;
switch(s)
【答案】嵌套调用递归
5.C语言变量按其作用域分为和;按其生存期分为和。
【答案】全局变量局部变量动态变量静态变量
6.已知函数定义:void dothat(int n,double x) {…},其函数声明的两种写法为
和。
【答案】dothat(int n,double x) {…} dothat(int,double) {…}