太原理工大学C语言实验报告Word文档格式.docx
《太原理工大学C语言实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《太原理工大学C语言实验报告Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
scanf("
%f,%f"
&
a,&
b);
sum=a+b;
average=(a+b)/2;
printf("
sum=%f,average=%f\n"
sum,average);
}运行结果-输入2,4得sum=6,average=3
1-2#include<
{floats[10],max,min,sum,score;
inti;
for(i=0;
i<
10;
i++)
scanf("
%f"
s[i]);
max=min=sum=s[0];
for(i=1;
{if(max<
s[i])max=s[i];
if(min>
s[i])min=s[i];
sum+=s[i];
}
score=(sum-max-min)/8;
score=%.4f"
score);
}运算结果-输入12345678910得score=5.5
2-2
#include<
voidmain(void)
{intvalue1,value2,sum;
value1=30;
value2=45;
sum=value1+value2;
sum=%d\n"
sum);
运算结果-sum=75
2-3
intmax(intx,inty)
{intz;
if(x>
y)z=x;
elsez=y;
returnz;
{inta,b,c;
a,b="
);
%d,%d"
c=max(a,b);
max=%d\n"
c);
}运算结果-输入a,b=15,35max=35
4
(1)
#include<
{inta,x,y,m;
a=7;
x=2;
y=4;
m=x+a%3*(x+y)%2/4;
m=%d\n"
m);
}运算结果-m=2
4
(2)
{floata,b,x,y,m;
a=2;
b=3;
x=3.5;
y=2.5;
m=(float)(a+b)/2+(int)x%(int)y;
m=%f\n"
}运算结果-m=3.5
5
(1)
voidmain()
{inta=10;
a+=a;
printf("
%d\n"
a);
}运算结果-20
5
(2)
a-=2;
a=%d\n"
}运算结果-a=8
5(3)
a*=2+3;
}运算结果-a=50
5(4)
a/=a+a;
}运算结果-a=0因为定义a为整型a=0.5时取a=0
5(5)#include<
{inta=10,n=5;
a%=(n%=2);
}运算结果-a=0
5(6)#include<
a+=a-=a*=a;
}运算结果-a=0
遇到的问题和解决方法
(1)输入有误
在输入过程中如果在格式说明中含有普通字符,输入数据时,这些普通字符不会显示到屏幕上,
而是要求将这些字符也原样输入。
(2)类型搭配不对
存在%则不可用float,double型而用int型。
(3)a+=a-=a*=a结果为0
从右往左运算a的值随运算的进行而变化
心得体会
输入程序过程中要仔细,前后形势要对应。
实验三简单程序、分支程序和循环程序设计
实验四数组应用程序设计
1.理解C语言程序的基本结构和实现基本结构的语句;
2.熟练应用赋值、输入和输出语句;
3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;
4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;
5.掌握数组的定义、初始化和数组元素的引用方法;
6.掌握与数组有关的算法,如:
求最大(小)值,排序等;
7.理解字符数组与字符串的关系,掌握字符串的处理过程和常用字符串处理函数。
1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。
2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。
3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。
4.输入一百分制成绩,输出成绩等级A、B、C、D、E。
90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。
要求程序能处理错误的输入数据。
5.利用公式:
π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。
(fabs(t)表示t的绝对值,1e-6=1*10-6)。
6.在C语言允许的整数范围内验证哥德巴赫猜想,即任意大于6的偶数都可以表示为两个素数之和,如:
100=3+97。
7.有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中。
8.输入一个英文句子,统计单词的个数。
实验记录(写出实验内容中3,5,6,8的程序代码和运行结果)(可分栏或加页)
3#include<
#definePI3.1415926
{doubler=1.5,h=3.0,c,s,v;
c=2*PI*r;
s=PI*r*r;
v=PI*r*r*h;
c=%f,s=%f,v=%f\n"
c,s,v);
}运算结果-c=9.424778,s=7.068583,v=21.205750
4#include<
math.h>
{doublePI=0,s=0,i=1;
intn=1;
while(fabs(n/i)>
=1e-6)
{s=s+n/i;
i=i+2;
n=-n;
PI=4*s;
PI=%f\n"
PI);
}输出结果-PI=3.141591
6#include<
intmain()
{inti,j,n;
输入一个大于6的偶数"
%d"
n);
for(i=2;
n;
{for(j=2;
j*j<
=i;
j++)if(i%j==0)break;
if(j*j<
=i)continue;
for(j=2;
=n-i;
j++)if((n-i)%j==0)break;
=n-i)continue;
break;
}
%d=%d+%d\n"
n,i,n-i);
return1;
}输出结果-输入12输出12=5+7
8#include<
{chars[256],prior='
'
;
inti,count=0;
输入一个英文句子-"
gets(s);
for(i=0;
s[i]!
='
\0'
{if(prior=='
&
(s[i]>
a'
s[i]<
z'
||s[i]>
A'
Z'
)count++;
prior=s[i];
count=%d\n"
count);
}输出结果-输入Happynewyear,langtimenosee.输出count=7
1不知如何使用PI-运用#include PI=3.1415926先提前定义。
2如何应用fabs(t)-应用前需用#include(math.h)。
数学公式定义要提前定义
实验五指针应用程序设计
实验六函数应用程序设计
1.理解指针的概念,掌握指针变量的定义和赋值,掌握使用指针变量访问数据的方法;
2.学会使用指针处理数组中的数据,学会用指针处理字符串;
3.了解指针数组和指向指针的指针;
4.掌握C语言函数的定义、调用和声明方法,掌握函数的参数传递方式;
5.了解变量的作用域和存储类别。
1.输入并运行第5章例5-1、例5-3中的程序,观察输出结果,理解指针变量的用法。
2.输入并运行第5章例5-5中的程序,掌握使用指针变量访问数组元素的方法。
3.编程序,输入有一个英文句子,将每个单词的第一个字母改为大写。
(使用指针)
4.设计一函数,判断一个字符串是否是回文。
“回文”是一种顺序读和反序读都一样的字符串,例如:
“121”“abcba”“ABCCBA”。
在主函数中输入字符串并输出判断结果。
5.编写一个程序,由主函数和如下函数构成。
⑴设计函数:
input(),输入n个无序的整数存储在一个数组中;
⑵设计函数:
sort(),用起泡法对数组中的n各数据从大到小排序;
⑶设计函数:
search(),用折半查找法在已排序的n个数种查找指定的数据,若存在,返回其所处的位置,否则,将其插入适当位置使数据仍有序。
在主函数中调用上述函数,验证函数的功能。
6.输入并运行第6章例6-27中的程序,根据输出结果总结局部静态变量的特点。
实验记录(写出实验内容中3,4,5的程序代码和运行结果)(可分栏或加页)
3.#include<
{char*p,*q,s[256];
输入一个英文句子\n"
q=s;
while(*q!
)q++;
for(p=s+1;
p<
=q;
p++)
if(*(p-1)=='
(*p>
||*p<
)*p=*p-32;
else*p=*p;
*s=*s-32;
for(p=s;
q;
p++)printf("
%c"
*p);
\n"
}输出结果-输入happynewyear输出HappyNewYear
4.#include<
{char*p,*q,s[81];
q=s;
for(p=s,q=q-1;
p++,q--)
{if(*p!
=*q)
{i=1;
elsei=0;
if(i==0)printf("
Yes\n"
elseprintf("
No\n"
}输出结果-输入123321输出Yes
5.
(1)#include<
intinput(ints[],intn);
{inti,s[81],n;
number="
input="
i++)scanf("
s[i]=input(s,n);
intinput(ints[],intn)
{inti;
i++)printf("
%4d"
s[i]);
returns[i];
}输出结果-输入5再输入12345输出12345
(2)#include<
intsort(ints[],intn);
{inti,s[256],n;
i++)scanf("
s[i]=sort(s,n);
intsort(ints[],intn)
{inti,j,t;
for(j=0;
j<
n-i;
j++)
if(s[j]>
=s[j+1])
{t=s[j];
s[j]=s[j+1];
s[j+1]=t;
i++)printf("
(3)#include<
intsearch(ints[],intm,intn);
{inti,s[256],n,m;
input%dnumbers="
n);
inputonenumber="
m);
s[i]=search(s,m,n);
{
inti,j,t;
{t=s[j];
intsearch(ints[],intm,intn)
{inti,t;
for(i=n-1;
i>
=0;
i--)
{if(m<
s[i])s[i+1]=s[i];
=n;
{if(s[i]>
m&
s[i-1]<
m)s[i]=m;
elseif(m<
s[1])s[0]=m;
elseif(m>
s[n])s[n]=m;
}for(i=0;
}输出结果-输入5后输入1119235921输出1119212359再输入25输出111921232559。
1出现奇怪数字
解决方法-仔细检查,尤其是表示范围的地方,注意等于是否可取。
1输入过程中要仔细,尤其是范围的取舍。
实验七结构体应用程序设计
实验八文件操作程序设计
1.理解结构体的概念,掌握结构体类型的定义和结构体变量、数组和指针的定义;
2.掌握结构体变量和结构体数组的初始化方法;
3.掌握结构体变量和结构体成员的引用方法;
4.理解文件、文件类型、文件类型指针,熟悉文件的操作过程。
5.掌握文件打开、关闭和文件读写等文件操作函数的手机用。
1.输入并运行第7章例7-1中的程序。
理解结构体类型、变量和结构体成员。
2.编写一个程序实现如下功能:
定义一个点的结构数据类型,实现下列功能:
⑴输入点的坐标值。
⑵求两个点中点坐标。
⑶求两点间距离。
3.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
4.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
台式或笔记本计算机
实验记录(写出实验内容中2,3,4的程序代码和运行结果)(可分栏或加页)
2
(1)#include<
structspot
{intx;
inty;
};
{structspotsp[4];
输入四个坐标点:
4;
%d%d"
sp[i].x,&
sp[i].y);
spot\t\t\tx\ty\n"
sp[%d]\t\t\t%d\t%d\n"
i,sp[i].x,sp[i].y);
}输出结果-输入12回车23回车34回车45回车输出
spotxy
sp[0]12
sp[1]23
sp[2]34
sp[3]45
inti,x,y;
输入两个坐标点:
2;
x=(sp[0].x+sp[1].x)/2;
y=(sp[0].y+sp[1].y)/2;
mid\t\t\t%d\t%d\n"
x,y);
}输出结果-输入24回车输入46回车输出
sp[0]24
sp[1]46
mid35
floatlon;
lon=sqrt((sp[0].x-sp[1].x)*(sp[0].x-sp[1].x)+(sp[0].y-sp[1].y)*(sp[0].y-sp[1].y));
lon=%f"
lon);
lon=2.828427
stdib.h>
structstudent
{intno;
charname[11];
floatmat;
floateng;
floatcha;
floatare;
{structstudenta[5];
FILE*fp;
5;
{printf("
\n输入第%d位学生学号:
"
i);
a[i].no);
printf("
\n输入第%d位学生的姓名:
%s"
a[i].name);
\n输入第%d位学生数学成绩:
,i);
a[i].mat);
\n输入第%d位学生语文成绩:
i);
a[i].cha);
\n输入第%d位学生英语成绩:
a[i].eng);
a[i].ave=a[i].mat+a[i].cha+a[i].eng;
第%d位学生的平均成绩为:
i,a[i].ave);
}
fp=fopen("
stud"
"
r"
if(fwrite(&
a[i],sizeof(structstudent),1,fp)!
=1)
filewriteerror\n"
fclose(