C语言题库函数.docx

上传人:b****4 文档编号:12228585 上传时间:2023-04-17 格式:DOCX 页数:39 大小:24.58KB
下载 相关 举报
C语言题库函数.docx_第1页
第1页 / 共39页
C语言题库函数.docx_第2页
第2页 / 共39页
C语言题库函数.docx_第3页
第3页 / 共39页
C语言题库函数.docx_第4页
第4页 / 共39页
C语言题库函数.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

C语言题库函数.docx

《C语言题库函数.docx》由会员分享,可在线阅读,更多相关《C语言题库函数.docx(39页珍藏版)》请在冰豆网上搜索。

C语言题库函数.docx

C语言题库函数

C语言函数练习题

一、选择题

1.在函数的说明和定义时若没有指出函数的类型,则(A)

A:

系统自动地认为函数的类型为整型。

B:

系统自动地认为函数的类型为字符型。

C:

系统自动地认为函数的类型为实型。

D:

编译时会出错。

2.下面正确的函数定义形式是(A)

A:

doublefun(intx,inty){}

B:

doublefun(intx;inty){}

C:

doublefun(intx,inty);

D:

doublefun(intx,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

voidnum()

{

externintx,y;

inta=15,b=10;

x=a-b;

y=a+b;

}

intx,y;

main()

{

inta=7,b=5;

x=a-b;

y=a+b;

num();

printf("%d,%d\n",x,y);

}

A:

12,2

B:

5,25

C:

1,12

D:

输出不确定

14.下面程序的输出结果是(D)

#include

f(inta)

{

intb=0;

staticintc=3;static为静态外部变量C不恒等于3(在每次循环中),而是等于最近一次使用的值。

b++;

c++;

return(a+b+c);

}

main()

{

inta=2,i;

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

printf("%d",f(a));

}

A:

777

B:

71013

C:

7911

D:

789

15.下面程序的输出结果是(D)

#include

tr()

{

staticintx=3;

x++;

return(x);

}

main()

{

inti,x;

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

x=tr();

printf("%d\n",x);

}

A:

3

B:

4

C:

5

D:

6

16.下面程序的输出结果是(D)

#include

main()

{

intx=1;

voidf1();

voidf2(int);

f1();

f2(x);

printf("%d\n",x);

}

voidf1()

{

intx=3;

printf("%d",x);

}

intx;

voidf2(intx)

{

printf("%d",++x);

}

A:

111

B:

222

C:

333

D:

321

17.下列叙述中错误的是(A)

A:

主函数中定义的变量在整个程序中都是有效的。

B:

在其它函数中定义的变量在主函数中也不能使用。

C:

形式参数也是局部变量。

D:

复合语句中定义的变量只在该复合语句中有效。

18.下正确的说法是(A)

如果在一个函数中的复合语句中定义了一个变量,则该变量

A:

只在该复合语句中有效

B:

在该函数中有效

C:

本程序中有效

D:

为非法变量

19.下面程序的输出结果是(B)

#include

main()

{

intx=10;

{

intx=20;

printf("%d,",x);

}

printf("%d\n",x);

}

A:

10,20

B:

20,10

C:

10,10

D:

20,20

20.以下叙述中不正确的是(D)

A 在不同的函数中可以使用相同名字的变量

B 函数中的形式参数是局部变量

C 在一个函数内定义的变量只在本函数范围内有效

D 在一个函数内的复合语句中定义的变量在本函数范围内有效

21.下面说法中不正确的是(D)

A 全局变量一定是外部变量

B 局部变量一定是内部变量。

C 全局变量作为函数间传递数据的手段时,与文件的作用类似,都是通过共享某种资源来传递数据。

D 全局变量与局部变量不可以重名。

22.以下程序的正确运行结果是(A)(二级题)

#include

func(inta,intb)

{

staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

voidmain()

{

intk=4,m=1,p;

p=func(k,m);8

printf("%d,",p);

p=func(k,m);

printf("%d",p);

}

A 8,17

B 8,16

C 8,20

D 8,8

23.C语言程序的基本单位是(C)(二级题)

A.程序行

B.语句

C.函数

D.字符

24.C语言规定,程序中各函数之间(A)(二级题)

A.既允许直接递归调用也允许间接递归调用

B.不允许直接递归调用也不允许间接递归调用

C.允许直接递归调用不允许间接递归调用

D.不允许直接递归调用允许间接递归调用

25.C语言可执行程序的开始执行点是(C)(二级题)

A.程序中第一条可执行语句

B.程序中第一个函数

C.程序中的main函数

D.包含文件中的第一个函数

26.C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为(D)(二级题)

A.该数组的长度。

B.该数组的元素个数。

C.该数组中各元素的值。

D.该数组的首地址。

27.当调用函数时,实参是一个数组名,则向函数传送的是(B)(二级题)

A.数组的长度

B.数组的首地址

C.数组每一个元素的地址

D.数组每个元素中的值

28.若有以下函数调用语句:

fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是(A)(二级题)

A.3

B.4

C.5

D.6

29.在C语言中,函数的隐含存储类别是(C)(二级题)

A.auto

B.static

C.extern

D.无存储类别

30.在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是(C)类型(二级题)

A.void

B.double

C.int

D.char

31.在C语言中,形参的缺省存储类是(A)(二级题)

A.auto

B.register

C.static

D.extern

32.以下函数值的类型是(A)(二级题)

fun(floatx){floaty;y=3*x-4;returny;}

A.int

B.不确定

C.void

D.float

33.以下说法中正确的是(C)(二级题)

A.C语言程序总是从第一个的函数开始执行

B.在C语言程序中,要调用的函数必须在main()函数中定义

C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分

34.以下所列的各函数首部中,正确的是(C)(二级题)

A.voidplay(vara:

integer,varb:

integer)

B.voidplay(inta,b)

C.voidplay(inta,intb)

D.subplay(aasinteger,basinteger)

35.以下叙述中不正确的是(C)(二级题)

A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。

B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容。

C.在C中,外部变量的隐含类别是自动存储类别。

D.在C中,函数形参可以说明为register变量。

36.以下叙述中不正确的是(D)(二级题)

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

37.以下程序运行后,输出结果是(A)(二级题)C

#include

intd=1;

fun(intp)

{

intd=5;

d+=p++;

printf("%d",d);

}

main()

{

inta=3;

fun(a);

d+=a++;

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

}

A.84

B.99

C.95

D.44

38.以下对C语言函数的有关描述中,正确的是(A)(二级题)

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B.C函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

39.有如下程序

#include

intfunc(inta,intb)

{

return(a+b);

}

main()

{

intx=2,y=5,z=8,r;

r=func(func(x,y),z);

printf("%d\n",r);

}

该程序的输出的结果是(D)(二级题)

A.12

B.13

C.14

D.15

40.有如下程序(B)(二级题)

#include

longfib(intn)

{

if(n>2)

return(fib(n-1)+fib(n-2));

else

return

(2);

}

main()

{

printf("%d\n",fib(3));

}

该程序的输出结果是

A.2

B.4

C.6

D.8

41.以下程序的输出结果是(B)(二级题)

#include

inta,b;

voidfun()

{

a=100;b=200;

}

main()

{

inta=5,b=7;

fun();

printf("%d%d\n",a,b);

}

A.100200

B.57

C.200100

D.75

42.以下程序运行后,输出结果是(D)(二级题)

#include

func(inta,intb)

{

intm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{

intk=4,m=1,p;

p=func(k,m);

printf("%d,",p);

p=func(k,m);

printf("%d\n",p);

}

A8,15

B8,16

C8,17

D8,8

43.以下程序的输出结果是(A)(二级题)

#include

longfun(intn)

{

longs;

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

s=2;

else

s=n-fun(n-1);

returns;

}

main()

{

printf("%ld\n",fun(3));

}

A.1

B.2

C.3

D.4

44.以下程序的输出结果是(C)(二级题)

#include

intd=1;

fun(intp)

{

staticintd=5;

d+=p;

printf("%d",d);

return(d);

}

main()

{

inta=3;

printf("%d\n",fun(a+fun(d)));

}

A.699

B.669

C.61515

D.6615

45.下面程序的输出是(B)(二级题)

#include

intw=3;

fun(intk)

{

if(k==0)

returnw;

return(fun(k-1)*k);

}

main()

{

intw=10;

printf("%d\n",fun(5)*w);

}

A.360

B.3600

C.1080

D.1200

46.下面程序的输出是(B)(二级题)

#include

intm=13;

intfun2(intx,inty)

{

intm=3;

return(x*y-m);

}

main()

{

inta=7,b=5;

printf("%d\n",fun2(a,b)/m);

}

A.1

B.2

C.7

D.10

47.下面程序的输出是(C)(二级题)

#include

fun3(intx)

{

staticinta=3;

a+=x;

return(a);

}

main()

{

intk=2,m=1,n;

n=fun3(k);

n=fun3(m);

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

}

A.3

B.4

C.6

D.9

48.C语言中函数能否嵌套调用和递归调用(D)(二级题)

A.二者均不可

B.前者可,后者不可

C.前者不可,后者可

D.二者均可

49.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是(A)(二级题)

A.3

B.4

C.5

D.有语法错

50.有以下程序

#include

voidfun(inta[],intn)

{

inti;

for(i=0;i

{

if(i%2==0)

a[i]+=n;

else

a[i]-=n;

}

}

main()

{

intc[5]={5,4,3,2,1},i;

fun(c,5);

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

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

printf("\n");

}

程序运行后输出的结果是(A)(二级题)

A.10,-1,8,-3,6,

B.5,4,3,2,1,

C.10,2,8,4,6,

D.5,-1,3,-3,1,

51.有以下程序

#include

#defineN4

voidfun(inta[][N])

{

inti;

for(i=0;i

a[0][i]=a[N-1][N-1-i];

}

main()

{

intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i;

fun(x);

for(i=0;i

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

printf("\n");

}

程序运行后输出的结果是(A)(二级题)B

A.16,6,11,16,

B.1,6,11,16,

C.4,7,10,13,

D.17,17,17,17,

52.有以下程序

#include

#defineN4

doublefun(doublea)

{

doublex;

x=a-(int)a;

returnx;

}

main()

{

doublea=3.1415;

printf("%f\n",fun(a));

}

程序的运行结果是(C)(二级题)

A.3.000000

B.3.141500

C.0.141500

D.0.000000

53.有如下程序

#include

intsum(intdata)

{

staticintinit=1;

returninit+=data;

}

main()

{

inti;

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

printf("%d,",sum(i));

printf("\n");

}

程序运行后输出的结果是(A)(二级题)

A.2,

B.2,3,

C.3,

D.1,

54.以下针对全局变量的叙述错误的是(C)(二级题)

A.全局变量的作用域是从定义位置开始至源文件结束

B.全局变量是在函数外部任意位置上定义的变量

C.用extern说明符可以限制全局变量的作用域

D.全局变量的生存期贯穿于整个程序运行期间

55.有以下程序

#include

voidfun(inta[],intn)

{

inti;

for(i=0;i

{

if(i%3==0)

a[i]-=n;

else

a[i]+=n;

}

}

main()

{

intc[5]={6,7,8,9,10},i;

fun(c,5);

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

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

printf("\n");

}

程序运行后输出的结果是(A)(二级题)

A.1,12,13,4,15,

B.10,9,8,7,6,

C.1,7,13,9,15,

D.10,12,8,4,6,

56.有以下程序

#include

intsub(doublea,doubleb)

{

return(int)(a-b-1.3);

}

main()

{

printf("%d\n",sub(3.2,4.1));

}

程序运行后输出的结果是(A)(二级题)

A.-2

B.1.7

C.-3

D.2.0

57.有如下程序

#include

voidconvert(charch)

{

if(ch<'X')convert(ch+1);

printf("%c",ch);

}

main()

{

convert('W');

printf("\n");

}

程序运行后输出的结果是(D)(二级题)

A.YZ

B.VW

C.XY

D.XW

58.有如下程序

#include

voidget_put()

{

charch;

ch=getchar();

if(ch!

='\n')get_put();

putchar(ch);

}

main()

{

get_put();

}

程序运行时,输入ABCD<回车>,则输出结果是(B)(二级题)

A.DCDC

B.DCBA

C.BABA

D.ABCD

59.以下叙述错误的是(A)(二级题)

A.未经赋值的全局变量值不确定

B.未经赋值的auto变量值不确定

C.未经赋值的register变量值不确定

D.未经赋值的静态局部变量值为0

60.有如下程序

#include

intsum(inta,intb)

{

returna+b-2;

}

main()

{

inti;

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

printf("%d",sum(i,3));

printf("\n");

}

程序运行后的输出结果是(D)(二级题)

A.54321

B.01234

C.45678

D.12345

 

二、填空题

1.C语言规定,可执行程序的开始执行点是main()。

2.阅读以下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1