您好,欢迎访问三七文档
1、C语言规定,在一个源程序中,main函数的位置()。A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后[C]教师批改:C2、凡在函数中未指明存储类别的变量,其隐含的存储类别为A.auto型B.static型C.extern型D.register型[A]教师批改:A3、函数调用语句func((exp1,exp2),(exp3,expD,exp5));中,实参的个数为:A.1B.2C.DD.5[B]教师批改:B4、以下程序的输出结果是fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf(%d,a);}A.0B.29C.31D.无定值[C]教师批改:C5、以下对C语言函数的有关描述中,正确的是A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中[A]教师批改:A6、以下所列的各函数首部中,正确的是A.voidplay(var:Integer,varb:Integer)B.voidplay(inta,b)C.voidplay(inta,intb)D.Subplay(aasinteger,basinteger)[C]教师批改:C7、以下叙述中不正确的是()A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容C.在C中,外部变量的隐含类别是自动存储类别D.在C中,函数形参可以说明为register变量[D]教师批改:C8、用数组名作为函数调用时的实参,实际上传送给形参的是A.数组首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的个数[A]教师批改:A9、当调用函数时,实参是一个数组名,则向函数传送的是A.数组的长度B.数组的首地址C.数组每一个元素的地址D.数组每个元素中的值[B]教师批改:B10、函数调用:strcat(strcpy(str1,str2),str3)的功能是A.将串str1复制到串str2中后再连接到串str3之后B.将串str1连接到串str2之后再复制到串str3之后C.将串str2复制到串str1中后再将串str3连接到串str1之后D.将串str2连接到串str1之后再将串str1复制到串str3中[C]教师批改:C11、一个C程序的执行是从()。A.本程序的main函数开始,到main函数的结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束C.本程序文件的main开始,到本程序文件的最后一个函数的结束D.本程序文件的第一个函数开始,到本程序文件的main函数的结束[C]教师批改:A12、一个C语言程序是由()。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成[B]教师批改:B13、以下说法中正确的是A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分[C]教师批改:C14、以下叙述不正确的是()。A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面[D]教师批改:D15、当调用函数时,实参是一个数组名,则向函数传送的是_____。A)数组的长度B)数组的首地址C)数组每一个元素的地址D)数组每个元素中的值[B]教师批改:B16、请读程序:#includestdio.hf(inb[],intn){inti,r;r=1;for(i=0;i=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(%d\n,x);}上面程序的输出结果是_____。A)720B)120C)24D)6[B]教师批改:B17、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输山结果。两个整数由键盘输入。教师批改:hcf(u,v)intu,v;{inta,b,t,r;if(uv){t=u;u=v;v=t;}a=u;b=v;while((r=b%a)!=0){b=a;a=r;}return(a);}lcd(u,v,h)intu,v,h;{return(u*v/h);}main(){intu,v,h,l;scanf(%d,%d,&u,&v);h=hcf(u,v);printf(H.C.F=%d\n,h);l=lcd(u,v,h);printf(L.C.D=%d\n,l);}19、写一个判素数的函数,在主函数输入一个整数,输出是否素数的信息教师批改:main(){intnumber;scanf(%d,&number);if(prime(number))printf(yes);elseprintf(no);}intprime(number)intnumber;{intflag=1,n;for(n=2;nnumber/2&&flag==1;n++)if(number%n==0)flag=0;return(flag);}20、写一函数,使给定的—个二维数组(3x3)转置,即行列互换。#includestdio.hvoidmain(){inti,j,a[3][3],b[3][3];for(i=0;i3;i++){for(j=0;j3;j++){scanf(%d,&a[i][j]);b[j][i]=a[i][j];}}for(i=0;i3;i++){for(j=0;j3;j++){b[i][j]=a[j][i];printf(%d,b[i][j]);printf();}printf(\n);}}教师批改:#defineN3intarray[N][N];convert(array)intarray[3][3];{inti,j,t;for(i=0;iN;i++)for(j=i+1;jN;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}main(){inti,j;for(i=0;iN;i++)for(j=0;jN;j++)scanf(%d,&array[i][j]);convert(array);for(i=0;iN;i++){printf(\n);for(j=0;jN;j++)printf(%5d,array[i][j]);}}21、写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。教师批改:main(){charstr[100];scanf(%s,str);inverse(str);printf(%s\n,str);}inverse(str)charstr[];{chart;inti,j;for(i=0,j=strlen(str);istrlen(str)/2;i++,j--){t=str[i];str[i]=str[j-1];str[j-1]=t;}}22、写一函数,将两个字符串连接。教师批改:charconcate(str1,str2,str)charstr1[],str2[],str[];{inti,j;for(i=0;str1[i]!=‘\0‘;i++)str[i]=str1[i];for(j=0;str2[j]!=‘\0‘;j++)str[i+j]=str2[j];str[i+j]=‘\0‘;}main(){chars1[100],s2[100],s[100];scanf(%s,s1);scanf(%s,s2);concate(s1,s2,s);printf(\ns=%s,s);}24、写一函数,输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输入1900,应输出“1900”。#includestdio.hvoidmain(){charm[4];inti;for(i=0;i4;i++)m[i]=getchar();m[i]='\0';for(i=0;i4;i++){printf();printf(%c,m[i]);}printf(\n);}教师批改:main(){charstr[80];scanf(%s,str);insert(str);}insert(str)charstr[];{inti;for(i=strlen(str);i0;i--){str[i*2]=str[i];str[i*2-1]=‘‘;}printf(%s\n,str);}34、给出年、月、日,计算该日是该年的第几天。教师批改:main(){intyear,month,day;intdays;scanf(\n%d,%d,%d,&year,&month,&day);days=sum_day(month,day);if(leap(year)&&(month=3))days+=1;printf(days=%d\n,days);}staticintday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}intsum_day(month,day)intmonth,day;{inti;for(i=1;imonth;i++)day+=day_tab[i];return(day);}intleap(year)intyear;{intleap;leap=year%4==0&&year%100!=0||year%400==0;return(leap);}1、程序中定义以下宏#defineS(a,b)a*b若定义intarea;且令area=S(3+1,3+4),则变量area的值为_____。A.10B.12C.21D.28[A]教师批改:A2、以下关于宏替换的叙述不正确的是_____。A.宏替换只是字符替换B.宏名无类型C.宏替换不占用运行时间D.宏替换不占用编译时间[C]教师批改:D3、执行下列语句后,a的值为_____。inta;#defineM(x,y)(x*y)a=M(1+2,3);A.9B.7C.5D.以上均不是[B]教师批改:B4、下列四组选项中,均不是C语言关键字的选项是_____。A.defineIFtypeB.getccharprintfC.invludescanfcaseD.whilegopow[D]教师批改:A
本文标题:C语言5函数
链接地址:https://www.777doc.com/doc-5184123 .html