2022-2023年四川省樂山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第1頁
2022-2023年四川省樂山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第2頁
2022-2023年四川省樂山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第3頁
2022-2023年四川省樂山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第4頁
2022-2023年四川省樂山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年四川省樂山市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:#include<stdio.h>main(){intt;scanf(“%d”,&t);if(t++<6)printf(“%d\n”,t);elseprintf(“%d\n”,t--);printf(“\n”);}執(zhí)行時(shí)輸入6并按<Enter>鍵,則輸出結(jié)果是()。A.6B.8C.7D.5

2.

3.以下選項(xiàng)中非法的表達(dá)式是()。

A.a+1=a+1

B.a=b==0

C.(Char.(100+100.

D.7<=X<60

4.下列語句組中正確的是()。

A.char*s;s={“BOOK!”};

B.char*s;s=“BOOK!”;

C.chars[10];s=“BOOK!”;

D.chars[];s=“BOOK!”;

5.

6.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch—getchar)!=N)printf("%c",ch);

B.while(oh=getchar!=N)printf("%c",ch);

C.while(ch=getchar==N)printf("%c",ch);

D.while((ch—getchar)==N)printf("%c",ch);

7.某二叉樹結(jié)點(diǎn)的中序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E,該二叉樹對應(yīng)的層次遍歷序列為()

A.E、G、F、A、C、D、B

B.E、A、C、B、D、G、F

C.E、A、G、C、F、B、D

D.E、G、A、C、D、F、B

8.使用二分查找算法在一個(gè)有序序列中查找一個(gè)元素的時(shí)間復(fù)雜度為()

A.O(N)B.O(logN)C.O(N*N)D.O(N*logN)

9.以下是根據(jù)文件大小分配存儲空間的一個(gè)算法偽代碼,請問其空間復(fù)雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))

10.

11.有以下程序:#include<stdio.h>voidfunl(char*p){char*q;q=p;while(*q!='\0')}(*q)++;q++;}mains(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結(jié)果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

12.以下正確的字符常量是()。A.'\089'B.'\012'C.'\0XAB'D.'\0xab'

13.考慮下圖中的程序段,①號語句的輸出結(jié)果是()。A.A.'a'B.'t'C.'c'D.'k'

14.

15.鏈表不具有的特點(diǎn)是()。

A.插入、刪除不需要移動(dòng)元素B.可隨機(jī)訪問任一元素C.不必事先估計(jì)存儲空間D.所需空間與線性長度成正比

16.某二叉樹結(jié)點(diǎn)的中序序列為ABCDEFG,后序序列為BDCAFGE,則其左子樹中結(jié)點(diǎn)數(shù)目為()

A.3B.2C.4D.5

17.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄

B.數(shù)據(jù)行

C.數(shù)據(jù)塊

D.字符(字節(jié))序列

18.設(shè)線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點(diǎn)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;

19.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。

A.b=double(b);B.(int)a=(int)b;C.a=a++=5;D.a=double(b);

20.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。

A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句

二、2.填空題(20題)21.設(shè)有以下程序:

main()

{inti,sum=0;

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

{if((i%2)==0)

continue;

sum+=i;}

printf("%d\n",sum);

}

程序執(zhí)行后的輸出結(jié)果是()。

22.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從fp指向的文件中讀入,n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為______。

23.軟件是程序、數(shù)據(jù)和【】的集合。

24.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。

25.現(xiàn)有如下定義:structaa{inta;floatb;charc;}*p;現(xiàn)需用malloc函數(shù)動(dòng)態(tài)的申請一個(gè)structaa類型大小的空間(由p指向),則定義的語句為:【】。

26.下面程序段的輸出結(jié)果是【】。

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

print("%d\n",sum);

27.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。

28.若有以下程序

main()

{inta=4,b=3,c=5,t=0;

if(a<b)t=a;a=b;b=t;

if(a<c)t=a;a=c;c=t;

pfintf("%d%d%d\n",a,b,c);

}

執(zhí)行后輸出結(jié)果是【】。

29.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請?zhí)羁铡?/p>

main()

{intt=0,s=0,i;

for(i=1;i<=5;i++)

{t=i+______;s=s+t;}

printf("s=%d\n",s);

}

30.若有如下程序:

main()

{intx=4;y=3,Z=2,t;

t=x<y<z;

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

}

則程序運(yùn)行后的輸出結(jié)果是【】。

31.設(shè)Y是int型變量,請寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。

32.以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

for(I=0;I<9;I++)printf("%d",a[I]);

printf("");

}

33.在面向?qū)ο蟮姆椒ㄖ校琠_____描述的是具有相似屬性與操作的一組對象。

34.以上程序運(yùn)行后的輸出結(jié)果是【】。

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

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

}

35.若有下列定義和語句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

則輸出結(jié)果為______。

36.數(shù)據(jù)流的類型有______和事務(wù)型。

37.下面程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;

sub(s,7,SIZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t1)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

38.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。

39.下列程序執(zhí)行輸出的結(jié)果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

printf("%d\n",k);

}

40.將代數(shù)式轉(zhuǎn)換成程序設(shè)計(jì)中的表達(dá)式為【】。

三、1.選擇題(20題)41.有以下程序

main()

{inta[4][4]={{l,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;

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

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

for(k=j+1;k<4;k++)

if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}/*按列排序*/

for(i=0;i<4;i++)printf("%d,",a[i][i]);

}

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

A.1,6,5,7,B.8,7,3,1,C.4,7,5,2,D.1,6,2,1,

42.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。

A.\bB.\tC.\vD.\f

43.算法的空間復(fù)雜度是指

A.算法程序的長度B.算法程序中的指令條數(shù)C.執(zhí)行算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間

44.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);}

A.a+(i++)B.&a[i+1]C.a+iD.&a[++i]

45.以下敘述中正確的是

A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

46.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

47.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為

A.log2nB.n2C.O(n1.5)D.n(n-1)/2

48.以下不正確的定義語句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5.3]={0,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

49.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);pritnf("%c",*p++);}程序運(yùn)行后的輸出結(jié)果是

A.15B.16C.12D.59

50.設(shè)變量已正確定義,則下列能正確計(jì)算f=n!的程序段是()。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

51.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

52.設(shè)a和b均為double型變量,且a=5.5,b=2.5,則表達(dá)式(int)a+b/b的值是A.6.5B.6C.5.5D.6

53.下面不屬于靜態(tài)測試方法的是()

A.代碼檢查B.白盒法C.靜態(tài)結(jié)構(gòu)分析D.代碼質(zhì)量度量

54.下列不屬于軟件調(diào)試技術(shù)的是______。A.強(qiáng)行排錯(cuò)法B.集成測試法C.回溯法D.原因排除法

55.若有定義inta[9],*p=a;則p+5表示

A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5

56.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A.32B.31C.16D.15

57.下列敘述中錯(cuò)誤的是()。

A.C語句必須以分號結(jié)束

B.復(fù)合語句在語法上被看作一條語句

C.空語句出現(xiàn)在任何位置都不會影響程序運(yùn)行

D.賦值表達(dá)式末尾加分號就構(gòu)成賦值語句

58.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。

A.便于用戶、開發(fā)人員相互理解和交流

B.反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認(rèn)測試和驗(yàn)收的依據(jù)

D.便于開發(fā)人員進(jìn)行需求分析

59.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是()。

A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,程序出錯(cuò)D.程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息

60.若有說明:int*p,m=5,n;以下正確的程序段是

A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p)

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

四、選擇題(20題)61.下列敘述中正確的是()。

A.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句

B.eotinue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同

D.從多層循環(huán)嵌套中退出時(shí),只能使用got0語句

62.以下敘述中錯(cuò)誤的是()。

A.C語言的可執(zhí)行程序是由一系列機(jī)器指令構(gòu)成的

B.用C語言編寫的源程序不能直接在計(jì)算機(jī)上運(yùn)行

C.通過編譯得到的二進(jìn)制目標(biāo)程序需要連接才可以運(yùn)行

D.在沒有安裝C語言集成開發(fā)環(huán)境的機(jī)器上不能運(yùn)行C源程序生成的.exe文件

63.(48)軟件調(diào)試的目的是()

A.發(fā)現(xiàn)錯(cuò)誤

B.改正錯(cuò)誤

C.改善軟件的性能

D.挖掘軟件的潛能

64.

65.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)果是()。

#include<stdio.h>

#include<string.h>

voidmain()

{charss[10]="12345",

gets(ss);strcat(ss,"6789");

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

}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

66.有以下程序:

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

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

67.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程

B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程

C.軟件的開發(fā)過程

D.軟件的運(yùn)行維護(hù)過程

68.以下選項(xiàng)中,合法的一組c語言數(shù)值常量是()。

A.12.0Xtl234.5e0

B.028.5e-3-0xf

C.1774el.50abe

D.0x8A10,0003.e5

69.關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的描述錯(cuò)誤的是()。

A.選用的結(jié)構(gòu)只準(zhǔn)許有一個(gè)入口和一個(gè)出口

B.復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來實(shí)現(xiàn)

C.不允許使用GOTO語句

D.語言中若沒有控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來模擬

70.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。

A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表

71.

72.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。

A.CB.BasicC.DDLD.DML

73.

74.

有以下程序

#include<stdio.h>

structtt

(intx;structtt*y;)*P;

structtta[4]={20,a+1,15,a+2,30,a+3,17,a};

main

{inti;

p=a;

for(i=l;i<=2;i++){printf("%d,",p->x);P=p->y;}

}

程序的運(yùn)行結(jié)果是()。

A.20,30,B.30,17,C.15,30,D.20,15,

75.

76.已定義以下函數(shù)

77.

78.

79.若有定義語句:

則strlen(s)的值是()。

A.7B.8C.9D.10

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:從整數(shù)l0-55,查找能被3整除且有一位上的數(shù)值是5的數(shù),把這些:故放在b所指的數(shù)組中,這些數(shù)的個(gè)數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放位數(shù),a2放十位數(shù)。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:計(jì)算并輸出

例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。

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

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

試題程序:

參考答案

1.C后綴自增運(yùn)算“t++”表示先運(yùn)算,再自加。語句“if(t++<6)printf(“%d\\n”,t);elseprintf(“%d\\n”,t--);”中t的初值為6,則“t++<6”,條件為假,t自增至7,執(zhí)行“printf(“%d\\n”,t--);”,此時(shí)t=7,輸出t值為7,之后進(jìn)行自減操作t=6。因此輸出的結(jié)果為7。故本題答案為C選項(xiàng)。

2.D

3.A賦值運(yùn)算符的左邊只能是變量,而不能是常量或表達(dá)式。

4.BA選項(xiàng)去掉花括號后,賦值正確;C選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初值,因?yàn)閿?shù)組名相當(dāng)于常量,不能重新賦值。故本題答案為B選項(xiàng)。

5.B

6.Awhile循環(huán)的執(zhí)行過程如下:①計(jì)算while后面圓括號中表達(dá)式的值。當(dāng)值為非0時(shí),執(zhí)行步驟②;當(dāng)值為0時(shí),執(zhí)行步驟④。②執(zhí)行循環(huán)體一次。③轉(zhuǎn)去執(zhí)行步驟①。④退出循環(huán)。在選項(xiàng)A中,表達(dá)式(ch=get-char)!=N表示輸入的字符不等于N,如果這個(gè)條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個(gè)條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán)。所以選項(xiàng)A為正確答案。

7.C

8.B

9.C

10.A

11.A解析:在main函數(shù)中,p=&a[3]說明指針p指向a數(shù)組的第4個(gè)字符(即字符\'g\');fun1中的q=p意味著指針q也指向了a數(shù)組的第4個(gè)字符。執(zhí)行while語句,表達(dá)式(*q)++使\'g\'+1,使\'g\'變成了\'h\';表達(dá)式q++使q指向a[4]的起始地址。繼續(xù)執(zhí)行while語句,直到遇到\'\\0\'結(jié)束循環(huán),返回形參。最終得到的結(jié)果是從字符串'Program\'的第4個(gè)字符開始,每個(gè)字符加1。

12.B題目中的選項(xiàng)都以轉(zhuǎn)義字符“\\”開頭,“\\ddd”表示3位八進(jìn)制數(shù)代表的一個(gè)ASCII字符,“\\xhh”表示2位十六進(jìn)制數(shù)代表的一個(gè)ASCII字符。選項(xiàng)A中“089”是不合法的八進(jìn)制數(shù),錯(cuò)誤;選項(xiàng)C、D中“\\0X”或“\\0x”不合法,錯(cuò)誤;選項(xiàng)B表示八進(jìn)制數(shù)012代表的ASCII字符,正確。本題答案為B選項(xiàng)。

13.D

14.C

15.BB選項(xiàng)的特點(diǎn)是順序存儲結(jié)構(gòu)的特點(diǎn),即數(shù)組的特點(diǎn)。

16.C

17.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個(gè)文件是一串字符流或二進(jìn)制流。文件的存取以字符或字節(jié)為單位。

18.A

19.B在C語名中規(guī)定進(jìn)行強(qiáng)制類型轉(zhuǎn)換的格式是:(類型名)變量名;并且給表達(dá)式賦值。

20.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。

21.2424解析:continue語句功能:結(jié)束本次循環(huán)(注:不是終止整個(gè)循環(huán)),即跳過循環(huán)體中continue語句后面的語句,開始下一次循環(huán)。

22.buf的首地址buf的首地址解析:考查fgets()函數(shù)的功能,fgets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:fgets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個(gè)int型變量。調(diào)用函數(shù)fgets()時(shí),最多能讀入n-1個(gè)字符,系統(tǒng)自動(dòng)在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。

23.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。

24.88解析:fabs函數(shù)功能是求x的絕對值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。

25.p=(structaa*)malloc(sizeof(structaa));p=(structaa*)malloc(sizeof(structaa));解析:ANSIC標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void*,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsignedint。由于返回類型為void*,所以在調(diào)用函數(shù)時(shí),必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。

26.16

27.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(*旨針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。

28.503503解析:如果if后面的條件為真,只執(zhí)行其后的一條語句或一條復(fù)合語句,如果if后面的條件為假,只執(zhí)行else后面的一條語句或一條復(fù)合語句。先判斷表達(dá)式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。在判斷表達(dá)式“a<c”,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。

29.t*10或10*tt*10或10*t解析:本題要求累加一系列有規(guī)律的數(shù),從輸出結(jié)果來看,s保存的是最終結(jié)果,而s在循環(huán)體中,每次累加一個(gè)t,則說明t在5次循環(huán)中分別等于1.12、123、1234、12345;而t每次循環(huán)等于“填空內(nèi)容”加上循環(huán)變量i,又因?yàn)閕在5次循環(huán)中分別等于1、2、3、4,5,所以t每次循環(huán)要加的“填空內(nèi)容”應(yīng)分別為0、10、120,1230,12340,這一系列值正好是前一次t的值的10倍.所以“填空內(nèi)容”應(yīng)是t*10。

30.11解析:因?yàn)閤=4,y=3,所以表達(dá)式x<y的值為假(0),又因?yàn)閦=2,所以0<z的值為真(1),故最終輸出的結(jié)果為1。

31.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。

32.I=1x[I-1]I=1,x[I-1]解析:對于10個(gè)數(shù),相臨的兩個(gè)數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入I=1。相臨的兩個(gè)數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[I-1]。

33.類類解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實(shí)例。

34.5252解析:do...while語句的形式為:

do

{

語句;

}while(條件表達(dá)式)

當(dāng)條件表達(dá)式為非零時(shí),繼續(xù)執(zhí)行循環(huán)體,直到條件表達(dá)式為零時(shí)退出循環(huán)。

35.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。

36.變換型變換型

37.abcdefglkjihabcdefglkjih解析:本題主要考查了字符變量可參與的運(yùn)算。因?yàn)樽址谟?jì)算機(jī)中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術(shù)運(yùn)算等,某字符的大寫字母的ASCII碼值比它對應(yīng)的小寫字母ASCII碼值小32。

38.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。

39.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時(shí),a=c++=8,所以k=8。

40.SQRT(x2+y2)/(a+b)

41.A解析:本題利用多重for循環(huán)的嵌套來實(shí)現(xiàn)對二維數(shù)組元素的按列排序。利用最外層循環(huán)來實(shí)現(xiàn)對列的控制。內(nèi)部循環(huán)利用選擇法對數(shù)組元素按照從小到大的順序進(jìn)行排列,最后輸出對角線上的元素值。

42.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案

轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進(jìn)制數(shù)所代表的字符、\xhh1~2位十六進(jìn)制數(shù)所代表的字符。

43.D解析:算法的空間復(fù)雜度一般是指這個(gè)算法執(zhí)行時(shí)所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行旱災(zāi)程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。

44.A解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個(gè)元素的地址,所以在四個(gè)選項(xiàng)中,選項(xiàng)B和C只能輸入一個(gè)數(shù)據(jù),選項(xiàng)D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。

45.C算法具有的5個(gè)特性是:有窮性、確定性、可行性、有0個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。

46.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算選進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價(jià)。

47.D解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。

48.B解析:在一維數(shù)組中要注意的是下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于零,并且小于自身元素的個(gè)數(shù),既數(shù)組長度,選項(xiàng)B)的下標(biāo)不是整數(shù),所以錯(cuò)誤。

49.A解析:本題首先定義了一個(gè)字符數(shù)組并用字符串'159'初始化之,然后用一個(gè)字符型指針p指向該數(shù)組的第一個(gè)元素,最后兩次輸出表達(dá)式*p++的值,所以本題的關(guān)鍵在于求解表達(dá)式*p++的值。*和++的優(yōu)先級相同,但結(jié)合性是“從右至左”,即*P++相當(dāng)于*(P++),由于子表達(dá)式p++的值是p自增之前的值,所以第一次輸出的是數(shù)組的第一個(gè)元素的值\'1\',到第二條輸出語句時(shí)p已自增1次,所以第;次輸出的是第二個(gè)元素\'5\'。故應(yīng)該選擇選項(xiàng)A。

50.D解析:要正確計(jì)算函數(shù)f=n!,由n!的數(shù)學(xué)定義可知n!=n*(n-1)*(n-2)*……*1。在選項(xiàng)A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計(jì)算f=n!=O,所以選項(xiàng)A)不正確。在選項(xiàng)B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B)不正確。在選項(xiàng)C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)C)不正確。在選項(xiàng)D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計(jì)算f=n!,所以選項(xiàng)D)正確。

51.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊(duì)列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊(duì)列組織數(shù)據(jù)的原則。

52.D解析:本題考查的知識點(diǎn)是運(yùn)算符的優(yōu)先級。在這個(gè)表達(dá)式中,優(yōu)先級最高的是(int)a,也就是對5.5取整,結(jié)果是5,其次是b/b,即2.5/2.5,結(jié)果是1.000000,最后相加結(jié)果為6.000000(表達(dá)式的最終結(jié)果為實(shí)型),所以4個(gè)選項(xiàng)中D正確。

53.B解析:白盒測試按照程序內(nèi)部的邏輯測試程序,檢驗(yàn)程序中的每條路徑能否按預(yù)定要求工作,白盒測試又稱單元測試,它不屬于基于代碼分析的靜態(tài)測試。故正確選項(xiàng)為B項(xiàng)。

54.B解析:我們嚴(yán)格區(qū)分調(diào)試與測試,調(diào)試是已知有錯(cuò)誤而來找錯(cuò)誤,是被動(dòng)的;測試有很多種,比如未發(fā)現(xiàn)錯(cuò)誤但不能保證程序沒錯(cuò)而來找BUG,還比如我們運(yùn)行測試程序是否符合用戶的要求,是主動(dòng)的。所以答案是選項(xiàng)B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。比如我們在進(jìn)行單元測試時(shí),發(fā)現(xiàn)程序有錯(cuò)誤,我們再可以根據(jù)A、C、D的方法來找錯(cuò)誤。

55.B解析:本題考查了通過指針來引用一維數(shù)組元素的方法。題中*p=a;這一賦值語句是指針p指向了數(shù)組a的首地址,p+5是指針p向后移動(dòng)了5個(gè)int類型的存儲單元,所以p+5指向了數(shù)組元素a[5]。

56.C2(n-1)

=2(5-1)=16

57.C解析:C語言規(guī)定每條語句和數(shù)據(jù)定義的最后必須有一個(gè)分號,分號是C語句的必要組成部分。復(fù)合語句也稱為“語句塊”,其形式如下:{語句1;語句2;……語句n;},即用一對大括號把若干語句括起來構(gòu)成一個(gè)語句組。一個(gè)復(fù)合語句在語法上視為一條語句,在一對花括號內(nèi)的語句數(shù)量不限。一個(gè)賦值表達(dá)式的最后加一個(gè)分號就成為一條語句,即賦值語句??照Z句是只有一個(gè)分號的語句,它什么也不做,程序設(shè)計(jì)中有時(shí)需要加一個(gè)空語句來表示存在一條語句,但隨意加分號會導(dǎo)致邏輯上的錯(cuò)誤,而且這種錯(cuò)誤十分隱蔽,編輯器也不會提示邏輯錯(cuò)誤,需要慎用。

58.D解析:軟件需求規(guī)格說明書(SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個(gè)方面的作用:

①便于用戶、開發(fā)人員相互理解和交流。

②反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)。

③作為確認(rèn)測試和驗(yàn)收的依據(jù)。

59.B解析:(a1,a2)是一個(gè)逗號表達(dá)式,它的值為a2的值即m,以字符格式輸出表達(dá)式的值即輸出小寫字母m。

60.D解析:“&”是求址運(yùn)算符,“*”是指變量說明符。選項(xiàng)A)、B)應(yīng)改為scanf('%d',p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。

61.A本題考查循環(huán)跳出的知識點(diǎn):①break語句可以出現(xiàn)在switch循環(huán)體內(nèi)及語句體內(nèi),它的作用是跳出循環(huán)體,不能用于其他的語句;②continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,而接著判定循環(huán)條件是否成立,確定下一次循環(huán)是否繼續(xù)執(zhí)行,執(zhí)行contiune語句不會使整介循環(huán)終止;③循環(huán)體內(nèi)使用br

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論