【正文】
型的關(guān)鍵字 B) struct teacher 是用戶定義的結(jié)構(gòu)體類型 C) num,sex,age 都是結(jié)構(gòu)體變量teacher1 的成員 D) teacher1 是結(jié)構(gòu)體類型名 157. D 以下程序的運行結(jié)果是()。 include union Utype{ int i。 float f。 }u[2]。 void main() {printf(sizeof(u):%d\n,sizeof(u))。 } A) 2 B) 4 C) 6 D) 8 158. A 以下程序的運行結(jié)果()。 # include typedef struct node { int data。 struct node *next。 }Node。 Node list[3]={{1,amp。list[1]},{2,amp。list[2]},{3,0}}。 void print (Node *head) { Node *t=head。 while(t!=NULL) { printf(“%d”,tdata)。 t=tnext。} } void main() { print(list)。} A) 1 2 3 35 B) 0 1 2 C) 0 1 3 D) 2 3 0 159. A 對枚舉類型進行定義,不正確的是( )。 A) enum b{1, 2, 3}。 B) enum a{A, B, C}。 C) enum c{D=3, E, F}。 D) enum d{X=0, Y=5, Z=9}。 160. C 假定已有如下變量說明和枚舉定義: char ch。 int j,k。 enum day{sun,mon,tue,wed,thu,fri,sat}。 int a[sat] 判斷下列語句是否符合語法規(guī)則,結(jié)果是()。 char a。 /*語句 1 */ j+k=j。 /*語句 2 */ if(a[mon]0) j++。 /*語句 3 */ A) 語句 2 錯誤,其它正確 B) 語句 1 正確,其它錯誤 C) 語句 3 正確,其它錯誤 D) 語句 1 錯誤 ,其它正確 161. C 設(shè)有如下定義: typedef int *INTEGER。 INTEGER p,*q。 則( )是正確的敘述。 A) p 是 int型變量 B) q 是基類型為 int 的指針變量 C) p 是基類型為 int 的指針變量 D) 程序中可用 INTEGER 代替 int 類型名 162. A 在對于無符號數(shù)的位運算中,操作數(shù)右移一位相當于( )。 A) 操作數(shù)除以 2 B) 操作數(shù)乘以 2 C) 操作數(shù)除以 4 D) 操作數(shù)乘以 4 36 163. C 若有定義: int a=20,b=28,c。 則執(zhí)行語句 c=(a^b)2。后 c 的值為( )。 A) 2 B) 5 C) 32 D) 92 164. A 若有定義: int a=20,b=28,c。 則執(zhí)行語句 c=(aamp。b)2。后 c 的值為( )。 A) 5 B) 7 C) 80 D) 112 165. B 下面程序輸出結(jié)果是()。 include void main() {enum weekday{sum=7,mon=1,tue,wed,thu,fr,sat}。 enum weekday day=sat。 printf(“%d\n”,day)。 } A) 7 B) 6 C) 5 D) 4 166. C 以下程序的功能是( )。 include main() {FILE *fp。 long int n。 fp=fopen(“”,”rb”)。 fseek(fp,0,SEEK_END)。 n=ftell(fp)。 fclose(fp)。 printf(“%ld”,n)。 } A) 計算文件 的起始地址 B) 計算文件 的終止地址 C) 計算文件 內(nèi)容的字節(jié)數(shù) D) 將文件指針定位到文件末尾 167. B 標準函數(shù) fgets(s,n,f)的功能是( )。 A) 從文件 f中讀取長度為 n 的字符串存入指針 s所指的內(nèi)存 37 B) 從文件 f中讀取長度不超過 n– 1的字符串存入指針 s所指的內(nèi)存 C) 從文件 f中讀取 n個字符串存入指針s 所指的內(nèi)存 D) 從文件 f中讀取長度為 n– 1的字符串存入指針 s 所指的內(nèi)存 168. A 以下程序的可執(zhí)行文件名是 。 main() int argc。 char *argv[]。 {int i。 for(i=2。iargc。i++) printf(“%s%c”,argv[i],(iargc1)?? ?: ?\n?)。 } 在 DOS 命令行輸入: file My C Language and Programming回車 ,其輸出結(jié)果是( )。 A) C Language and Programming B) My C Language and Programming C) MyCLanguageandProgramming D) file My C Language and Programming 169. C 以下程序的可執(zhí)行文件名是 ,若程序運行后屏幕顯示:3, We are, 則在 DOS 提示符下輸入的命令是()。 void main(int argc, char *argv[ ]) {int i。 printf(“%d”,argc) for(i=1。iargc。i++) printf(“%s”, argv[i])。 } A) tt B) tt We C) tt We are D) tt We are happy! 170. D 以下程序運行后,屏幕顯示 write ok! ,下列說法正確的是()。 # include “” main() { FILE *fp。 fp=fopen(“”,”wt”)。 38 if(fp!=NULL) { fprintf(fp,”%s\n”, “File write successed!\n”)。 fclose(fp)。 printf(“write ok!\n”)。 } } A) 當前工作目錄下存在 ,其中的內(nèi)容是 write ok! B) fclose(fp)。語句的功能是打開文件 C) 當前工作目錄下一定不存在 文件 D) 當前工作目錄下一定存在 文件 171. C 以下程序運行后,屏幕顯示 File open error!,則可能的原因是()。 # include “” main() { FILE *fp。 char str[256]。 fp=fopen(“”,”rt”)。 if(fp==NULL) { printf(“File open error!”)。 return。 } fscanf(fp,”%s”,str)。 fclose(fp)。 } A) 當前工作目錄下有 ,但 文件太小 B) 文件不能關(guān)閉 C) 當前工作目錄下沒有 D) 當前工作目錄下有 ,但 文件太大 172. A 對下面程序正確的描述是()。 # include main() { int i 。 FILE *fp。 if((fp==fopen(“”,”rb+”))!=NULL) { i=fgetc(fp)。 i=i++。} fseek(fp,0,SEEK_SET)。 fputc(i,fp) fclose(fp)。 39 } A) 將文件中第一個字節(jié)的內(nèi)容加 1 并重新寫入到第一個字節(jié) B) 將文件中第一個字節(jié)的內(nèi)容加 1 并寫入到第二個字節(jié)中 C) 以只讀方式打開文本文件 D) 以只讀方式打開二進制文件 173. A 設(shè)有一文本文件 ,其內(nèi)容為 ”cprogram”(不包含引號 ),以下程序段的運行結(jié)果是()。 FILE *fp。 char *str。 if((fp=fopen(“”,”r”))!=NULL) str=fgets(str,5,fp)。 printf(“%s”,str)。 A) cpro B) cprog C) progr D)cprogram 174. B 若有定義: struct node { int data。 struct node *next。 }。 及函數(shù): void fun (struct node *head) { struct node *p=head。 while(p) { printf(“%d”,pdata)。 p=pnext。 break。 } } 40 調(diào)用 head 是指向鏈表首結(jié)點的指針,整個鏈表的結(jié)構(gòu)圖如下圖: head 則函數(shù) fun() 的功能是( )。 A) 刪除單向鏈表 B)顯示單向鏈表中的所有數(shù)據(jù) C)顯示單向鏈表中的第一個數(shù)據(jù) D)創(chuàng)建單向鏈表 175. B 若有如下定義,函數(shù) fun()的功能是()。其中 head 指向鏈表首結(jié)點,整個鏈表的結(jié)構(gòu)圖如下圖: struct node { int data。 struct node *next。 }。 int fun (struct node *head) { int n=0。 struct node *t=head。 while(t!=NULL) { n++。 t=tnext。 } return n。 } A) 刪除鏈表 head 中的所有結(jié)點 B)計算鏈表 head 中結(jié)點的個數(shù) C) 插入一個元素到鏈表 head中 D)創(chuàng)建一個鏈表 head 176. A 若有定義: struct node { int data。 5 17 38 NULL ?? 41 struct node *next。 }。 及函數(shù): void fun (struct node *head) { struct node *t=head。 while(t!=NULL) { if(tdata%2==0) printf(“%d”,tdata)。 t=tnext。 } } 調(diào)用 head 是指向鏈表首結(jié)點的指針,整個鏈表的結(jié)構(gòu)圖如下圖: head 則函數(shù) fun() 的功能是( )。 A) 遍歷鏈表 head,輸出表中值為偶數(shù)的元素 B) 建立一個只有表頭結(jié)點的鏈表head C) 刪除鏈表 head中的第一個結(jié)點 D) 插入一個元素到鏈表 head中 177. C 若有以下定義: struct link {int data。 struct link *next。 }*head,*p。 并已建立如下圖所示的鏈 表結(jié)構(gòu),指針 p 和 q 分別指向圖中所示結(jié)點: data data data NULL NULL ?? 42 則不能將指針 q 所指向結(jié)點連接到鏈表末尾的程序段是( )。 A) q– next = NULL。 p=p– next。 p– next=q。 B) p=p– next。 q– next=pnext。 p– next = q。 C) p=pnext。 q– next = p。 p– next=q。 D) p=(*p).next。 (*q).next=(*p).next。 (*p).next=q。