一、選擇題(共30分,每小題2分)
1.假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,則不正確的語句為( )。
單選題 (2 分) 2分
A.struct BOOK *x=malloc(book);
B.struct BOOK x={“C++ Programming”,27.0};
C.struct BOOK *x=malloc(sizeof(struct BOOK));
D.struct BOOK *x=&book;
2.假定有“struct BOOK{char title[40]; float price;} book;”,則正確的語句為( )。
單選題 (2 分) 2分
A.struct BOOK x= &book;
B.struct BOOK *x=&book;
C.struct BOOK x=calloc(BOOK);
D.struct BOOK *x=BOOK;
3.在結(jié)構(gòu)類型的定義中,不同數(shù)據(jù)成員的定義項(xiàng)之間采用的分隔符是( )。
單選題 (2 分) 2分
A.句點(diǎn)
B.冒號(hào)
C.分號(hào)
D.逗號(hào)
4.假定一個(gè)結(jié)構(gòu)類型的定義為 “struct A{int a,b; double c;};”,則該類型的長(zhǎng)度為( )。
單選題 (2 分) 2分
A.8
B.10
C.12
D.16
5.假定一個(gè)結(jié)構(gòu)類型的定義為 “struct D{int a; D* next;};”,則該類型的長(zhǎng)度為( )。
單選題 (2 分) 2分
A.4
B.8
C.12
D.16
6.假定要訪問一個(gè)結(jié)構(gòu)指針變量x中的數(shù)據(jù)成員a,則表示方法為( )。
單選題 (2 分) 2分
A.a
B.x->a
C.x(a)
D.x{a}
7.與結(jié)構(gòu)成員訪問表達(dá)式x.name等價(jià)的表達(dá)式為( )。
單選題 (2 分) 2分
A.x->name
B.&x->name
C.(&x)->name
D.(*x)->name
8.假定一個(gè)鏈表中結(jié)點(diǎn)的結(jié)構(gòu)類型為“struct AA{int data, struct AA *next;};”,則next數(shù)據(jù)成員的類型為( )。
單選題 (2 分) 2分
A.struct AA
B.struct AA*
C.AA
D.int
9.假定一個(gè)鏈表的表頭指針為f,結(jié)點(diǎn)中包含有data和next域,則向該鏈表的表頭插入一個(gè)地址為p的結(jié)點(diǎn)時(shí),應(yīng)執(zhí)行的操作為( )。
單選題 (2 分) 2分
A.p->next=f
B.p->next=f和f=p
C.f=p->next
D.f->next=p和f=p
10.標(biāo)準(zhǔn)輸入設(shè)備鍵盤的文件流標(biāo)識(shí)符是( )。
單選題 (2 分) 2分
A.stdin
B.stdout
C.stderr
D.stdio
11.表示文件結(jié)束符的符號(hào)常量為( )。
單選題 (2 分)
A.eof
B.Eof
C.EOF
D.feof
12.C語言中打開一個(gè)數(shù)據(jù)文件的系統(tǒng)函數(shù)為( )。
單選題 (2 分) 2分
A.fgetc()
B.fputc()
C.fclose()
D.fopen()
13.從一個(gè)數(shù)據(jù)文件中讀入以換行符結(jié)束的一行字符串的系統(tǒng)函數(shù)為( )。
單選題 (2 分) 2分
A.gets()
B.fgets()
C.getc()
D.fgetc()
14.向一個(gè)二進(jìn)制文件中寫入信息的函數(shù)fwrite()帶有的參數(shù)個(gè)數(shù)為( )。
單選題 (2 分) 2分
A.1
B.2
C.3
D.4
15.在C語言中,為只寫操作打開一個(gè)文本文件的方式為( )。
單選題 (2 分) 2分
A.”a”
B.”r+”
C.”r”
D.”w”
二、判斷題(共40分,每小題2分。敘述正確則回答“是”,否則回答“否”)
16.在結(jié)構(gòu)類型的定義中,其中的數(shù)據(jù)成員可以是本身類型的直接對(duì)象。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
17.在結(jié)構(gòu)類型的定義中,允許出現(xiàn)結(jié)構(gòu)類型不完整的超前定義。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
18.定義結(jié)構(gòu)類型的變量時(shí),不能夠同時(shí)進(jìn)行初始化。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
19.使用一個(gè)結(jié)構(gòu)類型時(shí),必須一起使用關(guān)鍵字struct和類型標(biāo)識(shí)符。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
20.假定一個(gè)結(jié)構(gòu)類型的定義為 “struct A{int a,b; A* c;};”,則該類型的長(zhǎng)度為12。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
21.假定一個(gè)結(jié)構(gòu)類型的定義為 “struct B{int a[5]; char* b;};”,則該類型的長(zhǎng)度為20。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
22.執(zhí)行calloc(n,8)函數(shù)調(diào)用時(shí),將動(dòng)態(tài)分配得到8*n個(gè)字節(jié)的存儲(chǔ)空間。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
23.執(zhí)行malloc(sizeof(struct BB))函數(shù)調(diào)用時(shí),得到的動(dòng)態(tài)存儲(chǔ)空間能夠保存具有struct BB結(jié)構(gòu)類型的一個(gè)對(duì)象。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
24.假定要訪問一個(gè)結(jié)構(gòu)對(duì)象x中的由a指針成員所指向的對(duì)象,則表示方法為x.a。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
25.假定要訪問一個(gè)結(jié)構(gòu)指針p所指對(duì)象中的b指針成員所指的對(duì)象,則表示方法為p->b。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
26.與結(jié)構(gòu)成員訪問表達(dá)式(*fp).score等價(jià)的表達(dá)式是fp->score。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
27.在C語言中,對(duì)二進(jìn)制文件的所有不同打開方式共有6種。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
28.C語言中的標(biāo)準(zhǔn)輸入和輸出設(shè)備文件都屬于字符文件。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
29.在一個(gè)磁盤數(shù)據(jù)文件的文件名中,文件主名和擴(kuò)展名都是必須的,不可省略。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
30.在數(shù)據(jù)文件打開方式字符串中,字符r、w和a具有確定的含義,分別代表讀、寫和追加方式。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
31.一個(gè)磁盤數(shù)據(jù)文件的文件名由文件主名和擴(kuò)展名所組成,其中間用圓點(diǎn)分開。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
32.C語言系統(tǒng)中提供一個(gè)用來描述文件屬性的類型標(biāo)識(shí)符為FILE。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
33.每次只能向文本文件中寫入一個(gè)字符,不能一次寫入一個(gè)字符串。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
34.對(duì)二進(jìn)制文件進(jìn)行讀和寫操作將使用相同的系統(tǒng)函數(shù)。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
35.在C語言中,系統(tǒng)函數(shù)fseek()用來移動(dòng)數(shù)據(jù)文件中的文件位置指針。
判斷題 (2 分) 2分
A.對(duì)
B.錯(cuò)
三、寫出下列每個(gè)程序運(yùn)行后的輸出結(jié)果(共15分,每小題5分)
36.
#include<stdio.h>
struct Worker {
char name[15]; //姓名
int age; //年齡
float pay; //工資
};
void main() {
struct Worker x={“wanghua”,52,4300};
struct Worker y, *p;
y=x; p=&x;
printf(“%s %d %6.2f\n”,x.name,y.age,p->pay);
}
簡(jiǎn)答題 (5 分)
37.
#include<stdio.h>
#include<string.h>
struct Worker {
char name[15]; //姓名
int age; //年齡
float pay; //工資
};
void main() {
struct Worker x;
char *t=”liouting”;
int d=38; float f=3493;
strcpy(x.name,t);
x.age=d; x.pay=f;
printf(“%s %d %6.0f\n”,x.name,x.age,x.pay);
}
簡(jiǎn)答題 (5 分)
38.
#include<stdio.h>
struct Worker {char name[15]; int age; float pay;};
int Less(struct Worker r1, struct Worker r2) {
if(r1.age<r2.age) return 1; else return 0;
}
void main() {
struct Worker a[4]={{“abc”,25,2420},{“def”,58,4638},
{“ghi”,49,4260},{“jkl”,36,3750}};
struct Worker x=a[0];
int i;
for(i=1; i<4; i++)
if(Less(x,a[i])) x=a[i];
printf(“%s %d %6.0f\n”,x.name,x.age,x.pay);
}
簡(jiǎn)答題 (5 分)
四、寫出下列每個(gè)函數(shù)的功能(共15分,每小題5分)
39.
void QA(struct Worker a[], int n) {
int i;
for(i=1; i<n; i++
scanf(“%s %d %f”,&a[i].name,&a[i].age,&a[i].pay);
}
假定結(jié)構(gòu)類型struct Worker 的定義如下:
struct Worker { char name[15]; int age; float pay;};
簡(jiǎn)答題 (5 分)
40.
int Count(struct IntNode *f)
{ //f為指向一個(gè)單鏈表的表頭指針
int c=0;
while(f) {
c++;
f=f->next;
}
return c;
}
假定struct IntNode的類型定義為:
struct IntNode {int data; IntNode* next;};
簡(jiǎn)答題 (5 分)
41.
void xw1(char* fname) {
FILE* fout=fopen(fname,”w”);
char a[20];
printf(“每個(gè)字符串長(zhǎng)度小于20,字符串end作為結(jié)束標(biāo)志\n”);
while(1) {
scanf(“%s”,a);
if(strcmp(a,”end”)==0) break;
fputs(a,fout);
fputc(‘\n’,fout);
}
fclose(fout);
}
簡(jiǎn)答題 (5 分)
奧鵬,國(guó)開,廣開,電大在線,各省平臺(tái),新疆一體化等平臺(tái)學(xué)習(xí)
詳情請(qǐng)咨詢QQ : 3230981406或微信:aopopenfd777

