C语言上机实验报告 1Word文件下载.docx
《C语言上机实验报告 1Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言上机实验报告 1Word文件下载.docx(42页珍藏版)》请在冰豆网上搜索。
![C语言上机实验报告 1Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/30/fb65145f-c900-48bc-b0e8-27d132645771/fb65145f-c900-48bc-b0e8-27d1326457711.gif)
描
述
步
骤
实验一
1、先定义两个变量a,b。
2、键入a和b。
3、输出两个数的和。
实验二
1、定义并输入abc。
2、判断d=b^2-4ac的大小。
3、如果小于零则无解,等于零有一个解,x1=(-b)/(2*a)。
4、大于零有两个解。
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
5、输出结果。
调
试
过
程
结
果
1
2
总
掌握了掌握C语言基本数据类型,变量的定义及变量的初始化和赋值操作,不同的类型数据之间赋值的规律。
了解了C语言的算术运算符的使用以及算术表达式的使用,自加自减运算符的特点及使用。
附
录
实验一1
#include<
>
voidmain()
{
inta,b,s;
scanf("
%d%d"
&
a,&
b);
printf("
s=%d\n"
a+b);
}
实验一2
doublea,b,c,d,x1,x2;
abc:
"
);
%lf%lf%lf"
b,&
c);
d=b*b-4*a*c;
if(d<
0)
printf("
无解\n"
elseif(d==0)
{
x1=(-b)/(2*a);
一个解:
x=%g\n"
x1);
}
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("
两个解:
x1=%g,x2=%g\n"
x1,x2);
}
实验二选择结构程序设计
1.掌握赋值语句的使用方法。
2.掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。
3.能正确使用关系运算符及表达式、逻辑运算符及表达式。
4.熟练掌握if语句,学会使用if-else语句设计双分支和多分支结构程序。
5.熟练掌握switch语句的特点,学会使用switch语句设计多分支结构程序。
3.编写程序,根据输入的学生成绩,给出相应的等级。
90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级。
要求分别用if语句和switch语句实现。
4.使用switch语句编写简单的四则运算程序。
实验3用if语句时:
先输入学生成绩,判断等级,然后直接输出等级代号A,B,C,D,E。
用switch语句时:
先输入学生成绩,除以十,取整。
根据数值6到9判断等级。
然后输出等级代号A,B,C,D,E。
实验4先定义字符变量c和数值变量a,b。
然后判断字符变量为何种运算符号。
最后输出相应结果。
3
4
掌握了赋值语句的使用方法,各种类型数据的输入输出方法,能正确使用各种格式转换符、关系运算符及表达式、逻辑运算符及表达式。
掌握了if语句,学会使用if-else语句设计双分支和多分支结构程序;
掌握了switch语句的特点,学会使用switch语句设计多分支结构程序
实验二3
用if语句:
inta;
请输入学生成绩:
\n"
scanf("
%d"
a);
if(a>
90)
该学生成绩等级是A\n"
elseif(a>
80)
该学生成绩等级是B\n"
70)
该学生成绩等级是C\n"
60)
该学生成绩等级是D\n"
else
该学生成绩等级是E\n"
用switch语句:
inta,m;
m=a/10;
switch(m)
case9:
printf("
该学生的成绩等级是:
A\n"
case8:
B\n"
case7:
C\n"
case6:
D\n"
default:
E\n"
实验二4
floata,b;
charc;
%f%c%f"
c,&
switch(c)
case'
+'
:
%f\n"
break;
-'
a-b);
*'
a*b);
/'
a/b);
软件111
2012-5-2
实验三循环结构程序设计
1.熟练掌握while、do-while、for语句的特点,学会设计循环结构程序。
2.掌握break语句以及continue语句的特点及使用范围。
3.学会编写循环嵌套程序。
3.结合程序掌握一些简单的算法。
4.进一步学习调试程序。
4.编程练习。
求的部分和。
直到最后一项的值小于。
提示:
第n项un=xn/n!
第n+1项un+1=xn+1/(n+1)!
及un+1=un(x/(n+1))
5.编程练习。
有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?
分别是多少?
实验四1、调用<
math,h>
函数。
2、定义xsij。
输入x。
3、直到n大于10000。
4、i=i*(x/(j+1));
s=s+i;
5、输出s
实验五1、定义ijkfre=0。
2、利用三重for语句。
for(i=1;
i<
=4;
i++)
for(j=1;
j<
j++);
for(k=1;
k<
k++)。
3、if(i!
=k&
&
i!
=j&
k!
=j),输出i*100+j*10+k。
4、最后输出("
总数为:
%d\n"
fre)
3、
4、
(对实验结果进行分析,问题回答,实验心得体会及改进意见)
实验三3
intx;
doubles,i,j;
x);
s=1,j=0;
for(i=1;
i>
=pow(10,-4);
j++)
i=i*(x/(j+1));
s=%f\n"
s);
实验三4
#include<
{inti,j,k,fre=0;
for(k=1;
k++)
{
if(i!
=j)
{
printf("
%5d"
i*100+j*10+k);
fre=fre+1;
}
}
fre);
实验四数组程序设计
1.掌握一维数组、二维数组的定义、引用及其存储方式。
2.掌握字符数组、字符串以及字符串数组的含义及区别。
3.掌握常用字符函数及字符串函数的使用。
4.掌握常用数组的排序、查找等算法。
VisualC++WindowsXP
2.编写程序,定义一个含有30个元素的int类型数组.依次给数组元素赋奇数1、3、5、7……;
然后按每行十个数顺序输出,最后再按每行十个数逆序输出。
3.已知数组中的值在0-9的范围内,统计每个整数的个数。
算
实验21、定义一个一维数组a[30],i,j=1。
2、利用for循环输出,a[i+1]=a[i]+2;
%6d"
a[i])。
3、输出数组,定义初始值1或者59。
确定顺、逆序。
实验31、定义一个一维随机数组含20个数。
2、输出该一维数组。
3、利用for循环intm,n,k;
for(m=0;
m<
=9;
m++)for(n=0;
n<
20;
n++)
if(m==a[n])。
4、输出每个数各有几个。
2、
3、
掌握常用字符函数及字符串函数的使用,掌握常用数组的排序、查找等算法。
实验2
inta[30],i,j=1;
31;
a[1]=1;
a[i+1]=a[i]+2;
a[i]);
if(i%10==0)
a[1]=59;
a[i+1]=a[i]-2;
实验4
inti,a[20];
for(i=0;
{
a[i]=rand()%10;
%3d"
intm,n,k;
for(m=0;
m++)
k=0;
for(n=0;
if(m==a[n])
k++;
%d有%d个\n"
m,k);
2012-5-7
实验五函数
1.掌握函数定义的各个要素。
如函数返回值的类型、形式参数与实际参数等。
2.掌握变量的作用域和生存期的概念。
3.掌握局部变量与全局变量的区别、静态局部变量和局部变量的区别、静态全局变量和全局变量的区别;
理解外部变量和外部函数的概念。
4.理解数组作为函数的参数的含义。
5.理解函数的嵌套调用。
6.掌握函数的递归调用。
VisualC++window7
3.求100~200之间的素数。
要求:
每行10个数输出;
定义子函数isprime,函数原型为intisprime(intn);
4.设f(x)=(2x3+3x2-4x+1)/(10x2+3),q(x)=3f(x)3+2f(x)2+f(x),编程实现输入x的值,计算输出q(x)的值,要求有q(x)和f(x)的定义。
5.求菲波那契数列1,1,2,3,5,8,13,21,34……的前20项。
使用递归;
每行输出5个数。
实验31、定义函数isprime(intn)。
2、当(n%i==0)时,返回0.否则返回1。
3、定义main函数。
确定范围100~200.4、当isprime函数成立,每五个一行输出。
实验41、定义函数
f=(2*pow(x,3)+3*pow(x,2)-4*x+1)/(10*pow(x,2)+3);
q=3*pow(f(x),3)+2*pow(f(x),2)+f(x);
。
2、定义main函数。
3、输出q函数。
实验51、定义fib函数。
前两项为、利用递归函。
Fib(x)=fib(x-1)+fib(x-2);
3、每五项一行输出。
5、
1,掌握了函数定义的各个要素。
2,如函数返回值的类型、形式参数与实际参数等.
3,需要进一步掌握函数。
实验3
intisprime(intn)
inti;
for(i=2;
n;
if(n%i==0)
return0;
return1;
main()
intn,m=0;
for(n=100;
=200;
if(isprime(n))
n);
m++;
if(m%10==0)
实验4
doublef(floatx)
doublec;
c=(2*pow(x,3)+3*pow(x,2)-4*x+1)/(10*pow(x,2)+3);
returnc;
doubleq(floatx)
c=3*pow(f(x),3)+2*pow(f(x),2)+f(x);
floatx;
doubley;
%f"
y=q(x);
%lf\n"
y);
实验5
intfib(intx)
if(x==1||x==2)
else
returnfib(x-1)+fib(x-2);
intn,s;
for(n=1;
=20;
s=fib(n);
%-5d"
if(n%5==0)
%\n"
2012-5-16
实验六指针
1.理解指针的定义,学会指针变量的初始化以及指针可以参与的运算。
2.掌握指针和一维数组的关系。
3.理解指针和二维数组的关系、理解行指针(或数组指针)的概念。
4.理解指针数组和数组指针的区别。
5.理解指针和函数的关系以及指针函数和函数指针的含义。
6.了解指针的指针(即二级指针)。
6.编写程序。
读入三个浮点数,将整数部分和小数部分分别输出。
要求使用指针作形参。
7.编写一个函数,返回数组元素中最大值的地址,并在主函数中输出该元素。
算法描
述及实
实验61、定义函数,指针做形参。
2、定义a为整数部分,*p-a既是小数部分。
然后输出。
3、主函数中,键入三个浮点型数。
并使用fu函数。
实验71、定义dizhi函数,指针做形参。
返回地址。
2、定义主函数,以及一个数组。
3、调用dizhi函数,输出数组和最大值。
6、
7、
1.运用指针时应时刻注意指针指向的改变,避免逻辑上的错误,加大编程时的难度。
2.通过指针变量可以提高程序质量,编写程序方便灵活,可以实现多个值的返回
实验6
voidfu(float*p)
a=(int)*p;
整数部分是%d小数部分是%f\n"
a,*p-a);
floata[3];
3;
a[i]);
fu(&
}实验7
intdizhi(int*p)
ints;
p=&
s;
地址是:
p);
returnp;
inti,s,a[10],*p;
10;
{a[i]=rand()%10;
%d"
s=a[0];
if(s<
a[i+1])
s=a[i];
}printf("
最大数是;
dizhi(&
s);
指针