2021-2022年廣東省江門市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第1頁
2021-2022年廣東省江門市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第2頁
2021-2022年廣東省江門市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第3頁
2021-2022年廣東省江門市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第4頁
2021-2022年廣東省江門市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

2021-2022年廣東省江門市全國計算機等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下是if語句的基本形式:

if(表達式.語句

其中“表達式”()。

A.必須是邏輯表達式B.必須是關(guān)系表達式C.必須是邏輯表達式或關(guān)系表達式D.可以是任意合法的表達式

2.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點p的直接后繼,則應(yīng)執(zhí)行下列()操作。

A.p->next=p->next->next;

B.p=p->nextp->next=p->next->next;

C.p->next=p->next;

D.p=p->next->next;

3.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.abbcdefghijkI23456789964

B.123456789964abbcdefghijk

C.123445667899abbcdefghijk

D.abbcdefghijk123445667899

4.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序運行后的輸出結(jié)果是()。

A.1B.2C.4D.死循環(huán)

5.以下描述中,不是線性表順序存儲結(jié)構(gòu)特征的是()。

A.可隨機訪問B.需要連續(xù)的存儲空間C.不便于插入和刪除D.邏輯相鄰的數(shù)據(jù)物理位置上不相鄰

6.有以下程序#include<stdio.h>main(){charcl,c2;c1=A+8-4c2=A+8-5;printf("%C,%d\n",cl,c2);}已知字母A的ASCIl碼為65,程序運行后的輸出結(jié)果是()。A.E,69B.D,69C.E,DD.輸出無定值

7.在排序方法中,元素比較次數(shù)與元素的初始排列無關(guān)的是()

A.Shell排序B.歸并排序C.直接插入排序D.選擇排序

8.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運行時輸入以下命令行tt12345678程序運行后的輸出結(jié)果是A.12B.12345C.12345678D.136

9.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

for(i=0;i<4;i++)

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式輸出數(shù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4一i

10.下列選項不符合良好程序設(shè)計風(fēng)格的是()。

A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計原則是高耦合、高內(nèi)聚

11.程序設(shè)計的任務(wù)包括()。

A.編寫程序代碼并上機調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項均正確

12.某二叉樹共有7個結(jié)點,其中葉子結(jié)點只有l(wèi)個,則該二叉樹的深度為(假設(shè)根結(jié)點在第1層)()。

A.3B.4C.6D.7

13.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。

A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:

14.下列選項中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST”要求的是()。A.if(strcmp(s2,s1)==0)ST;

B.if(s1===s2)ST;

C.if(strcpy(s1,s2)==1)ST;

D.if(s1,s2==0)ST;

15.有以下程序

#include<stdio.h>

main()

{inty=10

while(y--);

printf(“y=%d\n”,y);

}

程序執(zhí)行后的輸出結(jié)果是()。A.y=0B.y=-1C.y=1D.while構(gòu)成無限循環(huán)

16.有以下程序:

程序運行后的輸出結(jié)果是()。A.AaB.AbC.abD.Ba

17.

18.健壯的算法不會因非法的輸入數(shù)據(jù)而出現(xiàn)莫名其妙的狀態(tài)()

A.對B.錯

19.一個C語言程序總是從()開始執(zhí)行。

A.書寫順序的第一函數(shù)B.書寫順序的第一條執(zhí)行語句C.主函數(shù)main()D.不確定

20.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。

A.1B.0C.2D.不知道a的值,不能確定

二、2.填空題(20題)21.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。

22.已有定義:charc=‘’;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為()。

23.以下程序運行后的輸出結(jié)果是______。

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

pfintf("%d\n",x);

}

24.棧中允許進行插入和刪除的一端叫做______。

25.用以下程序把從鍵盤輸入的字符存放到一個文件中,用字符#作為結(jié)束符,請按題意要求填空完善程序。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenameoffile\n");

gets(fname);

if(fp=fopen(【】))==NULL)

{printf("can'topen\n");

【】;

}

while((ch=getchar())!='#')

fputc(【】);

fclose(fp);

}

26.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。

27.以下程序運行后的輸出結(jié)果是【】。

#include<stdio.h>

main()

{intp[7]={11,13,14,15,16,17,18};

inti=0,j=0;

while(i<7&&p[i]%2==1)j+=p[i++];

prinff("%d\n",j);

28.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)畛渫暾?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;

}

29.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù),且要求m>n。

例如:m=12,n=8時,運行結(jié)果應(yīng)該是495.000000。請在題目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補充完整。

#include<stdio.h>

floatfun(intm,intn)

{inti;

doublep=1.0;

for(i=1;i<=m;i++)【】;

for(i=1;i<=n;i++)【】;

for(i=1;i<=m-n;i++)p=p/i;

returnp;

}

main()

{printf("p=%f\n",fun(12,8));

}

30.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

31.假定變量x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關(guān)系表達式【】。

32.下列程序的輸出結(jié)果是16.00,請?zhí)羁眨?/p>

main()

{

inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

33.下面程序的功能是:輸出100以內(nèi)能被3整除且個位數(shù)為6的所有整數(shù),請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inti,j;

for(i=0【】;i++)

{j=i*10+6;

if(【】)continue;

printf("%d",j);

}

}

34.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。

charch='B';

printf("%c%d\n",ch,ch);

35.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。

36.以下程序的輸出結(jié)果是【】。

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

37.設(shè)有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

for(i=0;i<2;i++)

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

printf("%s\n",t);

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEP<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。

38.若已知a=10,b=20,則表達式!a<b的值為【】。

39.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。

40.以下程序的輸出結(jié)果是【】。

main()

{charc='z';

printf("%c",c-25);}

三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);printf("%d",a);}

A.0B.29C.31D.無定值

42.在TurboC中繪圖時,首先要對圖形進行初始化,使用的函數(shù)是______。

A.windows()B.window()C.initgraph()D.init()

43.以下有4組用戶標(biāo)識符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

44.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5

45.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}

A.sum=18B.sum=10C.sum=9D.sum=25

46.以下敘述中正確的是()。

A.調(diào)用pfintf函數(shù)時,必須要有輸出項

B.使用putchar函數(shù)時,必須在之前包含頭文件stdio.h

C.在C語言中,整數(shù)可以以十二進制、八進制或十六進制的形式輸出

D.調(diào)用getchar函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼

47.對下述程序的判斷中,正確的是

#include<stdio.h>

voidmain()

{char*p,s[128];

p=s;

while(strcmp(s,"End"))

{printf("Inputastring:");gets(s);

while(*p)

putchar(*p++);}}

A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止

B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止

C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因為代碼有錯誤,程序不能正常工作

D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串

48.下面描述中,不符合結(jié)構(gòu)化程序計風(fēng)格的是_______。

A.使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯

B.自頂向下

C.注重提高程序的執(zhí)行效率

D.限制使用goto語句

49.設(shè)有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對庫函數(shù)的正確調(diào)用。

A.strcpy(str1,"HELLO1");

B.strcpy(str2,"HELLO2");

C.strcpy(str3,"HELLO3");

D.strcpy(str4,"HELLO4");

50.對一個關(guān)系投影操作以后,新關(guān)系的元組個數(shù)______原來關(guān)系的元組個數(shù)。

A.小于B.小于或等于C.等于D.大于

51.在微機中,微處理器的主要功能是()

A.算術(shù)邏輯運算B.算術(shù)運算C.存儲程序和數(shù)據(jù)D.算術(shù)邏輯運算及全機的控制

52.已知二叉樹BT的后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______.

A.cedbaB.acbedC.decabD.deabc

53.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B.算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量

C.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的

D.算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)

54.若有下列語句:chara[]="xyz";charb[]=}'x','y','z'};則下列敘述正確的是______。

A.數(shù)組a和數(shù)組b不等價

B.數(shù)組a和數(shù)組b的長度相同

C.數(shù)組a占用空間大小等于數(shù)組b占用空間大小

D.數(shù)組a占用空間大小大于數(shù)組b占用空間大小

55.有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-′a′+′A′;

s++;}}

main()

{charstr1[100]="abcddfefdbd",c=′d′;

ss(str1,c);printf("%s\n",str1);}

程序運行后的輸出結(jié)果是

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

56.下列描述中正確的是()。

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題

57.有下面程序段

#include"stdio.h"

#include"string.h"

main()

{chara[3][20]={{"china"},{"isa"},{"bigcountry!"}};

chark[100]={0},*p=k;

inti;

for(i=0;i<3;i++)

{p=strcat(p,a[i]);}

i=strlen(p);

printf("%d\n",i);}

則程序段的輸出結(jié)果是

A.18B.19C.20D.21

58.下面不屬于軟件設(shè)計原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

59.有以下程序#include<stdio.h>main(){intk=5,n=0;while(k>0){switch(k){defhult:break;case1:n+=k:case2:case3:n+=k;}k--;}printf("%d\n",n);}程序運行后的輸出結(jié)果是()

A.0B.4C.6D.7

60.有以下程序:voidswap(char*x,char*y){cbart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。

A.123,abcB.abc,123C.1bc,a23D.321,cba

四、選擇題(20題)61.下列函數(shù)的功能是()。

A.將a所指字符串賦給b所指空間

B.使指針b指向a所指字符串

C.將a所指字符串和b所指字符串進行比較

D.檢查a和b所指字符串中是否有‘、O’

62.

63.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之問的通信靠傳遞消息來實現(xiàn)

C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

64.下列條件語句中,輸出結(jié)果與其他語句不同的是()。

A.if(a)printf("%dn",x);elseprint[("%d\n",y)

B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)

C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)

D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)

65.

66.有以下程序:

程序運行后的輸出結(jié)果是()。

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

67.

68.以下關(guān)于typedef的敘述錯誤的是()。

A.用typedef可以增加新類型

B.typedef只是將已存在的類型用一個新的名字來代替

C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名

D.用typedef為類型說明一個新名,通常可以增加程序的可讀性

69.以下不合法的數(shù)值常量是()。

A.8.0E0.5B.lelC.0llD.0xabcd

70.以下選項中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

71.設(shè)有以下函數(shù):

72.

73.以下選項錯誤的是

74.以下程序的輸出結(jié)果是()。

main

{char*s="12134211";

intv[4]=(0,0,0,0),k,i;

for(k=0;s[k];k++)

{switch(s[k])

{case'1':i=0;

case'2':i=1;

case'3':i=2;

case'4':i=3;}

}

v[i]++:

}

for(k=0;k<4;k++)printf("%d",v[k]);A.A.4211B.0008C.4678D.8888

75.有以下程序:

程序運行后的輸出結(jié)果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*l=22*2=43*1=33*2=63*3=9

76.以下敘述中錯誤的是()。

A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值

B.函數(shù)可以返回地址值

C.可以給指針變量賦一個整數(shù)作為地址值

D.當(dāng)在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL

77.有以下程序:

則以下函數(shù)調(diào)用語句錯誤的是()。

A.

B.

C.

D.

78.下列程序的運行結(jié)果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}

A.2,3,2B.2,3,1C.1,3,3D.3,1,2

79.

80.有以下程序:

程序運行后的輸出結(jié)果是()。

A.12B.14C.1234D.123456

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:對M名學(xué)生的學(xué)習(xí)成績,按從低到高的順序找出m(m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。

請改正程序中的錯誤,使它能得出正確的結(jié)果。

注意:不要改動main函數(shù).不得增行或刪行,也不得更改程序的結(jié)構(gòu)。

試題程序:

六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。

例如,若傳給m的值為70,則程序輸出:

7111421222833354244495556636670

注意:部分源程序給出如下。

請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio.h>

#defineN100

voidproc(intm,int*a,int*n)

{}

voidmain

{

intarr[N],n,k;

system("CLS");

proc(70,arr,&n);

for(k=0;k<n;k++)

if((k+1)%20==0)//每行輸出20個數(shù)

{printf("%4d",arr[k]);

printf("\n");

}

else

printf("%4d",arr[k]);

printf("\n");

}

參考答案

1.D解析:本題主要考查關(guān)于if語句的說明,if后面圓括號中的表達式,可是任意合法的C語言表達式(如:邏輯表達式、關(guān)系表達式、算術(shù)表達式、賦值表達式等),也可以是任意類型的數(shù)據(jù)(如:整型、實型、字符型、指針型等。)

2.A

3.B程序定義數(shù)組a和b,其中a使用小寫字母和數(shù)字構(gòu)成的字符串完成初始化。第1個for循環(huán)將數(shù)組a中所有的非小寫字母字符(數(shù)字字符)自左向右存放到b數(shù)組中;第2個for循環(huán)將數(shù)組a中所有的非數(shù)字字符(小寫字母)自左向右存放到b的后續(xù)單元中,在所有字符后添加空字符,輸出b,此時b的值為:123456789964abbcdefghijk。本題答案為B選項。

4.A“--k”是先自減再使用,所以第1次判斷條件即while(4),條件為真輸出k的值,k=4-3,結(jié)果為1;第2次判斷條件即while(0),條件為假,結(jié)束循環(huán),輸出回車換行符。故本題答案為A選項。

5.DD)【解析】線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來保存元素之間的關(guān)系。

6.A本值輸出兩個值,%c為輸出一個字母,0/4d輸出一個數(shù)字?!癆”的ASCIl碼為65,再加4之后為69,也就是字母E,所以本題A正確。

7.D

8.D解析:運行時輸入該命令后,參數(shù)argc的值為4,字符串?dāng)?shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個參數(shù)的第一個字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個新的三位數(shù)。

9.B

\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。

\n

10.D在程序設(shè)計中,對于軟件設(shè)計中的模塊設(shè)計要保證高內(nèi)聚和低耦合,源程序要有文檔說明,同時對程序中數(shù)據(jù)的說明要規(guī)范化。而goto語句破壞程序的結(jié)構(gòu),要盡量避免使用。所以選項D不正確。

11.D程序設(shè)計是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計的任務(wù)包括選項A)、B)、c)等方面。

12.D根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點總比度為2的結(jié)點多一個,因此本題中度為2的結(jié)點為l一1=0個,據(jù)此可以知道本題目中的二叉樹的每一個結(jié)點都有一個分支,所以共7個結(jié)點共7層,即深度為7,選擇D)。

13.DD選項中將字符串常量…aa賦給字符變量a是錯誤的。

14.A解析:strcmp(char*,char*),函數(shù)strcmp用于比較兩個字符串的長度,長者為大,若字符個數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCⅡ表值計算,直到最后一個字符,若還相同,則兩個字符串相等,返回值0。選項A中if(strcmp(s2,s1)=0)ST,若s2等于s1,則返回值0,0等于0,所以邏輯表達式strcmp(s2,s1)=0為真執(zhí)行ST。

15.B解析:y-的作用是先取其值作為表達式的值,然后y的值減1存入y。當(dāng)y>0時循環(huán)繼續(xù),直到y(tǒng)=0時循環(huán)結(jié)束,然后y值減1存入y中,所以選B。

16.B函數(shù)fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對該地址的值執(zhí)行自增1;main函數(shù)中p1指向ch1,p2指向ch2。通過fun函數(shù)的調(diào)用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項。

17.C

18.A

19.C

20.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。

21.數(shù)據(jù)存儲數(shù)據(jù)存儲

22.00解析:空格字符的ASCⅡ碼值為32,所以!c—o,那么0與任何值相與的結(jié)果都為0,可得b的值為0。

23.因為在條件表達式(a<b)?a:b中,比較表達式a<b為真,所以x的值等于a的值等于1,后面兩個條件表達式中的比較表達式都為真,所以最終x的值等于1。\r\n\r\n

24.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

25.fname"#"exit(0)chfp

26.log2n

27.2424解析:本題關(guān)鍵是while循環(huán)。

當(dāng)i=0時,滿足條件:i<7&&11%2==1,執(zhí)行j=0+11=11,i++,i為1;

當(dāng)i=1時,滿足條件:i<7&&13%2=1,執(zhí)行j=11+13=24,i++,i為2;

當(dāng)i=2時,不滿足條件:i<7&&14%2==1,循環(huán)結(jié)束。輸出j的值24。

28.int*int*解析:從函數(shù)體中可看出,2是一個指向整型的指針,該函數(shù)的形參z是傳地址調(diào)用。

29.p=p*ip=p/ip=p*ip=p/i解析:本題中,欲求p的值,需要先求m!,n!,(m-n)!,可分別用循環(huán)語句實現(xiàn)。

30.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

31.x==0

解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。

33.i<=9或i<10或9>=i或10>ij%3!=0或j%3i<=9或i<10或9>=i或10>i\r\nj%3!=0或j%3

34.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。

35.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。

\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;\'\\xAB\'是以兩位+六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。

5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。

36.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。

37.函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0;若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能:把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指存儲空間中。

本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t

38.11解析:計算表達式!a<b,先計算!a,因a的值為10,!a的值為0,而關(guān)系表達式0<20為真,所以表達式!a<b的值為1。

39.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。

40.aa解析:“z”的ASCII碼值為122,經(jīng)過c-25運算后得97,以字符形式輸出是a。

41.C解析:函數(shù)fun的形參是簡單變量,main函數(shù)中調(diào)用fun時只是把實參的值傳遞給形參,形參的改變不影響實參,所以調(diào)用完函數(shù)fun后a的值不發(fā)生變化,即a=31。

42.C

43.C解析:選項A中for和case為C語言中的保留字,不能作為用戶標(biāo)志符,故A錯誤。選項B中的4d其開頭的第一個為數(shù)字,而在C語言中規(guī)定,第一個字符必須為字母或者下劃線,故B錯誤;選項D中void為C語言中的保留字,不能作為用戶標(biāo)志符,故D錯誤。所以,4個選項中選項C符合題意。

44.C解析:這是一個逗號表達式,它的值應(yīng)為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應(yīng)為2.0。

45.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。

46.B解析:在使用標(biāo)準(zhǔn)輸入輸出庫函數(shù)前,必須要用預(yù)編譯命令“#include”將頭文件'stdio.h'包括到用戶源文件中。

47.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標(biāo)準(zhǔn)輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負(fù)整數(shù)。putchar(c)函數(shù)將字符c輸出到標(biāo)準(zhǔn)輸出設(shè)備上。

48.C解析:結(jié)構(gòu)化程序設(shè)計方法的四條原則是:1.自頂向下;2.逐步求精;3.模塊化;4.限制使用goto語句。

49.C解析:C語言中:strcpy(st1,st2);,其兩個參數(shù)均為字符指針或字符數(shù)組,選項C中的目的串指針str3沒有指向具體有效的存儲單元,故是錯誤的調(diào)用。

50.B解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來的元組數(shù)。

51.D

52.A解析:由二叉樹后序遍歷序列和中序遍歷序列可以唯一確定一棵二叉樹。二叉樹BT的后序遍歷序列為dabec,故BT的根結(jié)點為c(后序遍歷序列的最后一個結(jié)點為樹的根結(jié)點):而BT的中序遍歷序列是debac,即遍歷序列中最后一個結(jié)點為根結(jié)點,說明BT的右子樹為空。由BT的后序遍歷序列和中序遍歷序列可知BT左子樹的后序遍歷序列和中序遍歷序列分別為dabe和deba,因此BT左子樹的根結(jié)點是e。再由中序遍歷序列可知其左子樹為d,右子樹為ba。因此BT的前序遍歷序列為cedba。

53.B解析:本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲結(jié)構(gòu)。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都影響算法的效率。選項A的說法是錯誤的。算法的時間復(fù)雜度是指算法在計算機內(nèi)執(zhí)行時所需時間的度量;與時間復(fù)雜度類似,空間復(fù)雜度是指算法在計算機內(nèi)執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。

數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲結(jié)構(gòu)在計算機中有兩種,即順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。可見,邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)不是一一對應(yīng)的。因此,選項C的說法是錯誤的。

有時人們?yōu)榱颂岣咚惴ǖ臅r間復(fù)雜度,而以犧牲空間復(fù)雜度為代價。但是,這兩者之間沒有必然的聯(lián)系。因此,選項D的說法是錯誤的。

54.D解析:數(shù)組a的存儲空間占4個字節(jié)(結(jié)束符'\\0'占一字節(jié)),數(shù)組a的存儲空間占3個字節(jié)。

55.B解析:在內(nèi)存中,字符數(shù)據(jù)以ASCII碼存儲,它的存儲形式與整數(shù)的存儲形式類似。C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對字符型數(shù)據(jù)進行算術(shù)運算,此時相當(dāng)于對它們的ASCII碼進行算術(shù)運算,在本題中,s++相當(dāng)于s=s+1,即讓s指向數(shù)組中的下一個元素。

56.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進度無法控制、軟件質(zhì)量難以保證、軟件不可維護或維護程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。

57.B解析:字符串連接函數(shù)streat的調(diào)用形式如下:strcat(s1,s2)。此函數(shù)將s2所指字符串的內(nèi)容連接到s1所指的字符串后面,并自動覆蓋s1串末尾的尾標(biāo),函數(shù)返回s1的地址值。

58.C解析:軟件設(shè)計遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。

59.D解析:因為沒有break語句,當(dāng)k=2的時候,會順序執(zhí)行兩條語句,k=1的時候,會順序執(zhí)行3條語句。

60.C解析:函數(shù)swap()實現(xiàn)的功能為交換字符指針x和y首位的數(shù)值。

61.AWhile循環(huán)條件為:(_h=}a)f-‘、0’,執(zhí)行時先把指針a所指向的字符賦給指針b所在內(nèi)存單元,如果該字符不是結(jié)束標(biāo)識‘\0’,執(zhí)行循環(huán)體a++;b++;,指針a.b分別指向下一個字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在內(nèi)存單元,直到遇到結(jié)束標(biāo)識為止。因此A選項正確。

62.C

63.C對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。

64.D主要考查if判斷語句,A選項if(a),如果a為真,則輸出X,否則輸出Y。B選項if(a==0),如果a恒等于0,則輸出Y,否則輸出X。C選項a(!=o),如果a不等于0,則輸出X,否則輸出y。D選項if(a==0),如果a恒等于0,則輸出X,否則輸出y。由以上結(jié)論可知,輸出結(jié)果不同的為D選項。

65.D

66.A本題重點考察函數(shù)的調(diào)用,首先要了解字母對應(yīng)的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個字母。-其次是函數(shù)形參和實參的問題,運行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因為指針c指向地址的值為b,此時b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項正確。

67.A

68.Atypedef并不是增加了新類型,面是用一個新名字替代已存在的類型,不能為變量說明一個新名,使用typedef可以增強程序的可移植性。所以A選項錯誤:

69.AA選項中E后面的指數(shù)必須為整型數(shù)據(jù),所以A錯誤。c選項中011表示的是八進制常量,0xabcd表示的是十六進制常量。

70.D在選項中,\\019,以0開頭的數(shù)都為八進制數(shù),而八進制的表示數(shù)字是0~7,所以答案選擇D。

71.A賦值給函數(shù)指針,需要函數(shù)的參數(shù)一致,返回值一致,才可以賦值。選項A)正確。

72.B

73.D在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論