C语言实验报告答案.docx

上传人:b****6 文档编号:6593049 上传时间:2023-01-08 格式:DOCX 页数:41 大小:100.32KB
下载 相关 举报
C语言实验报告答案.docx_第1页
第1页 / 共41页
C语言实验报告答案.docx_第2页
第2页 / 共41页
C语言实验报告答案.docx_第3页
第3页 / 共41页
C语言实验报告答案.docx_第4页
第4页 / 共41页
C语言实验报告答案.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

C语言实验报告答案.docx

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

C语言实验报告答案.docx

C语言实验报告答案

(此文档为word格式,下载后您可任意编辑修改!

《C程序设计》

实验报告

 

学期:

教师姓名:

教研室:

实验1熟悉C语言程序的运行环境,掌握数据描述

班级

学号

实验室

专业

姓名

成绩评定

所用软件

计算机号

教师签名

1.1实验目的

1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。

2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。

3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。

1.2实验预习

1.熟悉VisualC++的启动和退出及VisualC++中的编辑、编译、连接和运行命令。

2.了解下列命令及函数:

include

3.熟悉VisualC++环境下每个菜单项的功能及相关命令对应的操作。

4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。

int、short(int)、long(int)、unsigned(int)、float、double、char、void

5.各类运算符的优先级和结合规则。

6.常量与变量的区别和联系。

运行环境:

1.双击桌面VisualC++快捷方式进入VisualC++,或通过执行“开始——>程序——>

MicrosoftVisualStudio6.0——>MicrosoftVisualC++6.0”或执行文件"C:

\ProgramFiles\MicrosoftVisualStudio\COMMON\MSDev98\Bin\MSDEV.EXE"。

2.单击“文件”菜单的“新建”命令。

3.在打开的“新建”对话框中选择“文件”标签。

4.选择C++SourceFile,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c(例如first.c),单击确定按钮。

如图所示:

5.在源窗口中输入源程序,如图所示。

6.编译程序:

按“Ctrl+F7”或通过“编译”菜单中的“编译”命令,或使用工具栏中的相应工具进行编译                 编译   连接  运行

若程序有错则找到出错行修改程序。

7.连接:

若程序没有语法错误,则可按功能键F7或执行“编译”菜单中的“构件”命令或通过工具栏中的相关工具(编译工具右边工具),进行连接生成可执行文件。

8.运行程序:

按组合键“Ctrl+F5”,或通过“编译”菜单中的执行命令,或通过工具栏中的“!

”工具运行程序。

1.3实验任务

1.输入下面的程序,注意区分大小写。

#include

{

printf(“Iamastudent!

”);

}

2.预测结果并上机验证

人工分析结果

实验运行结果

#include

{

printf(“************\n”);

printf(“Iamastudent!

\n”);

printf(“************\n”);

}

************

Iamastudent!

************

3.预测结果并上机验证

人工分析结果

实验运行结果

#include

{

inta,b,sum;

scanf(“%d,%d”,&a,&b);

sum=a+abs(b);

printf(“aaddbis%d”,sum);

}

若输入为2,8则输出为:

aandbis10

4.预测结果并上机验证

(1)main()

{

inta,b;

a=b=3;

printf(“a=%d,b=%d”,a,b);

}

(2)若将以上程序进行改写,编辑如下:

main()

{

inta,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.现有程序如下,分析填空:

人工分析结果

实验运行结果

1main()

2{

3inta=1,b=2;

4printf(“%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的值:

intc1=2,c2;

c2=1.0c1*c1;

人工分析结果

实验运行结果

1

若将程序段改为:

c2=1c1*c1;

人工分析结果

实验运行结果

0

分析c2所得结果,其中的关键在于除号两端如果都是整型数据,则所得结果截断取整

7.现有程序如下:

main()

{inta=7,b=10;

a=a+b;b=a-b;a=a-b;

printf(“%d,%d\n”,a,b);

}

程序运行的功能是:

交换a、b两数的值

注:

可修改a、b两数的值仔细观察。

8.现有程序如下,分析填空:

人工分析结果

实验运行结果

main()

{inta=0;

a+=(a=8);

printf("%d\n",a);

}

16

9.现有程序如下,分析填空:

人工分析结果

实验运行结果

main()

{

inta=2,b=5;

intm=3,n;

doublec=2.1,d=4.5;

n=am+b*c-dm;

printf(“%d”,n);

}

9

10.现有程序如下,分析填空:

人工分析结果

实验运行结果

Main()

{intx=1,y=2;

printf(“%d%d\n”,++x,y++);

}

22

11.现有程序如下,分析填空:

人工分析结果

实验运行结果

main()

{intx,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=6

12.思考题:

改错题(以下程序有多处错误,上机调试。

将正确的程序记录在下方。

要求不能删减已有内容。

源程序

正确的程序应改为:

#include

{inta,b=3;

A=3*PI*SIN(b);

STA=3*STA;

printf(“%d\n”,2a);

printf(“%d”,b);

}

#include

{inta,b=3;

a=3*PI*sin(b);

b=3*STA;

printf(“%d\n”,2*a);

printf(“%d”,b);

}

实验2顺序结构程序设计与调试

班级

学号

实验室

专业

姓名

成绩评定

所用软件

计算机号

教师签名

2.1实验目的

1.熟悉C语言的表达式语句、空语句和复合语句。

2.熟悉函数调用语句,尤其是各输入输出函数的调用语句。

3.熟悉顺序结构程序中语句的执行过程。

4.熟悉程序的跟踪调试和变量值的监视。

5.能设计简单的顺序结构程序。

2.2实验预习

1.熟悉下列函数:

putchar、getchar、printf、scanf

2.了解顺序结构程序的执行过程。

3.了解程序的跟踪调试和变量值的监视并能够熟练操作。

单步跟踪调试(逐条语句跟踪调试):

(1)可按功能键F7进行,要监视某变量的值时,就按Ctrl+F7键,然后输入相应的

变量名,就可以在监视消息窗口中查看到该变量的值。

(2)也可逐段运行程序,即每次运行若干条语句。

首先利用Ctrl+F8键在各行光标

处设置若干断点,然后按Ctrl+F9键从程序的第一条语句运行到设置的第一个断

点,再按Ctrl+F9键从设置的第一个断点运行到设置的第二个断点。

4.了解顺序结构程序的一般构成。

2.3实验任务

1.若有程序

main()

{inti,j;

scanf("i=%d,j=%d",&i,&j);

printf("i=%d,j=%d\n",i,j);

要求给i赋5,给j赋10,则应该从键盘输入i=5,j=10

2.华氏温度,要求输出摄氏温度,公式为:

C=。

要求输出结果保留到小数点后两位。

已知程序段中有三处错误,由注释语句**********found**********提示下一条语句有错误,请修改程序中的错误并记录程序运行结果。

错误原因是

正确语句是

#include

{floatf,c;clrscr();

**********found

(1)**********

scanf("%d",f);

**********found

(2)**********

c=59(f-32);

**********found(3)**********

printf("f=%f,c=%f\n",c,f);

}

Scanf语句中是地址列表

scanf("%d",&f);

缺少运算符

c=59*(f-32);

输出表列用英文逗号分隔

printf("t=%.2f,f=%.2f\n",c,f);

3.已知程序功能是通过用户输入三角形三边,求取三角形面积。

填空,将程序补充完整。

求取公式为;S=(a+b+c)2area=sqrt(s*(s-a)*(s-b)*(s-c))

人工填空

上机填空

#include

{floata,b,c,s,area;

clrscr();

scanf("%f,%f,%f",&a,&b,&c);

(2);

area=sqrt(3);

*库函数sqrt的含义是开平方*

printf("area=%f\n",area);}

#include

S=(a+b+c)2

(s*(s-a)*(s-b)*(s-c))

4.单步跟踪下面程序的执行,每执行一条语句就查看各变量的值。

运行时输入一个三位的整数。

单步跟踪程序时填写下表,同时分析程序的功能。

#include”stdio.()

{intn,x1,x2,x3,y;

printf(“pleaseinputnumbern”);

scanf(“%3d”,&n);

x1=n100;

x2=n10%10;

x3=n%10;

y=x3*100+x2*10+x1;

printf(“y=%3d”,y);}

n

X1

X2

X3

y

程序的功能是:

将输入的3位整数逆序排列

5.#include

{charch;

  ch=getchar();

putchar(ch);

}

运行时如果从键盘输入数据98,你预测的输出结果是

实际的输出结果为9

原因在于getchar()只能接收单个字符,数字也当字符处理

6.#include

{inta,b,c;

  scanf(“%d,%o”,&a,&b);

c=a*b;

printf(“%d,%o\n”,c,c);

}

运行时如果输入数据:

12,12

你预测的结果是,实际的输出结果是。

7.#include

{intx,n1,n2,n3,y;

scanf("%3d",&x);

n1=x100;

n2=x10%10;

n3=x%10;

y=n3*100+n2*10+n1;

printf(“%d\n”,y);

}

上述程序在运行时如果从键盘输入数据8265,则x的值为_826_;输出的结果为628,在变量n1、n2、n3中,_n1_是x的百位数,_n2_是x的十位数,__n3_是x的个位数。

8.#include

{inta=123,b=-45;

floatx=2.54729;

printf(“a=%d,%2d,%5d,%-5d,%+5d\n”,a,a,a,a,a);

printf(“b=%d,%2d,%5d,%-5d,%+5d\n”,b,b,b,b,b);

printf(“x=%f,%9f,%9.2f\n”,x,x,x);

printf(“x=%-7.3f,%2.2f,%.0f\n”,x,x,x);

}

在下面写出程序的运行结果,每个空格用一个|_|来表示

a=|_||_||_||_|,|_|+123

b=|_||_||_||_|,|_||_|-45

x=2.547290,|_|2.547290,|_||_||_||_||_|2.55

x=2.547|_||_|,2.55,3

9.编辑程序,输入学生语、数、英三门课程成绩(考虑数据类型,整型和实型),并输出其总分和平均分。

整型:

main()

{intc,m,e,sum;

floatave;

scanf("%d,%d,%d",&c,&m,&e);

sum=c+m+e;

ave=sum3.0;

printf(“sum=%d\nave=%f”,sum,ave);

}

实型:

main()

{floatc,m,e,sum,ave;

scanf("%f,%f,%f",&c,&m,&e);

sum=c+m+e;

ave=sum3;

printf(“sum=%f\nave=%f”,sum,ave);

}

实验3选择结构程序设计与调试

班级

学号

实验室

专业

姓名

成绩评定

所用软件

计算机号

教师签名

3.1实验目的

1.理解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。

2.学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式。

3.学会运用逻辑表达式或关系表达式等表达条件。

4.熟练掌握if语句和switch语句。

5.学习跟踪调试程序,针对具体程序组织输入测试数据,观察程序运行能否得到预期的输出结果。

6.熟悉选择结构程序段中语句的执行过程。

3.2实验预习

1.熟悉逻辑运算符和逻辑表达式、关系运算符和关系表达式。

2.熟悉下列语句:

if、if-else、switch、break。

3.3实验任务

1.阅读程序,上机调试并记录程序结果。

人工分析结果

实验运行结果

#include

{intx=0;

if(x==0)printf("x=%d\n",x);

elseprintf("x=%d\n,x+1);}

x=0

#include

{intx=0;clrscr();

if(x=0)printf("x=%d\n",x);

elseprintf("x=%d\n,x+1);

}

x=1

以上两题告诉了你什么:

1)c中的赋值号与等于运算符应区分。

2)若判断表达式值为0,表示假,执行else分支

2.阅读程序,上机调试并记录程序结果。

人工分析结果

实验运行结果

实验告诉我们

main()

{

inta=4,b=3,c=5,t=0;

if(a

if(a

printf("%d%d%d\n",a,b,c);

}

503

分支语句只有1条内嵌语句,与书写方式无关

3.阅读程序,上机调试并记录程序结果。

人工分析结果

实验运行结果

实验告诉我们

main()

{

inta=5,b=4,c=3,d;

d=(a>b>c);

printf("%d\n",d);

}

0

关系运算符无论有多少,总是一个个运算得结果然后参与下一个运算的。

4.若从键盘输入58,判断以下程序输出的结果。

人工分析结果

实验运行结果

main()

 {

inta;

 scanf("%d",&a);

  if(a>50)printf("%d",a);

  if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

}

585858

5.阅读程序,上机调试并记录程序结果。

人工分析结果

实验运行结果

main()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

 case1:

a++;

  case2:

a++;b++;

} printf(“a=%d,b=%d\n”,a,b);}

a=2,b=1

6.阅读程序,上机调试并记录程序结果。

人工分析结果

实验运行结果

main()

{inta=13,b=21,m=0;

switch(a%3)

{case0:

m++;break;

case1:

m++;

switch(b%2)

{default:

m++;

case0:

m++;break;

}

}

printf(“m=%d\n”,m);}

m=3

7.阅读程序,上机调试并记录程序结果。

人工分析结果

实验运行结果

实验告诉我们

main()

{inti=1,j=1,k=2;

if((j++||k++)&&i++);

printf("%d,%d,%d\n",i,j,k);

}

2,2,2

逻辑运算符不是所有的符合都可以参与运算的

8.阅读程序,并回答问题

main()

{inta,b,max,min;

scanf("%d%d",&a,&b);

if(a>b)

max=a;

else

max=b;

printf("max=%d\n",max);

}

问题:

a、此程序的功能是输出两数中的最大数

b、请用条件表达式语句(?

:

)修改程序使之完成相同的功能,

其语句是printf(“max=%d\n”,a>b?

a:

b);

9.有一函数

x-1(x<1)

y=2(x-1)(1<=x<10)

3x-10(x>=10)

编程求当分别输入x的值为0.3,3.9,11时,y的值。

main()

{floatx,y;

scanf("%f",&x);

if(x<1)

y=x-1;

elseif(x<10)

y=2*(x-1);

else

y=3*x-10;

printf("x=%f,y=%f\n",x,y);

}

x=0.3时y=-0.7;x=3.9时y=5.8;x=11时y=23

10.编辑程序,输入一个不多于3位的正整数,要求:

a)求出它是几位数;分别打印出每一位数字;

b)按逆序打印出各位数字,例如原数为-321,应输出-123。

main()

{intx,a,b,c,e=0;

scanf("%d",&x);

a=x100;*a、b、c用于求取各个数位*

b=x%10010;

c=x%10;

e=c*100+b*10+a;*e存储x数值的逆序排列数*

if(a>0)*if分支用于判断x的大小,并根*

printf("x>100");*据位数决定逆序的最终值*

elseif(b>0)

{printf("10

e=e10;}

else

{printf("x<10");

e=e100;}

printf("%d,%d,%d",a,b,c);

printf("%d",e);

}

11.随机输入3个整型数据作为学生的课程成绩,编程实现由小到大排序输出(对比第三章编程题,比较他们的优缺点)。

main()

{inta,b,c,e=0;

scanf("%d,%d,%d",&a,&b,&c);

if(a>b)

{e=a;a=b;b=e;}

if(a>c)

{e=a;a=c;c=e;}

if(b>c)

{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语句和continue语句的功能和执行过程。

4.2实验预习

1.熟悉语句:

while、do-while、for、break、continue。

2.熟悉三种循环语句之间的关系和区别。

4.3实验任务

(一)while循环

1.若输入的值是5,预测结果并上机验证

人工分析结果

实验运行结果

main()

{

inti,n;

 scanf("%d",&n);

i=1;

while(i<=n)  

i++;

printf("i=%.d\n",i);

}

i=6

2.若输入的值是5,预测结果并上机验证,循环执行次数是__5____,考虑若x定义为整型,程序结果是否相同___不同_______,为什么_因为要考虑到c中除法的规则

人工分析结果

实验运行结果

main()

{

inti,n;doublex,s=0;

 scanf("%d",&n);

i=1;x=1;

while(i<=n)  

{i++;x=x+1; 

s+=1x;

}

printf("s=%.2f\n",s);

}

s=1.45

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1