《高级程序语言设计实验.ppt》由会员分享,可在线阅读,更多相关《高级程序语言设计实验.ppt(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 实实 验验 一一 从键盘上输入四个短整型数,求这四个数中最从键盘上输入四个短整型数,求这四个数中最从键盘上输入四个短整型数,求这四个数中最从键盘上输入四个短整型数,求这四个数中最大的无符号数和最小无符号数及其对应的输入值,并大的无符号数和最小无符号数及其对应的输入值,并大的无符号数和最小无符号数及其对应的输入值,并大的无符号数和最小无符号数及其对应的输入值,并输出最大的无符号数与最小无符号数的差。输出最大的无符号数与最小无符号数的差。输出最大的无符号数与最小无符号数的差。输出最大的无符号数与最小无符号数的差。提示:提示:提示:提示:定义四个短整型变量,通过定义四个短整型变量,通过定义四个短整
2、型变量,通过定义四个短整型变量,通过scanfscanfscanfscanf函数输入值,利函数输入值,利函数输入值,利函数输入值,利用用用用ifififif语句逐一比较,分别计算最大无符号数和最小无符号数,语句逐一比较,分别计算最大无符号数和最小无符号数,语句逐一比较,分别计算最大无符号数和最小无符号数,语句逐一比较,分别计算最大无符号数和最小无符号数,比较时要进行强制类型转换。比较时要进行强制类型转换。比较时要进行强制类型转换。比较时要进行强制类型转换。实实 验验 二二 从键盘上输入一个长整型数,判断该长整型数从键盘上输入一个长整型数,判断该长整型数从键盘上输入一个长整型数,判断该长整型数从
3、键盘上输入一个长整型数,判断该长整型数的高的高的高的高16161616位所表示的有符号数及低位所表示的有符号数及低位所表示的有符号数及低位所表示的有符号数及低16161616位所表示的有符号位所表示的有符号位所表示的有符号位所表示的有符号数的奇偶性,并将最高数的奇偶性,并将最高数的奇偶性,并将最高数的奇偶性,并将最高8 8 8 8位与最低位与最低位与最低位与最低8 8 8 8位、次高位、次高位、次高位、次高8 8 8 8位与次低位与次低位与次低位与次低8 8 8 8位交换,以十六进制形式输出交换后的结果。位交换,以十六进制形式输出交换后的结果。位交换,以十六进制形式输出交换后的结果。位交换,以
4、十六进制形式输出交换后的结果。提示:提示:提示:提示:利用位运算符来实现,包括:按位与利用位运算符来实现,包括:按位与利用位运算符来实现,包括:按位与利用位运算符来实现,包括:按位与&、左移、左移、左移、左移等位运算。等位运算。等位运算。等位运算。例如:例如:例如:例如:长整型数长整型数长整型数长整型数0X12345678,0X12345678,0X12345678,0X12345678,高高高高16161616位数为位数为位数为位数为0X12340X12340X12340X1234,低,低,低,低16161616位位位位数为数为数为数为0X5678,0X5678,0X5678,0X5678,
5、交换后的数为交换后的数为交换后的数为交换后的数为0X785634120X785634120X785634120X78563412 实实 验验 三三 从键盘上输入一个从键盘上输入一个从键盘上输入一个从键盘上输入一个5 5 5 5位整数,判断该整数是否为位整数,判断该整数是否为位整数,判断该整数是否为位整数,判断该整数是否为回文数。回文数。回文数。回文数。实实 验验 四四 从键盘输入一个四位正整数。首先分离出该正整数中的每一位数字,并从键盘输入一个四位正整数。首先分离出该正整数中的每一位数字,并从键盘输入一个四位正整数。首先分离出该正整数中的每一位数字,并从键盘输入一个四位正整数。首先分离出该正整
6、数中的每一位数字,并按逆序显示输出各位数字;然后用分离出的每位数字组成一个最大数和一个按逆序显示输出各位数字;然后用分离出的每位数字组成一个最大数和一个按逆序显示输出各位数字;然后用分离出的每位数字组成一个最大数和一个按逆序显示输出各位数字;然后用分离出的每位数字组成一个最大数和一个最小数,并显示输出。最小数,并显示输出。最小数,并显示输出。最小数,并显示输出。例如,若输入的四位正整数为例如,若输入的四位正整数为例如,若输入的四位正整数为例如,若输入的四位正整数为3175317531753175。按逆序显示输出分离出的各位。按逆序显示输出分离出的各位。按逆序显示输出分离出的各位。按逆序显示输出
7、分离出的各位数字为数字为数字为数字为5713571357135713;组成的最大数为;组成的最大数为;组成的最大数为;组成的最大数为7531753175317531,组成的最小数为,组成的最小数为,组成的最小数为,组成的最小数为1357135713571357。具体要求:具体要求:具体要求:具体要求:(1 1 1 1)输入前要有提示。并检查输入数据的合法性,若输入的数据不合)输入前要有提示。并检查输入数据的合法性,若输入的数据不合)输入前要有提示。并检查输入数据的合法性,若输入的数据不合)输入前要有提示。并检查输入数据的合法性,若输入的数据不合法,则显示输出错误信息。法,则显示输出错误信息。法
8、,则显示输出错误信息。法,则显示输出错误信息。(2 2 2 2)对输出结果要用英文或汉语拼音进行具体说明。)对输出结果要用英文或汉语拼音进行具体说明。)对输出结果要用英文或汉语拼音进行具体说明。)对输出结果要用英文或汉语拼音进行具体说明。实验提示实验提示实验提示实验提示 (1 1 1 1)首先要判断输入的数据是否是四位整数。)首先要判断输入的数据是否是四位整数。)首先要判断输入的数据是否是四位整数。)首先要判断输入的数据是否是四位整数。(2 2 2 2)然后分离出该四位正整数的四位数字,例如从千位到个位依次为)然后分离出该四位正整数的四位数字,例如从千位到个位依次为)然后分离出该四位正整数的四
9、位数字,例如从千位到个位依次为)然后分离出该四位正整数的四位数字,例如从千位到个位依次为a,b,c,da,b,c,da,b,c,da,b,c,d,则按逆序显示输出为,则按逆序显示输出为,则按逆序显示输出为,则按逆序显示输出为dcbadcbadcbadcba。(3 3 3 3)最后对四位数字)最后对四位数字)最后对四位数字)最后对四位数字a,b,c,da,b,c,da,b,c,da,b,c,d按从大到小进行排序,按该顺序组成一按从大到小进行排序,按该顺序组成一按从大到小进行排序,按该顺序组成一按从大到小进行排序,按该顺序组成一个最大数,按逆序组成一个最小数。个最大数,按逆序组成一个最小数。个最大
10、数,按逆序组成一个最小数。个最大数,按逆序组成一个最小数。实实 验验 五五任何一个自然数任何一个自然数任何一个自然数任何一个自然数m m m m的立方均可写成的立方均可写成的立方均可写成的立方均可写成m m m m个连续奇数个连续奇数个连续奇数个连续奇数之和。之和。之和。之和。例如:例如:例如:例如:13=1 13=1 13=1 13=1 23=3+5 23=3+5 23=3+5 23=3+5 33=7+9+11 33=7+9+11 33=7+9+11 33=7+9+11 43=13+15+17+19 43=13+15+17+19 43=13+15+17+19 43=13+15+17+19 编
11、程实现:输入一自然数编程实现:输入一自然数编程实现:输入一自然数编程实现:输入一自然数n n n n,求组成,求组成,求组成,求组成n3n3n3n3的的的的n n n n个连个连个连个连续奇数。续奇数。续奇数。续奇数。实验提示实验提示实验提示实验提示 使用双重循环,满足条件时用使用双重循环,满足条件时用使用双重循环,满足条件时用使用双重循环,满足条件时用breakbreak退出。退出。退出。退出。实实 验验 六六 编写一个程序,输入两个包含编写一个程序,输入两个包含编写一个程序,输入两个包含编写一个程序,输入两个包含10101010个元素的数组,先将第一个元素的数组,先将第一个元素的数组,先将
12、第一个元素的数组,先将第一个数组采用冒泡法进行降序排列,第二个数组采用选择排序进个数组采用冒泡法进行降序排列,第二个数组采用选择排序进个数组采用冒泡法进行降序排列,第二个数组采用选择排序进个数组采用冒泡法进行降序排列,第二个数组采用选择排序进行降序排列,然后将这两个数组合并成一个降序数组。行降序排列,然后将这两个数组合并成一个降序数组。行降序排列,然后将这两个数组合并成一个降序数组。行降序排列,然后将这两个数组合并成一个降序数组。实实 验验 七七 编写一个程序,其功能是将用户输入的一段英文(注意包编写一个程序,其功能是将用户输入的一段英文(注意包编写一个程序,其功能是将用户输入的一段英文(注意
13、包编写一个程序,其功能是将用户输入的一段英文(注意包含空格、逗号、句号及英文字母)分离出单词,并以每个单词含空格、逗号、句号及英文字母)分离出单词,并以每个单词含空格、逗号、句号及英文字母)分离出单词,并以每个单词含空格、逗号、句号及英文字母)分离出单词,并以每个单词出现的次数从高到低输出单词及其次数,次数相同的单词以其出现的次数从高到低输出单词及其次数,次数相同的单词以其出现的次数从高到低输出单词及其次数,次数相同的单词以其出现的次数从高到低输出单词及其次数,次数相同的单词以其对应字符串大小升序输出。对应字符串大小升序输出。对应字符串大小升序输出。对应字符串大小升序输出。例如:例如:例如:例
14、如:Green is on the leftGreen is on the left,Red is on the RightRed is on the Right,the right the right is afraid of water,the left is afraid of insects.is afraid of water,the left is afraid of insects.输出:输出:输出:输出:is(4)the(4)afraid(2)left(2)of(2)on(2)right(2)is(4)the(4)afraid(2)left(2)of(2)on(2)right(
15、2)Green(1)insects(1)Red(1)water(1)Green(1)insects(1)Red(1)water(1)提示提示提示提示:(1)(1)(1)(1)建立一函数用于接收输入的英文段落。建立一函数用于接收输入的英文段落。建立一函数用于接收输入的英文段落。建立一函数用于接收输入的英文段落。(2)(2)(2)(2)建立字符串数组用于保存每次分离出的单词,及出现的建立字符串数组用于保存每次分离出的单词,及出现的建立字符串数组用于保存每次分离出的单词,及出现的建立字符串数组用于保存每次分离出的单词,及出现的次数次数次数次数(编一函数编一函数编一函数编一函数)。(3)(3)(3)(
16、3)对字符串数组按规定进行排序对字符串数组按规定进行排序对字符串数组按规定进行排序对字符串数组按规定进行排序(编一函数编一函数编一函数编一函数)实实 验验 八八分书问题:分书问题:分书问题:分书问题:有编号分别为有编号分别为有编号分别为有编号分别为0 0 0 0,1 1 1 1,2 2 2 2,3 3 3 3,4 4 4 4的的的的5 5 5 5本书,准备分给本书,准备分给本书,准备分给本书,准备分给5 5 5 5个人个人个人个人A A A A,B B B B,C C C C,D D D D,E E E E,每个人阅读兴趣用一个二维数组加以描述,公式如下:,每个人阅读兴趣用一个二维数组加以描述
17、,公式如下:,每个人阅读兴趣用一个二维数组加以描述,公式如下:,每个人阅读兴趣用一个二维数组加以描述,公式如下:Likeij=1 i喜欢喜欢j书书0 i不喜欢不喜欢j书书 写一个程序,输出所有分书方案,让人人皆大欢喜。假定写一个程序,输出所有分书方案,让人人皆大欢喜。假定写一个程序,输出所有分书方案,让人人皆大欢喜。假定写一个程序,输出所有分书方案,让人人皆大欢喜。假定5 5 5 5个人对个人对个人对个人对5 5 5 5本书的阅读兴趣如下图所示。本书的阅读兴趣如下图所示。本书的阅读兴趣如下图所示。本书的阅读兴趣如下图所示。书书 人人01234A00110B11001C01101D00010E0
18、1001 解题思路:解题思路:解题思路:解题思路:(1 1 1 1)定义一个整型的二维数组,将表中的阅读喜好用初始化方法赋给)定义一个整型的二维数组,将表中的阅读喜好用初始化方法赋给)定义一个整型的二维数组,将表中的阅读喜好用初始化方法赋给)定义一个整型的二维数组,将表中的阅读喜好用初始化方法赋给这个二维数组。可定义:这个二维数组。可定义:这个二维数组。可定义:这个二维数组。可定义:int like55=0,0,1,1,0,1,1,0,0,1,int like55=0,0,1,1,0,1,1,0,0,1,int like55=0,0,1,1,0,1,1,0,0,1,int like55=0,0
19、,1,1,0,1,1,0,0,1,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,1;0,1,0,0,1;0,1,0,0,1;0,1,0,0,1;(2)(2)(2)(2)定义一个整型一维数组定义一个整型一维数组定义一个整型一维数组定义一个整型一维数组book5book5book5book5,用来记录书是否已被选用。用下,用来记录书是否已被选用。用下,用来记录书是否已被选用。用下,用来记录书是否已被选用。用下标作为标作为标作为标作为5 5 5 5本书的编号,被选过元素值
20、为本书的编号,被选过元素值为本书的编号,被选过元素值为本书的编号,被选过元素值为1 1 1 1,未被选过元素值为,未被选过元素值为,未被选过元素值为,未被选过元素值为0 0 0 0,初始化,初始化,初始化,初始化皆为皆为皆为皆为0 0 0 0。int book5=0,0,0,0,0;int book5=0,0,0,0,0;int book5=0,0,0,0,0;int book5=0,0,0,0,0;(3)(3)(3)(3)画出思路图。画出思路图。画出思路图。画出思路图。定义试着给第定义试着给第定义试着给第定义试着给第i i i i人分书的函数人分书的函数人分书的函数人分书的函数Try(i)T
21、ry(i)Try(i)Try(i),i=0,1,2,3,4i=0,1,2,3,4i=0,1,2,3,4i=0,1,2,3,4。试着给第试着给第试着给第试着给第i i i i个人分书,先试分个人分书,先试分个人分书,先试分个人分书,先试分0 0 0 0号书,再分号书,再分号书,再分号书,再分1 1 1 1号书,分号书,分号书,分号书,分2 2 2 2号书,号书,号书,号书,因此有一个与结点,让,因此有一个与结点,让,因此有一个与结点,让,因此有一个与结点,让j j j j表示书,表示书,表示书,表示书,j=0j=0j=0j=0,1 1 1 1,2 2 2 2,3 3 3 3,4 4 4 4。LP
22、 LP LP LP为循环结构的循环体,如下图所示。为循环结构的循环体,如下图所示。为循环结构的循环体,如下图所示。为循环结构的循环体,如下图所示。Try(i)j=012 34LPLPLPLPLP条件:条件:c=(likeij0&bookj=0)LPc!=1c=1什么也什么也不做不做sh1takei=j;sh2sh3bookj=1;i=4i!=4n=n+1;输出方案输出方案nTry(i+1)bookj=0;条件条件c是由两部分是由两部分“与与”起来起来的,的,“第第i个人喜欢个人喜欢j书,且书,且j书尚书尚未被分走未被分走”。满足这个条件是。满足这个条件是i人能够得到人能够得到j书的条件。书的条
23、件。如果不满足如果不满足c条件,则什么也条件,则什么也不做,这是直接可解结点。不做,这是直接可解结点。满足满足c条件,做条件,做3件事。件事。第一件事:将第一件事:将j书分给书分给i,用一个数组,用一个数组takei=j,记住书记住书j给了给了i,同时记录,同时记录j书已被选用,书已被选用,bookj=1.第二件事:查看第二件事:查看i是否为是否为4,如果不为,如果不为4,表示尚未将所有,表示尚未将所有5个人所要的书分完,这时应递归个人所要的书分完,这时应递归再试下一个人,即再试下一个人,即Try(i+1)。若果。若果i=4,则应先使方案数,则应先使方案数n=n+1,然后输出第,然后输出第n个
24、方案下的个方案下的每个人所得之书。每个人所得之书。第三件事:回溯。让第第三件事:回溯。让第i人退回人退回j书,恢复书,恢复j书尚未被选的标志,即书尚未被选的标志,即bookj=0.这是在已输出这是在已输出第第n个方案之后,去寻找下一个分书方案所必需的。个方案之后,去寻找下一个分书方案所必需的。实实 验验 九九 在字符串处理中,常常需要实现取子串、插入、删除这三在字符串处理中,常常需要实现取子串、插入、删除这三在字符串处理中,常常需要实现取子串、插入、删除这三在字符串处理中,常常需要实现取子串、插入、删除这三种操作,编译程序了来实现这三种操作。问题描述如下:种操作,编译程序了来实现这三种操作。问
25、题描述如下:种操作,编译程序了来实现这三种操作。问题描述如下:种操作,编译程序了来实现这三种操作。问题描述如下:(1 1 1 1)取子串操作:输入字符串、起始位置、子串长度,输)取子串操作:输入字符串、起始位置、子串长度,输)取子串操作:输入字符串、起始位置、子串长度,输)取子串操作:输入字符串、起始位置、子串长度,输出子串的内容。出子串的内容。出子串的内容。出子串的内容。(2 2 2 2)插入操作:输入源字符串、目标字符串、指定位置,)插入操作:输入源字符串、目标字符串、指定位置,)插入操作:输入源字符串、目标字符串、指定位置,)插入操作:输入源字符串、目标字符串、指定位置,把源字符串插入到
26、目标字符串的指定位置前,并输出插入后的把源字符串插入到目标字符串的指定位置前,并输出插入后的把源字符串插入到目标字符串的指定位置前,并输出插入后的把源字符串插入到目标字符串的指定位置前,并输出插入后的目标字符串。目标字符串。目标字符串。目标字符串。(3 3 3 3)删除操作:输入字符串、待删除子串的起始位置和长)删除操作:输入字符串、待删除子串的起始位置和长)删除操作:输入字符串、待删除子串的起始位置和长)删除操作:输入字符串、待删除子串的起始位置和长度,从字符串中删除待删除子串,并输出删除后的字符串。度,从字符串中删除待删除子串,并输出删除后的字符串。度,从字符串中删除待删除子串,并输出删除
27、后的字符串。度,从字符串中删除待删除子串,并输出删除后的字符串。程序运行时先给出一个菜单,由使用者输入想进行的操作程序运行时先给出一个菜单,由使用者输入想进行的操作程序运行时先给出一个菜单,由使用者输入想进行的操作程序运行时先给出一个菜单,由使用者输入想进行的操作及实现该项操作所需要的参数。输入完毕后,由程序给出操作及实现该项操作所需要的参数。输入完毕后,由程序给出操作及实现该项操作所需要的参数。输入完毕后,由程序给出操作及实现该项操作所需要的参数。输入完毕后,由程序给出操作后的结果。后的结果。后的结果。后的结果。实实 验验 十十 假设电话收费标准为假设电话收费标准为假设电话收费标准为假设电话
28、收费标准为:(1):(1):(1):(1)国际长途国际长途国际长途国际长途1.001.001.001.00元元元元/分钟,分钟,分钟,分钟,(2)(2)(2)(2)国国国国内长途内长途内长途内长途0.600.600.600.60元元元元/分钟,分钟,分钟,分钟,(3)(3)(3)(3)市话前市话前市话前市话前3 3 3 3分钟分钟分钟分钟0.200.200.200.20元,元,元,元,3 3 3 3分钟以后分钟以后分钟以后分钟以后0.100.100.100.10元元元元/分钟。现通过键盘输入分钟。现通过键盘输入分钟。现通过键盘输入分钟。现通过键盘输入6 6 6 6个话单记录(包括:通话日期、主
29、个话单记录(包括:通话日期、主个话单记录(包括:通话日期、主个话单记录(包括:通话日期、主叫码、被叫码、起始时间、通话时间)叫码、被叫码、起始时间、通话时间)叫码、被叫码、起始时间、通话时间)叫码、被叫码、起始时间、通话时间),要求计算每个话单的话要求计算每个话单的话要求计算每个话单的话要求计算每个话单的话费,并按话费从高到低输出所有的话单信息。费,并按话费从高到低输出所有的话单信息。费,并按话费从高到低输出所有的话单信息。费,并按话费从高到低输出所有的话单信息。话单格式:话单格式:话单格式:话单格式:2006-06-06 67862101 01068790908 10:20:50 10:24:30 2006-06-06 67862101 01068790908 10:20:50 10:24:30 2006-06-06 67862101 01068790908 10:20:50 10:24:30 2006-06-06 67862101 01068790908 10:20:50 10:24:30