C语言实验报告2

  • 格式:docx
  • 大小:139.77 KB
  • 文档页数:13
下面给出一个语句段,学生补充一个完整的程序后,上机进行调试。
for(i=1;i<=10;i++)
{ c1=getchar( );
c2=c1–32;
printf(“string %c\n”,c2);
}
【自编程序上机】
1 (判错)下述论断哪些是不对的?
1每个C语言程序有且仅有一个主函数 main()。
2C语言程序的每一行都用分号结尾。
printf(“c1=%c,c2=%c\n”,c1,c2);
}
3题:
#include <stdio.h>
void main()
{
float x,y,z,l;
scanf(“%f%f%f”,&x,&y,&z);
l=x-z%2*(x+y)%2/2;
printf(“%f\n”,l);
}
4题:main()
{ int x,y,z;
}
运行看看结果如何?为什么?
④ main()
{ int i;float x;long y;
i=100;x=200;y=300;
printf(“i=%d,x=%d,y=%d\n”,i,x,y);
printf(“i=%f,x=%f,y=%f\n”,i,x,y);
printf(“i=%ld,x=%ld,y=%ld\n”,i,x,y);
3C程序的执行从第一行开始到最后一行结束。
4C程序的每一行只能写一条语句。
5C程序的一条语句可以占多行。
6一个C程序可有一个或多个函数组成。
7在C程序中,注释说明只能写在一条语句的末尾。
8在一个C程序中,主函数必须放在程序的首部。
9在一个C程序中,主函数main()可以放在程序的任何位置上。
10在C程序中,注释部分是用花括号括起来的。
}
③ main()
{ int i,j,k;float x,y,z;
scanf(“%d%f%”,&i,&j,&k);
scanf(“%d%f%f”,x,y,z);
i=i+x;y=y+j;z=i+j;k=x%y;
printf(“%d%f%f\n”,i,j,k);
printf(“%f%d%d\n’,x,y,z);
printf(“c1=%c,c2=%c\n”,c1,c2);
}
运行上面程序,分析结果,特别注意输出C1,C2的值是什么?什么原因?
⑴将输入e和f、u和v的语句分别改为:
scanf(“%d,%d”,&e,&f);
scanf(%d,%d”,&u,&v);
运行并分析结果。
⑵将程序的第一行加命令行:
#include <math.h>
scanf(“%c,%c”, &c1,&c2);
printf(“\n”);
printf(“a=%4d,b=%4d\n”,a,b);
printf(“c=%8.2f,d=%8.2f\n”,c,\n”,e,f);
printf(“u=%o,v=%o\n”,u,v);
main()
{ int i,j;float x,y; long int m;
i=688;j=-32765;x=12345.678;y=-48765.432;
m=1234567890;
printf(%d,%8d,%08d,%-8d\n”,i,i,j,j);
printf(%f,%12.2f,%12.2f,%-12.2f\n”,x,x,y,y); printf(%ld,%lu,%12ld,%-12d\n”,m,m,m,m);}
三、实验环境
DOS或Windows操作系统;
TC或BorlandC++编译系统。
四、实验过程
1实验步骤
【上机实习指导】
1题:
2题:
3题:
4题:
【自编程序上机】
1题:
2题:
3题:
2关键代码及其解释
【上机实习指导】
1题:main()
{ char c1,c2;
c1=46;c2=47;
printf(“%3c%3c”, c1,c2);
1进一步掌握运行一个C语言程序的方法和步骤。
2分清C语言的符号、标识符、保留字的区别。
3掌握C语言的数据类型,会定义整型、实型、字符型变量以及对它们的赋值方法。
4学会数据输入方式和数据输出格式及各种格式转意符。
5学会使用C的运算符以及用这些运算符组成的表达式,特别是自加(++)和自减(——)运算符的使用。
}
若将输入函数改为scanf(“%d,%d,%c”,&x,&y,&ch);
或者 scanf(“%d,%c,%d”,&x,&ch,&y);
或者 scanf(“%c,%d,%d”,&ch,&x,&y);
结果将会如何?
4 下面程序对输入有何要求?利用它可以作什么?
main()
{ int x,y,z; long m;
运行并分析结果。
3 编写一个程序,求表达式x-z%2*(x+y)%2/2的值。设
x=8.5 ,y=2.5 ,z=4
4 先分析下面程序的结果,然后再上机运行,看结果上否一致。
main()
{ int x,y,z;
x=y=z=3;
y=x++ -1; printf(“%4d%4d”,x,y);
y=++x–1; printf(%4d%4d”,x,y);
printf(“c1=%c,c2=%c\n”,c1,c2);
}
3题:#include <stdio.h>
main()
{
float x,y,z,end; /*因为整型和浮点型的内部运算不一样*/
x=8.5;
y=2.5;
z=4;
end=x-z%2*(x+y)%2/2;
printf(“end is %f\n”,end);
2下列程序错误在哪里?
① main( ) /* 给定半径r,求园的面积s */
{ float r,s;
s=п*r*r;
printf(“s=%f\n”,s)
}
② main() /* 给定长和宽l,w,求矩形面积s */
{ int l,w,s;
scanf(“%d%d”,l,w);
s=l*w;
printf(l,w,s);
x=y=z=3;
y=x++ -1; printf(“%4d%4d”,x,y);
y=++x–1; printf(%4d%4d”,x,y);
y=z - -+1; printf(“%4d%4d”,z,y);
y= - -z+1; printf(“%4d%4d”,z,y);
}
3调试过程
【上机实习指导】
1题:2,9,,10
(2)C语言程序的每一行都用分号结尾。错
应该是每一个语句的结束都用分号结尾。
(9)在一个C程序中,主函数main()可以放在程序的任何位置上。错
主函数main()应放在程序的首部。
(10)在C程序中,注释部分是用花括号括起来的。错
注释部分用“/* */”来表示。
2题:(1)printf(“s=%f\n”,s)没有分号
}
2main()
{ int x; long y;
x= -500;y= -500;
printf(“x=%d,%u;y=%ld,%u\n”,x,x,y,y);
}
你记得补码是何意义吗?上述程序说明了什么?如果将x,y各赋值为-1。或者各赋值为-32768和-2147483648,输出结果如何?为什么?
6 输出宽度及控制
y=z - -+1; printf(“%4d%4d”,z,y);
y= - -z+1; printf(“%4d%4d”,z,y);
}
注:本例学生注意,自增自减运算符,先赋值后自增(自减)和先自增(自减)后赋值的问题。
*5 编写一个程序,将输入的小写字母改写成大写字母并输出。提示:可采用getchar( )函数输入字符,并利用for( )循环语句。当然也可用其它方法,只要能实现其功能即可。
(2)scanf(“%d%d”,l,w) l,w前需要加上&
(1)scanf(“%d%f%f”,x,y,z); x,y,z前需要加上&,
printf(“%f%d%d\n’,x,y,z);没有用双引号
(4)整型和浮点型和长整型内部运算不一样
3题::main()
{
int x,y;
char ch;
x=10;
scanf(“%d%o%x”,&x,&y,&z);
scanf(“%x%ld”,&m);
printf(“x=%d,%o;%x\n”,x,x,x);
printf(“y=%d,%o;%x\n”,y,y,y);
printf(“z=%d,%o;%x\n”,z,z,z);
printf(“m=%ld,%lo;%lx\n”,m,m,m);
}
4题:main()
{ int x,y,z;
x=y=z=3;
y=x++ -1; printf(“%4d%4d”,x,y);
y=++x–1; printf(%4d%4d”,x,y);
y=z - -+1; printf(“%4d%4d”,z,y);
y= - -z+1; printf(“%4d%4d”,z,y);