C程序填空改错及答案

合集下载

C语言程序改错题及标准答案

C语言程序改错题及标准答案
/********1 *******/
for(i=0;i<=10;i++) {//i<10循环的个数不对,如果i<=10话则i=1;那下面的应改为i==1
scanf("%f",&x);
/******* 2 ********/
if(i=1) { max=x;min=x;}// i==0保证第一次时条件成立
t=t*10+i;//t=t*10+1;
s=s+t;
}
s=s*a;
printf("%d\n",s);
}
8、
#include<stdio.h>
#include<math.h>
voidmain()
{floatx,eps,s=1,t=1,i=1;
scanf("%f%f",&x,&eps);
do{
/***** 1*****/
if(x>max)max=x;
if(x<min) min=x;
}
printf("%f,%f\n",max,min);
}
10、.在考生目录下,有Modify.c程序,该程序中"/*****N*****/"的下
一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。
t=-t*x/++i;//t= -t*x/i++;
s+=t;
/*****2*****/
} while(fabs(t)<eps)//while(fabs(t)>=eps);
printf("%f\n",s);

c语言改错题及答案

c语言改错题及答案

c语言改错题及答案【篇一: c 语言二级上机(t 填空 ,改错 ,编程 )题库及答案】100套题目(每套题目包含 3 道题:一道程序填空题、一道程序修改题、一道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题)二级 c 语言上机试题汇编※※※※※※※※※※※※※※※※※※※※※※※第01套:给定程序中,函数 fun 的功能是:将形参 n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针 n 传回所指变量。

例如,输入一个数:27638496 ,新的数:为739 。

请在程序的下划线处填入正确的内容并把下划线删除 , 使程序得出正确的结果。

注意:源程序存放在考生文件夹下的blank1.c中。

不得增行或删行,也不得更改程序的结构!给定源程序:#include stdio.hvoid fun(unsigned long *n){ unsigned long x=0, i; int t;i=1;while(*n)/**********found**********/{ t=*n % __1__;/**********found**********/if(t%2!= __2__){ x=x+t*i; i=i*10; }*n =*n /10;}/**********found**********/*n=__3__;}main(){ unsigned long n=-1;while(n99999999||n0){ printf(please input(0n100000000): ); scanf(%ld,n); }fun(n);printf(\nthe result is: %ld\n,n);}【参考答案】(1)10 (2) 0 (3) x解题思路:第一处: t 是通过取模的方式来得到*n 的个位数字,所以应填:10 。

C语言程序改错——答案

C语言程序改错——答案
请改正程序中的错误,使它能得出 正确的结果。 int fun(float x[],int n) {
int j,c=0; /**********FOUND**********/
float j=0;
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资0配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高高与中中带资资负料料荷试试下卷卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试.,卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试5交写卷、底重保电。要护气管设装设线备置备4敷高动调、设中作试电技资,高气术料并中课3中试且资件、包卷拒料中管含试绝试调路线验动卷试敷槽方作技设、案,术技管以来术架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

大学C语言期末考试练习题程序改错(带详解答案)

大学C语言期末考试练习题程序改错(带详解答案)

y=3.5+x;
printf(“y=%d”);
}
正确的:
int x; float y;
printf(“y=%f”,y);
6 编程计算下面分段函数, 输入 x, 输出 y
x 1 x 0 y 2x 1 0 x 10
3x 11 x 10
main() { int x,y;
第三处改为:if(n%3==0)
第四处改为:sum=sum+n;
8. 求表达式 c ab 的值
#include <stdio.h>
#include <math.h>
int fun(int x, int y);
main()
{ int a,b; float f; scanf(“%d,%d”,a,b); //与改错第 1 题中的 scanf 错误相同 if(ab>0){ // C 语言中乘号不能省略,且用*表示乘法运算 fun(a,b); // 调用带有返回值的函数,应将函数的返回值保存在变量里
} 第四行改为:for(j=0;j<5;j++) 第五行改为:scanf(“%d”,&a[j]); 第七行改为:for(j=1;j<5;j++) 第八行改为:if(max<a[j]) 第十三行改为:printf(“下标:%d\n 最大值:%d”, m,max)
3.用一个函数求两个数之和。 sum(x,y) //函数定义的一般形式 p173-174 { float z; z=x+y; return; //return 语句后面可以返回 0、常量、变量和表达式的值。 } main() { float a,b; int c; / /若定义变量的语句有错误,常见考点有两个:(1)变量的类型,(2)在定

C语言填空改错编程题

C语言填空改错编程题
華為
1、局部变量能否和全局变量重名?
答:能,局部会屏蔽全局。要用全局变量,需要使用"::"
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内
{
INCp=&inc;
int temp =p(arg1);
fun(&temp,&arg1, arg2);
printf("%d\n",*arg2);
}
main()
{
int a;
show(multi,10,&a);
return 0;
}
答:110
7、请找出下面代码中的所以错误
说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”
2.#define Max_CB 500
void LmiQueryCSmd(Struct MSgCB * pmsg)
{
unsigned char ucCmdNum;
......
for(ucCmdNum=0;ucCmdNum<Max_CB;ucCmdNum++)
{
......;
}
死循环
3.以下是求一个数的平方的程序,请找出错误:
18.IP地址的编码分为哪俩部分?
IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。
2.用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出。写出C程序。

c语言程序阅读填空运行结果改错题

c语言程序阅读填空运行结果改错题

三、读程序题1、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是3.141593,3.1416,3.142 .2、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是6,83、a=3;a+=(a<1)?a:1;printf(“%d”,a);结果是. 44、for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}程序的输出结果a的值为22 .5、int y=1,x,*p,a[ ]={2,4,6,8,10};p=&a[1];for(x=0;x<3;x++)y + = * (p + x);printf(“%d\n”,y);程序的输出结果y的值是19 .四、程序填空题1、从键盘上输入10个数,求其平均值。

main(){int i;float f,sum;for(i=1,sum=0.0;i<11;i++){ scanf(“%f”,&f);Sum+=f ;}printf(“average=%f\n”,sum/10);}2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#include <stdio.h>main(){ FILE *fp;char c;fp= ;do{c=getchar();fputs(c,fp);}while(c!=EOF);3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

请填空。

main(){ float x,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0.0 ){ if(x>amax)amax=x;if(x<=amin )amin=x;scanf(“%f”,&x);}printf(“\namax=%f\namin=%f\n”,amax,amin);}三、阅读程序题(1) 3.141593,3.1416,3.142(2)6,8(3) 4(4)22(5)19四、程序填空题1、scanf(“%f”,&f);sum+=f;2、fopen(“myfile”,w)fclose(fp);3、x>=0.0 x<=amin三、阅读程序题1、int x=6,y=7;printf(“%d,”,x++);printf(“%d\n”,++y);程序的输出结果是______.2、float f=3.1415927;printf(“%f,%5.4f,%3.3f”,f,f,f);则程序的输出结果是______.3、a=3;a+=(a<1)a:1;printf(“%d”,a);结果是______.4、main(){ int a[5]={2,4,6,8,10},*P,* *k;p=a;k=&p;printf(“%d,”,*(p++));printf(“%d\n”,* *k);程序的输出结果是______.5、main(){int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;} }程序的输出结果a的值为______.四、程序填空题1、求主次对角线之和。

C语言改错题-含答案

C语言改错题-含答案

第1题【程序改错】功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。

例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>#include <string.h>void fun (char *s, char *t){/**********FOUND**********/int i;sl = strlen(s);for (i=0; i<sl; i++)/**********FOUND**********/t[i] = s[sl-i];for (i=0; i<sl; i++)t[sl+i] = s[i];/**********FOUND**********/t[2*sl] = "0";}main(){char s[100], t[100];printf("\nPlease enter string s:"); scanf("%s", s);fun(s, t);printf("The result is: %s\n", t);}答案:1). int i,sl;2). t[i] = s[sl-i-1];3). t[2*sl] = '\0'; 或 t[2*sl] = 0;第2题【程序改错】功能:求出以下分数序列的前n项之和。

和值通过函数值返回main 函数。

2/1+3/2+5/3+8/5+13/8+21/13 ……例如:若n = 5,则应输出:8.391667。

------------------------------------------------------*/#include <conio.h>#include <stdio.h>/**********FOUND**********/fun ( int n ){int a, b, c, k; double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ){/**********FOUND**********/s = (double)a / b;c = a;a = a + b;b = c;}/**********FOUND**********/return c;}main( ){int n = 5;printf( "\nThe value of function is: %lf\n", fun ( n ) );}答案:1). double fun(int n)2). s = s + (double)a / b; 或 s += (double)a / b; 或 s += a /(double)b; 或s=s+a/(double)b;3). return s;第3题【程序改错】功能:读入一个整数m( 5≤m≤20 ),函数getarr调用函数rnd获得m个随机整数,函数sortpb将这m个随机整数从小到大排序。

C改错和程序填空

C改错和程序填空

C改错和程序填空 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】三、程序综合题。

(共4题,每题4分。

估计包括程序判断改错题和程序填空题)1.在下面程序横线处填上适当内容,一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改x为10,并使用show()函数输出x。

#include<>classT{private:staticintx;public:T(int);Voidshow();};_intTest::num=5;____T::T(intn){num=n;}voidT::show(){cout<<num<<endl;}voidmain(){Tt(10);();_____}2.在下划线处填上缺少的部分。

#include<>ClassA{inta,b;public:_A(inti=0,intj=0)____;列程序有一处错,请改正并说明理由#include<>classA{intX,Y;protected:intzx,zy;public:voidinit(inti,intj){zx=i;zy=j;}A(inti,intj,intn=0,intm=0){X=i,Y=j,zx=m,zy=n;}};voidmain(){Aa(25,20,3,5);(5,9);cout<<()<<endl;类中默认X,Y为私有成员,不能直接在函数体外调用。

}改正:将X,Y设置为公有成员即可。

4.下列程序有一处错误,指出改正并说明理由。

#include<>classA{private:intx;public:A(inti){x=i;}A(){x=0;}friendintmin(A&,A&);};intmin(A&a,A&b){return>:;}voidmain(){Aa(3),b(5);cout<<(a,b)<<endl;}友元函数不能直接这么调用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、结果:75#include "stdio.h"fun( int m, int xx[] ){int i,j,k=0;xx[k++]=1;for( i=2; i<=m; i++)for( j=2; j<i; j++)if( _____________) // i%j==0 {xx[k++]=i;break;}_____________; //return k}main(){int zz[100];printf("%d\n",fun(100,zz));}2、结果:8.640500#include <stdio.h>#include <math.h>double fun(int n){/*下行有错*/int s=0; int i; //double s=0.0; int i; for(i=1;i<=n;i++)s+=log(1.0*i);s=sqrt(s);/*下行有错*/return ; //return s;}main(){printf("%lf\n",fun(30));}#include <stdio.h>void main(){int i,n=0;for(i=10006;i<=99996;i++)if(i%10==6 && i%3==0)n++;printf("%d\n",n);}/*求1到1000之内能被7或11整除、但不能同时被7和11整除的整数个数。

请编写程序。

*/#include <stdio.h>void main(){int i,n=0;for(i=1;i<=1000;i++)if((i%7==0||i%11==0)&&(!(i%7==0&&i%11==0))){n=n+1;}printf("%d\n",n);}#include<stdio.h>int fun(int m){int i,k;for(i=m+1;;i++){for(k=2;k<i;k++)/*下行有错*/if(i%k!=0) break; //if(i%k==0) break; if(k==i)/*下行有错*/return k; //return i;}}main(){int n;scanf("%d",&n);printf("%d\n",fun(n));}6、结果:5#include <stdio.h>#include <math.h>main(){int a,b,sum,count=0,i;/*下行有错 */for (a=1; a<=700; a--) // for (a=1; a<=700; a++) {sum=0;for(b=1;b<=a;b++){if(a%b==0)sum=sum+a/b;}for(i=2;i<=9;i++)if(sum==a*i)/*下行有错 */count+=i; //count+=1;}printf("%d\n",count);}7、结果:495.00#include<stdio.h>float fun(int m, int n){int i;double p=1.0;for(i=1;i<=m;i++) p=p*i;for(i=1;i<=n;i++)__________ //p=p/i; for(i=1;i<=m-n;i++) p=p/i;__________ //return p;}main(){ printf("%.2f\n",fun(12,8));}#include<stdio.h>main(){int p,q,r,s,n=0;for(p=1;p<=100;p++)for(q=p;q<=100;q++)for(r=q;r<=100;r++)for(s=r;s<=100;s++)if(1.0/p+1.0/q+1.0/r+1.0/s==1) n++;printf("%d",n);}#include<stdio.h>/*下行有错*/IsPrime(integer n) // int IsPrime(int n) { int i,m;m=1;for(i=2;i<n;i++)/*下行有错*/if(n%i) // if(n%i==0){m=0;break;}return(m);}main( ){ int j,k=2310,sum=0;for(j=2;j<=k;j++)if((!(k%j))&&(IsPrime(j)))sum+=j;printf("%d\n",sum);}#include<stdio.h>main(){int i,t=1,s=0;for(i=1;i<=101;i+=2){s=s+t*i;__________ // t=t*(-1); }printf("%d\n",s);}#include "stdio.h"int fun(int a,int b){int i,count=0,low,high;for ( i=a;i<=b;i++ ){low=i%10;high=i/100;if( _____________ ) // if(low==high )count++;}return count;}main(){printf("%d\n",_____________ ); //fun(300,900) }#include<stdio.h>void main(){int num,a,b,c,count=0;/*下行有错*/while(num=101;num<1000;num++) // for(num=101;num<1000;num++) {a=num/100;b=num%100/10;c=num%10;/*下行有错*/if(num+c*100+b*10+a=1333) // if(num+c*100+b*10+a==1333) count++;}printf("%d\n",count);}13、结果:23.197745#include<stdio.h>#include<math.h>double fun(int n){ double sum,s0,s1,s2,s;int k;sum=1.0;if(n<=2)sum=0.0;s0=0.0; s1=0.0; s2=1.0;for(k=4;k<=n;k++){ s=s0+s1+s2;sum+=__________;// sum+=sqrt(s); s0=s1;s1=s2;s2=s;}__________ //return sum;}main(){ printf("%f\n",fun(10));}#include<stdio.h>#include<math.h>main(){ int i,ge,shi,bai,n=0;for(i=1;i<1000;i++){ ge=i%10;shi=i/10%10;bai=i/100;if(i==pow(ge,3)+pow(shi,3)+pow(bai,3)) n++;}printf("%d\n",n);}#include<stdio.h>int fun(int a,int b){ int r,t;if(a<b){ t=a; a=b; b=t;}r=a%b;while(r!=0){ a=b;b=r;/*下行有错*/r=a/b; // r=a%b;}/*下行有错*/return a; // return b; }main(){ int a;a=fun(780,208);printf("%d\n",a);}#include<stdio.h>long fun(int g){switch(g){case 0: return 0;case 1: return 1;case 2: return 1;}return( __________);// return( fun(g-1)+fun(g-2)); }main(){long fib;int n=25;fib=__________ ;//fun(n);printf("%ld\n",fib);}#include<stdio.h>/*下行有错*/void IsPrime(int n) // int IsPrime(int n) { int i,m;m=1;for(i=2;i<n;i++)if(!(n%i)){ m=0;/*下行有错*/continue; //break;}return(m);}main( ){ int j,k=2310,sum=1;for(j=2;j<=k;j++)if((!(k%j))&&(IsPrime(j)))sum*=j;printf("%d\n",sum);}#include<stdio.h>double fun(int n){double s=1.0;int i;for(i=1;__________ ;i++) //i<=n s=s-1.0/(i*(i+1));__________ //return s;}main(){printf("%.4f\n",fun(7));}#include<stdio.h>age( int n ){ int c;if( n==1 ) c=10;else __________ //c=age(n-1)+2;return(c);}main(){ int n=10;printf("%d\n", __________ ); // age(n) }21、结果: 5118372#include <stdio.h>#include <math.h>main(){ long sum;int i;sum=0;for (i=5;i<=80;i++){/*下行有错*/if (fmod(i,2)==0) // if (fmod(i,2)==1) sum+=i*i*i;}printf("%ld\n",sum);}#include <stdio.h>main(){ int i,a,b,c,d,n=0;for (i=1000;i<=9999;i++){d=i%10;c=i/10%10;b=i/100%10;a=i/1000;if(a*a+b*b+c*c+d*d==100)n++;}printf("%d\n",n);}#include<stdio.h>int mcf(int a,int b){ int temp;while(b){__________a=b;b=temp;}return a;}main(){printf("%d\n",__________ ); // mcf(234,338) }#include <stdio.h>#include <math.h>int prime(int n){ int yes, i;if(n<=1) {return 0;}yes=1;for(i=2; i<=sqrt(n); i++) /*下行有错*/if(n%i!=0) //if(n%i==0) { yes=0; break;}return yes;}main(){int sum=0, i;for(i=2;i<500; i++)if(prime(i))/*下行有错*/sum+=1; //sum+=i;printf("%d\n", sum);}#include <stdio.h>main(){ int i,a,b,c,n=0;for (i=101;i<=999;i+=2){c=i%10;b=i/10%10;a=i/100;if((a+b+c)%12==0)n++;}printf("%d\n",n);}#include<stdio.h> main(){int i,s=1;for(i=9;i>=1;i--) s=2*(s+1) ; printf("%d",s);}#include <stdio.h>#include <math.h>int su(int x){int j,k;k=sqrt(x) ;for(j=2;j<=k;j++){if (x%j==0) break;}if (x>1&&j>k) return (1);else return (0);}void main(){ long sum=0;int a,i,j;for (a=11;a<=99;a++){ i=a%10;j=a/10;if (su(a)&&su(i*10+j)){sum=sum+a;printf("%5d",a);} }printf("\n %ld",sum);}#include <conio.h>#include <stdio.h>#include <math.h>main(){ long s;long k,n,sum=0,count=0;for (n=2;n<=750;n++){ if (n<10) k=10;else if (n<100) k=100;else k=1000;s=n*n;if (s%k==n) {count++;sum+=n;printf("%4d",n);} }printf("\n%5ld,%5ld",count,sum);}27下面的程序中,函数fun的功能是:根据形参m,计算下面公式的值。

相关文档
最新文档