《程序设计语言C实验.ppt》由会员分享,可在线阅读,更多相关《程序设计语言C实验.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计语言程序设计语言C C实验实验金鑫金鑫实验一实验一 C简单程序设计简单程序设计 实验目的实验目的了解了解C程序的基本编辑操作,熟悉编辑界面;程序的基本编辑操作,熟悉编辑界面;掌握在掌握在Turbo C集成开发环境下编辑、编译、连接和运行集成开发环境下编辑、编译、连接和运行C程序的方法程序的方法 实验内容实验内容使用使用DOS操作命令查看操作命令查看TC目录下的文件。学习建立个人目录下的文件。学习建立个人的的C源程序文件子目录源程序文件子目录 在在Turbo C集成开发环境下,输入教材集成开发环境下,输入教材P37例例3.1的程序并的程序并进行编译和运行。观察进行编译和运行。观察C程序的
2、书写格式,学会在用户屏程序的书写格式,学会在用户屏幕上查看运行结果,熟悉编辑操作,了解基本调试程序幕上查看运行结果,熟悉编辑操作,了解基本调试程序的操作。的操作。实验二实验二 数据类型、运算符和表达式数据类型、运算符和表达式 实验目的实验目的掌握掌握C语言的基本数据类型:整型、字符型、长整型、单精语言的基本数据类型:整型、字符型、长整型、单精度、双精度类型,以及对它们赋值的方法度、双精度类型,以及对它们赋值的方法学会使用学会使用C有关的运算符和表达式,以及自加和自减运算符有关的运算符和表达式,以及自加和自减运算符的使用的使用 实验内容实验内容编写一个程序,分别定义字符型、整型、长整型、单精度、
3、编写一个程序,分别定义字符型、整型、长整型、单精度、双精度变量,并给这些变量赋值,输出这些变量的存储宽双精度变量,并给这些变量赋值,输出这些变量的存储宽度。度。运行运行P5例例1.1,模仿例,模仿例1.1编写编写P9的习题的习题3程序。程序。运行运行P6例例1.2、P13例例2.1、P15的程序、的程序、P18页的程序页的程序运行课堂中的有关自加(减)的例题。运行课堂中的有关自加(减)的例题。实验三实验三 数据类型、运算符和表达式数据类型、运算符和表达式实验目的实验目的进一步理解数据类型的概念,理解运算符的含进一步理解数据类型的概念,理解运算符的含义;义;掌握运用编程的方法来分析表达式值的方法
4、;掌握运用编程的方法来分析表达式值的方法;重点分析整型表达式运算结果、逻辑表达式运重点分析整型表达式运算结果、逻辑表达式运算结果算结果实验内容实验内容编程完成第二章的习题编程完成第二章的习题实验三实验三 数据的输入和输出数据的输入和输出实验目的实验目的掌握输出函数掌握输出函数printf、输入函数、输入函数scanf的几种常用的控制的几种常用的控制格式的用法格式的用法掌握字符输入函数掌握字符输入函数getchar、输出函数、输出函数putchar的用法的用法实验内容实验内容编写一个程序,输入一个字符,输出它的前后邻居编写一个程序,输入一个字符,输出它的前后邻居编写一个程序,求三角形的面积。其中
5、,编写一个程序,求三角形的面积。其中,a、b、c为三角为三角形的三条边,形的三条边,s=(a+b+c)/2,面积为,面积为area=编写一个程序,求摄氏温度。公式:编写一个程序,求摄氏温度。公式:c=5*(f-32)/9实验四实验四 自己动手编写一个自己动手编写一个C C程序程序实验目的实验目的利用已学的知识编写一个解决实际问题的程序利用已学的知识编写一个解决实际问题的程序 实验内容实验内容设计一个程序,输入正五边形的边长的长度设计一个程序,输入正五边形的边长的长度a,按公式,按公式 计算该五边形外接圆的半径。计算该五边形外接圆的半径。设计一程序,输入空间中两点的坐标设计一程序,输入空间中两点
6、的坐标x1,y1,z1和和x2,y2,z2计算两点之间的距离。计算两点之间的距离。编写一个编写一个C程序,输入一个程序,输入一个3位整数,分别输出百位数、位整数,分别输出百位数、十位数和个位数。十位数和个位数。实验五实验五 选择结构基础选择结构基础实验目的实验目的掌握选择控制语句掌握选择控制语句掌握正确使用逻辑运算符和逻辑表达式掌握正确使用逻辑运算符和逻辑表达式实验内容实验内容编写程序输入四个整数,要求输出最小的一个。编写程序输入四个整数,要求输出最小的一个。编写程序判断体重。体指数编写程序判断体重。体指数(t)=体重体重(w)/身高身高2(h)其中,其中,t18时体重偏轻,时体重偏轻,18=
7、t25时体重正常,时体重正常,25=t=27时为肥胖。时为肥胖。分别用分别用ifelseif语句和语句和switch语句编写书语句编写书P58实验六实验六 选择结构的使用选择结构的使用实验目的实验目的练习根据具体问题,利用选择控制语句编写程序练习根据具体问题,利用选择控制语句编写程序实验内容实验内容有一人过独木桥,到桥中间时看见前面有狼,后面有虎,有一人过独木桥,到桥中间时看见前面有狼,后面有虎,底下是深深的河水。编程写出此人的最后结局。底下是深深的河水。编程写出此人的最后结局。从键盘输入从键盘输入3个数,判断能否构成三角形,若能构成三角个数,判断能否构成三角形,若能构成三角形,计算以这形,计
8、算以这3个数为边长的三角形面积;否则,输出相个数为边长的三角形面积;否则,输出相应的提示信息。应的提示信息。编写一个程序,输入某学生成绩,若成绩在编写一个程序,输入某学生成绩,若成绩在85分以上,分以上,则输出则输出“Very Good”,若成绩在,若成绩在60分到分到85分之间,则输分之间,则输出出“Good”,若成绩低于,若成绩低于60分,则输出分,则输出“Bad”。编写程序,读入一个年份和月份,打印出该月有多少天编写程序,读入一个年份和月份,打印出该月有多少天实验七实验七 循环结构的实现循环结构的实现实验目的实验目的掌握三种基本循环语句掌握三种基本循环语句注意循环条件的控制注意循环条件的
9、控制实验内容实验内容请分别用请分别用while语句和语句和do-while语句编程求语句编程求 的值的值请分别用请分别用while语句和语句和do-while语句编程求语句编程求12/(1+1)+22/(2+1)+32/(3+1)+n2/(n+1)输入一个字符串输入一个字符串,将其中的空格和数字删除后输将其中的空格和数字删除后输出出实验八实验八 循环结构应用循环结构应用实验目的实验目的掌握在程序设计中用循环的方法编写程序实现各掌握在程序设计中用循环的方法编写程序实现各种算法种算法 实验内容实验内容编写程序求出满足不等式编写程序求出满足不等式1+2+3+n500的最的最大大n值及总和。值及总和。
10、编程实现求数列编程实现求数列1/2,3/4,5/8,7/16的所有大于等的所有大于等于于0.000001的数据项之和,显示输出计算结果。的数据项之和,显示输出计算结果。编程找出编程找出1000以内的完数。所谓完数是它等于它以内的完数。所谓完数是它等于它的因子之和。如:的因子之和。如:6=1+2+3。实验九实验九 综合训练综合训练实验目的实验目的掌握用顺序结构、选择结构、循环结构编写程序,掌握用顺序结构、选择结构、循环结构编写程序,解决实际问题解决实际问题 掌握程序的调试方法掌握程序的调试方法实验内容实验内容求求100200之间的素数。之间的素数。求求20+21+22+263。完成完成P5558
11、的练习。的练习。实验十实验十 上机测试上机测试 实验目的实验目的综合测验综合测验实验内容实验内容编写一个程序,能显示两行文字。编写一个程序,能显示两行文字。已知三角形的两个边长已知三角形的两个边长A,B和其夹角和其夹角,求三角形的面,求三角形的面积积S。输入圆的半径输入圆的半径R和一个整数和一个整数K,K=1时,计算圆的面积;时,计算圆的面积;当当K=2时,计算圆的周长;当时,计算圆的周长;当K=3时,既要求面积也要求时,既要求面积也要求周长。编程实现以上功能。周长。编程实现以上功能。编写程序,求编写程序,求1-3+5-7+9-99+101的值。的值。实验十一实验十一 一维数组的使用一维数组的
12、使用 实验目的实验目的掌握一维数组的定义、赋值和输入输出方法;掌握一维数组的定义、赋值和输入输出方法;掌握一维数组的基本用法。掌握一维数组的基本用法。实验内容实验内容1.用筛法求用筛法求100以内的素数。以内的素数。2.编写一个程序,计算若干学生的某门功课的平均成绩、标准差,找出编写一个程序,计算若干学生的某门功课的平均成绩、标准差,找出最高分和最低分。最高分和最低分。3.编写一个程序,让计算机产生编写一个程序,让计算机产生20个随机数,用选择法排序。个随机数,用选择法排序。4.根据上题的内容根据上题的内容1,编一程序在数组中查找一个数。要求:,编一程序在数组中查找一个数。要求:若有该数,则输
13、出该数,否则输出找不到的信息;若有该数,则输出该数,否则输出找不到的信息;用顺序查找实现;用顺序查找实现;用折半查找实现。用折半查找实现。实验十二实验十二 一维数组一维数组实验内容实验内容1、根据实验、根据实验11中的内容中的内容3,编写一程序删除指定的,编写一程序删除指定的一个数。一个数。2、根据实验、根据实验11中的内容中的内容3,编写一程序插入一个指,编写一程序插入一个指定的数,插入后,数组仍然有序。定的数,插入后,数组仍然有序。3、完成、完成C语言复习语言复习中第六章的练习题(选择、中第六章的练习题(选择、填空)填空)实验十三实验十三 二维数组的使用二维数组的使用 实验目的实验目的掌握
14、二维数组的定义、赋值和输入输出的方法。掌握二维数组的定义、赋值和输入输出的方法。练习用二维数组解决实际问题。练习用二维数组解决实际问题。实验内容实验内容1找出一个二维数组的找出一个二维数组的“鞍点鞍点”,即该位置上的元素在该行上最大,即该位置上的元素在该行上最大,在该列上最小。也可能没有在该列上最小。也可能没有“鞍点鞍点”。要求用随机函数生成数据。要求用随机函数生成数据。2使用二维数组,打印杨辉三角形前使用二维数组,打印杨辉三角形前10行。行。3编写程序,将一个编写程序,将一个55的矩阵中最大的元素放在中心,的矩阵中最大的元素放在中心,4个角分别放个角分别放4个最小的元素(按从左到右、从上到下
15、的顺序,依次从小到大存放。个最小的元素(按从左到右、从上到下的顺序,依次从小到大存放。4 编写程序,用随机函数产生一个二维迷宫(用编写程序,用随机函数产生一个二维迷宫(用0表示通道,表示通道,1表示隔表示隔墙)墙)实验十四实验十四 字符数组与字符串函数的使用字符数组与字符串函数的使用 实验目的实验目的掌握字符数组和字符串函数的使用掌握字符数组和字符串函数的使用实验内容实验内容1、编写一个程序,将字符数组、编写一个程序,将字符数组s2中的全部字符拷中的全部字符拷贝到字符数组贝到字符数组s1中。中。(不能使用不能使用strcpy函数。函数。)2、有一篇文章,共有、有一篇文章,共有3行文字,每行有行
16、文字,每行有80个字符。个字符。要求分别统计出其中英文大写字母、小写字母、要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。数字、空格以及其他字符的个数。3、有、有n个字符串,要求找出其中最大和最小的字符个字符串,要求找出其中最大和最小的字符串。串。实验十五实验十五 编程实现非数值信息的处理编程实现非数值信息的处理 实验目的实验目的进一步掌握字符数组的使用;进一步掌握字符数组的使用;了解非数值信息的处理;了解非数值信息的处理;初步了解排序算法。初步了解排序算法。实验内容实验内容1、有、有n个字符串,要求按字母顺序从小到大对其排序。个字符串,要求按字母顺序从小到大对其排序。
17、2、编写一个程序,解决骑士周游世界问题。、编写一个程序,解决骑士周游世界问题。在国际象棋中,马的走步是在国际象棋中,马的走步是“L”形(相当于中国象棋中形(相当于中国象棋中的马走日),如上图。那么,马从国际象棋盘(棋盘为的马走日),如上图。那么,马从国际象棋盘(棋盘为8 8=64格)上的某一点出发,能否跳遍全棋盘,且每个格)上的某一点出发,能否跳遍全棋盘,且每个方格只跳过一次?试打印出马的路线。方格只跳过一次?试打印出马的路线。马实验十六实验十六 排序问题排序问题 实验目的实验目的掌握选择法排序的思想掌握选择法排序的思想掌握冒泡法排序的思想掌握冒泡法排序的思想掌握插入法排序的思想掌握插入法排序
18、的思想实验内容实验内容1编一程序,对编一程序,对n个整数用选择法排序(从小到大);个整数用选择法排序(从小到大);2编一程序,对编一程序,对n个整数用冒泡法排序(从大到小);个整数用冒泡法排序(从大到小);3编一程序,输入若干学生某门功课的成绩,计算平均编一程序,输入若干学生某门功课的成绩,计算平均分、标准差,并按从高分到低分的顺序排列(用插入法分、标准差,并按从高分到低分的顺序排列(用插入法排序)。排序)。实验十六实验十六 常用算法常用算法 实验目的实验目的掌握查找的常用算法(顺序查找、折半查找)掌握查找的常用算法(顺序查找、折半查找)掌握在数组中删除一个元素或插入一个元素的算法掌握在数组中
19、删除一个元素或插入一个元素的算法实验内容实验内容1、根据实验、根据实验15中的内容中的内容1,编一程序在数组中查找一个数。,编一程序在数组中查找一个数。要求:要求:若有该数,则输出该数,否则输出未找到的信息;若有该数,则输出该数,否则输出未找到的信息;用顺序查找实现;用顺序查找实现;用折半查找实现。用折半查找实现。2、根据实验内容、根据实验内容1,编写一程序删除指定的一个数。,编写一程序删除指定的一个数。3、根据实验内容、根据实验内容1,编写一程序插入一个指定的数,插入,编写一程序插入一个指定的数,插入后,数组仍然有序。后,数组仍然有序。实验十七实验十七 函数的定义与调用函数的定义与调用 实验
20、目的实验目的掌握定义函数的方法;掌握定义函数的方法;掌握函数的调用方法;掌握函数的调用方法;掌握函数实参和形参的对应关系;掌握函数实参和形参的对应关系;实验内容实验内容1、写一个判断素数的函数。要求:、写一个判断素数的函数。要求:在主函数中输入一个整数并输出是否素数的信息;在主函数中输入一个整数并输出是否素数的信息;用自定义函数判断此数是否素数;用自定义函数判断此数是否素数;测试数据:测试数据:17、34、2、1、0、49、39。2、编一个函数,其功能是:求高于平均分的人数,并作为函数值返回。要求:、编一个函数,其功能是:求高于平均分的人数,并作为函数值返回。要求:学生的成绩放在学生的成绩放在
21、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、703、P103第三题的第三小题。第三题的第三小题。实验十八实验十八 函数实参、形参的结合及递归调用函数实参、形参的结合及递归调用 实验目的实验目的进一步掌握函数的实参与形参的结合;进一步掌握函数的实参与形参的结合;掌握
22、函数的递归调用;掌握函数的递归调用;实验内容实验内容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)mo
23、ve(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”,&m);printf(“The step to moving%3d diskes:n”,m);Hanoi(m,A,B,C);测试用例:测试用例:4,10。实验十九实验十九 模块化程序设计的综合练习模块化程序设计的综合练习(上上)实验目的实验目的综合掌握程序的控制结构和数组;综合掌握程序的控制结构和数组;进一
24、步学习模块化程序设计;进一步学习模块化程序设计;实验内容实验内容1、有一行原文,请按下面规律译成密码:、有一行原文,请按下面规律译成密码:AZ az,BY by,CX cx,即第即第1个字母变成第个字母变成第26个字母,第个字母,第i个字母变成第个字母变成第(26-i+1)个字母。非字母字符不变。个字母。非字母字符不变。要求:要求:在主函数中输入电文;在主函数中输入电文;写一个函数将密码译回原文;写一个函数将密码译回原文;在主函数中输出密码和原文;在主函数中输出密码和原文;测试用例:测试用例:I am a student,you are a teather.2、有、有n位学生,每个学生有位学生
25、,每个学生有m门功课,请编写程序解决:门功课,请编写程序解决:在主函数中定义数组;在主函数中定义数组;写一个写一个enter函数输入学生的成绩;函数输入学生的成绩;写一个写一个sort函数,按总成绩对数组排序;函数,按总成绩对数组排序;写一个写一个print函数输出成绩表,每行输出一位学生的成绩。函数输出成绩表,每行输出一位学生的成绩。实验二十实验二十 模块化程序设计的综合练习模块化程序设计的综合练习(下下)实验目的实验目的进一步掌握模块化程序设计的思想;进一步掌握模块化程序设计的思想;阶段考核阶段考核实验内容实验内容1、编写一个程序,解决以下问题:、编写一个程序,解决以下问题:n个人围成一圈
26、,从第一个人开始顺序报数个人围成一圈,从第一个人开始顺序报数1、2、3。凡是报到。凡是报到“3”的人退出圈子。找出最后留在圈子中的人的原来的序号。的人退出圈子。找出最后留在圈子中的人的原来的序号。测试用例:测试用例:15、22、39。2、用递归方法求、用递归方法求n阶勒让德多项式的值,递归公式为:阶勒让德多项式的值,递归公式为:3打印杨辉三角形,要求:打印杨辉三角形,要求:用自定义函数输出三角形;用自定义函数输出三角形;输出行数由用户自行决定。输出行数由用户自行决定。实验二十一多文件程序的编辑、编译及运行实验二十一多文件程序的编辑、编译及运行 实验目的实验目的掌握在掌握在TC下如何编辑、编译运
27、行一个多文件程序下如何编辑、编译运行一个多文件程序 实验内容实验内容1.编写一段程序,用来实现编写一段程序,用来实现10个学生成绩的输入、求和、个学生成绩的输入、求和、求平均分,分别用三个函数来实现。求平均分,分别用三个函数来实现。2.将三个函数分别存为三个独立的程序文件,名称分别是将三个函数分别存为三个独立的程序文件,名称分别是f1.c、f2.c和和f3.c 3.在编译状态下,建立一个在编译状态下,建立一个“项目文件项目文件”,名称为,名称为f,将以,将以上三个程序文件放入项目文件中并存盘。上三个程序文件放入项目文件中并存盘。4.编译执行,并得出结果。编译执行,并得出结果。实验二十二实验二十
28、二 预处理命令的使用预处理命令的使用 实验目的实验目的掌握预处理命令(重点是宏定义)的使用方式,并用预处理命令来解决实际问题掌握预处理命令(重点是宏定义)的使用方式,并用预处理命令来解决实际问题 实验内容实验内容1.编译执行下列程序,体会宏定义的用法:编译执行下列程序,体会宏定义的用法:#include#define P 2#define POWER(x)P*x*xmain()int x=1,y=2;printf(“%d,%d”,POWER(x+y),POWER(y+x);2.编写一段程序,用来求两个数的最小值,其中用来求最小值的部分用宏定义来实现。编写一段程序,用来求两个数的最小值,其中用来
29、求最小值的部分用宏定义来实现。编写完成后编译执行。编写完成后编译执行。3.有以下程序,将其格式输出部分改写成宏定义后并添加到有以下程序,将其格式输出部分改写成宏定义后并添加到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 NLmain()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);实验二十三实验
30、二十三 指针和指针变量的使用指针和指针变量的使用 实验目的实验目的掌握指针的概念,要求会定义和使用指针变量;掌握指针的概念,要求会定义和使用指针变量;了解指向指针的概念及其使用方法;了解指向指针的概念及其使用方法;实验内容实验内容1.编制交换整型变量值的函数编制交换整型变量值的函数swap()。函数。函数swap()的功能是交换两的功能是交换两个整型变量的值,函数个整型变量的值,函数swap()设有两个指向整型变量的指针参数,设有两个指向整型变量的指针参数,函数利用指针参数间接访问变量。调用函数利用指针参数间接访问变量。调用swap()函数时,两个参数函数时,两个参数分别是两个待交换值得整型变
31、量的地址。分别是两个待交换值得整型变量的地址。2.编写程序,用指针来实现数组的输入和输出。数组定义如下:编写程序,用指针来实现数组的输入和输出。数组定义如下:a10=1,2,3,4,5,6,7,8,9,03.用指针编写一个程序,解决以下问题:用指针编写一个程序,解决以下问题:n个人围成一圈,从第一个人开始顺序报数个人围成一圈,从第一个人开始顺序报数1、2、3。凡是报到。凡是报到“3”的的人退出圈子。找出最后留在圈子中的人的原来的序号。测试用例:人退出圈子。找出最后留在圈子中的人的原来的序号。测试用例:15、22、39。实验二十三实验二十三 指针和指针变量的使用指针和指针变量的使用输入10个整数
32、,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:输入10个数;对换处理;输出10个数。有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。写一函数实现上面的功能,在主函数中输入n个整数和输出调整后的n个数。有一个班5个学生,5门课程。求第一门课的平均成绩;找出有2门以上课程不及格的学生,输出他们的学号和全部课程成绩和平均分;找出平均成绩在90分以上或全部课程成绩在85分以上的学生。分别编写3个函数实现以上3个要求。实验二十四实验二十四 用用“数组指针数组指针”和和“字符串指针字符串指针”解决实际问题解决实际问题 实验目的实验目的掌握数组指针和字符串指针
33、二者的概念和联系;掌握数组指针和字符串指针二者的概念和联系;学会使用字符串的指针的指向字符串的指针变量;学会使用字符串的指针的指向字符串的指针变量;学会使用数组的指针和指向数组的指针变量;学会使用数组的指针和指向数组的指针变量;学会使用指向函数的指针变量;学会使用指向函数的指针变量;实验内容实验内容1.编制实现对整型数组前编制实现对整型数组前n个成分求和的函数个成分求和的函数sun()。2.编写一函数,将字符串按照顺序的逆序存放,并在主函数中从键盘输入该字符串(字编写一函数,将字符串按照顺序的逆序存放,并在主函数中从键盘输入该字符串(字符串长度不超过符串长度不超过30),输出其逆序结果。),输
34、出其逆序结果。3.下面的程序是用来完成将一个下面的程序是用来完成将一个33的矩阵进行转置。将程序补充完整并调试通过。的矩阵进行转置。将程序补充完整并调试通过。main()int a33,*p,i;printf(“请按行输入请按行输入33的矩阵:的矩阵:n”);for(i=0;i3;i+)scanf(“%d%d%d”,&ai0,&ai1,&ai2);p=&a00;move(p);printf(“转置后的矩阵为:转置后的矩阵为:n”);for(i=0;i3;i+)printf(“%d%d%dn”,ai0,ai1,ai2);趣味小程序编写一个程序,用随机数发生器生成句子。程序中要使用以下4个char
35、类型的指针数组: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
36、”,“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插入到deckrowcolu
37、mn中,表示这张牌将是从洗好的牌中发出的第一张牌;继续这个过程,把数2、3、52随机地插入到数组deck中,表示从洗好的牌中发出的第2、第3、第52张牌。在把发牌序号插入到数组deck中的过程中,一张牌被选择两次以上是可能的,第二次及以后的选中应该忽略,因此第二次及以后选中时,应重新随机得到row、column本算法效率低下,请重新设计算法,提高效率。实验二十五实验二十五 结构体数据类型的定义和应用结构体数据类型的定义和应用 实验目的实验目的掌握结构体的定义方式和使用,并可以地用结构体来处理一些简单问题;掌握结构体的定义方式和使用,并可以地用结构体来处理一些简单问题;掌握结构体类型变量的定义和
38、使用;掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和应用。掌握结构体类型数组的概念和应用。实验内容实验内容1.从键盘输入从键盘输入10个人的姓名和年龄并存到结构数组中,编写程序从中查找年龄最大和个人的姓名和年龄并存到结构数组中,编写程序从中查找年龄最大和最小的人的姓名和年龄,并输出。最小的人的姓名和年龄,并输出。2.利用结构体来实现一个简单的数据库,该数据库可以完成添加、按序号查询、显示等利用结构体来实现一个简单的数据库,该数据库可以完成添加、按序号查询、显示等功能。下面将该程序的主函数部分给出,要求学生将给出自定义函数补充完整,并在功能。下面将该程序的主函数部分给出,要求学生将给
39、出自定义函数补充完整,并在机器上调试通过。机器上调试通过。#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;;/*年龄*/实验二十五实验二十五 结构体数据类型的定义和应用结构体数据类型的定义和应用
40、 实验内容(续)实验内容(续)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();b
41、reak;case 4:exit(0);default:break;实验二十六实验二十六 单链表的建立和操作单链表的建立和操作 实验目的实验目的在掌握指针和结构体的基础上学习单链表的使用,让学在掌握指针和结构体的基础上学习单链表的使用,让学生初步掌握基本数据结构的操作方法;生初步掌握基本数据结构的操作方法;掌握链表的概念,初步学会对链表进行操作掌握链表的概念,初步学会对链表进行操作。实验内容实验内容1.建立一个包含学生信息的单链表,要求包含三个学生,建立一个包含学生信息的单链表,要求包含三个学生,每个学生具有学号、姓名、成绩三项基本信息。每个学生具有学号、姓名、成绩三项基本信息。2.在以上单链
42、表中再加入一个学生。在以上单链表中再加入一个学生。3.将一个链表按逆序排列,即将链头当链尾,链尾当链头。将一个链表按逆序排列,即将链头当链尾,链尾当链头。实验二十七实验二十七 综合练习综合练习 实验目的实验目的在前面学习的基础上,要求学生掌握在前面学习的基础上,要求学生掌握C的综合使用;的综合使用;复习复习C语言中最基本的结构,如数组、函数、指针、结语言中最基本的结构,如数组、函数、指针、结构体等。构体等。实验内容实验内容1.编程实现,从终端输入名字表,然后按字符串从小到大编程实现,从终端输入名字表,然后按字符串从小到大顺序排序名字表,最后输出排序后的名字表。顺序排序名字表,最后输出排序后的名
43、字表。2.将一个将一个55的矩阵中最大的元素放在中心,的矩阵中最大的元素放在中心,4个角分别个角分别放放4个最小的元素(按从左到右、从上到下的的顺序,个最小的元素(按从左到右、从上到下的的顺序,依次从小到大存放),编程实现。依次从小到大存放),编程实现。实验二十八实验二十八 上机测试上机测试 测试内容测试内容编程实现从键盘输入以字符串,要求将每个单编程实现从键盘输入以字符串,要求将每个单词中的第一个字母改写成大写字母(如果原来词中的第一个字母改写成大写字母(如果原来已经是大写字母则保持不变)然后输出转换结已经是大写字母则保持不变)然后输出转换结果。果。利用指针数组实现,在主函数中输入利用指针数
44、组实现,在主函数中输入10个等长个等长的字符串,用另一个函数对它们进行排序,然的字符串,用另一个函数对它们进行排序,然后在主函数中输出已排好序的字符串。后在主函数中输出已排好序的字符串。请详细说明实现上述两题的基本思想和算法。请详细说明实现上述两题的基本思想和算法。实验二十九实验二十九 文件的基本操作文件的基本操作 实验目的实验目的掌握文件的基本使用;掌握文件的基本使用;掌握基本文件库函数的用法;掌握基本文件库函数的用法;掌握文件以及缓冲文件系统、文件指针的概念。掌握文件以及缓冲文件系统、文件指针的概念。实验内容实验内容1.编程实现从键盘输入一个字符串,将其中的小写字母全编程实现从键盘输入一个
45、字符串,将其中的小写字母全部转换成大写字母,然后输出到磁盘文件部转换成大写字母,然后输出到磁盘文件“test”中保中保存。输入的字符串以存。输入的字符串以“!”结束。结束。2.先有两个文件先有两个文件A和和B,文件,文件A存放的信息是存放的信息是“QingHai University”,文件文件B中存放的信息是中存放的信息是“”,现要求将这,现要求将这两个文件中的信息进行合并,最后输出两个文件中的信息进行合并,最后输出“QingHai University I am a student”,并存放到文件,并存放到文件C中去。中去。实验三十实验三十 用文件实现一个具体的应用用文件实现一个具体的应用
46、 实验目的实验目的通过编制该程序让学生初步掌握用通过编制该程序让学生初步掌握用C语言文件来实现具体的应用程序的开发;语言文件来实现具体的应用程序的开发;进一步熟悉如何利用文件进行世纪应用程序开发的技巧。进一步熟悉如何利用文件进行世纪应用程序开发的技巧。实验内容实验内容有有5个学生,每个学生有个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生学号、门课的成绩,从键盘输入以上数据(包括学生学号、姓名、三门课的成绩),要输入的姓名、三门课的成绩),要输入的5个学生的信息如下:个学生的信息如下:99101 Wang 89,98,67.5 99103 Li 60,80,9099106 Fun
47、75.5,91.5,99 99110 Ling 100,50,62.599113 Yuan 58,68,71现编程实现以下操作:现编程实现以下操作:1.计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud。2.将将stud文件中的学生数据按平均分进行排序处理,并将已排序的学生数据存入一文件中的学生数据按平均分进行排序处理,并将已排序的学生数据存入一个新文件个新文件stud_sort中。中。3.在已排好序的学生成绩中插入一个学生的在已排好序的学生成绩中插入一个学生的3门课成绩,实现方法如下:先计算新门课成绩,实现方法如下:先计算新插入学生的平均成绩,然后将它按平均成绩高低顺序插入,插入后建立一个新文插入学生的平均成绩,然后将它按平均成绩高低顺序插入,插入后建立一个新文件件new_sort。要插入的学生的数据如下:要插入的学生的数据如下:99108 Xin 90,95,60
限制150内