资源描述:
《实验C语言程序设计教程 王敬华 清华大学出版社》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一从键盘上输入四个短整型数,求这四个数中最大的无符号数和最小无符号数及其对应的输入值,并输出最大的无符号数与最小无符号数的差。[提示:定义四个短整型变量,通过scanf函数输入值,利用if语句逐一比较,分别计算最大无符号数和最小无符号数,比较时要进行强制类型转换。]实验二从键盘上输入一个长整型数,判断该长整型数的高16位所表示的有符号数及低16位所表示的有符号数的奇偶性,并将最高8位与最低8位、次高8位与次低8位交换,以十六进制形式输出交换后的结果。[提示:利用位运算符来实现,包括:按位与&、左移<<、右移>>等位运算。][例如:长整型数0X12345678,高
2、16位数为0X1234,低16位数为0X5678,交换后的数为0X78563412]实验三从键盘上输入一个5位整数,判断该整数是否为回文数。实验四从键盘输入一个四位正整数。首先分离出该正整数中的每一位数字,并按逆序显示输出各位数字;然后用分离出的每位数字组成一个最大数和一个最小数,并显示输出。例如,若输入的四位正整数为3175。按逆序显示输出分离出的各位数字为5713;组成的最大数为7531,组成的最小数为1357。具体要求:(1)输入前要有提示。并检查输入数据的合法性,若输入的数据不合法,则显示输出错误信息。(2)对输出结果要用英文或汉语拼音进行具体说明。〖实验提
3、示〗(1)首先要判断输入的数据是否是四位整数。(2)然后分离出该四位正整数的四位数字,例如从千位到个位依次为a,b,c,d,则按逆序显示输出为dcba。(3)最后对四位数字a,b,c,d按从大到小进行排序,按该顺序组成一个最大数,按逆序组成一个最小数。实验五任何一个自然数m的立方均可写成m个连续奇数之和。例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19编程实现:输入一自然数n,求组成n3的n个连续奇数。〖实验提示〗使用双重循环,满足条件时用break退出。实验六编写一个程序,输入两个包含10个元素的数组,先将第一个数组采用冒泡法进行降
4、序排列,第二个数组采用选择排序进行降序排列,然后将这两个数组合并成一个降序数组。实验七编写一个程序,其功能是将用户输入的一段英文(注意包含空格、逗号、句号及英文字母)分离出单词,并以每个单词出现的次数从高到低输出单词及其次数,次数相同的单词以其对应字符串大小升序输出。例如:Greenisontheleft,RedisontheRight,therightisafraidofwater,theleftisafraidofinsects.输出:is(4)the(4)afraid(2)left(2)of(2)on(2)right(2)Green(1)insects(1)R
5、ed(1)water(1)[提示:(1)建立一函数用于接收输入的英文段落。(2)建立字符串数组用于保存每次分离出的单词,及出现的次数(编一函数)。(3)对字符串数组按规定进行排序(编一函数)]实验八分书问题:有编号分别为0,1,2,3,4的5本书,准备分给5个人A,B,C,D,E,每个人阅读兴趣用一个二维数组加以描述,公式如下:Like[i][j]=1i喜欢j书0i不喜欢j书写一个程序,输出所有分书方案,让人人皆大欢喜。假定5个人对5本书的阅读兴趣如下图所示。书人01234A00110B11001C01101D00010E01001解题思路:(1)定义一个整型的二维
6、数组,将表中的阅读喜好用初始化方法赋给这个二维数组。可定义:intlike[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。intbook[5]={0,0,0,0,0};(3)画出思路图。①定义试着给第i人分书的函数Try(i),i=0,1,2,3,4。②试着给第i个人分书,先试分0号书,再分1号书,分2号书,……,因此有一个与结点,让j表
7、示书,j=0,1,2,3,4。③LP为循环结构的循环体,如下图所示。Try(i)j=01234LPLPLPLPLP条件:c=(like[i][j]>0&&book[j]=0)LPc!=1c==1什么也不做sh1take[i]=j;sh2sh3book[j]=1;i==4i!=4n=n+1;输出方案nTry(i+1)book[j]=0;④条件c是由两部分“与”起来的,“第i个人喜欢j书,且j书尚未被分走”。满足这个条件是i人能够得到j书的条件。⑤如果不满足c条件,则什么也不做,这是直接可解结点。⑥满足c条件,做3件事。第一件事:将j书分给i,用一个数组take[i