C语言函数习题.docx
- 文档编号:15411086
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:13
- 大小:16.88KB
C语言函数习题.docx
《C语言函数习题.docx》由会员分享,可在线阅读,更多相关《C语言函数习题.docx(13页珍藏版)》请在冰点文库上搜索。
C语言函数习题
习题
一、选择题
1、以下只有在使用时才为该类型变量分配内存的存储类说明是----____B______。
2、下述程序的输出结果是____A____。
long fun〔int n〕
{ long s;
if〔n==1||n==2〕
s=2;
else s=n-fun〔n-1〕;
return s;
}
main〔〕
{ printf〔“%ld\n〞,fun〔3〕〕;
}
3、C语言中形参的默认存储类别是____A________。
A.自动〔auto〕 B.静态〔static〕
C.存放器〔register〕 D.外部〔extern〕
4、下面对函数嵌套的表达中,正确的选项是_____B_____。
A.函数定义可以嵌套,但函数调用不能嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
5、下面关于形参和实参的说法中,正确的选项是____B_____。
A.形参是虚设的,所以它始终不占存储单元
6、关于全局变量的作用范围,以下说法正确的选项是____D_______。
7、调用一个函数,此函数中没有return语句,以下说法正确的选项是:
该函数____D____。
8、以下函数调用语句中含有____B_____个实参。
fun〔〔exp1,exp2〕,〔exp3,exp4,exp5〕〕;
9、以下程序的输出结果是__C______。
fun〔int a,int b,int c〕
{ c=a*a+b*b;
}
main〔〕
{ int x=22;
fun〔4,2,x〕;
printf〔〞%d〞,x〕;
}
10、以下程序的输出结果是____A_____。
#include
intfunc(intx,inty)
{ static int m=2,k=2;
k+=m+1;
m=k+x+y;
returnm;
}
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_____。
C.由实参传给形参,再由形参传回给实参
12、建立函数的目的之一是__B_____.
二、程序分析题
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()
{ 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;
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;
z=x%y;
returnz;
}
voidmain()
{
intx,y;
intz;
printf("请输入两个整数:
\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)printf("该数非奇数也非偶数\n");
elseif(x%2==0)printf("该数为偶数\n");
elseprintf("该数为奇数\n");
}
voidmain()
{
intx;
printf("请输入一个整数\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;
}
voidmain()
{
intx,y,z;
printf("请输入二个整数\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;
printf("%d\n",n);
}
}
voidmain()
{
fun();
}
5、编写一个函数对数据序列按从大到小的顺序进展排序,在主函数中输出排序后的结果。
数据序列为:
1912341520901751328
#include
voidfun(inta[])
{
inti,k,tem;
for(i=0;i<10;i++)
{
printf("%4d",a[i]);
}
printf("\n");
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;
}
printf("排序后的元素序列:
\n");
for(i=0;i<10;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
voidmain()
{
inta[10]={19,12,34,15,20,90,17,51,32,8};
printf("排序前的元素序列:
\n");
fun(a);
}选择法
#include
voidmain()
{
inta[]={19,12,34,15,20,90,17,51,32,8};
inti,j,k,tem;
printf("倒序前");
for(i=0;i<10;i++)
{
printf("%4d",a[i]);
}
printf("\n");
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++)
{
printf("%4d",a[i]);
}
printf("\n");
}
6、编写一个程序用于判断一个整数是否是回文〔回文是关于数字中心对称的,如12321,123321〕。
#include
#include
voidfun(chara[],intn)
{
inti;
for(i=0;i { if(a[i]! =a[n-i-1]) { printf("该数组不是回文函数\n"); break; } elseprintf("该数组是回文函数\n"); break; } } voidmain() { chara[1024]; intn; printf("请输入一串字符\n"); gets(a); n=strlen(a); fun(a,n); } 【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 函数 习题