C语言程序设计实习报告

C语言程序设计实习报告

简介

语言实践心得体会范文在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。 由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理。简单界面程序。高级界面程序。程序的添加修改。用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。 上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的统一上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面: 1.加深对课堂讲授内容的理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。 学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。 通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去掩盖程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。

基本步骤

步骤1.使用默认的用户名administrator,登录到windows xp系统,密码123456。
步骤2.打开Visual C++软件新建文件,点击文件-新建-在弹出的窗口中点击新建,选择C++Source File建立源文件,选择C++ Source,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择C/C++ Header File,(适用在多文件工程中使用)命名,文件名称,点击确定,之后

在右边的文件名出填写文件的名词,在位置处填写一个路径,这样编写程序后会在相应的位置声称源代码,点击确定,会弹出一个窗口,在窗口中即可编译程序。

1.C语言的概述

代码展示

#include <stido.h>
#include <math.h>
int main(void)
{
int a = 1;
int b = 2;
int c = 3;

float delta;
float x1;
float x2;

delta = b*b - 4*a*c;

if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2= (-b - sqrt(delta)) / (2 * a);

printf("该一元二次方程有两个解,x1=%f,x2=%f
", x1, x2);
}
else if (delta = 0)
{
	x1 = -b / (2 * a);
	x2 = x1;
	printf("该一元二次方程有唯一一个解,x1=x2=%f
", x1);
}

else
{
	printf("无解
");
}
return 0;
}

程序截图

2.算法

代码展示

# include <stdio.h>

int main(void)
{
	int i,j;
	for(i = 100;i <= 300;i++)
	{
		for(j = 2;j <= i;j++)
			if(i%j == 0)
				break;
			if(j ==i)
				printf("%-4d",i);
	}
	return 0;
}

程序截图

3.c语言预备计算机知识

代码展示

#include <stdio.h>
int main(void)
{
   int i=015;
   printf("%d
",i);
   return 0;
}

#include <stdio.h>
int main(void)
{
   float x=123.45e-2;
   printf("%f
",x);
   return 0;
}

程序截图

4.硬件之间的关系

代码展示

#include <stdio.h>

int main(void)
{
	int x=47;
	printf("%x
",x);
	printf("%x
",x);
	printf("%#x
",x);
	printf("%#x
",x);
	
	return 0;
}

程序截图

5.数据类型和变量

代码展示

# include <stdio.h>

int main(void)
{
	int x = 47;
	printf("%x
",x);
	printf("%x
",x);
	printf("%#x
",x);
	printf("%#x
",x);

	return 0;
}

程序截图

6.什么叫进制

代码展示

#include <stdio.h>
int powe(int n)
{
   int i;
   int s=1;
   for(i=1;i<=n;i++)
   {
      s=s*16;
   }
   return s;

}
void main()
{
  int m;
  int n;
  int i;
  int r;
  printf("请输入一个16进制数");
  scanf("%d",&m);
  n=0,i=0;
  while(m)
  {
      r=m%10;
	  n=n+r*powe(i);
	  m=m/10;
	  i++;
  }
  printf("16进制数%d对应的10进制数是%d
",m,n);
}

程序截图

7.代码的规范化

代码展示

  int main()
   {
   float a,b,c,t;
   scanf("%f,%f,%f",&a,&b,&c);
   if(a>b)
   {
   t=a; //借助变量t,实现变量a和变量b的互换值
   a=b;
   b=t;
   } //互换后,a小于或等于b
   if(a>c)
   {
   t=a; //借助变量,实现变量a和变量c的互换值
   a=c;
   c=t;
   } //互换后,a小于或等于c
   if(b>c) //还要
   {
   t=b; //借助变量t,实现变量b和变量c的互换值
   b=c;
   c=t;
   } //互换后,b小于或等于c
   printf("%5.2f,%5.2f,%5.2f
",a,b,c); //顺序输出a,b,c的值
   return 0;
   }

程序截图

8.不同数据类型之间的赋值问题
代码展示

# include <stdio.h>
# include <stdlib.h>

int main(int argc,char**argv)
{
	unsigned int right = 1;
	char left = -1;
	if(left < right)
		printf("%d<%d
",left,right);
	else if(left == right)
		printf("%d=%d
",left,right);
	else
		printf("%d>%d
",left,right);
	system("PAUSE");
	return 0;
}

程序截图

9.什么是ASCII
代码展示

#include <stdio.h>
int main(void)
{
    char ch='A';
	printf("%d",ch);
	return 0;

}

#include <stdio.h>
int main(void)
{
    char ch='a';
	printf("%d",ch);
	return 0;

}

#include <stdio.h>
int main(void)
{
    char ch='b';
	printf("%d",ch);
	return 0;

}

程序截图



10.基本的输入与输出
代码展示

#include <stdio.h>
#include <math.h>//程序中要调用求平方根函数sqrt
int main(void)
 { 
double a,b,c,disc,x1,x2,p,q; 
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
 p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
 x1=p+q;
 x2=p-q; 
printf("x1=%7.2f
 x2=%7.2f
",x1,x2); 
return 0;
}

程序截图

11.除法与取余运算符
代码展示

# include <stdio.h>
#include <stdlib.h>
int main(void)
{
	int a,b;
	float c;
	printf("input a integer number a=");
	scanf("%d",&a);
	printf("
input a integer number b=");
	scanf("%d",&b);
	printf("
input a floating number c=");
	scanf("%d",&c);
	printf("
the results: a/b=%d a/c=%f a(mod)b=%d
",a/b,a/c,a%b);
	system("pause");
	return 0;
}

程序截图

12.流程控制
代码展示

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a=3,b=2,c=1;
	system("cls");
	printf("[1]:%d,%d,%d
",a,b,c);
	{
	     int b=5;
         int c=12;
		 printf("[2]:%d,%d,%d
",a,b,c);

	}
	printf("[3]:%d,%d,%d
",a,b,c);
	getchar();
	return 0;

}

程序截图

13.if概述
代码展示

#include<stdio.h>
  int main()
  {
   int iSignal; //定义变量表示信号灯的状态
   printf("the Red Light is 0,the Green Light is 1
");//输出提示信息
   scanf("%d",&iSignal); //输入iSignal变量
   if(iSignal==1) //使用if语句进行判断
   {
       printf("the Light is green,cars can run
"); //判断结果为真是输出
   }
   return 0;
  }

程序截图

14.C语言常见误区
代码展示

# include<stdio.h>
int main()          //主函数main中
{
    int iNumber1=1;          //在第1个iNumber1定义位置
     printf("%d
",iNumber1); //输出变量值
    if(iNumber1>0)
    {
        int iNumber1=2;         //在第2个iNumber1定义位置
        printf("%d
",iNumber1);//输出变量值
        if(iNumber1>0)
        {
            int iNumber1=3;     //在第3个iNumber1定义位置
            printf("%d
",iNumber1);//输出变量值
         }
         printf("%d
",iNumber1);//输出变量值
     }
     printf("%d
",iNumber1);  //输出变量值
     return 0;
}

程序截图

15.循环概述
代码展示

#include <stdio.h>
int main()
{
    int iSum=0;
	int iNumber=1;
	while(iNumber<=100)
	{
       iSum=iSum+iNumber;
	   iNumber++;
	}
	printf("the result is: %d
",iSum);
	return 0;

}

程序截图

16.while循环
代码展示

#include<stdio.h>
int main()
{
  int i=1,sum=0;      //定义变量i的初始值为1,sum的初始值为0
  while(i<=100)      //当i>100,条件表达式i<=100的值为假,不执行循环体
  {             //循环体开始
   sum=sum+i;       //第一次累加后,sum的值为1
   i++;          //加完后,i的值加1,为下次累加做准备
   }                     //循环体结束
   printf("sum=%d
",sum);//输出1+2+3+...+100的累加和
   return 0;
}

程序截图

17.for和while的比较
代码展示

#include<stdio.h>
int main()
  {
    int f1=1,f2=1;
    int i;
    for (i=1;i<=20;i++)    //每个循环中输出2个月的数据,故循环20次即可
    {
      printf ("%12ld%12ld",f1,f2);  //输出已知的两个月的兔子数
      if (i%2==0)
      printf ("
");
      f1=f1+f2;     //计算出下个月的兔子数,并存放在f1中
      f2=f2+f1;     //计算出下两个月的兔子数,并存放在f2中
    }
    return 0;
  }

程序截图

18.do...while与while和for的比较
代码展示

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,sum=0;
	printf("please enter i,i=?");
	scanf("%d",&i);
	while(i<=100)
	{
	  sum=sum+i;
	  i++;
	}
	printf("sum=%d
",sum);
	system("PAUSE");
	return 0;

}

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,sum=0;
	printf("please enter i,i=?");
	scanf("%d",&i);
	do
	{
	  sum=sum+i;
	  i++;
	}
	while(i<=100);
	printf("sum=%d
",sum);
	system("PAUSE");
	return 0;

}

程序截图

19.switch简介
代码展示

#include <stdio.h>
int main ()
{
	char grade;
	scanf("%c",&grade);
	printf("Your corce:");
	switch(grade)
	{
		case 'A':printf("85-100
");break;
		case 'B':printf("70-84
");break;
		case 'C':printf("60-69
");break;
		case 'D':printf("60
");break;
		default:printf("enter data error!
");
		
	}
	return 0;
}

程序截图

20.break用法
代码展示

#include <stdio.h>
#define SUM 100000
int main()
{
	float amount,aver,total;
	int i;
	for(i=1,total=0;i<=1000;i++)
	{
		printf("please enter amount:");
		scanf("%f",&amount);
		total=total+amount;
		if(total>=SUM) break;
	}
	aver=total/i;
	printf("num=%ld
 aver=10.2f
",i,aver);
	return 0;
}

程序截图

21.数组
代码展示

#include <stdio.h>
int main()
{
    int a[2][3]={{1,2,3},{4,5,6}};
	int b[3][2],i,j;
	printf("array a:
");
    for(i=0;i<=1;i++)
	{
	 for(j=0;j<2;j++)
	 {
	   printf("%5d",a[i][j]);
	   b[j][i]=a[i][j];
	 }
	 printf("
");
	}
	printf("array b:
");
	for(i=0;i<=2;i++)
	{
	 for(j=0;j<1;j++)
	   printf("%5d",a[i][j]);
	 printf("
");
	}

	return 0;

}

#include <stdio.h>
int main()
{
    int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
	int i,j,row=0,colum=0,max;
	max=a[0][0];
	printf("array a:
");
    for(i=0;i<=2;i++)
	 for(j=0;j<=3;j++)
		 if(a[i][j]>max)
		 {
			 max=a[i][j];
			 row=i;
			 colum=j;
		 }
    printf("max=%d
row=%d
",max,row,colum);
	return 0;

}

程序截图


22.函数
代码展示

#include<stdio.h>
int main()
 { void print_star();        //声明print_star 函数
   void print_message();     //声明print_message函数
   print_star();             //调用print_star 函数
   print_message();          //调用print_message函数
   print_star();             //调用print_star 函数
   return 0;
  }
void print_star()            //定义print_star函数
{
   printf("*************
");  //输出一行*号
 }
void print_message()         //定义print_message函数
{printf("How do you do!
"); //输出一行文字信息
 }

程序截图

23.指针
代码展示

#include<stdio.h>
int main()
{ int a=100,b=10;     //定义整型变量a,b,并初始化
  int * pointer_1,* pointer_2;  //定义指向整型数据的指针变量pointer_1,pointer_2
  pointer_1=&a;   //把变量a的地址赋给指针变量pointer_1
  pointer_2=&b;    //把变量b的地址赋给指针变量pointer_2
  printf("a=%d,b=%d
",a,b);  //输出变量a和b的值
  printf("* pointer_1=%d,* pointer_2=%d
",* pointer_1,* pointer_2);  //输出变量a和b的值
  return 0;
}

程序截图

24.文件的输入与输出
代码展示

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    FILE * fp;
	char str[3][10],temp[10];
	int i,j,k,n=3;
	printf("Enter strings :
");
	for(i=0;i<n;i++)
		gets(str[i]);
	for(i=0;i<n-1;i++)
	{
	   k=1;
	   for(j=i+1;j<n;j++)
	   if(strcmp(str[k],str[j])>0)
		   k=j;
	   if(k!=j)
	   {
	       strcpy(temp,str[i]);
		   strcpy(str[i],str[k]);
		   strcpy(str[k],temp);
	   }
	if((fp=fopen("D:\CC\string.dat","w+"))==NULL)
	{
       printf("can not open file!
");	
	   exit(0);
	}
	printf("
The new sequence :
");
	for(i=0;i<n;i++)
	{
	   fputs(str[i],fp);
	   fputs("
",fp);
	   printf("%s
",str[i]);
	}
	}
	return 0;

}


程序截图

25.用户自己建立数据类型

代码展示

#include<string.h>
#include<stdio.h>
struct Person                //声明结构体类型struct Person
   {char name[20];        //候选人姓名
    int count;            //候选人得票数
    }leader[3]={"Li",0,"Zhang",0,"Sun",0};//定义结构体数组并初始化
int main ()
   { int i,j;
    char leader_name[20];   //定义字符数组
    for(i=1;i<=10;i++)
     {scanf("%s",leader_name); //输入所选的候选人姓名
      for(j=0;j<3;j++)
       if(strcmp(leader_name,leader[j].name)==0)leader[j].count++;
    }
  printf("
Result:
");
  for(i=0;i<3;i++)
    printf("%5s:%d
",leader[i].name,leader[i].count);
  return 0;
}

程序截图

实习体会

这次实习有很大的收获,让我对c语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。如果是一个程序写完一处错误也没有,会有种成就感,于是兴趣就来了,兴趣来了,自然学的东西也就多了,能把理论变成实际的技能,让我对c语言有了浓厚的兴趣和更深层的认识。 c语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。比如自己写的写的小程序出了问题,不会解决了就叫老师帮忙,虽然说一定意义上增加了师生之间的感情,但是会养成一种依赖的心理,碰到问题了第一个想到的是求助而不是自己独立解决,所以以后要多多锻炼自己的信心和增加自己的能力,争取做到老师不在身边的时候也可以完成一些简单的程序编写与错误排除。还有自己的基础知识不扎实,遇到的问题,没有很好的逻辑思维,亲自编写一个陌生的程序的时候会有种无法下手的感觉,找不到突破口。通过实训,逐渐理清了顺序,对于简单的程序和一些相对比较繁琐的嵌套,循环,不在是看着一头雾水。其实只要理清了思路,把基础知识掌握了,然后有条不紊的分析,一步一步理解,c语言还是很有意思的课程。 自己亲自动手编写程序让我增加了对c语言程序开发环境的了解,在上课的时候老师就讲,学习c语言最重要的是学习c语言的逻辑思维,不管以后从事什么行业,学习c语言都对自己的职业很有帮助,如果是从事编程工程工作的话。当初在初步接触c语言的时候,看着一堆“奇形怪状”的符号,觉得甚是无聊,通过这次实训,摆脱了那种似懂非懂的状态!感谢学校安排这次实训和老师的耐心讲解,让我学到了很多知识,在实训过程中,同学之间的相互探讨,老师的循循善诱,最终让我们达到了举一反三的效果,在学知识的同时,也增加了同学老师之间的感情。

原文地址:https://www.cnblogs.com/qiwei/p/8268520.html