第六套上機試題
一、改錯題
含有錯誤的源程序:
#include
#include
#define N 5
struct student
{ char name[10];
int score;
} ―――――――――――①
void sort(struct student stud[],int n)
{ int i,j;
struct student p;
for(i=1;i { p=stud[i]; for(j=i-1;j>0 && p>stud[j];j--) ―――――――――――③ stud[j+1]=stud[j]; stud[j+1]=p; } } void main() { struct student stud[N]={"aaa",60,"bbb",90,"ccc",85,"ddd",65,"yyy",77}; int i; sort(stud,N); printf("sorted data:\n"); for(i=0;i } 【知識點】結(jié)構(gòu)體、排序 【難點】 插入法排序 【解析】本題是將未排序的數(shù)組元素采用插入排序方法進行排序,其思想是:從第2個元素開始,最初與第一個元素進行比較,由大到小排列在適當位置,成為排好序的數(shù)組元素一員。再依次將待排序的元素與前面已排好序的元素從后向前進行比較,如果大于該元素,則該元素向后移一位,直到待排序的元素小于已排好序的某一元素,則直接插入到該元素之后。直到待排序的元素全部完成為止。本程序的sort函數(shù)中i表示待排序的元素下標,j表示已排好序的元素下標。 【答案】(1)標號①:} 改為 }; (2)標號②:for(i=1;i (3)標號③:for(j=i-1;j>0 && p>stud[j];j--) 改為 j>=0 && p.score>stud[j].score;j--) (4) 標號④:printf("%s\t%d\n",stud[i]); 改為printf("%s\t%d\n",stud[i].name,stud[i].score );
2010全國計算機等考二級C語言考前密卷匯總
2010年計算機等級考試二級C語言常見知識點
計算機等級考試二級C語言題型分析與應試技巧
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |