夏1周270011简化的插入排序270012求平均值570013将数组中的数逆序存放670014求最大值及其下标770015交换最小值和最大值870016选择法排序970017在数组中查找指定的元素1070021求矩阵各行元素之和1170022矩阵运算1270023九九乘法表13夏2周1470024判断上三角矩阵1470025算算看,这是第几天?1570026找鞍点(选作)1670031将字符串逆序存放1770032查找字符1870033统计大写辅音字母1970034字符串替换2070035将十六进制字符串转换为十进制整数2170036将十进制字符串转换为十进制整数2270052统计字符出现次数23夏3周2410008求1~100中能被6整除的所有整数的和2420014计算三门课程的平均成绩2520016计算x的平方2520021计算分段函数的值2520022计算摄氏温度2670051找最大值并交换2780011循环移动2880012在数组中查找指定元素2980013使用函数的选择法排序3080014报数32夏4周3510012函数程序设计3510024计算最长的字符串长度3610025字符串的连接3740017求2/1+3/2+5/3+8/5+...3880021找最大的字符串3980022找最长字符串4080023使用函数删除字符串中的字符4180024使用函数实现字符串复制4280025判断回文字符串4380026分类统计字符个数44夏5周4510014计算函数P(n,x)4510016十进制转换二进制4610017递归函数程序设计求Fabonacci数列4810019改错题error10_1.cpp4910022编程题5010026指定位置输出字符串5010027藏尾诗5110028改错题error11_2.cpp5240065分解质因数5340067打印图案55夏6周5630062输出21世纪所有闰年5690001调试示例error09_1.cpp5690002时间换算5790003计算平均成绩5890004计算两个复数之积5990005查找书籍6090006通讯录排序6190007算算看,这是第几天?6290008使用函数实现时间换算6390009找出总分最高的学生64其它练习6520027计算旅途时间。6520028数字加密66教材习题3-4(上机练习30009,统计学生成绩)6630061出租车计费67教材习题4-12(p77)68教材习题4-14(p77)6950051数字金字塔(此题与40067打印图案的思路相似)69夏1周70011简化的插入排序输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(0n=9)和一组(n个)有序的整数,再输入一个整数x,把x插入到这组数据中,使该组数据仍然有序。输入输出示例:括号内为说明输入:4(repeat=4)5(数据的个数n=5)12457(5个有序整数)3(待插入整数x=3)4(数据的个数n=4)1257(4个有序整数)-10(待插入整数x=-10)3(数据的个数n=3)124(3个有序整数)100(待插入整数x=100)5(数据的个数n=5)12457(5个有序整数)4(待插入整数x=4)输出:123457-101257124100124457参考解1:#includestdio.hintmain(void){inti,n,x;intrepeat,ri;inta[10];scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);scanf(%d,&x);for(i=n-1;i=0;i--){if(xa[i]){a[i+1]=a[i];a[i]=x;/*保证最前面的元素插入正确*/}else{a[i+1]=x;/*保证最后面的元素插入正确*/break;}}for(i=0;in+1;i++)printf(%d,a[i]);putchar('\n');}}参考解2:#includestdio.hintmain(void){inti,j,n,x;intrepeat,ri;inta[10];scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);scanf(%d,&x);a[n]=x;/*将被比较的数放到最后,然后往前对比插入*/for(i=0;in+1;i++){if(a[i]a[n]){j=a[i];a[i]=a[n];a[n]=j;}}for(i=0;in+1;i++)printf(%d,a[i]);putchar('\n');}}参考解3:#includestdio.hintmain(void){inti,j,n,x;intrepeat,ri;inta[10];scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);scanf(%d,&x);if(x=a[n-1])a[n]=x;/*特殊情况:若x比所有的元素都要大*/elsefor(i=0;in;i++){if(xa[i])continue;/*将x插入到合适的位置*/j=n-1;/*从当前要插入的位置往后移位*/while(j=i){a[j+1]=a[j];j--;}a[i]=x;/*将x查到当前的位置*/break;}for(i=0;in+1;i++)printf(%d,a[i]);putchar('\n');}}70012求平均值输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(1n=10),再输入n个整数,输出平均值(保留2位小数)。输入输出示例:括号内为说明输入2(repeat=2)3(n=3)12-65(n=5)122540输出average=-1.00average=4.60#includestdio.hintmain(void){inti,n,sum;intrepeat,ri;inta[10];doubleaverage;scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);sum=0;for(i=0;in;i++)sum+=a[i];average=1.0*sum/n*1.0;printf(average=%.2f\n,average);}}70013将数组中的数逆序存放输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(1n=10),再输入n个整数,存入数组a中,先将数组a中的这n个数逆序存放,再按顺序输出数组中的n个元素。输入输出示例:括号内为说明输入2(repeat=2)4(n=4)108125(n=5)12540输出2181004521#includestdio.hintmain(void){inti,n,temp;intrepeat,ri;inta[10];scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);i=0;for(i=0;in/2;i++){temp=a[i];a[i]=a[n-1-i];a[n-1-i]=temp;}for(i=0;in;i++)printf(%d,a[i]);printf(\n);}}/*另可参p161*/70014求最大值及其下标输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(1n=10),再输入n个整数,输出最大值及其对应的最小下标,下标从0开始。输入输出示例:括号内为说明输入3(repeat=3)3(n=3)1644(n=4)108195(n=5)12045输出max=6,index=1(最大值6的下标是1)max=10,index=0(最大值10的下标是0)max=5,index=4(最大值5的下标是4)#includestdio.hintmain(void){inti,index,n;intri,repeat;inta[10];scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);index=0;a[index]=a[0];for(i=1;in;i++){if(a[index]a[i]){a[index]=a[i];index=i;}}printf(max=%d,index=%d\n,a[index],index);}}70015交换最小值和最大值输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(1n=10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。输入输出示例:括号内为说明输入3(repeat=3)5(n=5)825144(n=4)15675(n=5)54321输出Afterswap:12548Afterswap:1567Afterswap:14325#includestdio.hintmain(void){inti,index,n,t;intrepeat,ri;inta[10];scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);index=0;for(i=1;in;i++){if(a[i]a[index])index=i;}t=a[index];/*最小值与第1个数交换*/a[index]=a[0];a[0]=t;index=0;for(i=1;in;i++){if(a[i]a[index])index=i;}t=a[index];/*最大值与最后一个数交换*/a[index]=a[n-1];a[n-1]=t;printf(Afterswap:);for(i=0;in;i++)printf(%d,a[i]);printf(\n);}}70016选择法排序输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n(1n=10),再输入n个整数,将它们从大到小排序后输出。输入输出示例:括号内为说明输入3(repeat=3)4(n=4)51763(n=3)1235(n=5)54321输出Aftersorted:7651Aftersorted:321Aftersorted:54321#includestdio.hintmain(void){inti,index,k,n,temp;intrepeat,ri;inta[10];scanf(%d,&repeat);for(ri=1;ri=repeat;ri++){scanf(%d,&n);for(i=0;in;i++)scanf(%d,&a[i]);for(k=0;kn-1;k++){index=k;for(i=k+1;in;i++)if(a[i]a[index])index=i;temp=a[index];a[index]=a[k];a[k]=temp;}printf(Aftersorted:);for(i=0;in;i++)printf(%d,a[i]);printf(\n);}}70017在数组中查找指定的元素