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