C语言函数习题.doc_第1页
C语言函数习题.doc_第2页
C语言函数习题.doc_第3页
C语言函数习题.doc_第4页
C语言函数习题.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题一、选择题1、以下只有在使用时才为该类型变量分配内存的存储类说明是-_B_。A.auto 和static B.auto和registerC.register和static D.extern和register2、下述程序的输出结果是_A_。long fun(int n) long s; if(n=1| n=2) s=2; else s=n-fun(n-1); return s;main() printf(“%ldn”,fun(3);A.1 B.2 C.3 D.43、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.1 B.2 C.4 D.59、以下程序的输出结果是_C_。fun( int a,int b,int c) c=a*a+b*b;main() int x=22;fun(4,2,x);printf(”%d”,x);A.20 B.21 C.22 D.2310、以下程序的输出结果是_A _。#include 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,3011、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为_B_。A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式12、建立函数的目的之一是_B_.A.提高程序的执行效率B.提高程序的可读性C.减少程序的篇幅D.减少程序文件所占内存二、程序分析题1、以下程序的输出结果是_6_。#include fun(int a,int b,int c) c=a*b; return c;main( ) int c; fun(2,3,c); printf(%dn,c);2、分析以下程序的运行结果_14_。#include int func(int a,int b) int c; c=a+b; return c;main( ) int x=6,r; r=func(x,x+=2); printf(%dn,r);3、分析以下程序的运行结果_8, 4_。#include int d=1;void fun(int p) int d=5; d+=p+; printf(%d ,d);main( ) int a=3; fun(a); d+=a+; printf(%dn,d);4、分析以下程序的运行结果_6,15,15_。#include int d=1;int fun(int p) static int d=5; d+=p; printf(%d ,d); return d;main( ) int a=3; printf(%dn,fun(a+fun(d);5、有如下程序#include long fib(int n) if(n2)return(fib(n-1)+fib(n-2);else return(2);main() printf(%dn,fib(3);该程序的输出结果是_4_.三、编程题1、输入两个整数,求它们相除的余数。用带参的函数来编程实现。#include int qy(int x,int y) int z; z=x%y; return z;void main() int x,y; int z; printf(请输入两个整数:n); scanf(%d %d,&x,&y); z=qy(x,y); printf(%d与%d的余数为%dn,x,y,z);2、编写一个判断奇偶数的函数,要求在主函数中输入一个整数,通过被调用函数输出该数是奇数还是偶数的信息。#include void jos(int x) if (x=0) printf(该数非奇数也非偶数n); else if (x%2=0) printf(该数为偶数n); else printf(该数为奇数n);void main() int x; printf(请输入一个整数n); scanf(%d,&x); jos(x); 3、已有变量定义和函数调用语句:int a=1,b=-5,c; c=fun(a,b);fun函数的作用是计算两个数之差的绝对值,并将差值返回调用函数,请编写程序#include int jdz(int x,int y) int z; z=x-y; if (z0) z*=-1; else z*=1; return z; void main() int x,y,z; printf(请输入二个整数n); scanf(%d %d,&x,&y); z=jdz(x,y); printf(%d与%d的绝对值为%dn,x,y,z); 。4、编写函数fun,它的功能是输出一个200以内能被3整除且个位数为6的所有整数,返回这些数的个数。#include void fun() int i,n; for(i=0;i20;i+) n=i*10+6; if (n%3!=0) continue; printf(%dn,n); void main() fun();5、编写一个函数对数据序列按从大到小的顺序进行排序,在主函数中输出排序后的结果。数据序列为:19 12 34 15 20 90 17 51 32 8#includevoid fun(int a) int i,k,tem; for(i=0;i10;i+) printf(%4d,ai); printf(n); for(k=0;k9;k+) for(i=0;iai) tem=ai; ai=ai+1;ai+1=tem; printf(排序后的元素序列:n); for (i=0;i10;i+) printf(%4d,ai); printf(n); void main() int a10=19,12,34,15,20,90,17,51,32,8; printf(排序前的元素序列:n); fun(a);选择法#include void main()int a=19,12,34,15,20,90,17,51,32,8; int i,j,k,tem;printf(倒序前);for(i=0;i10;i+) printf(%4d,ai); printf(n); printf(倒序后); for(i=0;i9;i+) k=i; for(j=i+1;jak) k=j; tem=ak; ak=ai; ai=tem; for(i=0;i10;i+)printf(%4d,ai); printf(n); 6、编写一个程序用于判断一个整数是否是回文(回文是关于数字中心对称的,如12321,123321)。#include #include void fun(char a,int n) int i; for(i=0;in/2;i+) if(ai!=an-i-1) printf(该数组不是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论