C程序填空改错及答案
C语言程序改错题及标准答案
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 语言二级上机(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语言程序改错——答案
int j,c=0; /**********FOUND**********/
float j=0;
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根保通据护过生高管产中线工资敷艺料设高试技中卷术资0配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高高与中中带资资负料料荷试试下卷卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试.,卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试5交写卷、底重保电。要护气管设装设线备置备4敷高动调、设中作试电技资,高气术料并中课3中试且资件、包卷拒料中管含试绝试调路线验动卷试敷槽方作技设、案,术技管以来术架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
大学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语言填空改错编程题
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语言程序阅读填空运行结果改错题
三、读程序题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语言改错题-含答案
第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改错和程序填空 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;}友元函数不能直接这么调用。
C语言期末考试复习资料-程序改错部分试题及答案
/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:求如下表达式:1 1 1S = 1 + —— + ——— + ...... + ———————1+2 1+2+3 1+2+3+......+n ------------------------------------------------------*/#include <stdio.h>main(){int n;double fun();printf("Please input a number:");/**********FOUND**********/print("%d",n) ;printf("%10.6f\n",fun(n));}/**********FOUND**********/fun(int n){int i,j,t;double s;s=0;/**********FOUND**********/while(i=1;i<=n;i++);{t=0;for(j=1;j<=i;j++)t=t+j;/**********FOUND**********/=s+1/t;}return s;}/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:判断m是否为素数,若是返回1,否则返回0。
------------------------------------------------------*/#include <stdio.h>/**********FOUND**********/void fun( int n){int i,k=1;if(m<=1) k=0;/**********FOUND**********/for(i=1;i<m;i++)/**********FOUND**********/if(m%i=0) k=0;/**********FOUND**********/return m;}void main(){int m,k=0;for(m=1;m<100;m++)if(fun(m)==1){printf("%4d",m);k++;if(k%5==0) printf("\n");}}/*------------------------------------------------------【程序改错】--------------------------------------------------------功能:用下面的和式求圆周率的近似值。
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的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#includemain(){ 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语言)填空和改错答案
参考答案一、程序填空题1、(1)double(2)f1(3)f22、(1)struct student(2)n-1(3)a[i].name,a[j].name3、(1)0(2)x[i]/N(3)j++4、(1)k(2)N(3)a[k][i]5、(1)'0'(2)s++(3)ctod(a)+ctod(b)6、(1)0(2)n(3)(t*t)7、(1)j(2)0(3)i++8、(1)N(2)k(3)ss[i]9、(1)a(2)(3)score[i]10、(1)[M](2)N(3)011、(1)t,s(2)s[i](3)012、(1)j(2)k(3)p13、(1)999(2)t/10(3)x14、(1)48(2)s++(3)sum15、(1)h->next(2)p->next(3)>=16、(1)struct student *(2)a->score[i](3)a17、(1)s/N(2)j++(3)-118、(1)n++(2)0(3)s++19、(1)N(2)i(3)-120、(1)a[0][i](2)<(3)x,y21、(1)s(2)--(3)return 022、(1)将while(!__1__)改为while(!feof(__1__)),答案为fp(2)将if (n.sno__2__) break;改为if(n.sno__2__sno) break;,答案为==(3)将fseek(fp, -1L*__3__, SEEK_CUR);改为fseek(__3__, -(long)sizeof(STU), SEEK_CUR);,答案为fp23、(1)->sno(2)->name(3)&t24、(1)x[i]/N(2)j++(3)i++25、(1)0(2)i++(3)2.*i26、(1)[N](2)i(3)i+127、(1)double(2)f1(3)f228、(1)FILE *(2)fclose(fp)(3)fp29、(1)1(2)2*i(3)(-1)30、(1)filename(2)将fseek(fp, -1L*sizeof(STU), __2__);改为fseek(__2__, -(long)sizeof(STU), SEEK_END);,答案为fp(3)将fwrite(__3__, sizeof(STU), 1, fp);改为fwrite(&n, sizeof(STU), 1, __3__);,答案为fp31、(1)*av(2)i(3)x[j]32、(1)FILE *(2)fp(3)ch33、(1)struct student(2)(3)a.score[i]34、(1)i(2)ps[i](3)tp35、(1)s[i](2)k(3)036、(1)3.(2)>(3)(2*i+1)37、(1)10(2)0(3)x38、(1)0(2)x(3)t++39、(1)0(2)||(3)140、(1)k(2)N-1(3)temp41、(1)N(2)break(3)n42、(1)p->next(2)q(3)p->next43、(1)将p = __1__;改为p = h->__1__;,答案为next(2)将if (__2__) return;改为if (p==__2__) return;,答案为0(3)r44、(1)0(2)10*x(3)n/1045、(1)N(2)substr(3)046、(1)1(2)s(3)i*1047、(1)"rb"(2)将if (s[i].sno __2__)改为if (s[i].sno __2__ s[j].sno),答案为>(3)fwrite48、(1)*s(2)1(3)k[n]49、(1)*s(2)s++(3)n50、(1)将__1__ fun(NODE *h)改为__1__ * fun(NODE *h),答案为NODE(2)将/**********found**********/while (__2__){ r = q->next;改为while (q){/**********found**********/r = q->__2__;,答案为next(3)r二、程序修改题1、(1)char *fun(char *s,char *t)(2)ss++;(3)tt++;2、(1)q=p+i;(2)while(q>p)3、(1)double fun(int m)(2)for(i=100;i<=m;i~1+=0)4、(1)for(i = strlen( t )-1; i;i--)(2)if(t[j] > t[j + 1 ] )5、(1)void fun ( char *s, int *a, int *b )(2)++(*a);(3)++(*b);6、(1)for(i=0;str[i];i++)(2)if(substr[k+1]==0)7、(1)for(i=2;i<=m;i++)(2)y-=1.0/i/i;8、(1)int k=0;(2)while( *p || *q )9、(1)s[j++]=s[i];(2)s[j]=0;10、(1)t=1;(2)return(2*s);11、(1)if(i%k==0)(2)if(k>=i)12、(1)while(i<j)(2)if(*a)13、(1)void fun(long s,long *t)(2)while(s>0)14、(1)if ((k%13 == 0) || (k%17 == 0))(2)}15、(1)p=h->next;(2)p=p->next;16、(1)char *fun( char (*sq)[M] )(2)return sp;17、(1)#include "stdio.h"(2)upfst(char *p)18、(1)t+=s[k];(2)*aver=ave;19、(1)a2=k/10;(2)return i;20、(1)int fun(int *x,int *y)(2)t=*x;*x=*y;*y=t;21、(1)double fun (int n)(2)c=a;a+=b;b=c;22、(1)n=strlen( aa ) ;(2)ch=aa[i];23、(1)double fun(double a,double x0)(2)if(fabs(x1-x0)>0.00001)24、(1)num[k]=0;(2)switch(*s)25、(1)void fun (char *s, char *t)(2)t[2*d] = 0;26、(1)aa[i]=m%k;(2)printf("%d",aa[i-1]);27、(1)p=h->next;(2)p=p->next;28、(1)t=(STU *)calloc(sizeof(STU),m);(2)t[k]=b[j];29、(1)k++;(2)if(m==k)30、(1)p=(NODE *)malloc(sizeof(NODE));(2)return h;31、(1)float fun(int n)(2)for (i=2; i<=n; i++)32、(1)s[j++]=s[i];(2)s[j]=0;33、(1)if(p==n) return -1;(2)a[i]=a[i+1];34、(1)double fun(int n)(2)return sum;35、(1)while(*w)(2)if(*r==*p)36、(1)将fun ( int n )改为void fun ( int n ),答案为double fun ( int n )(2)s=s+(double)a/b;37、(1)if (n==0)(2)result *= n-- ;38、(1)int i,sl;(2)t[i]=s[sl-i-1];39、(1)t-=1.0/i;(2)return t;40、(1)将fun(int **a, int m)改为void fun(int **a, int m),答案为void fun(int a[][M], int m)(2)a[j][k]=(k+1)*(j+1);41、(1)sum=0;(2)scanf("%d",&a[i][j]);42、(1)while(*s)(2)s++;43、(1)r=t;(2)将if(*r= O) (字母O)改为if(*r= 0) (数字0)答案为if(*r==0)44、(1)*t=0;(2)if(d%2!=0)45、(1)fun(int x,int y, int z)(2)return j;46、(1)int fun(int n,int xx[][M])(2)printf("%d",xx[i][j]);47、(1)p=s;(2)将while(*p);改为while(*p++),答案为while(*p++); (加分号)48、(1)float fun(int k)(2)return s;49、(1)将int j, c=0, float xa=0.0;改为int j, c=0, double xa=0.0;,答案为int j, c=0;double xa=0.0;(将double前面的逗号改为分号)(2)if (x[j]>=xa)50、(1)if(i%2 || s[i]%2==0)(2)t[j]=0;。
c语言程序填空(含答案)
【程序填空】功能:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度.len=length(str...);I.nt length ........(p)N.++..;P.++..;【程序改错】功能:将一个字符串中的大写字母转换成小写字母。
bool (char.....).fun(char *c)fun= c;(.return......*.c)..puts(*p);(putchar........(.*p))....【程序设计】功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。
-———————---——-—--—-——----—-——--—————-———---————-*/#include<stdio.h>void wwjt();void swap(int *a,int *b){/**********Program**********//********** End **********/}main(){int x,y,z;scanf(”%d%d%d",&x,&y,&z); if(x〈y)swap(&x,&y);if(x〈z)swap(&x,&z);if(y〈z)swap(&y,&z);printf("%3d%3d%3d",x,y,z);wwjt();}void wwjt(){FILE *IN,*OUT;int m,n;int i[2];IN=fopen(”in。
dat","r");if(IN==NULL){printf(”Read FILE Error");}OUT=fopen("out。
dat","w”);if(OUT==NULL){printf(”Write FILE Error");}for(n=0;n<3;n++){for(m=0;m〈2;m++){fscanf(IN,"%d”,&i[m]);}swap(&i[0],&i[1]);fprintf(OUT,”%d\n”,i[0]);fprintf(OUT,”%d\n”,i[1]);}fclose(IN);fclose(OUT);}/*—-----——----————-—---—————--------————-—--———-—--——---—【程序填空】功能:输入3个数a,b,c,按从小到大的顺序输出.-if(n1..〉.n2..) swap(pointer1,pointer2); if(n1>n3.....)swap(pointer1,pointer3);if(.n2>n3.....)void swap(int...*.p1..,.int...*.p2..)【程序改错】功能:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。
C语言程序改错及填空题
gc23.c下列程序是建立一个包含学生有关数据的单向链表。
但该程序有2个错误,错误出现在每个注释行附近,请调试改正。
调试改正中,不得改变程序结构,也不得增删语句。
#defineNULL0structstud{longnum;charname[10];floatscore;structstud*next;};/*……………comment……………*/intn;structstudcreate()////////structstud*create(void){structstud*head,*p1,*p2;n=0;p1=p2=(structstud*)malloc(sizeof(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);/*……………comment……………*/head=NULL;while(p1!=0)//////////while(p1->num!=0){n=n+1;if(n==1)head=p1;elsep2->next=p1;p1=(structstud*)malloc(size(structstud));scanf("%ld,%s,%f",&p1->num,p1->name,&p1->score);}p2->next=NULL;return(head);}gc57.c的功能是互换给定数组中的最大数和最小数。
如将下面8个数:5,3,1,4,2,8,9,6变成:5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。
程序有二处错误,请改正。
注意:不得增行和删行,也不得修改程序的结构。
main(){inti;staticinta[8]={5,3,1,4,2,8,9,6};voidjhmaxmin();printf("Originalarray:\n");for(i=0;i<8;i++)jhmaxmin(a,8);printf("Arrayafterswapingmaxandmin:\n");for(i=0;i<8;i++)printf("%5d",a[i]);printf("\n");}//注意:voidjhmaxmin(p,n)intp,n;这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn)voidjhmaxmin(p,n)intp,n;////////int*p,n;{intt,*max,*min,*end,*q;end=p+n;max=min=p;for(q=p+1;q<end;q++){if(*q>*max)max=q;if(*q<max)min=q;////////*q<*min}t=*max;*max=*min;*min=t;}gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。
C语言程序改错题及答案
程序调试1、#include <stdio.h>#include <string.h>void fun(char *s,char *t){int i,sl;sl=strlen(s);for(i=0;i<sl;i++)t[i]=s[i];for(i=0;i<sl;i++)/********1********/ // t[sl+i]=s[s1-1-i];t[sl+i]=s[sl-i];/********2********/t[sl]="\0";// t[sl+s1]=’\0’;}void main(){char s[100],t[100];scanf("%s",s);fun(s,t);printf("%s",t);}2、#include <stdio.h>void main(){ int n,i;scanf("%d",&n);/****** 1 ******/i=1;// i=2; while(n>1)if(n%i==0) {printf("%d\t",i);n/=i;}else/******** 2 *******/ n++;// i++;}3、#include <stdio.h>#include <math.h>void main(){ int n,s=0;scanf("%d",&n);n=fabs(n);/******** 1 *******/while(n>1) { // 1}n 2}n!=0 s=s+n%10;/******** 2 ******/n=n%10; // n=n/10;}printf("%d\n",s);}4、#include<stdio.h>void itoa(long i,char *s){if(i==0)return;/****** 1 ******/*s = '1'+i%10;//*s = '0'+i%10;itoa(i/10,s-1);}void main(){long n;char str[7]="";scanf("%ld",&n);/****** 2 ******/itoa(n,str+6);// itoa(n,str+5);printf("%s",str);}5、#include <stdio.h>#define N 10void main(){int i,j,min,temp;int a[N]={5,4,3,2,1,9,8,7,6,0};printf("\nThe array is:\n"); /* 输出数组元素 */for (i=0;i<N;i++)printf("%5d",a[i]);for (i=0;i<N-1;i++) /* 排序操作 */{min = i;for (j=i+1; j<N; j++)/****** 1 ******/if (a[min]<=a[j]) min =j; // if (a[min]>=a[j]) /****** 2 ******/temp=a[min]; a[min]=a[j]; a[j]=temp; /* 数据交换 */// temp=a[min]; a[min]=a[i]; a[i]=temp; }printf("\nThe sorted numbers: \n"); /* 输出排序结果 */for (i=0;i<N;i++)printf("%5d",a[i]);printf("\n");}6、#include <stdio.h>void main(){char s1[80],s2[40];int i=0,j=0;printf("\nInput the first string:");scanf("%s",s1);printf("\nInput the second string:");scanf("%s",s2);while (s1[i] !='\0')/****** 1 ******/i+1;// i= i+1;while (s2[j] !='\0')/****** 2 ******/s1[++i]=s2[++j];/* 拼接字符到s1 */ //s1[i++]=s2[j++];s1[i] ='\0';printf("\nNew string: %s",s1);}}7、#include <stdio.h>void main(){ int i,a,n,t=0;/***** 1 *****/s=0; // int s=0;scanf("%d%d",&a,&n);for(i=1;i<=n;i++) {/******* 2 ******/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>void main(){ float x,eps,s=1,t=1,i=1;scanf("%f%f",&x,&eps);do {/***** 1 *****/t=-t*x/++i;// t = -t * x / i++;s+=t;/***** 2 *****/} while(fabs(t)<eps) // while(fabs(t)>=eps) ; printf("%f\n",s);}9、#include <stdio.h>void main(){ float x,max,min; int i;/******** 1 *******/for(i=0;i<=10;i++) { // i<10循环的个数不对,如果i<=10话则i=1;那下面的应改为i==1scanf("%f",&x);/******* 2 ********/if(i=1) { max=x;min=x;} // i==0保证第一次时条件成立if(x>max) max=x;if(x<min) min=x;}printf("%f,%f\n",max,min);}10、. 在考生目录下,有Modify.c程序,该程序中"/***** N *****/"的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,计算下面公式的值。