78循环的练习题:1选择题⑴执行语句:for(i=l:i++4:);后,变量i的值是:()A)3B)4C)5D)不定⑵有如下程序main(){inti,j,x=0;for(i=0;i2;i++){x++;for(j=0;j=3;j++){if(j%2)continue;x++;}x++;}printf(x=%d\n,x);}该程序的执行结果是:()A)x=4B)x=8C)x=6D)x=12⑶以下程序的输出结果是:()main(){inti;for(i=1;i6;i++){if(i%2){printf(#);continue;}printf(*);}printf(\n);}A)#*#*#B)#####C)*****D)*#*#*⑷有如下程序main(){inti,sum;for(i=1;i=3;sum++)sum+=i;printf(“%d\n”,sum);}该程序的执行结果是:()79A)6B)3C)死循环D)0⑸有如下程序main(){intx=23;do{printf(“%d”,x--);}while(!x);}该程序的执行结果是:()A)321B)23C)不输出任何内容D)陷入死循环⑹有以下程序段intk=0while(k=1)k++;while循环执行的次数是:()A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次⑺有以下程序段intx=3do{printf(%d,x-=2);}while(!(--x));其输出结果是:()A)1B)30C)1-2D)死循环⑻有以下程序段intk=0while(k=1)k++;while循环执行的次数是()A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次⑼有以下程序段intx=3do{printf(%d,x-=2);}while(!(--x));其输出结果是()A)1B)30C)1-2D)死循环⑽执行下面的程序后,a的值为()main(){inta,b;80for(a=1,b=1;a=100;a++){if(b=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7B)8C)9D)102指出下列程序段中的错误。⑴计算10!{sum=1;while(x=10);sum=sum*x;}⑵输出1到20之间的整数值(包括20)n=1;while(n20)printf(%d,n++);⑶计算1到10之间的整数和{sum=0;while(x=10);x++;}⑷输出2到100之间的偶数值n=2;do{if(n%2==0)printf(%d\n,n);n+=2;}while(n100);⑸输出99到1之间的奇数值for(i=99;i=1;i+=2)printf(%d\n,i);3分折下列程序的运行结果⑴main(){inti=0,j=1;do{j+=i++;}while(i4);printf(%d\n,i);}81⑵main(){intx=1,total=0,y;while(x=10);{y=x*x;printf(%d\n,y);total+=y;++x;}printf(totalis%d\n,total);}⑶main(){i=3;while(i10){if(i6){i+=2;contunue;}elseprintf(i=%d,++i);}}⑷main(){intn=0,sum=0;do{if(n==(n/2)*2)countinue;sum+=n;}while(++n10);printf(%d\n,sum);}⑸main(){intx=0,y=0,i,j;for(i=0;i2;i++){for(j=0;j3;j++)x++;x-=j;}y=i+j;printf(x=%d;y=%d,x,y);}⑹main(){inti;for(i=1;i=5;++i)82switch(i){case1:printf(\ni=1);countinue;case2:i=1;case3:printf(\ni+3);i+=2;countinue;case4:printf(\ni=%d,i++);break;}}⑺main(){inti,j,k;for(i=1;i=5;i++){for(j=1;j=3;j++){for(k=1;k=4;k++)printf(*);printf(\n);}printf(“\n”);}}⑻运行以下程序后,如果从键盘上输入6514↙,则输出结果为:main(){intm,n;printf(Enterm,n;);scanf(%d%d,&m,&n):while(m!=n){while(mn)m-=n;while(nm)n-=m;}printf(m=%d\n,m);}5请将下列程序补充完整。⑴下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。main(){inti,j;for(i=0;;i++){j=i*10+6;if()continue;printf(%d,j);83}}⑵计算下式的值:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+4+5+….+n)main(){intj,s,p,n;scanf(%d,&n);for(s=p=0,j=1;j=n;j++){p=;s=;}}⑶下面程序是按下列公式求e的值。要求精确到1e-6。e=1+1/1!+1/2!+1/3!+……+1/n!+……#includestdio.hmain(){doublee,t,n;e=0.0;t=n=1.0;while(){e+=t;t=;n=n+1.0;}printf(“e=%f\n”,e);}6从键盘上依次输入一批数据,求其最大值,并统计出其中的正数和负数的个数。7有一分数序列1/2,2/3,3/4,4/5,5/6………,求出这个数列的前20项之和。8输入一行字符,按字母,数字和其他字符分成三类,分别统计各类字符的数目。9将500到600之间能同时被5和7整除的数打印出来,并统计其个数。10计算sin(x)=x-x3/3!+x5/5!-x7/7!+…,直到最后一项的绝对值小于10-7为止。11利用如下无穷级数计算圆周率π:π/4=1-1/3+1/5-1/7+1/9-1/11+……问要计算多少项才能得到值3.14,3.141,3.1415,3.14159?函数练习题1选择题⑴下列对C语言函数的描述中,错误的是:()A)C函数不可以嵌套定义,但可以嵌套调用B)函数必须有返回值,否则函数将无法使用C)在C程序中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参84D)一个C程序中,存在调用关系的函数可放在不同源程序文件中⑵完整的C源程序必须包括的函数是:()A)main函数和一个以上的其他函数B)main函数C)任意一个函数D)库函数⑶C语言程序关于main函数的说法正确的是:()A)main函数位置任意,其他函数可以嵌套定义B)main函数位置任意,函数不可以嵌套定义C)main函数必须在其他函数之前D)main函数必须在其他函数之后⑷函数的实参,不能是:()A)变量B)常量C)语句D)函数调用的表达式⑸在C程序中,当调用函数(假设是有参函数)时实际参数与形式参数空间使用情况是:()A)实际参数与形式参数各占独立的存储单元B)实际参数与形式参数可以共用一个存储单元C)由计算机系统自动指定是否共用存储单元D)由用户指定是否共用存储单元⑹关于return语句说法正确的是:()A)一个函数不能有多个return语句B)return语句返回的值的类型就是函数的返回值的类型C)函数的某次执行可能执行多个return语句D)return语句只能返回一个值⑺返回值为void的函数,其含义是:()A)函数被调用后,函数不返回B)函数返回值为整型C)函数没有返回值D)函数返回值为任意类型⑻下列各种存储类型的变量中,可在编译阶段赋初值的是:()A)自动类型变量B)寄存器类型变量C)auto变量D)内部静态类型变量⑼C语言中,函数形式参数的存储类型是:()A)autoB)staticC)externD)register⑽下列说法正确的是:()A)外部函数不能被其他文件中的函数调用,内部函数可以被其他文件中的函数调用B)外部函数和内部函数都不能被其他文件中的函数调用C)外部函数和内部函数都可以被其他文件中的函数调用D)外部函数可以被其他文件中的函数调用,内部函数不能被其他文件中的函数调用2填空题⑴下列程序计算1/1!-1/2!+1/3!+……+(-1)n+1/n!,请将其补充完整。floatintfun(intm){intj,s;85longintk;floatsum;sum=;s=;k=;for(j=1;j=m;j++){sum=;s=;k=;}returns;}main(){intn;scanf(%d,&n);printf(%f,fun(n));}⑵下列程序判断某年是否为闰年,请将其补充完整。intfun(intyear){if()return();elsereturn();}main(){intyear;printf(“pleaseenteryear:”);;if()printf(“bissextile”);elseprintf(“notbissextile”);}.⑶用递归实现将输入小于32768的整数按逆序输出。如输入12345,则输出54321。请将程序补充完整。#includestdio.hmain(){longn;printf(Entern:);scanf(%ld,&n);invert(n);printf(\n);}86invert(longm){printf(%ld,);m=;if();}3分析下列程序的执行结果⑴func(intx){staticintc=3;c++;x++;return(c+x);}main(){intx=1,y;y=func(2);printf(\n%d,y);y=func(x);printf(\n%d,y);}⑵inta=3,b=4,x=3,y=4;voidf(intx,inty){intk;k=a;a=b;b=k;k=x;y=x;x=k;}main(){f(a,b);f(x,y);printf(a=%db=%d\n,a,b);printf(x=%dy=%d\n,x,y);}⑶intfa(inti){intnum;if(i==1){num=1;return(num);}else{num=fa(i-1)*i;return(num);}}main(){inti,j=0;for(i=1;i=4;i++)87j=j+fa(i);printf(%d\n,j);}⑷func(inta){staticintm=0;m=m+a;return(m);}main(){intk,sum=0;for(k=1;k5;k++)sum=sum+func(k);printf(%d\n,sum);}⑸main(){voidf();externintA;intb=0;staticintc;printf(\n%d,%d,%d,A,b,c);A+=3;f();printf(\n%d.%d,%d,A,b,c);b+=3;f();}intA=5;voidf(){intb=3;staticintc=2;A+=5;b+=5;c+=5;printf(\n%d,%d,%d,A,b,c);c=b;}⑹main(){inti=10;printf(i=%d\n,i);{inti=20;printf(i=%d\n,i);88{inti=30;printf(i=%d\n,i);}}}4写一个函数,求一元二次方程ax2+bx+c=0的根,并输出结果,在main函数中输入三个系数a、b、c的值。5写一个函数,输出1到1000之间的素数。6写一个函数,输入一个十进制数的数字字符串并转换成数字返回。7写一个函数,判断某个整数是否为十六进制回文数,在main函数中输入,并输出运算结果。8写一函数