第一篇:北航C語(yǔ)言期末模擬試題2012
單選題
下列關(guān)于單目運(yùn)算符++、--的敘述中正確的是(D)。
A、它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量 B、它們的運(yùn)算對(duì)象可以是任何變量和常量
C、它們的運(yùn)算對(duì)象可以是char型變量和int型變量,但不能是float型變量 D、它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量
執(zhí)行下列程序后,其輸出結(jié)果是(D)。main(){int a=9;a+=a-=a+a;printf(“%dn”,a);} A、18 B、-9 C、9 D、-18 詳解:
優(yōu)先級(jí):a+=(a-=(a+a))1a+a:18
○2a-=18:此時(shí)a=-9;注意,a已經(jīng)不是9,而是-9了
○3a+=-9:即a=a+(-9)=(-9)+(-9)=-18 ○
打印語(yǔ)句printf(“sTUDENDbTrS”);在屏幕上正確的輸出形式是(C).A、sTUDENDS B、TUDENTS C、STUDENT D、sTUDENTS 詳解:
知識(shí)點(diǎn):b表示退格;
r表示回車,即將當(dāng)前位置一道“本行”開頭 ○1sTUDEND ○2 sTUDENT ○3 STUDENT
已知鍵盤輸入a=4,b=3,下面程序輸出的結(jié)果是(C).main(){ int a,b,s;scanf(“%d%d”,&a,&b);s=a;if(a
若給定條件表達(dá)式(m)?(a++):(a--),則其中表達(dá)式m(B)。
A、和(m==0)等價(jià) B、和(m!=0)等價(jià) C、和(m==1)等價(jià) D、和(m!=1)等價(jià) 注意:
此處不能選C,因?yàn)椤胺橇愕臄?shù)即表示真”。如當(dāng)m=2時(shí),值為真,結(jié)果是a++;但是若選C,則結(jié)果為a--.執(zhí)行語(yǔ)句 for(i=1;i++<4;);后變量 i 的值是(B)。
A、3 B、5 C、4 D、不定
以下描述中正確的是(C)。
A、由于 do-while 循環(huán)中循環(huán)體語(yǔ)句只能是一條可執(zhí)行語(yǔ)句,所以循環(huán)體內(nèi)不能使用復(fù)合語(yǔ)句 B、do-while 循環(huán)中,根據(jù)情況可以省略 while C、在 do-while 循環(huán)體中,必須有能使循環(huán)退出的操作。
D、do-while 循環(huán)由do開始,用while結(jié)束,在 while(表達(dá)式)后面不能寫分號(hào)
int a[10];合法的數(shù)組元素的最小下標(biāo)值為(D)。
A、10 B、9 C、1 D、0 題意是a[]的括號(hào)內(nèi)最小數(shù)可以是多少,而不是說(shuō)定義的時(shí)候int a[]的括號(hào)里最小的數(shù)是多少。注意看清題目意思。
以下正確的函數(shù)定義是(C).A、double fun(int x, int y){ z=x+y;return z;} B、fun(x, y){ int x, y;double z;z=x/y;return z;} C、float f(int x, int y){float z;z=x/y;return z;} D、fun(int x, y){ int z;return z;}
char a1[]=“abc”,a2[80]=“1234”;將a1串連接到a2串后面的語(yǔ)句是(A)。
A、strcat(a2,a1);B、strcat(a1,a2);C、strcpy(a1,a2);D、strcpy(a2,a1);
若有 char s1[]=“abc”,s2[20],*t=s2;gets(t);則下列語(yǔ)句中能夠?qū)崿F(xiàn)當(dāng)字符串s1大于字符串s2時(shí),輸出s2的語(yǔ)句是(C)。
A、if(strcmp(s2,s1)>0)puts(s2);B、if(strcmp(s2,t)>0)puts(s2);C、if(strcmp(s1,t)>0)puts(s2);D、if(strcmp(s1,s1)>0)puts(s2);strcmp()括號(hào)里可以是字符串本身,也可以是字符串的地址(首地址)
已知有宏定義#define SQR(a)2*a*a,則SQR(3+4)的值為(A).A、22 B、32 C、98 D、18
若有說(shuō)明:int *p,m=5,n;以下正確的程序段是(D)。
A、scanf(“%d”,&n);*p=n;B、p=&n;scanf(“%d”,*p)C、p=&n;scanf(“%d”,&p);D、p=&n;scanf(“%d”,p);注意指針必須先初始化才能進(jìn)行運(yùn)算 char h,*s=&h;可將字符H通過(guò)指針存入變量h中的語(yǔ)句是(A)。
A、*s='H';B、s='H' C、*s=H;D、s=H;
定義結(jié)構(gòu)體的關(guān)鍵字是(A)。
A、struct B、typedef C、enum D、union
判斷題
若 a=3,b=2,c=1 則關(guān)系表達(dá)式“(a>b)==c” 的值為“真”。T a=(b=4)+(c=6)是一個(gè)合法的賦值表達(dá)式。T C語(yǔ)言程序中輸入一個(gè)中間帶有空格的字符串時(shí),可以用scanf函數(shù).F 格式字符%e以指數(shù)形式輸出實(shí)數(shù)數(shù)字部分小數(shù)位數(shù)7位.F 設(shè)g=1,h=2,k=3,則邏輯表達(dá)式k+g||!h&&k-h的值為0。F 求解表達(dá)式max=(a>b)?a:b的步驟是,先求解條件表達(dá)式(a>b),再根據(jù)它的值將a或b賦給max.T 語(yǔ)句if(a>b)printf(“%d”,a);else printf(“%d”,b);可以用條件表達(dá)式a>b?a:b取代.F break語(yǔ)句能夠終止當(dāng)前進(jìn)行的多層循環(huán).F for循環(huán)的三個(gè)表達(dá)式都可以省略.T for語(yǔ)句的循環(huán)體至少執(zhí)行一次.F(do …… while 才是)字符串“Da lian”在內(nèi)存中的存儲(chǔ)長(zhǎng)度是7.F(因?yàn)樽詣?dòng)加