C语言函数习题.docx
- 文档编号:14867331
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:11
- 大小:16.96KB
C语言函数习题.docx
《C语言函数习题.docx》由会员分享,可在线阅读,更多相关《C语言函数习题.docx(11页珍藏版)》请在冰点文库上搜索。
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(“%ldn”,fun(3));
}
A.1B.2C.3D.4
3、C语言中形参的默认存储类别是A
A.自动(auto)B.静态(static)
C.寄存器(register)D.外部(extern)
4、下面对函数嵌套的叙述中,正确的是B
A.函数定义可以嵌套,但函数调用不能嵌套
B.函数定义不可以嵌套,但函数调用可以嵌套
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)
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.
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存二、程序分析题
1、以下程序的输出结果是#include
{c=a*b;
returnc;
}
main()
{intc;
fun(2,3,c);printf("%d\n",c);
}
2、分析以下程序的运行结果
#include
{intc;
c=a+b;
returnc;
}
6_
14
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
{
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;
}
:
\n");
printf("排序后的元素序列
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
{
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]);}
123321)
printf("\n");
6、编写一个程序用于判断一个整数是否是回文(回文是关于数字中心对称的,如12321,
#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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 函数 习题