(35)在C語(yǔ)言中,形參的缺省存儲(chǔ)類(lèi)是
A)auto
B)register
C)static
D)extern
【答案】A
【解析】本題考核的知識(shí)點(diǎn)是定義函數(shù)時(shí)形參的缺省存儲(chǔ)類(lèi)。在C語(yǔ)言中,形參的缺省存儲(chǔ)類(lèi)為auto。
(36)若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單位,不正確的語(yǔ)句是
A)p=2*(int *)malloc(sizeof(int));
B)p=(int *)malloc(2*sizeof(int));
C)p=(int *)malloc(2*2);
D)p=(int *)malloc(2,sizeof(int));
【答案】A
【解析】malloc()函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請(qǐng)n個(gè)字符的存儲(chǔ)單元并把該存儲(chǔ)區(qū)的首地址作為返回值,實(shí)際調(diào)用的時(shí)候可在前面加上“(類(lèi)型說(shuō)明符*)”,以轉(zhuǎn)換成需要的類(lèi)型的地址。選項(xiàng)D多了一個(gè)參數(shù),不符合malloc()函數(shù)的調(diào)用格式;整型變量在有的計(jì)算機(jī)系統(tǒng)里占4個(gè)字節(jié),并不一定在所有的計(jì)算機(jī)系統(tǒng)里都是兩個(gè)字節(jié);選項(xiàng)A中是申請(qǐng)一個(gè)整型的存儲(chǔ)空間并把該存儲(chǔ)空間的首地址乘以2,這樣的做法是不正確的,其存儲(chǔ)空間為沒(méi)乘以2之前的存儲(chǔ)空間的2倍的連續(xù)存儲(chǔ)空間的地址。
(37)以下程序的輸出結(jié)果是
main()
{ char x=040;
printf("%o\n",x<<1);
}
A)100
B)80
C)64
D)32
【答案】A
【解析】首先將八進(jìn)制040轉(zhuǎn)換成二進(jìn)制數(shù)000100000,再將此二進(jìn)制數(shù)左移一位為001000000,輸出時(shí)轉(zhuǎn)換成八進(jìn)制數(shù)100。
(38)若要打開(kāi)A盤(pán)上user子目錄下名為abc.txt的文本文件進(jìn)行讀、寫(xiě)操作,下面符合此要求的函數(shù)調(diào)用是
A)fopen("A:\user\abc.txt", "r")
B)fopen("A:\\user\\abc.txt", "r+")
C)fopen("A:\user\abc.txt", "rb")
D)fopen("A:\\user\\abc.txt","w")
【答案】B
【解析】本題考核的知識(shí)點(diǎn)是文件名的表示法以及文件的讀寫(xiě)模式。由于“\”是轉(zhuǎn)義字符,所以在文件名中的“\”用“\\”來(lái)表示。要打開(kāi)文本文件進(jìn)行讀寫(xiě),應(yīng)使用讀寫(xiě)模式“r+”。
(39)以下不能正確進(jìn)行字符串賦初值的語(yǔ)句是
A)char str[5]="good! ";
B)char str[]="good! ";
C)char *str="good! ";
D)char str[5]={'g', 'o', 'o', 'd'};
【答案】A
【解析】選項(xiàng)A定義了一個(gè)字符數(shù)組str,具有5個(gè)元素,但賦初值的時(shí)候,初值個(gè)數(shù)卻是6個(gè)(有一個(gè)'\0',);選項(xiàng)B定義了一個(gè)字符數(shù)組str并給它賦初值,由于省去了長(zhǎng)度定義,長(zhǎng)度由初值個(gè)數(shù)確定,相當(dāng)于str[6];選項(xiàng)C定義了一個(gè)字符型指針變量并用一個(gè)字符串給它賦初值,使該字符型指針指向了該字符串;選項(xiàng)D是對(duì)字符型數(shù)組中單個(gè)元素依次賦初值。
(40)若有下面的說(shuō)明和定義:
struct test
{ int ml;char m2;float m3;
union uu{char ul[5];int u2[2];} ua;
} myaa;
則 sizeof(struct test)的值是
A)12
B)16
C)14
D)9
【答案】A
【解析】結(jié)構(gòu)體所占用的存儲(chǔ)空間是其所有成員占用的存儲(chǔ)空間之和,而共用體所占用的存儲(chǔ)空間是成員中占用存儲(chǔ)空間者的空間,共用體類(lèi)型uu是結(jié)構(gòu)體的成員,它所占的內(nèi)存長(zhǎng)度為成員的長(zhǎng)度,即字符型數(shù)組u1的長(zhǎng)度,即1×5=5。每個(gè)整型數(shù)據(jù)占用2個(gè)字節(jié),每個(gè)字符型數(shù)據(jù)占用一個(gè)字節(jié),單精度型數(shù)據(jù)占4個(gè)字節(jié),myaa為結(jié)構(gòu)體變量,它所占的存儲(chǔ)空間為各個(gè)成員所占存儲(chǔ)空間之和,即2+1+4+5=12。
(41)若有定義:int aa[8];。則以下表達(dá)式中不能代表數(shù)組元素aa[1]的地址是
A)&aa[0]+1
B)&aa[1]
C)&aa[0]++
D)aa+1
【答案】C
【解析】在C語(yǔ)言中,數(shù)組的地址和數(shù)組中的第一個(gè)元素的地址相同。數(shù)組中第一個(gè)元素地址的表示方法為&aa[0],與其等價(jià)的有&aa[0]++;選項(xiàng)A為數(shù)組的第1個(gè)元素的地址下移一位即是第二個(gè)元素aa[l]的地址;B也為數(shù)組的第二個(gè)元素的地址,選項(xiàng)D中aa表示數(shù)組的地址,加1表示數(shù)組首地址后移一位,即代表數(shù)組元素中的第二個(gè)元素aa[1]的地址。
(42)以下程序的輸出結(jié)果是
f(int b[],int m,int n)
{ int i,s=0;
for (i=m;i<n;i=i+2)s=s+b[i];
return s;
}
main()
{ int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A)10
B)18
C)8
D)15
【答案】A
【解析】在main()函數(shù)中定義了一個(gè)變量x,以及一個(gè)有9個(gè)元素的數(shù)組a,并且每個(gè)元素分別賦初值為1、2、3、4、5、6、7、8和9。執(zhí)行函數(shù)調(diào)用f(a,3,7),把a(bǔ)的首地址賦給形參b,把3和7分別賦給形參m和n。在f()函數(shù)中,for循環(huán)執(zhí)行了2次:第一次,i的值為3,相當(dāng)于執(zhí)行了語(yǔ)句“s=s+b[3]”,b[3]的值就是a[3]的值4,故s的值變?yōu)?;第二次,i值為5,相當(dāng)于執(zhí)行了語(yǔ)句“s=s+b[5];”,b[5]的值為6,故s的值變?yōu)?0。把s作為函數(shù)值返回并賦值給x
(43)若有以下定義和語(yǔ)句:
int s[4][5],(*ps)[5];
ps=s;
則對(duì)s數(shù)組元數(shù)的正確引用形式是
A)ps+1
B)*(ps+3)
C)ps[0][2]
D)*(ps+1)+3
【答案】C
【解析】本題首先定義了一個(gè)4行5列的數(shù)組s,又定義了一個(gè)指向由5個(gè)元素組成的一維數(shù)組的指針變量ps,通過(guò)賦值讓ps指向了數(shù)組s的首地址。此時(shí)數(shù)組元素s[i][j]的地址為“*(ps+i)+j”,數(shù)組元素s[i][j]可表示為*(*(ps+i)+j)。選項(xiàng)B表示的是數(shù)組元素a[3][0]的地址;選項(xiàng)D表示的是數(shù)組元素s[1][3]的地址;選項(xiàng)A中“ps+1”為指向下一行(第二行)的地址;選項(xiàng)C中ps[0][2]無(wú)條件等價(jià)于“*(ps[0]+2)”又無(wú)條件等價(jià)于“*(*(ps+0)+2)”,即是數(shù)組元素s[0][2]。
(44)以下程序的輸出結(jié)果是
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for (i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A)3
B)4
C)1
D)9
【答案】B
【解析】本題中定義了一個(gè)二維數(shù)組b并初始化,定義了一個(gè)變量t并賦初值1。接著通過(guò)一個(gè)二重循環(huán)將若干個(gè)元素的值加到變量t中。循環(huán)的執(zhí)行步驟是:外層循環(huán)變量i=0時(shí),內(nèi)層循環(huán)變量j=i執(zhí)行語(yǔ)句“t=t+b[i][b[j][j]]”,相當(dāng)于t=t+b[0][b[0][0]],由于b[0][0]的值為0,得到t的值為1;依次類(lèi)推,循環(huán)共執(zhí)行了3次,最后輸出t的值為4。
(45)以下程序的輸出結(jié)果是
#include <stdio.h>
#include <string.h>
main()
{ char b1[8]="abcdefg",b2[8],*pb=b1+3;
while(--pb>=b1)strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A)8
B)3
C)1
D)7
【答案】D
【解析】strcpy()函數(shù)的作用是把第二個(gè)參數(shù)代表的字符串,復(fù)制到第一個(gè)參數(shù)指向數(shù)組中。首先定義了兩個(gè)字符數(shù)組b1和b2,并用一個(gè)字符串給b1賦初值,然后定義了一個(gè)字符型指針變量pb,通過(guò)賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strcpy(b2,pb);”后,b2中的內(nèi)容為“cdefg”;第二次判斷條件“--pb>=b1”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“bcdefg”第三次判斷條件“--pb>=b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長(zhǎng)度,顯然是7。(這里還有一個(gè)關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,使得指針pb自減1,即前移一位)。
(46)在說(shuō)明語(yǔ)句:int *f();中,標(biāo)識(shí)符f代表的是
A)一個(gè)用于指向整型數(shù)據(jù)的指針變量
B)一個(gè)用于指向一維數(shù)組的行指針
C)一個(gè)用于指向函數(shù)的指針變量
D)一個(gè)返回值為指針型的函數(shù)名
【答案】D
【解析】定義指向整型元素的指針變量形式為:int*指針變量名。定義指向整型一維數(shù)組的行指針形式為:int(*指針變量名[長(zhǎng)度],定義指向返回值為整型的函數(shù)的指針變量的形式為:int(*函數(shù)名)(),定義返回值為指向整型的指針型函數(shù)的形式為:int *函數(shù)名()。本題定義的是一個(gè)返回值為指針型的函數(shù)f()。
(47)不合法的main函數(shù)命令行參數(shù)表示形式是
A)main(int a,char *c[])
B)main(int arc,char **arv)
C)main(int argc,char *argv)
D)main(int argv,char *argc[])
【答案】C
【解析】main()函數(shù)可以帶有參數(shù),并且參數(shù)只能有兩個(gè),第一個(gè)參數(shù)類(lèi)型為整型,用來(lái)記下命令行的參數(shù)個(gè)數(shù);第二個(gè)參數(shù)為一個(gè)字符型指針數(shù)組,或字符型二級(jí)指針變量(指向一個(gè)數(shù)組,數(shù)組元素又是一個(gè)一級(jí)字符指針),其各個(gè)元素用來(lái)記下從命令行各參數(shù)字符串的首地址。故本題只有C選項(xiàng)不符合要求。
(48)以下程序的輸出結(jié)果是
int x=3;
main()
{ int i;
for(i=1;i<x;i++)incre();
}
incre()
{ static int x=1;
x*=x+1;
printf("%d",x);
}
A)3 3
B)2 2
C)2 6
D)2 5
【答案】C
【解析】本題首先定義一個(gè)全局變量x并賦初值為3,主函數(shù)中使用這個(gè)全局變量控制循環(huán)次數(shù),循環(huán)執(zhí)行了2次,調(diào)用兩次incre()函數(shù)。第一次調(diào)用incre(),定義一個(gè)靜態(tài)變量x并賦初值1,然后執(zhí)行“x*=x+1”,使x的值變?yōu)?;第二次調(diào)用incre()函數(shù)時(shí),靜態(tài)變量將保留上一次退出時(shí)的值即2,執(zhí)行語(yǔ)句“x*=x+1”后,x的值變成6,輸出x的值為6。
A)auto
B)register
C)static
D)extern
【答案】A
【解析】本題考核的知識(shí)點(diǎn)是定義函數(shù)時(shí)形參的缺省存儲(chǔ)類(lèi)。在C語(yǔ)言中,形參的缺省存儲(chǔ)類(lèi)為auto。
(36)若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單位,不正確的語(yǔ)句是
A)p=2*(int *)malloc(sizeof(int));
B)p=(int *)malloc(2*sizeof(int));
C)p=(int *)malloc(2*2);
D)p=(int *)malloc(2,sizeof(int));
【答案】A
【解析】malloc()函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請(qǐng)n個(gè)字符的存儲(chǔ)單元并把該存儲(chǔ)區(qū)的首地址作為返回值,實(shí)際調(diào)用的時(shí)候可在前面加上“(類(lèi)型說(shuō)明符*)”,以轉(zhuǎn)換成需要的類(lèi)型的地址。選項(xiàng)D多了一個(gè)參數(shù),不符合malloc()函數(shù)的調(diào)用格式;整型變量在有的計(jì)算機(jī)系統(tǒng)里占4個(gè)字節(jié),并不一定在所有的計(jì)算機(jī)系統(tǒng)里都是兩個(gè)字節(jié);選項(xiàng)A中是申請(qǐng)一個(gè)整型的存儲(chǔ)空間并把該存儲(chǔ)空間的首地址乘以2,這樣的做法是不正確的,其存儲(chǔ)空間為沒(méi)乘以2之前的存儲(chǔ)空間的2倍的連續(xù)存儲(chǔ)空間的地址。
(37)以下程序的輸出結(jié)果是
main()
{ char x=040;
printf("%o\n",x<<1);
}
A)100
B)80
C)64
D)32
【答案】A
【解析】首先將八進(jìn)制040轉(zhuǎn)換成二進(jìn)制數(shù)000100000,再將此二進(jìn)制數(shù)左移一位為001000000,輸出時(shí)轉(zhuǎn)換成八進(jìn)制數(shù)100。
(38)若要打開(kāi)A盤(pán)上user子目錄下名為abc.txt的文本文件進(jìn)行讀、寫(xiě)操作,下面符合此要求的函數(shù)調(diào)用是
A)fopen("A:\user\abc.txt", "r")
B)fopen("A:\\user\\abc.txt", "r+")
C)fopen("A:\user\abc.txt", "rb")
D)fopen("A:\\user\\abc.txt","w")
【答案】B
【解析】本題考核的知識(shí)點(diǎn)是文件名的表示法以及文件的讀寫(xiě)模式。由于“\”是轉(zhuǎn)義字符,所以在文件名中的“\”用“\\”來(lái)表示。要打開(kāi)文本文件進(jìn)行讀寫(xiě),應(yīng)使用讀寫(xiě)模式“r+”。
(39)以下不能正確進(jìn)行字符串賦初值的語(yǔ)句是
A)char str[5]="good! ";
B)char str[]="good! ";
C)char *str="good! ";
D)char str[5]={'g', 'o', 'o', 'd'};
【答案】A
【解析】選項(xiàng)A定義了一個(gè)字符數(shù)組str,具有5個(gè)元素,但賦初值的時(shí)候,初值個(gè)數(shù)卻是6個(gè)(有一個(gè)'\0',);選項(xiàng)B定義了一個(gè)字符數(shù)組str并給它賦初值,由于省去了長(zhǎng)度定義,長(zhǎng)度由初值個(gè)數(shù)確定,相當(dāng)于str[6];選項(xiàng)C定義了一個(gè)字符型指針變量并用一個(gè)字符串給它賦初值,使該字符型指針指向了該字符串;選項(xiàng)D是對(duì)字符型數(shù)組中單個(gè)元素依次賦初值。
(40)若有下面的說(shuō)明和定義:
struct test
{ int ml;char m2;float m3;
union uu{char ul[5];int u2[2];} ua;
} myaa;
則 sizeof(struct test)的值是
A)12
B)16
C)14
D)9
【答案】A
【解析】結(jié)構(gòu)體所占用的存儲(chǔ)空間是其所有成員占用的存儲(chǔ)空間之和,而共用體所占用的存儲(chǔ)空間是成員中占用存儲(chǔ)空間者的空間,共用體類(lèi)型uu是結(jié)構(gòu)體的成員,它所占的內(nèi)存長(zhǎng)度為成員的長(zhǎng)度,即字符型數(shù)組u1的長(zhǎng)度,即1×5=5。每個(gè)整型數(shù)據(jù)占用2個(gè)字節(jié),每個(gè)字符型數(shù)據(jù)占用一個(gè)字節(jié),單精度型數(shù)據(jù)占4個(gè)字節(jié),myaa為結(jié)構(gòu)體變量,它所占的存儲(chǔ)空間為各個(gè)成員所占存儲(chǔ)空間之和,即2+1+4+5=12。
(41)若有定義:int aa[8];。則以下表達(dá)式中不能代表數(shù)組元素aa[1]的地址是
A)&aa[0]+1
B)&aa[1]
C)&aa[0]++
D)aa+1
【答案】C
【解析】在C語(yǔ)言中,數(shù)組的地址和數(shù)組中的第一個(gè)元素的地址相同。數(shù)組中第一個(gè)元素地址的表示方法為&aa[0],與其等價(jià)的有&aa[0]++;選項(xiàng)A為數(shù)組的第1個(gè)元素的地址下移一位即是第二個(gè)元素aa[l]的地址;B也為數(shù)組的第二個(gè)元素的地址,選項(xiàng)D中aa表示數(shù)組的地址,加1表示數(shù)組首地址后移一位,即代表數(shù)組元素中的第二個(gè)元素aa[1]的地址。
(42)以下程序的輸出結(jié)果是
f(int b[],int m,int n)
{ int i,s=0;
for (i=m;i<n;i=i+2)s=s+b[i];
return s;
}
main()
{ int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A)10
B)18
C)8
D)15
【答案】A
【解析】在main()函數(shù)中定義了一個(gè)變量x,以及一個(gè)有9個(gè)元素的數(shù)組a,并且每個(gè)元素分別賦初值為1、2、3、4、5、6、7、8和9。執(zhí)行函數(shù)調(diào)用f(a,3,7),把a(bǔ)的首地址賦給形參b,把3和7分別賦給形參m和n。在f()函數(shù)中,for循環(huán)執(zhí)行了2次:第一次,i的值為3,相當(dāng)于執(zhí)行了語(yǔ)句“s=s+b[3]”,b[3]的值就是a[3]的值4,故s的值變?yōu)?;第二次,i值為5,相當(dāng)于執(zhí)行了語(yǔ)句“s=s+b[5];”,b[5]的值為6,故s的值變?yōu)?0。把s作為函數(shù)值返回并賦值給x
(43)若有以下定義和語(yǔ)句:
int s[4][5],(*ps)[5];
ps=s;
則對(duì)s數(shù)組元數(shù)的正確引用形式是
A)ps+1
B)*(ps+3)
C)ps[0][2]
D)*(ps+1)+3
【答案】C
【解析】本題首先定義了一個(gè)4行5列的數(shù)組s,又定義了一個(gè)指向由5個(gè)元素組成的一維數(shù)組的指針變量ps,通過(guò)賦值讓ps指向了數(shù)組s的首地址。此時(shí)數(shù)組元素s[i][j]的地址為“*(ps+i)+j”,數(shù)組元素s[i][j]可表示為*(*(ps+i)+j)。選項(xiàng)B表示的是數(shù)組元素a[3][0]的地址;選項(xiàng)D表示的是數(shù)組元素s[1][3]的地址;選項(xiàng)A中“ps+1”為指向下一行(第二行)的地址;選項(xiàng)C中ps[0][2]無(wú)條件等價(jià)于“*(ps[0]+2)”又無(wú)條件等價(jià)于“*(*(ps+0)+2)”,即是數(shù)組元素s[0][2]。
(44)以下程序的輸出結(jié)果是
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for (i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
A)3
B)4
C)1
D)9
【答案】B
【解析】本題中定義了一個(gè)二維數(shù)組b并初始化,定義了一個(gè)變量t并賦初值1。接著通過(guò)一個(gè)二重循環(huán)將若干個(gè)元素的值加到變量t中。循環(huán)的執(zhí)行步驟是:外層循環(huán)變量i=0時(shí),內(nèi)層循環(huán)變量j=i執(zhí)行語(yǔ)句“t=t+b[i][b[j][j]]”,相當(dāng)于t=t+b[0][b[0][0]],由于b[0][0]的值為0,得到t的值為1;依次類(lèi)推,循環(huán)共執(zhí)行了3次,最后輸出t的值為4。
(45)以下程序的輸出結(jié)果是
#include <stdio.h>
#include <string.h>
main()
{ char b1[8]="abcdefg",b2[8],*pb=b1+3;
while(--pb>=b1)strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A)8
B)3
C)1
D)7
【答案】D
【解析】strcpy()函數(shù)的作用是把第二個(gè)參數(shù)代表的字符串,復(fù)制到第一個(gè)參數(shù)指向數(shù)組中。首先定義了兩個(gè)字符數(shù)組b1和b2,并用一個(gè)字符串給b1賦初值,然后定義了一個(gè)字符型指針變量pb,通過(guò)賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strcpy(b2,pb);”后,b2中的內(nèi)容為“cdefg”;第二次判斷條件“--pb>=b1”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“bcdefg”第三次判斷條件“--pb>=b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pb);”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長(zhǎng)度,顯然是7。(這里還有一個(gè)關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行一次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,使得指針pb自減1,即前移一位)。
(46)在說(shuō)明語(yǔ)句:int *f();中,標(biāo)識(shí)符f代表的是
A)一個(gè)用于指向整型數(shù)據(jù)的指針變量
B)一個(gè)用于指向一維數(shù)組的行指針
C)一個(gè)用于指向函數(shù)的指針變量
D)一個(gè)返回值為指針型的函數(shù)名
【答案】D
【解析】定義指向整型元素的指針變量形式為:int*指針變量名。定義指向整型一維數(shù)組的行指針形式為:int(*指針變量名[長(zhǎng)度],定義指向返回值為整型的函數(shù)的指針變量的形式為:int(*函數(shù)名)(),定義返回值為指向整型的指針型函數(shù)的形式為:int *函數(shù)名()。本題定義的是一個(gè)返回值為指針型的函數(shù)f()。
(47)不合法的main函數(shù)命令行參數(shù)表示形式是
A)main(int a,char *c[])
B)main(int arc,char **arv)
C)main(int argc,char *argv)
D)main(int argv,char *argc[])
【答案】C
【解析】main()函數(shù)可以帶有參數(shù),并且參數(shù)只能有兩個(gè),第一個(gè)參數(shù)類(lèi)型為整型,用來(lái)記下命令行的參數(shù)個(gè)數(shù);第二個(gè)參數(shù)為一個(gè)字符型指針數(shù)組,或字符型二級(jí)指針變量(指向一個(gè)數(shù)組,數(shù)組元素又是一個(gè)一級(jí)字符指針),其各個(gè)元素用來(lái)記下從命令行各參數(shù)字符串的首地址。故本題只有C選項(xiàng)不符合要求。
(48)以下程序的輸出結(jié)果是
int x=3;
main()
{ int i;
for(i=1;i<x;i++)incre();
}
incre()
{ static int x=1;
x*=x+1;
printf("%d",x);
}
A)3 3
B)2 2
C)2 6
D)2 5
【答案】C
【解析】本題首先定義一個(gè)全局變量x并賦初值為3,主函數(shù)中使用這個(gè)全局變量控制循環(huán)次數(shù),循環(huán)執(zhí)行了2次,調(diào)用兩次incre()函數(shù)。第一次調(diào)用incre(),定義一個(gè)靜態(tài)變量x并賦初值1,然后執(zhí)行“x*=x+1”,使x的值變?yōu)?;第二次調(diào)用incre()函數(shù)時(shí),靜態(tài)變量將保留上一次退出時(shí)的值即2,執(zhí)行語(yǔ)句“x*=x+1”后,x的值變成6,輸出x的值為6。