c语言习题汇总(6-10章)(2)

2019-05-24 17:29

第7章 数组 ·101·

习 题 (第七章)

1. 选择题

(1) 在C语言程序中,有关函数的定义正确的是( )。

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

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

(2) 以下对C语言函数的有关描述中,正确的是( )。

A. 在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可递归调用

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

D. C程序中有调用关系的所有函数必须放在同一个源程序文件中 (3) 函数调用语句f((e1,e2) , (e3,e4,e5));中参数个数是( )。

A. 5 B. 4 C. 2 D. 1 (4) C语言中,若对函数类型未加显式说明,则函数的隐含类型为( )。

A. void B. double (5) C语言中函数的隐含存储类型是( )。

A. auto B. static

C. char C. extern

D. int

D. 无存储

类型

(6) 能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是

( )。

A. return这两个数 B. 形参用两个元素的数组

C. 形参用两个这种数据类型的指针 (7) 以下程序的输出结果是( )。

#include

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

int c;

fun(2,3,c) ;

printf(\}

D. 用两个全局变量

A. 0 B. 4 C. 6 D. 无

法确定

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

int f(int n) {

·101·

·102· 第7章 数组

if(n) return f(n-1)+n ; else return n; }

上均不是

A. 10 B. 4 C. 0 D. 以

2. 填空题

(1) 变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于变量 。

(2) 从变量的存储类型来说, 变量不允许初始化, 变量、

变量和 变量可以初始化。其中变量如果不进行初始化,则 变量和 变量的初值不确定,而 变量初值为0。

(3) 静态型内部变量的作用域是 。

(4) 函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。

(5) 函数的形式参数的作用域为 ,全局的外部变量和函数体内定义的局部变量重名时, 变量优先。

(6) 若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 。

(7) 执行下列程序段后,i值为 。

int i;

int f(int x) {

static int k=0; x+=k++; return x; }

i=f(f(1)) ;

(8) 执行i=f(3);后,i值为 。

int i;

int f(int x)

{ return ((x>0)? f(x-1)+f(x-2):1); }

3. 程序阅读题

(1) 程序运行时从键盘输入abcdef,写出输出结果。

#include void fun( ) {

char c ;

if((c=getchar( ))!='\\n') fun( ) ;

·102 ·

第7章 数组

putchar(c); }

void main( )

{ fun( ); }

(2) 阅读下面程序,写出输出结果。

#include #define C 5 int x=1,y=C; void main( ) {

int x;

x=y++; printf(\

if(x>4) { int x ; x=++y; printf(\ x+=y--;

printf(\

}

(3) 阅读下面程序,写出输出结果。

#include int c , a=4 ;

func(int a , int b)

{ c=a*b ; a=b-1 ; b++ ; return (a+b+1) ; } void main( ) {

int b=2 , p=0 ; c=1 ; p=func(b , a) ;

printf(\

}

(4)

阅读函数,写出函数的主要功能。 float av(float a[ ], int n) {

int i; float s;

for(i=0,s=0; i

}

(5)

阅读下面程序,写出输出结果。 #include

unsigned fun6(unsigned num) {

unsigned k=1;

do { k*=num; num/=10; } while(num); return k; }

void main( ) {

unsigned n=26;

·103·

·103·

·104· 第7章 数组

printf(\}

(6) 阅读下面程序,写出输出结果。

#include

void main() {

int a,b,c; int find(int,int,int); scanf(\

printf(\}

int find(int a,int b,int c) {

int u,s,t;

u=((u=(a>b)?a:b)>c)? u:c; t=((t=(a

(7) 阅读下面程序,写出输出结果。

#include

void fun1(int n,int a[ ][3]) {

for(int i=0;i

for(int j=0;j

void main( ) {

int a[3][3]={{6,4,2},{8,6,4},{9,6,3}}; fun1 (3,a);

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

for(int j=0;j<3;j++) printf(\ printf(\ } }

(8) 阅读下面程序,写出输出结果。

#include \

int binary(int x,int a[ ],int n) {

int low=0,high=n-1,mid; while(low<=high) {

mid=(low+high)/2;

if(x>a[mid]) high=mid-1; else if(x

·104 ·

第7章 数组

}

return(-1); }

void main( ) {

static int a[]={4,0,2,3,1}; int i,t,j; for(i=1;i<5;i++)

{

t=a[i]; j=i-1;

while(j>=0&&t>a[j]) {

a[j+1]=a[j]; j--; }

a[j+1]=t; }

printf (\}

·105·

4. 程序设计题

(1) 编一个名为root的函数,求方程ax+bx+c=0的b-4ac,并作为函数的返回值。其中的a、b、c作为函数的形式参数。

(2) 编一个函数,若有参数y为闰年,则返回1,否则返回0。

(3) 编一个无返回值、名为max_min的函数,对两个整数实参能求出它们的最大公约数和最小公倍数并显示。

(4) 编一个名为day_of_year(int year,int month,int day)的函数,计算并返回是该年的第几天。

(5) 编一个名为link的函数,要求如下:

形式参数:s1[40],s2[40],s3[80],存放字符串的字符型数组。 功能:将s2连接到s1后存入s3中。 返回值:连接后字符串的长度。

(6) 编一个函数,返回一维实型数组前n个元素的最大数、最小数和平均值。数组、n和最大数、最小数、平均值均作为函数的形式参数。

(7) 编一函数delchar(s,c),将字符串s中出现的所有c字符删除。编写 main 函数,并在其中调用delchar(s,c) 函数。

(8) 按下面要求编写程序:

①定义函数cal_power(x, n)计算x的n次幂(即xn),函数返回值类型是double。 ②定义函数main(),输入浮点数x 和正整数n,计算并输出下列算式的值。要求调用函数cal_power(x, n)计算x的n次幂。

算式:s = 1/x+1/x2+1/x3+…+1/xn

·105·

2

2


c语言习题汇总(6-10章)(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:招标文件(范本) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: