c语言程序初步实验,C语言实验报告(答案)

《C语言实验报告(答案)》由会员分享,可在线阅读,更多相关《C语言实验报告(答案)(39页珍藏版)》请在人人文库网上搜索。

1、C程序设计实验报告学 期: 2011-2012 教师姓名: 教研室: 22实验1 熟悉C语言程序的运行环境,掌握数据描述班 级学 号实 验 室专 业姓 名成绩评定所用软件计算机号教师签名1.1 实验目的1了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。2通过运行简单的C语言程序,初步了解C语言程序的结构特点。3掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。1.2 实验预习1熟悉Visual C+的启动和退出及Visual C+中的编辑、编译、连接和运行命令。2了解下列命令及函数:include、main、printf、scanf。3熟悉Visual C+环境下每个菜。

2、单项的功能及相关命令对应的操作。4各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。int、short (int)、long (int)、unsigned (int)、float、double、char、void5各类运算符的优先级和结合规则。6常量与变量的区别和联系。运行环境:1双击桌面Visual C+快捷方式进入Visual C+,或通过执行“开始程序Microsoft Visual Studio 6.0 Microsoft Visual C+6.0”或执行文件C:Program FilesMicrosoft Visual StudioCOMMONMSDev98BinMSDEV。

3、.EXE。2单击“文件”菜单的“新建”命令。3在打开的“新建”对话框中选择“文件”标签。4选择C+ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如first.c) ,单击确定按钮。如图所示:5在源窗口中输入源程序,如图所示。6编译程序:按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译编译连接运行若程序有错则找到出错行修改程序。7连接:若程序没有语法错误,则可按功能键或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。8运行程序:按组合键“Ctrl。

4、+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!”工具运行程序。1.3 实验任务1输入下面的程序,注意区分大小写。#include main()printf(“I am a student!”);2. 预测结果并上机验证人工分析结果实验运行结果#include main()printf(“*n”);printf(“I am a student!n”);printf(“*n”);*I am a student!*3预测结果并上机验证人工分析结果实验运行结果#include#includemain()int a,b,sum;scanf(“%d,%d”,&a,&b);sum=a+abs。

5、(b);printf(“a add b is %d”,sum);若输入为2,8 则输出为:a and b is 104预测结果并上机验证(1) main()int a,b;a=b=3;printf(“a=%d,b=%d”,a,b);(2)若将以上程序进行改写,编辑如下:main()int a,b;a=3;b=3.1;printf(“a=%d,b=%d”,a,b);题号人工分析结果实验运行结果(1)a=3,b=3(2)a=3,b=3由此知,若赋值号左右数据类型不一致时,c语言将按赋值号左边变量类型为准。 5现有程序如下,分析填空:人工分析结果实验运行结果1 main()2 3 int a=1,b。

6、=2;4 printf(“%d”,(a=a+b,b=b+a);5 5若将以上程序第4行进行改写,编辑如下:printf(“%d”,a=a+b,b=b+a);人工分析结果实验运行结果4对比以上两程序,结果不同的原因在于输出列表原程序为逗号表达式,所以输出b=b+a的值,而修改后的仅有一个格式控制符,只能对应输出第一个表达式a=a+b。 6若有以下程序段,分析c2的值: int c1=2,c2;c2=1.0/c1*c1;人工分析结果实验运行结果1若将程序段改为:c2=1/c1*c1;人工分析结果实验运行结果0分析c2所得结果,其中的关键在于除号两端如果都是整型数据,则所得结果截断取整7现有程序如下。

7、:main() int a=7, b=10;a=a+b; b=a-b; a=a-b;printf(“%d,%dn”, a, b );程序运行的功能是:交换a、b两数的值 注:可修改a、b两数的值仔细观察。8. 现有程序如下,分析填空:人工分析结果实验运行结果main() int a=0; a+=(a=8);printf(%dn,a);169. 现有程序如下,分析填空:人工分析结果实验运行结果main()int a=2,b=5;int m=3,n;double c=2.1,d=4.5;n=a/m+b*c-d/m;printf(“%d”,n);910.现有程序如下,分析填空:人工分析结果实验运行结。

8、果Main() int x=1,y=2;printf(“%d %dn”,+x,y+);2 211.现有程序如下,分析填空:人工分析结果实验运行结果main() int x,y,z=0;x=y=1;z+=x+=y;x=z+;y=+x;z=x+y; printf(“x=%d,y=%d,z=%d”,x,y,z);x=4,y=3,z=612.思考题:改错题(以下程序有多处错误,上机调试。将正确的程序记录在下方。要求不能删减已有内容。)源程序正确的程序应改为:#include #define STA 30main()int a,b=3;A=3*PI*SIN(b);STA=3*STA;printf(“%d。

9、n”,2a);printf(“%d”,b);#include #define STA 30#define PI 3.14main()int a,b=3;a=3*PI*sin(b);b=3*STA;printf(“%dn”,2*a);printf(“%d”,b);实验2 顺序结构程序设计与调试班 级学 号实 验 室专 业姓 名成绩评定所用软件计算机号教师签名2.1 实验目的1熟悉C语言的表达式语句、空语句和复合语句。2熟悉函数调用语句,尤其是各输入输出函数的调用语句。3熟悉顺序结构程序中语句的执行过程。4熟悉程序的跟踪调试和变量值的监视。5能设计简单的顺序结构程序。2.2 实验预习1熟悉下列函数。

10、:putchar、getchar、printf、scanf2了解顺序结构程序的执行过程。3了解程序的跟踪调试和变量值的监视并能够熟练操作。单步跟踪调试(逐条语句跟踪调试):(1)可按功能键F7进行,要监视某变量的值时,就按CtrlF7键,然后输入相应的变量名,就可以在监视消息窗口中查看到该变量的值。(2)也可逐段运行程序,即每次运行若干条语句。首先利用CtrlF8键在各行光标处设置若干断点,然后按CtrlF9键从程序的第一条语句运行到设置的第一个断点,再按CtrlF9键从设置的第一个断点运行到设置的第二个断点。4了解顺序结构程序的一般构成。2.3 实验任务1若有程序main() int i,j。

11、;scanf(i=%d,j=%d,&i,&j);printf(i=%d,j=%dn ,i,j); 要求给i赋5,给j赋10,则应该从键盘输入 i=5,j=10 2华氏温度,要求输出摄氏温度,公式为:C=。要求输出结果保留到小数点后两位。已知程序段中有三处错误,由注释语句/*found*/提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。错误原因是正确语句是#include main() float f,c; clrscr();/*found(1)*/scanf(%d,f);/*found(2)*/c=5/9(f-32);/*found(3)*/printf(f=%f,c=%fn,c,。

12、f);Scanf语句中是地址列表scanf(%d,&f);缺少运算符c=5/9*(f-32);输出表列用英文逗号分隔printf(t=%.2f,f=%.2fn,c,f);3. 已知程序功能是通过用户输入三角形三边,求取三角形面积。填空,将程序补充完整。求取公式为;S=(a+b+c)/2 area=sqrt(s*(s-a)*(s-b) *(s-c)人工填空上机填空#include (1)/*需要添加头文件*/main() float a,b,c,s,area;clrscr();scanf(%f,%f,%f,&a,&b,&c);(2);area=sqrt(3);/*库函数sqrt的含义是开平方*/。

13、printf(area=%fn,area);#include S=(a+b+c)/2(s*(s-a)*(s-b) *(s-c)4.单步跟踪下面程序的执行,每执行一条语句就查看各变量的值。运行时输入一个三位的整数。单步跟踪程序时填写下表,同时分析程序的功能。#include”stdio.h”void main()int n,x1,x2,x3,y;printf(“please input number n”);scanf(“%3d”,&n);x1=n/100;x2=n/10%10;x3=n%10;y=x3*100+x2*10+x1;printf(“y=%3d”,y);nX1X2X3y程序的功能是:。

14、 将输入的3位整数逆序排列 5. # include void main( ) char ch;ch=getchar();putchar(ch);运行时如果从键盘输入数据98,你预测的输出结果是 实际的输出结果为 9 原因在于getchar()只能接收单个字符,数字也当字符处理6. # include void main( ) int a,b,c;scanf(“%d,%o”,&a,&b);c=a*b;printf(“%d,%on”,c,c);运行时如果输入数据:12,12你预测的结果是 ,实际的输出结果是 120,170 。7. # include void main( ) int x,n1,。

15、n2,n3,y; scanf(%3d, &x);n1=x/100;n2=x/10%10;n3=x%10;y=n3*100+n2*10+n1;printf(“%dn”,y);上述程序在运行时如果从键盘输入数据8265,则x的值为_ 826 _;输出的结果为 628 , 在变量n1、n2、n3中,_n1_是x的百位数,_n2_是x的十位数,__n3_是x的个位数。8. #include void main( ) int a=123, b=-45;float x=2.54729;printf(“a=%d,%2d,%5d,%-5d,%+5dn”, a,a,a,a,a);printf(“b=%d,%2d。

16、,%5d,%-5d,%+5dn”, b,b,b,b,b);printf(“x=%f,%9f,%9.2fn”, x,x,x);printf(“x=%-7.3f,%2.2f,%.0fn”, x,x,x);在下面写出程序的运行结果,每个空格用一个|_| 来表示a=123,123,|_|_| 123,123|_|_| ,|_| +123b=-45,-45,|_|_| -45,-45|_|_| ,|_|_|-45x=2.547290 ,|_| 2.547290 ,|_|_|_|_|_|2.55x=2.547|_|_|,2 .55,39. 编辑程序,输入学生语、数、英三门课程成绩(考虑数据类型,整型和实型。

17、),并输出其总分和平均分。整型:main() int c,m,e,sum;float ave;scanf(%d,%d,%d,&c,&m,&e);sum=c+m+e;ave=sum/3.0;printf(“sum=%dn ave=%f”,sum,ave);实型:main()float c,m,e,sum,ave;scanf(%f,%f,%f,&c,&m,&e);sum=c+m+e;ave=sum/3;printf(“sum=%fn ave=%f”,sum,ave);实验3 选择结构程序设计与调试班 级学 号实 验 室专 业姓 名成绩评定所用软件计算机号教师签名3.1 实验目的1理解C语言表示逻辑。

18、量的方法(以0代表“假”,以非0代表“真”)。2学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式。3学会运用逻辑表达式或关系表达式等表达条件。4熟练掌握if语句和switch语句。5学习跟踪调试程序,针对具体程序组织输入测试数据,观察程序运行能否得到预期的输出结果。6熟悉选择结构程序段中语句的执行过程。3.2 实验预习1熟悉逻辑运算符和逻辑表达式、关系运算符和关系表达式。2熟悉下列语句:if、if-else、switch、break。3.3 实验任务1阅读程序,上机调试并记录程序结果。人工分析结果实验运行结果#include main( ) int x=0; if(x=0) prin。

19、tf(x=%dn,x);else printf(x=%dn,x+1); x=0#include main( ) int x=0; clrscr();if(x=0) printf(x=%dn,x);else printf(x=%dn,x+1); x=1以上两题告诉了你什么:1) c中的赋值号与等于运算符应区分。 2) 若判断表达式值为0,表示假,执行else分支 2阅读程序,上机调试并记录程序结果。人工分析结果实验运行结果实验告诉我们main()int a=4,b=3,c=5,t=0;if(abc);printf(%dn,d); 0关系运算符无论有多少,总是一个个运算得结果然后参与下一个运算的。。

20、4.若从键盘输入58,判断以下程序输出的结果。人工分析结果实验运行结果main() int a;scanf(%d,&a);if(a50) printf(%d,a);if(a40) printf(%d ,a);if(a30) printf(%d ,a); 5858585. 阅读程序,上机调试并记录程序结果。人工分析结果实验运行结果main() int x=1,a=0,b=0;switch(x) case 0: b+;case 1: a+;case 2: a+;b+; printf(“a=%d,b=%dn ”,a,b); a=2,b=16. 阅读程序,上机调试并记录程序结果。人工分析结果实验运行结。

21、果main() int a=13,b=21,m=0;switch(a%3) case 0:m+;break;case 1:m+;switch(b%2) default:m+;case 0:m+;break;printf(“m=%dn”,m);m=37. 阅读程序,上机调试并记录程序结果。人工分析结果实验运行结果实验告诉我们main() int i=1,j=1,k=2;if(j+|k+)&i+); printf(%d,%d,%dn,i,j,k);2,2,2逻辑运算符不是所有的符合都可以参与运算的8. 阅读程序,并回答问题main( ) int a,b,max,min;scanf(%d%d,&a,。

22、&b);if(ab)max=a;elsemax=b; printf(max=%dn,max);问题:a、此程序的功能是 输出两数中的最大数 b、请用条件表达式语句(?:)修改程序使之完成相同的功能,其语句是 printf(“max=%dn”,ab?a:b); 9. 有一函数x-1 (x=10)编程求当分别输入x的值为0.3,3.9,11时,y的值。main() float x,y;scanf(%f,&x);if (x0) /*if分支用于判断x的大小,并根*/printf(x100); /*据位数决定逆序的最终值*/else if(b0) printf(10b)e=a;a=b;b=e;if(a。

23、c)e=a;a=c;c=e;if(bc)e=b;b=c;c=e;printf(%d,%d,%d,a,b,c);3.4思考请思考如何通过改变分支条件将多if嵌套变成无套形式,提高计算机的运算效率。请上网搜索答案,体会程序优化的思路方式。无具体答案。实验4 循环结构程序设计班 级学 号实 验 室专 业姓 名成绩评定所用软件计算机号教师签名4.1 实验目的1掌握用while语句、do-while语句和for语句实现循环的方法。2理解循环结构程序段中语句的执行过程,进一步练习程序的跟踪调试技术。3. 掌握在程序设计中用循环的方法实现各种算法(如穷举法、迭代等)。4. 理解break语句和continu。

24、e语句的功能和执行过程。4.2 实验预习1熟悉语句:while、do-while、for 、break、continue。2熟悉三种循环语句之间的关系和区别。4.3 实验任务(一)while循环1若输入的值是5,预测结果并上机验证人工分析结果实验运行结果main() int i,n; scanf(%d,&n); i =1;while(i0 & +x=a&ch=A&chmain() int x=14;while(x10&xmain() int i=0,a=0;while(i10) _1_;x+; if(x%2) _2_;printf(“%d”,x); (五)循环嵌套1. 预测结果并上机验证人工分。

25、析结果实验运行结果main() int i,j,m=0; for(i=2;imain( )float s=0;int n;/*found*/for(n=1,n#include main()int s=0,i,n,flag; for(i=3;ifun(int x, int y, int z) z=x*x+y*y; main() int a=31;fun(5,2,a);printf(“%d”,a); 312.预测结果并上机验证人工分析结果实验运行结果#include int a, b;void fun() a=100; b=200; main( ) int a=5, b=7;fun();print。

26、f(“%d %d n”, a,b); 5 73.预测结果并上机验证人工分析结果实验运行结果#include int f(int n) if(n=1) return 1;else return f(n-1)+1;main() int i,j=0;for(i=1;iint ff(int n) static int f=l;f=f*n;return f;main() int i;for(i=1;i#define N 10#define s(x) x*x#define f(x) (x*x)main() int i1,i2;i1=1000/s(N);i2=1000/f(N);printf(“%d %dn。

27、”,i1,i2); 1000 106.程序填空定义两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。#include int f1(int m,int n) /*填空位置(1),函数功能:____________________。*/int z;for(z=m;zlong int f(int i)long int s,a;for(a=1,s=1;amain() char s=abcdef;s3=0;printf(%sn,s); abc2.预测结果并上机验证人工分析结果实验运行结果#include main()int a44=1,2,-3,。

28、-4,0,-12,-13,14 ,-21,23,0,-24,-31,32,-33,0;int i,j,s=0; for(i=0;imain()char ch35=AAAA,BBB ,CC; char s=141141abct;printf (%sn,s);printf(%sn,ch1);141aabc“BBB”4.预测结果并上机验证人工分析结果实验运行结果#include main() char a=a,b,c,d,e,f,g,h,0;int i,j;i=sizeof(a);j=strlen(a);printf(“%d,%db”i,j);9,85程序填空 (1)在有序数据序列中插入一个数据,插。

29、入后仍然保证数据序列的有序性。原始数据序列为:5,8,12,15,26,78,92,93,102,需要插入的数据值为25。算法思想:(1)通过比较,确定需要插入的位置。(2)从插入位置开始,所有数据依次右移(后移)1位,然后将数据插入到确定的位置上。#include #define N 10int aN=5,8,12,15,26,78,92,93,102;main() int i,j,k,data=25;clrscr();for(i=0;i=k;j-)_______________; /*填空位置(2),插入位置之后所有元素依次右移1位*/_______________; /*填空位置(3),。

30、将指定的数据插入到有序序列中*/for(i=0;i#define M 4#define N 4int aMN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;main()int i,j,s=0;for(i=0;i=M-1;i+)for((1)__________;(2)__________;j+)if((3)____________________) s=s+aij;printf(sum=%dn,s);填空位置人工填空语句(或表达式)实验填空语句(或表达式)1j=02j=n-13i=0|j=0|i=M-1|j=N-1实验运行结果3编程题: (1)编辑程序,将用户输入的任意字符串中的数字字符全部删除,形成新的字符串输出。main() cha。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值