完整word版C语言程序改错总结.docx
《完整word版C语言程序改错总结.docx》由会员分享,可在线阅读,更多相关《完整word版C语言程序改错总结.docx(47页珍藏版)》请在冰豆网上搜索。
完整word版C语言程序改错总结
难度1
1、程序D1.c的功能是从键盘读入一个数并在屏幕上显示。
intmain(void)
{
intxy2;
/*********Found************/
scanf("%s",&xy2);//改为:
scanf("%d”,&xy2);
/*********Found************/
printf("xy2=%5d\n",&xy2);//改为:
printf("xy2=%5d\n”,xy2);
return0;
}
2、程序D2.c的功能是调用函数,显示两个实数间最大的一个。
#includeh>
floatfmax(floatx,floaty);
intmain(void)
{
/*********Found************/
floatl,1;//i
l=3。
0;
i=5.6f;
/*********Found************/
printf("fmax(%5.2f,%5.2f)=%5.2f\n”,i,l,fMax(i,l));//fmax
return0;
}
/*********Found************/
intfmax(floatx,floaty)//改:
float
{
if(xelsereturnx;
}
3、程序D4.c的功能是计算半径为2+3的圆的面积。
#include#definePI3。
14
/*********Found************/
#defineS(bj)PI*bj*bj//改:
PI*(bj)*(bj)
intmain(void)
{
/*********Found************/
intmianJi;//改为:
double
mianJi=S(2+3);
printf(”mianji=%5。
2f\n",mianJi);
return0;
}
4、相似题:
D3.C,程序D5。
c的功能是将字符串yy显示在屏幕上。
#include
intmain(void)
{
/*********Found************/
charyy[100]=”ok?
?
\n",//改为:
;
/*********Found************/
prntf("%s",yy);//改:
printf
return0;
}
5、考查点:
数据类型选择,/运算符的使用功能是计算1/1+1/2+…+1/N之和并显示。
#includeh〉
#defineN10
intmain(void)
{
/*********Found************/
longjieguo=0;//改:
float
intfm;
for(fm=1;fm〈=N;fm++)
{
/*********Found************/
jieguo+=1/fm;//改:
(float)1/fm
}
printf(”%8.6f\n",jieguo);
return0;
}
6、考查点:
输入分隔格式控制,循环体的定义,D12.c的功能是从键盘读入a和b的值(输入格式限定为仅a,b),在屏幕上显示b行a。
#include〈stdio。
h〉
intmain(void)
{
inta,b;
/*********Found************/
scanf(”%d%d",&a,&b);//中间加’,’
while(b〉0)
/*********Found************/
___________//括号'{’
printf("%d\n",a);
b—-;
/*********Found************/
___________//括号’}’
printf(”byebye!
\n”);
return0;
}
7考查点:
输入格式控制、变量交换,程序D1000。
c的功能是从键盘输入3个浮点数a,b,c(输入时abc之间以空格相隔),首先按照输入顺序显示在屏幕上,然后按从小到大顺序把它们输出到屏幕上。
#include〈stdio.h〉
intmain(void)
{
floata,b,c,t;
printf(”pleaseinputthreenumbers:
\n”);
/*********Found************/
scanf(”%f%f”,&a,&b,&c);//改:
%f%f%f
printf("beforesort:
a=%g,b=%g,c=%g\n”,a,b,c);
if(a>b)
{
t=a;
a=b;
/*********Found************/
b=a;//改:
t
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("aftersort:
a=%g,b=%g,c=%g\n”,a,b,c);
return0;
}
8考查点:
格式化输出、数据类型的正确使用,程序D1001。
c的功能是求分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,..。
。
前20项之和,要求显示的结果中小数部分有4位.
#include〈stdio。
h〉
#defineT20
intmain(void)
{
intn;
/*********Found************/
longi,j,temp,sum;
i=2;
j=1;
sum=0;
for(n=1;n〈=T;n++)
{
sum=sum+i/j;
temp=i;
i=i+j;
j=temp;
}
/*********Found************/
printf("2/1+3/2+5/3+8/5+13/8+。
。
。
=%5.2f\n”,sum);//改:
。
4
return0;
}
9考查点:
用算术表达式实现数据交换,程序D1002。
c的功能是实现两数交换.
#include〈stdio.h>
intmain(void)
{
intx=5,y=9;
x=x+y;
y=x—y;
/*****Found*****/
x=y-x;//改:
x–y;
printf("x=%d,y=%d\n”,x,y);
return0;
}
10考查点:
整型常量表示、输出项表示,程序D1003。
c的功能是将16进制数100转换为10进制数输出。
#includeh>
intmain(void)
{
/*****Found*****/
inti=100;//0x100
/*****Found*****/
printf("%d\n",&i);//改:
去掉&
return0;
}
11、 程序D1004。
c的功能是输入姓名,屏幕输出问候。
#includeh〉
intmain(void)
{
chars[10];
printf(”pleaseinputyourname:
");
/*********Found************/
scanf("%c",s);//改%s
printf(”hello");
/*********Found************/
puts(s[10]);//改:
s
return0;
}
12考查点:
输入数据分隔,输出项表示,程序D1005.c的功能是从键盘读入两个整数并在屏幕上显示.要求:
输入时限定两数之间仅以逗号隔开。
#include〈stdio.h〉
intmain(void)
{
inta,b;
/*********Found*********/
scanf("%d%d”,&a,&b);//改:
中间加’,'
/*********Found*********/
printf(”a=%d,b=%d\n”,&a,&b);//去掉&
return0;
}
13、考查点:
输入格式控制、if语句,程序D1006。
c的功能是判断输入的数据是否与已经给出的数据j相等.
#include〈stdio.h>
intmain(void)
{
longinti=79870,j=23;
/*****Found*****/
scanf("%f”,&i);//改:
%ld
/*****Found*****/
if(j==i);
{
printf("Equal!
”);
}
else
{
printf(”Notequal!
");
}
return0;
}
14、考查点:
字符输入函数使用,分支条件表示,程序D1007.c的功能是使用getchar方式从键盘读入一个字符,判断该字符是否大写字符。
#include〈stdio。
h〉
intmain(void)
{
charch;
/****Found****/
getchar(ch);//ch=getchar();
/*****Found*****/
if(’A’〈=ch,ch〈='Z’)//&&
{
printf(”yes”);
}
else
{
printf("no");
}
return0;
}
15、考查点:
switch语句结束、case后常量表示,程序D1008。
c的功能是判断用户是不是输入的整数0.
#include〈stdio.h〉
intmain(void)
{
intn;
scanf("%d",&n);
/****Found****/
switch(n);//去掉’;'
{
/****Found****/
case0:
//中间加空格
printf("Zero\n”);
break;
default:
printf(”Non—Zero”);
break;
}
return0;
}
16、考查点:
switch语句、case后常量表示,程序D1009.c的功能是输入一个整数,如果为1时输出100,为2时输出200,其它输出0。
#include
intmain(void)
{
intx,y;
scanf("%d”,&x);
switch(x)
{
/*********Found************/
casex==1:
//改:
1
y=100;
break;
/*********Found************/
casex==2:
//改:
2
y=200;
break;
default:
/*********Found************/
y=500;//改:
0
break;
}
printf(”%d\n”,y);
return0;
}
17、考查点:
switch语句case常量表示,循环条件表示,程序D1010.c的功能是输入若干字符数据(回车表示输入结束),分别统计其中‘A’、‘B’、‘C’的个数。
#include〈stdio.h〉
intmain(void)
{
charc;
intk1=0,k2=0,k3=0;
/*********Found************/
while(c=getchar()!
=’\n')//加括号()
{
switch(c)
{
/*********Found************/
caseA:
//加’’
k1++;
break;
case'B':
k2++;
break;
case’C’:
k3++;
break;
default:
;
}
}
printf(”A=%d,B=%d,C=%d\n",k1,k2,k3);
return0;
}
18、考查点:
一维数组定义、数组元素引用、输入和输出,程序D1016。
c的功能是从键盘输入5个整数,保存到一整型数组变量中(此数组只能保存5个数),并在屏幕上按逆序输出。
#includeintmain(void)
{
/*********Found*********/
intn=5,i,a[n];//改为5
printf("\ninput5numbers:
”);
/*********Found*********/
for(i=1;i{
scanf("%d",&a[i]);
}
for(i=n-1;i〉=0;i--)
{
printf("%d\t",a[i]);
}
return0;
}
19、考查点:
数组的输入和数组元素的引用,程序D1017。
c的功能是输入10个浮点数,并输出这组数中的最大值和最小值。
#include〈stdio。
h>
intmain(void)
{
floata[10],max,min;
inti;
printf(”Pleaseinput10floats");
for(i=0;i<10;i++)
{
/*********Found************/
scanf("%f”,_____);//&a[i]
}
max=min=a[0];
for(i=1;i〈10;i++)
{
/*********Found************/
if(_____)//max〈a[i]
{
max=a[i];
}
if(min>a[i])
{
min=a[i];
}
}
printf(”Maxnumberis:
%。
2f\nMinnumberis:
%.2f\n”,max,min);
return0;
}
20、考查点:
函数声明,静态变量使用,程序D1021。
c的功能是依次输出3^1到3^5。
#includeh〉
/*****Found*****/
intf(n);//用定义形式:
intn
intmain(void)
{
inti;
for(i=1;i〈=5;i++)
{
printf(”%d\n”,f(3));
}
return0;
}
intf(intn)
{
/*****Found*****/
intp=1;//改:
staticint
p=p*n;
returnp;
}
21、考查点:
静态变量使用,函数调用,程序D1023.c的功能是函数outnum输出自己是第几次被调用。
#include〈stdio.h〉
voidoutnum(void);
intmain(void)
{
inti;
for(i=0;i〈5;i++)
{
/*********Found************/
outnum(i);//改:
outnum()
}
return0;
}
voidoutnum(void)
{
/*********Found************/
inti=0;//改:
staticinti=0;
i++;
printf("%d\n",i);
}
22、考查点:
函数调用、函数定义,程序D1024.c的功能是调用子函数Average()求两数的平均值,并输出到屏幕上.
#include〈stdio。
h>
/*********Found*********/
intAverage(x,y);//用定义形式:
intx,inty
intmain(void)
{
inta=12;
intb=24;
intave;
/*********Found*********/
ave=Average(inta,intb);//用使用形式:
a,b
printf(”Averageof%dand%dis%d。
\n”,a,b,ave);
return0;
}
/*********Found*********/
intAverage(x,y)//intx,inty
{
intresult;
result=(x+y)/2;
returnresult;
}
23、考查点:
函数一般调用和静态变量,程序D1025。
c的功能是输入一整数n(n>0),main()函数中调用子函数Func()n次,并在屏幕上打印出每次调用该子函数的次数.
#include〈stdio.h>
voidFunc(void);
intmain(void)
{
inti,n;
printf("\ninputadata:
”);
scanf(”%d”,&n);
for(i=0;i{
/*********Found*********/
________________________//Func()
}
return0;
}
voidFunc(void)
{
/*********Found*********/
________________________//staticinttimes=0;
times++;
printf("Func()wascalled%dtime(s)。
\n",times);
}
难度2
1、考查点:
用指针访问字符数组元素,程序D3。
c的功能是将字符串yy在屏幕上输出.
#include〈stdio.h〉
intmain(void)
{
/*********Found************/
charyy[200]="ok?
?
\n”;//改为:
*yy
/*********Found************/
fol(;*yy;yy++)//改为:
for
{
putchar(*yy);
}
return0;
}
2、考查点:
字符数组定义,字符串输出控制,标准字符串函数的使用,程序D6。
c的功能是从键盘读入一行字符(包括空格、TAB等字符)并在屏幕上显示。
#include〈stdio。
h>
intmain(void)
{
/*********Found************/
charyy<128〉;//改为:
yy[128]
/*********Found************/
getchar(yy);//改为:
gets
/*********Found************/
printf(”%y",yy);//改为:
%s
return0;
}
3、考查点:
if—else形式条件的分析,数据类型选择,程序D7.c的功能是判断x和y是否相等,相等则显示x=y,不等则显示x〈>y。
#include〈stdio。
h〉
intmain(void)
{
/*********Found************/
charx,y;//改为:
int
x=39270;
y=41001;
/*********Found************/
if(x!
=y)//改为:
==
{
printf("x=y");
}
/*********Found************/
else;;//去掉;;
{
printf(”x〈>y\n”);
}
return0;
}
4、考查点:
文件路径名表示,文件打开方式选择,文件打开成功判断,程序D8。
c的功能是打开文件d:
\te。
c用于读并判断打开是否成功.
#includeh>
intmain(void)
{
FILE*fp;
/*********Found************/
charfileName[]="d:
\te.c";//改为:
\\
/*********Found************/
fp=fopen(fileName,”w");//改为:
r
/*********Found************/
if(fpisNULL)//改为:
==
{
puts("FileOpenError!
");
return1;
}
putchar(fgetc(fp));
fclose(fp);
return0;
}
5、考查点:
指针,内存分配、内存释放函数的使用,程序D9.c的功能是申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间.
#include〈stdio。
h>
#includeh>
intmain(void)
{
/*********Found************/
charpch[2];//改为:
*pch
/*********Found************/
if(pch=(char*)malloc(100)==NULL)//将红色部分括起来
{
printf(”mallocmemoryfail!
\n”)