C语言程序设计习题及答案 联系客服

发布时间 : 星期日 文章C语言程序设计习题及答案更新完毕开始阅读87d5d6086c85ec3a87c2c5ef

ch=getchar(); for( ;low<=high; ) { mid=(low+high)/2; if(ch==str[mid])

{ printf(\ break; }

else if(ch>str[mid]) low=mid+1; else high=mid-1; } }

5.#define N 10 main()

{ int a[N],b[N-1],i;

printf(\ for(i=0;i

{ if(i%4==0) printf(\ printf(\ printf(\}

6.main()

{ int a[200],i,j; int count=0; for(i=0;i<200;i++) a[i]=i+1; a[0]=0;

for(i=1;i<15;i++) if(a[i]!=0)

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

if(a[j]%a[i]==0) a[j]=0; for(i=0;i<200;i++) if(a[i]!=0)

{ count++; printf(\}

} 第六部分 函数

一、判断正误

1.函数是C程序基本组成单位,其中有且仅有一个主函数(即main函数)。 2.一个C语言程序最多只能由一个程序文件组成,而一个程序文件却可以包含多个C语

言程序。

3.C语言规定,函数不可以嵌套调用,但允许嵌套定义。 4.C系统所提供的标准函数是各个C语言版本所固有的,所以在任何情况下都可以调用。 5.C语言函数可以没有参数(即无参函数),但不允许没有可执行性语句。

6.一般情况下,C语言只能有一个返回值,但在使用数组名作为函数参数时,可以往主

调函数带回多个值。

7.如果函数的形参是整型,而调用时的实参是浮点型,则调用结果会因为“类型不匹配”

而产生错误。 8.在一个C语言函数中,可以包含多个return语句,但一次调用只执行其中某一个return

语句。

9.如果被调用函数中不包含return语句,则函数没有返回值,即不可引用该函数的返回

值。

10.调用无参函数时,可以省略函数名后的圆括号。

11.使用任何C语言提供的标准库函数时,都必须嵌入相应的头文件。

12.如果某函数的定义在其调用的后面,则在主调函数中必须对其进行函数声明。

13.外部变量可以在各个函数之间传递数据,但增加了各函数之间的联系,使得程序控

制变得复杂,故应限制性的使用。

14.外部变量可以供其所在的程序文件中的任何函数使用。

15.定义在某函数中的静态局部变量,在程序中多处调用该函数时,前一处调用函数后,

该局部变量的值会保留到后一处调用该函数时该变量的值。

16.静态外部变量(以static限制定义)与一般外部变量的区别是,前者只能供其定义所

在的程序文件使用。

17.在主调函数中对被调用函数进行声明时,可以不指定形参的变量名,但一定要指出

形参的类型名。

18.函数调用时,如果实参个数少于形参个数,则提示出错,但当实参个数多于形参个

数时,则只是截去多余的实参,其结果依然正确。 19.C语言函数的可执行部分只能出现在说明部分之后。(分语句中的声明除外)

20.在C语言中调用函数时,只将实参的值传递给形参,而形参值的改变不会影响实参。 二、填空

1.C语言中,函数的标志是___________,函数体指包括在___________中C语句段。 2.当一个函数不需要返回任何值时,应该指定函数的返回值类型为____________,当函

数的返回值类型是____________或___________时,可以省略指定函数返回值类型。 3.当一个函数有多个参数时,各参数之间用_________________分隔。 4.当在一个函数中需要调用标准函数fabs(),则应该嵌入头文件_________________,

需要调用标准函数puts()时,则应该嵌入头文件_________________。

5.C语言中,函数有____________、____________及____________三种调用方式。

6.函数调用自身,称为______________,因其调用方式不同可以分为______________和

_________________两种。

7.递归调用的两个要素是_________________和_________________。

8.从作用域角度,变量可以分为_________________和_________________两类,从变量

存储属性可以分为_________________和_________________两类。

9.C语言中的函数一般包含_________________和_________________两个部分。

10.只能供其所在的程序文件调用的函数称为________________函数,相反,既可以供其

所在程序文件调用,也能供其他程序文件调用的函数则称为________________函数,前者在定义时以________________修饰,不加修饰时的缺省的类型为________________。 三、单项选择

1.C语言程序由函数组成,以下说明正确的是( )。

A.主函数必须在其它函数之前定义,函数内可以嵌套定义函数

B.主函数可以在其它函数之前或之后定义,函数内不可以嵌套定义函数 C.主函数可以在其它函数之前或之后定义,函数内可以嵌套定义函数 D.主函数必须在其它函数之前定义,函数内不可以嵌套定义函数 2.下列说法正确的是( )。

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

B.在C语言程序中,要调用的函数必须在main()函数中进行定义 C.C语言程序总是从main()函数开始执行

D.C语言程序中的main()函数必须放在程序的开始部分。 3.以下关于函数调用的说法错误的是( )。

A.单独构成语句 B.出现在表达式中 C.做为函数的实参 D.做为函数的形参

4.已知函数fun1的定义如下, 则以下说明正确的是( )。 void fun1()

{ ………… }

A.函数fun1没有返回值 B.调用函数fun1,将不再返回主调函数 C.函数fun1的返回值类型不确定 D.以上说明都不对 5.以下说法错误的是( )。

A.函数的自动变量可以赋初值,但每调用一次则赋一次初值 B.函数调用时,实参和对应形参在类型上只需赋值兼容 C.外部变量的隐含类型是自动存储类别

D.函数形参的存储类型是自动(auto)类型的变量。 6.C语言中函数返回值的类型是由( )决定。

A.return语句中的表达式类型 B.调用该函数的主调函数类型 C.调用函数时临时 D.定义函数时所指定的函数类型 7.以下说法不正确的是( )。

A.不同函数中可以使用相同的变量名 B.形式参数是局部变量

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

D.在一个函数内部的复合语句中定义的变量在本函数范围内有效 8.凡在函数内部定义且未指定存储类别的变量,其存储类别是( )。

A.自动(auto) B.静态(static) C.外部(extern) D.寄存器(register) 9.在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则

该变量需要的存储类别是( )。

A.extern B.auto C.static D.register 10.以下叙述错误的是( )。

A.在所有函数之外定义的变量称为外部变量,外部变量是全局变量 B.在一个函数中既可以使用本函数中的局部变量,也可以使用外部变量 C.外部变量定义和外部变量说明的含义不同

D.若在同一个源文件中,外部变量与局部变量同名,但外部变量会屏蔽同名的局部变量

11.以下叙述正确的是( )。

A.所有递归程序均可以采用非递归算法实现 B.只有部分递归程序可以用非递归算法实现 C.所有递归程序都不可以采用非递归算法实现 D.以上三种说法都不对

12.以下叙述正确的是( )。

A.递归函数中的形式参数是自动变量 B.递归函数中的形式参数是外部变量 C.递归函数中的形式参数是静态变量

D.递归函数中的形式参数可以根据需要自己定义其存储类别

13.C语言的函数调用过程中,如果函数fun1调用了函数fun2,函数fun2又调用了函数fun1,这种调用关系( )。

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

C.称为函数的递归定义 D.C语言中不允许这样的调用形式,所以提示出错 14.在程序调用标准库函数putchar(),则必须在调用前嵌入的头文件是( ) A.stdio.h B.stdlib.h C.string.h D.iostream.h 四、程序填空 1.已知整型数组w中的元素已经由小到大排序,函数fun用以将整数x插入到数组w中,要求插入后的数组元素依然有序。其中n所指的存储单元中存放着数组元素的个数。 void fun(int w[ ], int x, int *n) { int k,p=0; w[*n]=x;

while (x>w[p]) ____________

for (k=*n;k>p;k--) w[k]=_________; _______________; ++*n; }

2.函数strlen用于确定一个给定字符串str的长度(不包括?\\0?)。 strlen(char *str) { int num=0;

while(__________) ++num; return(________);