语言二级编程题技巧总结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言二级编程题技巧总结.doc

上机编程题总结 一、编程题的基本算法 求和问题。 (1) (循环控制变量)计数器的范围。 (2) 和变量的初值~般为0。 (3) 如是分数求和,请注意整除问题。 (4) 在确保前三个条件的情况卜,按编程的思路,一步步完善。 求乘积问题。 (1)积变量 (2)乘积表达式作分母的时候,是一个整体,请加拈号。 找最大值、最小值问题。 (1) 首先将首元素(行首、列首等)的值赋给保存最大值(或最小值)的变量,如max (或min) (2) 然G将max (或min)和盾而的元素一一比较,如果出现更大的值(或更小的值),则将该值赋 给max (或min),直到全部比完为止,利用一个临时变量j记录max所在位置。 (3) 一维数组的首元素为a[0],二维数组的首元素为a[0][0],二维数组的行首元素为a[i][0],二维数组 的列首元素为a[0][i]。 例:找出2XM整型二维数组屮最人元素的值 int fun (int a[][M]) int i,j,max=a[0][0]; for(i=0;i2;i++) for(j=0;jM;j++) if(maxafil[jl) max=a[i]|j]; return max; } 求素数问题。 (1) 判断一个素是否为素数。 (2) 求某个范围内素数的个数、和、平方根和等。 求最小公倍数、最大公约数问题。 则此数为最小公倍数,否则继续加1再最小公倍数求法:用从 则此数为最小公倍数,否则继续加1再 for(k=l; ;k++) if(k%a=0k%b==0) break 最大公约数求法(碾转相除法):x〉y (1) 将两数中的大数去除以小数,如果除不断,转入(2),若能整除,转入(3)。 (2) 将小数变成被除数,它们的余数为除数,再相除。如果除不断,转入(2)。若能整除,转入(3)。 (3) 则此除数为最大公约数。 int a(int x, int y) } else return a(y,temp) }int temp; temp=x%y; if (temp=0) { return y; return a(y,temp) } 字符串问题。 串重新组合问题。 原串中去掉(或添加)一部分组成成分(如数字、*号) 奇数或偶数重排 在串中查找字符或字符串问题。 前两个问题屮涉及到的字符移动问题(前移、后移) 将串中的某些前移,某些后移,实质是先选出来,存在不同的数组中,再重新合并。 逆序。 字符型的数字转换为成其而值相同的整数,并进行相关运算。如‘5’转换为数值5怎么转换? ‘5 - ‘(T =5 或 ‘5 -48=5 字符大小写转换。如‘A’转换为‘a’怎么转换? c=b[i]+32; return c;}‘A - ‘a =-32 或 c=b[i]+32; return c; } for(i=0;in;i++) if(b[i]=,a, b[i]=,z,) c=b[i]-32; if(b[i]=,A, b[i]=T) 排序问题(假定有ii个元素)。 1)H泡排序。 从数组的首元素开始,依次对相邻的两个元素进行比较,当发现前面的数字大于(或小于)后面时 就进行依次交换,从头到尾比较完一遍就挑出一个最大(或最小)的数,将其排在最后面,n个数要比 较n-1遍,其中第j遍耍两两相比n-j遍。 主要参数说明: i (循环次数n-1次):0----n-2 如果 a[i]a[i+l] {t=a[i];a[i]=a[j];a[j]=t; }则为降序 如果 a[i]〉a[i+l] {t=a[i];a[i]=afj];a[j]=t; }则为升序. 例: main() { int i, j, temp; int a[10]; for (i=0;i〈10;i++) scanf (%d,,a[i]); for(j=0;j=9;j++) { for (i=0;i〈10-j;i++) if (a[i]〉a[i+l]) { temp=a[i]; a[i]=a[i+l]; a[i+l]=temp;} } for (i二0;i〈10;i++) printf (%5d, , a[i]); printf (”\rT); } 2)选择排序。 选择排序分升序和降序,苒中降序排序,首先从数组中挑选?一个最大的元素,把它和第一个元素交 换,接着从剩卜的n-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程, 直到比较完最后两个元素。 主要参数说明: i (循环次数n-1次):0…-n-2 j (被比较元素的下标):i+1-…n-1 如果 a[i]a[j] {t=a[i];a[i]=a|j];a[j]=t; }则为降序。 如果 a[i]a[j] {t=a[il;a[il=a[j] ;a[jl=t; }则为升序。 例:

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档