C语言上机题库百科园第3章南信大_第1页
C语言上机题库百科园第3章南信大_第2页
C语言上机题库百科园第3章南信大_第3页
C语言上机题库百科园第3章南信大_第4页
C语言上机题库百科园第3章南信大_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第三章为表示关系x≥y≥z,应使用的表达式是A.(x>=y)&&(y>=z)B.(x>=y>=z)C.(x>=y)AND(y>=z)D.(x>=y)&(y>=z)有以下程序main( ){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}履行后输出结果是3.对for(表达式1;;(表达式1;1;表达式3)(表达式1;0;表达式3)

表达式3)

可理解为()。(表达式1;表达式1;表达式3)(表达式1;表达式3;表达式3)若i为整型变量,则以下循环履行次数是()。for(i=2;i==0;)printf("%d",i--);次次无穷次次有以下程序段intn=0,p;do{scanf("%d",&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是______。的值等于12345而且n的值大于等于3的值不等于12345而且n的值小于3的值不等于12345或许n的值小于3的值等于12345或许n的值大于等于36.有以下程序段intn=0,p;do{scanf("%d",&p);n++;}while(p!=12345&&n<3);以下描绘中正确的选项是()。循环中,依据状况能够省略whileB.因为do-while循环中循环体语句只好是一条可履行语句

,因此循环体内不可以使用复合语句循环由do开始,用while结束,在while(

表达式)后边不可以写分号D.在do-while循环体中,必定要有能使

while后边表达式的值变成零

("

假")的操作7.履行语句

for(i=1;i++<4;);

后变量

i

的值是()。A.不定有以下程序main( ){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}履行后输出结果是编译时犯错main( ){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d",a,b);}该程序的输出结果是( ),2,1,1,0以下程序的功能是:按次次读入10名学生4门课程的成绩,计算出每位学生的均匀分并输出,程序以下:main( ){intn,k;floatscore,sum,ave;sum=;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/;printf("NO%d:%f\n",n,ave);}}上述程序运转后结果不正确,调试中发现有一条语句出此刻程序中的地点不正确。这条语句是=sum/=;+=score;("NO%d:%f\n",n,ave);运转以下程序后,输出的结果是main( ){intk=-3;if(k<=0)printf("****\n");elseprintf("&&&&\n");}A.****有语法错误不可以经过编译C.&&&&D.****&&&&下边的程序片断所表示的数学函数关系是y=-1;if(x!=0)y=1;if(x>0)y=1;elsey=0;A.B.C.D.以下程序的输出结果是main( ){intx,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d“,x);}printf(“n”);}70818468以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是()((a>b)&&(b>c))k=1;elsek=0;((a>b)||(b>c))k=1;elsek=0;(a>b)k=1;elseif(b>c)k=1;elsek=0;(a<=b)k=0;elseif(b<=c)k=1;为了防范在嵌套的条件语句if-else中产生二义性,C语言规定:else子句老是与()配对。A.其以后近来的ifB.其以前近来的ifC.缩排地点相同的ifD.同一行上的if为int种类,进人下边的循环以前,t的值为0while(t=1){}则以下表达中正确的选项是______。以上说法都不对循环控制表达式的值为1循环控制表达式的值为0循环控制表达式不合法以下程序段的输出结果是intk,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf(“%dn”,s);语句while(!E);中的表达式!E等价于()。!=1==0==1!=0以下程序段的输出结果是intx=3;do{pritnf(“%3d”,x-=2);}while(!(--x));死循环-20以下程序的运转结果是()。main( ){inti=1,sum=0;while(i<10)sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}=10,sum=9B.运转出现错误=2,sum=1=9,sum=9设有定义:inta=1,b=2,c=3;以下语句中履行成效与其余三个不一样的是()(a>b){c=a,a=b,b=c;}(a>b)c=a,a=b,b=c;(a>b){c=a;a=b;b=c;}(a>b)c=a;a=b;b=c;以下程序中,while循环的循环次数是______main( ){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}死循环,不可以确立次数23.选择构造中的条件与循环构造中循环建立的条件,在写法上能够是任一表达式,但其值只好被判断为“真”或“假”。哪个数作为逻辑“假”值()。非零的数a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为()。不必定有以下程序,若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()#include<>intmain( ){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);return0;}=123n=456p=789=123n=456p=789789=123,n=456,p=789有以下程序main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}履行后输出结果是,2,2,2,3,1,2,2,1以下程序段的输出结果为()。for(i=4;i>1;i--)for(j=1;j<i;j++)putchar('#');A.######B.无C.#D.###有以下程序main(){floatx=,y;if(x<)y=;elseif(x<)y=x;elsey=;printf("%f\n",y);}该程序的输出结果是判断两个字符串能否相等,正确的表达方式是(s1=s2)(s1==s2)(strcmp(s1,s2)=0)(strcmp(s1,s2)==0)若x是int种类变量,以下程序段的输出结果是for(x=3;x<6;x++)printf((x%2)?(“**%d”):(“##%dn”),x);A.B.C.D.语言中,switch后的括号内表达式的值能够是只好为整型和字符型只好为整型任何种类只好为整型,字符型,列举型设j和k都是int种类,则下边的for循环语句()。for(j=0,k=0;j<=9&&k!=876;j++)scanf("%d",&k);A.最多履行9次循环体一次也不履行最多履行10次是无穷循环a=3,b=2,c=1;if(a>b>c)a=b;elsea=c;则a的值为()。为了防范在嵌套的条件语句if-else中产生二义性,C语言规定:else总与( )配对A.同一行上的ifB.其以后近来的ifC.其以前近来的未配对的ifD.缩排地点相同的if以下不正确的if语句形式是()。(x<y){x++;y++;}(x>y&&x!=y);(x==y)x+=y;(x!=y)scanf("%d",&x)elsescanf("%d",&y);构造化程序设计所规定的三种基本控制构造是()。A.树形、网形、环形B.输入、办理、输出C.主程序、子程序、函数次序、选择、循环以下程序的输出结果是main( ){inty=10for(;y>0;y--)if(y%3==0){pritnf(“%d”,--y);continue;}}以下程序的履行结果是main( ){intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);}无穷循环语法错误a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;则c的值为()。不必定以下表达正确的选项是()。语句构成的循环不可以用其余语句构成的循环来取代.B.用do-while语句构成的循环,在while后的表达式为零时结束循环C.用do-while语句构成的循环,在while后的表达式为非零时结束循环.语句构成的循环只好用break语句退出.41.假设全部变量均已正确立义,以下程序段运转后x的值是()。k1=1;k2=2;k3=3;x=15;if(!k1)x--;elseif(k2)x=4;elsex=3;有以下程序,程序运转后的输出结果是()#include<>intmain( ){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i*j;}}printf(“m=%dn”,m);return0;}=2=6=4=543.以下for循环的履行次数是for(x=0,y=0;(y=123)&&(x<4);x++);()。次是无穷循环次D.循环次数不定以下程序的输出结果是()。main( ){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}=2,b=1=2,b=2=1,b=1有以下程序,当履行程序时,按以下方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是(B)#include<>intmain( ){chara,b,c,d;scanf("%c%c",&a,&b);c=getchar( );d=getchar( );printf("%c%c%c%c\n",a,b,c,d);return0;}343以下程序的运转结果是()。main( ){intn;for(n=1;n<=10;n++){if(n%3==0)continue;printf("%d",n);}}B.语言中while和do-while循环的主要差别是()。的循环控制条件比do-while的循环控制条件更严格的循环体最少无条件履行一次的循环体不可以是复合语句同意从外面转到循环体内以下不是无穷循环的语句为()。(;;x++=i);(1){x++;}(y=0,x=1;x>++y;x=i++)i=x;(i=10;;i--)sum+=i;从循环体内某一层跳出,连续履行循环外的语句是语句语句语句D.空语句以下程序的输出为()。main( ){inty=10;while(y--);printf("y=%d\n",y);}构成无穷循环=0=-1=1有以下程序,程序运转后的输出结果是( )#include<>intmain( ){inta=1,b=2;while(a<6){b+=a;a+=2;b%=10;}printf(“%d,%dn”,a,b);return0;},11,1,11,1在以下给出的表达式中,与do--while(E)语句中的(E)不等价的表达式是()。A.(E==0)B.(E>0||E<0)C.(!E==0)D.(E!=0)以下程序段的输出结果是inti,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf(“%dn”,m);履行以下语句后的输出为()。intj=-1;if(j<=1)printf("****\n");elseprintf("%%%%\n");A.%%%%cB.有错,履行不正确C.****D.%%%%以下程序的履行结果是_______.main( ){intnum=0;while(num<=2){num++;printf("%d,",num);}},2,3,,2,3,4,,2,,1,2下边程序的运转结果是#include<>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}57.如有定义语句

inta,b;doublex;

则以下选项中没有错误是(

)((int)(x)%2){case:a++;break;case:b++;break;default:a++;b++;}((int)x%2){case0:a++;break;case1:b++;break;default:a++;b++;}(x%2){case0:a++;break;case1:b++;break;default:a++;b++;}((int)x%{case0:a++;break;case1:b++;break;default:a++;b++;设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是||b+c&&b-c<=bC.!((a<b)&&!c||1)&&b语言程序的三种基本构造是次序构造、选择构造和______构造.递归转移嵌套循环在下述程序中,判断i>j共履行了多少次#include<>main( ){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf(“%dn”,s);break;}s+=i;}}(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是()。(t)<1e-5&&!s/10(t)<1e-5>=1e-5&&t<=-1e-5&&s>-10&&s<1010==0以下表达正确的选项是:A.用do-while构成循环时,只有在while后的表达式为非零时结束循环语句构成的循环不可以用其余语句构成的循环来取代。C.用do-while构成循环时,只有在while后的表达式为零时结束循环语句构成的循环只好用break语句退出。以下程序的输出结果是main( ){inti,sum;for(i=1;i<6;i++)sum+=i;printf(“%dn”sum);}不确立有以下程序,程序运转后的输出结果是()#include<>intmain( ){charb,c;inti;b='a';c='A';for(i=0;i<6;i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\n");return0;}有以下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是=1,b=1=2,b=1=1,b=0=2,b=2以下程序段中,能够正确地履行循环的是()。inta;while(a)s=6;dos-=2;while(s);(i=1;i>10;i++)s=6;m:if(s<100)exit(0);elses-=2;gotom:判断char型变量c能否为大写字母的C的表达式是‘A’<=c<=’Z’(‘A’<=c)AND(‘Z’>=c)(c>=’A’)&&(c<=’Z’)D.(c>=’A’)&(c<=’Z’)以下程序的输出结果是()。main( ){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}=2,b=1=1,b=0=2,b=2=1,b=1下边相关for循环的正确描绘是()。循环是先履行循环循环体语句,后判断表达式B.在for循环中,不可以用break语句跳出循环体循环只好用于循环次数已经确立的状况循环的循环体语句中,能够包含多条语句,但一定用花括号括起来假设全部变量均已正确立义,下边语句段履行后的x的值是a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;在C语言中,为了却束由while语句构成的循环,while后一对圆括号中表达式的值应当为()。非0有以下程序,程序履行后的输出结果是( )#include<>intmain( ){inty=10;while(y--);printf(“y=%dn”,y);return0;}=-1=1构成无穷循环=0有以下程序,程序运转后的输出结果是()#include<>intmain( ){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf("%d\n",b);return0;}有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是()。=1b=3c=2↙=1,b=3,c=2↙↙,3,2↙程序段:intx=12;doubley=;printf(“%d%8.6f”,x,y);的输出结果是(),若变量已正确立义,有以下程序段i=0;doprintf(“%d,”,i);while(i++);printf(“%dn”,i);其输出结果是(),0程序进入无穷循环,1,1以下条件语句中输出结果与其余语句不一样的是()a)printf("%d\n",x);elseprintf("%d\n",y);a==0)printf("%d\n",y);elseprintf("%d\n",x);a==0)printf("%d\n",x);elseprintf("%d\n",y);a!=0)printf("%d\n",x);elseprintf("%d\n",y);有以下程序,程序运转后的输出结果是( )#include<>intmain( ){intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;elsey+=3;printf("%d\n",y);return0;}有以下程序段charname[20];intnum;scanf("name=%snum=%d",name;&num);当履行上述程序,并从键盘输入:name=Lilinum=1001<回车>后,name的值()num==Lili=Lilinum=1001履行以下程序片段时输出的结果是()。intx=13,y=5;printf("%d",x%=(y/=2));已知有以下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是()。inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A.10A20B↙B.10A20B↙C.10A20B↙D.10A20B↙若定义x为double型变量,则能正确输入x值的语句是()。("%5.1f",&x);("%f",x);("%lf",&x);("%f",&x);以下程序段中的变量已正确立义for(i=0;i<4;i++,i++)for(k=1;k<3;k++)printf(“*”);程序段的输出结果是( )A.****B.**C.********D.*有以下程序段,以下表达中正确的选项是()intmain( ){while(getchar( )!='\n');}A.此while语句将无穷循环B.当履行此while语句时,只有按回车键程序才能连续履行C.当履行此while语句时,按随意键程序就能连续履行( )不可以够出此刻while语句的条件表达式中有以下程序:程序运转后的输出结果是( )#include<>intmain( ){inta=7;while(a--);printf("%d\n",a);return0;}if语句的基本形式是:if(表达式)语句,以下对于"表达式"值的表达中正确的选项是()一定是正数能够是随意合法的数值一定是整数值一定是逻辑值设变量均已正确立义而且赋值,以下与其余三组输出构造不一样的一组语句是( )=++x;printf(("%d\n",n);=x++;printf(("%d\n",n);C.++x;printf(("%d\n",x);++;printf(("%d\n",x);如有定义:inta,b;,经过语句scanf(“%d;%d”,&a,&b);,能把整数3赋给变量a,5付给变量b的输入数据是( ),55;5有以下程序#include<>intmain( ){inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);printf("%d,%c,%d,%c",a1,c1,a2,c2);return0;}若想经过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b则正确的输入格式是(以下_代表空格,<CR>代表回车),a,34,b<CR><CR>C.12a34b<CR><CR>有以下程序,程序运转后的输出结果是( )#include<>intmain( ){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%dn”,a,b);return0;},11,11,18,14若i和k都是int种类变量,有以下for语句for(i=0,k=-1;k=1;k++)printf("*****\n");下边对于语句履行状况的表达中正确的选项是()构成无穷循环循环体一次也不履行循环体履行两次循环体履行一次程序设计/*编写函数fun,它的功能是:求n之内(不包含n)同时能被5与11整除的全部自然数之和的平方根s,并作为函数值返回。比方,n为1000时,函数值应为s=。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<>#include<>#include<>doublefun(intn){/***************Begin************//***************End************/}voidmain( ){FILE*wf;printf("s=%f\n",fun(1000));/******************************/wf=fopen("debug\\","w");fprintf(wf,"%lf",fun(1000));fclose(wf);/*****************************/}【参照代码】doublefun(intn){doubles=;inti;for(i=0;i<n;i++)if(i%5==0&&i%11==0)s=s+i;s=sqrt(s);/*对s求平方根*/returns;}P=m!/(n!(m-n)!),比方,m=12,n=8时,运转结果为。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<>#include<>floatfun(intm,intn){/***************Begin************//***************End************/}voidmain( ){FILE*wf;printf("p=%f\n",fun(12,8));/******************************/wf=fopen("debug\\","w");fprintf(wf,"%f",fun(13,8));fclose(wf);/*****************************/}【参照代码】inti;doublep=;for(i=1;i<=m;i++)p=p*i;/*求m!*/for(i=1;i<=n;i++)p=p/i;/*求m!/n!*/for(i=1;i<=m-n;i++)p=p/i;/*求m!/(n!(m-n)!)*/returnp;/*编写函数fun,它的功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤以下:取x1初值为;(2)x0=x1,把x1的值赋给x0;(3)x1=cos(x0),求出一个新的xl;若x0-x1,的绝对值小于,则履行步骤(5),不然履行步骤(2);所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<>#include<>floatfun( ){/***************Begin************//***************End************/}voidmain( ){FILE*out;floatf=fun( );printf("Root=%f\n",f);/******************************/out=fopen("debug\\","w");fprintf(out,"%f",f);fclose(out);/******************************/}【参照代码】floatx1=,x0;do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=1e-6);returnx1;/*输入一个无符号整数,判断该数能否为回文数(注:一个整数,从左向右读和从右向左读都是相同的数,则该数称为回文数,如123321),编写函数fun( ),判断给定的数能否为回文数*/#include<>intfun(intn){/***************Begin************//***************End***************/}intmain( ){FILE*out;inti,n,k[4]={123,123321,3443,200};out=fopen("debug\\","w");scanf("%d",&n);if(fun(n))printf("是回文数!\n");elseprintf("不是回文数!\n");for(i=0;i<4;i++)fprintf(out,"%d\n",fun(k[i]));fclose(out);return0;}【参照代码】intm,t=0;m=n;while(m!=0){t=t*10+m%10;m=m/10;}if(t==n)return1;elsereturn0;/*编写函数fun,函数的功能是:依据以下公式计算s,计算结果作为函数值返回;n经过形参传入。S=1+1/(1+2)+1/(1+2+3)++1/(1+2+3++n)比方,若n的值为11时,函数的值为。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<>#include<>#include<>floatfun(intn){/***************Begin************//***************End************/}voidmain( ){FILE*wf;intn;floats;printf("\nPleaseenterN:");scanf("%d",&n);s=fun(n);printf("Theresultis:%f\n",s);/******************************/wf=fopen("debug\\","w");fprintf(wf,"%f\n",fun(13));fclose(wf);/*****************************/}【参照代码】inti,s1=0;/*

定义整型变量

s1,表示分母

*/floats=;/*

定义单精度变量

s,表示每一项

*/for(i=1;i<=n;i++)

{s1=s1+i;/*

求每一项的分母

*/s=s+s1;

/*求多项式的值

*/}returns;/*请编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数挨次放在放在c数的个位和百位上。比方,当a=45,b=12,调用该函数后,c=5241注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容

c数的十位和千位上,b数的十位和个位数挨次。,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<>#include<>longintfun(inta,intb){/***************Begin************//***************End************/}voidmain( ){inta,b,i;longc;FILE*out,*in;printf("Inputa,b:");scanf("%d%d",&a,&b);c=fun(a,b);printf("Theresultis:%ld\n",c);/******************************/in=fopen("","r");out=fopen("debug\\","w");for(i=0;i<10;i++){fscanf(in,"%d%d",&a,&b);c=fun(a+11,b+22);fprintf(out,"%ld\n",c);}fclose(in);fclose(out);/******************************/}参照代码】longfun(inta,intb){return(a%10)*1000+(b%10)*100+(a/10)*10+b/10;}/*请编一个函数floatfun(doubleh),函数的功能是:对变量h中的值保存两位小数,并对第三位进行四舍五入(规定h中的值为正数)比方,若h值为,则函数返回;若h值为,则函数返回。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<>#include<>floatfun(floath){/***************Begin************//***************End************/}voidmain( ){FILE*wf,*in;floata;printf("Entera:");scanf("%f",&a);printf("Theoriginaldatais:");printf("%f\n\n",a);printf("Theresult:%f\n",fun(a));/******************************/in=fopen("","r");wf=fopen("debug\\","w");for(inti=0;i<10;i++){fscanf(in,"%f",&a);fprintf(wf,"%f\n",fun(a));}fclose(in);fclose(wf);/*****************************/}【参照代码】longt;t=(h*1000+5)/10;return(float)t/100;/*请编写函数fun,它的功能是计算:s=ln(1)ln(2)ln(3)....ln(m)在C语言中可调用log(n)函数求ln(n)。比方,若m的值为20,则fun函数值为。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<>#include<>#include<>doublefun(intm){/***************Begin************//***************End************/}voidmain( ){FILE*wf;printf("%lf\n",fun(20));/******************************/wf=fopen("debug\\","w");fprintf(wf,"%lf",fun(20));fclose(wf);/*****************************/}【参照代码】inti;doubles=;for(i=1;i<=m;i++)s=s+log(i);returnsqrt(s);程序改错/*以下给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)++f(0)+f(1)+f(2)+f(n)的值。比方,当n为5时,函数值应为。f(x)函数定义以下:(x1)(x2)x00x0或x2(x1)(x2)x0f(x)=请更正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>#include<>#include<>/**********ERROR**********/f(doublex){if(x==||x==return;elseif(x<return(x-1)/(x-2);elsereturn(x+1)/(x-2);}doublefun(intn){inti;doubles=,y;for(i=-n;i<=n;i++){y=f(1.0*i);s+=y;}/**********ERROR**********/returns}voidmain( ){printf("%lf\n",fun(5));}【参照答案】doublef(doublex)【参照答案】returns;return(s);/*以下给定程序中,函数fun的功能是:求三个数的最小公倍数。比方,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是330。请更正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>intfun(intx,inty,intz){intj,t,n,m;/**********ERROR**********/j=1;t=m=n=1;/**********ERROR**********/while(t!=0&&m!=0&&n!=0){j=j+1;t=j%x;m=j%y;n=j%z;}returnj;}voidmain( ){intx1,x2,x3,j;printf("Inputx1x2x3:");scanf("%d%d%d",&x1,&x2,&x3);printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);j=fun(x1,x2,x3);printf("Theminimalcommonmultipleis:%d\n",j);}【参照答案】j=0;【参照答案】while(t!=0||m!=0||n!=0)/*以下给定的程序中,函数fun的功能是:计算并输出k之内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。请更正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>#include<>intfun(intk){intm=0,mc=0,j;while((k>=2)&&(mc<10)){/**********ERROR**********/if((k%13=0)||(k%17=0)){m=m+k;mc++;}k--;/**********ERROR**********/)returnm;}voidmain( ){printf("%d\n",fun(500));}【参照答案】if((k%13==0)||(k%17==0))if((k%17==0)||(k%13==0))【参照答案】}/*以下给定程序中,函数fun( )的功能是:依据整型形参m的值,计算以下公式的值:t=1-1/(22)1/(33)...1/(mm)请更正函数fun( )中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>#include<>doublefun(intm){doubley=;inti;/**********ERROR**********/for(i=2;i<m;i++)/**********ERROR**********/y-=1/(i*i);return(y);}voidmain( ){intn=5;printf("\nTheresultis%1f\n",fun(n));}【参照答案】for(i=2;i<=m;i++)【参照答案】y-=(i*i);y=(i*i);/*以下程序中函数fun的功能是:计算正整数num各位上的数字之积。比方,若输入252,则输出应当是20。若输入202,则输出应当是0。请更正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>#include<>longfun(longnum){/**********ERROR**********/longk;do{*=num%10;/**********ERROR**********/num\=10;}while(num);return(k);}voidmain( ){intn;printf("\Pleaseenteranumber:");scanf("%ld",&n);printf("\n%ld\n",fun(n));}【参照答案】longk=1;【参照答案】num/=10;num=num/10;请更正程序中的错误,使它能计算出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>#include<>#include<>doublefun(intm){doublet=;inti;for(i=2;i<=m;i++)/**********ERROR**********/t+=k;/**********ERROR**********/returni;}voidmain( ){intm;printf("\nPleaseenter1integernumber:");scanf("%d",&m);printf("\nTheresultis%1f\n",fun(m));}【参照答案】t+=i;t=t+i;【参照答案】returnt;return(t);在main函数中,若fun( )返回1则输出"YES",若fun( )返回0则输出"NO!"。请更正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>#include<>intfun(intm){intk=2;while(k<=m&&(m%k))/**********ERROR**********/k++/**********ERROR**********/if(m=k)return1;elsereturn0;}voidmain( ){intn;printf("\nPleaseentern:");scanf("%d",&n);if(fun(n))printf("YES\n");elseprintf("NO!\n");}【参照答案】k++;k=k+1;++k;【参照答案】if(k==m)if(m==k)/*以下给定程序中,函数fun的功能是:判断一个整数m是不是素数,假如返回1,不然返回0。在main函数中,若fun( )返回1则输出"YES",若fun( )返回0则输出"NO!"。请更正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得改正程序的构造。试题程序:*/#include<>#include<>intfun(intm){intk=2;while(k<=m&&(m%k))/**********ERROR**********/k++/**********ERROR**********/if(m=k)return1;elsereturn0;}voidmain( ){intn;printf("\nPleaseentern:");scanf("%d",&n);if(fun(n))printf("YES\n");elseprintf("NO!\n");}【参照答案】k++;k=k+1;++k;【参照答案】if(k==m)if(m==k)程序填空1121231234L/*已知以下公式:213535735793下边程序的功能使依据上述公式输出满足精度要求的eps的值,请填空使程序完好。*/#include<>#include<>intmain( ){doubles=,eps,t=;intn;scanf("%lf",&eps);for(n=1;t>=fabs(eps);n++){s+=t;/**********FILL**********/t=[1];}/**********FILL**********/;return0;}【参照答案】t*n/(2*n+1)【参照答案】printf("%lf\n",2*s)printf("%lf",2*s)/*请增补main函数,该函数的功能是:打印出满足个位的数字、十位上的数字和百位上的数字都相等的全部三位数。此题的结果为。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。试题程序:*/#include<>#include<>voidmain( ){intg,s,b;for(g=1;g<10;g++)for(s=1;s<10;s++)for(b=1;b<10;b++){/**********FILL**********/if( )/**********FILL**********/printf("%5d",

);}}【参照答案】g==s&&s==bg==b&&s==bg==s&&g==b【参照答案】g+s*10+b*100b*100+s*10+gg+10*s+100*b100*b+10*s+g100*g+10*s+bg*100+s*10+b/*函数fun的功能是:从三个形参a、b、c中找出中间的数,作为函数值返回。比方,当a=3,b=5,c=4时,中间的数为4。注意:部分源程序给出以下。请勿改动main函数和其余函数中的任何内容

,仅在函数

fun的横线上填入所编写的若干表达式或语句。试题程序:*/#include<>intfun(inta,intb,intc){intt;/**********FILL**********/t=(a>b)?(b>c?b:(a>c?c:【1】))/**********FILL**********/:((a>c)?【2】/**********FILL**********/:((b>c)?c:returnt;

【3】));}voidmain( ){inta1=3,a2=5,a3=4,r;r=fun(a1,a2,a3);printf("\nThemiddlenumberis:%d\n",r);}【参照答案】t=(a>b)?(b>c?b:(a>c?c:a))【参照答案】:((a>c)?a【参照答案】:((b>c)?c:b));/*请增补main函数,该函数的功能是:计算两个自然数n和m(m<10000)之间全部数的和(n和m从键盘输入)。比方,当n=1,m=100时,sum=5050;当n=100,m=1000时,sum=495550。注意:部分源程序给出以下。

温馨提示

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

评论

0/150

提交评论