C语言程序设计实验指导上交大课前练习改错完善程序课后练习参考答案10修改.docx
《C语言程序设计实验指导上交大课前练习改错完善程序课后练习参考答案10修改.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验指导上交大课前练习改错完善程序课后练习参考答案10修改.docx(33页珍藏版)》请在冰点文库上搜索。
C语言程序设计实验指导上交大课前练习改错完善程序课后练习参考答案10修改
实验一VisualC++集成环境
实验内容
(一)程序改错
1、
(1)无法运行
(2)将第二个C程序重新存放到另一个工程文件中
(3)同一个工程文件只能有一个main函数
2、
(1)/*一个简单的程序*/
(2)voidmain()
(3)}
3、
(1)inta,b,c;
(2)a=2;
(3)c=a*b;
(二)完善程序
1、
(1)year
(2)month
(3)day
2、
(1)c
(2)a*a+b*b
(3)c
3、
(1)4
(2)4*a
(3)s
课后练习
1、D
2、D
3、A
4、C
5、C
6、C
7、stdio、h
8、main函数
实验二数据类型、运算符与表达式
课前练习
1、_208700
2、Abs3Class_else、
3blocka+bforfun(4)a-b
3、B
4、D
5、A
6、C
7、D
8、B
实验内容
(一)程序改错
1、
(1)intx1,x2,x3,x4;
(2)scanf("%d,%d",&a,&b);
(3)c=x4*1000+x2*100+x3*10+x1;
2、
程序1:
122
2errorC2065:
'al':
undeclaredidentifier
变量al没有定义
sum=a+b+c
3J
errorC2146:
syntaxerror:
missing二beforeidentifier'printf
printf语句之前缺少分号
sum=a+b+c;
40error(s),0warning(s)
5a=1b=3c=2sum=6
6
程序2:
122
2errorC2065:
'sum':
undeclaredidentifier
变量sum没有定义
intsum=a+b;
1
errorC2086:
'c':
redefinition
变量c重复定义
c=a+b+sum;
3a=1b=3sum=8
4在同一个函数体内,变量要先定义后使用,但不能重复定义
程序3:
11
errorC2106:
'=':
leftoperandmustbel-value
赋值符号左边参数错误
c=a+b;
2c=4
3赋值符号左边只能就是变量,不能就是常量或表达式
3、
(1)t=a;
⑵a=b;;
(3)printf("a=%d\tb=%d\n",a,b);
(二)完善程序
1、
(1)intn
⑵”%d,&n
⑶s
2、
(1)floats
(2)(float)a/b
(3)%f
3、
(1)#include
(2)pow(x,y)
(3)“%lf”,s
课后练习
1、D
2、D
3、A
4、B
5、C
6、D
7、D
8、A
9、C
10、A
11、A
12、B
13、B
14、C
15、B16、A17、C188
19、5与4
20、2、000000
21、double(删除最后"语句”两字)
22、double
23、a=3(回车)
实验三if选择结构语句
课前练习
1、90
2、
11
0
3、
(1)n%2==0
(2)n%2!
=0
(3)a>=‘0,
&&
a<=''
⑷a>=',
&&
a<=''
(5)a>='A'
&&
a<=''
⑹(a>=''
&&
a<=''
||(a>='A'&&a<='Z)
⑺(x<-10)
II
((x>10)
&&(x<=20))
(8)a%b!
=0
(9)a*b>0
4、-1
5、D
6、103040
7、C
8、A
9、D
10、A
实验内容
(一)程序改错
1、
(1)scanf("%d",&t);
(2)if(t%5==0&&t%7==0)
(3)else
2、
(1)chary;
(2)if(x==0)
(3)printf("%c\n",y);
3、
(1)if(x==m)
(2){printf("Wrong\n");
(3)printf("Toolow\n");}
(二)完善程序
1、
(1)#include
(2)(-b+sqrt(d))/(2*a);
(3)sqrt(fabs(d))/(2*a);
2、
(1)c>='a'&&c<='u'
(2)c>='v'&&c<='z'
(3)c=c+5-26;
3、
(1)c>='a'&&c<='z'
(2)c>='A'&&c<='Z'
(3)else
课后练习
1、D
2、C
3、A
4、A
5、B
6、C
7、C
8、C
9、B
10、D
11、A
12、D
13、D
14、A
15、2,0
16、A
17、D
18A
19、D
20、B
21、C
22、!
23、D
24、C
25、D
26、B
实验四switch开关语句
课前练习
1、411
2、
if((k==1)||(k==2)
printf("a\n");
elseif((k==3)||(k==4)||(k==5))printf("b\n");
else
printf("c\n");
3、
switch(x)
{
case1:
case2:
case3:
printf("x\n");break;
case19:
case20:
case21:
printf("y\n");break;default:
printf("z\n");
}
实验内容
(一)程序改错
1、
(1)switch(x)
(2)case4:
(3)default:
2、
(1)a=s/250;
(2)case0:
d=0;break;
(3)default:
d=15;
3、
(1)elsep=1;
⑵a=num/1000;
(3)num%1
0
(—二)完善程序
1、
(1)grade/10
(2)break
⑶default
2、
(1)x<0
⑵a=x/10
⑶a
3、
(1)month
(2)days=31
(3)(year%4==0&&year%100!
=0)||(year%400==0)
课后练习
1、C
2、D(将程序最后一条语句改为:
printf("a=%d,b=%d\n",a,b);)
3、A
4、B
5、pass
及格
不及格
6、2
实验五while、do…while循环结构语句
课前练习
1、0
2、10
3、A
4、C
5、A
6、A
7、C
实验内容
(一)程序改错
1、
(1)longk=1;
(2)num/=10;
(3)while(num);
2、
(1)intm=0,mc=0,j;
⑵if((k%7==0)||(k%11==0))
(3)m=m+k
3、
(1)max=min=grade;
⑵while(grade>=0)
(3)if(grade(—二)完善程序
1、
(1)t%2==0
(2)m=m*10+t;
(3)n=n/10;
2、
(1)ch=getchar()
(2)ch>='0'&&ch<='9'
(3)(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')
3、
(1)fabs(t)
(2)s/n
⑶pi*4
课后练习
1、A
2、A
3、D
4、B
5、A
6、C
7、A
8、30
实验六for循环结构语句
课前练习
1、C
2、D
3、C
4、for(i=100;i!
=0;i--)printf("p");
5、D
6、C
7、D
8、k<=n
k++
9、A
10、C
11、C
实验内容
(一)程序改错
1、
(1)intsum=1,s0=0,s1=0,s2=1,s;
(2)for(n=4;n<=10;n++)
(3)s2=s;
2、
(1)for(i=1;i<=y;i++)
(2)t*=x;
(3)t=t%1000;
3、
(1)inti,count=0;
(2)if((i%7==0||i%11==0)&&(i%77!
=0))
(3)count++;
(二)完善程序
1、
(1)s=0、0
(2)scanf("%d",&n)
(3)s+1、0/s1
2、
(1)i%100
(2)a+b+c==x
(3)t++
3、
(1)2
(2)n
(3)n%i==0
课后练习
1、A
2、B
3、C
4、A
5、D
6、C
7、A
8、B
9、A
10、C
实验七循环控制语句
课前习题
1、D
2、循环语句
3、break
4、A
5、20
6、66
7、8
8、B
实验内容
(一)程序改错
1、
(1)inti,j,k,sum=0;
(2)for(i=1;i<=3;i++)
⑶if((k>=1&&k<=6)&&(i!
=0)&&(j!
=0)||(k==0))
2、
(1)for(j=2;j
(2)if(i%j==0)
⑶if(j>=i)
3、
(1)m=n;
(2)while(m!
=0&&m>=c)
⑶if(m==0)
(—二)完善程序
1、
(1)i<10
⑵j%3!
=0
(3)continue;
2、
(1)total=0;
(2)sum=0;
(3)total+sum;
3、
(1)j=(y%100)/10;
(2)i!
=j&&i!
=k&&k!
=j
⑶t%5==0
课后练习
1、D
2、C
3、D
4、B
5、C
6、B
7、A
1
7
y=8
89
9、10
10、x=16
实验八函数的初步应用
课前练习
return
1、void
2、C
3、A
4、C
5、
6、C
7、D
8、D
9、A
实验内容
(一)程序改错
1、
(1)intfun(inta,intb,intc)
(2)if(a+b>c&&b+c>a&&a+c>b)
(3)elseif(a==b||b==c||a==c)
2、
(1)if(n==1)
(2)c=age(n-1)+2;
(3)printf("%d\n",age(5))
3、
(1)while(n!
=i)
(2)if(n%i==0)
(3)n=n/i;
(二)完善程序
1、
(1)i*i==x
(2)return0
(3)f(i+100)&&f(i+168)
2、
(1)x
(2)s1+s2+s3==15
(3)t++
3、
(1)f(2)returnf
(3)fun(n)
课后练习
1、C
2、C
3、A
4、D
5、A
6、B
7、B
8、A
9、A
10、C
11、A
12、A
13、B
14、D
15、10,20
16、131112
17、2
183
19、-31
20、221
21、22
22、main函数
23、returnvoid
24、voidint
实验九函数的其她应用
课前练习
1、B
2、A
3、A
4、C
5、D
6、D
7、55
8、C
9、D10、A
实验内容
(一)程序改错
(1)#defineS)temp=x;x=y;y=temp
(2)inta,b,temp;
⑶S);
2、
(1)#defineDIV(m)(m)%3==0
(2)scanf("%d",&m);
⑶if(DIV(m))
3、
(1)switch(n%10)
(2)case1:
c1++;break;
(3)case2:
c2++;break;
(二)完善程序
1、
(1)#definef1(x,y)x*y
(2)#definef2(a,b)(a)*(b)
⑶#"clude
2、
(1)1248
(2)1212
3、
(1)23
13
8
5
2
3
15
10
5
2
3
⑵略
课后习题
1、C
2、C
3、A
4、C
5、D
6、A
7、A
8、13
9、110
10、9
11、40
12、10
13、27
14、auto
15、6720
16、48
仃、12
18、5,25
19、6
20、3
实验十一维数组
课前练习
1-3、BDD
4、248
5、B
6、intss[s];
7、3715
8、654,321
实验内容
(一)程序改错
1、
(1)scanf("%f",a);改为scanf("%f",&a);
(2)max=min=avg=a[1];改为max=min=avg=a[0];
(3)if(mina[i])或if(a[i]2、
(1)while(x[++i]!
=0);改为while(x[i++]!
=0);
(2)while(x[i]=0)改为while(x[i]==0)
(3)sum\=c;改为sum/=c;
3、
(1)s=count=1;改为s=count=0;
(2)scanf("%d",a[i]);改为scanf("%d",&a[i]);
(3)break;改为continue;
(4)printf("s=%fcount=%f\n",s,count);改为printf("s=%dcount=%d\n",s,count);
(二)完善程序
1、
(1)k=p
2、
(1)#include
(2)aver=s/N
(3)s=fabs(a[i]-aver)
(4)printf(“%f”,t)
3、
(1)s=i*3+j*5
(2)break
(3)a[k]!
=0&&s!
=0
课后练习
1-2、DC
3、I=1、x[I-1]
4、012,201
5、47,17
6、15,12
7、6,2
8、234,556
9、023,235,71113实验十一二维数组课前练习
1、A
2、96、8
3-6、BBDB
7、x<4、y<3、z==3
8、0、10、210、3210
实验内容
(1)程序改错
1、
(1)s仁s2=s3=s4=0改为s1=0,s2=0,s3=0,s4=0
⑵s2=s2+a[m][j]改为s2=s2+a[m-1][j]
(3)for(i=0;i(4)s=s1-s2-s3-s4改为s=s1+s2+s3+s4
2、
(1)inta[3][3],sum改为inta[3][3],sum=0
(2)scanf("%d",a[i][j])改为scanf("%d",&a[i][j])
(3)sum=sum+a[i][j]改为sum=sum+a[i][i]
(4)sum=%f\n改为sum=%d\n
3、
(1)inti,j,s,a[3][3],sum"|改为inti,j,s,a[3][3],sum=0
(2)for(i=0;i<3;i++)改为for(i=0;i<3;i=i+2)
(3)sum=*a[i][j]改为sum*=a[i][j]
(2)完善程序
1、
(1)sum=0
⑵a[i][i]
2、
(1)i(2)j⑶a[i][j]
(4)printf("\n")
3、
(1)printf("\n")
(2)(j+2)%3
(3)printf(”\n”)
课后练习
1-3、CDD
4、8
5、sum仁38,sum2=34
6、A
7、16
8、100,120,358
9、11,1331
10、
13610
259
48
7
实验十二数组与函数
课前练习
1-3、ACB
4、改变、不改变
5、D
实验内容
(一)程序改错
1、
(1)fun(inta[],intn)改为doublefun(inta[],intn)
⑵inti,n;改为inti;
⑶doubles;改为doubles=0;
(4)s=s+a(i);改为s=s+a[i];
(5)ave=fun(a[],n);改为ave=fun(a,n);
2、
(1)floatj=0;改为floatxa=0;
(2)j<=n改为j(3)j<=n改为j(4)returnxa改为returnc3、
(1)sum=array[0]改为sum=0
(2)intscore[10]改为floatscore[10]
(3)scanf("%f",score)改为scanf("%f",&score)
(4)aver=average(score[10])改为aver=average(score)
课后练习
1-2、DC
3、-1、2
4、22
5、3、6、9
6、1、a[i-1][j-1]+a[i-1][j]、j<=i
实验十三字符数组与字符串
课前练习
1-5、BCDBD
6、strcmp(s1,s2)==0
实验内容
(一)程序改错
(3)i=k改为k=i
(—二)完善程序
1、
(1)s[i]!
='\0'
(2)s[i]='A'
(3)s[i]+=1
(4)s
2、
(1)strlen(s)
(2)s[i]!
='\0'
(3)s[i]>='A&&s[i]<='Z'
(4)fun(s)
课后练习
1-5、DAACB
6、7
7、GL
8、diane
9、France、England、China、Australia
10、Simon、Niku、Josiah、George
11、strlen(s)、s[i]>='a'&&s[i]<=、s[i]+Z32、'0'、s2[j]!
=s2[n2-j-1]、j实验十四指针与一维数组
课前练习
1、DDDAC
2、5
实验内容
(一)程序改错
1、
(1)printf("%d",p+i)改为printf("%d",*(p+i))
(2)m=0改为m=i]
(3)k=m改为m=k
(二)完善程序
1、
(1)math、h
(2)&b
(3)*pb
2、
(1)n
(2)*(p+i-1)*3-1
课后练习
1、4
2-11、BBBACDACAA
12、2、2
13、3、7
14、4、16、64
15、36、214
16、26、22、46
实验十五指针与字符串
课前练习
1-6、CBAAAA
实验内容
(1)程序改错
1、
(1)int*a=upper改为int*a=&upper
(2)int*b=lower改为int*b=&lower;
⑶a++改为(*a)++
⑷b++改为(*b)++
(2)完善程序
1、
(1)*p!
='\0'
⑵*p<='Z'
(3)*p+=32
2、
(1)s
(2)*p!
='\0'
(3)*p-'0'
课后练习
1-9、BDCDDCBAD
10、gae
11、65、7、8、76
12、b5、c7、h10
13、432156、432651
14、jih、gfe、dcba
实验十六指针与函数
课前练习
1-2、BB
3、100200
4、B
实验内容
(1)程序改错
1、
(1)scanf("%d",p)改为scanf("%d",p++)
(2)*p<*max改为*p>*max
(3)if(max=arr)改为if(max==arr)
(4)while(i=0;i2、
(1)intnum[]改为intnum[5]⑵num[i]=0改为num[k]=0
(3)switch(s)改为switch(*s)
(4)num[k]++改为num[i]++
(2)完善程序
1、
(1)int*x
(2)x[i]==x[i+1]
(3)n-1
(4)f==1
课后练习
1-4、DCCD
5、10,15,15,10
6、2143
7、ia[j]、”%d”,p、+i”%d”,*(p+i)
8、4、5、64
9、36、94
10、*p1=15、*p2=0
11、43210、98765
12、10、15、19
实验十七结构体、共同体与枚举类型
课前习题
1、B
2、D
3、A
4、B
5、D
6、A
7、B
8、C
9、A
10、A
实验内容
(一)程序改错
1、
(1)enumday{sun,mon,tue,wed,thu,fri,sat};
(2)scanf("%s",s);
(3)printf("明天就是:
%s\n",str[d+1]);
2、
(1)};
(2)structemployeeem[4]={{1,"wang",25},{2,"li",38},{3,"zhang",30},{4,"qian",45}};
(3)if(em[i]、age>35)
3