精华内容
下载资源
问答
  • 第四次上机实验报告:C语言调试方法

    千次阅读 2013-04-08 22:47:45
    1.学习C语言调试方法 2.复习C语言基本语法、函数、选择和重复控制语句; 任务1:参考《C语言调试方法》掌握代码的调试和排错技巧.把调试过程出现的问题,写到报告中。 说明:学习编程,必须学会代码的调试和排错,...

    目标:
    1.学习C语言调试方法
    2.复习C语言基本语法、函数、选择和重复控制语句;

    任务1:参考《C语言调试方法》掌握代码的调试和排错技巧.把调试过程出现的问题,写到报告中。
    说明:学习编程,必须学会代码的调试和排错,否则寸步难行!
    要求:理解调试的目的和调试的技巧,不能盲目和依赖调试.
         调试是为了测试是否成功,或是找出其中错误,以便改正。

         基本理解

    ------------------------------------任务分割线------------------------------------
    任务2:自行分析和设计一个程序,并在程序中标注每一行代码的含义和目的;;
    要求:程序必须涉及到数学函数、自定义函数、选择和重复控制语句.并利用上面的调试方法进行程序排错;

     

    //已知三边长度求三角形面积(海伦公式)(求5组)
    #include<stdio.h>
    #include<math.h>
    double area(double a,double b,double c)                            //自定义函数
    {
    	double s,p;
    	p=(a+b+c)/2;                                                   
    	s=sqrt(double(p*(p-a)*(p-b)*(p-c)));                           //数学函数sqrt求平方根  
    	return s;                    
    }
    void main()
    { 
    	int i=1;
    	while(i<=5)                                                   //重复控制语句
    	{
    	    double a,b,c,s;
    	    printf("第%d组:输入三边长度:",i);
    	    scanf_s("%lf %lf %lf",&(a),&b,&c);
    	    if (a>=b+c)                                              //选择
    		    printf("以此三边为边长的三角形不存在\n");
    	    if (b>=a+c)
    		    printf("以此三边为边长的三角形不存在\n");
    	    if (c>=a+b)
    		    printf("以此三边为边长的三角形不存在\n");
    	    else 
    		    s=area(a,b,c),
    	        printf("以此三边为边长的三角形面积为:%lf\n",s);
    		i++;
    	}
    }
    


    展开全文
  • c语言 课设报告

    2012-12-15 22:11:11
    C语言 完整课设报告 含代码,系统分析,总体设计,详细设计,调试与测试
  • C语言实验报告

    2011-09-25 21:54:55
    进一步熟悉VC++6.0集成开发环境的使用方法; 掌握C语言三种基本数据类型的特点; 掌握基本输入/输出函数的功能和使用要求; 积累VC++6.0进行程序调试经验
  • 洛阳理工学院实验报告 系部 计算机系 班级 B130503 学号 B13050326 姓名 课程名称 高级语言程序设计 实验日期 实验名称 学生成绩管理程序设计 成绩 实验目的 掌握C语言的基本知识包括 C语言的功能和语法 基本具备...
  • c语言实验报告

    2019-09-28 20:10:47
    (1)实验题目:是不是太胖了...调试过程及遇到的问题:然而就这看似简单的操作中我依然是做了很久,后来实在找不到错误后又仔细看了变题目,才发现原来题目上的输出You...有大写而我是小写,知道真相的我心态都崩...

    (1)实验题目:是不是太胖了(加强版)由于做过一次减弱版脑子里有点思路,但我还是做了很久才把它做出来。

    设计思路:按照题目的说法要输入三个值,然后进行计算比较,然后再讨论情况,最后根据不同的结果输出不同的答案。

    调试过程及遇到的问题:然而就这看似简单的操作中我依然是做了很久,后来实在找不到错误后又仔细看了变题目,才发现原来题目上的输出You...有大写而我是小写,知道真相的我心态都崩了。

    心得:以后做题的第一件事就是要看好题目。

    (2)实验题目:输出华氏-摄氏温度转换表

      设计思路:利用for循环语句来实现表格的填充。

      调试过程以及遇到的问题:提交后一直显示格式错误,然而我该打的空格也打了,还是错误,后来再老师的帮助下,纠正了我的错误,题目要求输出fahr,celsius是要占据六个字符。

       心得体会:学会再输出是在百分号后面加上数字表示占据几个字符。

    (3)实验题目:计算火车运行时间

      设计思路:利用题目给的数字来进行时间的加减。

      调试过程及遇到的问题:在进行时间的加减的时候不知道要小时和分钟分开计算导致一直没法得到正确的答案,后来在同学的帮助下,纠正了错误。

      心得体会:遇到整体一起计算没法得出结果的时候要学会分开来计算。

     

    转载于:https://www.cnblogs.com/MR-LlN/p/7691945.html

    展开全文
  • 程序设计I实验报告 第1 次 专业信息管理与...初步了解Microsoft Visual C++6.0 以后简称V的特点熟悉VC的开发环境 2 学习用VC调试C程序的方法掌握C语言程序从编辑编译连接到运行并得到运 行结果的过程 3 通过运行简单
  • . .专业资料. 学生姓名 学 号: 专业班级: 实验类型口 验证综合设计...理解和掌握C语言的语法以及三种基本程序结构的综合应用 熟悉排序查找统计分析等常用算法 熟悉C语言的编程和调试环境培养学生用计算机解决实际问题的
  • c语言实验报告(1/4)

    2020-04-12 22:09:42
    立志成为ctrlcv工程师C语言实验报告预处理预处理 1代码预处理 2代码——自己写的代码——抄的预处理 3代码——抄的代码——自己写的指针指针 1代码——自己写的代码 —— 别人写的指针 2结构体和共用体结构体和共用...

    C语言实验报告

    前情提要

    这个博客是为了方便抄作业写的。
    有福同享,有答案一起抄。
    指针打后可能会每题写三份。
    你们有舍友的话。可以和舍友商量着一起抄,还不会撞。
    如果你们有写好的代码,想要造福社会,可以把代码发给我,我整理到文章上去,欢迎各位加入。
    最后,因为我本人也很菜,写的代码可能也不怎么样。如果哪位好心人可以指点我一下,那就最好不过了。
    嗯,总之欢迎交流。
    版本🍄版本🐖版本🖊还有“自己写的”都是自己写的,可以随便抄,不用怕老师说你是网上找的。不用怕老师说你是抄答案的。

    实验报告题目来源

    昨天抄了四分之一。在网上找答案的过程中通过一些蛛丝马迹旁敲侧击找到了报告题目的来源——谭浩强的《C语言程序设计》。
    贴上一份找到的答案:https://max.book118.com/html/2018/1009/6021005021001222.shtm
    在抄答案的过程中。发现答案有些语法错误?
    反正抄的不是很顺利。应该是因为这本书比较老了。
    上面那份答案,似乎不

    题外话

    害。终于抄完了。简直就是鸽子精。不到最后一刻不写作业。本来想着写🍄版本和🐖版本也没写。有一题还是抄的。算了算了,江山易改本性难移。

    预处理

    编程序并上机调试运行。

    预处理 1

    定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值(本题是教材第9章习题9.1)。

    代码

    #include <stdio.h>
    #define swap(a,b) t=a;a=b;b=t;
    
    int main(void)
    {
        int x,y,t;
        scanf("%d%d",&x,&y);
        swap(x,y);
        printf("%d,%d",x,y);
        
        return 0;
    }
    

    预处理 2

    设计输出实数的格式,包括:①一行输出一个实数;②一行内输出两个实数;③一行内输出3个实数。实数用“%6.2f”格式输出(本题是教材第9章习题9.6)。

    • 用一个文件print_formar.h包含以上用#define命令定义的格式。在自己的文件(自己命名)中用#include命令将print_format.h文件包含进来。在程序中用scanf函数读入3个实验给f1、f2、f3。然后用上面定义的3种格式分别输出:①f1;②f1、f2;③f1、f2、f3 。

    代码 —— 自己写的

    print_format.h

    #define format1(f1,f2,f3) printf("format1:\n"); printf("%6.2f\n%6.2f\n%6.2f\n",f1,f2,f3);
    #define format2(f1,f2,f3) printf("\nformat2:\n"); printf("%6.2f、%6.2f\n%6.2f\n",f1,f2,f2);
    #define format3(f1,f2,f3) printf("\nformat3:\n");	printf("%6.2f、%6.2f、%6.2f\n",f1,f2,f3);
    
    #include "print_format.h"
    #include <stdio.h>
    int main(void)
    {
    	int i;
    	float f1,f2,f3;
    	printf("please input three float numbers:");
    	scanf("%f%f%f",&f1,&f2,&f3);
    	format1(f1,f2,f3);
    	format2(f1,f2,f3);
    	format3(f1,f2,f3);
    	
    } 
    

    代码 —— 网上找的

    直接抄这个很容易被发现。建议先改一改再收入囊中为己所用。

    #include<stdio.h>
    #define PR printf
    #define NL putchar('\n');
    #define PRINT1(a) PR("%6.2f",a);NL
    #define PRINT2(a,b) PR("%6.2f",a);PRINT1(b)
    #define PRINT3(a,b,c) PR("%6.2f",a);PRINT2(b,c)
    int main()
    {
    	float a,b,c;
    	PR("输入a,b,c三个数:\n");
    	scanf("%f%f%f",&a,&b,&c);
    	PR("一行输出一个:\n");
    	PRINT1(a);
    	PRINT1(b);
    	PRINT1(c);
    	PR("一行输出两个:\n");
    	PRINT2(a,b);
    	PRINT1(c);
    	PR("一行输出三个:\n");
    	PRINT3(a,b,c);
    }
    

    代码 —— 网上找的(加以修改

    print_format.h

    #define FORMAT1(a) printf("%6.2f\n",a);
    #define FORMAT2(a,b) printf("%6.2f",a);FORMAT1(b)
    #define FORMAT3(a,b,c) printf("%6.2f",a);FORMAT2(b,c)
    
    #include<stdio.h>
    #include <print_format.h> 
    
    int main(void)
    {
    	float a,b,c;
    	printf("输入a,b,c三个数:\n");
    	scanf("%f%f%f",&a,&b,&c);
    	printf("一行输出一个:\n");
    	FORMAT1(a);
    	FORMAT1(b);
    	FORMAT1(c);
    	printf("一行输出两个:\n");
    	FORMAT2(a,b);
    	FORMAT1(c);
    	printf("一行输出三个:\n");
    	FORMAT3(a,b,c);
    
        return 0;
    }
    

    其实这题我感觉怪怪的。即便如此还是觉得自己写得更聪明点,希望事实也是如此。

    预处理 3

    用条件编译方法实现以下功能:输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下一字母(如′a′变成′b′,…,z′ 变成′a′。其他字符不变)。用#define命令来控制是否要译成密码。例如:

    • 编写程序,用条件编译方法来处理题目要求。
    • 开始在程序中用“#define CHANGE 1”,运行程序,应得到密码。
    • 将“#define CHANGE 1”改为“define CHANGE 0”,再运行,应得到原文。

    代码 —— 网上找的

    #include<stdio.h>
    #define CHANGE 1   
    //原来是LOCK     
     //自行修改LOCK的值,若为1则按照加密(将字母变成下一字母)输出,为0则按照原内容输出
    int main()
    {
    	char s1[20];
    	int i;
    	printf("输入一行字符串:\n");
    	gets(s1);
    	printf("输出字符串:\n");
    	if(CHANGE)//根据宏进行判断 ,lock==1 
    	{
    		for(i=0;i<20;i++)
    		if(s1[i]!='\0'){
    			if(s1[i]>='a'&&s1[i]<'z'||s1[i]>='A'&&s1[i]<'Z')
    			s1[i]++;
    			else if(s1[i]=='z'||s1[i]=='Z')
    			s1[i]-=25;
    		}
    	}
    	printf("%s",s1);//输出结果 
    }
    

    代码 —— 自己写的

    这个其实没有按题目要求。因为不是输入的。但是写都写了。就这样吧。

    #define CHANGE 1
    
    int main(void) 
    {
    	int i;
    	static char str[]="Zchinaz";
    	#if CHANGE
    		for(i=0;i<strlen(str);i++)
    			if(str[i]=='z')
    				str[i]='a';
    			else if(str[i]=='Z')
    				str[i]='A';
    			else
    				str[i]+=1;
    		puts(str);
    	#else 
    		puts(str);
    	#endif
    

    别人写得真好。果然抄作业是对的。

    指针

    编程序并上机调试运行程序(都要求用指针处理)。

    指针 1

    输入3个整数,按由小到大的顺序输出,然后将程序改为:输入3个字符串,按由小到大顺序输出(本题是教材第10章习题10.1和10.2)。

    代码 —— 版本🖊

    #include <stdio.h>
    
    void swap(int *p1, int *p2);
    int main(void) 
    {
    	int a,b,c;
    	int *p1,*p2,*p3;
    	
    	printf("please input three numbers :") ;
    	scanf("%d%d%d",&a,&b,&c);
    	p1=&a;
    	p2=&b;
    	p3=&c;
    	if(*p1>*p2)	swap(p1,p2);
    	if(*p1>*p3)	swap(p1,p3);
    	if(*p2>*p3) swap(p2,p3);	
    	printf("%d<%d<%d\n",*p1,*p2,*p3);
    }
    
    void swap(int *p1, int *p2)
    {	
    	int temp;
    	temp = *p1;
    	*p1 = *p2;
    	*p2 = temp;		
    }
    

    改为输入字符串:

    #include <stdio.h>
    #include <string.h>
    
    void swap(char *p1, char *p2);
    int main(void) 
    {
    	char a[20],b[20],c[20];
    	char *p1,*p2,*p3;
    	
    	printf("please input three string:\n") ;
    	gets(a);
    	gets(b);
    	gets(c);
    	p1=a;
    	p2=b;
    	p3=c;
    	if(strcmp(p1,p2)>0)	  swap(p1,p2);
    	if(strcmp(p1,p3)>0)   swap(p1,p3);
    	if(strcmp(p2,p3)>0)   swap(p2,p3);	
    	printf("\nsort and output:\n");
    	puts(p1);
    	puts(p2);
    	puts(p3);
    }
    
    void swap(char *p1, char *p2)
    {	
    	char temp[20];
    	strcpy(temp,p1);
    	strcpy(p1,p2);
    	strcpy(p2,temp);	
    }
    

    代码 —— 网上找的

    没认真看。感觉人都要傻了,看这么一堆东西。

    #include <stdio.h>
    void CompareInt(int* a, int* b, int* c)
    {
    	if( *a >= *b && *a >= *c )
    	{
    		if( *b >= *c )
    			printf("%d %d %d", *c, *b, *a);		
    		else
    			printf("%d %d %d", *b, *c, *a);
    	}
    	if( *b >= *a && *b >= *c )
    	{
    		if( *a >= *c )
    			printf("%d %d %d", *c, *a, *b);
    		else
    			printf("%d %d %d",*a, *c, *b);
    	}
    	if( *c >= *a && *c >= *b )
    	{
    		if( *a >= *b )
    			printf("%d %d %d",*b, *a, *c);
    		else
    			printf("%d %d %d",*a, *b, *c);
    	}
    }
    int main(void)
    {
    	int a = 0, b = 0, c = 0;
    	printf("please input three number:");
    	scanf("%d %d %d",&a, &b, &c);
    	CompareInt(&a, &b, &c);
    	return 0;
    }
    

    改为输入字符串:

    没改。上面那段代码。看着一堆没有没下去的欲望。

    代码 —— 版本 🐖

    #include <stdio.h>
    int main(void) 
    {
    	int a,b,c,*p1,*p2,*p3,t;
    	printf("please input three numbers:");
    	scanf("%d%d%d",&a,&b,&c);
    	p1=&a;p2=&b;p3=&c;
    	if(a>b) 
    	{
    		t=*p1;
    		*p1=*p2;
    		*p2=t;
    	}
    	if(a>c)
    	{
    		t=*p1;
    		*p1=*p3;
    		*p3=t;
    	}
    	if(b>c)
    	{
    		t=*p2;
    		*p2=*p3;
    		*p3=t;
    	}
    	printf("%d<%d<%d",a,b,c);
    	return 0;
    }
    

    改成字符串

    #include <stdio.h>
    #include <string.h>
    #define M 20
    int main(void) 
    {
    	char a[M],b[M],c[M],t[M],*p1,*p2,*p3;
    	printf("please input three string:");
    	gets(a);
    	gets(b);
    	gets(c);
    	p1=a;p2=b;p3=c;
    	if(strcmp(a,b)>0) 
    	{
    		strcpy(t,p1);
    		strcpy(p1,p2);
    		strcpy(p2,t);
    	}
    	if(strcmp(a,c)>0)
    	{
    		strcpy(t,p3);
    		strcpy(p3,p1);
    		strcpy(p1,t);
    	}
    	if(strcmp(b,c)>0)
    	{
    		strcpy(t,p2);
    		strcpy(p2,p3);
    		strcpy(p3,t);
    	}
    	printf("\nafter sort:\n");
    	puts(a);
    	puts(b);
    	puts(c);
    	
    	return 0;
    }
    

    代码 —— 版本 🍄

    #include <stdio.h>
    
    int swap(int *p1,int *p2);
    int main(void)
    { 
    	int n1,n2,n3;
    	int *p1,*p2,*p3;
    	printf("please input three numbers:");
    	scanf("%d%d%d",&n1,&n2,&n3);
    	p1=&n1; p2=&n2; p3=&n3;
    	if(n1>n2)	swap(p1,p2);
    	if(n1>n3)	swap(p1,p3);
    	if(n2>n3)   swap(p2,p3);
    	printf("sort:%d,%d,%d\n",n1,n2,n3);
    	
    	return 0;
    }
    
    void swap(int *p1,int *p2) 
    {
    	int temp;
    	temp = *p1;
    	*p1 = *p2;
    	*p2 = temp;
    }
    

    改成字符串

    #include <stdio.h>
    #include <string.h>
    #define M 20
    #define N 3
    void swap(char *p1,char *p2);
    int main(void)
    { 
    	int i;
    	char str[N][M];
    	char *p[M];
    	printf("please input three string:");
    	for(i=0;i<N;i++)
    	{
    		scanf("%s",str[i]);
    		p[i]=str[i];
    	}
    	
    	if(strcmp(str[0],str[1])>0)	 swap(p[0],p[1]);
    	if(strcmp(str[0],str[2])>0)	 swap(p[0],p[2]);
    	if(strcmp(str[1],str[2])>0)  swap(p[1],p[2]);
    	printf("sort and output:\n");
    	for(i=0;i<N;i++)	puts(str[i]);
    	
    	return 0;
    }
    
    void swap(char *p1,char *p2) 
    {
    	
    	char temp[M];
    	strcpy(temp,p1);
    	strcpy(p1,p2);
    	strcpy(p2,temp);
    	
    }
    

    指针 2

    用指向指针的指针的方法对n个字符串排序并输出。(本题是教材第10章习题10.20)。

    代码 —— 网上找的

    这道题原题似乎是用指向指针的指针的方法对5个字符串排序并输出。
    对网上找的代码进行小小地改动。应该就可以为己所用了。这是找到的原题的答案:

    #include<stdio.h>
    #include<string.h>
    main()
    {
        char str[5][10],pt[10];
        char **q,*p[]={str[0],str[1],str[2],str[3],str[4]};
        int i,j;
        printf("输入5行字符串:\n");
        for(i=0;i<5;i++)
        scanf("%s",str[i]);
        q=p;
        for(i=0;i<4;i++)
        {
            for(j=0;j<4-i;j++)
            {
                if(strcmp(*(q+j),*(q+j+1))>0)
                {
                    strcpy(pt,*(q+j));
                    strcpy(*(q+j),*(q+j+1));
                    strcpy(*(q+j+1),pt);
                }
            }
        }
        printf("\n字符串小到大排序:\n");
        for(i=0;i<5;i++)
        printf("%s\n",*(q+i));
    }
    

    代码 —— 版本🖊(改网上的

    不知道改得对不对。因为上课没认真听。但是运行了没什么问题。那应该是没什么问题的了吧。我再消化一下。

    #include<stdio.h>
    #include<string.h>
    #define N 7
    #define M 20
    main()
    {
        char str[N][M],pt[M];
        char **q,*p[N];
        int i,j;
        
        for(i=0;i<N;i++)	p[i]=str[i];
        
        printf("输入%d行字符串:\n",N);
        for(i=0;i<N;i++)	scanf("%s",str[i]);
        
        q=p;
        for(i=0;i<N-1;i++)
        {
            for(j=0;j<N-i-1;j++)
            {
                if(strcmp(*(q+j),*(q+j+1))>0)
                {
                    strcpy(pt,*(q+j));
                    strcpy(*(q+j),*(q+j+1));
                    strcpy(*(q+j+1),pt);
                }
            }
        }
        printf("\n字符串小到大排序:\n");
        for(i=0;i<N;i++) printf("%s\n",*(q+i));
    }
    

    代码 —— 版本🐖

    代码 —— 版本🍄

    结构体和共用体

    结构体和共用体 1

    有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。(本题是教材第11章习题11.5)

    • 要求用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。

    代码 —— 版本🖊

    #include <stdio.h>
    #define M 5
    struct student{
    	int number;
    	char name[20];
    	float score[3];
    	float average;
    };
    
    void input(struct student info[M]);
    float average(struct student info[M]);
    int max(struct student info[M]);
    
    int main(void)
    {
    	int i,one;
    	struct student info[M];
    	input(info);
    	printf("\nAll student score average is %g \n",average(info));
    	for(i=0;i<M;i++) printf("student %s score average is %g\n",info[i].name,info[i].average);
    	
    	one = max(info);
    	printf("\nthe information of student who has a max socre if following:\n");
    	printf("name\tnumber\tsocre1\tscore2\tscore3\taverage\n");
    	printf("%s\t%d\t",info[one].name,info[one].number);
    	printf("%g\t%g\t%g\t%g\n",info[one].score[0],info[one].score[1],info[one].score[2],info[one].average);
    	
    	return 0;
    }
    void input(struct student info[M])
    {
    	int i,j;
    	printf("please input %d students' information:\n",M);
    	for(i=0;i<M;i++)
    	{
    		printf("NO.%d number:",i+1);
    		scanf("%d",&info[i].number);
    		printf("NO.%d name:",i+1);
    		scanf("%s",info[i].name);
    		for(j=0;j<3;j++)
    		{
    			printf("NO.%d score %d:",i+1,j+1);
    			scanf("%f",&info[i].score[j]);
    		}
    	}
    }
    float average(struct student info[M])
    {
    	float sum,aver;
    	int i,j;
    	
    	for(i=0;i<M;i++)
    	{
    		sum = 0;
    		for(j=0;j<3;j++)
    		{
    			sum += info[i].score[j];
    		
    		}
    		info[i].average = sum/3.0;	
    		
    		aver += sum;
    	}
    	aver = aver/(3.0*M);
    	
    	return aver;
    }
    int max(struct student info[M])
    {
    	int i,max=0;
    	for(i=1;i<M;i++)
    	{
    		if(info[i].average>info[max].average) 
    			max=i;
    		}	
    	return max;	
    	
    }
    

    结构体和共用体 2

    建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结眯所包含的年龄等于此年龄,则将此结点删去(本题是教材第11章11.11)。

    文件

    文件 1

    有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中(本题是教材第13章习题13.6)。

    • 设5名学生的学号、姓名和3门课成绩如下:
      99101 Wang 89,98,67.5
      99103 Li 60,80,90
      99106 Fun 75.5,91.5,99
      99110 Ling 100,50,62.5
      99113 Yuan 58,68,71

    文件 2

    将上题stud文件中的学生数据按平均分进行排序处理,将已排序的学生数据存入一个新文件stu_sort中(本题是教材第13章习题13.7)。

    • 在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。

    文件 3

    将上题已排序的学生成绩文件进行插入处理。插入一个学生的3门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件(本题是教材第13章习题13.8)。

    • 要插入的学生数据为:
      99108 Xin 90,95,60
      在向新文件stu_new写入数据后,应检查验证stu_new文件中的内容是否正确。
    展开全文
  • 实验 X XXXXXXXX 姓名 班级 1 题目给出一段程序要求得到程序输出结果 1给出预期结果以及分析上机前 3调试过程记录及原因分析上机 2给出上机验证结果如有不同分析原因上机 2 题目给定一个任务或者功能 1定义程序目标...
  • 这里写自定义目录标题南京邮电大学C语言实验报告1v2 南京邮电大学C语言实验报告1v2 实验一 顺序结构编程练习 一、 实验目的和要求 (1)初识Microsoft Visual Studio 2010上机环境,学会建立工程、文件,学会编译、...

    实验一 顺序结构编程练习

    一、 实验目的和要求
    (1)初识Microsoft Visual Studio 2010上机环境,学会建立工程、文件,学会编译、链接并运行程序,查找并修改简单的语法错。
    (2)正确调用输入输出处理的函数scanf( )、printf( )、getchar( )、putchar( )进行数据的I/O,观察输出格式,掌握键盘输入方法。
    (3)初步使用调试器跟踪程序,观察变量的值的变化情况。

    二、实验环境(实验设备)
    硬件: 微型计算机
    软件: Windows 操作系统、Microsoft Visual Studio 2010

    三、实验原理及内容
    实验题目(1)【见实验教材实验一的题目1】:在D盘上建立以自己学号命名的文件夹(例如:B07020518)(以后实验的所有文件存于此文件夹下);正确进入VS2010集成开发环境,建立一个单文件项目,项目名为:exp1_1,然后向该项目中以新建方式添加一个源文件,名为:exp1_1.c,完成:从键盘输入两个整数a和b,计算并输出他们的和sum、差difference、积product、商quotient和平均值ave(注意ave和商的定义类型)。
    具体要求:
    ① 编辑、编译、连接并运行程序,观察运行结果。
    ② 观察exp1_1.obj、exp1_1.exe、exp1_1.c所在的文件夹。
    ③ 对变量quotient分别定义为int和double型,在printf函数中正确使用格式串,当读入的两个整数为4和5时,观察运行结果并分析原因,思考怎么使变量quotient更准确。
    ④ 对变量ave分别定义为int和double型,在printf函数中正确使用格式串,当读入的两个整数为4和5时,观察不同的运行结果并分析原因。
    ⑤ 单步跟踪程序(用F10键),观察每一步程序运行时各个变量的变化情况。
    实验解答:

    ① 源程序代码如下:

    #include<stdio.h>
    int main()
    {
    	int a,b,sum,difference,product,quotient,ave;
        printf("请输入两个整数a和b: ");
    	scanf("%d,%d",&a,&b);
        sum=a+b;
    	difference=a-b;
    	product=a*b;
    	quotient=a/b;
    	ave=(a+b)/2;
    	printf("sum=%d,difference=%d,product=%d,quotient=%d,ave=%d\n",sum,difference,product,quotient,ave);
    	return 0;
    }
    
    #include<stdio.h>
    int main()
    {
    	int a,b,sum,difference,product;
    	double quotient,ave;
        printf("请输入两个整数a和b:");
    	scanf("%d,%d",&a,&b);
        sum=a+b;
    	difference=a-b;
    	product=a*b;
    	quotient=a*1.0/b;
    	ave=(a+b)*1.0/2;
    	printf("sum=%d,difference=%d,product=%d,quotient=%f,ave=%f\n",sum,difference,product,quotient,ave);
    	return 0;
    }
    
    


    文件名 文件所在的完整路径(例如:d:\ttt\t1.c)
    exp1_1.c d:\ttt\exp1_1.c
    exp1_1.obj D:\ttt\Debug\exp1_1.obj
    exp1_1.exe D:\ttt\Debug\exp1_1.exe


    quotient的类型 求解quotient的语句 输出quotient的格式串 屏幕输出的quotient值
    int quotient=a/b; %d 0
    double quotient=a*1.0/b; %f 0.800000

    运行结果的差异、原因以及保证结果正确的措施:
    差异:当商类型是int时,结果没有小数;当商类型是double时,结果带有小数,且当a/1.0时值更精确。
    原因:变量类型的差异,整数除和实数除的差异。
    保证结果正确的措施:做除法时尽量使用实数除。

    ave的类型 求解ave的语句 输ave的格式串 屏幕输出的ave值
    int ave=(a+b)/2; %d 4
    double ave=(a+b)*1.0/2; %f 4.500000

    运行结果的差异及原因:
    差异:当ave类型是int时,结果没有小数;当ave类型是double时,结果带有小数,且当(a+b)/1.0时值更精确。
    原因:变量类型的差异,整数除和实数除的差异。

    实验题目(2)【见实验教材实验一的题目3】:编程序exp1_3.c,实现两个整数a,b的交换,提示思考:我们在现实生活中,两杯水是怎么交换的。
    实验解答:
    源程序exp1_3.c的代码是:

    #include <stdio.h>
    int main( )
    {
    	int a,b,temp;
    	printf("请输入两个整数:");
    	scanf("%d,%d",&a,&b);
    	temp=a;
    	a=b;
    	b=temp;
    	printf("a=%d,b=%d\n",a,b);
        return 0;
    }
    
    

    实验题目(3)【见实验教材实验一的题目4】:编程序exp1_4.c,工厂给一圆柱体镀膜,每平方厘米造价10元,现从键盘上输入圆柱底面的半径radius(厘米)和圆柱的高height(厘米),求该圆柱体的表面积area(平方厘米)和所需费用,要求输出结果保留两位小数。
    实验解答:
    ① 源程序exp1_4.c的代码是:

    #include<stdio.h>
    #define PI 3.14159
    int main()
    {
    	double r,h,area,fy;
        printf("请输入圆柱底面的半径和圆柱的高: ");
    	scanf("%lf,%lf",&r,&h);
        area=2*PI*r*r+2*PI*r*h;
    	fy=10*area;
    	printf("area=%.2f,fy=%.2f\n",area,fy);
    	return 0;
    }         
    
    

    ② 多次运行程序,根据下表第一列要求,输入不同的数据,请填写下表
    输入数据的要求 你输入的数据 你程序的输出结果
    半径和高均为正整数 1,2 area=18.85,fy=188.50
    半径和高均为正实型数 1.0,2.0 area=18.85,fy=188.50
    半径和高有一个为负数 1,-2 area=-6.28,fy=-62.83
    半径和高均为负数 -1,-2 area=18.85,fy=188.50
    其他测试用例 2,3 area=62.83,fy=628.32

    实验题目(4)【见实验教材实验一的题目6】:编写程序exp1_6.c输入一个3位正整数,计算该数的逆序数,并输出。例如:输入789,输出987;
    实验解答:源程序exp1_6.c的代码是:

    #include<stdio.h>
    int main()
    {
    	int x,a,b,c;
        printf("请输入一个三位整数:");
    	scanf("%d",&x);
        a=x/100;
    	b=x/10%10;
    	c=x%10;
    	printf("该数的逆序数=%d%d%d",c,b,a);
    	return 0;
    }    
    
    

    四、实验小结(包括问题和解决方法、心得体会、意见与建议、实验出错信息及解决方案等)
    (一)实验中遇到的主要问题及解决方法
    实验时一些基础规范没注意(如忘记在scanf函数中给出所输入变量的地址、定义PI时在PI和3.14159之间加=),而后意识到之后改了过来。
    (二)实验心得
    学习C语言需要牢记基础,多实践多尝试,去解决问题并探寻更佳表达。
    (三)意见与建议(没有可省略)
    学校机房的电脑调试时总闪退

    实 验 报 告
    五、支撑毕业要求指标点
    1.2-H掌握计算机软硬件相关工程基础知识,能将其用于分析计算机及应用领域的相关工程问题。
    3.1-M掌握设计/开发复杂工程问题解决方案所需要的专业知识和开发工具。

    展开全文
  • 复习、调试C程序 2 线性表基本操作1 4 线性表基本操作2 6 栈和队列基本操作1 8 栈和队列基本操作2 10 稀疏矩阵的运算 12 二叉树基本操作 14 图的存储和应用 16 查找运算实现 17 排序运算的实现 19
  • 仲恺农业工程学院实验报告纸 计算机科学与工程院计算机科学与技术 专业 计111班 1 组 C语言程序设计 课 学号 201110214113 姓名 廖兆伟 实验日期 2012-3-29 教师评定 实验9指针一 1实验目的 1掌握指针的间接访问的...
  • C语言课程设计报告

    2015-02-05 23:25:19
    C语言课程设计报告。校际运动会程序设计源代码加课程设计报告调试分析结果。
  • 实验2 顺序结构与逻辑运算 学号1100530124 姓名 刘磊 实验日期20120412 实验目的和要求 1掌握数据输入/输出函数的使用能正确使用各种格式转换符 2熟悉顺序结构程序中语句的执行过程并学会基本调试程序方法 3能够正确...
  • 南京邮电大学C语言实验报告3v2(仅供参考)

    万次阅读 多人点赞 2020-10-29 17:41:49
    (3)进一步熟悉调试器的使用,会利用调试器进行查错改错,会跟踪程序运行的每一步,观察变量的变化情况。 二、实验环境(实验设备) 硬件: 微型计算机 软件: Windows 操作系统、Microsoft Visual Studio 2010 实验...
  • 南京邮电大学C语言实验报告5v2(仅供参考)

    千次阅读 多人点赞 2020-10-29 18:15:33
    通过调试器观察分析程序的运行情况,理解指针与指针所指向的内容之间的关系,理解指针间接引用的实质。 (2)综合运用函数、数组和指针的知识,理解函数中指针形式参数的意义,数组名形参实质就是指针形参。通过跟踪...
  • c语言职工信息管理系统报告(含代码,已经调试过)
  • 南京邮电大学C语言实验报告2v2(仅供参考)

    千次阅读 多人点赞 2020-10-28 22:54:15
    (4)利用vs 2010调试器跟踪、调试程序,会设置断点、单步跟踪,查看相应的变量或表达式的值,帮助理解循环、选择结构程序执行过程并能查找、修改逻辑错误。 二、实验环境(实验设备) 硬件: 微型计算机 软件: Window
  • 1.学习C语言调试方法 2.复习C语言基本语法、函数、选择和重复控制语句; 任务1:参考《C语言调试方法》掌握代码的调试和排错技巧.把调试过程出现的问题,写到报告中。 说明:学习编程,必须学会代码的调试和排错...
  • 图书管理系统C语言程序设计实验分析报告C语言程序设计实验报告系别专业班级姓名学号时间实验题目 图书信息管理系统一、实验目的(1)熟练掌握C语言的相关操作。(2)综合应用C语言的知识,独立完成一个完整的系统,提高...
  • 标准实用 标准实用 文案大全 文案大全 江西科技师范大学 C语言程序设计报告 题目:ATM机操作系统的简单开发 姓名:唐智德 学号:20132195 专业:计师1班 指导老师咲B睿颖 2013411 目录 需求分析 , 设计思路 k ?...
  • PAGE C语言程序设计 课程设计报告 学年 第 学期 专 业 班 级 姓名学号 姓 名 指导教师 成 绩 目 录 一课程设计的目的与要求1 二方案实现与调试 1 2.1 掷骰子游戏1 2.2 射击游戏3 2.3 计算存款本息之和5 2.4 肇事逃逸...
  • PAGE 5 - C语言课内实验报告 学生姓名: 及 学 号 学 院: 班 级: 课程名称 实验题目: 指导教师 姓名及职称 20XX年03月18日 一实验题目 选择结构程序设计 实验目的 1学习在程序单步执行过程中,使用监视窗口调试C程序的...
  • c语言实现贪吃蛇代码可随意下载 c语言课程设计报告也可随意下载1.本代码在VS2013下可正常运行,其他版本需根据版本需要进行调试。2.代码在Csnake-Csnake里,想直接打开整个工程直接进入Cnak...
  • 3 3 C语言程序设计报告 语言程序设计课程名称 C 管理与经济学院系 院 班工业工程2012142专业班级 号学 李海蛟学生姓名 杨雪青指导教师 2013-06-20 完成时间 I 1 报告成绩 目录计题设目1 2 2设计要求包括设计内容描述...
  • 设 计 报 告 课题名称 员工销售业绩统计系统 学 院 专业班级 电子...巩固和加深C语言课程中所学的理论知识 掌握C语言编程和程序调试的基本技能 通过综合C语言的基本知识来解决实际问题 学会利用C语言进行基本的软件设
  • 学习C语言基础知识,掌握C语言编程和程序调试的基本技能。 (2).对指导教师下达的题目进行系统分析。 (3).根据分析结果完成系统设计。 (4).编程:在计算机上实现题目的代码实现。 (5).完成对该系统的测试...
  • 一、实验目的1、熟悉C语言运行环境TurboC++3.02、会简单的程序调试3、熟悉C语言各种类型数据的输入输出函数的使用方法4、掌握顺序结构程序设计二、实验内容1、上机运行本章3个例题,熟悉所用系统的上机方法与步骤。...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 368
精华内容 147
关键字:

c语言调试报告

c语言 订阅