ETempC程序设计1实验安排.docx
- 文档编号:29047189
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:18
- 大小:31.59KB
ETempC程序设计1实验安排.docx
《ETempC程序设计1实验安排.docx》由会员分享,可在线阅读,更多相关《ETempC程序设计1实验安排.docx(18页珍藏版)》请在冰豆网上搜索。
ETempC程序设计1实验安排
实验1熟悉C语言的运行环境
【实验目的】
1.熟悉C语言编程环境TurboC/WinTc,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。
2.了解C程序的基本框架,能够编写简单的C程序。
3.了解程序调试的思想,能找出并改正C程序中的语法错误。
【实验内容】
1.建立自己的文件夹
在磁盘上新建一个文件夹,用于存放C程序,如C:
\c_programming
2.编程示例
(1)在屏幕上显示一个短句“HelloWorld!
”,源程序保存为helloworld.c
源程序
#include
main()
{
printf("HelloWorld!
\n");
getch();
}
运行结果:
HelloWorld!
(2)比较5和3的大小,输出最大值,源程序保存为max.c
#include
main()
{
inta,b,max;
printf("请输入两个整数a,b的值:
\n");
scanf("%d%d",&a,&b);
if(a>b)max=a;
elsemax=b;
printf("max=%d",max);
getch();
}
在TurboC/WinTC中运行上述两个示例,熟悉C程序的运行步骤。
3.编程
模仿上述程序示例,编写以下程序。
(1)在屏幕上输出以下图形
*
***
*****
***
*
(2)计算输出任意两个整数的最小值
(3)计算输出任意两个整数的和。
4.思考:
计算输出任意三个整数的最大值,本题有很多种做法,能写几种写几种。
实验2基本数据类型
【实验目的】
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型和浮点型的变量,以及对它们赋值和输出的方法。
2.掌握不同数据类型之间赋值的规律。
3.进一步熟悉C程序的编辑、编译、连接和运行。
【实验内容和步骤】
1.输入并运行下面的程序
#include
main()
{
charc1,c2;
c1='a';
c2='b';
printf("%c%c\n",c1,c2);
}
(1)运行此程序
(2)在上面的printf语句的下面再增加一个printf语句:
printf("%d%d\n",c1,c2);再运行,并分析结果。
(3)将第3行改为intc1,c2;再使之运行,并观察结果。
(4)再将第4,5行改为:
c1=a;c2=b;(不带单撇号),再使之运行,分析其运行结果。
(5)再将第4,5行改为:
c1=”a”;c2=”b”;(用双撇号),再使之运行,分析其运行结果。
(6)再将第4,5行改为:
c1=300;c2=400;(用大于255的整数),再使之运行,分析其运行结果。
2.输入并运行下面的程序
#include
main()
{
charc1='a',c2='b',c3='c',c4='\101',c5='\116';
printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);
}
在运行程序前先用人工分析程序,写出应得结果,上机后将二者对照。
3.编程
将“China”译成密码,密码规律是:
用原来的字母后面第4个字母代替原来的字母。
例如,字母”A”后面第4个字母是”E”,用”E”代替“A”。
因此,”China”应译为”Glmre”。
请编一程序,用赋初值的方法使c1,c2,c3,c4,c5这5个变量的值分别为’C’,’h’,’i’,’n’,’a’,经过运算,使c1,c2,c3,c4,c5分别变成’G’,’l’,’m’,’r’,’e’,并输出。
(1)编写程序,并运行该程序,分析是否符合要求。
(2)改变c1,c2,c3,c4,c5的初值为’T’,’o’,’d’,’a’,’y’,对译码规律做如下补充:
‘W’用‘A’代替,’X’用’B’代替,’Y’用’C’代替,’Z’用’D’代替。
修改程序并运行
#include
main()
{charc1,c2,c3,c4,c5;
c1='T';
c2='o';
c3='d';
c4='a';
c5='y';
c1='T'+4;
c2='o'+4;
c3='d'+4;
c4='a'+4;
c5='a'+('y'-'w');
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
getch();
}。
(3)将译码规律修改为:
第一个字母被它前面第4个字母代替,例如’E’用’A’代替,’Z’用’U’代替,’D’用’Z’代替。
修改程序并运行。
4.输入并运行下面的程序
#include
main()
{
floatf=5.6;
inta=7,b=8;
printf("赋值前的结果:
\n");
printf("a=%d,f=%f\n",a,f);
a=f;
f=b;
printf("赋值后的结果:
\n");
printf("a=%d,f=%f\n",a,f);
}(变为双精度数)
(1)观察整型数据给浮点数变量赋值会出现什么结果,以及浮点型数据给整型变量赋值又会出现什么结果。
(取整数部分,小数部分后面的舍弃)
(2)将printf语句中%d和%f交换一下,会出现什么结果?
(int数据以float数据输出。
结果全为零,float数据以int数据输出结果会是:
5.输入并运行下面的程序
#include
main()
{
inta,b;
unsignedc,d;
longe,f;
a=100;
b=-100;
e=50000;
f=32767;
c=a;
d=b;
printf("%d,%d\n",a,b);
printf("%u,%u\n",a,b);
printf("%u,%u\n",c,d);
c=a=e;
d=b=f;
printf("%d,%d\n",a,b);
printf("%u,%u\n",c,d);
}
请对照程序和运行结果分析:
(1)将一个负整数赋给一个无符号的变量,会得到什么结果。
画出它们在内存中的表示形式。
(2)将一个大于32767的长整数赋给整型变量(假定所用的C系统分配给整型变量2个字节),会得到什么结果。
画出它们在内存中的表示形式。
(变为负数)
(3)将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535和小于65535的情况)。
画出它们在内存中的表示形式。
(不改变)
可以改变程序中各变量的值,以便做比较。
例如,a=65580,b=-40000,e=65535,f=65580。
6.总结
(1)不同类型的数据或变量之间进行赋值时,常常会出现意想不到的结果,尤其是,当高精度的变量(或数据)给低精度的变量赋值时,通常会造成精度的丢失,因此,在以后的编程过程中,应尽量避免这种情况发生。
(2)在赋值和输入输出时,应该注意类型是否匹配。
实验3算术运算符和赋值运算符
【实验目的】
1.掌握C语言中的算术运算符和赋值运算符的使用方法。
2.掌握简单C程序的查错方法。
【实验内容和步骤】
1.调试示例
改正下列程序中的错误,求华氏温度100℉对应的摄氏温度。
计算公式如下,式中:
c表示摄氏温度,f表示华氏温度。
源程序:
#include
main()
{
intcelsius;fahr;
fahr=100;
celsius=5*(fahr-32)/9;
printf("fahr=d,celsius=%d\n",fahr,celsius);
}(两处)
(1)编译运行此程序,观察程序的错误提示,分析错误原因,并改正错误。
(2)改正错误后的运行结果:
fahr=100,celsius=37。
2.编程
求华氏温度150℉对应的摄氏温度。
计算公式如下,式中:
c表示摄氏温度,f表示华氏温度。
输出示例:
fahr=150,celsius=66
要求:
运行自己编写或修改的程序得到的结果,应该与题目中给出的输入输出示例完全一致,包括输入输出格式。
#include
main()
{
intcelsius,fahr;
fahr=150;
celsius=5*(fahr-32)/9;
printf("fahr=%d,celsius=%d\n",fahr,celsius);
getch();
}
思考:
如果使用公式
计算华氏温度150℉对应的摄氏温度,这两个公式的计算结果是否一样?
为什么?
(不一样,此时的结果等于65,因为两个整数相除的结果是整数舍弃小数点后面的部分,而上面的结果是83-17所以才是66而下面是直接取整数65,所以才产生误差。
)
3.编程
已知某位学生的数学、英语和计算机成绩分别是87分、72分和93分,求该生的平均分。
思考:
若要计算任意学生的平均分,怎么修改程序?
#include
main()
{floata,b,c,l;
a=87;
b=72;
c=93;
l=(a+b+c)/3;
printf("l=%f\n",l);
getch();
}修改后
#include
#include
main()
{floata,b,c,l;
printf("pleaseinputyouthreesubject'srecord:
");
scanf("%f%f%f",&a,&b,&c);
l=(a+b+c)/3;
printf("l=%f\n",l);
getch();
}
4.编程
当n为152时,分别求出n的个位数(digit1)、十位数(digit2)和百位数(digit3)的值。
输出示例:
整数152的个位数是2,十位数是5,百位数是1。
提示:
n的个位数digit1的值是n%10,十位数digit2的值是n/10%10,百位数digit3的值是n/100。
思考:
如果n是一个四位数,如何求出它的每一位数字?
#include
main()
{
intn,digit1,digit2,digit3;
n=152;
digit1=n%10;
digit2=n%100/10;
digit3=n/100;
printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,digit1,digit2,digit3);
getch();
}
任意数三位数
#include
main()
{
intn,digit1,digit2,digit3;
printf("pleaseiuputanumber:
");
scanf("%d",&n);
digit1=n%10;
digit2=n%100/10;
digit3=n/100;
printf("整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n",n,digit1,digit2,digit3);
getch();
}
实验4输入输出函数
【实验目的】
1.掌握C语言中的输入输出函数的使用方法。
2.掌握简单C程序的查错方法。
【实验内容和步骤】
1.编程
设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积、圆球表面积,圆球体积、圆柱体积。
用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
提示:
圆周长=
;圆面积=
,圆球表面积=
,圆球体积=
,圆柱体积=
。
#include
main()
{floatr,h,l,s1,s2,v1,v2;
printf("请输入圆的半径r和圆柱的高h:
");
scanf("%f%f",&r,&h);
l=2*3.14*r;
s1=3.14*r*r;
s2=4*3.14*r*r;
v1=4*3.14*r*r*r/3;
v2=3.14*r*r*h;
printf("圆的周长是:
%.2f\n",l);
printf("圆的面积是:
%.2f\n",s1);
printf("圆球表面积是;%.2f\n",s2);
printf("圆球体积是:
%.2f\n",v1);
printf("圆柱体积是:
%.2f\n",v2);
}
2.编程
用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符,并思考以下问题:
(1)变量c1、c2应定义成字符型或整型?
还是两者皆可?
(2)要求输出c1和c2值的ASCII码,应如何处理?
用putchar函数还是printf函数?
(3)整型变量与字符变量是否在任何情况下都可以相互代替?
例如:
charc1,c2;和intc1,c2;是否无条件等价?
3.编程
输入一个五位数,若用户输出的不是五位数则提示用户输错了,否则,逆序输出该五位数。
如:
拥护输入的是12345,则输出54321。
编写程序时要求有注释。
#include
main()
{inta,b,c,d,e;
longintn;
printf("请输入一个五位数:
");
scanf("%ld",&n);
if(n<10000||n>99999)printf("您输入有误");
else;
{a=n%10;
b=n%100/10;
c=n%1000/100;
d=n%10000/1000;
e=n/10000;
printf("%1d%1d%1d%1d%1d\n",a,b,c,d,e);}
getch();
}
实验5分支结构程序设计
【实验目的】
1.掌握C语言中的if…else和switch…case语句的使用方法。
2.掌握简单C程序的调试方法。
【实验内容和步骤】
1.编程
输入一串字符,以回车键终止,统计其中英文字母、空格、数字字符和其他字符的个数。
#include
main()
{charch;
intletters=0,numbers=0,others=0;
printf("请输入一串字符");
scanf("%c",&ch);
while(ch!
='\n')
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
{letters++;printf("%c\n",ch);}
elseif(ch>='0'&&ch<='9')
numbers++;
elseothers++;
scanf("%c",&ch);
}
printf("letters=%d\n",letters);
printf("numbers=%d\n",numbers);
printf("others=%d\n",others);
getch();
}
2.编程
输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行加、减、乘、初和求余运算。
#include
main()
{floata,b,c;
charch;
printf("请输入你想要计算的式子\n");
scanf("%f%c%f",&a,&ch,&b);
switch(ch)
{case'*':
c=a*b;break;
case'-':
c=a-b;break;
case'/':
c=a/b;break;
case'+':
c=a+b;break;
}printf("%.3f\n",c);
}
3.编程
输入一个不超过五位的整数,判断是几位数,并逆序输出。
编写程序时要求有注释
#include
main()
{inta,b,c,d,e;
longintn;
printf("输入一个不超过五位的整数:
\n");
scanf("%ld",&n);
if(n<10)
{printf("这是个一位数\n");
printf("%ld\n",n);}
elseif(n>=10&&n<100)
{printf("这是个两位数\n");
a=n%10;
b=n/10;
n=10*a+b;
printf("%ld\n",n);}
elseif(n>=100&&n<1000)
{printf("这是个三位数\n");
a=n%10;
b=n%100/10;
c=n/100;
n=100*a+10*b+c;
printf("%ld\n",n);}
elseif(n>=1000&&n<10000)
{printf("这是个四位数\n");
a=n%10;
b=n%1000%100/10;
c=n%1000/100;
d=n/1000;
n=1000*a+100*b+10*c+d;
printf("%ld\n",n);}
elseif(n>=10000&&n<100000)
{printf("这是个五位数\n");
a=n%10;
b=n%10000%1000%100/10;
c=n%10000%1000/100;
d=n%10000/1000;
e=n/10000;
n=10000*a+1000*b+100*c+10*d+e;
printf("%ld\n",n);}
}。
实验6循环结构程序设计1
【实验目的】
1.掌握C语言中的while/for/dowhile语句的使用方法。
2.掌握简单C程序的调试方法。
【实验内容和步骤】
1.有1020个西瓜,第一天卖了一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完。
编写程序求解。
2.有一车西瓜,第一天卖了一半多两个,以后每天卖剩下的一半多两个,卖了8天刚好卖完,问共有多少个西瓜。
3.输入某年某月某日,判断这一天是这一年的第几天?
4.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
注:
一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数
实验7循环结构程序设计2
【实验目的】
1.掌握C语言中的while/for/dowhile语句的使用方法。
2.掌握简单C程序的调试方法。
【实验内容和步骤】
编程实现循环结构课件中的全部经典案例。
While((c=getchar())!
=’\n’)
{if(c>=’a’&&c<=’z’)c=c-32;
elseif(c>=’A’&&c<=’Z’)c=c+32;
putchar(c);}
putchar(‘\n’);(while后面需要加大括号)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ETempC 程序设计 实验 安排
![提示](https://static.bdocx.com/images/bang_tan.gif)