1. 程序调试题1
调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_1.C文件和C_2_1.EXE文件)保存到实验结果文件夹中。
功能说明:程序从键盘输入5个字符串(每个字符串长度不超过80,且字符串中不含有空格),程序找出其中最大的字符串放到max中,最后输出该最大的字符串。如输入:BASICJavaC++PascalPHP
则输出:Pascal
带错误原程序(见素材\\C_2_1.C):#include int i; char s[81], max[81]={'\\0'}; for (i=0; i<5; i++) { gets(s); if (strcmp(s,max)) strcpy(max,s); } puts(max); getchar(); /*本句无错;暂停程序,按任意键继续 */} 2. 程序调试题2 调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_2.C文件和C_2_2.EXE文件)保存到实验结果文件夹中。 功能说明:函数aver的功能是计算n个整数去掉一个最大值和一个最小值后的平均值,程序从键盘输入8个整数,通过调用函数aver计算这8个整数去掉一个最大值和一个最小值后的平均值,然后输出(保留一位小数)。 如输入:1 2 3 4 5 6 7 8 则输出:average=4.5带错误原程序(见素材\\C_2_2.C):#include s=max=min=a[0]; for (i=0; i return (s-max-min)/(n-2);} int main(){ int b[8], i; for (i=0; i<8; i++) scanf(\"%d\ printf(\"average=%.1f\\n\ getchar(); /*本句无错;暂停程序,按任意键继续 */} 3. 程序调试题3 调试要求:下列程序包含2个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_3.C文件和C_2_3.EXE文件)保存到实验结果文件夹中。 功能说明:程序从键盘输入8个整数,统计并输出其中数值在70~80之间(含70和80)的数的个数。 如输入:23 71 56 85 94 78 63 80 则输出:3带错误原程序(见素材\\ C_2_3.C):#include int a[8], i, c; c=0; for (i=0; i<8; i++) { sanf(\"%d\ if (70<=a[i] and a[i]<=80) c++; } printf(\"%d\\n\ getchar(); /*本句无错;暂停程序,按任意键继续 */} 4. 程序调试题4 调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_4.C文件和C_2_4.EXE文件)保存到实验结果文件夹中。 功能说明:程序从键盘输入一个字符串s(长度不超过80),然后用冒泡法将s中下标值为偶数的元素按照字符顺序从小到大排序,其它元素不变,最后输出排序后的字符串。 如输入:2d4a3b1c 则输出:1d2a3b4c带错误原程序(见素材\\ C_2_4.C):#include #include char s[],t; int i, j, k; gets(s); k=strlen(s); for (i=0; i<=k-2; i+=2) // 用冒泡法对下标值为偶数的元素从小到大排序 for (j=2; j<=k-3-i; j++) if (s[j]>s[j+2]) // 下标值为偶数的相邻两个元素逆序,则交换 { t=s[j]; s[j]=s[j+2]; s[j+2]=tt; } puts(s); getchar(); /*本句无错;暂停程序,按任意键继续 */} 5. 程序调试题5 调试要求:下列程序包含3个错误,请按题中的功能要求,调试并修改该程序(在所修改语句后加/*******/字样的注释),使其运行能得到正确的结果。将结果(包括C_2_5.C文件和C_2_5.EXE文件)保存到实验结果文件夹中。 功能说明:函数secondary_max的功能是在n个整数中找出次大值,程序从键盘输入8个整数,通过调用函数secondary_max找出这8个整数中的次大值,然后输出。 如输入:71 23 56 85 94 78 63 80 则输出:85带错误原程序(见素材\\ C_2_5.C):#include int secondary_max(int a[], int n){ int i, max1, max2; max1=a[0]; max2=a[1]; if (max1 return max2;} int main(){ int b[8],i; for (i=0; i<8; i++) scanf(\"%d\ printf(\"average=%d\\n\ getchar(); /*本句无错;暂停程序,按任意键继续 */} 因篇幅问题不能全部显示,请点此查看更多更全内容