C语言 实验报告.docx
《C语言 实验报告.docx》由会员分享,可在线阅读,更多相关《C语言 实验报告.docx(20页珍藏版)》请在冰点文库上搜索。
![C语言 实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-7/1/bf4fb511-366e-4416-8587-7a2be2eb518a/bf4fb511-366e-4416-8587-7a2be2eb518a1.gif)
C语言实验报告
C语言程序设计(B)
(2010-2011-2)
实验报告
教学班级:
学号:
姓名:
课程教师:
实验辅导教师:
自由编辑的程序
一、实验前的源程序:
//任意整数的叠加
#include
voidmain()
{
inti,j,sum=0;
printf("pleaseinputaintnumber\n");
scanf("%d",&j)
for(i=0;i<=j;i++)
sum=sum+i;
printf("此数的叠加=%d\n",sum);
}
实验错误报告:
[Error]D:
\ProgramFiles\C-Free4\temp\未命名10.cpp:
7:
parseerrorbefore`for'
[Error]D:
\ProgramFiles\C-Free4\temp\未命名10.cpp:
7:
parseerrorbefore`)'
构建中止未命名10:
2个错误,0个警告
实验后的源程序:
//任意整数的叠加
#include
voidmain()
{
inti,j,sum=0;
printf("pleaseinputaintnumber\n");
scanf("%d",&j);
for(i=0;i<=j;i++)
sum=sum+i;
printf("此数的叠加=%d\n",sum);
}
二、实验前的源程序:
/*小写字母转大写字母*/
#include
voidmain()
{
charc1,c2;
c1='w';
c2='s';
c1=c1-32;
c2=c2-32;
printf("%c,%c\n",c1,c);
}
实验错误报告:
[Error]D:
\ProgramFiles\C-Free4\temp\未命名11.cpp:
9:
`c'undeclared(firstusethisfunction)
[Error]D:
\ProgramFiles\C-Free4\temp\未命名11.cpp:
9:
(Eachundeclaredidentifierisreportedonlyonce
[Error]D:
\ProgramFiles\C-Free4\temp\未命名11.cpp:
9:
foreachfunctionitappearsin.)
构建中止未命名11:
3个错误,0个警告
实验后的源程序:
/*小写字母转大写字母*/
#include
voidmain()
{
charc1,c2;
c1='w';
c2='s';
c1=c1-32;
c2=c2-32;
printf("%c,%c\n",c1,c2);
}
三、实验前的源程序:
/*查看某一年是否为闰年*/
#include
voidmain()
{
intyear,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:
\ProgramFiles\C-Free4\temp\未命名14.cpp:
15:
parseerrorbefore`else'
[Error]D:
\ProgramFiles\C-Free4\temp\未命名14.cpp:
25:
parseerroratendofinput
构建中止未命名14:
2个错误,0个警告
实验后的源程序:
/*查看某一年是否为闰年*/
#include
voidmain()
{
intyear,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
voidmain()
{
floatx,y,z;
scanf("%5.2f,%5.2f",&x,&y);
z=x+y;
printf("z=%5.2f",&z);
}
修改后的源程序:
#include
voidmain()
{
floatx,y,z;
scanf("%f%f",&x,&y);
z=x+y;
printf("z=%5.2f",z);
}
改错前的源程序;
#include
voidmain()
{
intx=7654123;
x*=10;
printf("x=%7d",x);
}
修改后的源程序:
#include
voidmain()
{
longx=7654123;
x*=10;
printf("x=%7d",x);
}
改错前的源程序:
#include
voidmain()
{
floatc1=67;
charc2;
c2=c1+5;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d",&c1,&c2);
}
修改后的源程序:
#include
voidmain()
{
intc1=67;
charc2;
c2=c1+5;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d",c1,c2);
}
五、程序编写题:
已知charch’b’;inti=3,j=5;floatx=22.354,y=435.6789;根据下面的输出结果编写程序。
ch=’b’,ASCII=98
i=3□□□□□□j=5
x=22.35□□□y=435.68
实验前的源程序:
#include
voidmain()
{
charch='b';
inti=3,j=5;
floatx=22.354,y=435.6789;
printf("ch='%c',ASCII=%d\n",ch,ch);
printf("i=%dj=%d\n",i,j);
printf("x=%.2fy=%.2f\n",x,y);
}
实验错误报告:
无
实验后的源程序:
#include
voidmain()
{
charch='b';
inti=3,j=5;
floatx=22.354,y=435.6789;
printf("ch=\'%c\',ASCII=%d\n",ch,ch);
printf("i=%dj=%d\n",i,j);
printf("x=%.2fy=%.2f\n",x,y);
}
六、从键盘输入一行字符,统计其中小写字母、大写字母和其它字符的个数:
实验前的源程序:
#include"stdio.h"
voidmain()
{
printf("请任意输入一串字符:
\n");
charch,sum1=0,sum2=0,other=0;
ch=getchar();
while(c!
='\n')
{
if(c>='A'&&c<='Z')sum1++;
elseif(c>='a'&&c<='z')sum2++;
elseother++;
c=getchar();
}
printf("大写字母的个数:
%d\n",sum1);
printf("小写字母的个数:
%d\n",sum2);
printf("其他字符母个数:
%d\n",other);
}
实验错误报告:
[Error]D:
\ProgramFiles\C-Free4\temp\未命名7.cpp:
7:
`c'undeclared(firstusethisfunction)
[Error]D:
\ProgramFiles\C-Free4\temp\未命名7.cpp:
7:
(Eachundeclaredidentifierisreportedonlyonce
[Error]D:
\ProgramFiles\C-Free4\temp\未命名7.cpp:
7:
foreachfunctionitappearsin.)
构建中止未命名7:
3个错误,0个警告
实验后的源程序:
#include"stdio.h"
voidmain()
{
printf("请任意输入一串字符:
\n");
charch,sum1=0,sum2=0,other=0;
ch=getchar();
while(ch!
='\n')
{
if(ch>='A'&&ch<='Z')sum1++;
elseif(ch>='a'&&ch<='z')sum2++;
elseother++;
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()
{
floatsum=0;
inti,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:
\ProgramFiles\C-Free4\temp\未命名9.cpp:
13:
nondigitsinnumberandnothexadecimal
[Error]D:
\ProgramFiles\C-Free4\temp\未命名9.cpp:
19:
parseerroratendofinput
构建中止未命名9:
2个错误,0个警告
实验后的源程序:
#include"stdio.h"
#include"math.h"
main()
{
floatsum=0;
inti,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");
inta[10];
inti,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:
\ProgramFiles\C-Free4\temp\未命名1.cpp:
33:
parseerroratendofinput
构建中止未命名1:
1个错误,0个警告
实验后的源程序:
//用选择法对10个整数排序
#include
voidmain()
{
printf("请输入一串乱序的10个整数:
\n");
inta[10];
inti,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
voidmain()
{
inta[3][3];
inti,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:
\ProgramFiles\C-Free4\temp\未命名4.cpp:
11:
parseerrorbefore`}'
构建中止未命名4:
1个错误,0个警告
实验后的源程序:
#include
voidmain()
{
inta[3][3];
inti,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
voidmain()
{
inta[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:
\ProgramFiles\C-Free4\temp\未命名3.cpp:
25:
parseerroratendofinput
构建中止未命名3:
1个错误,0个警告
实验后的源程序:
#include
voidmain()
{
inta[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");
}