《C语言程序设计》实训_第1页
《C语言程序设计》实训_第2页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计实训大纲 C知识要点 C语言的标志符和保留字。 C语言程序的结构特点和书写格式。 C 语言程序的编辑及运行方法。实验目的(1)熟悉 Turbo C2.0的软件环境,掌握使用 Turbo C进行编辑,编译,连接和运行的方法。(2)通过运行简单的 C程序,掌握C语言源程序的特点。实验内容(1)安装并运行 Turbo C 2.0程序,进入C语言程序设计环境。(2)编辑源程序文件选择“File”Load”菜单命令,加载已经存在的 C语言源程序文件.选择“File”“New”菜单命令建立新文件。请输入下面的语言源程序,在编辑完成后,用“File”“Save”菜单命令或键保存编辑结果到新文件

2、中。int a=4,b=2;Main()int e=1,f=2;print(“%dn”, max (a, b );print(“%dn” , max( e, f );int max( int x, int y)return xy ? x:y;(3)编译和连接程序文件。源程序先经过编译,生成目标文件(.OBJ可执行文件(.EXE1 知识要点C语言提供的数据结构,是以数据类型形式出现的。具体分类如下:1.基本类型2.构造类型分为数组类型、结构类型和共用类型三种。3.指针类型。在第 9章中介绍。4.空类型C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。实验目的(1)了解 C语言中数据类型

3、的意义。(2)了解 C语言中数据类型的转换方式。实验内容(1)输入下面程序,观察它的运行结果。Main()ch1=a;ch2=B/*字母的大小写转换*/printf(ch1=%c,ch2=%cn,ch1-32,ch2+32);/*用字符形式输出一个大于 256的数值*/printf(ch1+200=%dn,ch1+200);printf(ch1+200=%cn,ch1+200);printf(ch1+256=%dn,ch1+256);C语言允许对字符数据进行运算,此时就是对它们的 ASCII码值进行算术运算。2 知识要点(1) C语言的表达式。(2) 算术运算符和算术表达式。(3) 关系和逻辑

4、运算符。(4) Sizeof()运算符。(5) 运算符的优先级和结合性。实验目的(1)掌握 C语言的数据类型,熟悉如何定义整形、字符型、实型变量,以及对它们赋值的方法,了解以上数据类型并输出时所使用的格式转换符号。(2)学会如何使用 C 语言的有关运算符以及包括这些运算符号的表达式,特别是自加(+)和自减(-)运算符的使用。(3)进一步熟悉 C程序的编辑、编译、连接和运用的过程。实验内容(1) 输入以下程序,在编译、运行,并分析运行结果。Main()char cl,c2;printf(“%c%c”,cl,c2);在程序末尾加一个 printf语句,并运行之。(“%d,%d”,cl,c2);在的

5、基础上,将第 2行改为:int cl,c2;再运行程序。将第 3行改为:cl=300;c2=400;再运行,并分析结果。输入并运行以下程序。Main()int i,j,m,n;i=8;j=10;M=i+,n=j+ 将第 4行改为:3m=i+;n=+j; 将程序改为:Main()int i,j;i=8;j=10;Printf(“%d,%d”,+i,+j); 在的基础上,将 orintf语句改为:Printf(“%d,%d”,+i,+j); 再将程序改为:main()int i,j,m=0,n=0;i=8;j=10;M+=i+;n-=-j;Peintf(“i=%D,j=%d,m+%d,n=%d,i

6、,j,m,n);(3)判断以下程序的输出结果,然后上机验证。Main()nit i=3,j=2,a,b,c,d;d=(i*3,j=10)a=(-i=j+)?-i:+j;b=i+;c=j;printf(“%d,%d,%d,%dn”,a,b,c,d):main()int a=110,b=017printf(“%x,%dn”,a+,+b);main()int a=-1;b=36,c;c=(+a0)|!(b-=0);printf(“%d,%d,%dn”,a,b,c);4(4)对以下程序填空,使程序实现从键盘输入的任意大写字母转换为小写字母或小写字母转换为大写字母。Main()char c;scanf(

7、“%c); printf(“%c”,&c);4分析与讨论分析总结运算符的优先级5 知识要点C语言中没有提供专门的输入、输出语句,所有的输入、输出都是通过调用标准库函数中的输入,输出函数来实现的。学习 C语言不仅要学习语句和各种运算,而且要学习并掌握常用标准函数的使用。 Scanf()和 getchar()函数是输入函数,接受来自键盘的输入数据。 Scanf()是格式输入函数,可按指定的格式输入任意类型数据。 Getchar()函数是字符输入函数,只能接收单个字符。 Printf()和 putchar() 函数是输出函数,向显示器屏幕输出数据。 Printf()是格式输出函数,可按指定的格式显示

8、任意类型数据。 Putchar()_是字符显示函数,只能显示单个字符。实验目的掌握 c语言程序输入,输出的方法和格式。实验内容(1) 程序源代码:# includemain()char a=176,b=219;printf(“%c%c%c%c%cn”,b,a,a,a,b);prinft(“%c%c%c%c%cn”,a,b,a,b,a);prinft(“%c%c%c%c%cn”,a,a,b,a,a);prinft(“%c%c%c%c%cn”,a,b,a,b,a);printf(“%c%c%c%c%cn:,b,a,a,a,b);6 知识要点从程序执行的流程来看,程序可分为3种最基本的结构,分支结构

9、以及循环结构。C语言提供了多种形式的条件语句以构成分支结构: If语句只要用于单向选择。 If-else语句主要用于双向选择。 If-else-if语句和switch语句用于多向选择。实验目的(1)了解条件与程序流程的关系。(2)了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。实验内容(1)有如下程序段:main()int a,b,x;scanf(“%d%d%d”,&b);if(a=b)x=b;printf(“x=%dn”,x);要求分别使用下列组数据运行该程序并记录行结果。a=5,b=1,x=?a=1,b=5,x=?a=3,b=3,x=?分析讨论:用哪组数据就可以使程序段中的每个分支

10、都运行一次?(2)下面程序要输出a,b,c3个数中的最大值,请改正其中的错误。Main()int a,b,c,max;printf(“enter a,b,c:”);scanf(“%d%d%d”,a,b,c);if(a=b & a=c)if(b=a & b=c)printf(“max=a=%dn”,a);printf(“max=b=%dn”,b);else printf(“max=c=%dn”,c);7 while和 do-while循环语句知识要点while(表达式)语句;do语句 while(表达式);上述两种语句是 C do-while语句至少要执行一次循环体;而 while语句先判断括号

11、内表达式的值若为 0,则跳出循环,因此有可能循环一次也不执行。实验目的(1)(2)了解条件型循环结构的基本测试方法。实验内容(1) 编辑并运行下面程序。Main()int i=1,s=1,n;scanf(“d”.&n);if(n0)printf(“ The input data is error!n”);esewhile(i=detax,分别换 yyetax,y=detax,ydetax,y=detax,观察程序运行将会有什么化。把原程序中while语句之前y=1/xy语句去掉,观察程序的运行将会发生什么样的变花。如把原程序的+i换成i+,观察程次序的运行发生了什么变化。把原程序中的while

12、结构改写成do_whilejg 结构,再分别按上述的2和3要求进行实验。3分析讨论总结一下测试条件循环的一般方法。9实训七 典型算法及程序实现知识要点C语言提供了3 种循环语句(1) For语句主要用语给定循环变量初值,步长以及循环条件的循环结构。(2) 对于循环次数及控制条件要在循环过中才能确定的循环,可用while或do-while语句。(3) 3种循环语句可以相互嵌套组成多种循环,循环之间可以并列但不能交叉。(4) 在循环程序中应避免出现死循环,即应保障循环变量的值在运行过程中可以得到修改,并使循环条件逐步变为假,从而结束循环。(5)可用转移语句把流程转出体外,但不能从外面转向循环体内。

13、(6)Break和continue语句:break语句立即结束包含它的循环或开关语句;continue语句只能用于循环语句中,它跳过循环体中下面的语句而从下一次循环开始。实验目的(1)掌握如何正确的控制计数型循环结构的次数。(2)了解对计数型循环结构进行测试的基本方法。实验内容有下面程序段;main()int i,j;ilng sum=0for(i=1;i=5;i+)sum=sum+(i+1)*(i+1)printf(“sumis:%D/N,sum);(1)将程序中的for语句改为”for(i=1;i+5;i+);”则程序结果是什么?(2)将程序中的for语句改为“for(i=1;i=1;i_

14、=3)”则程序结果是什么?(4) 将程序中的for语句其循环体改为 “for(i=1;i=5;i+) i=i+(i+1)*(i+1)”则程序结果是什么?10 知识要点1.一维数组的定义和引用2.二维数组的定义和引用3. 函数定义、返回值与函数类型4. 函数的调用实验目的掌握数组的应用,以及双重循环程序设计对二维数组的应用。掌握 C语言函数定义及调用的规则。理解参数传递的过程。掌握变量的作用范围。实验内容1通过键盘输入 10个整数,分别用选择法和冒泡法对这十个数排序。2找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可以有鞍点。3打印以下图形*4.上机调试下面的程序,记录

15、系统给出的出错信息,并指出原因。Main()int x=1,y=2;printf(%d/n,sum(x,y);intsum(a,b)inta,b;return (a+b)出错信息:_。原因:_。(1) 分析并运行下面的程序。11Aust()int vauto=0;/*自动变量:没次调用都重新初始化*/Static int vastatic=0;+vauto;/*静态局部变量;只初始化 1次*/+vstatic;printf(vauto=%d/n”,vauto,vstatic);main()int i;for(i=0;i5;i+)aust();|运行结果为_(3)下面的程序利用函数 pp输出给定

16、的字符n次,请将 pp函数补充完整。Main()char c;int n;scanf(“%c%d”,&c,&n);pp(c,n);pp(char c,int n)12 知识要点1. 数值在计算机中的表示2. 位运算3. 位段实验目的掌握位的的与、或、非、左移位和右移位的运算。实验内容(1)写一函数,对一 16 位的二进制数取出它的奇数位(即从左边起第 1、3、515位)(2)设计一个函数,使给出一个数的原码,能得到该数的补码。键盘上输入1个正整数给int变量num,按二进制位输出该数。#include stdio.hmain() int num, mask, i;printf(Input a

17、integer number: );scanf(%d,&num);mask = 115;/*构造1个最高位为1、其余各位为0的整数(屏蔽字)*/printf(%d= , num);for(i=1; i=16; i+) putchar(num&mask ? 1 : 0);/*输出最高位的值(1/0)*/num = 1;/*将次高位移到最高位上*/if( i%4=0 ) putchar(,);/*四位一组,用逗号分开*/printf(bBn);程序运行情况:Input a integer number:1000 1000=0000,0011,1110,1000B13综合实训一、目的与任务通过实训,使学生掌握 C 语言的基本语法、基本知识、上机调试程序的基本技能,掌握结构化程序设计的基本方法,掌握并学会应用数据结构算法,具备设计、调试、编绎较为复杂 C程序的能力。二、适用专业计算机系所有开设了C语言程序设计课程的相关专业三、实训环境开发工具:Turboc2.0、Dev-C+或 Visual C+运行环境:Ms-dos、Windows 9x、Windows NT 或

温馨提示

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

评论

0/150

提交评论