c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx

上传人:b****2 文档编号:2939325 上传时间:2023-05-05 格式:DOCX 页数:17 大小:153.95KB
下载 相关 举报
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第1页
第1页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第2页
第2页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第3页
第3页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第4页
第4页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第5页
第5页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第6页
第6页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第7页
第7页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第8页
第8页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第9页
第9页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第10页
第10页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第11页
第11页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第12页
第12页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第13页
第13页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第14页
第14页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第15页
第15页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第16页
第16页 / 共17页
c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx

《c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx》由会员分享,可在线阅读,更多相关《c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx(17页珍藏版)》请在冰点文库上搜索。

c语言程序设计实验设计习题答案顺序结构与逻辑运算.docx

c语言程序设计实验设计习题答案顺序结构与逻辑运算

实验2顺序结构与逻辑运算

学号:

姓名:

实验日期:

1.实验目的和要求

(1)掌握数据输入/输出函数的使用,能正确使用各种格式转换符。

(2)熟悉顺序结构程序中语句的执行过程,并学会基本调试程序方法。

(3)能够正确使用逻辑运算符和逻辑表达式。

(4)学会运用逻辑表达式或关系表达式等表示条件。

(5)熟练掌握if语句和switch语句,掌握条件表达式构成的选择结构。

(6)熟练掌握跟踪调试程序,针对具体数据组织输入测试数据,观察程序运行能否得到预期的输出结果。

(7)学会编写简单程序。

2.实验内容:

实验指导书中的实验三和实验四

3.实验步骤及结果

实验三部分:

3-1-1该程序的功能是:

输出m=345,n=2.560000,并计算输出(n*100)

程序运行结果画面如下:

#include

main()

{

intm=345;

floatn=2.56;

printf("m=%d,n=%f,n*100=%f\n",m,n,n*100);

}

3-1-2该程序的功能是:

输入三个数赋给a,b,c,输出这三个数,并计算输出s=a*b和v=a*b*c的值

程序运行结果画面如下:

#include

main()

{

doublea,b,c,s,v;

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

s=a*b;

v=a*b*c;

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

printf("s=%lf\n",s);

printf("v=%lf\n",v);

}

3-2-1该程序的功能是:

输入两个整数m,n,输出m,n并使其输出时每个数输出宽度为6,两数之间逗号间隔;并输出x,y并使其每个数输出宽度为7,小数位数为2。

程序运行结果画面如下:

#include

main()

{

intm,n;

floatx=3.5,y=6.2;

scanf("%d,%d",&m,&n);

printf("m=%6d,n=%6d\n",m,n);

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

}

3-2-2该程序的功能是:

赋给a,b,m,n,p,q数值,并输出a,b,m,n的整型数值和p,q的浮点型数值。

程序运行结果画面如下:

#include

main()

{

inta,b;

longm,n;

floatp,q;

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

scanf("%f,%f\n",&p,&q);

scanf("%ld\n%ld",&m,&n);

printf("a=%d,b=%d\nm=%ld,n=%ld\n",a,b,m,n);

printf("p=%f,q=%f\n",p,q);

}

3-3注意:

这道程序我们不按书中提示进行,而在VC环境下进行调试。

语法错误和逻辑错误的区别何在?

语法错误有错误提示,程序不可运行;逻辑错误无错误提示,程序可运行,但得不到你想求得的答案。

如何启动单步调试?

在菜单栏中选择“组建”,然后在下拉菜单中选择“开始调试”,然后选择“StepInto”。

要使程序运行到“ss=(k…”这一行暂停下来,该如何操作?

点到“ss=(k…”这一行,按F9,设置一个断点。

怎样终止调试状态(程序复位)?

在菜单栏中选择“调试”,然后选择“StopDebugging”。

单步调试状态下,向下运行一条语句的操作方法(分两种情况回答,第一种,跟踪到自定义函数内部,第2种,不跟踪到自定义函数内部):

第一种选择“StepInto”,跟踪到自定义函数内部;第2种选择“Stepover”,不跟踪到自定义函数内部

在本题中,假设要在运行第2条语句(即scanf语句后),要马上观察i,j,k,ss,m,n的变量的值,操作方法:

在菜单栏中选择“组建”,然后在下拉菜单中选择“开始调试”,然后选择“StepInto”,在watch窗口的名称下的框中输入要马上观察的“i,j,k,ss,m,n”,请把观察这些变量时的画面粘贴到下面:

#include

main()

{

inti,j,k,ss,m=1,n=1;

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

m+=i++;

n*=--j;

ss=(k=m+2,n-5,k+n);

printf("%d",ss);

}

通过这道题单步调试,你对i++和++i及i—和—i应该有了更直观的理解,他们的区别在于:

i++和i—是在使用变量后加(减)一,++i和—i是在使用变量前加(减)一。

3-4请回答书中问题

问题

(1)都可以。

问题

(2)用printf函数,c1、c2输出的格式符用%d。

问题(3)不可以

程序运行结果画面如下:

#include

main()

{

charc1,c2;

c1=getchar();

c2=getchar();

putchar(c1);

putchar(c2);

printf("\n");

printf("%c%c\n",c1,c2);

}

3-5我使用的算法:

运用求商的整数部分和求余数进行分钟的转换

运行结果画面:

#include

main()

{

intx,h,m;

printf("输入需转换的分钟数:

");

scanf("%d",&x);

h=x/60;

m=x%60;

printf("%d小时%d分钟",h,m);

}

3-7我使用的算法:

进行千分位转换,四舍五入。

运行结果画面:

#include

main()

{

doublex;

scanf("%lf",&x);

printf("%7.2f\n",x);

}

实验四部分

4-1-a该程序的功能是:

输入两个数:

a、b,判断a*a+b*b的值,若a*a+b*b的值等于3或1,则y=a+b;若a*a+b*b的值等于0,则y=b-a;若a*a+b*b的值等于其他值,则输出“eerror”;最后输出y的值。

运行结果画面:

#include

main()

{

inta,b,y;

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

switch(a*a+b*b)

{

case3:

case1:

y=a+b;break;

case0:

y=b-a;break;

default:

printf("error\n");

}

printf("%d",y);

}

4-1-b该程序的功能是:

输入两个数:

a、b,判断a的值,若a的值等于10,则y=a-b;若a的值等于11,则y=a*b;若a的值等于其他值,则y=a+b;最后计算输出y的值。

运行结果画面:

#include

main()

{

inta,b,y;

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

switch(a)

{

default:

y=a+b;break;

case10:

y=a-b;break;

case11:

y=a*b;break;

}

printf("%d",y);

}

4-1-c该程序的功能是:

输入两个数:

a、b,判断a+b的值,若a+b的值等于10,则y=a+b;若a+b的值等于11,则y=a-b;若a+b的值等于其他值,则输出“eerror”;最后计算输出y的值。

运行结果画面:

#include

main()

{

inta,b,y;

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

switch(a+b)

{

case10:

y=a+b;break;

case11:

y=a-b;break;

default:

printf("error\n");break;

}

printf("%d",y);

}

4-2-1运行结果画面:

#include

main()

{

intx,y;

scanf("%d",&x);

if(x>-5&&x<0)

y=x;

if(x==0)

y=x-1;

if(x>0&&x<10)

y=x+1;

printf("%d",y);

}

4-2-2运行结果画面:

#include

main()

{

intx,y;

scanf("%d",&x);

if(x>-5&&x<0)

y=x;

elseif(x==0)

y=x-1;

elseif(x>0&&x<10)

y=x+1;

printf("%d",y);

}

4-3填空的内容为:

a>0?

a:

-a;

运行结果画面:

#include

main()

{

inta,M;

scanf("%d",&a);

M=a>0?

a:

-a;

printf("abs(a)=%d\n",M);

}

4-4运行结果画面:

#include

main()

{

intc,t,m;

printf("inputthenumberofcoatandtrousersyourwantbuy:

\n");

XX文库-让每个人平等地提升自我scanf("%d%d",&c,&t);

if(t==c)

{

if(c>=50)

m=c*80;

elsem=c*90;

}

else

{

if(c>t)

{

if(t>=50)

m=t*80+(c-t)*60;

elsem=c*80+(t-c)*45;

}

else

{

if(c>=50)

m=t*90+(c-t)*60;

elsem=c*90+(t-c)*45;

}

}

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

}

4-5我使用的算法:

输入三边,然后判断是否构成三角形,能构成三角形后再判断三角形类型。

运行结果画面:

#include

main()

{

floatx,y,z;

inti;

printf("输入三条边长:

");

scanf("%f%f%f",&x,&y,&z);

if(x+y>z&&x+z>y&&y+z>x&&x>0&&y>0&&z>0)

{i=1;}

if(i==1)

{

if(x==y&&y==z)

printf("此三角形为等边三角形\n");

elseif(x==y||y==z)

printf("此三角形为等腰三角形\n");

else

printf("此三角形为不等边三角形\n");

}

if(i==0)

printf("这三边不构成三角形\n");

}

4-5我使用的算法:

用求余的方法,若赋给x的值除以5和除以7的余数都为0,则输出yes,否则输出no。

运行结果画面:

#include

main()

{

intx;

scanf("%d",&x);

if(x%5==0&&x%7==0)

printf("yes\n");

else

printf("no\n");

}

4实验小结

通过实验我的C语言能力的到了进一步的提高:

(1)学会了基本的程序调试;

(2)掌握了IF和SWITCH语句的应用;

(3)掌握数据输入/输出函数的使用,能正确使用各种格式转换符

(4)知道了逻辑运算符、逻辑表达式、关系表达式的运用

(5)可以进行简单的程序的编写

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2