C实验报告Word格式.docx
《C实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《C实验报告Word格式.docx(68页珍藏版)》请在冰豆网上搜索。
编译、连接、运行该程序,并按Alt+F5查看运行结果。
运行结果是:
注意:
要熟悉Turboc2.0的编译、连接、运行、保存、装载文件的命令及其快捷键
2.输入并调试以下程序,查看运行结果(由此结果可以了解到在实验用的微型机上,几种数据类型所占的字节数)。
{
char\t%dbytes\n"
sizeof(char));
short\t%dbytes\n"
sizeof(short));
运行结果是:
int\t%dbytes\n"
sizeof(int));
long\t%dbytes\n"
sizeof(long));
float\t%dbytes\n"
sizeof(float));
double\t%dbytes\n"
sizeof(double));
}
3.输入并调试以下程序:
{inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
%d,%d,%d,%d"
i,j,m,n);
分别作以下改动后再运行,并观察比较运行结果:
①将第4行改为:
m=i++;
n=++j;
②程序改为:
main()
{inti,j;
%d,%d"
i++,j++);
③在②的基础上,将printf语句改为:
i,j,i++,j++);
④将printf语句改为:
i,j,++i,++j);
4.试分析下面程序的运行结果,并回答下面的问题。
#include<
{inti=3,k;
%d,%d\n"
(i++)+(i++)+(i++),i);
i=3;
i,++i+(++i)+(++i));
k=(i++)+(i++)+(i++);
k,i);
在该题中,若把程序中所有(i++)及(++i)的括号去掉,则编译过程及运行结果有无变化?
答:
5.编程,求365÷
7的商(输出两位小数)和余数的程序。
{floata,b,c;
intx;
a=365;
b=7;
c=a/b;
x=(int)a%(int)b;
printf("
%.2f,%d\n"
c,x);
教
师
评
阅
成绩:
教师签名:
年月日
实验二最简单的C程序设计
1.掌握C语言中赋值表达式和赋值语句的使用。
2.正确理解、选择输入格式字符所控制的数据对象、数据输入(输出)形式和方法。
3.掌握输出函数printf()和putchar()的用法,能正确使用各种输出格式。
4.掌握输入函数scanf()和getchar()的用法,能正确使用各种输入格式。
2.4、5两题按照题目的要求编写出程序。
实
验内容与过
1.输入并运行以下程序:
{inta;
floatb,c;
scanf("
%2d%3f%*2d%4f"
&
a,&
b,&
c);
\na=%d,b=%f,c=%f\n"
a,b,c);
运行时从键盘上输入9876543210↙
则程序运行结果是:
2.输入并运行以下程序:
{intc;
chard;
c=66;
d='
B'
;
putchar(c);
putchar(d);
putchar('
);
putchar(66);
程序运行结果是:
将以上程序作如下修改:
①将程序中两个赋值语句改写:
c=65;
A'
;
②将程序最后两个字符输出函数改写:
putchar(65);
3.输入并运行以下程序:
voidmain()
{inta=-1;
longb=-1;
floatf=123.456;
charc='
a'
a=%d,a=%o,a=%x,a=%u\n"
a,a,a,a);
b=%ld,b=%lo,b=%lx,b=%lu\n"
b,b,b,b);
f=%f,f=%7.2f,f=%-7.2f\nf=%e,f=%g\n"
f,f,f,f,f);
c=%c,c=%3c,c=%-3c,c=%d,c=%c\n"
c,c,c,'
65);
s1=%s,s2=%7.3s,s3=%-7.3s\n"
"
12345"
ABCD"
4.编程,要求从键盘输入数据,使整型变量a=10,b=8;
字符型变量c1='
c2='
实型变量x=3.1,y=64.54。
并按规定格式输出变量的值。
要求输出格式如下:
inta=10,b=8
charc1=A,c2=a
floatx=3.1,y=64.54
5.编程,要求从键盘输入一个字符,算出它的左邻字符和右邻字符,并按ASCII码值,从大到小输出3个字符及其对应的ASCII码值。
/*4.*/
{inta,b;
charc1,c2;
floatx,y;
scanf("
%d%d"
b);
%c%c"
c1,&
c2);
%f%f"
x,&
y);
inta=%d,b=%d\n"
a,b);
charc1=%c,c2=%c\n"
c1,c2);
floatx=%.1f,y=%.2f"
x,y);
/*5.*/
#include"
stdio.h"
{charc1,c2,c3;
c2=getchar();
c1=c2-1;
c3=c2+1;
%c,%d;
%c,%d;
%c,%d\n"
c3,c3,c2,c2,c1,c1);
实验三选择结构程序设计
1.掌握C语言表示逻辑量的方法(以0代表“假”,非0代表“真”)。
2.学会正确使用关系运算符、逻辑运算符及关系表达式、逻辑表达式。
3.熟练掌握各种if语句和switch语句的语法结构和语句功能。
4.结合程序,掌握选择结构程序设计的一般方法,能够用多种方法编写同一程序。
2.3、4、5三题按照题目的要求编写出程序。
将各程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根据这些信息找到程序中的错误所在,然后修改程序,直至正确。
1.输入并调试以下程序:
(1)#include<
{inta,b;
Enteraninteger:
%d"
a);
b=1;
if(++a<
0)b=-1;
elseif(a==0)b=0;
a=%d,b=%d\n"
运行时,若从键盘上输入-1↙
(2)#include<
{inta1=10,a2=20,a3=30;
charch;
ch=getchar();
switch(ch)
{case'
:
a1++;
a2++;
break;
default:
a3++;
case'
a2++;
a3++;
%d,%d,%d\n"
a1,a2,a3);
若从键盘上输入:
BAC↙
2.程序填空(完善程序)。
以下程序的功能是:
从键盘输入三个整型数据,对这三个数据进行从小到大排序,并输出排序后的数据。
请在下划线处填上适当的内容,以完成该程序的功能。
{intx,y,z,i;
%d,%d,%d"
y,&
z);
if(){i=x;
x=y;
y=i;
}
x=z;
z=i;
if(){i=y;
y=z;
x,y,z);
3.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。
90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:
用键盘输入百分制成绩,并判断输入数据的合理性,对于不合理的数据给出错误信息。
用switch语句编写该程序。
4.编程,计算下列分段函数值:
(x>
0)
(x<
(x=0)
5.给出一个小于1000正整数,编程求该数是几位数,并按逆序打印出各位上的数字。
例如原数为321,则输出123。
/*3.*/
{intscore;
PleaseInputscore:
"
score);
if(score>
100||score<
=0)
{printf("
InputError\n"
getchar();
getchar();
return;
switch(score/10)
{case10:
case9:
putchar('
case8:
case7:
C'
case6:
D'
default:
E'
math.h"
{floatx,y;
%f"
x);
if(x>
0)y=2*x-exp
(2);
elseif(x<
0)y=3*x*x-2;
elsey=sqrt(5);
x=%f,y=%f\n"
/*5*/
{inta,gw=0,sw=0,bw=0,bit;
clrscr();
if(a>
=1000||a<
InputError\n"
getchar(),getchar();
=100)
bw=a/100,sw=a%100/10,gw=a%10,bit=3;
elseif(a>
=10)sw=a/10,gw=a%10,bit=2;
elsegw=a,bit=1;
a>
=100?
bit=%d,%d%d%d\n"
bit,gw,sw,bw):
a>
=10?
bit=%d,%d%d\n"
bit,gw,sw):
bit=%d,%d\n"
bit,gw);
实验四循环结构程序设计
(1)
1.理解循环的概念,熟悉和掌握while语句,do-while语句和for语句实现循环的方法。
2.掌握穷举算法、迭代算法、递推算法等一些常用算法的程序设计方法。
3.理解并掌握break语句和continue语句的语句功能。
4.能正确使用这些语句进行简单程序设计。
2.3~6题按照题目的要求编写出程序,注意总结各题的编程思路。
3.上机调试程序。
4.详细记录数据的输入、输出信息,按要求写出实验报告。
1.输入并调试以下程序:
{inti=0;
while(i++<
3)printf("
%d\n"
i);
}运行结果是:
{inti;
for(i=1;
i<
5;
i++)
{if(i%2)printf("
*"
elsecontinue;
%"
@"
}运行结果是:
下面程序的功能是求1000以内的所有完全数,请填空(说明:
一个数如果恰好等于它的因子(自身除外)之和,则称该数为完全数,如6=1+2+3,则6是完全数)。
{inti,sum,k=2;
do
{i=1;
sum=0;
{if(k%i==0)
i++;
while(i<
=k/2);
if(sum==k)printf("
);
k++;
while();
3.编程,找出1~1000之间的全部“同构数”。
所谓“同构数”是指这样的数:
它出现在它的平方数的右端。
如:
6的平方是36,6出现在36的右端,6就是一个同构数。
4.编程,输出由1,2,3,4四个数字组成的4位数,并统计其个数(不允许该4位数中有相同的数字,例如:
1111,1122,1212等都不是所求的数)。
5.编程,用公式π/4≈1-
+
-
+…求π的近似值,当某项绝对值小于
时计算结束。
6.输入两个正整数,编程求它们的最大公约数和最小公倍数。
/*3*/
longp,i,k;
for(i=1;
1000;
{p=i*i;
k=p-i;
if(i<
10&
&
k%10==0)printf("
%ld,%ld\n"
p,i);
elseif(i<
100&
k%100==0)printf("
1000&
k%1000==0)printf("
}说明:
i也必须定义为longint
或
if(p%10==i||p%100==i||p%1000==i)
%ld%ld"
说明:
可以将if(p%10==i||p%100==i||p%1000==i)改写成if(p%1000==i||p%10==i||p%100==i)
但不能改写成if((p-i)%10==0||(p-i)%100==0||(p-i)%1000==0)例如:
75,75*75=5625不能满足第一个条件但能满足第二个条件。
/*4/
inti,j,k,l,p,total=0;
=4;
for(j=1;
j<
j++)
for(k=1;
k<
k++)
for(l=1;
l<
l++)
{p=(i!
=j&
i!
=k&
=l)&
(j!
j!
(k!
=l);
if(p)
{
if(total%6==0)printf("
\n"
%d%d%d%d"
i,j,k,l),total++;
total=%d"
total);
{floatpi=1,sign=1,term;
longi=1;
term=1./(2*i+1);
while(term>
=1e-6)
{sign=-sign;
pi+=sign*term;
i++;
i=%ld,%e\n"
i,term);
pi*=4;
%f\n"
pi);
/*6*/
{inta,b,r,gcd,ps,x,y;
Inputa,b:
while(a<
=0||b<
inputerrorretry\n
x=a,y=b;
r=a%b;
while(r!
{a=b;
b=r;
gcd=b;
ps=x/gcd*y;
/*应先除再乘例子625325*/
a=%db=%d\n"
gcd=%dps=%d\n"
gcd,ps);
{longa,b,p,t;
PleaseInputab:
%ld%ld"
if(a<
b)t=a;
elset=b;
a=%ld,b=%ld\n"
p=a*b;
while(a%t!
=0||b%t!
=0)t--;
p=p/t;
highestcommondivisor=%-8ld,leastcommonmultiple=%-8ld\n"
t,p);
实验五循环结构程序设计
(2)