• 第一次实验报告


    C程序设计实验报告 实验项目:_____________________________________________ 姓名:____________实验地点:_________实验时间___________

    一、实验目的与要求

    1、

    (1)掌握C语言几种基本数据类型,如整型(int)、字符型(char)、单精度(float)、双精度(double),以及由这些基本类型构成的常量和变量的使用方法。

    (2)掌握C语言的运算符和表达式的正确使用。

    (3)掌握自增(++)和自减(--)运算符的正确使用。

    (4)掌握基本的输入输出函数scanf()、getchar()、printf()、和putchar()函数的基本功能、调用方法、输入输出格式控制规定。

    (5)能独立编写顺序结构程序并调试通过。

    (6)用表达式语句、输入输出语句解决简单的应用问题并上机实现。

    2、

    (1)掌握结构化程序的算法描述方法。

    (2)了解C语言的基本语法要素,能熟练地将算大描述转化为C语言程序。

    (3)熟练掌握C语言的运算符,即运算符的优先级和结合性、运算规则、运算对象类型。

    二、实验内容

    1、(1)实验练习: 1问题的简单描述:从键盘输入一个大写字母,要求转换成小写字母输出,并输出这个小写字母和相邻的二个字母,以及他们的ASCII码值。

    (2)实验代码:

    #include <stdio.h>
    main()
    {    
        char ch1,ch2,ch3,ch4;
        printf("请输入一个大写字母:
    ");
        scanf("%c",&ch1);
        ch2=ch1+32;
        ch3=ch1+31;
        ch4=ch1+33;
        printf("小写字母为:%c,%c,%c
    ",ch3,ch2,ch4);
        printf("ASCLL码值为:%d,%d,%d
    ",ch3,ch2,ch4);
    }

    (3)问题分析:一开始我不是很了解"printf()"和"scanf()"的用法导致使用了多个"scanf()"然后输出的值一直不对而且两个函数的格式我也弄混了,最后通过翻书我了解到"scanf()"格式字符要加&符号,然后就成功输出了。

    2、 运算符与表达式的应用

    (1)问题的简单描述:从键盘输入一个三位整数,将输出该数的逆序数。例如输入123,输出321。

    (2)实验代码:

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

    (3)、问题分析:开始的时候我以为/取整数的时候要四舍五入所以不好用这个来做后来翻书发现24页有说明/,如果参与除法(/)运算的两个变量均为整型,则结果为整数取整。然后就顺利解决了问题。

    3、顺序结构应用程序

    (1)问题的简单描述:编写一个程序,用于医院收费处出纳算账。要求输入所在医院费用(西药费、检查费、材料费、床位费、观察费和护理费),打印出应付钱数,再输入病人所付款数,打印出应找的钱数。

    (2)实验代码:

    #include <stdio.h>
    int main()
    {
    	float x,j,c,hj,fk,zh,cw,g,f;
    	printf("输入西药费,检查费,材料费,床位费,观察费,护理费:
    ");
    	scanf("%f%f%f%f%f%f",&x,&j,&c,&cw,&g,&f);
    	hj=x+j+c+cw+g+f;
    	printf("应付款(元):%.2f",hj);
    	printf("病人付款(元):");
    	scanf("%f,&fk");
    	zh=fk-hj;
    	printf("计算结果:
    ");
    	printf("病人付款=%6.2f元
    应收款=%6.2f元应找回=%6.2f元
    ",fk,hj,zh);
    	return 0;
    }
    

    (3)、问题分析:一开始一直运行不出来,显示有错又不知道错在哪,后来仔细观察才发现在"printf()"中打字后忘记把输入法调回英文,导致后面的分号为中文输入法。

    4、数学函数的算法描述

    (1)问题的简单描述:有一函数:y=x(x<1);y=2x-1(1<=x<10);y=3x-1(x>=10),请用C语言编写程序进行验证。

    (2)实验代码:

    #include<stdio.h>
    main()
    {
    	float x,y;
    	printf("请输入x的值:");
    	scanf("%f",&x);
    	if (x<1)
    	y=x;
    	else
    	{
    	if (x<10)	
    	y=2*x-1;
    	else
    	y=3*x-1;}
    	printf("Y的值为%.2f
    ",y);	
    }
    

    (3)、问题分析:开始看了书上的事例一直在纠结中括号要往哪加,试了好几个地方都运行不出来,后来听了上去同学的讲解,发现也可以不加中括号然后试了一下就成功了,并且我也成功理解这个的真正含义,明白了中括号可以加,以及该往哪加,最后果然成功了。 

    5、鸡兔同笼的算法描述

    (1)问题的简单描述:鸡兔同笼问题。将鸡和兔子关在同一个笼子里,假如知道鸡和兔的总头数h,鸡和兔的总脚数f,请设计算法,能计算出鸡和兔分别有多少只。

    (2)实验代码:

    #include <stdio.h>
    main()
    {
    	int h,f,x,y;
    	printf("鸡兔总数,鸡兔脚总数:");
    	scanf("%d,%d",&h,&f);
    	if (h>0&&f>0)
    	{
    		x=(4*h-f)/2;
    		y=(f-2*h)/2;
    		printf("鸡:%d 兔:%d
    ",x,y);
    	 } 
    	else
    	printf("输入错误!
    ");
    }
    

    (3)问题分析:开始受书上的代码影响写的是if (x>0&&y>0)然后一直输出的都是输入错误,之后看了一下流程图才发现是if (h>0&&f>0),最后改了过来,不过一开始检查代码有没有错误的时候我并没有发现这里有问题,反而认为并没有错,这是源于惯性思维,导致我的错误,之后需要更加的仔细小心。

    6、确定坐标的算法描述

    (1)问题的简单描述:根据平面坐标,输出圆塔的高度。有4个圆塔,圆心分别为(2,2)、(-2,2)、(2,-2),(-2,-2),圆半径为1。这四个塔的高度均为10m,塔以外无建筑物。现输入任一点坐标,若该点坐标在任一圆塔内,则输出圆塔的高度;若该点不在圆塔内,则输出0。

    (2)实验代码:

    #include <stdio.h>
    #include <math.h>
    main()
    {
    	int h=10;
    	float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
    	printf("请输入一个点(x,y)");
    	scanf("%f,%f",&x,&y);
    	d1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
    	d2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
    	d3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));
    	d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
    	if(d1>1&&d2>1&&d3>1&&d4>1)
    	h=0;
    	printf("该点高度为:%d",h);
    }
    

    (3)问题分析:开始的时候我把平方写成^2一直输出不出来,后来上去的同学也犯了同样的错误,老师纠正之后才发现C语言中的平方不是^2而是pow(),这次错误源于我对C语言基本运算符了解不多,以后我会努力去记住那些运算符的。  

    三、实验小结(在本次实验中收获与不足)

      经过这次实验我发现自己存在着很多不足,第一,自己的代码敲的太少,熟练度很差;第二,我对很多基本运算符还不是很了解,导致写代码的时候老是使用错误的运算符。不过通过这次实验我了解到"printf()"和"scanf()"的用法,还有一些基本格式,明白了学C语言最重要的是多敲代码而不是只学学理论知识就可以学好的。 

      

  • 相关阅读:
    设计模式享元模式实现C++
    并查集
    设计模式代理模式实现C++
    设计模式装饰模式实现C++
    最小生成树Prim算法实现
    图的邻接矩阵存储
    威佐夫博弈(Wythoff Game)初识 HDU 1527 POJ 1067
    设计模式原型模式实现C++
    三种经典博弈问题 BashGame;WythoffGame;NimmGame;
    设计模式外观模式实现C++
  • 原文地址:https://www.cnblogs.com/q07925758237/p/10587411.html
Copyright © 2020-2023  润新知