下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Res

Res.doc

Res

baia692575287
2012-04-21 0人阅读 举报 0 0 暂无简介

简介:本文档为《Resdoc》,可适用于人文社科领域

夏学期C程序设计上机练习参考答案夏周简化的插入排序求平均值将数组中的数逆序存放求最大值及其下标交换最小值和最大值选择法排序在数组中查找指定的元素求矩阵各行元素之和矩阵运算九九乘法表夏周判断上三角矩阵算算看这是第几天?找鞍点(选作)将字符串逆序存放查找字符统计大写辅音字母字符串替换将十六进制字符串转换为十进制整数将十进制字符串转换为十进制整数统计字符出现次数夏周求~中能被整除的所有整数的和计算三门课程的平均成绩计算x的平方计算分段函数的值计算摄氏温度找最大值并交换循环移动在数组中查找指定元素使用函数的选择法排序报数夏周函数程序设计计算最长的字符串长度字符串的连接求++++找最大的字符串找最长字符串使用函数删除字符串中的字符使用函数实现字符串复制判断回文字符串分类统计字符个数夏周计算函数P(n,x)十进制转换二进制递归函数程序设计求Fabonacci数列改错题errorcpp编程题指定位置输出字符串藏尾诗改错题errorcpp分解质因数打印图案夏周输出世纪所有闰年调试示例errorcpp时间换算计算平均成绩计算两个复数之积查找书籍通讯录排序算算看这是第几天?使用函数实现时间换算找出总分最高的学生其它练习计算旅途时间。数字加密教材习题-(上机练习,统计学生成绩)出租车计费教材习题(p)教材习题(p)数字金字塔(此题与打印图案的思路相似)夏周简化的插入排序输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<=)和一组(n个)有序的整数再输入一个整数x把x插入到这组数据中使该组数据仍然有序。输入输出示例:括号内为说明输入:(repeat=)(数据的个数n=)(个有序整数)(待插入整数x=)(数据的个数n=)(个有序整数)(待插入整数x=)(数据的个数n=)(个有序整数)(待插入整数x=)(数据的个数n=)(个有序整数)(待插入整数x=)输出:参考解:#include<stdioh>intmain(void){inti,n,xintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)scanf("d",x)for(i=ni>=i){if(x<ai){ai=aiai=x*保证最前面的元素插入正确*}else{ai=x*保证最后面的元素插入正确*break}}for(i=i<ni)printf("d",ai)putchar('n')}}参考解:#include<stdioh>intmain(void){inti,j,n,xintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)scanf("d",x)an=x*将被比较的数放到最后然后往前对比插入*for(i=i<ni){if(ai>an){j=aiai=anan=j}}for(i=i<ni)printf("d",ai)putchar('n')}}参考解:#include<stdioh>intmain(void){inti,j,n,xintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)scanf("d",x)if(x>=an)an=x*特殊情况:若x比所有的元素都要大*elsefor(i=i<ni){if(x>ai)continue*将x插入到合适的位置*j=n*从当前要插入的位置往后移位*while(j>=i){aj=ajj}ai=x*将x查到当前的位置*break}for(i=i<ni)printf("d",ai)putchar('n')}}求平均值输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<=)再输入n个整数输出平均值(保留位小数)。输入输出示例:括号内为说明输入(repeat=)(n=)(n=)输出average=average=#include<stdioh>intmain(void){inti,n,sumintrepeat,riintadoubleaveragescanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)sum=for(i=i<ni)sum=aiaverage=*sumn*printf("average=fn",average)}}将数组中的数逆序存放输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<=)再输入n个整数存入数组a中先将数组a中的这n个数逆序存放再按顺序输出数组中的n个元素。输入输出示例:括号内为说明输入(repeat=)(n=)(n=)输出#include<stdioh>intmain(void){inti,n,tempintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)i=for(i=i<ni){temp=aiai=aniani=temp}for(i=i<ni)printf("d",ai)printf("n")}}*另可参p*求最大值及其下标输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<=)再输入n个整数输出最大值及其对应的最小下标下标从开始。输入输出示例:括号内为说明输入(repeat=)(n=)(n=)(n=)输出max=,index=(最大值的下标是)max=,index=(最大值的下标是)max=,index=(最大值的下标是)#include<stdioh>intmain(void){inti,index,nintri,repeatintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)index=aindex=afor(i=i<ni){if(aindex<ai){aindex=aiindex=i}}printf("max=d,index=dn",aindex,index)}}交换最小值和最大值输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<=)再输入n个整数将最小值与第一个数交换最大值与最后一个数交换然后输出交换后的n个数。输入输出示例:括号内为说明输入(repeat=)(n=)(n=)(n=)输出Afterswap:Afterswap:Afterswap:#include<stdioh>intmain(void){inti,index,n,tintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)index=for(i=i<ni){if(ai<aindex)index=i}t=aindex*最小值与第个数交换*aindex=aa=tindex=for(i=i<ni){if(ai>aindex)index=i}t=aindex*最大值与最后一个数交换*aindex=anan=tprintf("Afterswap:")for(i=i<ni)printf("d",ai)printf("n")}}选择法排序输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<=)再输入n个整数将它们从大到小排序后输出。输入输出示例:括号内为说明输入(repeat=)(n=)(n=)(n=)输出Aftersorted:Aftersorted:Aftersorted:#include<stdioh>intmain(void){inti,index,k,n,tempintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)scanf("d",ai)for(k=k<nk){index=kfor(i=ki<ni)if(ai>aindex)index=itemp=aindexaindex=akak=temp}printf("Aftersorted:")for(i=i<ni)printf("d",ai)printf("n")}}在数组中查找指定的元素输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<=)再输入n个整数将它们存入数组a中再输入一个整数x然后在数组a中查找与x相同的元素如果找到输出x在数组a中对应元素的最小下标如果没有找到输出相应信息。输入输出示例:括号内为说明输入:(repeat=)(n=)(x=)(n=)(x=)输出::a:notfound#include<stdioh>intmain(void){intflag,i,n,xintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){flag=*若标志不重新初始化的化就会一影响下一轮循环的计算*scanf("d",n)for(i=i<ni)scanf("d",ai)scanf("d",x)for(i=i<ni){if(x==ai){flag=break}}if(flag!=)printf("d:adn",x,i)elseprintf("d:notfoundn",x)}}求矩阵各行元素之和输入个正整数m和n(<=m<=,<=n<=)然后输入矩阵a(m行n列)中的元素分别求出各行元素之和并输出。输出使用语句:printf("sumofrowdisdn",i,sum)输入输出示例:括号内为说明输入:(m=,n=)输出:sumofrowissumofrowissumofrowis#include<stdioh>intmain(void){inti,j,m,n,sumintascanf("dd",m,n)for(i=i<mi)for(j=j<nj)scanf("d",aij)for(i=i<mi){sum=for(j=j<nj)sum=aijprintf("sumofrowdisdn",i,sum)}}矩阵运算程序填空不要改变与输入输出有关的语句。输入一个正整数repeat(<repeat<)做repeat次下列运算:读入个正整数n(≤n≤),再读入n阶方阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入输出示例:括号内为说明输入:(repeat=)(n=)sum=(=)#include"stdioh"intmain(void){inti,j,n,sumintrepeat,riintascanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)for(j=j<nj)scanf("d",aij)sum=for(i=i<ni){for(j=j<nj)sum=aij}for(i=i<ni)sum=aini*减去副对角线的元素*for(j=j<nj)sum=anj*减去最下一行*for(i=i<ni)sum=ain*减去最右一列*sum=sumann*右下角元素减了两次补回一次*printf("sum=dn",sum)}}九九乘法表程序填空不要改变与输入输出有关的语句。输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个正整数n(<n<)输出九九乘法表的前n×n项。提示:将乘数、被乘数和乘积放入一个二维数组中再输出该数组。输入输出示例:括号内为说明输入:(repeat=)(n=)输出:**根据输出要求将乘数存于aj被乘数存于ai结果放在aij,i,j不为*#include"stdioh"intmain(void){inti,j,nintaintrepeat,riscanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(j=j<=nj)aj=j*乘数*for(i=i<=ni)ai=i*被乘数*for(i=i<=ni)for(j=j<=nj)aij=i*j*结果*for(i=i<=ni){for(j=j<=nj)if(i==j==)printf("c",'*')elseif(i==||j<=i)printf("d",aij)printf("n")}}}夏周判断上三角矩阵输入一个正整数repeat(<repeat<)做repeat次下列运算:输入个正整数n(≤n≤)和n阶方阵a中的元素如果a是上三角矩阵,输出"YES",否则,输出"NO"。上三角矩阵指主对角线以下的元素都为的矩阵,主对角线为从矩阵的左上角至右下角的连线。输入输出示例:括号内为说明输入:(repeat=)(n=)(n=)输出:YESNO#include"stdioh"#include"mathh"intmain(void){intflag,i,j,nintaintrepeat,riscanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)for(j=j<nj)scanf("d",aij)flag=for(i=i<ni){for(j=j<ij){if(aij!=){flag=break*只要一个数值不满足就可以否定*}}if(!flag)break}if(flag!=)printf("YESn")elseprintf("NOn")}}算算看这是第几天?输入一个正整数repeat(<repeat<)做repeat次下列运算:输入日期(年、月、日)输出它是该年的第几天。要求定义与调用函数dayofyear(year,month,day)计算并返回year(年)、month(月)和day(日)对应的是该年的第几天函数形参year、month和day的类型是int函数类型也是int。输入输出示例:括号内为说明输入:(repeat=)(年月日)(年月日)输出:daysofyear:(年月日是该年的第天)daysofyear:(年月日是该年的第天)#include"stdioh"intmain(void){intday,dayyear,month,yearintrepeat,riintdayofyear(intyear,intmonth,intday)scanf("d",repeat)for(ri=ri<=repeatri){scanf("ddd",year,month,day)dayyear=dayofyear(year,month,day)printf("daysofyear:dn",dayyear)}}intdayofyear(intyear,intmonth,intday){intk,leapinta={{,,,,,,,,,,,,},{,,,,,,,,,,,,}}leap=(year==year!=||year==)for(k=k<monthk)day=dayaleapkreturnday}找鞍点(选作)输入一个正整数repeat(<repeat<)做repeat次下列运算:输入个正整数n(≤n≤)和n阶方阵a中的元素假设方阵a最多有个鞍点如果找到a的鞍点,就输出其下标,否则输出"NO"。鞍点的元素值在该行上最大,在该列上最小。输入输出示例:括号内为说明输入:(repeat=)(n=)(n=)输出:a=NO#include"stdioh"intmain(void){intflag,i,j,k,row,col,nintaintrepeat,riscanf("d",repeat)for(ri=ri<=repeatri){scanf("d",n)for(i=i<ni)for(j=j<nj)scanf("d",aij)for(row=row<nrow){col=for(j=j<nj){if(arowj>arowcol)col=j}flag=for(i=i<ni){if(arowcol>aicol){flag=break*只要当前行的最大值不是当前列的最小放弃*}}if(flag)break*找到就可以跳出循环了*}if(flag!=)printf("add=dn",row,col,arowcol)elseprintf("NOn")}}将字符串逆序存放输入一个以回车结束的字符串(少于个字符)将它的内容逆序输出。如"ABCD"的逆序为"DCBA"。输入输出示例:括号内为说明输入:Welcometoyou!输出:!uoyotemocleW思路:若输入:要输出即第k个字符的位置变换成:nk。由于两个位置上的值是互换的所以只要对其中的一半数据操作就可以了。#include<stdioh>intmain(void){inti,j,tempcharstri=while((stri=getchar())!='n')istri=*使用的必要性*for(j=j<ij){temp=strijstrij=strjstrj=temp}for(i=stri!=i)putchar(stri)}另解思路:教材p查找字符输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个字符再输入一个以回车结束的字符串(少于个字符)在字符串中查找该字符如果找到输出该字符在字符串中所对应的最大下标(下标从开始)否则输出"NotFound"。输入输出示例:括号内为说明输入:(repeat=)m(字符'm')programming(字符串"programming")a(字符'a')(字符串"")输出:index=('m'在"programming"中对应的最大下标是)NotFound(""中没有'a')#include"stdioh"#defineMAXLENintmain(void){charcc,chcharstrMAXLENintcount,flag,i,indexintrepeat,riscanf("d",repeat)getchar()for(ri=ri<=repeatri){cc=getchar()getchar()*用于抵消输入查询字符后的回车*i=while((ch=getchar())!='n'){stri=ch}stri=flag=for(i=stri!=''i){if(stri==cc){flagindex=i}}if(flag)printf("index=dn",index)elseprintf("NotFoundn")}}统计大写辅音字母输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个以回车结束的字符串(少于个字符)统计并输出其中大写辅音字母的个数。大写辅音字母:除'A','E','I','O','U'以外的大写字母。输入输出示例:括号内为说明输入:(repeat=)HELLOgroup输出:count=("HELLO"中有个大写辅音字母)count=("group"中没有大写辅音字母)#include"stdioh"#defineMAXLENintmain(void){charchcharstrMAXLENintcount,iintrepeat,riscanf("d",repeat)getchar()for(ri=ri<=repeatri){i=while((ch=getchar())!='n'){stri=ch}stri=i=count=while(stri){if(stri<='Z'stri>='A')switch(stri){case'A':case'E':case'I':case'O':case'U':breakdefault:countbreak}i}printf("count=dn",count)}}字符串替换输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个以回车结束的字符串(少于个字符)将其中的大写字母用下面列出的对应大写字母替换其余字符不变输出替换后的字符串。原字母对应字母AZBYCXDW……XCYBZA输入输出示例:括号内为说明输入:(repeat=)AflagofUSA=输出:Afterreplaced:ZflagofFHZAfterreplaced:=思路:AZ,BY,ZA,左右字符的ASCII值的和都是一样的都为'A''Z',设左字符为变量x,右字符的ASCII值就是'A''Z'x#include"stdioh"#include"stringh"#defineMAXLENintmain(void){charchcharstrMAXLENintiintrepeat,riscanf("d",repeat)getchar()for(ri=ri<=repeatri){i=while((ch=getchar())!='n'){stri=chi}stri=for(i=stri!=i){if(stri>='A'stri<='Z')stri='A''Z'stri}printf("Afterreplaced:")for(i=stri!=i)putchar(stri)putchar('n')}}将十六进制字符串转换为十进制整数输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个以回车结束的字符串(少于个字符)滤去所有的非十六进制字符后组成一个新字符串(十六进制形式)然后将其转换为十进制数后输出。输入输出示例:括号内为说明输入:(repeat=)A输出:Dec=Dec=#include"stdioh"#include"stringh"#defineMAXLENintmain(void){charchcharstrMAXLEN,numMAXLENinti,kintrepeat,rilongnumberscanf("d",repeat)getchar()for(ri=ri<=repeatri){i=while((ch=getchar())!='n'){stri=chi}stri=*输入字符串*number=for(i=stri!=''i){if(stri>=''stri<='')number=number*stri''elseif(stri>='A'stri<='F')number=number*stri'A'elseif(stri>='a'stri<='f')number=number*stri'a'}*进制字符-AF,af*printf("Dec=ldn",number)}}将十进制字符串转换为十进制整数输入一个正整数repeat(<repeat<)做repeat次下列运算:输入一个以回车结束的字符串(少于个字符)把字符串中的所有数字字符(''~'')转换为整数去掉其他字符。例如字符串"abc"转换为整数后是。输入输出示例:括号内为说明输入:(repeat=)jeepfree输出:#include<stdioh>#include<stringh>intmain(void){charstrinti,sintrepeat,riscanf("d",repeat)getchar()for(ri=ri<=repeatri){i=while((stri=getchar())!='n')istri=s=for(i=stri!=i){if(stri>=''stri<='')s=s*stri''}printf("dn",s)}}统计字符出现次数输入一个正整数repeat(<repeat<)做rep

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/70

Res

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利