【正文】
include main ( ) { int a[]={1, 2, 3, 4, 5} ; int x, y, *p; p=amp。 main() { int a=2,i; for(i=0; i3; i++) printf(%4d,f(a)); } f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); } A) 7 7 7 B) 7 10 13 C) 7 9 11 D) 7 8 9 【 】下面程序的輸出結(jié)果是 ____。); /* ② */ } printf(\n%d, %d, m, k); /* ③ */ } ① A) 4,1 B) 5,6 C) 4,6 D) A,B,C 參考答案都不對 ② A) 1 B) 59 C) 64 D) A,B,C 參考答案都不對 ③ A) 5,66 B) 1,66 C) 5,6 D) A,B,C 參考答案都不對 【 】下面程序的輸出結(jié)果是 ____。) p++; return(ps); } main() { printf(%d\n,f(ABCDEF)); 27 } A) 3 B) 6 C) 8 D) 0 【 】下面程序的輸出結(jié)果是 ____。 main() { int i,j,x=0; for(i=0; i2; i++) 25 { x++; for(j=0; j3; j++) { if(j%2) continue; x++; } x++; } printf(x=%d\n,x); } A) x=4 B) x=8 C) x=6 D) x=12 【 】下面程序的輸出結(jié)果是 ____。: k=k+10; break; default: k=k/3; } k++; }while(c39。: k++; break; case 39。\n39。339。a,amp。amp。 main() { unsigned int n; int i=521; n=i; printf(n=%u\n,n); } A) n=521 B) n=521 C) n=65015 D) n=102170103 【 】以下程序的輸出結(jié)果是 。 【 】答案: C 二、 閱讀程序題 導(dǎo)讀:學(xué)會閱讀程序?qū)τ诔鯇W(xué)者來說很重要,一方面可以鞏固所學(xué)的語法知識,另一方面通過閱讀別人寫好的程序來打開自己的思路,就所謂見多識廣。表達(dá)式 *(++p)m 的含義是先將指針 p 加 1,然后再取 m 的內(nèi)容(變量 b 的值)。根據(jù)以上分析,選項(xiàng) D 對 ptr 進(jìn)行了兩次地址操作( *和 []),所以結(jié)果應(yīng)是數(shù)據(jù),但是它加 1 后指向數(shù)組第二行,根據(jù)后面 []中 2 它的地址增加兩個(gè)一維數(shù)組的長度,就指向數(shù)組的最后一行,再做 *運(yùn)算就是數(shù)10,即 a[3][0]。 【 】答案: C 【 】答案: C 注釋: a 是二維數(shù)組名, a+1 中的 1 不是 1 個(gè)字節(jié),而是數(shù)組的 一行 ,即 10 個(gè)字節(jié),所以 a+1是第二個(gè)字符串的首地址, A 選項(xiàng)正確。 【 】答案: B 【 】答案: D 【 】答案: D 注釋:主調(diào)函數(shù)中 b=0,在執(zhí)行 fun1 函數(shù)里的除法時(shí)發(fā)生溢出錯(cuò)誤。 【 】答案: D 注釋: D 選項(xiàng)缺少字符串結(jié)束標(biāo)志。的結(jié)果時(shí),則對另一個(gè)運(yùn)算對象不做處理。用于表示轉(zhuǎn)義字符, A 選項(xiàng)在無引號時(shí)使用反斜線是錯(cuò)誤的; C 選項(xiàng)單引號內(nèi)出現(xiàn)反斜線表示 它與后面的數(shù)字組成一個(gè)轉(zhuǎn)義字符;單引號只允許括起一個(gè)字符, D 選項(xiàng)在單引號內(nèi)出現(xiàn) 4 個(gè)字符,是錯(cuò)誤的。 【 】答案: D 【 】答案: D 【 】答案: A 【 】答案: A 注釋: int 型表示整數(shù)的范圍是 32768~ 32767。 A) fp=fopen(file, r); B) fp=fopen(file, a+); C) fp=fopen(file, w); D) fp=fopen(39。 A) p = (struct sk *)amp。 A) (p++)m B) *(p++)m C) (*p).m D) *(++p)m 【 】若有以下說明語句,則對結(jié)構(gòu)變量 pup 中 sex 域的正確引用是 。a[3]; 【 】已知: struct person { char name[10]; int age; }class[10]={LiMing,29,ZhangHong,21,WangFang,22}; 下述表達(dá)式中,值為 72 的一個(gè)是 ____。 A)( *) . B) (*p).a C) p D) 【 】已知: struct st { int n; struct st *next; }; static struct st a[3]={1,amp。 A) p+=2,*(p++) B) p+=2,*++p C) p+=2,*p++ D) p+=2,++*p 【 】已知: int a[]={1,2,3,4}, y, *p=a;則執(zhí)行語句 y = (*++p);之后 , 數(shù)組 a 各元素的值變?yōu)?______。 A) p 是一個(gè)指向一維數(shù)組的指針變量 B) p 是指針變量,指向一個(gè)整型數(shù)據(jù) C) p 是一個(gè)指向函數(shù)的指針,該函數(shù)的返回值是一個(gè)整型 D) 以上都不對 【 】設(shè)有說明 int (*p)[4];其中的標(biāo)識符 p 是 。 A) printf(%f,fun1(a,b)); B) printf(%f,fun1(amp。 A) swapa(int x,int y) B) swapb(int *x,int *y) { int temp; { int temp; temp=x; x=y; y=temp; temp=x; x=y; y=temp; } } C) swapc(int *x,int *y) D) swapd(int *x,int *y) { int temp; { int *temp; temp=*x; *x=*y; *y=temp; temp=x; x=y; y=temp; } } 【 】求一個(gè)角的正弦函數(shù)值的平方。i39。n39。i39。n39。}; 【 】對字符數(shù)組 str 賦初值, 7 str 不能作為字符串使用的一個(gè)是 ____。,39。 A) 數(shù)組首地址 B) 數(shù)組的第一個(gè)元素值 C) 數(shù)組中全部元素的值 D) 數(shù)組元素的個(gè)數(shù) 【 】對二維數(shù)組的正確說明是 ____。 while(i) switch(i) { case 1: i+=1; j++; break; case 2: i+=2; j++; break; case j3: i+=3; ++; break; default: i; j++; break; } 6 A) 1 B) 2 C) 3 D) 死循環(huán) 【 】求取滿足式 12+22+32+ …… +n2 ? 1000 的 n, 正確的語句是 ____。y,amp。 A) 函數(shù)調(diào)用 B) double 型表達(dá)式 C) int 型表達(dá)式 D) 非法表達(dá)式 【 】執(zhí)行語句 printf(2:%d,printf(1:%d,scanf(%d,amp。 A) 11110000 B) 00001111 C) 11111111 D) 00000000 【 】已知 int a=15,執(zhí)行語句 a=a2 以后,變量 a 的值是 ____。c=122) 【 】已知 int a[3][2]={3,2,1}; 則表達(dá)式 a[0][0]/a[0][1]/a[0][2]的值是 ____。c=90||c=97amp。c=97||c=122 B) !(c=48||c=57amp。 4 A) 0 B) 1 C) 19 D) 20 【 】已知 int x=1,y;執(zhí)行下述語句后變量 x 的值是 ____。 A) 8 B) 9 C) 14 D) 非法字符串 【 】字符串 的長度是 ____。\239。 【 】下列轉(zhuǎn)義字符中錯(cuò)誤的一個(gè)是 ____。 A) 1 B) 32768 C) 1 D) 32768 【 】已知 long i=65539; 執(zhí)行語句 printf(%d,i);屏幕顯示 ____。 A) int B) a_1_2 C) ab1exe D) _x 【 】以下是正確的 C 語言標(biāo)識符是 ____。在完成習(xí)題的過程中,不但要選出正確的答案,而且要清楚不正確的選項(xiàng)錯(cuò)在何處,以加深對概念的理解。 A) 程序文件的開始 B) 程序文件的最后 C) 它所調(diào)用的函數(shù)的前面 D) 程序文件的任何位置 【 】下列關(guān)于 C 語言的敘述錯(cuò)誤的是 ____ A) 大寫字母和小寫字母的意義相同 B) 不同類型的變量可以在一個(gè)表達(dá)式中 C) 在賦值表達(dá)式中等號 (=)左邊的變量和右 邊的值可以是不同類型 D) 同一個(gè)運(yùn)算符號在不同的場合可以有不同的含義 【 】在 C 語言中,錯(cuò)誤的 int 類型的常數(shù)是 。\14739。 C) 39。\7039。 A) 15 B) 60 C) 30 D) 不確定 【 】如果 int a=1,b=2,c=3,d=4;則條件表達(dá)式 ab?a:cd?c:d的值是 ____。amp。amp。amp。 A) 操作數(shù)乘以 2 B) 操作數(shù)除以 2 C) 操作數(shù)除以 16 D) 操作數(shù)乘以 16 【 】已知 char a=222;執(zhí)行語句 a=aamp。 A) , B) □ C) x=,y= D) x=□ y= 【 】下列循環(huán)語句中有語法錯(cuò)誤的是 ____。y,amp。y,amp。 A) 3 B) 4 C) 5 D) 6 【 】已知 int x=12,y=3;執(zhí)行下述程序后, 變量 x 的值是 ____。e39。n39。,39。,39。,39。,39。 A) 函數(shù)返回值的數(shù)據(jù)類型 B) 函數(shù)形參的數(shù)據(jù)類型 C) 調(diào)用該函數(shù)時(shí)的實(shí)參的數(shù)據(jù)類型 D) 任意指定的數(shù)據(jù)類型 【 】已知如下定義的函數(shù): fun1(a) { printf(\n%d,a); } 則該函數(shù)的數(shù)據(jù)類型是 ____。 C) z 是一個(gè)變量,小括號內(nèi)的 10 是它的初值。a;則下列函數(shù)調(diào)用中錯(cuò)誤的是 。 A) printf(%s,a+1); B) printf(%s,*(a+1)); C) printf(%s,*a+1); D) printf(%s,amp。能正確執(zhí)行此功能的函數(shù)是 。a[0]; B) p=amp。a},{102,amp。 A) a=5; B) a={2,39。 man=0; switch(man) { case 0: printf(People\n); case 1: printf(Man\n); case 2: printf(Woman\n); default: printf(Error\n); } A) People B) Man C) Woman D)Error 【 】下述關(guān)于枚舉類型名的定義中,正確的是 ____。 A) 42 B) 48 C) 52 D) 出錯(cuò) 【 】已知宏定義 define SQ(x) x*x,執(zhí)行語句 printf(%d,10/SQ(3));后的輸出結(jié)果是 ____。 【 】答案: D 【 】答案: C 注釋:變量 c 是字符型,可用字符常量為它賦值。它的運(yùn)算順序是先算出右邊的條件表達(dá) 15 式 cd?c:d的值,然后求條件表達(dá)式 ab?a:3 的值。 【 】答案: D 注釋: break 語句僅可跳出 switch 語句,不會跳出 while 循環(huán),這是一個(gè)死循環(huán)。 auto 和 register 類型的變量的作用域是說明變量的當(dāng)前函數(shù);外部變量的作用域是整個(gè)程序,即外部變量的作用域可以跨越多個(gè)文件;內(nèi)部靜態(tài)變量(定義在一個(gè)函數(shù)內(nèi)部的 static 型的變量)的作用域是當(dāng)前函數(shù),外部靜態(tài)變量(定義在函數(shù)外面的 static 型的變量)的作用域是當(dāng)前文件,即可以跨越同一文件中的不同函數(shù)。對于 int *p[4],則根據(jù)運(yùn)算符的優(yōu)先級,先考慮 p和 []運(yùn)算符的關(guān)系,所以它就是一個(gè)指針數(shù)組了。注意,對于二維數(shù)組來說,做一次 *或 []運(yùn)算的結(jié)果仍是地址量,做兩次才是取數(shù)值。 【 】答案: D 注釋:由于結(jié)構(gòu)指針指向了結(jié)構(gòu)數(shù)組的 0 號元素,所以表達(dá)式 (p++)m 的含義是先取出 m(變量 a 的地址),然后指針 p 加 1。 C 語言是區(qū)分字母大小的,第二個(gè)宏定義中的 N直接用 3 替換,用 5+1 替換 n,則有 z=2*(3+(3+1)*5+1);結(jié)果是 48。 【 】以下程序的輸出結(jié)果是 。 main() { int a=1; char c=39。 main() { int a=111; a=a^00; printf(%d,%