版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PagePAGE8ofNUMPAGES10函数习题一.选择题1.以下正确的说法是B。A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。2.以下正确的函数定义是D。A)doublefun(intx,inty)B)doublefun(intx,y){z=x+y;returnz;}{intz;returnz;}C)fun(x,y)D)doublefun(intx,inty){intx,y;doublez;{doublez;z=x+y;returnz;}returnz;}3.以下正确的说法是D。A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元4.以下正确的函数声明是C。A)doublefun(intx,inty)B)doublefun(intx;inty)C)doublefun(intx,inty);D)doublefun(intx,y)5.若调用一个函数,且此函数中没有return语句,则正确的说法是D。A)该函数没有返回值B)该函数返回若干个系统默认值C)能返回一个用户所希望的函数值D)返回一个不确定的值6.以下不正确的说法是B。A)实参可以是常量,变量或表达式B)形参可以是常量,变量或表达式C)实参可以为任意类型D)如果形参和实参的类型不一致,以形参类型为准7.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是B。A)地址传递B)值传递C)有实参传给形参,再由形参传给实参D)由用户指定传递方式8.C语言规定,函数返回值的类型是由D决定的。A)return语句中的表达式类型B)调用该函数时的主调函数类型C)调用该函数时由系统临时D)在定义函数时所指定的函数类型9.以下正确的描述是B。A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套D)函数的定义和函数的调用均可以嵌套10.若用数组名作为函数调用的实参,传递给形参的是A。A)数组的首地址B)数组中第一个元素的值C)数组中的全部元素的值D)数组元素的个数11.如果在一个函数中的复合语句中定义了一个变量,则该变量A。A)只在该复合语句中有定义B)在该函数中有定义C)在本程序范围内有定义D)为非法变量12.以下不正确的说法是D。A)在不同函数中可以使用相同名字的变量B)形式参数是局部变量C)在函数内定义的变量只在本函数范围内有定义D)在函数内的复合语句中定义的变量在本函数范围内有定义13.以下不正确的说法是B。A)形参的存储单元是动态分配的B)函数中的局部变量都是动态存储C)全局变量都是静态存储D)动态分配的变量的存储空间在函数结束调用后就被释放了14.下面程序的输出是A。(不同的编译系统可能有不同的结果,6,3,2)inti=2;printf(“%d%d%d”,i*=2,++i,i++);A)8,4,2B)8,4,3C)4,4,5D)4,5,615.已知一个函数的定义如下:doublefun(intx,doubley){……}则该函数正确的函数原型声明为:CA)doublefun(intx,doubley)B)fun(intx,doubley)C)doublefun(int,double);D)fun(x,y);16关于函数声明,以下不正确的说法是C。A)如果函数定义出现在函数调用之前,可以不必加函数原型声明B)如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明C)函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查D)标准库不需要函数原型声明17.以下不正确的说法是D。A)全局变量,静态变量的初值是在编译时指定的B)静态变量如果没有指定初值,则其初值为0C)局部变量如果没有指定初值,则其初值不确定D)函数中的静态变量在函数每次调用时,都会重新设置初值18.以下不正确的说法是B。A)register变量可以提高变量使用的执行效率B)register变量由于使用的是CPU的寄存器,其数目是有限制的C)extern变量定义的存储空间按变量类型分配D)全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求二.填空题1.C语言函数返回类型的默认定义类型是int。2.函数调用语句:fun((a,b),(c,d,e))实参个数为2。3.函数的实参传递到形参有两种方式:值传递和地址传递。4.在一个函数内部调用另一个函数的调用方式称为嵌套调用。在一个函数内部直接或间接调用该函数自身成为函数递归的调用方式。5.C语言变量按其作用域分为外部变量和内部变量。按其生存期分为全局变量和局部变量。6.已知函数定义:voiddothat(intn,doublex){……},其函数声明的两种写法为voiddothat(intn,doublex);和voiddothat(int,double);。7.C语言变量的存储类别有auto,extern,register和static。8.凡在函数中未指定存储类别的局部变量,其默认的存储类别为auto。9.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为static。10.变量被赋初值可以分为两个阶段:即编译阶段和运行阶段。三.程序阅读题1.写出下面程序的运行结果。func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}main(){intk=4,m=1,p1,p2;p1=func(k,m);p2=func(k,m);printf(“%d,%d\n”,p1,p2);}8,172.写出下面程序的运行结果。#defineMAX10inta[MAX],i;sub1(){for(i=0;i<MAX;i++)a[i]=i+i;}sub2(){inta[MAX],i,max;max=5;for(i=0;i<MAX;i++)a[i]=i;}sub3(inta[]){inti;for(i=0;i<MAX;i++)printf(“%d”,a[i]);printf(“\n”);}main(){sub1();sub3(a);sub2();sub3(a);}0246810121416180246810121416183.若输入的值是-125,写出下面程序的运行结果。#include<math.h>fun(intn){intk,r;for(k=2;k<=sqrt(n);k++){r=n%k;while(!r){printf(“%d”,k);n=n/k;if(n>1)printf(“*”);r=n%k;}}if(n!=1)printf(“%d\n”,n);}main(){intn;scanf(“%d”,&n);printf(“%d=”,n);if(n<0)printf(“-”);n=fabs(n);fun(n);}-125=-5*5*54.写出下面程序的运行结果。inti=0;fun1(inti){i=(i%i)*(i*i)/(2*i)+4;printf(“i=%d\n”,i);return(i);}fun2(inti){i=i<=2?5:0;return(i);}main(){inti=5;fun2(i/2);printf(“i=%d\n”,i);fun2(i=i/2);printf(“i=%d\n”,i);fun2(i/2);printf(“i=%d\n”,i);fun1(i/2);printf(“i=%d\n”,i);}i=5i=2i=2i=4i=25.写出下面程序的功能。func(intn){inti,j,k;i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k)==i*i*i+j*j*j+k*k*k)returnn;return0;}main(){intn,k;for(n=100;n<1000;n++)if(k=func(n))printf(“%d”,k);}153370371407四.程序判断题1.下面add函数求两个参数的和;判断下面程序的正误,如果错误请改正过来。voidadd(inta,intb)改为int{intc;c=a+b;return(c);}2.下面函数fun的功能是:将长整型数中偶数位置上的数依次取出,构成一个新数返回,例如,当s中的数为:87653142时,则返回的数为:8642;判断下面程序的正误,如果错误请改正过来。longfun(longs){longt,sl=1;intd;t=0;while(s>0){d=s%10;if(d%2=0){改为==t=d*sl+t;sl*=10;}s\=10;}return(t);}3.下面函数fun的功能是:统计字符串s中各元音字母(即A,E,I,O,U)的个数,注意:字母不分大,小写;判断下面程序的正误,如果错误请改正过来。fun(chars[],intnum[5]){intk;i=5;for(k=0;k<i;k++)num[i]=0;for(k=0;s[k];k++){i=-1;switch(s){case‘a’:case‘A’:i=0;break;添加红色部分case‘e’:case‘E’:i=1;break;case‘i’:case‘I’:i=2;break;case‘o’:case‘O’:i=3;break;case‘u’:case‘U’:i=4;break;}if(i>=0)num[i]++;}}4.函数fun的功能是:根据整型形参m,计算如下公式的值:判断下面程序的正误,如果错误请改正过来。fun(intm){doubley=0,d;inti;for(i=100;i<=m;i+=100){d=(double)i*(double)I;改为iy+=1.0/d;}return(y);}5.下面函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;判断下面程序的正误,如果错误请改正过来。voidfun(chars[]){inti,j;for(i=0,j=0;s[i]!=’\0’if(s[i]>=’0’&&s[i]<=’9s[j]=s[i];改为s[j++]s[j]=”\0”}五.程序填空题1.下面函数用“折半查找法”从有10个数的a数组中对关键字m查找,若找到,返回其下标值,否则返回-1,请填(2)空使程序完整。经典算法提示:折半查找法的思路是先确定待查元素的范围,将其分成两半,然后比较位于中间点元素的值。如果该待查元素的值大于中间点元素的值,则将范围重新定义为大于中间点元素的范围,反之亦反。intsearch(inta[10],intm){intx1=0,x2=0,mid;while(x1<=x2){mid=(x1+x2)/2;if(m<a[mid])【1x2=mid-1】;elseif(m>a[mid])【2x1=mid+1】;elsereturn(mid);}return(-1);}2.del函数的作用是删除有序数组a中的指定元素x,n为数组a的元素个数,函数返回删除后的数组a元素个数,请填(2)空使程序完整。intdel(inta[10],intn,intx){intp=0,i;while(x>=a[p]&&p<n)【1p++】;for(i=p-1;i<n-1;i++)【2a[i]=a[i+1]return(n-1);}3.以下程序的功能是计算函数,请填(3)空使程序完整。#include<stdio.h>【1floatfun(floata,floatb)】;main(){floatx,y,z,f;scanf(“%f,%f,%f”,&x,&y,&z);f=fun(【2x+y,x-y】);f+=fun(【3z+y,z-y】);printf(“f=%d”,f);}floatfun(floata,floatb){return(a/b);}4.avg函数的作用是计算数组array的平均值返回,请填(3)空使程序完整。floatavg(floatarray[10]){inti;floatavgr,sum=0;for(i=1;【1i<10】;i++)sum+=【2array[i]】;avgr=sum/10;【3returnavgr】;}六.编程题1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,且两个整数的输入也在主函数。#include<stdio.h>intmax(intm,intn){intw;while(n){w=m%n;m=n;n=w;}returnm;}intmin(intm,intn){returnm*n/max(m,n);}main(){intm,n;scanf("%d,%d",&m,&n);printf("%d,%d\n",max(m,n),min(m,n));}2.写一个判素数的函数,在主函数输入一个数,输出是否为素数的信息。#include<math.h>#include<stdio.h>intprime(intm){inti;for(i=2;i<=sqrt(m);i++) if(m%i==0) return0;return1;}main(){intm;scanf("%d",&m);if(prime(m))printf("%dis\n",m);elseprintf("%disnot\n",m);}3.写一个函数,使给定的一个二维数组(N×N)转置,即行列互换。(N是不大于10的数,由输入决定)。(可不作)4.编写一个fun函数voidfun(chars1[],chars2[]),将两个字符串s1和s2连接起来存放在s1中。voidfun(chars1[],chars2[]){ inti,j; for(i=0;s1[i]!=’\0’for(j=0;(s1[i]=s2[j])!=’\0’}5.编写一个fun函数:longfun(chars[]),将一个数字字符串转换为一个整数(不得调用标准库函数)。例如,若输入字符串“-1234”#include<ctype.h>longfun(chars[]){ inti,n,sign;for(i=0;isspace(s[i]);i++)/*skipwhitespace*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年辽宁广告职业学院单招职业适应性考试备考试题及答案解析
- 2026年甘肃机电职业技术学院单招职业适应性测试备考试题及答案解析
- 2026年广东南华工商职业学院单招职业适应性测试备考题库及答案解析
- 2026年江西服装学院单招职业适应性考试备考题库及答案解析
- 2026年青海农牧科技职业学院单招职业适应性测试模拟试题及答案解析
- 2026年林州建筑职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年青岛酒店管理职业技术学院单招职业适应性考试模拟试题及答案解析
- 2026年河南推拿职业学院单招职业适应性测试模拟试题及答案解析
- 2026年青海卫生职业技术学院单招职业适应性测试模拟试题及答案解析
- 2026年青岛港湾职业技术学院单招职业适应性测试模拟试题及答案解析
- 学堂在线 雨课堂 学堂云 文物精与文化中国 期末考试答案
- 关于印发《2026年度安全生产工作计划》的通知
- 跨境电子商务渠道管理
- (21)普通高中西班牙语课程标准日常修订版(2017年版2025年修订)
- GB/T 7631.7-2025润滑剂、工业用油和有关产品(L类)的分类第7部分:C组(齿轮)
- 2025年江苏中烟笔试试题
- 洗洁精产品介绍
- 财务给销售培训销售知识课件
- 年产1000吨溴代吡咯腈农药中间体项目可行性研究报告模板申批拿地用
- 太空探索基础设施建设施工方案
- 2025年中国复合材料电池外壳行业市场全景分析及前景机遇研判报告
评论
0/150
提交评论