程序设计语言C实验.ppt_第1页
程序设计语言C实验.ppt_第2页
程序设计语言C实验.ppt_第3页
程序设计语言C实验.ppt_第4页
程序设计语言C实验.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

程序设计语言C实验,金鑫,实验一 C简单程序设计,实验目的 了解C程序的基本编辑操作,熟悉编辑界面; 掌握在Turbo C集成开发环境下编辑、编译、连接和运行C程序的方法 实验内容 使用DOS操作命令查看TC目录下的文件。学习建立个人的C源程序文件子目录 在Turbo C集成开发环境下,输入教材P37例3.1的程序并进行编译和运行。观察C程序的书写格式,学会在用户屏幕上查看运行结果,熟悉编辑操作,了解基本调试程序的操作。,实验二 数据类型、运算符和表达式,实验目的 掌握C语言的基本数据类型:整型、字符型、长整型、单精度、双精度类型,以及对它们赋值的方法 学会使用C有关的运算符和表达式,以及自加和自减运算符的使用 实验内容 编写一个程序,分别定义字符型、整型、长整型、单精度、双精度变量,并给这些变量赋值,输出这些变量的存储宽度。 运行P5例1.1,模仿例1.1编写P9的习题3程序。 运行P6例1.2、P13例2.1、P15的程序、P18页的程序 运行课堂中的有关自加(减)的例题。,实验三 数据类型、运算符和表达式,实验目的 进一步理解数据类型的概念,理解运算符的含义; 掌握运用编程的方法来分析表达式值的方法; 重点分析整型表达式运算结果、逻辑表达式运算结果 实验内容 编程完成第二章的习题,实验三 数据的输入和输出,实验四 自己动手编写一个C程序,实验目的 利用已学的知识编写一个解决实际问题的程序 实验内容 设计一个程序,输入正五边形的边长的长度a,按公式 计算该五边形外接圆的半径。 设计一程序,输入空间中两点的坐标x1,y1,z1和x2,y2,z2计算两点之间的距离。 编写一个C程序,输入一个3位整数,分别输出百位数、十位数和个位数。,实验五 选择结构基础,实验目的 掌握选择控制语句 掌握正确使用逻辑运算符和逻辑表达式 实验内容 编写程序输入四个整数,要求输出最小的一个。 编写程序判断体重。体指数(t)=体重(w)/身高2(h)其中,t=27时为肥胖。 分别用ifelseif语句和switch语句编写书P58,实验六 选择结构的使用,实验目的 练习根据具体问题,利用选择控制语句编写程序 实验内容 有一人过独木桥,到桥中间时看见前面有狼,后面有虎,底下是深深的河水。编程写出此人的最后结局。 从键盘输入3个数,判断能否构成三角形,若能构成三角形,计算以这3个数为边长的三角形面积;否则,输出相应的提示信息。 编写一个程序,输入某学生成绩,若成绩在85分以上,则输出“Very Good”,若成绩在60分到85分之间,则输出“Good”,若成绩低于60分,则输出“Bad”。 编写程序,读入一个年份和月份,打印出该月有多少天,实验七 循环结构的实现,实验目的 掌握三种基本循环语句 注意循环条件的控制 实验内容 请分别用while语句和do-while语句编程求 的值 请分别用while语句和do-while语句编程求12/(1+1)+22/(2+1)+32/(3+1)+n2/(n+1) 输入一个字符串,将其中的空格和数字删除后输出,实验八 循环结构应用,实验目的 掌握在程序设计中用循环的方法编写程序实现各种算法 实验内容 编写程序求出满足不等式1+2+3+n500的最大n值及总和。 编程实现求数列1/2,3/4,5/8,7/16的所有大于等于0.000001的数据项之和,显示输出计算结果。 编程找出1000以内的完数。所谓完数是它等于它的因子之和。如:6=1+2+3。,实验九 综合训练,实验目的 掌握用顺序结构、选择结构、循环结构编写程序,解决实际问题 掌握程序的调试方法 实验内容 求100200之间的素数。 求20+21+22+263。 完成P5558的练习。,实验十 上机测试,实验目的 综合测验 实验内容 编写一个程序,能显示两行文字。 已知三角形的两个边长A,B和其夹角,求三角形的面积S。 输入圆的半径R和一个整数K,K=1时,计算圆的面积;当K=2时,计算圆的周长;当K=3时,既要求面积也要求周长。编程实现以上功能。 编写程序,求1-3+5-7+9-99+101的值。,实验十一 一维数组的使用,实验目的 掌握一维数组的定义、赋值和输入输出方法; 掌握一维数组的基本用法。 实验内容 1. 用筛法求100以内的素数。 2. 编写一个程序,计算若干学生的某门功课的平均成绩、标准差,找出最高分和最低分。 3. 编写一个程序,让计算机产生20个随机数,用选择法排序。 4. 根据上题的内容1,编一程序在数组中查找一个数。要求: 若有该数,则输出该数,否则输出找不到的信息; 用顺序查找实现; 用折半查找实现。,实验十二 一维数组,实验内容 1、根据实验11中的内容3,编写一程序删除指定的一个数。 2、根据实验11中的内容3,编写一程序插入一个指定的数,插入后,数组仍然有序。 3、完成C语言复习中第六章的练习题(选择、填空),实验十三 二维数组的使用,实验目的 掌握二维数组的定义、赋值和输入输出的方法。 练习用二维数组解决实际问题。 实验内容 1找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有“鞍点”。要求用随机函数生成数据。 2使用二维数组,打印杨辉三角形前10行。 3编写程序,将一个55的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下的顺序,依次从小到大存放。 4 编写程序,用随机函数产生一个二维迷宫(用0表示通道,1表示隔墙),实验十四 字符数组与字符串函数的使用,实验目的 掌握字符数组和字符串函数的使用 实验内容 1、编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中。(不能使用strcpy函数。) 2、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。 3、有n个字符串,要求找出其中最大和最小的字符串。,实验十五 编程实现非数值信息的处理,实验目的 进一步掌握字符数组的使用; 了解非数值信息的处理; 初步了解排序算法。 实验内容 1、有n个字符串,要求按字母顺序从小到大对其排序。 2、编写一个程序,解决骑士周游世界问题。 在国际象棋中,马的走步是“L”形(相当于中国象棋中的马走日),如上图。那么,马从国际象棋盘(棋盘为88=64格)上的某一点出发,能否跳遍全棋盘,且每个方格只跳过一次?试打印出马的路线。,实验十六 排序问题,实验目的 掌握选择法排序的思想 掌握冒泡法排序的思想 掌握插入法排序的思想 实验内容 1编一程序,对n个整数用选择法排序(从小到大); 2编一程序,对n个整数用冒泡法排序(从大到小); 3编一程序,输入若干学生某门功课的成绩,计算平均分、标准差,并按从高分到低分的顺序排列(用插入法排序)。,实验十六 常用算法,实验目的 掌握查找的常用算法(顺序查找、折半查找) 掌握在数组中删除一个元素或插入一个元素的算法 实验内容 1、根据实验15中的内容1,编一程序在数组中查找一个数。要求: 若有该数,则输出该数,否则输出未找到的信息; 用顺序查找实现; 用折半查找实现。 2、根据实验内容1,编写一程序删除指定的一个数。 3、根据实验内容1,编写一程序插入一个指定的数,插入后,数组仍然有序。,实验十七 函数的定义与调用,实验目的 掌握定义函数的方法; 掌握函数的调用方法; 掌握函数实参和形参的对应关系; 实验内容 1、写一个判断素数的函数。要求: 在主函数中输入一个整数并输出是否素数的信息; 用自定义函数判断此数是否素数; 测试数据:17、34、2、1、0、49、39。 2、编一个函数,其功能是:求高于平均分的人数,并作为函数值返回。要求: 学生的成绩放在student数组中; 在主函数中输入学生的成绩,用-1结束成绩的输入; 在主函数中输出高于平均分的人数; 测试数据:78、34、65、86、54、76、65、48、29、94 87、46、88、71、68、60、83、92、57、51 69、89、79、39、55、44、21、99、96、70 3、P103第三题的第三小题。,实验十八 函数实参、形参的结合及递归调用,实验目的 进一步掌握函数的实参与形参的结合; 掌握函数的递归调用; 实验内容 1、用递归法求n阶勒让德多项式的值,递归公式为: 2、运行汉诺塔程序 3、写一个函数,使输入的一个字符串反序存放。,实验十八 函数实参、形参的结合及递归调用,实验内容 2、编辑调试下列程序: void move(char x, char y) printf(“%c%cn”, x, y); void Hanoi(int n, char one, char two, char three) if(n=1) move(one, three); else Hanoi(n-1, one, three, two); move(one, three); Hanoi(n-1, two, one, three); main( ) int m; printf(“input the number of diskes:”); scanf(“%d”, 测试用例:4,10。,实验十九 模块化程序设计的综合练习(上),实验目的 综合掌握程序的控制结构和数组; 进一步学习模块化程序设计; 实验内容 1、有一行原文,请按下面规律译成密码: AZ az,BY by,CX cx, 即第1个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。要求: 在主函数中输入电文; 写一个函数将密码译回原文; 在主函数中输出密码和原文; 测试用例:I am a student, you are a teather. 2、有n位学生,每个学生有m门功课,请编写程序解决: 在主函数中定义数组; 写一个enter函数输入学生的成绩; 写一个sort函数,按总成绩对数组排序; 写一个print函数输出成绩表,每行输出一位学生的成绩。,实验二十 模块化程序设计的综合练习(下),实验目的 进一步掌握模块化程序设计的思想; 阶段考核 实验内容 1、编写一个程序,解决以下问题: n个人围成一圈,从第一个人开始顺序报数1、2、3。凡是报到“3”的人退出圈子。找出最后留在圈子中的人的原来的序号。测试用例:15、22、39。 2、用递归方法求n阶勒让德多项式的值,递归公式为: 3打印杨辉三角形,要求: 用自定义函数输出三角形; 输出行数由用户自行决定。,实验二十一多文件程序的编辑、编译及运行,实验目的 掌握在TC下如何编辑、编译运行一个多文件程序 实验内容 编写一段程序,用来实现10个学生成绩的输入、求和、求平均分,分别用三个函数来实现。 将三个函数分别存为三个独立的程序文件,名称分别是f1.c 、 f2.c和f3.c 在编译状态下,建立一个“项目文件”,名称为f,将以上三个程序文件放入项目文件中并存盘。 编译执行,并得出结果。,实验二十二 预处理命令的使用,实验目的 掌握预处理命令(重点是宏定义)的使用方式,并用预处理命令来解决实际问题 实验内容 编译执行下列程序,体会宏定义的用法: #include #define P 2 #define POWER(x) P*x*x main() int x=1,y=2; printf(“%d,%d”,POWER(x+y),POWER(y+x); 编写一段程序,用来求两个数的最小值,其中用来求最小值的部分用宏定义来实现。编写完成后编译执行。 有以下程序,将其格式输出部分改写成宏定义后并添加到format.h头文件中,编写完成后编译执行。 #define PR printf #define NL “n” #define F “%36.3f” #define F1 F NL #define F2 F F NL #define F3 F F F NL,main() float x,y,z; x=1.2;y=2.3;z=3.4; PR(F1,x); PR(F2,x,y); PR(F3,x,y,z);,实验二十三 指针和指针变量的使用,实验目的 掌握指针的概念,要求会定义和使用指针变量; 了解指向指针的概念及其使用方法; 实验内容 编制交换整型变量值的函数swap( )。函数swap( )的功能是交换两个整型变量的值,函数swap( )设有两个指向整型变量的指针参数,函数利用指针参数间接访问变量。调用swap( )函数时,两个参数分别是两个待交换值得整型变量的地址。 编写程序,用指针来实现数组的输入和输出。数组定义如下:a10=1,2,3,4,5,6,7,8,9,0 用指针编写一个程序,解决以下问题: n个人围成一圈,从第一个人开始顺序报数1、2、3。凡是报到“3”的人退出圈子。找出最后留在圈子中的人的原来的序号。测试用例:15、22、39。,实验二十三 指针和指针变量的使用,输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:输入10个数;对换处理;输出10个数。 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现上面的功能,在主函数中输入n个整数和输出调整后的n个数。 有一个班5个学生,5门课程。求第一门课的平均成绩;找出有2门以上课程不及格的学生,输出他们的学号和全部课程成绩和平均分;找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编写3个函数实现以上3个要求。,实验二十四 用“数组指针”和“字符串指针” 解决实际问题,实验目的 掌握数组指针和字符串指针二者的概念和联系; 学会使用字符串的指针的指向字符串的指针变量; 学会使用数组的指针和指向数组的指针变量; 学会使用指向函数的指针变量; 实验内容 编制实现对整型数组前n个成分求和的函数sun()。 编写一函数,将字符串按照顺序的逆序存放,并在主函数中从键盘输入该字符串(字符串长度不超过30),输出其逆序结果。 下面的程序是用来完成将一个33的矩阵进行转置。将程序补充完整并调试通过。 main( ) int a33,*p,i; printf(“请按行输入33的矩阵:n”); for(i=0;i3;i+) scanf(“%d %d %d”, ,趣味小程序,编写一个程序,用随机数发生器生成句子。 程序中要使用以下4个char类型的指针数组:article、noun、verb、preposition。每个数组指向一组单词。 程序按以下顺序抽取单词: article、noun、verb、preposition、article、noun。 抽取的单词放入一个足够大的字符型数组(用于存放句子)中,每抽取一个单词,放到前一个单词的后面,单词中间用空格分隔。 最后输出整个句子。输出时,第一个字符要大写,最后要有句号。 冠词article指向:“the”,“a”,“one”,“some”,“any” 名词noun指向:“boy”,“girl”,“dog”,“town”,“car” 动词verb指向:“drove”,“jumped”,“ran”,“walked”,“skipped” 介词preposition指向:“to”,“from”, “over”,“under”,“on” 用上述程序生成20个句子并调试运行。 修改上述程序,使其能够生成一个小故事。,趣味小程序,洗牌和发牌模拟 用int deck413表示一副牌,其中03行分别表示红心、方块、梅花和黑桃,012列分别表示A、2、K;用char *face13表示牌面点数,记录A、2、K ;用char *suit4表示牌面花色,记录红心、方块、梅花和黑桃; 洗牌步骤:首先把数组deck清0;然后,随机地从03中选择一行(row),从012中选择一列(column)。把数1插入到deckrowcolumn中,表示这张牌将是从洗好的牌中发出的第一张牌;继续这个过程,把数2、3、52随机地插入到数组deck中,表示从洗好的牌中发出的第2、第3、第52张牌。 在把发牌序号插入到数组deck中的过程中,一张牌被选择两次以上是可能的,第二次及以后的选中应该忽略,因此第二次及以后选中时,应重新随机得到row、column 本算法效率低下,请重新设计算法,提高效率。,实验二十五 结构体数据类型的定义和应用,实验目的 掌握结构体的定义方式和使用,并可以地用结构体来处理一些简单问题; 掌握结构体类型变量的定义和使用; 掌握结构体类型数组的概念和应用。 实验内容 从键盘输入10个人的姓名和年龄并存到结构数组中,编写程序从中查找年龄最大和最小的人的姓名和年龄,并输出。 利用结构体来实现一个简单的数据库,该数据库可以完成添加、按序号查询、显示等功能。下面将该程序的主函数部分给出,要求学生将给出自定义函数补充完整,并在机器上调试通过。 #include #include #include void add(void); /*向数据库中添加记录*/ void query(void); /*按指定的序号查找相应的记录*/ void listall(void); /*列出数据库中的全部记录*/ void list(int n); /*列出给定序号的记录*/ struct employee int no; /*序号*/ char name15; /*姓名*/ char phone12; /*电话号码*/ int age; ; /*年龄*/,实验二十五 结构体数据类型的定义和应用,实验内容(续) int index; struct employee record20; main() char ch; system(“cls”); while(1) printf(“n1.Enter new employeen”); printf(“2.Query employeen”); printf(“3.List alln”); printf(“4.Quitn”); printf(“Select:”); ch=getchar();,实验内容(续) switch(ch) case 1: add();break; case 2: query();break; case 3: listall();break; case 4: exit(0); default:break; ,实验二十六 单链表的建立和操作,实验目的 在掌握指针和结构体的基础上学习单链表的使用,让学生初步掌握基本数据结构的操作方法; 掌握链表的概念,初步学会对链表进行操作。 实验内容 建立一个包含学生信息的单链表,要求包含三个学生,每个学生具有学号、姓名、成绩三项基本信息。 在以上单链表中再加入一个学生。 将一个链表按逆序排列,即将链头当链尾,链尾当链头。,实验二十七 综合练习,实验目的 在前面学习的基础上,要求学生掌握C的综合使用; 复习C语言中最基本的结构,如数组、函数、指针、结构体等。 实验内容 编程实现,从终端输入名字表,然后按字符串从小到大顺序排序名字表,最后输出排序后的名字表。 将一个55的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下的的顺序,依次从小到大存放),编程实现。,实验二十八 上机测试,测试内

温馨提示

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

评论

0/150

提交评论