第七套上機(jī)試卷
一、改錯(cuò)題
含有錯(cuò)誤的源程序如下:
#include
#include
struct T
{char name [20],num[20];
};
void sort(struct T items[],int low,int high)
{struct T temp;
int k,j;
for(k=low;k
for(j=low;j
if(items[j].name>items[j+1].name) �、�
{temp=items[j];items[j]=items[j+1];items[j+1]=temp;}
}
void main(void)
{struct T stu[4]={"Wang","6723","Cai","2106","Zhang", �、�
"5129","Chang","4512","An","6868"};
int k;
sort(stu,0,4);
printf("The Sorted Array:\n");
for(k=0;k<5;k++)
printf("name:%s,num:%s\n",stu[k]->name,stu[k]->num); ④
}
【知識點(diǎn)】冒泡排序、結(jié)構(gòu)體數(shù)組、程序的調(diào)試
【解析】程序中的錯(cuò)誤一般可以分為兩類,一類是語法錯(cuò)誤,即程序中有拼寫錯(cuò)誤,書寫不符合C語言的規(guī)定等,此類錯(cuò)誤可通過調(diào)試(按F9鍵),根據(jù)提示進(jìn)行改正。另一類是邏輯錯(cuò)誤,程序調(diào)試已通過(報(bào)success),但運(yùn)行結(jié)果不正確,此類錯(cuò)誤的修改必須要理解程序后方能改正。
本題使用起泡法完成排序,①處j
【答案】加下劃線的部分改為:
①j
�、趇f(strcmp(items[j].name, items[j+1].name)>0)
③stu[5]
�、躶tu[k].name, stu[k].num
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |