2012C函数章节练习题目(12月3日)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

函数章节要完成的练习上机实验题目(所有编程题目要提交!)C函数补充实验)))))、注意:以下所有函数都需验证,即编写主函数调用所编函数(1)求两个整数的最大公约数和最小公倍数。用一个函数求最大公约数,用另一函数根据求出的最大公约数求最小公倍数。①不用全局变量,分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输人,并传送给函数l,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,再返回到主函数输出最大公约数和最小公倍数。②用全局变量的方法,分别用两个函数求最大公约数和最小公倍数,但其值不由函数带回。将最大公约数和最小公倍数都设为全局变量,在主函数中输出它们的值。(2)写一个函数,输入一个n进制数m,输出相应的十进制数。例如:当n=5,m=3204时,则调用该函数输出429。因为(3*53+2*52+0*51+4*50=429)。当n=2,m=10100时,则调用该函数输出20。1、课本P216函数实验中所有的题目2、课本P136程序设计题目3、C函数补充实验4、本文档中所有的编程、改错、填空以及选择5、基础加分题目:求解定积分intn2dec(intn,intm){…}(3)编写程序求:1K+2K+3K+…+nK,假定n为6,k为4。要求使用函数的嵌套调用。设计一个主函数main()完成数据的输出,设计一个求mn的函数,设计一个求1K+2K+3K+…+nK之和的函数。(4)用递归法求n阶勒让德多项式,递归公式为:(5)写一函数convert,使给定的一个二维数组(3*3)转置。voidconvert(intx[3][3]){…}*(6)已知abc+bcc=1333,其中a、b、c均为一位整数,编写一个函数,求出a、b、c分别代表什么数字。提示:对于a、b、c取值范围(0-9)内任意的组合,设计一个函数,判断给定方程abc+bcc=1333是否成立。选择题目1.在C语言的函数中,【】。A)必须有形参B)形参必须是变量名C)可以有也可以没有形参D)数组名不能作形参2.以下不正确的说法是:C语言规定【】。A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参传递给形参时,要求实参必须有确定的值D)形参应与其对应的实参类型可以不一致3.以下正确的说法是【】。A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参的类型不一致,以实参类型为准4.下面函数调用语句含有实参的个数为【】。1(n=0)Pn(x)=x(n=1)((2n-1)*x*Pn-1(x)-(n-1)*Pn-2(x))/n(n1)func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)55.以下错误的描述是:函数调用可以【】。A)出现在执行语句中B)出现在一个表达式中C)作为一个函数的实参D)作为一个函数的形参6.C语言规定,函数返回值的类型是由【】。A)return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定1.如果在一个函数中的复合语句中定义了一个变量,则该变量【】。A)只在该复合语句中有效B)在该函数中有效C)在本程序范围内均有效D)为非法变量2.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为【】。A)自动(auto)B)静态(static)C)外部(extern)D)寄存器(register)3.如果要限制一个变量只能为本文件所使用,必须通过【】来实现。A)外部变量说明B)静态内部变量C)静态外部变量D)局部变量说明4.以下程序运行后,输出结果是【】。intfunc(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;return(m);}voidmain(){intk=4,m=1,p;p=func(k,m);printf(%d,,p);p=func(k,m);printf(%d\n,p);}A)8,15B)8,16C)8,17D)8,85.以下程序运行后,输出结果是【】。intd=1;voidfun(intp){intd=5;d+=p++;printf(%d,d);}voidmain(){inta=3;fun(a);d+=a++;printf(%d\n,d);}A)84B)99C)95D)446.以下程序的正确运行结果是【】。voidnum(){externintx,y;inta=15,b=10;x=a-b;y=a+b;}intx,y;voidmain(){inta=7,b=5;x=a+b;y=a-b;num();printf(%d,%d\n,x,y);}A)12,2B)不确定C)5,25D)1,12改错题目1.在考生目录下,给定程序MODI1.C的功能是:求一维数组a中值为奇数的元素的平均值。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9,21,18,程序的输出应为:Theresultis:8.33。程序中有两处错误,错误都在提示行:/***********found***********/的下面一行,请考生注意。请改正程序中的错误,使它能得出正确的结果。注意:程序中的其它地方请考生不要随意改动,不得增行或删行,也不得更改程序的结构!#includeconio.h#includestdio.hdoubleaverage(intarr[],intn){intk=0,i;doubles;s=0;for(i=0;in;i++)/************found************/if(arr[i]%2=1){s=s+arr[i];k++;}return(s/k);}main(){inta[12]={10,4,2,7,3,12,5,34,5,9,21,18};doubles;clrscr();/************found************/s=average(a[12],12);printf(Theresultis:%.2f\n,s);}2.在考生目录下,给定程序MODI1.C的功能是:求一维数组a中所有元素的平均值。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9,程序的输出应为:Theaveris:9.100000。程序中有两处错误,错误都在提示行:/***********found***********/的下面一行,请考生注意。请改正程序中的错误,使它能得出正确的结果。注意:程序中的其它地方请考生不要随意改动,不得增行或删行,也不得更改程序的结构!#includeconio.h#includestdio.hfloataverage(intarr[])/************found************/{floataver,s;inti;for(i=0;i10;i++)/************found************/s+=i;aver=s/i;return(aver);}main(){inta[10]={10,4,2,7,3,12,5,34,5,9};clrscr();printf(Theaveris:%f\n,average(a));}填空题目1.在考生目录下,给定程序FILL1.C的功能是:从键盘上输入一个正整数n,计算并输出n的阶乘。例如,如果从键盘上输入8,程序的运行结果应为:Theresultis:40320。程序有两个空(1)、(2)需要补充完整。请将程序中的____(1)____和____(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!#includemath.h#includeconio.h#includestdio.hlongfac(intn){inti;longt=1;for(i=2;i=n;i++)t=t*i;return(t);}main(){intn;longints;clrscr();printf(Enteranintegernumber:);/************found************/____(1)____;s=fac(n);/************found************/printf(Theresultis:____(2)____\n,s);}2.在考生目录下,给定程序FILL1.C的功能是:统计两个正整数[m,n]之间所有既能被3整除也被7整除的整数的个数。例如:m=1,n=1000,则程序的输出结果应为:Theresultis:47。程序有两个空(1)、(2)需要补充完整。请将程序中的____(1)____和____(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!#includemath.h#includeconio.h#includestdio.hintfun(m,n)intm,n;{inti,t,s=0;if(mn){t=m;m=n;n=t;}for(i=m;i=n;i++)/************found************/if(____(1)____)s++;return(s);}main(){intm=1,n=1000;clrscr();/************found************/printf(Theresultis:%d\n,____(2)____);}3.在考生目录下,给定程序FILL1.C的功能是:求一维数组a中既不能被3整除也不能被5整除的元素之和。例如:如果数组a中的元素如下:1,8,5,10,6,18,7,2,4,12,9,11,则程序的输出结果应为:Theresultis:33。程序有两个空(1)、(2)需要补充完整。请将程序中的____(1)____和____(2)____删除后,在相应的位置填入正确答案并调试直到得到正确结果为止。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构!#includemath.h#includeconio.h#includestdio.hlongintfun(arr,n)intarr[12],n;{inti;longints=0;for(i=0;in;i++)if(arr[i]%3!=0&&arr[i]%5!=0)/************found************/____(1)____;return(s);}main(){inta[12]={1,8,5,10,6,18,7,2,4,12,9,11};clrscr();/************found************/printf(Theresultis:%ld\n,____(2)____);}编程题目:1.在考生目录下,要求程序PROG1.C的功能是:将字符串倒序存放并输出。例如,当字符串为ThisIsacProgram输出:margorPcasIsihT注意:部分源程序存在文件PROG1.C中。请在/*******begin********/与/********end*********/之间填入你编写的若干语句。请勿改动其它位置的任何内容。main()函数中的最后一行以及main()函数后面的内容,考生不必阅读,但千万不要对这些内容作任何改动。#includeconio.h#includestdio.hvoidfun(charstr1[]){/***********begin***********//************end************/}main(){charstr1[80]=ThisIsacProgram;clrscr();pr

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功