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
c语言搜题软件推荐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。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。