C语言程序设计实验报告

实验一

1.

#include”stdio.h”

main()

{

Int a,b,c,s;

a=5;b=4;c=6;

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

printf(“a=%d,b=%d,c=%d\n,s=%d”,a,b,c,s);

}

已知a=5,b=4,c=6,求出s并换行

2.

#include”stdio.h”

main()

{

int r,s;

scanf(“%d”,&r);

s=r*r;

printf(“s=%d”,s);

}

输入一个数字求他的平方

3.

include<stdio.h>

main()

{

printf(“  *\n”);

printf(“***\n”);

printf(“  *\n”);

}

4.

#include<stdio.h>

main()

int v;

int a,b,c;

a=3;b=3;c=5;

v=a*b*c;

printf(“v=%d”,v);

实验二

1.(1)

main()

{

char s1=’3’,s2=’4’,s3=’5’;

int c1=101,c2=102;

printf(“3%d\t4%c\t5%c\n”,s1,s2,s3);

printf(“s1=%d\ts2=%d\ts3=%d\n”,s1,s2,s3);

printf(“c1=%d\t~%c”,c1,c1);

printf(“c2=%dt~%c”,c2.c2);

}

1.(2)

main()

{

float x=8.3,y=4.2,s;

int a=7;

s=x+a%5(int)(x-y)%2/3;

printf(“s=%f”,s);

}

运行结果为8.300000

%是求余数

先运算x-y,把结果转换为int型的有利于四则运算。

1(3)

main()

{

int I,j,p,q;

i=3;j=6;

p=i++;q=--j;

printf(“%d,%d,%d,%d”,i,j,p,q);

p=i--++3;q=++j-4;

printf(“%d,%d,%d,%d”,i,j,p,q);

}

运行结果为:4,5,3,5,3,4,5,7,2

1(4)

main()

{

int m=15,n=9,s;

m*=3+2;

printf(“%d”,m);

n+=n-=n*=n;

printf(“%d”,n);

printf(“%d\n”,(s=6*5,m+n+s));

printf(“%d\n”,s);

}

运行结果为75,0,105,30

2.(1)错误改正

(这里只给出正确的源程序)

#include<stdio.h>

#define MM 40

main()

{

int a=3,b=6,t;

t=MM/(3+6);

printf(“%d%d”,t,MM);

}

原来printf语句打成了print,printf语句中少了一个%d.

2(2)

#include<stdio.h>

main()

{

int m;

double x;

scanf(“%d”,&m);

x=3.14*m*m;

printf(“%f”,x);

}

注意分号,%f转义

2(3)

main()

{

int m=8,n=5;

m*=m-n;

printf(“%d”,m);

m=m+1;n=n-1;s=m+n;

printf(“%d%d%d”,m,n,s);

}

3.将两个数a,b进行交换。

main()

{

Int a=9,b=5;

a+=b;

b=a-b;

a-=b;

printf(“%d%d”,a,b);

}

4.输入a,b,c三个变量,计算数学公式(a*b)/c

main()

{

int a,b,d;

float s,c:

scanf(“%d%d%f”,&a,&b,&c);

d=a*b;

c=d/c;

printf(“%f”,s);

}

输入1 6 2.0

输出3.000000

实验三

1.(1)

main()

{

int m=345,t;

float n=2.56;

t=2.56*100;

printf(“m=%d,n*100=%d\n”,m,t);

}

1(2)

main()

{

int a,b,c,s,v;

scanf(“%d%d%d”,&a,&b,&c);

s=a*b;

v=a*b*c;

printf(“%d%d%d”,a,b,c);

printf(“s=%d,v=%d\n”,s,v);

}

2(1)

填入要求的语句

main()

{

int m,n;

float x=3.5,y=6.2;

scanf(“%d,%d”,&m,&n);

printf(“%6d,%6d”.,m,n);

/*每个数的输出宽度为6,两个数之间逗号建个。*/

Printf(“x=%7.2f,y=%7.2”,x,y);

/*个数的输出宽度7,小数位2*/

}

2(2)

要求运行时必须按如下格式输入数据:

A=4,b=8

4.23,5.7

234

567

main()

{

int a,b;

long m,n;

float p,q;

scanf(“a=%d,b=%d\n%f,%f”,&a.&b,&p,&q);

scanf(“%ld”,&m);

scanf(“%ld”,&n);

printf(“a=%d,b=%d\n,m=%ld,n=%ld\n”,a,b,m,n);

printf(“p=%f,q=%f\n”,p,q);

}

3

main()

{

Int i,j,k,ss,m=1,n=1;

scanf(“%d%d”,&I,&j);

/*查看变量i,j取值,读入数据是否正确*/

m+=i++;

n*=--j;

ss=(k=m+,n-5,k+n);

printf(“%d”,ss);

}

4.编写程序用getchar 读入c1,c2,然后分别用putchar函数和printf函数输出这两个字符。

#include<stdio.h>

main()

{

char c1,c2;

c1=getchar();c2=getchar();

putchar(c1);putchar(c2);

printf(“c1=%c,c2=%c,c1,c2);

printf(“%d.%d\n”,c1,c2);

}

5.编写程序。把790分钟转换为小时和分钟表示,然后进行输出。

#include<stio.h>

main()

int a=790,b,c;

b=790/60;

c=790%60;

printf(“%d小时%分钟“,b,c);

}

6.编写程序输入a,b,c三个数,然后i交换他们的取值,把a中的原来数给b,把b中的数给c,把c中的数给a.

#include<stdio.h>

main()

int a,b,c,d;

scanf(“%d%d%d”,&a,&b,&c);

d=a;

a=c;

c=b;

b=d;

printf(“%d,%d,%d\n”,a,b,c);

}

7.编写程序,输入一个double型的数,使得该数保留小数点后两位,对第三位小数进行四舍五入

#include<stdio.h>’

main()

{

double a;

scanf(“%lf”,&a);

printf(“%.2f\n”,a);

}

实验四

1.

a. 错误原因分析:Switch分号错误

switch(a*a+b*b)

     {

     case 3:

     case 1:y=a+b;break;

     case 0:y=b-a;break;

     }

b. 错误原因分析:switch语句使用错误,后跟括号。Default放在后边。

switch (a)

     { case 10:y=a-b;break;

       case 11:x=a*b;break; default:x=a+b;}

c. 错误原因分析:没有输出语句。

     switch(a+b)

     {case 10:x=a+b;break;

     case 11:y=a-b;break;

     }

2.(1)

main ( )

      { int  x , y ;

       scanf ( “ %d ” , &x ) ;

       if (x>-5&&x<0)      y = x ;

       if (x==0)            y = x – 1 ;

       if (x>0&&x<10)      y = x + 1 ;

       printf ( “ %d” , y ) ;

      }

2(2)

main ( )

     ( int  x , y ;

      scanf ( “ %d ” , &x ) ;

      if ( x > -5 ) && ( x < 0) ) y=x;

      else  if (x==0 y = x-1 ;

      else if(x>0&&x<10) y = x + 1 ;

      printf ( “%d” , y ) ;

     }

3

main ( )

 { int  a , M ;

  scanf ( “ %d ” , &a ) ;

  M = a>0 ? a  : - a;

  printf ( “abs(a) = %d ” , M ) ;

}

4.

main()

{

Int c,t,m;

Printf(“input the number of coat and trousers your want buy;\n”)

scanf(“%d%d”,&c,&t);

if(c==t)

if(c>=50) m=c*80;

else m=c*90;

else

if(c>t)

if(t>=50) m=t*80+(c-t)*60;

else 90*t+(c-t)*60;

else

if(c>=50) 80*t+(t-c)*45;

else m=c*90+(t-c)*45;

printf(“%d”,m);

}

5.

#include<stdio.h>

main()

{

int a,b,c;

scanf(“%d%d%d”,&a,&b,&c);

if((a+b)&&(a-b)<c)

if((a!=c)&&(b!=c)&&(b!=c))

printf(“此三角形为不等边三角形”);

else if ((a==b)&&(b==c)&&(c==a))

printf(“此三角形为等边三角形”);

else printf(“此三角形为等腰三角形”);

else printf(“由a,b,c不能构成三角形”);

}

6.

#include”stdio.h”

main()

{

long n;

scanf(“%ld”,&a);

if(a%5==0)

if(a%7==0)

printf(“yes\n|”);

else printf(“no\n”);

}

实验五

2.

3.

4.

5.

#include<stdio.h>

{

int n,i,;

float x;

e=1.;i=1;x=1.0;n=1

while (e<0.000001)

{

x-x/i;e+=x;i++;n++;

}

printf(“e=%f,%d”,e,n);

}

6.

 

第二篇:《C语言程序设计》实验报告册

《C语言程序设计》

实验报告册

编写:陈美成

专业:              

班级:              

学号:              

姓名:              

教师:              

贵州航天职业技术学院


目     录

实验一、熟悉TC开发环境(2学时)

实验二、数据类型、运算符与表达式(2学时)

实验三、分支结构程序设计(2学时)

实验四、循环结构程序设计(2学时)

实验五、数组应用(2学时)

实验六、函数应用(2学时)

实验七、指针应用(4学时)

实验八、结构,联合和链表(2学时)

实验九、文件操作(2学时)


实验一:熟悉TC开发环境(2学时)

实验日期:           日               实验成绩:       

一、  目的与要求:

1、      了解Turbo C集成开发环境的进入与退出

2、      了解Turbo C集成开发环境各种窗口的切换

3、      了解Turbo C集成开发环境的设置

4、      掌握C语言源程序的建立、编辑、修改、保存及编译和运行

5、      掌握C语言源程序的结构特点与书写规范。

二、  内容与步骤:

编写一个程序解鸡兔同笼问题:已知鸡兔总数为A,鸡兔腿总数为B,计算出鸡兔各多少?

三、  实验分析:

 


指导教师签名:          

实验二:数据类型、运算符与表达式(2学时)

实验日期:           日               实验成绩:         

一、    目的与要求:

1、 掌握C语言各种基本数据类型的定义方法。

2、 掌握C语言中常用运算符的功能和使用方法。

3、 初步了解运算符的优先级别和结合律。

二、    实验内容:

1、 编程实现求平面上任意两点之间的距离。

2、 输入两个正整数并存入A,B中,并由A,B两个数生成新的数C(将A的低字节作为C的高字节,将B的高字节作为C的低字节),以十六进制输出A,B,C的值。

三、      实验分析:(对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。)

                          指导教师签名:            

实验三:分支结构程序设计(2学时)

实验日期:           日               实验成绩:         

一、目的与要求:

1、熟练掌握输入、输出函数。

2、掌握分支语句的格式和功能。

4、 掌握分支结构的程序设计方法。

二、实验内容:

1、 从键盘输入一金额(以元为单位),然后显示支付金额的各种面额人民币的数量。(要求画出流程图)

2、 编程将一个百分制成绩转换成等级制成绩。具体要求如下:

(1)   对应关系如下:

(2)   用键盘输入百分制成绩,输入前要有提示

(3)   要能判断输入数据的合理性,对于不合理的数据应输出错误信息

(4)   输出结果中应包含百分制成绩和成绩等级。

三、实验分析:

1、画出第1题的流程图

2、对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。

 


指导教师签名:             

实验四:循环结构程序设计(2学时)

实验日期:           日               实验成绩:         

一、目的与要求:

1、熟练掌握三种常用的循环结构的格式和功能。2、掌握穷举算法和迭代算法的程序设计。

3、掌握Break和Continue语句的功能。

二、实验内容:

1、 编程计算掷1000次骰子中出现各种点数的概率。(rand()产生0~215-1之间的随机数,random(int num)产生0~num-1之间的随机数。)

2、编程求解百马百担问题:有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?

三、实验分析:(对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。)

                         指导教师签名:              

实验五:数组应用(2学时)

实验日期:           日               实验成绩:         

一、目的与要求:

1、熟练掌握数组的定义、初始化和输入输出方法。2、掌握字符数组和字符串的关系。

3、掌握字符串函数的使用。   4、加深对数组的理解,培养解决实际问题的能力。

二、实验内容:

1、编写一个程序输入一行字符,统计其中有多少个单词。单词之间用一个或多个空格分隔开。

2、输入一个4×5矩阵各个元素的值,计算四周元素值之和并输出。

3、对20个整数进行升序排序,并输出排序结果。

三、实验分析:(对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。)

 


                           指导教师签名:             

实验六:函数应用(2学时)

实验日期:           日               实验成绩:         

一、目的与要求:

1、熟练掌握C语言函数的定义和调用的形式及规则。

2、掌握实参与形参的对应关系,“值传递”与“地址传递”的方式与区别。

3、掌握函数的嵌套调用和递归调用的设计方法。

4、掌握利用C语言图形函数完成作图的方法。

二、实验内容:

1、编程实现将一个十六进制数转换成与之等价的十进制数。要求在主函数里负责收集字符,并判别它们是否为十六进制字符,另编一函数负责转换工作。

2、某电视机生产厂20##年各月生产情况如下:编程画出该生产厂20##年各月生产情况的柱状图。

三、实验分析:(对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。)

                          指导教师签名:            

实验七:指针应用(4学时)

实验日期:           日               实验成绩:         

一、目的与要求:

1、掌握指针的概念以及定义方法,理解地址、指针和指针变量之间的区别与联系。

2、掌握如何使用指针来处理与数组相关的问题。

3、掌握如何使用指针来处理与字符串有关的问题。

4、掌握如何使用指向函数的指针变量。

二、实验内容:

1、编写一个程序,接受用户输入的一行字符,以回车键结束,分别统计出其中大写字母、小写字母、空格、数字和其它字符的个数。

2、编程求解约瑟夫问题:有N个小孩围成一个圆圈,给他们从1开始依次编号。现指定从第W个小孩开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到第S个出列,如此重复下去,直到所有小孩都出列,求小孩出列的顺序。

3、输入一个字符串,内有数字和非数字字符,如a123x456 17960?302taB5876将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]…统计共有多少个整数,并输出这些数。

三、实验分析:(对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。)

 


                       指导教师签名:           

实验八:结构体、联合体和链表(2学时)

实验日期:           日               实验成绩:         

一、目的与要求:

1、掌握结构体变量的定义和引用方法。

2、掌握结构体变量与指向结构体的指针作为函数参数实现函数的调用。

3、加深了解链表的概念,学会对链表进行操作。

二、实验内容:

1、已有a、b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号升序排列。

2、编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num、name、score[3],用主函数输入这些记录,用print函数输出这些记录。

三、实验分析:(对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。)

 

                            指导教师签名:             

实验九:文件操作(2学时)

实验日期:           日               实验成绩:         

一、目的与要求:

1、掌握文件、缓冲文件系统、文件指针的概念。2、学会使用文件打开、关闭、读、写等文件操作函数。

3、了解用缓冲文件系统对文件进行操作。

二、实验内容:

1、有一磁盘文件“emploee”,内存放职工的数据。每个职工的数据包括职工姓名、职工号、性别、年龄、住址、工资、健康状况、文化程度。今要求将职工姓名、工资的信息单独抽出来另建一个简明的职工工资文件。

2、有两个磁盘文件“A”和“B”,各存放一行字母,今要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C”中去。

三、实验分析:(对各题运行结果进行分析,如果程序未能调试通过,应分析出原因。)

 


指导教师签名:            

相关推荐