太原理工大学软件工程大一程序设计技术实验Word文档格式.docx
《太原理工大学软件工程大一程序设计技术实验Word文档格式.docx》由会员分享,可在线阅读,更多相关《太原理工大学软件工程大一程序设计技术实验Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
sum=a+b;
average=(a+b)/2;
printf(“sum=%f,average=%f\n”,sum,average);
}
输入4,6
结果是sum=10.000000,auerage=5.000000
1-2
Voidmain()
{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;
printf(“score=%.4f”,score);
输入1,2,3,4,5,6,7,8,9,0
输出4.5000
在运行时在一些语法上错误。
通过同学的互相合作解决问题。
22-2
voidmain()
{
intvalue1,value2,sum;
value1=30;
value2=45;
sum=value1+value2;
printf(“sum=%d\n”,sum);
结果sum=75
2-3
intmax(intx,inty)
{intz;
if(x>
y)
z=x;
else
z=y;
returnz;
voidmain(void)
inta,b,c;
printf(“a,b=”);
scanf(“%d,%d”,&
c=max(a,b);
printf(“max=%d\n”,c);
输入:
1,2
输出:
max=2
4.
(1)
#include<
stdio.h>
voidmain()
intx=2,a=7,y=4;
Printf(“%d\n”,x+a%3*(x+y)%2/4);
2
4.
(2)
floata=2,b=3,x=3.5,y=2.5;
printf(“%f\n”,(a+b)/2+(int)x%(int)y);
3.500000
5.
#include<
{inta=10;
Printf(“%d”,a+=a);
20
Printf(“%d”,a*=2+3);
50
Printf(“%d”,a-=2);
8
Printf(“%d”,a/=a+a);
Printf(“%d”,a+=a-=a*=a);
{inta=10,n=5;
Printf(“%d”,a%=(n%=2));
遇到的问题和解决方法
1.在函数的嵌套调用中,不能理智的排列好调用顺序。
解答:
通过问老师获得帮助。
2.函数多时,头脑有点混乱。
通过和同学一起商量,使编程变得有意义。
心得体会
编程序时,只要细心,认真,耐心,就能一次成功完成程序。
先分析问题,设计算法,编写代码,运行验证。
实验三简单程序、分支程序和循环程序设计
实验四数组应用程序设计
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的程序代码和运行结果)(可分栏或加页)
1.
inta=5678;
printf(“%d,%o,%x,%u\n”,a,a,a,a);
输出结果为5678,13056,162e,5678
floata=-123.456789;
printf(“f格式:
%f\n”,a);
printf(“g格式:
%g\n”,a);
printf(“e格式:
%e\n”,a);
%10.2f\n”,a);
printf(“g格式:
%10.2g\n”,a);
%10.2e\n”,a);
f格式:
-123.456787
g格式:
-123.457
e格式:
-1.23457e+002
-123.46
-1.2e+002
2.
#include<
intx,y;
printf(“输入矩形的长和宽:
”);
scanf(“%d%d”,&
x.&
y);
printf(“areais%d、n”,x*y);
34
areais12
math.h>
floata,b,c,disc,x1,x2,p,q;
printf(“Inputa,b,c:
scanf(“%f,%f,%f”,&
b,&
c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;
x2=p-q;
printf(“x1=%5.2f\nx2=%5.2f\n”,x1.x2);
Inputa,b,c;
1,2,3
x1=-1.00
x2=2.00
3.
inth=3;
floata=3.14,b,c,d,r=1.5;
b=2*a*r;
c=a*r*r;
d=a*r*r*h;
printf(“%f,%f,%f”,b,c,d);
9.420000,7.065000,21.195002
4.
charA,B,C,D,E;
floatr;
printf(“pleaseinputafigure:
scanf(“%f”,&
r);
if(r>
=90&
&
r〈=100)
printf(“%c”,A);
elseif(r>
=80&
r<
=89)
printf(“%c”,B);
=70&
=79)
printf(“%c”,C);
=60&
=69)
printf(“%c”,D);
printf(“%c”,E);
intmain()
doublei=1;
doublepi=0;
while
(1)
{
pi+=(double)(1/i-1/(i+2));
printf("
pi:
%f\n"
pi*4);
i+=4;
if(1/i-1/(i+2)<
10e-6)break;
}
return0;
6
#include<
intisPrime(intt);
voidprnt(inti);
intsum,n;
n=0;
for(sum=6;
sum<
=100;
sum=sum+2)
prnt(sum);
n++;
if(n%5==0)
printf("
\n"
);
printf("
return0;
voidprnt(inti)
intm;
for(m=3;
m<
m++)
{
if(isPrime(m))
if(isPrime(i-m))
{
printf("
%d=%d+%d"
i,m,(i-m));
break;
}}
intisPrime(intt)
intj;
for(j=2;
j<
=sqrt(t);
j++)
if(t%j==0)
return0;
return1;
程序运行结果:
6=3+38=3+510=3+712=5+714=3+11
16=3+1318=5+1320=3+1722=3+1924=5+19
26=3+2328=5+2330=7+2332=3+2934=3+31
36=5+3138=7+3140=3+3742=5+3744=3+41
46=3+4348=5+4350=3+4752=5+4754=7+47
56=3+5358=5+5360=7+5362=3+5964=3+61
66=5+6168=7+6170=3+6772=5+6774=3+71
76=3+7378=5+7380=7+7382=3+7984=5+79
86=3+8388=5+8390=7+8392=3+8994=5+89
96=7+8998=19+79100=3+97
7.
charstr[81],ch;
inti,position;
输入一个字符串:
"
gets(str);
输入要插入的字符位置:
scanf("
%d"
&
position);
输入要插入的字符:
%*c%c"
ch);
for(i=0;
str[i]!
='
\0'
;
while(i>
=position-1)
str[i+1]=str[i];
i--;
str[position-1]=ch;
在指定位置插入字符后的字符串:
%s\n"
str);
{
charstr[255];
printf(‘pleaseinput:
’);
for(i=1;
=’\0’;
if(str[i]>
=’a’&
str[i]<
=’z’||str[i]>
=’A’&
=’Z’)
i++;
printf(“%d”,i);
1:
做事必须认真,细心,一心一意。
2:
必须坚持不懈,才能成功。
3:
在写程序时,写注释有利于阅读程序。
实验五指针应用程序设计
实验六函数应用程序设计
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的程序代码和运行结果)(可分栏或加页)
1.面积计算公式不能准确使用,通过到XX查阅获得答案。
2.不能正确使用which语句,通过参考课本得到解决。
3.不能正确使用条件控制语句(for)中的,通过看课本。
注重团队合作能力,互帮互助,这样才能共同进步,取得最后的成功。
实验七结构体应用程序设计
实验八文件操作程序设计
1.理解结构体的概念,掌握结构体类型的定义和结构体变量、数组和指针的定义;
2.掌握结构体变量和结构体数组的初始化方法;
3.掌握结构体变量和结构体成员的引用方法;
4.理解文件、文件类型、文件类型指针,熟悉文件的操作过程。
5.掌握文件打开、关闭和文件读写等文件操作函数的手机用。
1.输入并运行第7章例7-1中的程序。
理解结构体类型、变量和结构体成员。
2.编写一个程序实现如下功能:
定义一个点的结构数据类型,实现下列功能:
⑴输入点的坐标值。
⑵求两个点中点坐标。
⑶求两点间距离。
3.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。
4.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。
台式或笔记本计算机
实验记录(写出实验内容中2,3,4的程序代码和运行结果)(可分栏或加页)
1
structcomplex
floatreal;
floatimag;
};
intmain(void)
structcomplexx,y,s,p;
scanf("
%f,%f"
x.real,&
x.imag);
y.real,&
y.imag);
s.real=x.real+y.real;
s.imag=x.imag+y.imag;
p.real=x.real*y.real-x.imag*y.imag;
p.imag=x.real*y.imag+x.imag*y.real;
两复数的和为:
%f+%fi\n"
s.real,s.imag);
printf("
两复数的积为:
p.real,p.imag);
程序运行结果为:
1,3
2,5
3.000000+8.000000i
-13.000000+11.000000i
structpoint
floatxnum;
floatynum;
structpointm,n,j;
floatk;
m.xnum,&
m.ynum);
n.xnum,&
n.ynum);
j.xnum=(m.xnum+n.xnum)/2;
j.ynum=(n.ynum+m.ynum)/2;
k=sqrt((n.xnum-m.xnum)*(n.xnum-m.xnum)+(n.ynum-m.ynum)*(n.ynum-m.ynum));
中点坐标为:
j.xnum,j.ynum);
两点之间的距离为:
%f"
k);
1,2
3,4
2.000000,3.000000两点之间的距离为:
2.828427
stdlib.h>
structstudent
intno;
charname[11];
floatmat;
floateng;
floatcha;
floatave;
structstudenta[5];
FILE*fp;
5;
{printf("
\n请输入第%d为学生学号:
i);
scanf("
a[i].no);
printf("
\n请输入第%d位学生姓名:
%s"
a[i].name);
\n请输入第%d位学生数学成绩:
a[i].mat);
\n请输入第%d位学生语文成绩:
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(fp);
#include"
stdio.h"
stdlib.h"
main()
{FILE*fp;
inti,j,n,ni;
charc[160],t,ch;
if((fp=fopen("
A"
))==NULL)
{printf("
fileAcannotbeopened\n"
exit(0);
\nAcontentsare:
(ch=fgetc(fp))!
=EOF;
{c[i]=ch;
putchar(c[i]);
ni=i;
B"
fileBcannotbeopened\n"
\nBcontentsare:
n=i;
for