C语言函数习题.docx
- 文档编号:1660114
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:14
- 大小:17.42KB
C语言函数习题.docx
《C语言函数习题.docx》由会员分享,可在线阅读,更多相关《C语言函数习题.docx(14页珍藏版)》请在冰豆网上搜索。
C语言函数习题
.
习题
一、选择题
1、以下只有在使用时才为该类型变量分配内存的存储类说明是----____B______。
A.auto和staticB.auto和register
C.register和staticD.extern和register
2、下述程序的输出结果是____A____。
longfun(intn)
{longs;
if(n==1||n==2)
s=2;
elses=n-fun(n-1);
returns;
}
main()
{printf(“%ld\n”,fun(3));
}
A.1B.2C.3D.4
3、C语言中形参的默认存储类别是____A________。
A.自动(auto)B.静态(static)
C.寄存器(register)D.外部(extern)
4、下面对函数嵌套的叙述中,正确的是_____B_____。
A.函数定义可以嵌套,但函数调用不能嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
14
/1
.
C.函数定义和函数调用均不能嵌套
D.函数定义和函数调用均可以嵌套
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.1B.2C.4D.5
9、以下程序的输出结果是__C______。
fun(inta,intb,intc)
{c=a*a+b*b;
}
main()
{intx=22;
fun(4,2,x);
printf(”%d”,x);
14
/2
.
}
A.20B.21C.22D.23
10、以下程序的输出结果是____A_____。
#include
intfunc(intx,inty)
{staticintm=2,k=2;
k+=m+1;
m=k+x+y;
returnm;
}
main()
{inta=8,b=1,p;
p=func(a,b);
printf(%d,,p);
p=func(a,b);
printf(%d,p);
}
A.14,29B.14,24C.14,8D.14,30
11、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为__B_____。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回给实参
D.由用户指定传递方式
12、建立函数的目的之一是__B_____.
14
/3
.
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存
二、程序分析题
1、以下程序的输出结果是____6_____。
#include
fun(inta,intb,intc)
{c=a*b;
returnc;
}
main()
{intc;
fun(2,3,c);
printf(%d\n,c);
}
2、分析以下程序的运行结果____14_____。
#include
intfunc(inta,intb)
intc;{
c=a+b;
returnc;
}
main()
14
/4
.
{intx=6,r;
r=func(x,x+=2);
printf(%d\n,r);
}
3、分析以下程序的运行结果__8,4_______。
#include
intd=1;
voidfun(intp)
{intd=5;
d+=p++;
printf(%d,d);
}
main()
{inta=3;
fun(a);
d+=a++;
printf(%d\n,d);
}
4、分析以下程序的运行结果____6,15,15______。
#include
intd=1;
intfun(intp)
{staticintd=5;
d+=p;
14
/5
.
printf(%d,d);
returnd;
}
main()
{inta=3;
printf(%d\n,fun(a+fun(d)));
}
5、有如下程序
#include
longfib(intn)
{if(n>2)
return(fib(n-1)+fib(n-2));
elsereturn
(2);
}
main()
{printf(%d\n,fib(3));
}
该程序的输出结果是____4_______.
三、编程题
1、输入两个整数,求它们相除的余数。
用带参的函数来编程实现。
#include
intqy(intx,inty)
{
intz;
14
/6
.
z=x%y;
returnz;
}
voidmain()
{
intx,y;
intz;
牰湩晴尨请输入两个整数:
\n);
scanf(%d%d,&x,&y);
z=qy(x,y);
printf(%d与%d的余数为%d\n,x,y,z);
}
2、编写一个判断奇偶数的函数,要求在主函数中输入一个整数,通过被调用函数输出该数是奇数还是偶数的信息。
#include
voidjos(intx)
{
if(x==0)牰湩晴尨该数非奇数也非偶数\n);
elseif(x%2==0)牰湩晴尨该数为偶数\n);
汥敳瀠楲瑮?
该数为奇数\n);
14
/7
.
}
voidmain()
{
intx;
牰湩晴尨请输入一个整数\n);
scanf(%d,&x);
jos(x);
}
3、已有变量定义和函数调用语句:
inta=1,b=-5,c;c=fun(a,b);fun函数的作用是计算两个数之差的绝对值,并将差值返回调用函数,请编写程序
#include
intjdz(intx,inty)
{
intz;
z=x-y;
if(z<0)z*=-1;
elsez*=1;
returnz;
14
/8
.
}
voidmain()
{
intx,y,z;
牰湩晴尨请输入二个整数\n);
scanf(%d%d,&x,&y);
z=jdz(x,y);
printf(%d与%d的绝对值为%d\n,x,y,z);
}
。
4、编写函数fun,它的功能是输出一个200以内能被3整除且个位数为6的所有整数,返回这些数的个数。
#include
voidfun()
{
inti,n;
for(i=0;i<20;i++)
{
n=i*10+6;
if(n%3!
=0)continue;
14
/9
.
printf(%d\n,n);
}
}
voidmain()
{
fun();
}
、编写一个函数对数据序列按从大到小的顺序进行排序,在主函数中输出排序后的结果。
583251901715数据序列为:
19123420
#include
voidfun(inta[])
{
inti,k,tem;
for(i=0;i<10;i++)
{
printf(M,a[i]);
}
printf(\
);
14
/10
.
for(k=0;k<9;k++)
for(i=0;i<9-k;i++)
if(a[i+1]>a[i])
{
tem=a[i];
a[i]=a[i+1];
a[i+1]=tem;
}
牰湩晴尨排序后的元素序列:
\n);
for(i=0;i<10;i++)
{
printf(M,a[i]);
}
printf(\
);
}
voidmain()
1114
/
.
{
inta[10]={19,12,34,15,20,90,17,51,32,8};
牰湩晴尨排序前的元素序列:
\n);
fun(a);
选择法}#include
voidmain()
{
inta[]={19,12,34,15,20,90,17,51,32,8};
inti,j,k,tem;
牰湩晴尨倒序前);
for(i=0;i<10;i++)
{
printf(M,a[i]);
}
printf(\
);
牰湩晴尨倒序后);
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if
(a[j]>a[k])k=j;
tem=a[k];
a[k]=a[i];
a[i]=tem;
}
for(i=0;i<10;i++)
{
14
/12
.
printf(M,a[i]);
}
printf(\
);
}
6、编写一个程序用于判断一个整数是否是回文(回文是关于数字中心对称的,如12321,123321)。
#include
#include
voidfun(chara[],intn)
{
inti;
for(i=0;i { if(a[i]!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 函数 习题