实验二 C语言的基础知识.doc_第1页
实验二 C语言的基础知识.doc_第2页
实验二 C语言的基础知识.doc_第3页
实验二 C语言的基础知识.doc_第4页
实验二 C语言的基础知识.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二 C语言的基础知识 【目的与要求】1掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。2学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+)和自减(-)运算符的使用。3进一步熟悉C程序的编辑、编译、连接和运行的过程。【上机内容】 【一般示例】【例1】输入并运行下程序,写出运行结果。mian() char c1 , c2; c1=97;c2=98; printf(“%c %c”, c1, c2);在此基础上1)加一个printf语句,并运行之。printf(“%d,%d”, c1, c2 );2)再将第二行改为: int c1, c2;再使之运行。3)再将第三行改为: c1=300; c2=400;再使之运行,分析其运行结果。在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。【例2】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。main() char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%c b%ctabcn”,c1,c2,c3);printf(“tb%c %c”,c4,c5);在该程序中,主要考查对转义字符的掌握情况。【例3】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。main() int i , j , m , n ;i=8; j=10;m=+i; n=j+;printf(“%d,%d,%d,%d”,i,j,m,n);分别作以下改动之后,先分析再运行:1)将第四行改为:m=i+; n= + j;2)程序改为:main() int i , j ;i=8; j=10;printf(“%d,%d”, i+, j+);3)在2)的基础上,将printf语句改为:printf(“%d,%d”, + i, + j );4)再将printf语句改为:printf(“%d,%d,%d,%d”,i,j,i+,j+);5)程序改为:main()int i , j , m=0 , n=0 ;i=8; j=10;m+= i +; n -= -j;printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);此程序主要考查自加、自减运算符以及复合运算符的用法。【作业】1要讲“China”译成密码,密码规律是:用原来的字母后面第5个字母代替原来的字母。例如,字母“A”后面第5个是“F”,用“F”代替“A”。因此,“China”应译为“Hmnsf”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为C、h、i、n、a,经过运算,使其分别变为H、m、n、s、f,并输出。2求下面算术表达式的值。(1)x+a%3*(x+y)%2/4设x=2.5,a=7,y=4.7(2)(float)(a+b)/2+(int)x%(int)y设a=2,b=3,x=3.5,y=2.5先自己分析,再试着用程序求解,看得到的结果是否一致。3写出下面表达式运算后a的值,设原来a=10。设a和n已定义成整型变量。(1)a+=a (2)a-=2(3)a*=2+3 (4)a/=a+a(5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a先自己分析,再试着用程序求解,看得到的结果是否一致。实验三 简单的C程序设计 【目的与要求】 1理解C语言程序的顺序结构 2掌握常用的C语言语句,熟练应用赋值、输入、输出语句。【上机内容】【一般实例】 【例1】按格式要求输入/输出数据#include stdio.hmain() int a,b;flost x,y;char c1,c2;scanf(“a=%d,b=%d”,&a,&b);scanf(“%f, %e”,&x,&y);scanf(“&c &c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%cn”,a,b,x,y,c1,c2);运行该程序,必须按如下方式在键盘上输入数据a=3,b=7 8.5,71.82 a A 请同学们写出输出结果【例2】输入三角形三边长,求三角形面积。#include “math.h”main()float a,b,c,s,area;scanf(“%f ,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%f”,area);【例3】已知圆半径,圆柱高,求圆周长,圆柱体积。main()float r,h,l,v,pi;pi=3.1415926;scanf(“%f,%f”,&r,&h);l=2*pi*r;v=pi*r*r*h;printf(“圆周长为:%6.2fn”,l);printf(“%圆柱体积为:6.2f”,v);【例4】输入一个摄氏温度,要求输出华氏温度。公式为f=5/9*c+32.main()float c,f;scanf(“%f”,&c);f=5.0/9*c+32;printf(“%5.2fn”,c); 【作业】1. 已知圆半径r=1.5,圆柱高h=3, 求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。2. 输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32).实验四 选择结构程序设计 【目的与要求】 1了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”); 2学会正确使用逻辑运算符和逻辑表达式; 3 熟练掌握if语句和switch语句。【上机内容】【一般示例】【例1】 已知三个数a,b,c,找出最大值放于max中。分析:由已知可得在变量定义时定义四个变量a,b,c和max,a,b,c是任意输入的三个数,max是用来存放结果最大值的。第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中ifelse 形式。第二次比较max和c,把最大数存入max中,用if语句的第一种形式if形式。Max即为a,b,c中的最大值。include stdio.hmain()int a,b,c,max; /*定义四个整型变量*/scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);if (a=b)max=a; /*a=b*/else max=b; /*amax) max=c; /*c是最大值*/printf(max=%d,max); 若输入下列数据,分析程序的执行顺序并写出运行结果(1)a=1,b=2,c=3 (2)a=2,b=1,c=3 (3)a=3,b=2,c=1 (4)a=3,b=1,c=2 (5)a=3,b=3,c=2 (6)a=2,b=1,c=2 【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E方法一:(用if嵌套)分析:由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E;但当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,再用if嵌套前,应先判断输入的成绩是否在0100之间。#includestdio.hmain() int score; char grade; printf(nplease input a student score:); scanf(%f,&score); if(score100|score=90) grade=A; else if(score=80) grade=B; else if(score=70) grade=C; else if(score=60) grade=D; else grade=E; printf(nthe student grade:%c,grade); 输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。 方法二:用switch语句分析:switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。#includestdio.hmain()int g,s;char ch;printf(ninput a student grade:);scanf(%d,&g);s=g/10;if(s10) printf(ninput error!);else switch (s) case 10: case 9: ch=A; break; case 8: ch=B; break; case 7: ch=C; break; case 6: ch=D; break; default: ch=E; printf(nthe student scort:%c,ch); 输入测试数据,同方法一一样调试程序并写出结果。【例3】有一函数:y=xx12x-11=x=10用scanf函数输入x的值(分别为x=10三种情况),求y值。分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用If语句。main() int x,y;printf(“please input x :”);scanf(“%d”,&x);if (x1)y=x;printf(“y=%dn”,y);else if (xc&b= =c(2) a|b+c&b-c(3) !(ab)&!c|1(4) !(x=a)&(y=b)&0(5) !(a+b)+c-1&b+c/23. 有3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论