1、1本章(函数)共 3 种题型:一、填空题(共 95 道)二、判断题(共 20 道)三、填空题 (共 10 道)*一、填空题(共 95 道)1考题所在章节: 函数本题序号:124下列说法中错误的是A 一个数组只允许存储同种类型的变量。B 在对数组进行初始化时,给定的数据元素个数可以比数组本身大小多。C 数组的名称其实是数组在内存中的首地址。D 当数组名作为参数被传递给某个函数时,函数运行过程中原数组中的元素的值可能被修改。参考答案B2考题所在章节: 函数本题序号:126下列叙述中错误的是A 主函数中定义的变量在整个程序中都是有效的。B 在其它函数中定义的变量在主函数中也不能使用。C 形式参数也是
2、局部变量。D 复合语句中定义的变量只在该复合语句中有效。参考答案A3.考题所在章节: 函数本题序号:127若函数的形参为一维数组,则下列说法中正确的是A 调用函数时的对应实参必为数组名。B 形参数组可以不指定大小。C 形参数组的元素个数必须等于实参数组的元素个数。D 形参数组的元素个数必须多于实参数组的元素个数。参考答案B4.考题所在章节: 函数本题序号:128在函数的说明和定义时若没有指出函数的类型,则A 系统自动地认为函数的类型为整型。B 系统自动地认为函数的类型为字符型。C 系统自动地认为函数的类型为实型。D 编译时会出错。参考答案A5.考题所在章节: 函数2本题序号:135下面叙述中正
3、确的是A 对于用户自己定义的函数,在使用前必须加以说明。B 说明函数时必须明确其参数类型和返回类型。C 函数可以返回一个值,也可以什么值也不返回。D 空函数不完成任何操作,所以在程序设计中没有用处。参考答案C6. 考题所在章节: 函数本题序号:157下面正确的函数定义形式是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);参考答案A7.考题所在章节: 函数本题序号:158若调用一个函数,且此函数中没有 return 语句,则正确的说法是( ) 该函数
4、:A 没有返回值 B 返回若干个系统默认值;C 能返回一个用户所希望的函数值; D 返回一个不确定的值参考答案D8.考题所在章节: 函数本题序号:159下面说法中不正确的是( )在 C 语言中A 实参可以是常量、变量或表达式;B 形参可以是常量、变量或表达式;C 函数的参数是函数间传递数据的一种手段;D 实参个数应与对应的形参个数相等,类型匹配;参考答案B9.考题所在章节: 函数本题序号:162C 语言允许函数返回值类型缺省定义,此时该函数隐含的返回值类型是A float 型 B int 型 C long 型D double 型3参考答案B10.考题所在章节: 函数本题序号:163C 语言规定
5、,函数返回值的类型是由A return 语句中的表达式类型所决定;B 调用该函数时的主调函数类型所决定;C 调用该函数时系统临时决定;D 在定义该函数时所指定的函数类型所决定;参考答案D11.考题所在章节: 函数本题序号:164下面函数调用语句含有实参的个数为( )func(exp1,exp2),(exp3,exp4,exp5);A 1B 2C 5D 4参考答案B12.考题所在章节: 函数本题序号:165以下错误的描述是( )函数的调用可以 A 出现在执行语句中; B 出现在一个表达式中;C 为一个函数的实参; D 作为一个函数的形参;参考答案D13.考题所在章节: 函数本题序号:167若使用
6、一维数组名作函数参数,则以下正确的说法是A 必须在主调用函数中说明此数组的大小;B 实参数组类型与形参数组类型可以匹配;C 在被调函数中,不需要考虑形参数组的大小;D 实参数组名与形参数组名必须一致;参考答案C14.考题所在章节: 函数本题序号:168下正确的说法是( ) 。如果在一个函数中的复合语句中定义了一个变量,则该变量4A 只在该复合语句中有效 B 在该函数中有效C 本程序中有效 D 为非法变量参考答案A15.考题所在章节: 函数本题序号:169以下不正确的说法是A 在不同函数中可以使用相同的名字的变量;B 形式参数是局部变量;C 在函数内定义的变量只在本函数范围内有效;D 在函数内的
7、复合语句中定义的变量在本函数范围内有效;参考答案D考题所在章节: 函数16.本题序号:309如果主调函数传递数组给被调函数,对函数形参的说明有错误的是A int a(float x,int n)B int a(float *x,int n)C int a(float x10,int n)D int a(float x,int n)参考答案D17.考题所在章节: 函数本题序号:312在 C 语言中,函数的数据类型是指A 函数返回值的数据类型B 函数形参的数据类型C 调用该函数时的实参的数据类型D 任意指定的数据类型参考答案A18.考题所在章节: 函数本题序号:313已知如下定义的函数:fun1(
8、int a)printf(“n%d“,a);则该函数的数据类型是_。A 与参数 a 的类型相同B void 型C 没有返回值5D 无法确定参考答案A19.考题所在章节: 函数本题序号:449有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是A 3B 4C 5D 有语法错参考答案A20.考题所在章节: 函数本题序号:477以下所列的各函数首部中,正确的是A void play(var :Integer,var b:Integer)B void play(int a,b)C void play(int a,int b)D Sub p
9、lay(a as integer,b as integer)参考答案C21.考题所在章节: 函数本题序号:483当调用函数时,实参是一个数组名,则向函数传送的是A 数组的长度B 数组的首地址C 数组每一个元素的地址D 数组每个元素中的值参考答案B22.考题所在章节: 函数本题序号:624在 C 语言中,形参的缺省存储类是A autoB registerC staticD extern参考答案A23.考题所在章节: 函数本题序号:688在 C 语言中关于函数的正确叙述是6A 函数的定义和调用均可以嵌套B 函数的定义不可以嵌套,但函数的调用可以嵌套C 函数的定义和调用均不可以嵌套D 函数的定义可以
10、嵌套,但函数的调用不可以嵌套参考答案B24.考题所在章节: 函数本题序号:702若用数组名作为函数调用时的实参,则实际上传递给形参的是A 数组首地址B 数组的第一个元素值C 数组中全部元素的值D 数组元素的个数参考答案A25.考题所在章节: 函数本题序号:891有以下程序char fun(char x , char y) if(xb) return(a);else return(b);main() int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf(“%dn“, r);程序运行后的输出结果是( ) 。A 3B 6C 8D 12参考答案D30.考题所
11、在章节: 函数本题序号:977在一个 C 程序中A main 函数必须出现在所有函数之前 B main 函数可以在任何地方出现8C main 函数必须出现在所有函数之后 D main 函数必须出现在固定位置参考答案B31.考题所在章节: 函数本题序号:1040C 语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是A void B int C float D double参考答案B32.考题所在章节: 函数本题序号:1093在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A 地址传递 B 单向值传递C 由实参传给形参,再由形参传回实参 D 传递方式由用户指定参考答案B33
12、.考题所在章节: 函数本题序号:1145以下程序的输出结果是( ) 。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 31D 无定值参考答案C34.考题所在章节: 函数本题序号:1198有如下程序 int runc(int a,int b) return(a+b); 9main( ) int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(“%dn”,r); 该程序的输出的结果是 ( ) 。A 12B 13 C 14 D 15
13、参考答案D35.考题所在章节: 函数本题序号:1397以下叙述中不正确的是A 在不同的函数中可以使用相同名字的变量B 函数中的形式参数是局部变量C 在一个函数内定义的变量只在本函数范围内有效D 在一个函数内的复合语句中定义的变量在本函数范围内有效参考答案D36.考题所在章节: 函数本题序号:1413有以下程序viod fun (int a,int b,int c) a=456; b=567; c=678;main() int x=10,y=20,z=30;fun (x,y,z);printf(“%d,%d,%dn“,z,y,x);输出结果是( ) 。A 30,20,10 B 10,20,30C
14、 456,567,678D 678,567,456参考答案A37.考题所在章节: 函数本题序号:1464以下对 C 语言函数的有关描述中,正确的是A 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B C 函数既可以嵌套定义又可以递归调用10C 函数必须有返回值,否则不能使用函数D C 程序中有调用关系的所有函数必须放在同一个源程序文件中参考答案A38.考题所在章节: 函数本题序号:1513C 语言中,函数的隐含存储类别是A autoB static C externD 无存储类别参考答案C39.考题所在章节: 函数本题序号:1549以下说法中正确的是A C 语言程序总
15、是从第一个的函数开始执行B 在 C 语言程序中 ,要调用的函数必须在 main()函数中定义C C 语言程序总是从 main()函数开始执行D C 语言程序中的 main()函数必须放在程序的开始部分参考答案C40.考题所在章节: 函数本题序号:1701关于流程控制语句,下列说法正确的一项是A 一个自定义函数中的 return 语句只能出现一次;B break 语句只适用于几种循环语句格式,表示终止当前层的循环;C 在循环体中遇到 continue,表示结束本次循环,直接进行下次循环条件的判断;D 在自定义函数的执行过程中,return 语句可能被多次执行。参考答案C41.考题所在章节: 函数
16、本题序号:1755若有定义语句:int m=5,4,3,2,1,i=4;, 则下面对 m 数组元素的引用错误的是A m-iB m2*2C m2*2D mmi参考答案C42.考题所在章节: 函数本题序号:175811若有定义语句:char s10=“123456700“;,则 strlen(s)的值是A 7B 8C 9D 10参考答案A43.考题所在章节: 函数本题序号:1806以下关于 return 语句的叙述中正确的是A 一个自定义函数中必须有一条 return 语句B 一个自定义函数中可以根据不同情况设置多条 return 语句C 定义成 void 类型的函数中可以有带返回值的 retur
17、n 语句D 没有 return 语句的自定义函数在执行结束时不能返回到调用处参考答案C44.考题所在章节: 函数本题序号:1838在 C 语言中,以下程序的输出结果是( )fun(int x,int y,int z) z=x*y;main()int a=2,b=3,c=5;fun(a,b,c);printf(“%d“,c);A 5B 6C 2D 3参考答案A45.考题所在章节: 函数本题序号:1842fun(int x,int y,int z) z=x+y;return z;main()int a=2,b=3,c=6;c=fun(a,b,c);printf(“%d“,c);A 5B 6C 9D
18、 3参考答案A46.考题所在章节: 函数本题序号:1848在 C 语言中,用于求平方根的函数是()。A logB expC powD sqrt参考答案12D47.考题所在章节: 函数本题序号:1850在 C 语言中,下列语句的输出结果是( )。 printf(“%dn“, strlen(“ATSn121“);A A.11B B.10C C.8D D.7参考答案A48.考题所在章节: 函数本题序号:1859在 C 语言中,以下哪个函数用于将字符输出到标准输出设备( )。A getw()B open()C read()D putchar()参考答案D49.考题所在章节: 函数本题序号:1870下列
19、程序执行结果是()。 main( ) int a=8; fun(a); printf(“%dn“, a); fun( int a) int b; b=a*a; return b; A 64B 8C 0D 不定值参考答案B50.考题所在章节: 函数本题序号:1874在 C 语言中,用于求字符串长度的函数是()。A strcpyB strlenC strcmpD strcat参考答案B51.考题所在章节: 函数本题序号:1892在 C 语言中,若有定义 float a54,则数组 a 占内存的字节数()。A A.80B B.2013C C.40D D.25参考答案A52.考题所在章节: 函数本题序
20、号:1941在 C 语言中,函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。A 将串 str1 复制到串 str2 中后再连接到串 str3 之后B 将串 str1 连接到串 str2 之后再复制到串 str3 之后C 将串 str2 复制到串 str1 中后再将串 str3 连接到串 str1 之后D 将串 str2 连接到串 str1 之后再将串 str1 复制到串 str3 中参考答案C53.考题所在章节: 函数本题序号:1944在 C 语言中,用于求|x|的函数是 ()。A log(x)B exp(x)C fabs(x)D sqrt(x)参考答案C
21、54.考题所在章节: 函数本题序号:1960在 C 语言中,用于字符串连接的函数是()。A strcpyB strlenC strcmpD strcat参考答案D55.考题所在章节: 函数本题序号:1966在 C 语言中,用于字符串复制的函数是()。A strcpyB strlenC strcmpD strcat参考答案A56.考题所在章节: 函数本题序号:1976在 C 语言中,为了判断两个字符串 s1s2,应当使用( )。A if (s1s2)14B if (strcat(s1,s2)C if (strcpy(s1,s2)D if (strcmp(s1,s2)0)参考答案D57.考题所在章
22、节: 函数本题序号:1979在 C 语言中,若有定义 float a34,则数组 a 可以有 ( )个元素。A 30B 12C 24D 25参考答案B58.考题所在章节: 函数本题序号:2000在 C 语言中,为了比较两个字符串 s1 和 s2 是否相等,应当使用( )。A if (s1=s2)B if (s1=s2)C if (strcpy(s1,s2)D if (strcmp(s1,s2)=0)参考答案D59.考题所在章节: 函数本题序号:2028在 C 语言中,执行下面语句后,输出的结果是( )。int x=10,y=3; printf(“%dn“,y=x/y);A 0 B 3 C 1
23、D 不确定的值参考答案B60.考题所在章节: 函数本题序号:2053在 C 语言中,下列符号中可以作为函数名的是( )。A _sysfB $abcC 5asD x-a参考答案A61.考题所在章节: 函数本题序号:207915在 C 语言中,若有定义:int y=3,x7=1,2,3,4,5,6,7,则表达式 y+=x6的值为( )。A 8B 9C 10D 11参考答案C62.考题所在章节: 函数本题序号:2105fun(int x,int y) int z;z=x+y;return z;main()int a=2,b=3,c=6;c=fun(a,b);printf(“%d“,c);A 5B 6
24、C 9D 3参考答案A63.考题所在章节: 函数本题序号:2110fun(int x,int y,int z) z=x+y;main()int a=2,b=3,c=5;fun(a,b,c);printf(“%d“,c);A 5B 6C 9D 3参考答案A64.考题所在章节: 函数本题序号:2172以下叙述正确的是( ) 。A 构成 C 程序的基本单位是函数B 可以在一个函数中定义另一个函数C main()函数必须放在其它函数之前D 所有被调用函数一定要在调用之前进行定义参考答案A65.考题所在章节: 函数本题序号:2177以下叙述中错误的是( )。A C 程序必须由一个或一个以上的函数组成 B
25、 函数调用可以作为一个独立的语句存在C 若函数有返回值,必须通过 return 语句返回 D 函数形参的值也可以传回给对应的实参参考答案 D1666.考题所在章节: 函数本题序号:2178下面对函数嵌套的叙述中,正确的是( )。A 函数定义可以嵌套,但函数调用不能嵌套B 函数定义不可以嵌套,但函数调用可以嵌套C 函数定义和函数调用均不能嵌套D 函数定义和函数调用均可以嵌套参考答案B67.考题所在章节: 函数本题序号:2183C 语言规定,函数返回值的类型是由_。A return 语句中的表达式类型所决定B 调用该函数时的主调函数类型所决定C 调用该函数时系统临时决定D 在定义该函数时所指定的函
26、数类型所决定参考答案 D68.考题所在章节: 函数本题序号:2184以下程序的输出结果是( )。#include “stdio.h”void fun() int a,b;a=100; b=200;main() int a=5,b=7;fun();printf(“%d%d”,a,b);A 100200 B 57 C 200100 D 75参考答案B69.考题所在章节: 函数本题序号:2185以下函数调用语句中含有( )个实参。fun (exp1,exp2),(exp3,exp4,exp5);A 1 B 2 C 4 D 517参考答案B70.考题所在章节: 函数本题序号:2186以下程序的输出结果
27、是( )。#include “stdio.h”void fun(int a,int b,int c) a=456;b=567;c=678;main() int x=10,y=20,z=30;fun(x,y,z);printf(“%d,%d,%d”,z,y,x);A 30,20,10 B 10,20,30C 456,567,678 D 678,567,456参考答案A71.考题所在章节: 函数本题序号:2187以下程序的输出结果是( )。fun( int a,int b,int c) c=a*a+b*b;main() int x=22;fun(4,2,x);printf(“%d”,x);A 20
28、 B 21 C 22 D 23参考答案C72.考题所在章节: 函数本题序号:2189下述程序的输出结果是( )ling fun(int n) long s;18if(n=1| n=2)s=2;else s=n-fun(n-1);return s;main() printf(“%ldn”,fun(3);A 1B 2C 3D 4参考答案A73.考题所在章节: 函数本题序号:2210在宏定义#define PI 314159 中,用宏名 PI 代替一个( )。A 常量B 单精度数C 双精度数D 字符串参考答案D74.考题所在章节: 函数本题序号:2540下列 4 行代码定义了求两数之和的函数,其中,
29、行_是错误的。A void add(float a,float b)B float c;C c=a+b;D return c;参考答案A75.考题所在章节: 函数本题序号:2542以下正确的函数声明语句是_。A double fun(int x;y);B double fun( int x;int y);C double fun(int x , int y);D double fun(int x,y);参考答案C76.考题所在章节: 函数本题序号:2545以下程序的输出结果是_。19int m=13;int fun2(int x,int y)int m=3;return (x*y-m);int
30、 main (void)int a=7;b=5;printf(“%dn “,fun2(a,b)/m);return 0;A 1B 2C 3D 10参考答案B77.考题所在章节: 函数本题序号:2548下列程序的输出结果是_。void fun(int a,int b,int c) a=456; b=567; c=678;int main(void)int x=10,y=20,z=30;fun(x,y,z);printf(“%d,%d,%dn“,x,y,z);return 0;A 30,20,10B 10,20,30C 456,567,678D 678,567,456参考答案B78.考题所在章节:
31、 函数本题序号:2554以下程序的输出结果是_。int a,b;20void fun()a=100;b=200;int main(void)int a=5,b=7;fun();printf(“%d,%dn“,a,b);return 0;A 100,200B 5,7C 200,100D 7,5参考答案B79.考题所在章节: 函数本题序号:2557以下数组定义不正确的是_。A int a23; B int b3;C int c100100=0;D int d3=1,2,1,2,3,1,2,3,4;参考答案D80.考题所在章节: 函数本题序号:2558以下能正确定义数组并正确赋初值的语句是_。A i
32、nt N=5,bNN;B int a12=1,3;C int c2=1,2,3,4;D int d32=1,2,34参考答案D81.考题所在章节: 函数本题序号:2559下列对 C 语言字符数组的描述中错误的是_。A 字符数组可以存放字符串B 字符数组中的字符串可以整体输入、输出C 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D 不可以用关系运算符对字符串进行比较参考答案21C82.考题所在章节: 函数本题序号:2560若有定义语句“int a36;”,按在内存中的存放顺序,a 数组的第 10 个元素是_。A a04B a13C a03D a14参考答案B83.考题所在章节: 函数本
33、题序号:2561设有数组定义“char array=“China“;”,则数组 carray 所占的空间为_。A 4 个字节B 5 个字节C 6 个字节D 7 个字节参考答案C84.考题所在章节: 函数本题序号:2562执行下面的语句段后“int k=3,s2;s0=k;k=s1*10”,变量 k 的值为_。A 不定值B 33C 30D 10参考答案A85.考题所在章节: 函数本题序号:2563有以下定义“char x=“abcdefg“;char y=a,b,c,d,e,f,g;”,则正确的叙述为_。A 数组 x 和数组 y 等价B 数组 x 和数组 y 的长度相同C 数组 x 的长度大于数
34、组 y 的长度D 数组 x 的长度小于数组 y 的长度参考答案C86.考题所在章节: 函数本题序号:25651 下列能正确定义字符串的语句是_。A char str= 064;B char str=“kx43“;22C char str=“ “;D char str=“0“;参考答案D87.考题所在章节: 函数本题序号:2568以下程序输出结果是_。int main(void) char ch7=“65ab21“;int i,s=0;for(i=0;chi=0c=a+b;return c;main( ) int x=6,y,r;y=x+2;r=func(x,y);printf(“%dn“,r)
35、; 参考答案1:149.考题所在章节: 函数本题序号:611有如下程序long fib(int n) if(n2) return(fib(n-1)+fib(n-2);else return(2);main( ) printf(“%dn“,fib(3); 该程序的输出结果是_1_。 29参考答案1:410.考题所在章节: 函数本题序号:612以下程序的输出结果是_1_ f(int b ,int m,int n) int i,s=0;for(i=m;in;i=i+2) s=s+bi;return s;main( ) int x,a =1,2,3,4,5,6,7,8,9;x=f(a,3,7);printf(“%dn“,x);参考答案1:10