120 likes | 311 Views
实 验 一 从键盘上输入四个短整型数,求这四个数中最大的无符号数和最小无符号数及其对应的输入值,并输出最大的无符号数与最小无符号数的差。 [ 提示: 定义四个短整型变量,通过 scanf 函数输入值,利用 if 语句逐一比较,分别计算最大无符号数和最小无符号数,比较时要进行强制类型转换。 ]. 实 验 二 从键盘上输入一个长整型数,判断该长整型数的高 16 位所表示的有符号数及低 16 位所表示的有符号数的奇偶性,并将最高 8 位与最低 8 位、次高 8 位与次低 8 位交换,以十六进制形式输出交换后的结果。
E N D
实 验 一 • 从键盘上输入四个短整型数,求这四个数中最大的无符号数和最小无符号数及其对应的输入值,并输出最大的无符号数与最小无符号数的差。 • [提示:定义四个短整型变量,通过scanf函数输入值,利用if语句逐一比较,分别计算最大无符号数和最小无符号数,比较时要进行强制类型转换。]
实 验 二 • 从键盘上输入一个长整型数,判断该长整型数的高16位所表示的有符号数及低16位所表示的有符号数的奇偶性,并将最高8位与最低8位、次高8位与次低8位交换,以十六进制形式输出交换后的结果。 • [提示:利用位运算符来实现,包括:按位与&、左移<<、右移>>等位运算。] • [例如:长整型数0X12345678,高16位数为0X1234,低16位数为0X5678,交换后的数为0X78563412]
实 验 三 • 从键盘上输入一个5位整数,判断该整数是否为回文数。
实 验 四 • 从键盘输入一个四位正整数。首先分离出该正整数中的每一位数字,并按逆序显示输出各位数字;然后用分离出的每位数字组成一个最大数和一个最小数,并显示输出。 • 例如,若输入的四位正整数为3175。按逆序显示输出分离出的各位数字为5713;组成的最大数为7531,组成的最小数为1357。 • 具体要求: • (1)输入前要有提示。并检查输入数据的合法性,若输入的数据不合法,则显示输出错误信息。 • (2)对输出结果要用英文或汉语拼音进行具体说明。 • 〖实验提示〗 • (1)首先要判断输入的数据是否是四位整数。 • (2)然后分离出该四位正整数的四位数字,例如从千位到个位依次为a,b,c,d,则按逆序显示输出为dcba。 • (3)最后对四位数字a,b,c,d按从大到小进行排序,按该顺序组成一个最大数,按逆序组成一个最小数。
实 验 五 • 任何一个自然数m的立方均可写成m个连续奇数之和。 • 例如: • 1^3 = 1 • 2^3 = 3+5 • 3^3 = 7+9+11 • 4^3 = 13+15+17+19 • 编程实现:输入一自然数n,求组成n3的n个连续奇数。 • 〖实验提示〗 • 使用双重循环,满足条件时用break退出。
实 验 六 • 编写一个程序,输入两个包含10个元素的数组,先将第一个数组采用冒泡法进行降序排列,第二个数组采用选择排序进行降序排列,然后将这两个数组合并成一个降序数组。
实 验 七 • 编写一个程序,其功能是将用户输入的一段英文(注意包含空格、逗号、句号及英文字母)分离出单词,并以每个单词出现的次数从高到低输出单词及其次数,次数相同的单词以其对应字符串大小升序输出。 • 例如:Green is on the left,Red is on the Right,the right is afraid of water, the left is afraid of insects. • 输出:is(4) the(4) afraid(2) left(2) of(2) on(2) right(2) Green(1) insects(1) Red(1) water(1) • [提示: • (1) 建立一函数用于接收输入的英文段落。 • (2) 建立字符串数组用于保存每次分离出的单词,及出现的次数(编一函数)。 • (3) 对字符串数组按规定进行排序(编一函数) ]
1 i喜欢j书 Like[i][j] = 0 i不喜欢j书 • 实 验 八 • 分书问题: • 有编号分别为0,1,2,3,4的5本书,准备分给5个人A,B,C,D,E,每个人阅读兴趣用一个二维数组加以描述,公式如下: 写一个程序,输出所有分书方案,让人人皆大欢喜。假定5个人对5本书的阅读兴趣如下图所示。
解题思路: • (1)定义一个整型的二维数组,将表中的阅读喜好用初始化方法赋给这个二维数组。可定义: • int like[5][5] = { {0,0,1,1,0}, {1,1,0,0,1}, • {0,1,1,0,1}, {0,0,0,1,0}, • {0,1,0,0,1} }; • (2) 定义一个整型一维数组book[5],用来记录书是否已被选用。用下标作为5本书的编号,被选过元素值为1,未被选过元素值为0,初始化皆为0。 • int book[5] = {0,0,0,0,0}; • (3) 画出思路图。 • ① 定义试着给第i人分书的函数Try(i),i = 0,1,2,3,4。 • ② 试着给第i个人分书,先试分0号书,再分1号书,分2号书,……,因此有一个与结点,让j表示书,j=0,1,2,3,4。 • ③ LP为循环结构的循环体,如下图所示。
条件:c = (like[i][j]>0 && book[j]=0) Try(i) LP c != 1 c == 1 什么也不做 j=0 1 4 2 3 sh1 sh3 sh2 LP LP LP LP LP book[j]=0; take[i] = j; i != 4 book[j] = 1; i == 4 Try(i+1) n = n + 1; 输出方案n ④ 条件c是由两部分“与”起来的,“第i个人喜欢j书,且j书尚未被分走”。满足这个条件是i人能够得到j书的条件。 ⑤ 如果不满足c条件,则什么也不做,这是直接可解结点。 ⑥ 满足c条件,做3件事。 第一件事:将j书分给i,用一个数组take[i]=j,记住书j给了i,同时记录j书已被选用,book[j]=1. 第二件事:查看i是否为4,如果不为4,表示尚未将所有5个人所要的书分完,这时应递归再试下一个人,即Try(i+1)。若果i==4,则应先使方案数n=n+1,然后输出第n个方案下的每个人所得之书。 第三件事:回溯。让第i人退回j书,恢复j书尚未被选的标志,即book[j]=0.这是在已输出第n个方案之后,去寻找下一个分书方案所必需的。
实 验 九 • 在字符串处理中,常常需要实现取子串、插入、删除这三种操作,编译程序了来实现这三种操作。问题描述如下: • (1)取子串操作:输入字符串、起始位置、子串长度,输出子串的内容。 • (2)插入操作:输入源字符串、目标字符串、指定位置,把源字符串插入到目标字符串的指定位置前,并输出插入后的目标字符串。 • (3)删除操作:输入字符串、待删除子串的起始位置和长度,从字符串中删除待删除子串,并输出删除后的字符串。 • 程序运行时先给出一个菜单,由使用者输入想进行的操作及实现该项操作所需要的参数。输入完毕后,由程序给出操作后的结果。
实 验 十 • 假设电话收费标准为: (1) 国际长途1.00元/分钟,(2) 国内长途0.60元/分钟,(3) 市话前3分钟0.20元,3分钟以后0.10元/分钟。现通过键盘输入6个话单记录(包括:通话日期、主叫码、被叫码、起始时间、通话时间),要求计算每个话单的话费,并按话费从高到低输出所有的话单信息。 • 话单格式: • 2006-06-06 67862101 01068790908 10:20:50 10:24:30