- 相關(guān)推薦
2016最新計(jì)算機(jī)二級(jí)筆試題及答案
本文為大家提供的是計(jì)算機(jī)二級(jí)的考試試題,希望能幫助到大家!
1)設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達(dá)式中,值為0的表達(dá)式是_______。
A)‘a’&&‘b’ B)a<=b C)a||+c&&b-c D)!((a
1)D
知識(shí)點(diǎn):幾種運(yùn)算符的使用
評(píng)析:選項(xiàng)A:‘a’&&‘b’是字符a與b的相與,故不為0。
選項(xiàng)B:a<=b,由題中變量賦值可知,結(jié)果為l。
選項(xiàng)c:a||+c&&b-c,此表達(dá)式先做算術(shù)運(yùn)算b-c,結(jié)果為一1.而+c屬于單目運(yùn)算符,由于c初值為5,經(jīng)過單目運(yùn)算符運(yùn)算后,還是5,下面再進(jìn)行邏輯與的運(yùn)算,即5&&-1結(jié)果為1(因?yàn)閏語言中除O代表假外,其他任一個(gè)數(shù)都代表真),最后a||l,結(jié)果為1。
選項(xiàng)D:!((a
2)設(shè)有如下程序
#include
main()
{
int **k,*j,i=100;
j=&i; k=&j;
printf("%d\n",**k);
}
上述程序的輸出結(jié)果是_______。
A)運(yùn)行錯(cuò)誤 B)100 c)i的地址 D)j的地址
2)B
知識(shí)點(diǎn):指針變量的引用
評(píng)析:j=&i,j的值就是i的地蚍,*j=100,將j的地址賦給k,這時(shí)*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。
3)設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:_______(其中0≤i
int a[10]={0,l,2,3,4,5,6,7,8,9,},*p=a;
A)a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))
3)D
知識(shí)點(diǎn):通過指針引用數(shù)組元素
評(píng)析:觀察程序可知.a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。
4)有以下程序:
#include
main(){
char c[6];
int i=0:
for(;i<6;c[i]=getchar(),i++);
for(i=0;i<6;i++)putchar(c[i]);
printf("\n");
}
如果從鍵盤上輸入:
ab<回車>
c<回車>
def<回車>
則輸出結(jié)果為________。
A)a B)a C)ab D)abcdef
b b c
c c d
d d
e
f
4)C
知識(shí)點(diǎn):字符數(shù)據(jù)的輸入、輸出
評(píng)析:1.getchar()
此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。請(qǐng)注意:getchar()只能接受一個(gè)字符(回車符也算是一個(gè)字符)。getchar函數(shù)得到的字符可以賦給一個(gè)字符變量或整型變量,也可不賦給任何變量,作為表達(dá)式的一部分。
2.putchar()
此函數(shù)的作用是向終端輸出一個(gè)字符,也可以輸出控制字符,如回車符•使輸出的當(dāng)前位置移到下一行的開頭。
本題在輸入字符時(shí),ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。
5)下面程序
#include
#include
main()
{ char*p1:"abc",*p2="ABC",str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);
}
的輸出是_______。
A)xyzabcABC B)zabcABC
C)yzabcABC D)xyabcABC
5)D
知識(shí)點(diǎn):字符串的連接和拷貝
評(píng)析:strcat(字符數(shù)組l,字符數(shù)組2)的作用是連接兩個(gè)字符數(shù)組中的字符串,把字符串2接到字符串l的后面,結(jié)果放在字符數(shù)組l中,本題中strcat(p1,p2)函數(shù)將*pl和*p2指向的兩個(gè)串連接了起來,將字符串a(chǎn)bcABC放到了*pl所指向的存儲(chǔ)單元中:而strcpy(字符數(shù)組1,字符串2)函數(shù)將字符串2復(fù)制到字符數(shù)組1中去,本題將字符串a(chǎn)bcABC復(fù)制到了str+2所指向的存儲(chǔ)單元中,即將原str數(shù)組中的字符z及z向后的所有字符覆蓋,所以在打印輸出時(shí),str的值已經(jīng)等于“xyabcABC”。
6)下面程序
int aa[3][3]={{2},{4},{6}};
main()
{ int i,*p=&aa[0][0];
for(i=0;i<2;i++){
if(i==0)aa[i][i+1]=*p+l;
else ++p;
printf("%d",*p);
}
}
的輸出是_______。
A)23 B)26 C)33 D)36
6)A
知識(shí)點(diǎn):for循環(huán)語句
評(píng)析:觀察題目,可以發(fā)現(xiàn),*p=&aa[0][O]語句實(shí)際是將數(shù)組aa的首地址賦給了指針變量p,將i的值帶入for循環(huán)中,i=0時(shí),aa[0][1]=3,*p=2;*p輸出的是指針?biāo)赶虻臄?shù)組值,此時(shí)p所指向的是aa[0][0],輸出2,而i=l時(shí)執(zhí)行了++p操作,使指針向后移動(dòng)指向了aa[0][l],所以在輸出*p時(shí)應(yīng)為3。
7)下面程序
main()
{ int x=100,a=10,b=20,okl=5,ok2=0;
if(a
if(b!=15)
if(!okl)x=1;
else if(ok2)x=10;
X=-1;
Ptintf("%d\n",x);
}
的輸出是_______。
A)-1 B)0 C)1 D)不確定的值
7)A
知識(shí)點(diǎn):判斷語句的循環(huán)嵌套
評(píng)析:第一個(gè)判斷值為真,過渡到下一個(gè)判斷,第二個(gè)判斷為真,過渡到第三個(gè)判斷……如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為一l,所以,無論前期如何變化,最后的x值依然為一l。
8)下面程序
main()
{
int x=32:
printf("%d\n",x=x<<1);
}
的輸出是_______。
A)100 B)160 C)120 D)64
8)D
知識(shí)點(diǎn):位運(yùn)算
評(píng)析:<<是c語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個(gè)語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方。所以,x<<1=32*2-64。
9)以下程序的輸出結(jié)果是________。
#include
#define FUDGE(y) 2.84+y
#define PR(a) printf("%d",(int))(a))
#define PRINT l(a) PR(a);putchar(‘\n’)
main()
{ int x=2;
PRINT l(FUDGE(5)*X);
}
A)1l B)12 C)13 D)15
9)B
知識(shí)點(diǎn):帶參數(shù)的宏定義
評(píng)析:在程序中如果有帶實(shí)參的宏,則按#define命令行中指定的字符串從左到右進(jìn)行置換,如果串中包含宏中的形參,則將程序語句中相應(yīng)的實(shí)參代替形參,如果宏定義中的字符串中的字符不是參數(shù)字符,則保留,這樣就形成了置換的字符串。
根據(jù)以上原則,我們將實(shí)參帶入已經(jīng)定義的宏中,可以得出答案,最后打印出來的是“12”。
10)以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請(qǐng)選擇正確答案填入:
#include
main()
{
int a[10],i=0;
while(i
:
:
}
A)a+(i++) B)&a[i+l] C]a+i D]&a[++i]
10)A
知識(shí)點(diǎn):格式輸入函數(shù)scanf()
評(píng)析:因?yàn)閍實(shí)際上就是數(shù)組a的首地址,而a+x則是數(shù)組中第x個(gè)元素的地址,所以在四個(gè)選項(xiàng)中,選項(xiàng)B和C只能輸入一個(gè)數(shù)據(jù),選項(xiàng)D不能給a[0]輸入數(shù)據(jù),只有選項(xiàng)A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。
11)字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是________。
A)反碼 B)補(bǔ)碼
C)EBCDIC碼 D)ASCII碼
11)D
知識(shí)點(diǎn):字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式
評(píng)析:將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。
12)下面程序的輸出是________。
typedef union
{ long x[2];
int y[4];
char z[8];
}MYTYPE;
MYTYPE them;
main()
{ printf("%d\n",sizeof(them));}
A)32 B)16 C)8 D)24
12)C
知識(shí)點(diǎn):共用體的長度
評(píng)析:sizeof(x)是一個(gè)標(biāo)準(zhǔn)c函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù)。題目中定義了一個(gè)共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度,所以共用體MYTYPE需要8個(gè)字節(jié)的存儲(chǔ)空間,由它定義的變量的長度當(dāng)然也是8。
13)不能把字符串:“Hello!”賦給數(shù)組b的語句是________。
A)char b[10]={‘H’,‘e’,‘l’,‘l’,‘0’,‘!’};
B)char b[10]={‘h’,‘e’,‘l’,‘l’,‘0’,‘!’};
C)char b[10];strcpy(b,"Hello!");
D)char b[10]="Hello!";
13)B
知識(shí)點(diǎn):給數(shù)組賦值
評(píng)析:在c語言中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,因此,“hello!”和“Hello!”是兩個(gè)不同的字符串。
14)下面程序的輸出是________。
main()
{ int x=3,y=6,a=0;
while(x++!=(y—=1))
{ a+=1;
if(y
}
printf("x:%d,y:%d,a=%d\n",x,y,a);
}
A)x=4.v=4,a=1 B)x=5,y=5,a=1
C)x=5,y=4,a=3 D)x=5,y=4,a=l
14)D
知識(shí)點(diǎn):運(yùn)算符
評(píng)析:注意在x++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:
第一次while循環(huán):x=3與y=5比較,條件為真,執(zhí)行a=a+1=1;此時(shí),x的值己為4,判斷y
第二次while循環(huán):x=4與y=4比較,條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。
15)下面程序的輸出是_______。
main()
{char*s:"12134211";
int vl=0,v2=0,V3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:V4++;
case‘1’:vl++:
case‘3’:v3++:
case‘2’:v2++:
}
printf("vl=%d,v2=%d,v3=%d,v4=%d\n",vl,v2,v3,V4);
}
A)vl=4,v2=2,v3=l,v4=1 B)vl=4,V2=9,V3=3,V4=l
C)vl=5,v2=8,v3=6,v4=1 D)vl=8,V2=8,V3=8,v4=8
15)C
知識(shí)點(diǎn):switch()語句
評(píng)析:當(dāng)switch后面括弧內(nèi)的表達(dá)式的值與某一個(gè)case后面的常量的表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語句,若所有的case中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行default后面的語句。本題中,for循環(huán)的條件是s數(shù)組的數(shù)組元素值,只要將數(shù)組的值一一代入程序逐步求解即可。
16)下面程序的輸出是_______。
main()
{int k=ll;
printf("k=%d,k=%o,k=%x\n",k,k,k);
}
A)k=11.k=12,k=ll B)k=ll,k=13,k=13
C)k=ll,k=013,k=0xb D)k=ll,k=13,k=B
16)D
知識(shí)點(diǎn):格式字符
評(píng)析:在c語言格式字符的輸出中,“%d”是以帶符號(hào)的十進(jìn)制形式輸出整數(shù),即k=ll:“%o”是以8進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0),即k=13:“%x”是以16進(jìn)制無符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0x),即k=B。
17)以下敘述中正確的是_______。
A)c語言比其他語言高級(jí)
B)C語言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行
c)c語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式
D)C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點(diǎn)
17)C
知識(shí)點(diǎn):c語言風(fēng)格
評(píng)析:計(jì)算機(jī)語言分為低級(jí)語言、匯編語言和高級(jí)語言,c語言屬于高級(jí)語言,但并不是說c語言比其他語言高級(jí),所以選項(xiàng)A錯(cuò)誤;除了低級(jí)語言外,其他各種語言都必須編譯成能被計(jì)算機(jī)識(shí)別的二進(jìn)制數(shù)才能執(zhí)行,選項(xiàng)B錯(cuò)誤;c語言出現(xiàn)于1972年到1973年問,并不是出現(xiàn)最晚的語言,所以選項(xiàng)D也是錯(cuò)誤的。
18)下列可用于c語言用戶標(biāo)識(shí)符的一組是_______。
A)void define WORD B)a3_b3 _123 Car
C)For -abc IFCase D)2a D0 sizeof
18)B
知識(shí)點(diǎn):c語言的標(biāo)識(shí)符
評(píng)析:c語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符必須為字母或下劃線,所以排除c和D。c語言還規(guī)定標(biāo)識(shí)符不能為c語言的關(guān)鍵字,從而選項(xiàng)A是錯(cuò)誤的,因?yàn)関oid為關(guān)鍵字。
19)請(qǐng)選出正確的程序段________。
A)int*p B)int*s,k;
Scanf("%d",p); *s=100;
……
C)int*s,k: D)int*s,k;
Char*p,c; char*p,e;
s=&k; s=&k;
p=&c; p=&c;
*p=‘a’; s=p;
…… *s=l;
……
19)C
知識(shí)點(diǎn):指針變量
評(píng)析:本題的A和B犯了一個(gè)同樣的錯(cuò)誤,即指針變量p定義后并沒有指向具體的變量。也就是說,p中沒有確定的地址值,它的值是不可預(yù)見的,所指向的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D中,s是int指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變最s。
【最新計(jì)算機(jī)二級(jí)筆試題及答案】相關(guān)文章:
2016最新計(jì)算機(jī)二級(jí)試題及答案07-04
2016最新計(jì)算機(jī)二級(jí)考試題及答案05-31
2016最新計(jì)算機(jī)二級(jí)Access上機(jī)試題及答案11-03
最新計(jì)算機(jī)二級(jí)VB考試題及答案11-11
2016最新計(jì)算機(jī)二級(jí)VF考前試題及答案10-13