第七八章c语言复习试题.docx

上传人:b****4 文档编号:3821670 上传时间:2022-11-25 格式:DOCX 页数:55 大小:42.31KB
下载 相关 举报
第七八章c语言复习试题.docx_第1页
第1页 / 共55页
第七八章c语言复习试题.docx_第2页
第2页 / 共55页
第七八章c语言复习试题.docx_第3页
第3页 / 共55页
第七八章c语言复习试题.docx_第4页
第4页 / 共55页
第七八章c语言复习试题.docx_第5页
第5页 / 共55页
点击查看更多>>
下载资源
资源描述

第七八章c语言复习试题.docx

《第七八章c语言复习试题.docx》由会员分享,可在线阅读,更多相关《第七八章c语言复习试题.docx(55页珍藏版)》请在冰豆网上搜索。

第七八章c语言复习试题.docx

第七八章c语言复习试题

第七章函数

一、单选题

1.以下正确的说法是______。

建立函数的目的之一是:

A.提高程序的执行效率B.提高程序的可读性

C.减少程序的篇幅D.减少程序文件所占内存

2.以下正确的说法是_____。

A.用户若需调用标准函数,调用前必须重新定义

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C.系统根本不允许用户重新定义标准函数

D.用户若需要调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

3.在c语言中,以下说法正确的是___。

A.普通实参和与其对应的形参各占用独立的存储单元

B.实参和与其对应的形参共占用一个存储单元

C.只有当实参和与其对应的形参同名时才共占用存储单元

D.形参是虚拟的,不占用存储单元

4.若调用一个函数,且此函数中没有RERUrn语句,则关于该函数正确的说法是___。

A.有返回值

B.回若干个系统默认值

C.能返回一个用户所希望的函数值

D.返回一个不确定的值

5.在c语言中以下不正确的说法是___。

A.实参可以是常量、变量、或表达式

B.行参可以是常量、变量、或表达式

C.实参可以为任意类型

D.形参应与其对应的实参类型一致

6.以下程序有语法性错误,有关错误原因的正确说法是___。

main()

{intG=5,k;

voidprt_char();

……

k=prt_char(G);

……

}

A.句voidprt_char();有错,它是函数调用语句,不能用void说明

B.变量名不能使用大写字母

C.函数说明和函数调用语句之间有矛盾

D.数名不能使用下划线

7.以下错误的描述是___。

函数调用可以

A.出现在执行语句中

B.现在一个表达式中

C.作为一个函数的实参

D.作为一个函数的形参

8.以下正确的说法是__。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

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

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

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

9.若使用一维数组名作函数实参,则以下正确的说法是_。

A.须在主调函数中说明此数组的大小

B.参数组类型与形参数组类型可以不匹配

C.在被调用函数中,不需要考虑形参数组的大小

D.实参数组名与形参数组名必须一致

10.以下正确的说法是__。

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

A.在该复合语句中有效

B.在该函数中有效

C.在本程序范围中均有效

D.为非法变量

11.以下叙述中正确的是___。

A.局部变量说明为static存储数,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

12.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则____。

A.称为函数的直接递归调用B.称为函数的间接递归调用

C.称为函数的循环调用D.C语言中不允许这样的递归调用

13、以下说法中正确的是______。

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

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

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

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

14.不正确的描述是___。

A.不论在主函数还是自定义函数中,只要说明了变量,就可为其分配存贮单元。

B.在定义函数时,必须指定形参的类型。

C.形参和实参之间可以是值传递。

D.数组名可以作为参数进行传递。

15.函数调用strcat(strcpy(str1,str2),str3)的功能是__。

A.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后

B.将字符串str1复制到字符串str2中后再连接到字符串str3之后

C.将字符串str1复制到字符串str2中后再复制到字符串str3之后

D.将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中

16.以下叙述中不正确的是__。

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

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

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

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

17、C语言中,函数值类型得定义可以缺省,此时函数得隐含类型是____。

A.voidB.intC.floatD.double

18、下列函数调用中,不正确的是____。

A.max(a,b)B.max(3,a+b)C.max(3,5)D.intmax(a,b)

19、如果限制一个变量只能为本文件所用,必须通过___。

A.外部变量说明B.静态内部变量C.静态外部变量D.局部变量说明

20、有以下函数定义:

voidfun(intn,doublex){…….},若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是____。

A.fun(inty,doublem)B.k=fun(10,12.5)C.fun(x,n)D.voidfun(n,x)

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

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

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

22、下列叙述中,错误的一条是_____。

A.scanf()函数可以用来输入任何类型的多个数据

B.数组名作函数参数时,也采用“值传递”方式

C.如果行参发生改变,不会改变主调函数的实参值

D.函数实参与行参的类型应一致

23、在C语言的函数中,_____。

A.必须有行参B.行参必须是变量名

C.可以有也可以没有行参D.数组名不能作行参

24、关于return语句,正确的说法是____。

A.在主函数和其他函数中均可出现

B.必须在每个函数中出现

C.可以在同一个函数中多次出现

D.只能在除主函数之外的函数中出现一次

25、如果在用户程序中使用C语言库函数中的数学函数时,应该在源文件中使用的#include命令是_____。

A.#include”string.h”B.#include”math.h”

C.#include”stdio.h”D.#include”ctype.h”

26、已定义以下函数:

fun(int*p){return*p}该函数的返回值是____。

A.不确定的值B.行参p中存放的值

C.行参p所指存储单元中的值D.行参p的地址值

27、若输入1.5、2.5,以下程序的输出结果为______。

Main()

{floata,b;

intc;

scanf(“%f,%f”,&a,&b);

c=max(a,b);

printf(“%d”,c);

max(floatx,floaty)

{floatz;

z=x>y?

x:

y;

return(z);

}

A.1.5B.2.5C.2D.3.0

28、下列程序的输出结果是_____。

#include

func(intx,inty)

{intz;

z=x+y;

returnz;

}

main()

{inta=10,b=20,c=30,s;

s=func((a--,b++,a+b),c--);

printf(“%d\n”,s);

}

A.30B.40C.60D.50

29、下列叙述中,正确的一条是____。

A.putchar函数可以输出一个字符串

B.在printf(“%c”,c)函数中,2个C是一样

C.语句printf(“%d%%”,1)的输出结果为1%

D.主函数和其他函数可以互相调用

30、有以下程序:

程序运行结果为____。

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{inti,j=0;

for(i=1;I<3;i++)j+=f(i);

printf(“%d\n”,j);

}

A.4B.3C.2D.1

31.以下正确的说法是。

A.用户若需调用标准库函数,调用前必须重新定义

B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C.系统根本不允许用户重新定义标准库函数

D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

32.知函数func的定义为:

voidfunc()

{……}

则函数定义中void的含义是。

A.执行函数func后,函数没有返回值B.执行函数func后,函数不再返回

C.执行函数func后,可以返回任何类型C.以上答案均不正确

33.以下正确的函数首部定义形式是。

A.intabc(intx,inty)

B.intabc(intx;inty)

C.intabc(intx,inty);

D.intabc(intx,y)

34.在以下对C语言的描述中正确的是。

A.在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参

B.C语言函数既可以嵌套定义,又可以嵌套调用

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

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

35.以下正确的函数定义形式是。

A.intfun(intx,inty)B.intfun(intx,y)

{z=x+y;{intz;

returnz;z=x+y;returnz;

}}

C.intfun(x,y)D.intfun(intx,inty)

{intx,y,z;{intz;

z=x+y;returnz;z=x+y;returnz;

}}

36.以下正确的说法是。

在C语言中

A.实参和与其对应的形参共占用一个存储单元

B.实参和与其对应的形参各占用独立的存储单元

C.只有当实参和与其对应的形参同名时才共占用存储单元

D.形参是虚拟的,不占用存储单元

37.若调用一个函数,且此函数中没有return语句,则正确的说法是。

该函数

A.没有返回值B.返回一个不确定的值

C.能返回一个用户所希望的函数值D.返回若干个不确定值

38.以下正确的说法是。

A.实参只能是常量或常量表达式B.形参可以是常量、变量或表达式

C.形参只能是常量或常量表达式D.形参应与其对应的实参类型一致

39.C语言中函数返回值的类型是由决定的。

A.调用该函数的主调函数类型B.return后边的表达式类型

C.调用函数时系统临时指定D.定义函数时指定的函数类型

40.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。

A.地址传递B.由用户指定传递方式

C.由实参传给形参,再由形参传回给实参D.值传递

41.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。

A.float型B.1ong型C.int型D.double型

42.下面函数调用语句含有实参的个数为。

fun((expl,exp2),(exp3,exp4));

A.1B.2C.3D.4

43.若用数组名作为函数调用的实参,传递给形参的是。

A.数组第一个元素的地址B.数组第一个元素的值

C.数组中全部元素的值D.数组中全部元素的地址

44.以下正确的说法是。

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

A.在该复合语句范围内有效B.在该函数范围内有效

C.在本程序范围内均有效D.在本源程序文件范围内均有效

45.以下叙述中不正确的是。

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

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

C.在C语言中,全局变量的隐含存储类别是自动存储类别

D.在C语言中,局部变量的隐含存储类别是寄存器存储类别

46.说明语句“staticinti=10;”中,“i=10”的含义是。

A.只说明了一个变量B.与“inti=10”在功能上等价

C.将变量i初始化为10D.将变量i赋值为10

47.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全

局变量,则该变量需要使用的存储类别是。

A.externB.registerC.autoD.static

48.在C语言中,对于存储类别为的变量,只有在使用它们时才占用内存单元

A.static和autoB.register和extern

C.register和staticD.register和auto

49.在一个源文件中定义的外部变量的作用域为。

A.本文件的全部范围B.本程序的全部范围

C.本函数的全部范围D.从定义的位置开始至本文件结束

50.函数swap(intx,inty)可以完成对x值和y值的交换,在运行调用函数中的如下语句后,a和b的值分别是。

a=2;b=3;

swap(a,b);

A.32B.33C.22D.23

51.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则。

A.称为函数的直接递归调用B.称为函数的间接递归调用

C.称为函数的循环调用D.C语言中不允许这样的递归调用

52.以下叙述中正确的是。

A.局部变量说明为static存储数,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

53.以下程序的正确运行结果是。

main()

{inta=1,i;

for(i=0;i<3;i++)printf("%4d",fun(a));

}

intfun(intx);

{intb=0;

staticintc=3;

b++;c++;

return(x*b*c);

}

A.444B.41018

C.4812D.456

54.对于以下递归函数f,调用f(4),其返回值为。

intf(intn)

{returnf(n-1)+n;}

A.10B.11C.0D.以上均不是

55.以下程序的正确运行结果是。

#include

intabc(intu,intv);

main()

{inta=24,b=16,c;

c=abc(a,b);

printf(“%d\n”,c);

}

intabc(intu,intv)

{intw;

while(v)

{w=u%v;

u=v;

v=w;

}

returnu;

}

A.4B.6C.5D.8

56.以下程序的正确运行结果是。

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,2B.不确定C.1,12D.5,25

57.以下程序的正确运行结果是。

#inc1ude

main()

{intk=4,m=1,n;

n=fun(k,m);printf("%d,",n);

n=fun(k,m);printf("%d\n",n);

}

intfun(inta,intb)

{staticintm=0,n=2;

n+=m+1;m=n+a+b;

return(m);

}

A.8,16B.8,17C.8,20D.8,8

58.以下程序的正确运行结果是。

#Iinclude

inttry()

{staticintx=3;

x++;

returnx;

}

main()

{inta,x;

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

x=try();

printf(“%d\n”,x);

}

A.3B.4C.5D.6

59.以下程序的正确运行结果是。

#Iinclude

intf(inta)

{intb=0;

staticintc=3;

a=c++,b++;

returna;

}

main()

{inta=2,i,k;

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

k=f(a++);

printf(“%d\n”,k);

}

A.3B.0C.5D.4

60.以下程序的正确运行结果是。

#Iinclude

intd=1;

intfun(inta)

{intd=5;

d+=a++;

printf(“%d“,d);

}

main()

{inta=3;

fun(a);

d+=a++;

printf(“%d“,d);

}

A.84B.96C.94D.85

二、读程序,写运行结果

一般题

1.以下程序运行结果是______

main()

{inta=4,b=5,c;

c=plus(a,b);

printf(“A+B=%d\n”,c);

}

plus(intx,inty)

{intz;

z=x+y;

return(z);}

2.以下程序运行结果是____

intmax(intx,inty)

{intz;

z=x>y?

x:

y;

return(z);

}

main()

{inta=3,b=10,c;

c=max(3,10);

printf(“%d”,c);

}

3.以下程序运行结果是____

main(){

inta=2,b=3;

change(a,b);

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

}

change(inta,intb){

a=10;b=20;

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

}

4.以下程序的运行结果是_______

inta=3,b=5;

max(a,b)

{intc;

c=a>b?

a:

b;

return(c);

}

main()

{inta=8;

printf(“%d”,max(a,b));

}

5.以下程序的运行结果是__

main()

{

floata=1.5,b=2.5,c;

c=max(a,b);printf("Maxis%f",c);

}

max(floatx,floaty)

{

floatz;

z=x>y?

x:

y;

return(z);

}

6.以下程序的运行结果是_____

main(){

inti=2,p;

p=f(i,++i);

printf("%d",p);

}

intf(inta,intb){

intc;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

return(c);

}

7.以下程序的运行结果是__

#include"stdio.h"

f(){

inta=0;

staticintb=0;

a++;

b++;

printf("a=%d,b=%d,",a,b);

}

main(){

f();

f();

f();

}

 

8.以下程序的运行结果是____

intf(intx,inty){return(y-x)*x;}

main()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

printf(“%d\n”,d);

}

9.以下程序的运行结果是____

voidfun(intx,inty)

{x=x+y;y=x-y;x=x-y;}

main()

{intx=2,y=3;

fun(x,y);

printf(“%d,%d\n”,x,y);

}

10.执行完下列语句段后,i值为:

__

inti;

intf(intx)

{staticintk=0;

x+=k++;

returnx;

}

i=f

(2);

i=f(3);

12.执行完下列语句段后,i值为:

____

inti;

intf(intx)

{return((x>0)?

x*f(x-1):

3);}

i=f(f

(1));

13.以下程序运行后的输出结果是

intf(inta)

{returna%2;}

main()

{ints[8]={1,3,5,2,4,6},i,d=0;

for(i=0;f(s[i]);i++)d+=s[i];

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

}

14.有以下程序运行后的输出结果是____

intf(intn)

{if(n==1)return1;

elsereturnf(n-1)+1;

}

main()

{inti,j=0;

for(i=1;i<3;i++)j+=f(i);

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

}

15.以下程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:

ex1abcdefg10<回车>

则运行的结果是____

#include

main(intargc,char*argv[])

{inti,len=0;

for(i=1;i

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

}

16.以下程序的功能是

voidxx(intx,inty,intz)

{intt;

if(x>y

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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