C语言上机实习报告Word格式文档下载.docx
《C语言上机实习报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言上机实习报告Word格式文档下载.docx(15页珍藏版)》请在冰点文库上搜索。
(3)源程序
inta=3,b=4,c=5;
floatx=1.2,y=2.4,z=-3.6,o,p,q;
charc1='
a'
c2='
b'
;
doubleu=51274,n=128765;
o=x+y;
p=y+z;
q=z+x;
a=%d,b=%d,c=%d\n,x=%f,y=%f,z=%f\n,x+y=%f,y+z=%f,z+x=%f\n,u=%5.0f,n=%6.0f\n,c1=%cor97(SACII),c2=%cor98(SACII)\n"
a,b,c,x,y,z,o,p,q,u,n,c1,c2);
(4)正确运行结果
2.1.2.3、
(1)问题:
设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
计算机过精确到0.01。
(2)分析与设计:
定义变量后,根据已知的公式,依次求出各个值。
doubler=1.5,h=3;
floatl,s,S,V,v;
l=6.28*r;
s=3.14*r*r;
S=12.56*r;
V=4/3*3.14*r*r;
v=3.14*r*r*h;
l=%3.2f,s=%3.2f,S=%3.2f,V=%3.2f,v=%3.2f"
l,s,S,V,v);
2、2分支程序
2.2.1、目的
(1)掌握逻辑运算符和逻辑表达式的表示方法。
(2)掌握选择运算符的程序设计方法。
(3)熟练掌握if语句和switch语句。
2.2.2、问题
编程求一元二次方程的解?
2.2.3、问题分析与设计
2.2.4、源程序
#include<
stdio.h>
math.h>
string.h>
voidmain()
floata,b,c,disc,x1,x2,realpart,imagpart;
%f,%f,%f"
Theequation"
);
if(fabs(a)<
=1e-6)
printf("
isnotaquardratic\n"
else
{
disc=b*b-4*a*c;
if(fabs(disc)<
printf("
hastwoequalroots:
%8.4f\n"
-b/(2*a));
else
if(disc>
1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("
hasdistinctrealroots:
%8.4fand%8.4f\n"
x1,x2);
}
else
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
hascomplexroots:
\n"
%8.4f+%8.4fi\n"
realpart,imagpart);
8.4f-%8.4fi\n"
}
2.2.5、正确运行结果
2.3循环结构
2.3.1目的
(1)掌握用while语句、do...while语句和for语句实现循环的方法。
(2)掌握循环程序设计中的一些基本算法及设计技巧。
2.3.2.1
(1)问题:
输入两个数m和n,求最小公倍数。
(2)源程序
#include<
intm,n,i;
请输入两个数:
"
%d,%d"
m,&
n);
for(i=1;
i<
=m*n;
i++)
if(i%m==0&
&
i%n==0)
最小公倍数为%d"
i);
break;
(3)正确运行结果。
2.3.2.2
(1)问题:
输入一个正整数K,求出它是几位数,并按逆序输出各位数字,例如原数是321,应输出123。
voidmain()
longa,n;
printf("
a=?
"
scanf("
%ld"
a);
n=0;
while(a)
n++;
%d"
a%10);
a/=10;
}
\nn=%d\n"
n);
(3)正确运行结果
2.4数组与字符串的使用
2.4.1、目的
(1)掌握数组的定义及其元素的引用方法。
(2)掌握数组作为数据结构时的程序设计方法。
(3)掌握利用数组实现一些常用算法的基本技巧。
(4)掌握字符数组和字符串函数的使用。
2.4.2.1
(1)问题:
求数组a中最大值和最小值所在的位置。
#defineN5
{inta[N],i,max,min;
请输入%d个要处理是数据:
N);
for(i=0;
N;
%d,"
a[i]);
min=a[0];
max=a[0];
if(min>
a[i])
min=a[i];
if(max<
max=a[i];
\n最小值为%d,最小值下标为:
min);
if(a[i]==min)
%d"
i+1);
\n最大值为%d,最大值下标为:
max);
for(i=0;
if(a[i]==max)
(3)正确运行结果
2.4.2.2
(1)问题:
将一整数数列按奇数在前,偶数在后的顺序重新排放,并要求奇偶两部分分别有序。
#defineN15
voidsort(int*,int);
voidswap(int*,int*);
intmain()
intint_array[N]={0,10,9,8,7,6,5,4,3,2,1,11,15,13,0};
inti;
sort(int_array,N);
for(i=0;
%5d\n"
int_array[i]);
return0;
voidsort(int*ptr,intn)
inti,j;
n;
for(j=n-1;
j>
i;
j--)
if(ptr[j]!
=0&
ptr[j]%2==1)
if((ptr[j]%2+ptr[j-1]%2!
=2)||(ptr[j]<
ptr[j-1]))
swap(&
ptr[j],&
ptr[j-1]);
for(i=n-1;
i>
0;
i--)
for(j=0;
j<
j++)
ptr[j]%2==0)
if((ptr[j]%2+ptr[j+1]%2!
=2)||(ptr[j]>
ptr[j+1]))
swap(&
ptr[j+1]);
voidswap(int*fst,int*sec)
inttemp;
temp=*fst;
*fst=*sec;
*sec=temp;
(4)正确的运行结果
2.4.2.3
(1)问题:
编写程序,将字符数组s2中的全部字符串复制到字符数组s1中。
要求不用strcpy()函数,复制时连同字符串后面的’\0’一起复制到字符数组s1中。
charstr1[20],str2[]={"
iamastudent"
};
inti,j=0,k=0;
{if(str2[i]==0)
break;
{str1[j++]=str2[i];
k++;
str1[j++]=0;
for(j=0;
=k;
%c"
str1[j]);
(3)正确的运行结果
2.6指针
2.6.1目的:
(1)掌握指针的概念,会定义和使用指针变量
(2)掌握指针变量函数作参数时,参数的传递过程及其用法。
(3)掌握一维数组指针、二维数组指针、字符串指针的概念及其基本用法。
2.6.2.1
(1)问题:
编写函数,对传递进来的两个整型变量计算它们的和与积之后,通过参数返回。
malloc.h"
stdlib.h"
inta=1,b=2,c,d,*p1,*p2;
p1=&
a;
p2=&
b;
b);
c=*p1+*p2;
d=*p1**p2;
sum=%d,chengji=%d"
c,d);
2.6.2.2
(1)问题:
在整型变量year、month、day中输入当前日期,然后分别形成如下两种形式的日期字符串并输出:
月/日/年和年/月/日。
int*p1,*p2,*p3,year,month,day;
year;
month;
p3=&
day;
year,&
month,&
day);
%d月,%d日,%d年\n"
*p2,*p3,*p1);
%d年,%d月,%d日\n"
*p1,*p2,*p3);
2.8文件
2.8.1目的
(1)学会对文本文件的读写操作。
(2)学会对二进制文件的读写操作。
2.8.2问题:
用文本编辑器建立一个文本文件,存放n个学生的单科成绩(数据格式自行设计),并编程读入这些数据,求出最高分、最低分及平均分。
2.8.3源程序
structstudent
intnumber;
charname[10];
intscore[3];
floatavg;
inti,j,n,sum;
请输入学生的个数n\n"
structstudent*stu;
stu=(student*)malloc(n*sizeof(student));
FILE*fp;
请输入学生%d的信息\n"
No.(数字)\n"
scanf("
stu[i].number);
Name.(字符)\n"
%s"
stu[i].name);
sum=0;
score.(数字)\n"
for(j=0;
3;
{
scanf("
stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].avg=sum/3.0;
fp=fopen("
stud.txt"
"
w"
if(fwrite(&
stu[i],sizeof(student),1,fp)!
=1)
filewriteerror\n"
fclose(fp);
r"
fread(&
stu[i],sizeof(student),1,fp);
%d%s%d%d%d%f\n"
stu[i].number,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg);
2.8.4正确的运行结果
心得体会:
经过了四次上机实习,包括在机房里老师的指导,同时在宿舍里用电脑进行的练习,
(1)对在电脑上操作VC环境下的程序有了基本的方法,同时掌握了修改程序的简单方法
(2)对编辑程序产生了极大地兴趣,以及在数组、指针、文件等方面的更深一步的了解和运用(3)形成了分析和解决编程问题的基本思路。