c语言习题册及答案 下载本文

.

2.求出10至100之内的所有素数数。

3.输入一串字符,直到输入一个星号为止,统计(输出)其中字母(含大小写)个数和数字字符个数。

4.从键盘任意输入两个正整数,求出它们的最大公约数。

5.打印出所有的“水仙花数”,所谓的“水仙花数”是指一个3位数,其各位数字立方和

333

等于该数本身。例如153是一个“水仙花数”,因为153=1+5+3。 6.编程打印下列图形。

1) * 2) ***** *** ***** ***** ***** ******* ***** ********* *****

7.根据下面的公式计算出?的值。从键盘输入要求满足的精度值eps。

?1121231234?1???????????..... 23353573579

作业06 函数

一、选择题

1.已知函数abc的定义为:void abc(){ ……}则函数定义中void的含义是( )。 A)执行函数abc后,函数没有返回值 B)执行函数abc后,函数不再返回 C)执行函数abc后,可以返回任意类型 D)以上三个答案都是错误的 2.已知int p();p是( )。

A)int型变量 B)函数p的调用

C)一个函数声明,该函数的返回值是int型的值 D)强制类型转换表达式中的变量 3.C语言中的函数( )。

A)可以嵌套定义 B)不可以嵌套调用

C)可以嵌套调用,但不能调用自己 D)嵌套调用和调用自己均可 4.C语言中函数返回值的类型是由( )决定的。

A)return 语句中的表达式类型 B)调用该函数的主调函数类型 C)调用函数时临时 D)定义函数时所指定的函数类型

5.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是( )。 A)地址传递 B)值传递

C)由实参传给形参,并由形参传回来给实参 D)由用户指定传递方式 6.以下正确的函数形式是( )。 A)double fun(int x,int y) {z=x+y;return z;} B)fun(int x,y)

.

.

{int z;return z;} C)fun(x,y)

{int x,y;double z;z=x+y;return z;} D)double fun(int x,int y) {double z;z=x+y;return z;} 7.以下正确的说法是( )。

A)定义函数时,形参的类型说明可以放在函数体内 B)return后边的值不能为表达式

C)如果函数值的类型与返回值表达式类型不一致,以函数值类型为准 D)如果形参与实参的类型不一致,以实参类型为准

8.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )。 A)地址传递 B)单向值传递

C)由实参传给形参,再由形参传给实参 D)由用户指定传递方式 9.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )。 A)float型 B)int型 C)long型 D)double型 10.关于return语句,下列正确的说法是( )。

A)可以在同一函数中出现多次 B)在主函数中不能出现

C)必须在每个函数中出现 D)只能在除主函数之外的函数中出现一次 11.在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是( )。

A)extern B)register C)auto D)static 12.将一个函数说明为static后,该函数将( )。

A)既能被同一源文件中的函数调用,也能被其他源文件中的函数调用 B)只能被同一源文件中的函数调用,不能被其他源文件中的函数调用 C)只能被其他源文件中的函数调用,不能被其他源文件中的函数调用 D)既不能被同一源文件中的函数调用,也不能被其他源文件中的函数调用

13.在函数中的复合语句中定义了一个变量,则对于该变量以下正确的说法是( )。 A)只在该复合语句中有效 B)在该函数中有效 C)在本程序范围内均有效 D)为非法变量 14.以下不正确的说法是( )。

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

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

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

15.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )。 A)自动(auto) B)静态(static) C)外部(extern) D)寄存器(register) 16.以下叙述中不正确的是( )。

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

.

.

B)在调用函数时,实参和对应形参的类型要一致 C)全局变量的隐含类别是自动存储类别 D)函数形参可以说明为register变量 17.以下说法中正确的是( )。

A)宏替换是在程序编译时进行的 B)函数调用是在程序编译时进行的

C)宏替换时,如果实参是表达式,应先求表达式的值,再替换 D)函数调用时,如果实参是表达式,应将表达式的值传递给形参 18.以下说法中正确的是( )。

A)define和printf都是C语句 B)define是C语句,printf不是C语句 C)define不是C语句,printf是C语句 D)define和printf都不是C语句 19.以下叙述中正确的是( )

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

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

D)C语言程序中的main()函数必须放在程序的开始部分 20.以下函数 fff(float x)

{ printf(\的类型是( )

A)与参数x的类型相同 B)Void类型 C)int类型 D)无法确定 21.有以下函数调用语句:

fun((exp1,exp2),(exp3,exp4,exp5)); 其中含有的实参个数和是( ) A)1 B)2 C)4 D)5 22.以下程序的输出结果是( ) #include

fun(int a,int b,int c) { c=a*b; } void main() { int c;

fun(2,3,c);

printf(\

A)0 B)1 C)6 D)无定值 23.如下程序的运行结果为( )。 #include<.stdio.h> f(int a)

{ auto int b=0;

.

.

static c=3; b=b+1; c=c+1;

return(a+b+c); } void main() { int a=2,i;

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

printf(\

A)6 7 8 B)7 8 9 C)5 6 7 D)无输出结果 24.分析以下程序的运行结果( )。 #include func(int a,int b) { int temp=a; a=b;b=temp; } void main() { int x,y; x=10;y=20; func(x,y);

printf(\

A)10,20 B)10,10 C)20,10 D)20,20 25.分析一下程序的运行结果( )。 #include int func(int n) { if(n==1)

return 1; else

return(n*func(n-1)); } void mian() { int x; x=func(3);

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

A)5 B)6 C)7 D)8 二、填空题

1.设有如下宏定义:#define SWAP(z,x,y) {z=x,x=y,y=z;}以下程序段通过宏调用实现变量a和b内容的交换。请填空将语句补充完整。int a=5,b=16,c;SWAP( c ,a,b);

2.函数的实参传递到形参有两种方式:(单向值传递 )和( 地址传递 )。 3.在一个被调用的函数内部调用另一个函数的调用方式称为( 嵌套调用 )。在一个函数

.