当前位置:文档之家› 实验一简单C程序设计实验报告

实验一简单C程序设计实验报告

实验一简单C程序设计实验报告
实验一简单C程序设计实验报告

成绩:

实验名称:集中上机 1—C 语言程序设计

学生姓名:李梦雅

学生学号:2013212360

学生专业:机械设计制造及其自动化

学生班级:0841302

指导教师:李敏老师、张开碧老师

实习时间: 2014 年上半年第 11周到第 14 周

实验一简单的C程序设计

学号2013212360 姓名李梦雅班级0841302

第11周星期四第5,6,7,8节实验日期2014年5月8日

一、实验目的

1、了解Microsoft Visual C++6.0软件的窗面,掌握c语言程序的编辑、编译、连

接和运行过程。

2、掌握c语言的基本数据类型、定义和使用方法,了解几种类型输出时所用的

格式和转换符,熟悉各种运算符和表达式的使用特点。

3、熟悉掌握c语言中赋值运算、各类数据间的混合运算、算术运算和符号运算

的使用。

4、掌握c语言数据输入输出的概念和使用方法。

二、实验内容和结果

例1、从键盘任意输入a、b、c 三个数,

输出其中最大值和它们的和值。

# include

void main ()

{

int a,b,c;

int maxv,sum;

printf("请输入三个数

a,b,c:\n");

scanf("%d,%d,%d",&a,&b,&c)

;

if (a>b)

maxv=a;

else

maxv=b;

if (c>maxv)

maxv=c;

printf("三个数中最大的数

为%d\n",maxv);

sum=a+b+c;

printf("三个数之和

为%d\n",sum);

}

例2、转义字符的使用。分析下列程序,写出运行结果,并将分析结果与运行结果进行对照。

# include

void main()

{

char

c1='a',c2='b',c3='c',c4='\

101',c5='\116';

printf("12345678910abcdef

g\n");

printf("a%c

b%c\tabc\n",c1,c2,c3);

printf("ab c\t

de\rf\tg\n");

printf("h\ti\b\bj k\n");

printf("\t\b%c\n",c4,c5);

printf("\ta\tc\n");

}

例3、从键盘输入一字符,要求将其中的字母找出来,并小写输出。

# include

void main()

{

char c1,c2;

c1=getchar();

printf("输出的字符是:%c,

其ASCII码是:%d\n",c1,c1);

if

((c1>='a'&&c1<='z')||(c1>=

"A"&&c1<="Z"))

{

if(c1>='A'&&c1<='Z')

c2=c1+32;

else

c2=c1;

printf("%c,%d\n",c2,c2);

}

else

printf("输入的不是字

母,不能小写转换!\n");

}

例4、从键盘上输入三角形三边

a,b,c 的值,计算三角形的面积,并输

出计算结果。

# include

# include

void main ()

{

float a,b,c;

float s,area;

printf("请输入三角形的三

边\n");

scanf("%f,%f,%f",&a,&b,&c

);

s=(a+b+c)/2;

area=(float)sqrt(s*(s-a)*

(s-b)*(s-c));

printf("三角形的三边

为:a=%-7.2f,b=%-7.2f,c=%7.

2f\n",a,b,c);

printf("面积

为:area=%-7.2f\n",area);

}

练习题

1、写出下面程序的运行结果,体会自加(自减)运算符的使用及执行顺序。

# include

void main ()

{

int i,j,m,n;

i=8;

j=10;

m=++j;

n=j++;

printf("%d,%d,%d,%d\n",i,j,m,n);

printf("%d,%d,%d,%d\n",i++,++i,j++,

++j);

printf("%d,%d,%d,%d\n",++m,m++,

m,++m);

}

2、将100~800 之间的所有素数按每个数之间空3 列并且每行输出5 个方式输出所有素数。

# include

# include

void main ()

{

int m,k,i,n=0;

for (m=101;m<=800;m=m+2)

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)

break;

if(i>=k+1)

{

printf("%6d",m);

n=n+1;

}

if(n%5==0)

printf("\n");

}

printf("\n");

}

3、有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?请输出满足条

件的每一个这样的三位数。

# include void main () {

int i,j,k;

for(i=1;i<=4;i++) for(j=1;j<=4;j++) for(k=1;k<=4;k++) { if(i!=j&&i!=k&&j!=k)

printf("%d%d%d\n",i,j,k); }

}

4、设圆柱底面积半径为 r ,圆柱高为 h,求圆底面积、圆柱表面积、圆柱体积。要求半径和

高从键盘输入,输出结果保留两位小数位。

# include # define PI 3.1415926 void main() {

float r,h,S1,S2,V;

scanf ("%f,%f",&r,&h); S1=PI*r*r;

S2=2*PI*r*h+2*S1; V=S1*h;

printf("圆底面积=%.2f\n",S1); printf("圆柱表面积=%.2f\n",S2); printf("圆柱体积=%.2f\n",V);

}

三、问题讨论

要加强自己对学习的耐心与细心,要增强对基本知识的掌握,多看书。

实验二三种结构的程序设计

学号2013212360 姓名李梦雅班级0841302

第12周星期四第5,6,7,8节实验日期2014年5月15日

一、实验目的

1、了解并熟练掌握c语言程序设计的三种结构:顺序、选择和循环。

2、熟练掌握顺序结构中赋值语句的使用、数据的输入输出函数和常用的格式控制方法。

3、掌握关系运算符和表达式、逻辑运算符和表达式的定义和使用,熟练使用选择结构中if和switch语句,能结合实际应用编程。

4、掌握循环控制中的for、while、do while等常用语句的使用方法和技巧,掌握循环跳出语句break和continue的用法,熟悉循环的嵌套,能结合实例正确使用这些技巧。

二、实验内容和结果

例1:闰年的条件是符合下面两者之一:①能被4 整除,但不能被100 整除,如2008;②

能被400 整除,如2000。从键盘任意输入一年,判断是否是闰年。

# include

void main ()

{

int year;

int c=1;

while (c)

{

printf("请输入任意年份:\n");

scanf("%d",&year);

if((year%4==0&&year%100!=0)||(y

ear%100==0))

printf("\n%d是闰

年!\n",year);

else

printf("\n%d不是闰

年!\n",year);

printf("是否要继续?0:退出,1:继续\n");

scanf("%d",&c);

}

}

例2:在我国,人的一生有不同的划分:0-1 岁为婴儿,1-3 岁为幼儿,3- 6 岁为儿童,7-14

岁为少年,15- 45 岁为青年,46-59 为中年,60-74 为年轻的老人,75-89 为老年,90 岁以

上为长寿老人。请根据以上划分,从键盘任意输入一年龄,看属于哪个年龄段。

# include

void main ()

{

int age;

int c=1;

while (c)

{

printf("请输入年龄:\n");

scanf("%d",&age);

if(age<1)

printf("\n你是可爱的小婴儿^-^!");

else if(age<3)

printf("\n你是乖巧的小幼儿!");

else if(age<7)

printf("\n你是调皮的儿童啦!");

else if(age<15)

printf("\n你是叛逆的少年!");

else if(age<45)

printf("\n你是风华正茂的青年!");

else if(age<60)

printf("\n你处在中流砥柱的中年!");

else if(age<75)

printf("\n你是老年益壮的年轻人!");

else if(age<89)

printf("\n你是长寿老人啦!争取活到200岁!");

printf("\n继续测试?0:退出,1:继续\n");

scanf("%d",&c);

}

}

例3:物品征税问题。价格在1 万元以上的征5% ,5000 元以上的1 万元以下的征3%,1000

元以上5000 元以下的征2%,1000 元以下的免税,请读入货物价格,计算并输出税金。

# include

void main ()

{

float price ,m;

int p,s;

printf("请输入货物价格:\n");

scanf("%f",&price);

if(price>10000)

price=1000;

p=(int)price/1000;

switch (p)

{

case 0:s=0;break;

case 1:s=2;break;

case 2:

case 3:

case 4:

case 5:s=3;break;

case 6:

case 7:

case 8:

case 9:

case 10:s=5;break;

}

m=price*s/100;

printf("该货物税金为:%f\n",m);

}

例4、给一个不多于5 位的正整数,请按照从高位到个位分别输出每一个数字。

# include

void main()

{

int x,i=10000,y;

printf("请输入数据x:\n");

scanf("%d",&x); while(x>99999) { printf("输入错误,请重新输入:\n"); scanf("%d",&x); }

while(x) { y=x/i; if(y>0) { printf("%d",y); x=x%i; } i=i/10; }

}

例 5、用牛顿迭代求方程 2x3-4x2+3x-6=0 在 1.0 附近的根。

# include void main () {

float x,x0,f,f1; x=1.0; do { x0=x; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x=x0-f/f1;

}while (fabs(x-x0)>=1e-5); printf("%6.2f",x);

}

练习题

1、企业发放的奖金根据利润提成。利润低于 1 万元的,提成 10%,高于 1 万低于 5 万的,

提成 8%,高于 5 万低于 10 万的,提成

6%,高于 10 万的提成 5%。输入利润,计算奖金数并 输出结果。

#include void main() {

double x,y;

printf("请输入利润值:"); scanf("%lf",&x); if(x<=10000) y=0.10*x;

else if(x<=50000) y=0.08*x;

else if(x<=100000) y=0.06*x;

else if(x>100000) y=0.05*x;

printf("%lf\n",y);

}

2、学生成绩等级制。如果某学生成绩在 90 分以上,等级为优; 80-90 分,等级为良; 70-80

分,等级为中;60-70 分,等级为及格;如果成绩小于 60 分,等级为不及格。输入一成绩,

判断是在哪个等级。

# include void main() {

int x; int c=1; while (c) {

printf("请输入成绩:\n"); scanf("%d",&x); if(x>=90) printf("\n 优"); else if (x>=80)

printf("\n良");

else if (x>=70)

printf("\n中");

else if (x>=60)

printf("\n及格");

else

printf("\n不及格");

printf("\n继续测试?0:退出,1:继续\n");

scanf("%d",&c);

}

}

3、所谓“同构数”是指这样的数,它出现在它的平方数的右端。如: 6 的平方是36,6 出现在36 的右端,6 就是一个同构数。编程输出2~1000 之内的所有同构数。

# include

void main()

{

long i,j,s;

for(i=2;i<1000;i++)

{

s=i*i;

j=i;

while(j>0)

{

if((j%10)!=(s%10)) break;

j=j/10;

s=s/10;

}

if(j==0)

printf("%6d",i);

}

}

4、求下面分数序列的前10 项之和。

1 2 3 5 8 13

, , , , , ,...

2 3 5 8 13 21

#include

void main()

{

double a=2,b=1;

int m,i;

double sum=0,c;

for(i=1;i<=10;i++)

{

c=b/a;

sum=sum+c;

m=b;

b=a;

a=b+m;

}

printf("%lf\n",sum);

}

5、某小朋友有若干个玻璃球,第一天拿出去一半还加一个,第二天又将剩下的拿走一半再

多一个,以后每天都将剩下的一半零一个拿走。到第8 天的时候只剩下一个玻璃球了。请

问他原本有多少个玻璃球。

#include

void main()

{

int y=1;

int i;

for(i=1;i<=8;i++)

{

y=(y+1)*2;

}

printf("%d\n",y);

}

6、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

#include

void main()

{

long n;

int i;

printf("请输入一个正整数:\n");

scanf("%ld",&n);

for(i=2;i

{

while(i!=n)

{

if(n%i==0)

{ printf("%ld*",i);

n=n/i;

}

else

break;

}

}

printf("%d\n",n);

}

7、计算下列多项式之和。要求两次求得的误差在ε之内,设ε=10

-5。e≈1+1/1!+1/2!+...+1/n!

#include

void main()

{

int i=1,a=1;

double e=1;

while(1.0/a>1e-5)

{

e+=1.0/a;

i++;

a*=i;

}

printf("e=%lf\n",e);

}

8、如果一个数恰好等于它的所有因子(包括 1 但不包括自身)之和,则称之为“完数”。

例如6 的因子是1,2,3,且6=1+2+3,因此6 是完数。编写程序找出1000 之内的所有完数及这些完数之和。

#include

void main()

{

int i,j,k,s,n=0;

printf("完数有:\n");

for(i=1;i<=1000;i++)

{

s=0;

for(j=1;j

if(i%j==0)

s=j+s;

if(s==i)

{

printf("%d ",i);

n=n+i;

}

}

printf("\n所有完数之和为%d\n",n);

}

三、问题讨论

加强对循环结构不同形式的使用,注意break和continue等,对所学知识灵活运用,尝试用不同方法解决问题。

实验三数组和函数

学号2013212360 姓名李梦雅班级0841302

第13周星期四第5,6,7,8节实验日期2014年5月22日

一、实验目的

1、掌握一维数组、二维数组、字符数组的定义、初始化、引用和输入输出,能

熟练运用数组解决实际问题。

2、掌握函数的定义、声明、调用,能熟练掌握函数的参数和返回值,能运用函数

解决较简单的问题。

3、了解局部变量,全局变量,动态存储变量、静态存储变量,内部函数、外部函

数的联系和区别。

二、实验内容和结果

例1、输出一个菱形图。

# include

void main ()

{

char d[][5]={{' ',' ','*'},{' ','*','

','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*',' '},{' ','

','*'}};

int i,j;

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%c",d[i][j]);

printf("\n");

}

}

例2、已有一个已排好序的数组,从键盘任意输入一个数,要求按原来排序的规律将它插入数组中

# include

# include

void main()

{

int a[6]={1,3,4,7,8};

int x,i,j;

printf("请任意输入一个值x:\n");

scanf("%d",&x);

for(i=0;i<5;i++)

{

if(x

{

for(j=4;j>=1;j--)

a[j+1]=a[j];

a[i]=x;

break;

}

}

printf("\n,数据插入后新数组

为:\n");

for(i=0;i<6;i++)

printf("%d",a[i]);

}

例 3 、有一个3×4 的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。

# include

# define M 3

# define N 4

void main ()

{

int max,i,j,r,c;

static int

a[M][N]={{123,94,-10,218},{3,9,10,-8

3},{45,16,44,-99}};

printf("该矩阵为%d行%d列矩

阵:\n",M,N);

for(i=0;i

{

for(j=0;j

printf("%5d",a[i][j]);

printf("\n");

}

max=a[0][0];

for(i=0;i

for(j=0;j

if(a[i][j]>max)

{

max=a[i][j];

r=i;

c=j;

}

printf("最大值为:%d,是第%d行

第%d列\n",max,r+1,c+1);

}

例4、打印输出yx的值。

# include

void main ()

{

int power(int x,int y);

int s,x,y;

printf("请输入x和y的值:\n");

scanf("%d,%d",&x,&y);

s=power(x,y);

printf("x的立次方位:%d\n",s);

}

int power(int x,int y)

{

int p,m=1;

for(p=1;p<=y;p++)

m=m*x;

return (m);

}

练习题

1、打印出N 行的等腰直角三角形。N 从键盘输入。如N=4,则打印图形如下:

*

* *

* * *

* * * *

# include

void main()

{

char

d[][4]={{'*'},{'*','*'},{'*','*','*'},{'*','*','

*','*'}};

int i,j;

for(i=0;i<4;i++)

{

for(j=0;j<4;j++)

printf("%c",d[i][j]);

printf("\n");

}

}

2、一个含有若干字符的字符串,分别找出其中数字,将重复的去掉后,按升序排列后输出。

# include

# include

void main ()

{

char s1[100],s2[100];

int i,j=0,t,k;

printf("请输入一个字符串,长度

<100\n");

gets(s1);

for(i=0;i<(int)strlen(s1);i++)

if(s1[i]<='9'&&s1[i]>='0')

s2[j++]=s1[i];

s2[j]='\0';

for(i=0;i<(int)strlen(s1)-1;i++)

for(j=i+1;j<(int)strlen(s2);)

if(s2[i]==s2[j])

{ t=j;

while(s2[t])

{ s2[t]=s2[t+1];

t++;}

}

else

j++;

for

(i=0;i<(int)strlen(s2)-1;i++)

{

t=i;

for(j=i+1;j<(int)strlen(s2);j++)

if(s2[j]

t=j;

if(t!=i)

{

k=s2[t];

s2[t]=s2[i];

s2[i]=k;

}

}

puts(s2);

}

3、求一个N×N 矩阵对角线元素之和(若有交叉点则只计算一次)。N 从键盘输入。

# include

# define LEN 100

int main ()

{

int i,j,n,sum=0;

int a[LEN][LEN];

printf("请输入矩阵的阶数n:");

scanf("%d\n",&n);

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

sum=sum+a[i][i];

for(j=n-1;j>=0;j--)

sum+=a[n-j-1][j];

if(n%2==0)

printf("%d",sum);

if(n%2==1)

printf("%d",(sum-a[n/2][n/2]));

printf("\n");

return 0;

}

4、任意输入两个字符串S1 和S2,要求每个字符串中无重复的字符求两者的交集,若非空

就输出交集的字符,若空则输出相应的提示。

# include

int main()

{

char str1[80],str2[80];

int i,j,n=0;

printf("请输入第一个字符串:");

scanf("%s",str1);

printf("请输入第二个字符串:");

scanf("%s",str2);

for(i=0;str1[i]!='\0';i++)

{

for(j=0;str2[j]!='\0';j++)

if(str1[i]==str2[j])

{

printf("%3c",str1);

n++;

}

}

if(n==0)

printf("两个字符串没有交集\n");

return 0;

}

5、打印出以下的杨辉三角形,打印的行数从键盘输入。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

# include void main() {

int n,i,j,a[20][20];

printf("请输入打印的行数:"); scanf("%d",&n); for(i=1;i

for(i=3;i

}

6、找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。如果没

有则输出提示信息:该二维数组无鞍点。

# include void main () { int

a[3][4],i,j,k,max,min,maxj,mini,flag=0;

for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) { max=a[i][0]; for(j=1;j<4;j++) if(a[i][j]>max) { max=a[i][j]; maxj=j; } min=a[i][maxj]; for(k=0;k<3;k++)

if(a[k][maxj]

printf("%d\n",a[k][maxj]); flag=1; } } if(flag==0) printf("该二维数组无鞍点\n");

}

7、从键盘输入任意两个数,利用函数分别求其最大公约数和最小公倍数。用主函数调用这 两个函数并输出结果。 #include int zuidagongyue(int x,int y) { int i,change; if(x>y)

{ change=y; y=x;

x=change; } for(i=x;i>=1;i--) if(x%i==0&&y%i==0) break; return i; } void main() { int a,b,c,d; printf("请输入两个数:\n"); scanf("%d%d",&a,&b); d=zuidagongyue(a,b); c=a*b/d;

printf("最大公约数

为%d\n",zuidagongyue(a,b)); printf("最小公倍数为%d\n",c); }

8、求方程 的根。用三个函数分别求出当 大于零、等于零和小于零

的根。方程的系数 a,b,c 从键盘输入。

#include #include float p,q;

void m(int a,int b,int c,float d) {

p=(-b+sqrt(d))/(2*a); q=(-b-sqrt(d))/(2*a);

printf("x1=%.3f\n x2=%.3f",p,q); } void f(int a,int b,int c,float d) {

p=-b/(2*a); printf("x1=x2=%.3f\n",p); } void j(int a,int b,int c,float d) { printf("无实根\n"); }

int main() { int a,b,c; float d; printf("Input A B C\n"); scanf("%d%d%d",&a,&b,&c); d=b*b-4.0*a*c; if(d>0) { m(a,b,c,d); }

else if(d==0) {

f(a,b,c,d); } else {

j(a,b,c,d); }

printf("\n"); return 0; }

9、输入 N 个学生的 4 门成绩,分别用函数实现下列功能:①计算每个学生的平均分;②计算每门课的平均分;③找出所有成绩中最高的分数所对应的学生和课程。

#include

void input(float a[10][5],int n,int m) {

int i,j;

for(i=0;i

{

printf("输入第%d个学生%d门课的成绩:",i+1,m);

for(j=0;j<4;j++)

scanf("%f",&a[i][j]);

}

}

void aver_stu(float a[10][5],int n,int m)

{

int i,j;

float sum;

for(i=0;i

{

sum=0;

for(j=0;j

sum+=a[i][j];

printf("第%d个学生的成绩为:",i+1);

for(j=0;j<4;j++)

printf("%6.2f",a[i][j]);

printf("平均分

为:%6.2f\n",sum/4);

}

}

void aver_cour(float a[10][5],int n,int m)

{

int i,j;

float sum;

for(i=0;i<4;i++)

{

sum=0;

for(j=0;j

sum+=a[j][i];

printf("第%d门课的平均成绩为:%6.2f\n",i+1,sum/n);

}

}

void highest(float a[10][5],int n,int m) {

int i,j,flag1,flag2;

float max=0;

for(i=0;i

{

for(j=0;j<4;j++)

{

if(max

{

max=a[i][j];

flag1=i;

flag2=j;

}

}

}

printf("最高分对应的是学生:%d

课程:%d\n",flag1+1,flag2+1);

}

void main()

{

int m,n;

float a[10][5];

printf("输入学生数n,和课程数

m");

scanf("%d%d",&n,&m);

input(a,n,m);

aver_stu(a,n,m);

aver_cour(a,n,m);

highest(a,n,m);

}

10、用函数的方式编程求:一球从100 米高度自由落下,每次落地后反跳回原高度的一半;

再落下,求它在第10 次落地时,共经过多少米?第10 次反弹多高?

#include

void main()

{

float s=100.0 ,h=s/2;

int n;

for(n=2;n<=10;n++)

{

s=s+h;

h=h/2;

}

printf("经过总路程为%f m \n",s);

printf("第十次反弹高度为%f m

\n",h);

}

三、问题讨论

数组和函数对于解决问题具有很好的好处,可以使问题简单化,清晰化,要加强对这种方法的使用,学会灵活运用。

实验四指针和文件

学号2013212360 姓名李梦雅班级0841302

第14周星期四第5,6,7,8节实验日期2014年5月29日

一、实验目的

1、掌握地址和指针的概念,能熟练定义和使用各种类型的指针变量和指

针运算。

2、能运用指针解决实际的编程问题。

3、了解并熟悉文件的打开、关闭和编写。

二、实验内容

例1、输入并调试运行以下程序,分析运行结果。

# include

void main()

{

char a[10]="123456789",*p;

int **k,*j,i=100;

p=&a[4];

j=&i;

k=&j;

puts(p);

printf("%d\n",**k);

}

例2、从键盘输入n 个数据,要求按逆序输出。

# include

# define N 10

void main ()

{

int a[N],*p;

int i,n;

printf("请输入数据的个数n(小于%d):\n",N);

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

printf("输入的原始数据为:\n");

for(i=0;i

printf("%d",a[i]);

printf("\n逆序输出的数据为:\n");

for(p=a+n-1;p>=a;p--)

printf("%d",*p);

}

例3、输入3 个字符串,长度按由小到大的顺序输出。

# include

# include

# define N 30

void main ()

{

void swap(char *s1,char *s2);

char str1[N],str2[N],str3[N];

printf("输入3个字符串:\n");

gets(str1);

gets(str2);

gets(str3);

printf("%d\n",strcmp(str1,str2));

if(strcmp(str1,str2)>0)

swap(str1,str2);

puts(str1);

puts(str2);

if(strcmp(str2,str3)>0)

swap(str2,str3);

if(strcmp(str1,str2)>0)

swap(str1,str2);

printf("排序后的字符串为:\n");

puts(str1);

puts(str2);

puts(str3);

}

void swap(char *p1,char *p2)

{

char p[N];

strcpy(p,p1);

strcpy(p1,p2);

strcpy(p2,p);

}

例4、将一个磁盘文件中的信息复制到另一个磁盘文件中。

# include

# include

void main()

{

FILE *in,*out;

char infile[10],outfile[10];

printf("Enter the infile name:\n");

scanf("%s",infile);

printf("Enter the outfile name:\n");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{

printf("cannot open

outfile\n");

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{

printf("cannot open

outfile\n");

exit(0);

}

while(!feof(in))fputc(fgetc(in),out);

fclose(in);

fclose(out);

}

例5、在磁盘文件上存有10 个学生的数据。要求将1、3 、5、7、9 个学生数据输入计算机,并在屏幕上显示出来。

# include

# include

struct student_type

{

char name[10];

int num;

int age;

char sex;

}

stud[10];

void main()

{

FILE *fp;

int i;

if((fp==fopen("stud_dat","rb"))==N

ULL)

{

printf("cannot open outfile \n");

sxit(0);

}

for (i=0;i<10;i+=2)

{

fseek(fp,i*sizeof(struct

student_type),0);

fread(&stud[i],sizeof(struct

student_type),1,fp);

printf("%s%d%d%c\n",stud[i].name,

stud[i].num,stud[i].age,stud[i].sex);

}

fclose(fp);

}

练习题

1、利用指针编程实现:删除一个字符串中的所有空格。

# include

void main()

{

char t[100];

char *p=t,*s=t;

printf("输入字符串:");

gets(t);

while(*p)

{

if(*p!=32)

*s++=*p;

p++;

}

*s='\0';

puts(t);

}

2、利用指针编程。从键盘任意输入一字符串,内有数字和非数字字符,如:

a123x4567 1789? 302tab865,将其中连续的数字作为一个整数,依次存放到一数组a 中。例如:123 放在a[0],4567 放在a[1]中……统计共有多少个整数,并输出这些数。

# include

int GetNumber(char *s,int a[])

{

int i,f,c;

for(i=f=c=0;s[i];i++)

if(s[i]>='0'&&s[i]<='9')

if(f)

a[c-1]=a[c-1]*10+s[i]-'0';

else

{

f=1;

a[c++]=s[i]-'0';

}

else

f=0;

return c;

}

void main()

{

int i,c,a[50];

char s[100];

printf("请输入字符串:");

gets(s);

c=GetNumber(s,a);

if(c)

{

printf("输入的字符串中有%d 组数字\n",c);

for (i=0;i

printf("%d\n",a[i]);

}

else

printf("输入的字符串中没有数字\n");

}

3 、用指针数组编程实现:输入月份号,输出该月的英文月名。如:输入“3”,则输出“March”。

# include

void main()

{

int n;

char

*name[12]={"January","February","

March","April","May","June","July","

August","September","October","No

vember","December"};

C语言程序设计实验报告参考答案

长沙理工大学C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: Thedressislong Theshoesarebig Thetrousersareblack 答案: #include main() { printf("Thedressislong\n"); printf("Theshoesarebig\n"); printf("Thetrousersareblack\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序:a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { inta,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x);

printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4.设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { inta,b,c; a=0; b=-10; c=(a>b)?b:a; printf("c=%d\n",c); }

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

网络程序设计实验报告-Winsock编程接口实验

网络程序设计 实验报告 实验名称: Winsock编程接口实验 实验类型:____验证型实验_____ __ 指导教师:______________________ 专业班级:_____________________ 姓名:_______________________ 学号:_____________________ 电子邮件:____________ 实验地点:______ _______ 实验日期2013 年 3 月29 日 实验成绩:__________________________

一、实验目的 ●掌握Winsock的启动和初始化; ●掌握gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的使用。 二、实验设计 由实验内容可以知道: 1、编写程序能同时实现对多个域名的解析。比如在控制台输入:getip https://www.doczj.com/doc/b218708077.html, https://www.doczj.com/doc/b218708077.html,,能输出https://www.doczj.com/doc/b218708077.html,和https://www.doczj.com/doc/b218708077.html,对应的IP地址列表。 2、编写程序获取并输出本地主机的所有适配器的IP地址,子网掩码,默认网关,MAC 地址。 首先要了解一些基本的知识gethostname(),gethostbyname(),GetAdaptersInfo()等信息查询函数的基本知识gethostbyname()返回对应于给定主机名的包含主机名字和地址信息的hostent结构指针。结构的声明与gethostaddr()中一致。 之后要根据内容画出函数流程图

三、实验过程(包含实验结果) 1.在实验过程中调用GetAdaptersInfo()时,出现了undeclared identifier的报错,原因是没有包含其头文件,之后进行一些修改解决了问题. 2.实验结果 3.选择查看本机信息 四、讨论与分析 1.Winsock初始化的作用是什么? 答:使用winsock初始化可加载winsock编程的动态链接库。

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

C语言程序设计实验报告(数组)

C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。

3算法描述流程图

4源程序 #include #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

网络编程实验报告

实验一TCP Socket API程序设计 一、预备知识 1.网络编程基本概念 网络上的计算机间的通讯,实质上是网络中不同主机上的程序之间的通讯。在互联网中使用IP地址来标识不同的主机,在网络协议中使用端口号来标识主机上不同进程,即使用(IP地址,端口号)二元组。 套接字(Socket)用于描述IP地址和端口,是一个通信链的句柄,通信时一个网络程序将要传输的一段信息写入它所在主机的Socket中,该Socket通过与网络接口卡相连的传输介质将这段信息发送到另一台主机的Socket中,以供其他程序使用。 图1-1 TCP通信流程 2.TCP通信流程 TCP程序是面向连接的,程序运行后,服务器一直处于监听状态,客户端与

服务器通信之前必须首先发起连接请求,由服务器接收请求并在双方之间建立连接后才可以互相通信。 二、实验目的 1.了解Winsock API编程原理; 2.掌握TCP Socket程序的编写; 3.了解C/S模式的特点; 4.学会解决实验中遇到的问题。 三、实验任务 使用Winsock API相关类实现TCP Socket通信程序,并能成功运行。 四、实验环境及工具 1. Windows2000/XP/7 2. Visual C++开发平台 3. Visual Studio2010 五、实验内容和步骤 参照《Visual C++网络编程教程》书中81页,TCP Socket API程序设计。 连接: void CChatClientDlg::OnConnect() { WSADATA wsd; //WSADATA结构 WSAStartup(MAKEWORD(2,2),&wsd); //加载协议,使用Winsock 2.2版 m_client = socket(AF_INET,SOCK_STREAM,0); //创建流式套接字 //服务器地址 sockaddr_in serveraddr; UpdateData(); if(ServerIP.IsBlank()) { AfxMessageBox("请指定服务器IP!"); return; } if(sPort.IsEmpty()) { AfxMessageBox("请指定端口!"); return; }

C程序设计实验报告

实验1 C程序运行环境、数据类型、运算符和表达式 一、实验目的 1. 掌握Turbo C集成环境的进入与退出、Turbo C集成环境各种窗口的切换,了解Turbo C集成环境的设置。 2. 掌握C语言源程序的建立、编辑、修改、保存及编译和运行等操作。 3. 学会使用C语言的基本运算符(主要是算术运算符、赋值运算符)及其表达式。 4. 掌握C语言源程序的结构特点与书写规范。 二、实验要求 1. 根据题目要求,进行各种程序测试与验证,并记录结果。 2. 上机调试程序。按各个程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根 据这些信息找到程序中的错误所在,然后修改程序,直至正确。 3. 详细记录数据的输入、输出信息,按要求写出实验报告。 三、实验内容 1. 开机;进入Turbo C集成工作环境,了解Turbo C集成工作环境及其菜单的使用,输入如下C语言源程序,并以exl.C存盘。 / *ex1.c* / #include main() { printf("Hello!\n"); printf("This is C program!\n"); } 试编译、连接、运行该程序,并按Alt+F5查看运行结果。 运行结果是: 2. 输入并调试运行以下程序,查看运行结果 (由此结果可以了解到在实验用的微型机上,几种数据类型所占的字节数)。 main() { printf("char\t%d bytes\n",sizeof(char)); printf("short\t%d bytes\n",sizeof(short)); printf("int\t%d bytes\n",sizeof(int)); printf("long\t%d bytes\n",sizeof(long)); printf("float\t%d bytes\n",sizeof(float)); printf("double\t%d bytes\n",sizeof(double)); } 运行结果是: 3. 输入并调试运行以下程序。 main() {int i,j,m,n; i=8;j=10;

C语言程序设计基础实验报告6【VIP专享】

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

C+程序设计实验报告-2013

C++程序设计 实验报告 专业计算机科学与技术班级 ____________ 学号 ____________ 姓名 ____________ 指导教师 __许加兵_ 信息与电子工程学院2013年9月-12月

C++程序设计实验报告 专业__________班级__________学号__________姓名__________ 成绩____________ 指导教师____________ 日期____________ 实验1 C++集成开发环境与C++函数程序设计 一、实验目的 1、了解和使用Visual Studio 2010的C++集成开发环境; 2、熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、学会完整的C++程序开发过程; 4、学习并掌握C++函数程序设计; 二、实验内容 1、安装、了解和使用Visual Studio 2010的C++集成开发环境; 2、通过以下的C++函数程序设计,熟悉Visual Studio 2010环境的基本命令、功能键和常用的菜单命令; 3、通过以下的C++函数程序设计,学会完整的C++程序开发过程; 4、完成以下的C++函数程序设计和调试: 1)编写一个函数print(),将一个整型向量输出到cout。此函数接受两个参数:一个字符串(用于“标记”输出)和一个向量。 2) 编写一个函数,接受一个vector 参数,返回一个vector ,其每个元素值是对应字符串的长度。此函数还找出最长和最短的字符串,以及字典序第一个和最后一个字符串。 三、简要说明C++开发环境安装和配置的过程

C程序设计上实验报告(完整版)

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017年3月6号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C程序的运行环境和运行C程序的方法 二、实验目的:了解在C编译系统上如何编辑、编译、连接和运行一个C 程序 三、实验内容: (1). 输入并运行一个简单的C程序。 (2). 设计程序,对给定的两个数求和。 (3). 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了1和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf()和scanf()函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar和putchar输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

算法程序设计实验报告

程序设计》课程设计 姓名:王 学号:20100034 班级:软件工程00 班 指导教师:王会青 成绩: 2010年 6 月 实验一.构造可以使n 个城市连接的最小生成树 专业:__软件工程___ 班级:__软件姓名:_王___ 学号:_20100034 完成日期:_2010/6/26 ________ 一、【问题描述】给定一个地区的n 个城市间的距离网,用Prim 算法或Kruskal 算法建立最小生成树,并计算得到的最小生成树的代价。 1 城市间的道路网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道

路,则将相应边的权值设为自己定义的无穷大值。 2 显示出城市间道路网的邻接矩阵。 3 最小生成树中包括的边及其权值,并显示得到的最小生成树的总代价。 4 输入城市数、道路数→输入城市名→输入道路信息→执行Kruskal 算法→执行Prim 算法→输出最小生成树 二、【问题分析】 1. 抽象数据类型结构体数组的定义: #ifnd ef ADJACENCYMATRIXED// 防止该头文件被重复引用 #define ADJACENCYMATRIXED // 而引起的数据重复定义 #define INFINITY 32767 // 最大值∞ #define MAX_VERTEX_NUM 20 // 最大顶点个数 typedef int VRType; // 权值,即边的值 typedef char InfoType; // 附加信息的类型,后面使用时会定义成一个指针 typedef char VertexType[MAX_VERTEX_NUM]; // 顶点类型 typedef enum {DG=1, DN, UDG, UDN} GraphKind; //{ 有向图,有向网,无向图,无向网} typedef struct ArcCell { VRType adj; //VRType 是顶点关系类型。对无权图,用1 或0 表示相邻否;对带权图,则为权值类型。 InfoType*info; // 该弧关系信息的指针

C++程序设计实验报告5

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

c程序设计实验报告.docx

. C++ 程序设计 实 验 报 告 : 班级: 学号: 指导教师:

. 实验一VC6.0 环境入门与简单程序设计 一、实验目的: 1、熟悉 VC++6.0 开了环境并编写简单的C++ 程序。 3、使用 C++ 语言编写简单的输入输出程序。 4、使用 VC++6.0 的 DEBUG 调试功能:单步执行、设置断点、观察变量值。 二、实验内容: 1、使用 VC++ 建立一个标准C++ 程序,编译、运行如下程序: #include Int main() { Cout<< ”Hello World!\n”; Cout<< ”Welcome to C++!\n”; } 2、编程计算图形的面积。程序可计算圆形、长方形、正方形等的面积,运行时首先提 示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来。 #include using namespace std; void circle_area(); void rectangle_area(); void square_area(); int main()

. { int i; while(1) { cout<<" 请输入图形类型(1:圆形; 2:长方形; 3:正方形; 4:退出。): "; cin>>i; switch(i) { case 1:circle_area();break; case 2:rectangle_area();break; case 3:square_area();break; case 4:return 0; default:cout<<"输入错误!\n"; } } } void circle_area() { float r,s; cout<<" 输入圆的半径:"; cin>>r; s=3.14*r*r; cout<<" 该圆的面积是:"<>a>>b; s=a*b; cout<<" 该长方形的面积是:"<>a; s=a*a; cout<<" 该正方形的面积是:"<

C#程序设计实验报告

学生实验报告 (理工类) 课程名称: C#程序设计专业班级:M11计算机科学与技术(专转本)学生学号: XXXXXXXX 学生姓名: XXX 所属院部:信息技术学院指导教师: XXX 2012 — 2013学年第 1 学期 金陵科技学院教务处制

实验报告书写要求 实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,标题采用四号黑体,正文采用小四号宋体,单倍行距。纸张一律采用A4的纸张。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。 实验报告装订要求 实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

实验项目名称:C#基础编程实验学时: 6 同组学生姓名:实验地点: A205 实验日期: 9月17日-9月24日实验成绩: 批改教师:批改时间:

实验1 C#基础编程 一、实验目的 1、熟悉Visual Studio .NET开发环境; 2、掌握C#应用程序的基本操作过程; 3、掌握C#的数据类型,运算符以及表达式的使用; 4、掌握分支和循环语句的使用方法; 5、掌握一维数组,二维数组及数组型数组的使用。 二、实验要求 (1)编写程序要规范、正确,上机调试过程和结果要有记录; (2)做完实验后给出本实验的实验报告。 三、实验设备、环境 安装有Visual Studio .NET软件。 四、实验步骤 1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。 五、实验内容 1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。using System; using System.Collections.Generic; using System.Text; namespace Test1_1 { class Program { static void Main(string[] args) { Console.WriteLine("1121412016 张明星!"); Console.ReadLine(); } } } 2、编写一个简单的Windows应用程序,在标签中显示你的姓名。 Form窗体的代码: using System; using System.Collections.Generic;

网络编程实验报告

网络编程技术实验报告 一实验目的: 网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络编程语言。本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JA V A中的基本方法和技术,能够熟练使用JA V A设计、编写程序,特别是基于TCP/IP的Socket 编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。通过实验,提高学生使用Java语言程序设计开发的能力,提高应用面向对象技术分析和解决实际问题的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。 二实验要求 要求学生熟悉JDK中的主要内容,掌握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法和技术,能够熟练使用JAVA设计、编写程序,特别是基于TCP/IP的Socket编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。要注意培养学生良好的编程习惯,自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源程序、实验结果及分析。

. 实验一java基本语法 实验目的: 了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 实验要求: 1、编写一个声明Java不同数据类型变量的程序。 2、编写使用不同选择结构的程序。 3、编写使用不同循环结构结构的程序。 实验内容: 1、编写一个声明Java不同数据类型变量的程序。 public class DataTypes { public static void main(String args[]) { byte b=127; short s=32767; int i=2147483647; long l=9223372036l;//为什么long表示的数比Int还小? char c='c'; float f=1.23F; double d=0.9E-3; boolean bool=true; System.out.println(" b="+b); System.out.println(" s="+s); System.out.println(" i="+i); System.out.println(" l="+l); System.out.println(" c="+c); System.out.println(" f="+f); System.out.println(" d="+d); System.out.println(" bool="+bool); }

相关主题
文本预览
相关文档 最新文档