2016計算機二級C語言選擇題及答案
1.算法的空間復(fù)雜度是指( )。
A.算法程序的長度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
2.下列敘述中正確的是( )。
A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存諸結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存諸結(jié)構(gòu)影響數(shù)據(jù)處理的效率
3.簡單的交換排序方法是( )。
A.快速排序
B.選擇排序
c.堆排序
D.冒泡排序
4.關(guān)于結(jié)構(gòu)化程序設(shè)計原則和方法的描述錯誤的是( )。
A.選用的結(jié)構(gòu)只準許有一個入口和一個出口
B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進行組合嵌套來實現(xiàn)
c.不允許使用GOTO語句
D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬
5.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和( )。
A.可重用性差
B.安全性差
C.非持久性
D.冗余性
6.面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是( )。
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.不強調(diào)模擬現(xiàn)實世界中的算法而強調(diào)概念
7.對如下二叉樹進行后序遍歷的結(jié)果為( )。
A.ABCDEF
B.DBEAFC
C.ABDECF
D.DEBFCA
8.軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的過程設(shè)計是指( )。
A.模塊間的關(guān)系
B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述
C.軟件層次結(jié)構(gòu)
D.軟件開發(fā)過程
9.下面描述中,不屬于軟件危機表現(xiàn)的是( )。
A.軟件過程不規(guī)范
B.軟件開發(fā)生產(chǎn)率低
C.軟件質(zhì)量難以控制
D.軟件成本不斷提高
10.下列描述錯誤的是( )。
A.繼承分為多重繼承和單繼承
B.對象之問的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
11.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是( )。
A.DB包含DBS和DBMS
B.DBMS包含DB和DBS
C.DBS包含DB和DBMS
D.沒有任何關(guān)系
12.下列合法的聲明語句是( )。
A.int abc=50;
B.double int=3+5e2.5;
C.long do=1L;
D.float 3 asd=3e一3;
13.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是( )。
A.x&&y
B.x<=y
C.x||y+z&&y—Z
D.!((x 14.若ch為char型變量,k為int型變量(已知字符a的
ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為( )。
cb=’b’;
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
15.有下列程序:
fun(int X,int y){return(x+y);}
main()
{int a=1,b=2,C=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的輸出結(jié)果是( )。
A.6
B.7
C.8
D.9
16.假定X和Y為double型,則表達式x=2,y=x+3/2的值是( )。
A.3.500000
B.3
C.2.000000
D.3.000000
17.有如下程序:
main()
{ int x=1,a=0,b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++.b++;
}
printf("a=%d,b=%d\n",a,b);
}
該程序的輸出結(jié)果是( )。
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
18.下列程序的輸出結(jié)果是( )。
main()
{int i=1,j=2,k=3;
if(i++==1&&(++j==3==||k++==
3))
printf("%d%d%d\n",i,j,k);
}
A.1 2 3
B.2 3 4
C.2 2 3
D.2 3 3
19.下列程序的輸出結(jié)果是( )。
#include
main()
{int a=0,i;
for(i=1;i<5;i++)
{switch(i)
{ case 0:
case 3:a+=1;
case 1;
case 2:a+=2;
default:a+=3;
}
}
printf("%d",i);
}
A.19
B.1
C.6
D.8
20.有以下程序:
main()
{ int x,i;
for(i=l;i<=50;i++)
{ x=i:
if(x%2=0)
if(x%3=0)
if(X%7=0)
printf(”%d,i)”;
}
}
輸出結(jié)果是( )。
A.28
B.27
C.42
D.4l
21.以下程序的輸出結(jié)果是( )。
main()
{ int a[3][3]=“l,2),{3,4),{5,6)},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf(”%d\n”,s);
}
A.18
B.19
C.20
D.21
22.有下列程序:
main()
{int k=5:
while(--k)printf("%d",k=1);
printf("\n");
}
執(zhí)行后的輸出結(jié)果是( )。
A.1
B.2
C.4
D.死循環(huán)
23.若有定義:“int a[2][3];”,則對a數(shù)組的第i行第j 列元素的正確引用為( )。
A.*(*(a+i)+j)
B.(a+i)[j]
C.*(a+i+j)
D.*(a+i)+j
24.下列能正確進行字符串賦值的是( )。
A.char s[5]={”ABCI)E”);
B.char s[5]={’A’,’B’,’C’,’D’,’E’};
C.char*s;s="ABCDE";
D.char*s;printf("%S",s);
25.現(xiàn)有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指定一個鏈表中連續(xù)的3個結(jié)點。
struct node
{bar data;
struct node*next;}*p,*q,*r;
現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的結(jié)構(gòu),下列不能完成此操作的語句是( )。
A.q->next=r->next;P >next=r;r- >next =q;
B.q->next=r;q->next=r->next;r->next=q;
C.q->next=r->next;r->next=q;P->next=r:
D.q->next=q;P->next=r;q->next=r-> next;
26.有下列程序:
main()
{int i,j,x=0;
for(i=0,i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++:
}
x++:
}
printf("x=%d\n",x);
}
程序執(zhí)行后的輸出結(jié)果是( )。
A.x=4
B.x=8
C.x=6
D.x=12
27.有下列程序:
int funl(double a){return a*=a;)
int fun2(double x,double y)
{double a=0,b=0;
a=funl(x);b=funl(y);return(int)(a+h);
}
main()
{double w;w=fun2(1.1,2.0),……)
程序執(zhí)行后變量w中的值是( )。
A.5.21 B.5
C.5.0 D.0.0
28.有下列程序:
main()
{int i,s=0,t[]={1,2,3,4,5,6,7,8,9);
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序執(zhí)行后的輸出結(jié)果是( )。
A.45
B.20
C.25
D.36
29.有下列程序:
int fun(int n)
{if(n==1)}return 1;
else
return(n+fun(n-1));
}
main()
{int x;
scanf("%d",&x);x=fun(x);printf("%d\n",x);
)
執(zhí)行程序時,給變量x輸入10,程序的輸出結(jié)果是( )。
A.55
B.54
C.65
D.45
30.有下列程序:
int fun(int x[],int n)
{static int sum=0,i:
for(i 0;i return sum;
}
main()
{int a[]={1,2,3,4,5),b[]一{6,7,8,9),s=0:
s=fun(a,5)+fun(b,4);printf("%d\n",s):
}
程序執(zhí)行后的輸出結(jié)果是( )。
A.45
B.50
C.60
D.55
31.有下列程序:
main()
{char*p[]={"3697","2584"};
int i,j;long num=0;
for(i=0;i<2:i++)
{j=0;
while(p[i][j]!=’\0’)
{if((p[i][j]-’\0 ’)%2)num=1O*num+p
[j][j]-’0’;
j+=2;
}
}
printf("%d\n",num);
}
程序執(zhí)行后的輸m結(jié)果是( )。
A.35
B.37
C.39
D.3975
32.以下程序的輸出結(jié)果是( )。
main()
{char st[20]="hello\0\t\\\";
printf("%d%d\n",strlen(st).sizeof(st));
}
A.9 9
B.5 20
C.13 20
D.20 20
33.若有以下的定義:‘int t[3][2];”,能正確表示t數(shù)組元素地址的表達式是( )。
A.&t[3][2]
B.t[3]
C.t[l]
D.t[2][2]
34.函數(shù)fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始點是( )。
A.文件開始
B.文件末尾
C.文件當前位置
D.以上都不對
35.下述程序的輸出結(jié)果是( )。
#include
main()
{ int i;
for(i=l;i<=10;i++)
{if(i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i);
}
A.49
B.36
C.25
D.64
36.若有定義“int b[8],*p=b;”,則p+6表示( )。
A.數(shù)組元素b[6]的值
B.數(shù)組元素b[6]的地址
C.數(shù)組元素b[7]的地址
D.數(shù)組元素b[o]的值加上6
37.設(shè)變量已正確定義,則以下能正確計算f=n!的程序是( )。
A.f=0:
for(i=1;i<=n;i++)f*=i:
B.F=1:
for(i=l;i<2n;i++)f*=i:
C.f=l:
for(i=n;i>1;i++)f*=i:
D.f=1;
for(i=n;i>=2;i--)f*=i:
38.下述程序執(zhí)行的輸出結(jié)果是( )。
#include
main()
{ char a[2][4];
strcpy(a,"are");strcpy(a[1],"you");
a[0][3]=’&’;
printf("%s\n",a):
}
A.are&you
B.you
C.are
D.&
39.設(shè)x=011050,則x=x&01252的值是( )。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
40.在“文件包含”預(yù)處理語句的使用形式中,當#include后面的文件名用(雙引號)括起時,尋找被包含文件的方式是( )。
A.直接按系統(tǒng)設(shè)定的標準方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標準方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當前目錄
【答案與解析】
1.D!窘馕觥克惴ǖ目臻g復(fù)雜度,是指執(zhí)行這個算法所需的存儲空間。算法所占用的存儲空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占用的存儲空間、算法執(zhí)行過程中所需要的額外空間。
2.D。【解析】數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),用的存儲結(jié)構(gòu)有順序和鏈式結(jié)構(gòu)。用不同的存儲結(jié)構(gòu),其處理的效率是不同的。
3.D!窘馕觥克^的交換排序方法是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序通過相鄰元素的交換,逐步將線性表變成有序是一種最簡單的交換排序方法。
4.C!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計的原則和方法之一是限制使用GOT0語句,但不是絕對不允許使用GOT0語句。其他三項為結(jié)構(gòu)化程序設(shè)計的原則。
5.D。【解析】文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散、相互獨立的。相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點:數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的依賴性強。
6.C。【解析】面對象的設(shè)計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調(diào)模擬現(xiàn)實世界中的概念而不強調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。
7.D!窘馕觥克^的后序遍歷是指,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點,并且在遍歷左、右樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根點。因此,后序遍歷二叉樹的過程也是一個遞歸過程。
8.B。【解析】軟件的過程設(shè)計是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
9.A!窘馕觥竣賹洠i_發(fā)的進度和費用估計不準確:②用戶對已完成的軟件系統(tǒng)不滿意的現(xiàn)象時常發(fā)生;③軟件產(chǎn)品的質(zhì)量往往靠不住;④軟件常常是不可維護的;⑤軟件通常沒有適當?shù)奈臋n;⑥軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升;⑦軟件開發(fā)生產(chǎn)率提高的速度遠遠跟不上計算機應(yīng)用迅速普能及深入的趨勢。
10.C!窘馕觥繉ο蟮姆庋b性是指從外面看只能看到對象的外部特性,而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。
11.C!窘馕觥繑(shù)據(jù)庫系統(tǒng)由如下5個部分組成:數(shù)據(jù)庫(DB)、數(shù)據(jù)庫管理系統(tǒng)fDBMS)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。其中 DB(DataBase)即數(shù)據(jù)庫,是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用完程序提供訪問DB的方法。由以上可知,選C為正確答案。
12.A!窘馕觥繕俗R符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。B選項int不是表達變量類型的標識符,它不能再用做變量名和函數(shù)名。C 選項do是C語言的一個關(guān)鍵字。D選項標識符只能以字母或下劃線開始。
13.D。【解析】本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||” 的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x 14.C。【解析】第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個printf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%0”分別表示以十六進制和八進制無符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或0);②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數(shù),也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。
15.C!窘馕觥亢瘮(shù)fun(int x,int y)的功能是返回x+y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此,逗號表達式“a++,b++,aq b”的值等于5,表達式c++的值為3,調(diào)用于函數(shù)的表達式為“fun(5,3);”,其返回值等于8。
16.D。【解析】在x=2,y=x+3/2中,3/2=1。2+1= 3,因此表達式的值為3,因為x,y為double型變量,故選擇D選項。
17.A!窘馕觥慨攛為1時,執(zhí)行case 1,a自加等于1,因為case 1后沒有break,接著執(zhí)行case 2,此時a的值為2,b自加為1,故選擇A選項。
18.D!窘馕觥勘绢}考夢自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“++”出現(xiàn)在變量之前,表示先使用變量的值加l,再使用變量的值進行運算;出現(xiàn)在變量之后,表示先使用變量的值進行運算,再使用變量的值加l。當邏輯與運算符“&&’’兩邊的運算對象都為真時,邏輯表達式的值才為真;當邏輯或運算符“||”只要一個值為1,值就為1。根據(jù)運算符的優(yōu)先級,題中應(yīng)先計算內(nèi)層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達式++j=3成立,即表達式的值為1;1與任何數(shù)都為進行或(||)運算,結(jié)果都為1,因此k=3的表達式i++是先運算后自加,因此運算時i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
19.A!窘馕觥勘绢}考查switch語句。當i一1時,執(zhí)行case 1,因為沒有遇到break語句,所以依次往下運行,“a=a+ 2=2,a=a+3=5”;當i=2時,執(zhí)行case 2,因為沒有遇到break語句,所以依次往下執(zhí)行,“a=a+2=7,a=a+3= 10”;當i=3時,執(zhí)行case 3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a—a+2—13,a—a+3一l6:當i=4時,執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
20.C。【解析】只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇C選項。
21.A!窘馕觥垦h(huán)的作用是求行下標從1到2列下標從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a [2][1]+a[2][2]=3+4+5+6+0=18。
22.A!窘馕觥吭诔绦蛘Z句中,k的初始值為5,進行第l次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出k,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k 自減1變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結(jié)果為1。
23.A。【解析】通過地址來引用數(shù)組元素的方法有下列5種:
(1)a[i][j];(2)*(a[i]+j);(3)*(*(a+j)+i);(4)* (a[i][j]);(5)(&aE0][0]q-3*i+j)。故A正確。
24.C。【解析】選項A、B的空間不夠;字符串存儲要有結(jié)束符’\0’,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
25.D!窘馕觥坑深}目ee線性鏈表的定義可知,要將q 和r所指的結(jié)點交換前后位置,只要使q指向r的后一個結(jié)點,p指向r結(jié)點,r指向q結(jié)點即可。而在選項D由,r-> next=q,這時r指向的節(jié)點為q;p->next r,這時p指向的節(jié)點為r;q->next=r->next,因為r節(jié)點已經(jīng)指向q,所以執(zhí)行這個語句后q又指向q,所以選項D不正確。
26.B。【解析】在第1次外層for循環(huán)中,首先x++得到x=1。進入到內(nèi)層for循環(huán),只有循環(huán)j的值為奇數(shù)時,變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加兩次,當退出內(nèi)層for循環(huán)時,x=3,然后執(zhí)行x++,得到x=4。在進入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進入到內(nèi)層for循環(huán),只有循環(huán)變量j的值為奇數(shù)時,變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量X的值自加1兩次,當退出內(nèi)層for循環(huán)時,x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。
27.C!窘馕觥孔雍瘮(shù)fun1(double a)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(double x,double y)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量w的定義為double型,函數(shù)fun(2) 的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.O。
28.C!窘馕觥吭趂or循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因為C語言規(guī)定數(shù)組名做表達式相當于數(shù)組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數(shù)組的第i+1個元素。所以程序運行的結(jié)果是1+3+5+7+9=25,即變量S的值等于25。
29.A!窘馕觥勘绢}在函數(shù)int fun(int n)的定義中又出現(xiàn)了對函數(shù)fun的調(diào)用,所以函數(shù)fun是遞歸函數(shù)。因而在主函數(shù)中調(diào)用x=fun(x)時,當輸入10賦給變量x時,遞歸調(diào)用的過程為
fun(10)=10…fun(9)=104-94-fun(8)=104-9+84- fun(7)
=10+9++8++7++fun(6)=10+9++8+7+6+fun (6)
=10+9++8+7+6+5+fun(4)
=10+9++8+7+6+5+4+fun(3)
=10+9++8+7+6+5+4+3+fun(2)
=10+9++8+7+6+5+4+3+2+fun(1)
=10+9++8+7+6+5+4+3+2=55
30.C!窘馕觥吭诤瘮(shù)int fun(int xE],int n)的定義中,變量sum為一個靜態(tài)局部變量。由于在整個程序運行期間,靜態(tài)局部變量在內(nèi)存中的靜態(tài)存儲中占據(jù)著永久的存儲單元。函數(shù)int fun(int x[],int n)的功能是求出數(shù)組X[]各個元素的和,所以在j三函數(shù)中,調(diào)用函數(shù)fun(a,5)后,變量sum =1+2+3+4+5=15,當再次調(diào)用fun(b,4)后,變量sum= 15+6+7+8+9=45,所以S=l5+45=60。
31.D。【解析】執(zhí)行第一次for循環(huán)時,用表達式p[i] [j]!=’\0’來判斷字符串數(shù)組指針P是否到達字符串的結(jié)尾,如果沒有到達,繼續(xù)執(zhí)行while中的語句。if語句表示(p[i][j]-’\0’)除2的余數(shù)不為0時,即字符串所有奇數(shù),執(zhí)行后面的語句。所以退出第1次for的循環(huán)體時,輸出為397,執(zhí)行第2次循環(huán)體。對字符串“2584”進行處理,輸出結(jié)果為5,因而最后輸出結(jié)果為3975。
32.B!窘馕觥繌念}目中可知,’\0 ’、’\t’、’\\’分別為一個字符,而sizeof是裝字節(jié)個數(shù)的函數(shù),其中包括’\O’占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以’\0’結(jié)束,因此
strlen的值為5,sizeof的值為20。
33.C。【解析】數(shù)組的下標是從0開始的,A中越界,行下標和列下標都不能越界;B中,雖然是個地址,但是也同樣越界了;選項C中表示的是第一個的首地址;選項D表示的為其元素的值,并不是地址。
34.B。【解析】SEEK_SET代表文件的開始,SEEK_ END代表文件末尾,SEEK_CUR代表文件當前位置。
35.C!窘馕觥慨攊f執(zhí)行到第一個滿足(i*i>一20) &&(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下面的printf語句。
36.B。【解析】指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中p+6指的是將指針向后移動了6個存儲單元,即指向b[6],存放的是b[6]的地址。
37.D。【解析】由i"1 1的數(shù)字定義可知n!=n*(n-1) *(n-2)*…*1。在選項A中,由于f的初值為0,在for 循環(huán)語句中,f依次乘以1,2,3,…,n,最后計算得到f=n! 一0,所以選項A不正確。在選項B中,f的初值為1,在for 循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計算得到f =(n-1)!,所以選項B不正確。在選項C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項c不正確。在選項D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。
38.A!窘馕觥縮trcpy實現(xiàn)的功能是復(fù)制,該操作把are 復(fù)制到a中,a[0][3]=’&’,且strcpy(a[1],"you")把you 復(fù)制到a[1]中,故輸出a為“are&you”。
39.A!窘馕觥勘绢}主要考查按位與運算,x=011050 的二進制形式為00010010000101000,01252的二進制形式為0000001010101010,兩者相與得000000100010lO00。
40.B。【解析】#include"文件名",預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標準目錄搜索。
【計算機二級C語言選擇題及答案】相關(guān)文章:
計算機二級《C語言》選擇題題庫與答案07-27
計算機二級《C語言》選擇題題庫及答案11-16
計算機二級考試C語言試題與答案(選擇題)07-06
計算機二級C語言選擇題及答案201605-04
2017計算機二級C語言選擇題及答案10-05
計算機二級C語言選擇題及答案解析201710-13