11.25 閱讀下列程序段
#include "stdio.h"
typedef struct aa
{ int a;
struct aa *next;
} M;
void set(M *k,int i,int *
B)
{ int j,d=0;
for(j=1;j{ k[j-1].next=&k[j];
k[j-1].a=b[d++];
}
k[j].a=b[d];
}
main()
{ M k[5],*p;
int d[5]={23,34,45,56,67};
set(k,5,
D);
p=k+1;
printf("%d\n",table);
}
則下面的表達(dá)式在table處,能使程序執(zhí)行后,打印輸出數(shù)據(jù)45的是
A)p->next->a
B)++p->a
C)(*p).a++
D)p++->a
正確答案: A
二、填空題(請將每一個空的正確答案寫在答題卡相應(yīng)序號后。)
11.26 以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
struct node
{ int info;
【1】link;
};
正確答案: struct node *
11.27 設(shè)有以下結(jié)構(gòu)體類型:
struct st
{ char name[8];
int num;
float s[4];
}student[50];
并且結(jié)構(gòu)體數(shù)組student中的元素都已有值,若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補充完整:
fwrite(student,【2】,1,fp);
正確答案: sizeof(struct st)*50
11.28 使用結(jié)構(gòu)體處理數(shù)據(jù)的場合是【3】 。
正確答案: 把不同類型的數(shù)據(jù)作為整體處理。
11.29 以下程序的功能是:處理由學(xué)號和成績組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,它的功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分?jǐn)?shù)高的學(xué)生可能不只一個,函數(shù)返回分?jǐn)?shù)最高學(xué)生的人數(shù)。請?zhí)羁铡?/P>
#include
#define N 16
typedef struct
{ char num[10];
int s ;
} STREC;
int fun (STREC *a, STREC *
B)
{ int i,j=0,max=a[0].s;
for(i=0;iif(maxfor(i=0;iif(【4】) b[j++]=a[i];
return j;
}
main ()
{ STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",91},
{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",91},
{"GA012",64},{"GA014",91},{"GA011",66},{"GA017",64},{"GA018",64},
{"GA016",72} };
STREC h[N];
int i, n;FILE *out;
n=fun(s,h);
printf("The %d highest score :\n",n);
for (i=0; iprintf("%s M\n ",h[i].num,h[i].s);
printf("\n");
out=fopen("out15.dat", "w");
fprintf(out, "%d\n",n);
for(i=0; ifprintf(out, "M\n ",h[i].s);
fclose(out);
}
正確答案: max==a[i].s
11.30 若有以下說明和定義語句,則變量w在內(nèi)存中所占的字節(jié)數(shù)是 【5】 。
union aa {float x; float y; char c[6]; };
struct st{ union aa v; float w[5]; double ave; } w;
正確答案: 34
11.31 閱讀下列程序,則程序的輸出結(jié)果為【6】。
#include "stdio.h"
struct ty
{ int data;
char c;
};
main()
{ struct ty a={30,′x′};
fun(a);
printf("%d%c",a.data,a.
C);
}
fun(struct ty
B)
{ b.data=20;
b.c=′y′;
}
正確答案: 30x
11.32 現(xiàn)有如下定義:struct aa{int a;float b;char c;}*p;現(xiàn)需用malloc函數(shù)動態(tài)的申請一個struct aa類型大小的空間(由p指向),則定義的語句為: 【7】 。
正確答案: p=(struct aa *) malloc (sizeof(struct aa));
相關(guān)推薦:2010年9月計算機(jī)等級考試成績查詢時間匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |