您好,欢迎来到九壹网。
搜索
您的当前位置:首页第6章C语言的函数

第6章C语言的函数

来源:九壹网


课 后 练 习

一、选择题

1.以下说法中正确的是 C 。

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

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

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

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

2.一个函数返回值的类型是由 C 决定的。

A.return语句中表达式的类型

B.在调用函数时临时指定

C.定义函数时指定的函数类型

D.调用该函数的主调函数的类型

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

A.地址传递 B.单向值传递

C.由实参传给形参,再由形参传回给实参 D.由用户指定

4.当调用函数时,实参是一个数组名,则向函数传送的是 B 。

A.数组的长度 B. 数组的首地址

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

5.以下正确的函数声明形式是 C 。

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);

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

A.只在该复合语句中有效 B.在该函数中有效

C.在本程序范围内均有效 D.为非法变量

7.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 A 。

A.自动(auto) B.静态(static)

C.外部(extern) D.寄存器(register)

8.要求定义一个返回值为double类型的名为sum的函数,其功能为求两个 double类型数的和。正确的定义形式为 C 。

A.sum(double x,y)

{ rerurn x+y;

}

B.sum(double x,double y)

{ return x+y;

}

C.double sum(double x,double y)

{ return x+y;

}

D.double sum(double x,double y);

{ return x+y;

}

二、填空题

1.有以下程序,程序运行后的输出结果是 9 。

float fun(int x,int y)

{

return(x+y);

}

void main()

{ int a=2,b=5,c=8;

printf(\"%3.0f\\n\

}

2.有以下程序,执行后输出的结果是 4,3,5 。

void f(int x,int y)

{ int t;

if(x{ t=x; x=y; y=t; }

}

void main()

{ int a=4,b=3,c=5;

f(a,b); f(a,c); f(b,c);

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

}

3.下面程序的输出是 C 。

fun3(int x)

{

static int a=3;

a+=x;

return(a);

}

void main()

{

int k=2, m=1, n;

n=fun3(k);

n=fun3(m);

printf(\"%d\\n\

}

4.程序运行后的输出结果是 22 。

void reverse(int a[ ],int n)

{

int i,t;

for(i=0;i{ t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}

}

void main()

{

int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;

reverse(b,8);

for(i=6;i<10;i++)

s+=b[i];

printf(\"%d\\n\

}

5.以下程序输出结果是 8 。

#include \"stdio.h\"

int abc(int u,int v);

void main()

{

int a=24,b=16,c;

c=abc(a,b);

printf(\"%d\\n\

}

int abc(int u,int v)

{

int w;

while(v)

{

w=u%v; u=v; v=w;

}

return u;

}

6.下面程序的输出是 31 。

void fun(int x, int y, int z)

{ z=x*x+y*y; }

void main()

{

int a=31;

fun(5,2,a);

printf(\"%d\

}

三、编程题

1.编写程序实现下述功能:从键盘输入四个实数,然后输出其中最大的一个。要求定义并使用求两数中较大者的函数float max(float x, float y),输入与输出由主函数完成。

#include

float max(float x,float y);

void main()

{

float a,b,c,d;

printf(\"请输入4个实数:\\n\");

scanf(\"%f%f%f%f\

printf(\"4个数中的最大值为%f\\n\

}

float max(float x,float y)

{

if(x>y)

return x;

else

return y;

}

2.编写程序实现下述功能:从键盘输入一个字符,若是数字,显示“yes”,否则显示“no”。要求定义函数isdigit(char ch),其功能是检查ch是否数字字符,是则返回1,否则返回0。主函数完成键盘输入和屏幕输出。

#include

int isdigit(char ch1);

void main()

{

char ch;

printf(\"请输入一个字符:\");

ch=getchar ();

printf(\"\\n\");

if(isdigit(ch))

printf(\"yes\\n\");

else

printf(\"no\\n\");

}

int isdigit(char ch1)

{

int a;

if(ch1>='0'&&ch1<='9')

a=1;

else

a=0;

return a;

}

3.编写程序实现下述功能:先从键盘指定个数,再按此个数输入字符,然后输出它们中的最小者。要求定义并使用求数组前n个元素中最小值的函数char min_cn(char b[ ], int n),输入与输出由主函数完成。

#include

char min_cn(char b[],int n);

void main()

{

char a[10];

int i,n;

printf(\"请指定字符个数:\\n\");

scanf(\"%d\

printf(\"请输入n个字符:\");

for(i=0;ia[i]=getche(); //此处不能使用getchar函数

printf(\"其中最小字符为%c\\n\

}

char min_cn(char b[],int n)

{

int i;

char min;

min=b[0];

for(i=1;i{

if(b[i]min=b[i];

}

return min;

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务