.
习题
一、选择题
1、以下只有在使用时才为该类型变量分配内存的存储类说明是----____B______。
A.auto 和static B.auto和register
C.register和static D.extern和register
2、下述程序的输出结果是____A____。
long fun(int n)
{ long s;
if(n==1|| n==2)
s=2;
el s=n-fun(n-1);
return s;
}
main()
{ printf(“%ld\n”,fun(3));electoral college
}
A.1 B.2 C.3 D.4
3、C语言中形参的默认存储类别是____A________。
A.自动(auto) B.静态(static)
C.寄存器(register) D.外部(extern)
4、下面对函数嵌套的叙述中,正确的是_____B_____。
A.函数定义可以嵌套,但函数调用不能嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
14
/ 1
.
C.函数定义和函数调用均不能嵌套
D.函数定义和函数调用均可以嵌套
edg含义5、下面关于形参和实参的说法中,正确的是____B_____。
A.形参是虚设的,所以它始终不占存储单元
B.实参与它所对应的形参占用不同的存储单元
C.实参与它所对应的形参占用同一个存储单元
D.实参与它所对应的形参同名时可占用同一个存储单元
6、关于全局变量的作用范围,下列说法正确的是____D_______。
A.本程序的全部范围 B.离定义该变量的位置最接近的函数
C.函数内部范围 D.从定义该变量的位置开始到本文件结束
7、调用一个函数,此函数中没有return语句,下列说法正确的是:该函数____D____。
A.没有返回值 B.返回若干个系统默认值
C.能返回一个用户所希望的函数值 D.返回一个不确定的值
8、以下函数调用语句中含有____B_____个实参。
fun ((exp1,exp2),(exp3,exp4,exp5));
A.1 B.2 C.4 D.5
9、以下程序的输出结果是__C______。
fun( int a,int bkinfolk,int c)
{ c=a*a+b*b;
}
main()
{ int x=22;
fun(4,2,xsottile);
printf(”%d”,x);
14
/ 2
.
}
A.20 B.21 C.22 D.23
10、以下程序的输出结果是____A _____。
#include <stdio.h>
int func (int x,int y)
{ static int m=2,k=2;
k+=m+1;
m=k+x+y;
return m;
}
main()
{ int a=8,b=1,p;
p=func(a,b);
printf(%d,,p);
p=func(a,b);
printf(%d,p);
}
A.14,29 B.14,24 C.14,8 D.14,30
11、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为__B_____。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回给实参
D.由用户指定传递方式
12、建立函数的目的之一是__B_____.
14
/ 3
.
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存
二、程序分析题
1、以下程序的输出结果是____6_____。
#include <stdio.h> ride out
fun(int a,int b,int c)
{ c=a*b;
return c;
}
main( )
{ int c;
fun(2,3,c);
printf(%d\n,c);
}
2、分析以下程序的运行结果____14_____。
#include <stdio.h>
int func(int a,int b)
int c; {
c=a+b;
return c;
}
main( )
14
/ 4
.
{ int x=6,r;
r=func(x,x+=2);
printf(%d\n,r);
}
3、分析以下程序的运行结果__8, 4_______。
#include <stdio.h>
int d=1;
void fun(int p)
{ int d=5;
d+=p++;
printf(%d ,d);
}
main( )
{ int a=3;
fun(a);
d+=a++;
printf(%d\n,d);
}
4、分析以下程序的运行结果复试英语自我介绍____6,15,15______。
#include <stdio.h>
int d=1;
int fun(int p)
{ static int d=5;
d+=p;
14
/ 5
.
printf(%d ,d);
return d;
}
main( )
{ int a=3;
printf(%d\n,fun(a+fun(d)));
}
nhn
5、有如下程序
#include <stdio.h>
long fib(int n)
{ if(n>2)
return(fib(n-1)+fib(n-2));
el return(2);
}
main()
{ printf(%d\n,fib(3));
}
该程序的输出结果是____4雅思托福培训_______.
三、编程题
1、输入两个整数,求它们相除的余数。用带参的函数来编程实现。
#include <stdio.h>
int qy(int x,int y)
{
int z;
14
/ 6
.
z=x%y;
return z;
}
void main()
{
int x,y;
int z;
牰湩晴尨请输入两个整数:\n);
scanf(%d %d,&x,&y);
z=qy(x,y);
printf(%d与%d的余数为%d\n,x,y,z);
} 四级成绩什么时候出来
2、编写一个判断奇偶数的函数,要求在主函数中输入一个整数,通过被调用函数输出该数是奇数还是偶数的信息。#include <stdio.h>
void jos(int x)
{
if (x==0) 牰湩晴尨该数非奇数也非偶数\n);