C语言程序设计(B)
(2010-2011-2)
实验报告
教学班级:学号:姓名:
课程教师:实验辅导教师:
自由编辑的程序
一、实验前的源程序:
//任意整数的叠加
#include
void main()
{
int i,j,sum=0;
printf("please input a int number\n");
scanf("%d",&j)
for(i=0;i<=j;i++)
sum=sum+i;
printf("此数的叠加=%d\n",sum);
}
实验错误报告:
[Error] D:\Program Files\C-Free 4\temp\未命名10.cpp:7: parse error before
`for'
[Error] D:\Program Files\C-Free 4\temp\未命名10.cpp:7: parse error before `)' 构建中止未命名10: 2 个错误, 0 个警告
实验后的源程序:
//任意整数的叠加
#include
void main()
{
int i,j,sum=0;
printf("please input a int number\n");
scanf("%d",&j);
for(i=0;i<=j;i++)
sum=sum+i;
printf("此数的叠加=%d\n",sum);
}
二、实验前的源程序:
/*小写字母转大写字母*/
#include
void main()
{
char c1,c2;
c1='w';
c2='s';
c1=c1-32;
c2=c2-32;
printf("%c,%c\n",c1,c);
}
实验错误报告:
[Error] D:\Program Files\C-Free 4\temp\未命名11.cpp:9: `c' undeclared (first
use this function)
[Error] D:\Program Files\C-Free 4\temp\未命名11.cpp:9: (Each undeclared
identifier is reported only once
[Error] D:\Program Files\C-Free 4\temp\未命名11.cpp:9: for each function it
appears in.)
构建中止未命名11: 3 个错误, 0 个警告
实验后的源程序:
/*小写字母转大写字母*/
#include
void main()
{
char c1,c2;
c1='w';
c2='s';
c1=c1-32;
c2=c2-32;
printf("%c,%c\n",c1,c2);
}
三、实验前的源程序:
/*查看某一年是否为闰年*/
#include
void main()
{
int year,i;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
i=1;
else
i=0;
}
else
i=1;
}
else
i=0;
if(i)
printf("%d 是闰年\n",year);
else
printf("%d 不是闰年\n",year);
}
实验错误报告:
[Error] D:\Program Files\C-Free 4\temp\未命名14.cpp:15: parse error before
`else'
[Error] D:\Program Files\C-Free 4\temp\未命名14.cpp:25: parse error at end
of input
构建中止未命名14: 2 个错误, 0 个警告
实验后的源程序:
/*查看某一年是否为闰年*/
#include
void main()
{
int year,i;
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
i=1;
else
i=0;
}
else
i=1;
}
else
i=0;
if(i)
printf("%d 是闰年\n",year);
else
printf("%d 不是闰年\n",year);
}
数据的输入和输出四、程序改错题
改错前的源程序;
#include
void main()
{
float x,y,z;
scanf("%5.2f,%5.2f",&x,&y);
z=x+y;
printf("z=%5.2f",&z);
}
修改后的源程序:
#include
void main()
{
float x,y,z;
scanf("%f%f",&x,&y);
z=x+y;
printf("z=%5.2f",z);
}
改错前的源程序;
#include
void main()
{
int x=7654123;
x*=10;
printf("x=%7d",x);
}
修改后的源程序:
#include
void main()
{
long x=7654123;
x*=10;
printf("x=%7d",x);
}
改错前的源程序:
#include
void main()
{
float c1=67;
char c2;
c2=c1+5;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d",&c1,&c2);
}
修改后的源程序:
#include
void main()
{
int c1=67;
char c2;
c2=c1+5;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d",c1,c2);
}
五、程序编写题:已知char ch’b’; int i=3 ,j=5; float
x=22.354,y=435.6789; 根据下面的输出结果编写程序。
ch =’b’,ASCII=98
i=3□□□□□□j=5
x=22.35□□□y=435.68
实验前的源程序:
#include
void main()
{
char ch='b';
int i=3,j=5;
float x=22.354,y=435.6789;
printf("ch='%c',ASCII=%d\n",ch,ch);
printf("i=%d j=%d\n",i,j);
printf("x=%.2f y=%.2f\n",x,y);
}
实验错误报告:无
实验后的源程序:
#include
void main()
{
char ch='b';
int i=3,j=5;
float x=22.354,y=435.6789;
printf("ch=\'%c\',ASCII=%d\n",ch,ch);
printf("i=%d j=%d\n",i,j);
printf("x=%.2f y=%.2f\n",x,y);
}
六、从键盘输入一行字符,统计其中小写字母、大写字母和
其它字符的个数:
实验前的源程序:
#include "stdio.h"
void main()
{
printf("请任意输入一串字符:\n") ;
char ch,sum1=0,sum2=0,other=0;
ch=getchar();
while(c!='\n')
{
if(c>='A'&&c<='Z') sum1++;
else if(c>='a'&&c<='z') sum2++;
else other++;
c=getchar();
}
printf("大写字母的个数:%d\n",sum1);
printf("小写字母的个数:%d\n",sum2);
printf("其他字符母个数:%d\n",other);
}
实验错误报告:
[Error] D:\Program Files\C-Free 4\temp\未命名7.cpp:7: `c' undeclared (first
use this function)
[Error] D:\Program Files\C-Free 4\temp\未命名7.cpp:7: (Each undeclared
identifier is reported only once
[Error] D:\Program Files\C-Free 4\temp\未命名7.cpp:7: for each function it
appears in.)
构建中止未命名7: 3 个错误, 0 个警告
实验后的源程序:
#include "stdio.h"
void main()
{
printf("请任意输入一串字符:\n");
char ch,sum1=0,sum2=0,other=0;
ch=getchar();
while(ch!='\n')
{
if(ch>='A'&&ch<='Z') sum1++;
else if(ch>='a'&&ch<='z') sum2++;
else other++;
ch=getchar();
}
printf("大写字母的个数:%d\n",sum1);
printf("小写字母的个数:%d\n",sum2);
printf("其他字符母个数:%d\n",other);
}
七、使用以下公式求∏的近似值,要求精确到最后一项的绝
对值小于10e-4 ∏/4=1-1/3+1/5-1/7+……
实验前的源程序:
#include "stdio.h"
#include "math.h"
main()
{
float sum=0;
int i,j;
for(i=1; ;i++)
{
j=2*i-1;
if(1.0/j>0.0001)
{
sum+=pow(-1,i+1)*(1.o/j);
continue;
break;
}
printf("∏=%f\n",sum*4.0);
}
实验错误报告:
[Error] D:\Program Files\C-Free 4\temp\未命名9.cpp:13: nondigits in number
and not hexadecimal
[Error] D:\Program Files\C-Free 4\temp\未命名9.cpp:19: parse error at end
of input
构建中止未命名9: 2 个错误, 0 个警告
实验后的源程序:
#include "stdio.h"
#include "math.h"
main()
{
float sum=0;
int i,j;
for(i=1; ;i++)
{
j=2*i-1;
if(1.0/j>0.0001)
{
sum+=pow(-1,i+1)*(1.0/j);
continue;
}
break;
}
printf("∏=%f\n",sum*4.0);
}
八、用选择法对10个整数排序:
实验前的源程序:
#include
main()
{
printf ("请输入一串乱序的10个整数:\n");
int a[10];
int i,j,k;
for(i=0;i<10;i++)
{
scanf("%d",a[i]);
}
printf("\n");
for(i=0;i<10;i++)
for(j=0;j<10-j;j++)
{
if(a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
k=a[j+1];
}
printf("这10个整数从小到大排列为:");
for(j=0;j<10;j++)
{
printf("%d ",a[j]);
}
printf("\n");
printf("这10个整数从大到小排列为:");
for(j=9;j>=0;j--)
{
printf("%d ",a[j]);
}
实验错误报告:
[Error] D:\Program Files\C-Free 4\temp\未命名1.cpp:33: parse error at end of
input
构建中止未命名1: 1 个错误, 0 个警告
实验后的源程序:
//用选择法对10个整数排序
#include
void main()
{
printf ("请输入一串乱序的10个整数:\n");
int a[10];
int i,j,k;
for(i=0;i<10;i++)
{
scanf("%d",a[i]);
}
printf("\n");
for(i=0;i<10;i++)
for(j=0;j<10-j;j++)
{
if(a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
k=a[j+1];
}
}
printf("这10个整数从小到大排列为:");
for(j=0;j<10;j++)
{
printf("%d ",a[j]);
}
printf("\n");
printf("这10个整数从大到小排列为:");
for(j=9;j>=0;j--)
{
printf("%d ",a[j]);
}
}
九、求一个3*3的整数矩阵对角线元素之积:实验前的源程序:
#include
void main()
{
int a[3][3];
int i,j,ji=1;
printf("请输入一个3*3的矩阵:\n");
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
{
scanf("%d",&a[i][j])
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(i=j)
ji*=a[i][j];
printf("主对角线的积为:%d\n",ji);
}
}
实验错误报告:
[Error] D:\Program Files\C-Free 4\temp\未命名4.cpp:11: parse error before
`}'
构建中止未命名4: 1 个错误, 0 个警告
实验后的源程序:
#include
void main()
{
int a[3][3];
int i,j,ji=1;
printf("请输入一个3*3的矩阵:\n");
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
{
scanf("%d",&a[i][j]);
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
if(i=j)
ji*=a[i][j];
printf("主对角线的积为:%d\n",ji);
}
}
十、将一个数组中的值按你需从新存放。例如,原来顺序为8,
6,5,4,1。要求改为1,4,5,6,8。
实验前的源程序:
#include
void main()
{
int a[10],i,j,t;
printf("请问你要输个几个数字: ");
scanf("%d",&j);
printf("请输入大小顺序的%d个数字: ",j);
for(i=0;i { scanf("%d",&a[i]); } for(i=0;i { t=a[i]; a[i]=a[j-i-1]; t=a[j-i-1]; } printf("该数组逆序排列为:"); for(i=0;i { printf("%d ",a[i]); printf("\n"); } 实验错误报告: [Error] D:\Program Files\C-Free 4\temp\未命名3.cpp:25: parse error at end of input 构建中止未命名3: 1 个错误, 0 个警告 实验后的源程序: #include void main() { int a[10],i,j,t; printf("请问你要输个几个数字: "); scanf("%d",&j); printf("请输入大小顺序的%d个数字: ",j); for(i=0;i { scanf("%d",&a[i]); } for(i=0;i { t=a[i]; a[i]=a[j-i-1]; a[j-i-1]=t; } printf("该数组逆序排列为:"); for(i=0;i { printf("%d ",a[i]); } printf("\n"); }