C上机实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指导教师:
实验二
【实验日期】年月日
【实验目的】
1.掌握关系运算符及逻辑运算符。
2.掌握if语句、switch语句的格式及执行过程。
3.掌握while语句、do-while语句和for语句的格式和执行过程。
4.掌握选择结构、循环结构程序设计的基本方法。
【实验内容】
改错题
1、改正下列程序中的错误,输入x、计算并输出下列分段函数f(x)的值(保留一位小数)。
{ int i,j,n,x,a[n];
printf(“请输入数据的个数n:”);
scanf(“%d”,&n);
printf(“请输入这%d个整数:”,n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
printf(“请输入要插入的整数:”);
scanf(“%d”,&x);
j=n;/*假设插在最后*/
2、 当n为152时,分别求出n的个位数字(d1)、十位数字(d2)和百位数字(d3)的值。
输出示例:整数152的个位数字是2,十位数字是5,百位数字是1
提示:n的个位数字d1的值是n%10,十位数字d2的值是(n/10)%10,百位数字d3的值是n/100。
思考:如果n是一个四位数,任何求出它的每一位数字?
scanf(“%d”,&n);
printf(“请输入这%d个数:”,n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
ex(a,n);
for(i=0;i<n;i++)
输出示例
1!+2!+…+10!=4037913.000000
源程序(有错误的程序)
#include“stdio.h”
double fact(int n);/*对函数进行声明*/
void main()
{ int i;
/*******************found*********************/
指导教师:
实验
【实验日期】年月日
【实验目的】
1.熟练掌握使用一维数组编程的方法。
2.熟练掌握使用字符数组处理字符串的方法。
3.掌握用数组名作为函数参数的编程方法。
【实验内容】
改错题
1、输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符(0~9)转换为整数,去掉其他字符。例如,字符串“4a56bc”转换为整数后是456。
scanf(“%lf”,x);
if(x!=0)
/******************* found ***********************/
y=1/x
else
y=0;
printf(“f(%.2f)=%.1f\n”,x,y);}
运行结果1(改正后程序的运行结果)
Enter x:5
F(10.00)=0.2
源程序(有错误的程序)
#include“stdoi.h”
void main()
{ int c;f;
f=100;
c=5*(f-32)/9;
printf(“f=d,c=%d\n”,f,c);
}
运行结果(改正后程序的运行结果)
f=100,c=37
调试过程:
(1)输入源程序。
(2)使用菜单或工具栏来完成编译、连接和运行操作。
for(i=0;i<n;i++)
if(x<a[i]){ j=i; break; }/*找到插入点*/
for(i=n-1;i>=j;i--)/*从插入点开始,所有的数据顺序后移*/
/********************found*********************/
a[i] =a[i+1];
area= ,其中s=(a+b+c)/2
输入输出示例(运行2次)
第一次运行:
请输入三角形的三边:3 4 5
area=6.00perimeter=12.00
第二次运行:
请输入三角形的三边:1 3 1
不构成三角形
2、输入1个正整数n,计算1+ 的前n项之和,输出时保留2位小数。
输入输出示例(运行2次)
第一次运行:
while(x>0)
{a=even(x);
if(a==1) sum=sum+x;
scanf(“%d”,&x);
}
printf(“其中偶数的和是:%d\n”,sum);
}
2、编写一个程序,包含两个函数,一个函数fun1(int x)用来判定x是否为偶数,另一个函数fun2(int x)用来x是否为素数,函数的判断结果可用1和0分别表示肯定和否定。自定义main函数,在main函数中输入两个正整数m和n,调用fun1函数判定m是否为偶数,调用fun2函数判定n是否为素数。(此题为思考题)
源程序(有错误的程序)
/********************found **********************/
#include“stdoi.h”
void main()
{ double x,y;
printf(“Enter x:”);
/******************* found ***********************/
double sum;
/*******************found**********************/
for(i=1;i<10;i++)
sum=sum+fact(i);
printf(“1!+2!+…+10!=%f\n”,sum);
}
/*******************found**********************/
}
运行结果1(改正后程序的运行结果)运行结果2
Input x:5Input x:4
25=5*516=4*4
5*5=254*4=16
编程题
1、已知某位学生的数学、英语和计算机课程的成绩分别是82分、78分和91分,求该生3门课的平均成绩。
输出示例:Math=82,eng=78,comp=91,average=83
/********************found*********************/
a[i]=x;/*插入数据*/
printf(“插入后:”);
for(i=0;i<n+1;i++)
printf(“%d”,a[i]);
putchar(‘\n’);
}
编程题
1、输入1个正整数n(1<n≤10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。
Enter n:3
sum=1.53
第二次运行:
Enter n:10
sum=2.13
指导教师:
实验三
【实验日期】年月日
【实验目的】
1.熟练掌握函数的定义和调用。
2.熟练掌握使用函数编写程序。
3.掌握函数的实参、形参和返回值的概念和使用。
【实验内容】
改错题
改正下列程序中的错误,计算1!+2!+3!+…+10!的值,要求定义并调用函数fact(n)计算n!,函数类型是double。
运行结果(改正后程序的运行结果)
请输入数据的个数n:5
请输入这5个整数:1 2 3 6 8
请输入要插入的整数:
4插入后:1 2 3 4 6 8
【提示:先找到插入点,从插入点开始,所有的数据顺序后移,然后插入数据。】
源程序(有错误的程序)
#include“stdio.h”
void main()
/********************found********************/
运行结果2
Enter x:0
F(0.00)=0.0
2、改正下列程序中的错误,计算表达式1+2+3+…+100的值。
源程序(有错误的程序)
#include“stdio.h”
void main()
/******************found*********************/
{int i,sum;
double fact(int n);
{ int i;
double r=1;
for(i=1;i<=n;i++)
r=r*i;
return r;
}
编程题
1、输入一批正整数(以零或负数为结束标志),求出其中的偶数和。要求定义并调用函数even(n)判断数的奇偶性,当n为偶数时返回1,否则返回0。
输入输出示例
scanf(“%d”,&x);
y=x*x;
/********************found**********************/
printf(“%d=%d*%d\n”,x);
/********************found**********************/
printf(“%d*%d=%d\n”,y);
输入输出示例
Abc85xyz64
8564
源程序(有错误的程序)
#include“stdio.h”
#include“string.h”
void main()
/****************** found ******************/
{ int i,s;
char str[80];
gets(str);
/*****************found***********************/
for(i=1,i<=100,i++)
sum=sum+i;
printf(“sum=%d\n”,sum);
}
运行结果(改正后程序的运行结果)
Sum=5050
编程题
1、输入三角形的3条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“不构成三角形”。在一个三角形中,任意两边之和大于第三边。三角形面积计算公式:
请输入一串正整数(用零或负数结束):12 5 8 9 4 13 20 7 0
其中偶数和是:44
需要完善的源程序如下:
#include“stdio.h”
int even(int n)
{
}Hale Waihona Puke Baidu
void main()
{ int a,x,sum=0;
printf(“请输入一串正整数(用零或负数结束):”);
scanf(“%d”,&x);
for(i=0;i<strlen(str);i++)
/****************** found*******************/
if(str[i]<=’0’||str[i]>=’9’)
s=s*10+str[i]-48;
printf(“%d”,s);}
2、输入1个正整数n(0<n<9)和一组(n个)有序的整数,再输入一个整数x,把插入到这组数据中,使该组数据仍然有序。
输入输出示例
请输入数据个数n值:5
请输入这5个数:4 6 2 9 8
处理后的结果是:2 6 4 8 9
需要完善的程序如下:
#include“stdio.h”
int ex(int a[],int n)
{
}
void main()
{ int i,a[10],n,x,t;
printf(“请输入数据个数n(1≤n≤10):”);
(3) 单击编译(Compile)按钮,编译时出现的第一条错误信息是:
Cannot open include file:’stdoi.h’:no such file or directory
通过拖动信息窗口右侧的滚动块或将信息窗口拉大可查看错误信息。双击该错误信息,箭头指向源程序的第一行,因为“stdio.h”被误写为“stdoi.h”。改正为“stdio.h”后,重新编译,新产生的第一条错误信息是:‘f’:undeclared identifier
实验一
【实验日期】年月日
【实验目的】
1.熟悉VC++6.0调试环境,掌握运行一个C程序的基本步骤。
2.掌握基本输入、输出函数的使用。
3.能够编写简单的顺序结构程序,实现简单的数据处理。
4.掌握C程序的查错方法。
【实验内容】
调试示例
改正下列程序中的错误,求华氏温度1000F对应的摄氏温度。计算公式如下,其中:c表示摄氏温度,f表示华氏温度。
双击该错误信息,箭头指向源程序的第四行,错误信息指出“f”变量没有被定义。仔细观察后,发现“f”前的分号应该为逗号。将“f”前的分号改为逗号后,重新编译,编译正确。
(4) 单击连接(Build)按钮,连接正确。
(5) 单击运行(Build Execute)按钮,运行结果为:f=d,c=100。
结果不符合题目的要求,仔细检查源程序,发现函数printf中“f=d”的“d”应为 “%d”。改正后,重新编译、连接和运行,运行结果与题目要求的结果一致。
改错题
改正下列程序中的错误,计算x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。
源程序(有错误的程序)
/********************found********************/
#include“stdoi.h”
void main()
{ int y,x;
printf(“Input x:”);
实验二
【实验日期】年月日
【实验目的】
1.掌握关系运算符及逻辑运算符。
2.掌握if语句、switch语句的格式及执行过程。
3.掌握while语句、do-while语句和for语句的格式和执行过程。
4.掌握选择结构、循环结构程序设计的基本方法。
【实验内容】
改错题
1、改正下列程序中的错误,输入x、计算并输出下列分段函数f(x)的值(保留一位小数)。
{ int i,j,n,x,a[n];
printf(“请输入数据的个数n:”);
scanf(“%d”,&n);
printf(“请输入这%d个整数:”,n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
printf(“请输入要插入的整数:”);
scanf(“%d”,&x);
j=n;/*假设插在最后*/
2、 当n为152时,分别求出n的个位数字(d1)、十位数字(d2)和百位数字(d3)的值。
输出示例:整数152的个位数字是2,十位数字是5,百位数字是1
提示:n的个位数字d1的值是n%10,十位数字d2的值是(n/10)%10,百位数字d3的值是n/100。
思考:如果n是一个四位数,任何求出它的每一位数字?
scanf(“%d”,&n);
printf(“请输入这%d个数:”,n);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
ex(a,n);
for(i=0;i<n;i++)
输出示例
1!+2!+…+10!=4037913.000000
源程序(有错误的程序)
#include“stdio.h”
double fact(int n);/*对函数进行声明*/
void main()
{ int i;
/*******************found*********************/
指导教师:
实验
【实验日期】年月日
【实验目的】
1.熟练掌握使用一维数组编程的方法。
2.熟练掌握使用字符数组处理字符串的方法。
3.掌握用数组名作为函数参数的编程方法。
【实验内容】
改错题
1、输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符(0~9)转换为整数,去掉其他字符。例如,字符串“4a56bc”转换为整数后是456。
scanf(“%lf”,x);
if(x!=0)
/******************* found ***********************/
y=1/x
else
y=0;
printf(“f(%.2f)=%.1f\n”,x,y);}
运行结果1(改正后程序的运行结果)
Enter x:5
F(10.00)=0.2
源程序(有错误的程序)
#include“stdoi.h”
void main()
{ int c;f;
f=100;
c=5*(f-32)/9;
printf(“f=d,c=%d\n”,f,c);
}
运行结果(改正后程序的运行结果)
f=100,c=37
调试过程:
(1)输入源程序。
(2)使用菜单或工具栏来完成编译、连接和运行操作。
for(i=0;i<n;i++)
if(x<a[i]){ j=i; break; }/*找到插入点*/
for(i=n-1;i>=j;i--)/*从插入点开始,所有的数据顺序后移*/
/********************found*********************/
a[i] =a[i+1];
area= ,其中s=(a+b+c)/2
输入输出示例(运行2次)
第一次运行:
请输入三角形的三边:3 4 5
area=6.00perimeter=12.00
第二次运行:
请输入三角形的三边:1 3 1
不构成三角形
2、输入1个正整数n,计算1+ 的前n项之和,输出时保留2位小数。
输入输出示例(运行2次)
第一次运行:
while(x>0)
{a=even(x);
if(a==1) sum=sum+x;
scanf(“%d”,&x);
}
printf(“其中偶数的和是:%d\n”,sum);
}
2、编写一个程序,包含两个函数,一个函数fun1(int x)用来判定x是否为偶数,另一个函数fun2(int x)用来x是否为素数,函数的判断结果可用1和0分别表示肯定和否定。自定义main函数,在main函数中输入两个正整数m和n,调用fun1函数判定m是否为偶数,调用fun2函数判定n是否为素数。(此题为思考题)
源程序(有错误的程序)
/********************found **********************/
#include“stdoi.h”
void main()
{ double x,y;
printf(“Enter x:”);
/******************* found ***********************/
double sum;
/*******************found**********************/
for(i=1;i<10;i++)
sum=sum+fact(i);
printf(“1!+2!+…+10!=%f\n”,sum);
}
/*******************found**********************/
}
运行结果1(改正后程序的运行结果)运行结果2
Input x:5Input x:4
25=5*516=4*4
5*5=254*4=16
编程题
1、已知某位学生的数学、英语和计算机课程的成绩分别是82分、78分和91分,求该生3门课的平均成绩。
输出示例:Math=82,eng=78,comp=91,average=83
/********************found*********************/
a[i]=x;/*插入数据*/
printf(“插入后:”);
for(i=0;i<n+1;i++)
printf(“%d”,a[i]);
putchar(‘\n’);
}
编程题
1、输入1个正整数n(1<n≤10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。
Enter n:3
sum=1.53
第二次运行:
Enter n:10
sum=2.13
指导教师:
实验三
【实验日期】年月日
【实验目的】
1.熟练掌握函数的定义和调用。
2.熟练掌握使用函数编写程序。
3.掌握函数的实参、形参和返回值的概念和使用。
【实验内容】
改错题
改正下列程序中的错误,计算1!+2!+3!+…+10!的值,要求定义并调用函数fact(n)计算n!,函数类型是double。
运行结果(改正后程序的运行结果)
请输入数据的个数n:5
请输入这5个整数:1 2 3 6 8
请输入要插入的整数:
4插入后:1 2 3 4 6 8
【提示:先找到插入点,从插入点开始,所有的数据顺序后移,然后插入数据。】
源程序(有错误的程序)
#include“stdio.h”
void main()
/********************found********************/
运行结果2
Enter x:0
F(0.00)=0.0
2、改正下列程序中的错误,计算表达式1+2+3+…+100的值。
源程序(有错误的程序)
#include“stdio.h”
void main()
/******************found*********************/
{int i,sum;
double fact(int n);
{ int i;
double r=1;
for(i=1;i<=n;i++)
r=r*i;
return r;
}
编程题
1、输入一批正整数(以零或负数为结束标志),求出其中的偶数和。要求定义并调用函数even(n)判断数的奇偶性,当n为偶数时返回1,否则返回0。
输入输出示例
scanf(“%d”,&x);
y=x*x;
/********************found**********************/
printf(“%d=%d*%d\n”,x);
/********************found**********************/
printf(“%d*%d=%d\n”,y);
输入输出示例
Abc85xyz64
8564
源程序(有错误的程序)
#include“stdio.h”
#include“string.h”
void main()
/****************** found ******************/
{ int i,s;
char str[80];
gets(str);
/*****************found***********************/
for(i=1,i<=100,i++)
sum=sum+i;
printf(“sum=%d\n”,sum);
}
运行结果(改正后程序的运行结果)
Sum=5050
编程题
1、输入三角形的3条边a,b,c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“不构成三角形”。在一个三角形中,任意两边之和大于第三边。三角形面积计算公式:
请输入一串正整数(用零或负数结束):12 5 8 9 4 13 20 7 0
其中偶数和是:44
需要完善的源程序如下:
#include“stdio.h”
int even(int n)
{
}Hale Waihona Puke Baidu
void main()
{ int a,x,sum=0;
printf(“请输入一串正整数(用零或负数结束):”);
scanf(“%d”,&x);
for(i=0;i<strlen(str);i++)
/****************** found*******************/
if(str[i]<=’0’||str[i]>=’9’)
s=s*10+str[i]-48;
printf(“%d”,s);}
2、输入1个正整数n(0<n<9)和一组(n个)有序的整数,再输入一个整数x,把插入到这组数据中,使该组数据仍然有序。
输入输出示例
请输入数据个数n值:5
请输入这5个数:4 6 2 9 8
处理后的结果是:2 6 4 8 9
需要完善的程序如下:
#include“stdio.h”
int ex(int a[],int n)
{
}
void main()
{ int i,a[10],n,x,t;
printf(“请输入数据个数n(1≤n≤10):”);
(3) 单击编译(Compile)按钮,编译时出现的第一条错误信息是:
Cannot open include file:’stdoi.h’:no such file or directory
通过拖动信息窗口右侧的滚动块或将信息窗口拉大可查看错误信息。双击该错误信息,箭头指向源程序的第一行,因为“stdio.h”被误写为“stdoi.h”。改正为“stdio.h”后,重新编译,新产生的第一条错误信息是:‘f’:undeclared identifier
实验一
【实验日期】年月日
【实验目的】
1.熟悉VC++6.0调试环境,掌握运行一个C程序的基本步骤。
2.掌握基本输入、输出函数的使用。
3.能够编写简单的顺序结构程序,实现简单的数据处理。
4.掌握C程序的查错方法。
【实验内容】
调试示例
改正下列程序中的错误,求华氏温度1000F对应的摄氏温度。计算公式如下,其中:c表示摄氏温度,f表示华氏温度。
双击该错误信息,箭头指向源程序的第四行,错误信息指出“f”变量没有被定义。仔细观察后,发现“f”前的分号应该为逗号。将“f”前的分号改为逗号后,重新编译,编译正确。
(4) 单击连接(Build)按钮,连接正确。
(5) 单击运行(Build Execute)按钮,运行结果为:f=d,c=100。
结果不符合题目的要求,仔细检查源程序,发现函数printf中“f=d”的“d”应为 “%d”。改正后,重新编译、连接和运行,运行结果与题目要求的结果一致。
改错题
改正下列程序中的错误,计算x的平方y,并分别以“y=x*x”和“x*x=y”的形式输出x和y的值。
源程序(有错误的程序)
/********************found********************/
#include“stdoi.h”
void main()
{ int y,x;
printf(“Input x:”);