文档库 最新最全的文档下载
当前位置:文档库 › C++练习题_函数

C++练习题_函数

C++练习题_函数
C++练习题_函数

1.对于无返回值的函数,必须以作为类型修饰符。对于有返回值函数,要结束函数运行必须

使用语句。

2.以下函数定义中能正确编译的是。

A.double fun(int x,int y) {double z; z=x+y; return z;}

B.double fun(int x,int y) { z=x+y; return z;}

C.double fun(int x,int y) {int x,y; double z; z=x+y; return z;}

D.double fun(int x, y) {int z=x+y; return z;}

3.下列叙述中,不正确的是

A.一个函数中可以有多个return语句

B.函数可以通过return 语句返回数据

C.必须用一个独立的语句来调用函数

D.函数main也可以带有参数

4.已知函数f的定义是“int f(int n){ n*=2;return n+1;}”,则执行“int m=5,n=3; m=f(n);”后m 的值是,实参n的值是。

5.有关函数重载的正确说法是。

A.函数名不同,但参数的个数和类型相同

B.函数名相同,但参数的个数不同或参数的类型不同

C.函数名相同,参数的个数和类型也相同

D.函数名相同,函数的返回值不同,而与函数的参数和类型无关

6.以下四组函数原型说明中,满足C++函数重载规则的是。

A.float f(float x);void f(float y);B.float f(float x);void f2(float x,float y);

C.float f(float x,int y);void f(float y);D.float f(float y);float f(float y);

7.有函数定义“void f(int a,float b){……}”,变量定义“int y,float x;int k”,则以下对函数调用中正确的是

A.f(y,x);

B.k=f(y,x);

C.void f(y,x);

D.f(int y,float x);

8.下列函数原型说明语句中错误的是

A. void p1(int x,int y)

B.double p1(int x,y);

C. float p1(x,y);

D.float p1(int x,int y);

9. 以下程序运行后输出的结果是________。

#include

int f1(int x,int y){return x>y? x:y ;}

int f2(int x,int y){return x>y? y:x ;}

void main()

{

int a=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,b),f1(c,d));

f=f1(f2(a,b),f2(c,d));

g=a+b+c+d-e-f;

cout<

}

A.4,3,7 B.3,4,7 C.5,2,7 D.2,5,7

10.下面程序的输出结果是___________。

#include

int fun(int num)

{

int k=1;

do{ k*=num%10; num/=10; }while(num);

return(k) ;

}

void main()

{ int n=26; cout<

A.0 B.4 C.12 D.无限次循环

11.以下程序运行后的输出结果是________________。

#include

void swap(int x,int y)

{ int t;t=x;x=y;y=t; cout<

void main()

{ int a=3,b=4;

swap(a,b);

cout<

}

12. 阅读以下程序:

#include

int f(void) //行A1

{ //行A2

static int a,b=10,c=1; //行A3

a+=b;b+=c;return c=a+b; //行A4

} //行A5

void main(void) //行B1

{ //行B2

cout<

cout<

} //行B5

请回答以下问题:

①以上程序中静态变量有;初值分别是,所有静态变量的作用域为。

②main函数中两次调用f函数的语句分别是行和行。

③第一次调用f函数结束后变量a的值是,b的值是,c的值是。

④第二次调用f函数结束后变量a的值是,b的值是,c的值是。

⑤A3行语句在整个程序的执行过程中共被执行了次;

⑥程序运行后输出的第一行到第二行分别是________________、________________。

13. 阅读以下程序:

#include

int x=100; //行A1

void main() //行A2

{ //行A3

int x=200; //行A4

x+=::x; //行A5

{ //行A6

int x=500; //行A7

::x+=x; //行A8

} //行A9

cout<

cout<<::x<

} //行A12

请回答以下问题:

①以上程序中全局变量是,其作用域是。

②A4行的变量x和A1行的变量x在内存中是否表示同一个单元?。

③A5行符号”::”称为运算符,表示。

④A7行的变量x和A4、A1行的变量x在内存中是否表示同一个单元?。

⑤A7行的变量所占的内存空间何时被释放?。

⑥A10行执行后将输出。

⑦A11行执行后将输出。

14.以下程序输出结果的第一行是,第二行是。

#include

int k;

void main(void)

{

k=10;

for(int i=0;i<5;i++)

{

int k;k=i+1;

cout<

}

cout<<'\n'<

}

15.以下程序输出的第一行是,第二行是。

# include

int f(int x)

{

static int u=1;

x+=x; return u*=x;

}

void main(void)

{

int x=10;

cout<

}

16.以下程序输出的第一行是,第二行是。

#include

int a=15;

void main()

{

int a=20,b=40;

{

int a=0,b=0;

for(int i=1;i<3;i++)

{

a+=i;b+=a;

}

cout<

}

cout<

}

17.下列表示引用的方法中,____________是正确的。

已知:int m=10;

A.int &x=m; B.int &y=10;

C.int &z; D.float &t=&m;

18.有以下程序:

#include

void f(int a,int &b)

{ int t= a; a=b; b=t; }

void main(void)

{

int x=10,y=20;

cout<

f(x , y); //行A

cout<

}

请回答问题:

①函数f的功能:________________________________________。

②函数f的形参a的传递方式为:______________,根据该传递方式的特点,当执行完行A后,实参x的值会不会改变?__________。

③函数f的形参b的传递方式为:______________,根据该传递方式的特点,当执行完行A后,实参y的值会不会改变?__________。

④行A可不可以写成f(x , &y); ?____________,为什么?________________________。

⑤程序的输出结果:__________________,并上机验证。

19.以下程序输出的第一行是__________,第二行是__________,第三行是__________。

#include

void fn(int &x)

{

static int y=1;

x+=y;

y+=x;

cout<

}

void main()

{

int y=1;

fn(y);

fn(y);

fn(y);

}

(完整版)c语言函数练习题附答案

函数 一、选择题 1.在c语言中以下不正确的说法是:() A.实参可以是常量、变量、或表达式 B.形参可以是常量、变量或表达式 C.实参可以为任意类型 D.形参应与其对应的实参类型一致 2.以下程序有语法性错误,有关错误原因的正确说法是:() int main() { int G=5,k; void prt_char(); …… k=prt_char(G); …… } A.语句void prt_char();有错,它是函数调用语句,不能用void说明 B.变量名不能使用大写字母 C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线 3.以下正确的说法是:() A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可嵌套 C.函数的定义和调用均不可以嵌套 D.函数的定义和调用均可以嵌套 4.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是:() A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参 5.以下所列的各函数首部中,正确的是:() A、 void play(var :Integer,var b:Integer) B、 void play(int a,b) C、 void play(int a,int b) D、 Sub play(a as integer,b as integer) 6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是:() A、地址传递 B、单向值传递 C、由实参传给形参,再由形参传回实参 D、传递方式由用户指定 7.有以下程序 void fun (int a,int b,int c) { a=456; b=567; c=678;}

C语言函数练习题及答案

1 【单选题】 在下列关于C函数定义的叙述中,正确的是A、 函数可以嵌套定义,但不可以嵌套调用; B、 函数不可以嵌套定义,但可以嵌套调用; C、 函数不可以嵌套定义,也不可以嵌套调用; D、 函数可以嵌套定义,也可以嵌套调用; 我的答案:B得分:分

2 【单选题】 下面函数调用语句含有实参的个数为nc((exp1,exp2),(exp3,exp4,exp5)); A、 1 B、 2 C、 4 D、 5

我的答案:B得分:分 3 【单选题】 C语言中函数返回值的类型是由以下哪个选项决定的A、 函数定义时指定的类型; B、 return语句中的表达式类型; C、 调用该函数时的实参的数据类型; D、 形参的数据类型;

我的答案:A得分:分 4 【单选题】 以下关于函数叙述中,错误的是 A、 函数未被调用时,系统将不为形参分配内存单元; B、 实参与形参的个数必须相等,且实参与形参的类型必须对应一致; C、 当形参是变量时,实参可以是常量、变量或表达式; D、

如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间; 我的答案:B得分:分 5 【单选题】 若函数调用时参数为基本数据类型的变量,以下叙述正确的是A、 实参与其对应的形参共享内存存储单元; B、 只有当实参与其对应的形参同名时才共享内存存储单元; C、 实参与对应的形参分别占用不同的内存存储单元;

D、 实参将数据传递给形参后,立即释放原先占用的内存存储单元; 我的答案:C得分:分 6 【单选题】 函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是 A、 实参将地址传递给形参,并释放原先占用的存储单元; B、 实参将地址传递给形参,调用结束时形参再将此地址回传给实参; C、 实参将值传递给形参,调用结束时形参再将其值回传给实参;

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言_函数习题

函数习题 1.以下函数值的类型是________。 fun(float x) { float y; y=3*x-4; return y; } A)int B)不确定 C)void D)float 正确答案:A(知识点:函数的定义) 试题分析:在函数定义时,函数名前没有函数类型,则默认函数类型为int类型。 2.有如下函数调用语句: fun(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是________。 A)3 B)4 C)5 D)有语法错 正确答案:A(知识点:函数的调用) 试题分析:在该函数调用中,含有的实参个数是3个。其中,第二个实参是rec2+rec3,是一个算术表达式,第三个实参是(rec4,rec5),是一个逗号表达式。如果实参是表达式,则首先计算表达式的结果,再将表达式的值传递给形参。 3.请在以下程序第一行的填空处填写适当内容,使程序能正确运行。________ (double,double)

main() { double x,y; scanf("%lf%lf",&x,&y); printf("%lf\n",max(x,y)); } double max(double a,double b) {return(a>b?a:b);} 正确答案:double max(知识点:函数的声明) 试题分析:当被调用的函数定义处在函数调用后且不为int类型时,在函数调用前必须对被调用函数进行声明。对函数进行声明有下列三种形式: (1)类型名函数名(类型1 形参1,类型2 形参2,…,类型n 形参n); (2)类型名函数名(类型1,类型2,…,类型n); (3)类型名函数名(); 4.以下程序的输出结果是________。 t(int x,int y,int cp,int dp) { cp=x*x+y*y; dp=x*x-y*y; } main() { int a=4,b=3,c=5,d=6; t(a,b,c,d);

C语言习题全集答案(至函数)

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是:。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. ab.c 6.下列字符串是标识符的是:。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是:。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是:。 A. ‘\2’ B. "" C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=1.422; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码

C语言函数练习题及答案.doc

【单选题】 在下列关于C函数定义的叙述中,正确的是? A、 函数可以嵌套定义,但不可以嵌套调用; B、 函数不可以嵌套定义,但可以嵌套调用; C、 函数不可以嵌套定义,也不可以嵌套调用; D、 函数可以嵌套定义,也可以嵌套调用; 我的答案:B得分:2.5分 2 【单选题】 下面函数调用语句含有实参的个数为? n c((expl z exp2)z(exp3z exp4A exp5)); A、

B、

D、 5 我的答案:B得分:2.5分 3 【单选题】 c语言中函数返回值的类型是由以下哪个选项决定的? A、 函数定义时指定的类型; B、 return语句中的表达式类型; C、 调用该两数时的实参的数据类型; D、 形参的数据类型; 我的答案:A得分:2.5分

4 【单选题】

以下关于函数叙述屮,错误的是? A、 两数未被调用时,系统将不为形参分配内存单元; B、 实参与形参的个数必须相等,TL实参与形参的类型必须对应一致; C、 当形参是变量时,实参可以是常量、变量或表达式; D、 如两数调用时,实参与形参都为变:S,则这两个变量不可能共亨同一内存空间; 我的答案:B得分:2.5分 5 【单选题】 若函数调用时参数为基本数据类型的变量,以下叙述正确的是? A、 实参与菇对应的形参共享内存存储单元; B、 只有当实参与菇对应的形参同名时才共享内存存储单元;

C、 实参与对应的形参分别占用不同的内存存储单元; 实参将数据传递给形参后,立即释放原先占用的内存存储单元; 我的答案:C得分:2.5分 6 【单选题】 函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是? A、 实参将地址传递给形参,并释放原先占用的存储单元; B、 实参将地址传递给形参,调用结束时形参再将此地址回传给实参; C、 实参将值传递给形参,调用结束时形参再将其值回传给实参; D、 实参将值传递给形参,调用结束时形参并不将其值回传给实参; 我的答案:D得分:2.5分 7 【单选题】

C语言函数部分练习题

本题序号:80 下面程序的输出结果是____。#include main( ) { int x=10; { int x=20; printf ("%d,", x); } printf("%d\n", x); } A 10,20 B 20,10 C 10,10 D 20,20 参考答案 B 本题序号:107 下面程序的输出结果是____。main() { int a=2,i; for(i=0;i<3;i++) printf("%4d",f(a)); } f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); } A 7 7 7 B 7 10 13 C 7 9 11 D 7 8 9 参考答案 D 本题序号:108 下面程序的输出结果是____。 #include try( ) { static int x=3; x++; return(x);

} main( ) { int i, x; for(i=0; i<=2; i++ ) x=try( ); printf("%d\n", x); } A 3 B 4 C 5 D 6 参考答案 D 本题序号:109 下面程序的输出结果是____。 #include main( ) { int x=1; void f1( ), f2( ); f1( ); f2(x); printf("%d\n", x); } void f1(void) { int x=3; printf("%d ", x); } void f2( x ) int x; { printf("%d ", ++x); } A 1 1 1 B 2 2 2 C 3 3 3 D 3 2 1 参考答案 D 本题序号:126 下列叙述中错误的是 A 主函数中定义的变量在整个程序中都是有效的。 B 在其它函数中定义的变量在主函数中也不能使用。

C语言函数习题及答案

第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C)实参将其值传递给形参,调用结束时形参再将其值回传给实参

C语言函数练习题2

/* 姓名:白银 日期: 描述:英尺,英寸,米,厘米之间的转换*/ #include <> float GetInch(float feet); float GetMeter(float inch); float GetCentiMeter(float meter); void main() { float inch; float meter; float centimeter;

printf("请输入英尺的值\n"); scanf("%f",&feet); inch=GetInch(feet); printf("转换成英寸的结果是%.2f:",inch); printf("\n"); meter=GetMeter(GetInch(feet)); printf("转换成米的结果是%.2f:",meter); printf("\n"); centimeter=GetCentiMeter(GetMeter(GetInch(feet))); printf("转换成米的结果是%.2f:",centimeter); printf("\n"); } float GetInch(float feet) {

inch=feet*12; return inch; } float GetMeter(float inch) { float meter; meter=inch*; return meter; } float GetCentiMeter(float meter) { float centimeter; centimeter=meter*100; return centimeter;

C语言函数习题及答案(20200506225202)

第 6章函数习题 一、选择题 1.一个完整的 C 源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A) C 语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C) C 语言规定必须用 main 作为主函数名,程序将从此开始执行,在此结束D)main 可作为用户标识符,用以定义任意一个函数 3.以下关于函数的叙述中不正确的是【】。 A) C 程序是函数的集合,包括标准库函数和用户自定义函数 B)在 C 语言程序中,被调用的函数必须在main 函数中定义 C)在 C 语言程序中,函数的定义不能嵌套 D)在 C 语言程序中,函数的调用可以嵌套 4.在一个 C 程序中 ,【】。 A) main 函数必须出现在所有函数之前 B) main 函数可以在任何地方出现 C) main 函数必须出现在所有函数之后 D) main 函数必须出现在固定位置 5.若在 C 语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A) float B) long C) int D )double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一 致C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C 程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【 】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元

C语言函数习题

C语言函数习题 第6章函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【】。

A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】A)float B)long C)int D)double 6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合B)函数返回值C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参C)实

章 函数C语言入门习题

第六章函数 函数部分 一、选择题 1. C语言是由()构成。 A. 主程序和子程序 B. 主函数和若干子函数 C. 一个主函数和一个其他函数 D. 主函数和子程序2.以下说法中正确的是()。 A. C语言程序总是从第一个的函数开始执行 B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 3.以下对C语言函数的有关描述中,正确的是()。 A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程序中有调用关系的所有函数必须放在同一个源程序文件中 4. C语言程序中,当函数调用时()。 A. 实参和形参各占一个独立的存储单元 B. 实参和形参共用一个存储单元 C. 可以由用户指定是否共用存储单元 D. 计算机系统自动确定是否共用存储单元 5.关于return语句,下列正确的说法是()。 A. 在主函数和其他函数中均要出现 B. 必须在每个函数中出现 C. 可以在同一个函数中出现多次 D. 只能在除主函数之外的函数中出现一次 6.一个函数返回值的类型是由()决定的。 A. return语句中表达式的类型 B. 在调用函数时临时指定 C. 定义函数时指定的函数类型 D. 调用该函数的主调函数的类型 7.在C语言的函数中,下列正确的说法是()。 A. 必须有形参 B. 形参必须是变量名 C. 可以有也可以没有形参 D. 数组名不能作形参 8.以下描述正确的是()。 A. 函数调用可以出现在执行语句或表达式中 B. 函数调用不能作为一个函数的实参 C. 函数调用可以作为一个函数的形参 D. 以上都不正确 9.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。 A. 地址传递 B. 单向值传递 C. 由实参传给形参,再由形参传回实参 D. 传递方式由用户指定 10.若有以下程序 #include void f(int n); main() { void f(int n); f(5);} void f(int n) {printf("%d\n",n); } 则以下叙述中不正确的是()。 A. 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f B. 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f C. 对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明 D. 函数f无返回值,所以可用void将其类型定义为无值型 11.以下所列的各函数首部中,正确的是()。 A. void play(var :Integer,var b:Integer) B. void play(int a,b) C. void play(int a,int b) D. Sub play(a as integer,b as integer) 12.有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是()。 A. 3 B. 4 C. 5 D. 有语法错 13.若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用 语句中实参的个数是()。 A.3 B.4 C.5 D.6 14.以下函数值的类型是()。 fun (float x) { float y; y= 3*x-4; return y;} A. int B. 不确定 C. void D. float 15.下列函数定义不正确的是()。 A. int max() B. int max(x,y) {int x,y,z; int x,y; z=x>y?x:y;} {int z;z=x>y?x:y;return(z);} C. int max(x,y) D. int max() {int x,y,z; { } z=x>y?x:y; return(z); } 16.下列程序的运行结果是()。 main() {int i=3; printf("%d,%d,%d\n",i,i++,i++);} A. 5,5,4 B. 3,4,5 C. 3,3,4 D. 5,4,3 17.以下程序的输出结果是()。 fun(int x, int y, int z) { z=x*x+y*y; } main() {int a=31; fun(5,2,a); printf("%d",a);} A. 0 B. 29 C. 31 D. 无定值 18.有如下程序 int func(int a,int b) { return(a+b);} main() {int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r);} 该程序的输出的结果是()。 A. 12 B. 13 C. 14 D. 15 19.有以下程序 float fun(int x,int y) { return(x+y); } main() {int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c));} 程序运行后的输出结果是()。 A. 编译出错 B. 9 C. 21 D. 9.0 二、填空题 1.下面程序的输出结果是 ________。 int t(int x,int y,int cp,int dp) { cp=x*x+y*y;dp=x*x-y*y;}

C语言函数练习题及答案

C语言函数练习题及答 案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 【单选题】 在下列关于C函数定义的叙述中,正确的是?A、 函数可以嵌套定义,但不可以嵌套调用; ?B、 函数不可以嵌套定义,但可以嵌套调用; ?C、 函数不可以嵌套定义,也不可以嵌套调用;?D、 函数可以嵌套定义,也可以嵌套调用; 我的答案:B得分:分 2 【单选题】 下面函数调用语句含有实参的个数为 nc((exp1,exp2),(exp3,exp4,exp5)); ?A、 1 ?B、 2 ?C、 4 ?D、 5 我的答案:B得分:分 3

【单选题】 C语言中函数返回值的类型是由以下哪个选项决定的 ?A、 函数定义时指定的类型; ?B、 return语句中的表达式类型; ?C、 调用该函数时的实参的数据类型; ?D、 形参的数据类型; 我的答案:A得分:分 4 【单选题】 以下关于函数叙述中,错误的是 ?A、 函数未被调用时,系统将不为形参分配内存单元; ?B、 实参与形参的个数必须相等,且实参与形参的类型必须对应一致; ?C、 当形参是变量时,实参可以是常量、变量或表达式; ?D、 如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间; 我的答案:B得分:分 5 【单选题】 若函数调用时参数为基本数据类型的变量,以下叙述正确的是?A、

实参与其对应的形参共享内存存储单元; ?B、 只有当实参与其对应的形参同名时才共享内存存储单元; ?C、 实参与对应的形参分别占用不同的内存存储单元; ?D、 实参将数据传递给形参后,立即释放原先占用的内存存储单元; 我的答案:C得分:分 6 【单选题】 函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是?A、 实参将地址传递给形参,并释放原先占用的存储单元; ?B、 实参将地址传递给形参,调用结束时形参再将此地址回传给实参; ?C、 实参将值传递给形参,调用结束时形参再将其值回传给实参; ?D、 实参将值传递给形参,调用结束时形参并不将其值回传给实参; 我的答案:D得分:分 7 【单选题】 若用数组名作为函数调用的实参,则传递给形参的是 ?A、 数组第一个元素的地址; ?B、 数组的第一个元素的值;

C语言课外作业答案——函数

C语言程序设计——函数 一、选择题 1.以下函数的正确定义形式是(A) A.double fun(int x,int y) B.double fun(int x;int y) C.double fun(int x,int y); D.double fun(int x,y); 2. 在C语言中以下正确的说法是(A) A.实参和与其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共占用一个存储单元 C.只有当实参和与其对应的形参同名时才共占用存储单元 D.开参是虚拟的,不占用存储单元 3.以下说法不正确的是(B)C语言规定: A.实参可以是常量、变量或表达式 B.形参可以是常量、变量或表达式 C.实参可以为任意类型 D.形参应与其对应的实参类型一致 4. 一个完整的C源程序是(B)。 A.要由一个主函数或一个以上的非主函数构成 B.由一个且仅由一个主函数和零个以上的非主函数构成 C.要由一个主函数和一个以上的非主函数构成 D.由一个且只有一个主函数或多个非主函数构成 5. 以下关于函数的叙述中不正确的是(ABCD描述都正确,本题没有答案)。 A. C程序是函数的集合,包括标准库函数和用户自定义函数 B.在C语言程序中,函数能调用它本身 C.在C语言程序中,函数的定义不能嵌套 D.在C语言程序中,函数的调用可以嵌套 6. 在一个C程序中, 正确的说法是(B)。 A.main函数必须出现在所有函数之前 B.main函数可以在任何地方出现 C.main函数必须出现在所有函数之后 D.main函数必须出现在固定位置 7. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是(B)。A.float B.int C.long D.double 8. 以下关于函数叙述中,错误的是(D)。 A. 函数未被调用时,系统将不为形参分配内存单元 B. 实参与形参的个数应相等,且实参与形参的类型必须对应一致 C. 当形参是变量时,实参可以是常量、变量或表达式 D. 形参可以是常量、变量或表达式 9.以下错误的描述是(D)函数调用可以 A. 出现在执行语句中 B. 出现在一个表达式中 C. 做为一个函数的实参 D. 做为一个函数的形参 10.以下程序的正确运行结果是(D) void main() {int a=2,I; for(I=0;I<3;I++) prin tf(“%4d”,f(a));}

C语言程序设计函数练习题及参考答案

C语言程序设计练习题及参考答案 1、定义一个函数int fun(int a,int b,int c),它得功能就是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include <stdio、h> int fun(int a,int b,int c) { if(a+b>c &&b+c>a && a+c〉b) { if(a==b && b==c ) return 3;?else if(a==b||b==c||a==c) return2; else return 1; } else return 0; } void main() { int a,b,c,shape; printf("\nInput a,b,c:"); scanf(”%d%d%d”,&a,&b,&c); printf("\na=%d, b=%d, c=%d\n",a,b,c); shape =fun(a,b,c); printf("\n\nThe shape:%d\n",shape); }

2、编写一个程序,将两个变量得值交换,例如变量a中得值原为 3,b中得值原为8,程序运行后 a 中得值为8,b中得值为3。 #include〈stdio、h〉 void fun(int *x,int *y) { ?int t; t=*x;*x=*y;*y=t } void main() { inta=3,b=8; printf("%d%d\n",a,b); fun(&a,b); printf("%d %d\n",a,b); }

C语言函数练习题及答案

C语言函数练习题及答案

1 【单选题】 在下列关于C函数定义的叙述中,正确的是? ?A、 函数可以嵌套定义,但不可以嵌套调用; ? ?B、 函数不可以嵌套定义,但可以嵌套调用; ? ?C、 函数不可以嵌套定义,也不可以嵌套调用; ? ?D、 函数可以嵌套定义,也可以嵌套调用; ? 我的答案:B得分:2.5分 2 【单选题】 下面函数调用语句含有实参的个数为? nc((exp1,exp2),(exp3,exp4,exp5));

?A、 1 ? ?B、 2 ? ?C、 4 ? ?D、 5 ? 我的答案:B得分:2.5分 3 【单选题】 C语言中函数返回值的类型是由以下哪个选项决定的? ?A、 函数定义时指定的类型; ? ?B、

return语句中的表达式类型; ? ?C、 调用该函数时的实参的数据类型; ? ?D、 形参的数据类型; ? 我的答案:A得分:2.5分 4 【单选题】 以下关于函数叙述中,错误的是? ?A、 函数未被调用时,系统将不为形参分配内存单元; ? ?B、 实参与形参的个数必须相等,且实参与形参的类型必须对应一致; ? ?C、 当形参是变量时,实参可以是常量、变量或表达式; ?

?D、 如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间; ? 我的答案:B得分:2.5分 5 【单选题】 若函数调用时参数为基本数据类型的变量,以下叙述正确的是? ?A、 实参与其对应的形参共享内存存储单元; ? ?B、 只有当实参与其对应的形参同名时才共享内存存储单元; ? ?C、 实参与对应的形参分别占用不同的内存存储单元; ? ?D、 实参将数据传递给形参后,立即释放原先占用的内存存储单元; ? 我的答案:C得分:2.5分

C语言函数章节选择题(新)

1.在C语言中,全局变量的存储类别是: A) static B) extern C) void D) register A 2.C语言中,凡未指定存储类别的局部变量的隐含存储类别是: A) 自动(auto) B) 静态(static) C) 外部(extern) D) 寄存器(register) A 3. 在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用 的全局变量,则该变量需要使用的存储类别是:________。 A) extern B) register C) auto D) static D 4. 若有以下调用语句,则正确的fun函数首部是 main() { ∶ ∶ int a;float x; ∶ ∶ fun(x,a);

∶ ∶ } A) void fun(int m,float x) B) void fun(float a,int x) C) void fun(int m,float x[]) D) void fun(int x,float a) B 5. 有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5)); 该函数调用语句中,含有的实参个数是 A) 3 B) 4 C) 5 D) 有语法错误 A 6. 以下程序的运行结果是。 #include main() { int k=4,m=1,p; p=func(k,m); printf("%d, ",p); p=func(k,m); printf("%d\n",p); } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return m; }

C语言题库-函数

C语言函数练习题 一、选择题 1.在函数的说明和定义时若没有指出函数的类型,则( A ) A: 系统自动地认为函数的类型为整型。 B: 系统自动地认为函数的类型为字符型。 C: 系统自动地认为函数的类型为实型。 D: 编译时会出错。 2.下面正确的函数定义形式是( A ) A: double fun(int x,int y) { } B: double fun(int x;int y) { } C: double fun(int x,int y); D: double fun(int x,y); 3. 若调用一个函数,且此函数中没有return 语句,则正确的说法是:该函数( D ) A: 没有返回值; B: 返回若干个系统默认值; C: 能返回一个用户所希望的函数值; D: 返回一个不确定的值 4. C语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是( B ) A: float 型 B: int 型 C: long 型 D: double 型 5. C语言规定,函数返回值的类型是由( D )(二级题) A: return 语句中的表达式类型所决定; B: 调用该函数时的主调函数类型所决定; C: 调用该函数时系统临时决定; D: 在定义该函数时所指定的函数类型所决定 6.下面函数调用语句含有实参的个数为( B ) func((exp1,exp2),(exp3,exp4,exp5)); A: 1 B: 2 C: 5 D: 4 7. 以下错误的描述是( D ) 函数的调用可以 A: 出现在执行语句中;

B: 出现在一个表达式中; C: 为一个函数的实参; D: 作为一个函数的形参; 8.若函数的形参为一维数组,则下列说法中正确的是( B ) A: 调用函数时的对应实参必为数组名。 B: 形参数组可以不指定大小。 C: 形参数组的元素个数必须等于实参数组的元素个数。 D: 形参数组的元素个数必须多于实参数组的元素个数。 9.下面叙述中正确的是( C ) A: 对于用户自己定义的函数,在使用前必须加以说明。 B: 说明函数时必须明确其参数类型和返回类型。 C: 函数可以返回一个值,也可以什么值也不返回。 D: 空函数不完成任何操作,所以在程序设计中没有用处。 10.若使用一维数组名作函数参数,则以下正确的说法是( C ) A: 必须在主调用函数中说明此数组的大小; B: 实参数组类型与形参数组类型可以匹配;必须 C: 在被调函数中,不需要考虑形参数组的大小; D: 实参数组名与形参数组名必须一致 11. 下面说法中不正确的是( B ) 在C 语言中 A: 实参可以是常量、变量或表达式; B: 形参可以是常量、变量或表达式; C: 函数的参数是函数间传递数据的一种手段; D: 实参个数应与对应的形参个数相等,类型匹配 12. 以下叙述中正确的是( B ) A 全局变量的作用域一定比局部变量的作用域范围大 B 静态(static)类别变量的生存期贯穿于整个程序的运行期间 C 函数的形参都属于全局变量 D 未在定义语句中赋初值的auto变量(不确定)和static变量(为0)的初值都是随机值 13.下面程序的输出结果是( B ) #include void num() { extern int x,y; int a=15,b=10; x=a-b;

C语言函数习题及答案

函数习题 一、选择题 1. 一个完整的C源程序是【】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】 A)float B)long C)int D)double

6. 以下关于函数叙述中,错误的是【】。 A)函数未被调用时,系统将不为形参分配内存单元 B)实参与形参的个数应相等,且实参与形参的类型必须对应一致 C)当形参是变量时,实参可以是常量、变量或表达式 D)形参可以是常量、变量或表达式 7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是 【】。 A)参数的形实(哑实)结合 B)函数返回值 C)全局变量 D)同名的局部变量 8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。 A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元 9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。 A)实参将其地址传递给形参,并释放原先占用的存储单元 B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C)实参将其值传递给形参,调用结束时形参再将其值回传给实参 D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参 10. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【】。 A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元 C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元 11. 若用数组名作为函数调用的实参,则传递给形参的是【】。

相关文档