2022-2023年山東省德州市全國計算機等級考試C語言程序設計預測試題(含答案)_第1頁
2022-2023年山東省德州市全國計算機等級考試C語言程序設計預測試題(含答案)_第2頁
2022-2023年山東省德州市全國計算機等級考試C語言程序設計預測試題(含答案)_第3頁
2022-2023年山東省德州市全國計算機等級考試C語言程序設計預測試題(含答案)_第4頁
2022-2023年山東省德州市全國計算機等級考試C語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2022-2023年山東省德州市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下敘述中錯誤的是()。

A.一個C程序中可以包含多個不同名的函數

B.一個C程序只能有一個主函數

C.C程序在書寫時,有嚴格的縮進要求,否則不能編譯通過

D.C程序的主函數必須用main作為函數名

2.已定義c為字符型變量,則下列語句中正確的是()。

A.c='97'B.c="97"C.c=97D.c="a"

3.下列敘述中正確的是A.程序設計就是編制程序

B.程序的測試必須由程序員自己去完成

C.程序經調試改錯后還應進行再測試

D.程序經調試改錯后不必進行再測試

4.對于只在表的首、尾兩端進行插入操作的線性表,宜采用的存儲結構為()。

A.順序表B.用頭指針表示的循環(huán)單鏈表C.用尾指針表示的循環(huán)單鏈表D.單鏈表

5.以下選項中,合法的一組C語言數值常量是()。

A.12.0Xa234.5e0

B.028.5e-3-0xf

C..1774e1.50abc

D.0x8A10,0003.e5

6.

7.最壞情況下時間復雜度不是n(n-1)/2的排序算法是()

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

8.數據的存儲結構是指()。

A.存儲在外存中的數據B.數據所占的存儲空間量C.數據在計算機中的順序存儲方式D.數據的邏輯結構在計算機中的表示

9.

10.計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。

A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對

11.若變量已正確定義,在“if(W)Printf(“%d\n”,k);”中,以下不可替代W的是()。

A.a<>b+cB.ch=getchar()C.a==b+cD.a++

12.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序輸出為()。

A.編譯有錯B.0,0,0,3C.1,1,2,0D.0,1,2,0

13.

14.對矩陣進行壓縮存儲是為了()。

A.方便運算B.方便存儲C.提高運算速度D.減少存儲空間

15.以下關于long、int和short類型數據占用內存大小的敘述中正確的是(),

A.均占4個字節(jié)B.根據數據的大小來決定所占內存的字節(jié)數C.由用戶自己定義D.由C語言編譯系統(tǒng)決定

16.若x=10010111,則表達式(3+(int)(x))&(~3)的運算結果是()。

A.10011000B.10001100C.10101000D.10110000

17.一個棧的初始狀態(tài)為空?,F將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA

18.以下不能定義為用戶標識符的是()。

A.VoidB.scanfC.intD._3com_

19.下列哪個算法是對一個list排序的最快方法()

A.快速排序B.冒泡排序C.二分插入排序D.線性排序

20.

二、2.填空題(20題)21.若下面程序的輸出結果是4,請?zhí)羁铡?/p>

main()

{inti,j,k;

k=0;i=j=【】;

k+=-(i+j);printf("%d\n",k);

}

22.有以下程序

main()

{intt=1,i=5;

for(;i>=0;i--)t*=i;

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

}

執(zhí)行后輸出結果是______。

23.數據庫系統(tǒng)中實現各種數據管理功能的核心軟件是______。

24.以下程序的輸出結果是【】。

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

25.下述函數統(tǒng)計一個字符串中的單詞個數,單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】=='')flag=0;

elseif(【】){flag=1;num++}

}

return【】;}

26.在樹形結構中,樹根結點沒有______。

27.下列程序的運行結果為【】。

main()

{inti;

chara[]="Ilovechina!",b[20],*p1,*p2;

p1=a;

p2=b;

while(*p1)

{*p2=*p1;

p1++;

p2++;

}

*p2='\0';

printf("stringbis:%s\n",b);

}

28.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。

29.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為【】。

30.以下程序運行后的輸出結果是______。

fun(intx)

{if(x/2>0)fun(x/2);

printf("%d",x);

}

main()

{fun(6);}

31.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F拷貝。(注:不使用逗號表達式)

whi1e()s[i]){d[j]=【】:j++;}

d[j]=0;

32.下列程序的運行結果是______。

#include<stdio.h>

main()

{intfun();

fun();

}

fun()

{staticinta[4]={1,2,3,4};

inti;

for(i=0;i<4;i++)a[i]+=a[i];

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

printf"\n");

}

33.面向對象的模型中,最基本的概念是對象和______。

34.以下主程序運行后的輸出結果是【】。

main()

{inti,m=0,n=0,k=0;

for(i=9;i<=ii;i++)

switch(i/10)

{case0:m++;n++;break;

case10:n++;break;

default:k++;n++;

}

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

}

35.下列程序的運行結果是______。

#defineP(a)printf("%d",a)

main()

{intj,a[]={1,2,3,4,5,6,7},i=5;

for(j=3;j>l;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

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

37.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。

38.C語言中用______表示邏輯值為“真”,用數字“0”表示邏輯值為“假”。

39.下面程序執(zhí)行后輸出的結果是【】。

intm=13;

intfun(intx,inty)

{intm+3;

return(x*y-m);

}

main()

{inta=7,b,5;

prntf("%d\n",fun(a,B)/m);

}

40.下面程序運行后的輸出結果是()。

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6},*k[3],i=1;

while(i<4)

{k[i-1]=&a[2*i-1];

printf("%d",*k[i-1]);

i++;

}

}

三、1.選擇題(20題)41.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

42.若有以下說明和定義fun(int*C){…}main(){int(*A)()=fun,*b(),w[10],c;┇}在必要的賦值之后,對fun函數的正確調用語句是()

A.a=a(w);B.(*a)(&c);C.b=*b(w);D.fun(b);

43.下列程序的輸出結果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}

A.-8B.14C.0D.-24

44.設x=011050,則x=x&01252的值是()。

A.1000101000

B.1111110100011000

C.1011100010

D.1100000000101000

45.程序中若有如下說明和定義語句

charfun(char*);

main()

{

char*s="one",a[5]={0},(*f1)()=fun,ch;

……

}

以下選項中對函數fun的正確調用語句是

A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);

46.下列程序的運行結果為#include<stdio.h>voidabc(char*str){inta,b;for(a=b=0;str[a]!='\0';a++)if(str[a]!='c')str[b++]=str[a];str[b]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

47.常采用的兩種存儲結構是()。

A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數組D.線性存儲結構和非線性存儲結構

48.下面敘述正確的是()

A.函數調用不可以出現在表達式中

B.函數調用可以作為一個函數的實參

C.函數調用可以作為一個函數的形參

D.函數不可以直接調用其本身

49.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*+5的值的函數f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*+5

B.#definef5*x*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define5*x*x+5*+5f(x)

50.有以下程序:main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運行后的輸出結果是______。

A.16516.5B.1651.56.5C.1651.06.5D.2651.56.5

51.微型機系統(tǒng)中,對輸入設備趕進行管理的基本程序模塊(BIOS)存放在()

A.RAM中B.ROM中C.硬盤中D.寄存器中

52.在下列敘述中,不正確的一條是______。

A.在C語言中,函數中的自動變量可以賦初值,每調用一次,賦一次初值

B.在C語言中,外部變量的隱含類別是自動存儲類別

C.在C語言中,在調用函數時,實際參數和對應形參在類型上只需賦值兼容

D.在C語言中,函數形參可以說明為register變量

53.與十進制數96等值的二進制是()

A.1100000B.10010110C.1100001D.1100011

54.一個良好的算法由下面的基本結構組成,但不包括______。

A.順序結構B.選擇結構C.循環(huán)結構D.跳轉結構

55.設變量x和y均已正確定義并賦值,以下if語句中,在編譯時將產生錯誤信息的是()。

A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

56.能正確表示邏輯關系“a≥10或a≤0”的C語言表達式是______。

A.a>=10ora<=0

B.a>=0|a<=10

C.a>=10&&a<=0

D.a>=10||a<=0

57.下列不合法的main函數命令行參數的表示形式是______。

A.main(inta,char*c[]);

B.main(ac,av)intarc;char**av;

C.main(c,v)intc;char*v[];

D.main(argc,argv)intargc;charargv[];

58.下列程序的輸出結果是______。main(){intk=17;printf("%d,%0,%x\n",k,k,k);}

A.17,021,0x11B.17,17,17C.17,Ox11,021D.17,21,11

59.有以下程序

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=0)t++;

while((*t++=*s++)!=0);

}

main()

{charss[10]="acc",aa[10]="bbxxyy";

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

}

程序的運行結果是

A.accxyy,bbxxyy

B.acc,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

60.下列選項中,不是一個算法的基本特征的是()。

A.完整性B.可行性C.有窮性D.擁有足夠的情報

四、選擇題(20題)61.下面概念中,不屬于面向對象方法的是()。A.對象B.繼承C.類D.過程調用

62.

63.設有如下定義

char*s[2]={"abcd","ABCD"};

則下列說法錯誤的是

A.s數組元素的值分別是″abcd″和″ABCD″兩個字符串的首地址

B.s是指針數組名,它含有兩個元素,分別指向字符型一維數組

C.s數組的兩個元素分別存放的是含有4個字符的一維字符數組中的元素

D.s數組的兩個元素中分別存放了字符′a′和′A′的地址

64.軟件生命周期是指()。A.軟件產品從提出、實現、使用維護到停止使用退役的過程

B.軟件從需求分析、設計、實現到測試完成的過程

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

D.軟件的運行維護過程

65.有如下程序段:

執(zhí)行該程序段后,X的值為()。

A.trueB.falseC.0D.1

66.下列敘述中正確的是()。

A.用E—R圖能夠表示實體集之間一對一的聯系、一對多的聯系、多對多的聯系

B.用E—R圖只能表示實體集之間一對一的聯系

C.用E—R圖只能表示實體集之間一對多的聯系

D.用E—R圖表示的概念數據模型只能轉換為關系數據模型

67.算法的有窮性是指()。

A.算法程序的運行時問是有限的。

B.算法程序所處理的數據量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

68.

69.定義如下變量和數組:

則下面語句的輸出結果是()。

A.951B.741C.753D.963

70.

71.

72.下列描述中正確的是

A.軟件指的就是程序B.軟件開發(fā)不受任何計算機系統(tǒng)的限制

C.軟件既是邏輯實體,又是物理實體D.軟件是程序、數據與相關文檔的集合

73.第

34

若有如下語句

intx=3;

do{printf("%d\n",x-=2);}

while(!(--x));

則上面程序段

A.輸出的是1B.輸出的是1和-2C.輸出的是3和0D.是死循環(huán)

74.

75.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現實世界中不同事物之間的聯系

B.強調模擬現實世界中的算法而不強調概念

C.使用現實世界的概念抽象地思考問題從而自然地解決問題

D.不強調模擬現實世界中的算法而強調概念

76.

77.有三個關系R、S和T如下:由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡兒積D.交

78.有以下程序:

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

A.0304B.2050C.3344D.3040

79.有3個關系R、S和T如下.

則由關系R和S得到關系T的操作是()。A.自然連接B.差C.交D.并

80.結構化程序設計的3種結構是()。

A.順序結構、選擇結構、轉移結構

B.分支結構、等價結構、循環(huán)結構

C.多分支結構、賦值結構、等價結構

D.順序結構、選擇結構、循環(huán)結構

五、程序改錯題(1題)81.假如整數數列中的數不重復,并存放在數組中。下列給定的程序中,函數proc()的功能是:刪除數列中值為x的元素。n中存放的是數列中元素的個數。請修改程序中的錯誤,使它能夠得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.編寫函數fun,其功能是:實現兩個字符串的連接(不要使用庫函數strcat),即把p2所指的字符串連接到pl所指的字符串的后面。

例如,分別輸人下面兩個字符串:FirstString——SecondString

程序運行后的輸出結果是:FirstString————SecondString

注意:部分源程序在文件PROGl.C中。

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入你編寫的若干語句。

參考答案

1.C【答案】C

【知識點】C程序的函數

【解析】C程序必須有且只有一個主函數main()。一個C程序可以包含多個不重名的子函數。C程序在書寫時沒有嚴格的縮進要求,語句前的縮進隨意。

2.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內存單元中去,而是將該字符的相應的ASCII代碼放到存儲單元中,所以C語言使字符型數據和整形數據之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。

3.C解析:軟件設計的基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完成預定的任務,軟件沒計是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其日的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件調試后要進行回歸測試,防止引進新的錯誤。

4.C

5.AC語言中,八進制整型常量以0開頭,十六進制整型常量以0x或0X開頭。C語言中的實型常量有兩種表示形式:小數形式和指數形式。小數形式,表示的實型常量必須要有小數點;指數形式,在e或E后加一個整數來表示以10為底數的冪數,且規(guī)定字母e或E之前必須要有數字,且e或E后面的指數必須為整數。B選項中“028”不合法,八進制中沒有數字8。C選項中,e后面的指數不是整數。D選項中“10,000”數字之間不能有逗號。故本題答案為A選項。

6.A

7.D

8.D數據的邏輯結構是指數據元素之間的邏輯關系的數據結構。數據的存儲結構則是數據的邏輯結構在計算機中的物理實現,有時也稱作數據的物理結構。兩者的區(qū)別是數據的邏輯結構只涉及到數據之間抽象的數學關系。存儲結構則涉及到如何在計算機中通過對數據的物理存儲進行組織來表達數據元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數據的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數據的前后件關系。一般的,一種數據的邏輯結構對應的物理實現,即數據的存儲結構不止一種。因此選項D正確。

9.A

10.A解釋執(zhí)行是計算機語言的一種執(zhí)行方式。由解釋器現場解釋執(zhí)行,不生成目標程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經過編譯生成目標文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。

11.A選項A是非法的表達式,C語言中沒有“<>”運算符。故本題答案為A選項。

12.AC語言中規(guī)定else總是和之前與其最近的且不帶else的if配對。題目中,“if(a=1)b=1;c=2;”默認省略了else,導致下一句else沒有匹配語句。故本題答案為A選項。

13.A

14.D

15.D解析:在C語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應該選擇D。

16.A解析:本題主要考查運算表達式的運算。3+(int)(x)的結果是10011010,~3的結果是11111100,二者邏輯與得10011000。

17.B棧是先進后出的原則組織數據,所以人棧最早的最后出棧,所以選擇B。

18.C標識符的命名可以由字母、數字或下劃線組成,并且第1個字符必須為字母或下劃線,另外用戶標識符不能使用關鍵字。選項A中的Void可以定義為用戶標識符,因為C語言對大小寫敏感,Void與關鍵字void屬于不同的標識符;選項B中的scanf是庫函數名,屬于預定義標識符,它也可以作為用戶標識符使用,不過通常不建議這么使用;選項C中的int屬于關鍵字,錯誤;選項D符合標識符的命名規(guī)則,也不屬于關鍵字,可以作為標識符使用。本題答案為C選項。

19.A

20.A

21.-2-2解析:題目中定義并初始化了變量k為0,最后輸出k的值,要求為4,而在此期間只有k+=-(i+j);這條語句改變了k的值,即要求表達式-(i+j)的值為4。所以,答案應該為-2,因為只有i=j=-2時,表達式-(i+j)的值才為4。

22.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。

23.數據庫管理系統(tǒng)數據庫管理系統(tǒng)解析:數據庫管理系統(tǒng)是數據庫的管理機構,它是一種系統(tǒng)軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務等。

24.1010解析:整型指針最初被賦的值是數組arr的頭指針,即指向數組的第一個元素30,p++后,指針指向數組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。

25.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計字符串單詞個數的算法中,本題的flag是為了記錄一個單詞是否結束。第18空應填*s++;如果某個字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是一個單詞的開始,將flag標志為1,num的值加1,如果不是,則不必記錄。故第19空應flag==0或*(s-1)=='';最后一個空格需填寫的是返回的單詞的個數,即num。

26.前件前件

27.stringbis:Ilovechina!

28.概念設計階段(數據庫概念設計階段)概念設計階段(數據庫概念設計階段)

29.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數為E=1/(n+1)(n-i+1)=n/2。

30.136136解析:本題考核的知識點是函數遞歸。主函數調用函數fun(6),由于6/2>0為真遞歸調用fun(3),接著遞歸調用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應該填136。

31.s[i++]s[i++]解析:本題中為了能實現字符串的拷貝,需要使字符數組s從頭到尾依次遍歷其所有元素。本題應使用i的自增后置來實現。

32.24682,4,6,8解析:子函數fun()的功能是將數組a中的元素都自加一遍,然后仍然將結果存在原數組中,其實就是將數組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數fun(),然后再調用fun()。

33.類類

34.132132解析:本題for循環(huán)語句的執(zhí)行過程為:

第一次循環(huán):i=9,9/10=0,執(zhí)行m++、n++得m=1、n=1、k=0;

第二次循環(huán):i=10,10/10=1,執(zhí)行k++、n++得m=1、n=2、k=1;

第三次循環(huán):i=11,11/10=1,執(zhí)行k++、n++得m=1、n=3、k=2;

即執(zhí)行完for循環(huán)后m=1、n=3、k=2。

35.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i-5,因為switch(3),所以執(zhí)行case3,調用P(a[-i)=p(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調用P(s[i++])=P(a[4])=P(5),輸出5,之后i的n等于5。

36.x==0

37.空間復雜度空間復雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復雜度。

38.非0非0解析:邏輯運算中,非0表示邏輯“真”,用。表示邏輯“假”。

39.22解析:本題變量m既是外部變量(值是13),又是fun函數的局部變量(值為3)。函數fun(x*y-m)的值為7*5-3=32,在main函數中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。

40.246

41.B本題主要考查C語言合法語句的定義。

在選項A中,a==1不是一個合法的語句,因為它沒有語句結束標識符“;”,不能說是一條語句,如果作為一個表達式,它是正確的。

在選項B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。

在選項C中,由于正確的賦值語句中,賦值符號的左邊不能為常量或表達式,而右邊不能為變量或表達式,很明顯,“a=a++=5;”違背了賦值語句的原則。

在選項D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強制轉換為整型的操作,應該為“a=(int)i;”。

42.B

43.D解析:表達式a+=a-=a*a看起來復雜,其實將它分成兩個表達式來計算就簡單了:①第一個表達式(a-=a*a)=(a=a-a*a=-12);②第二個表達式(a+=a-=a*a)=(a=a+a=-24)。

44.A解析:本題主要考查按位與運算,x=011050的二進制形式為000100100010t000,01252的二進制形式為0000001010101010,兩者相與得0000001000101000。

45.A解析:函數fun()的參數為指針類型,返回值為字符型,而選項B、C的參數不是指針類型,所以不正確,選項D中,*fl(s)表示返回值為指針的函數,所以也不正確。

46.A解析:本題考查了用字符指針引用字符數組中的字符及對字符的操作。函數abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數組的第一個元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數組元素的賦值過程,若字符為'c'就不執(zhí)行。

47.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結構:順序存儲結構和鏈式存儲結構。

\n

48.B

49.C解析:帶參數宏的格式:#define標識符(形參表)形參表達式。其功能:在預處理程序中將程序中出現的所有帶實參的宏名,展開成由實參組成的表達式。

50.B解析:主函數中先定義了一個整型變量a,一個字符變量c并賦初值10,一個浮點型變量f并賦初值100.00和一個double型x,接著執(zhí)行a=f/=c*=(x=6.5),該語句從右向左計算,先把6.5賦值給x(該括號表達式的值也為6.5),此時x的值變?yōu)?.5,然后執(zhí)行c*=(x=6.5)相當于執(zhí)行c=c*(x=6.5),此時c的值為65,接著向左執(zhí)行f/c*=(x=6.5),語句相當于執(zhí)行f=f/c,所以f的值為100/65≈1.538。接著向最右邊執(zhí)行“a=f”,由于a是整型變量,所以a最后去f的整數部分為1。程序最后輸出的a、c、f和x的值(f和x只保留小數點后面1位)分別為1、65、1.5、6.5。所以,4個選項中選項B符合題意。

51.B

52.B

53.A

54.D解析:1966年,Bohra和Jacopini提出了以下三種結構,用這三咱基本結構作為表示一個良好算法的基本單元:1、順序結構;2、選擇結構;3、循環(huán)結構。

55.C

56.D解析:邏輯運算符“||”表示或的意思。

57.D解析:main函數的參數通常有兩個,前者為整型,后者為字符型指針數組。參數的名字可以是任意合法的標識符。而且,形如**av與*av[]等價,所以選項A、B、C均正確,選項D是錯誤的。

58.D

59.D解析:本題中fun函數實現了字符串函數strcat的功能,將字符串aa連接到字符串ss的末尾。調用fun函數時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結束符的位置,第二個while循環(huán)將字符串aa中的字符(包括結束符'\\0')逐個復制到字符串ss的末尾處。

60.A解析:作為一個算法,一般應該具有下列4個特征:(1)可行性,即考慮到實際的條件能夠達到一個滿意的結果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內做完;(4)擁有足夠的情報。

61.D[答案]D

[考點]軟件工程基礎

[評析]

面向對象=對象+類+繼承+通過消息的通信

對象:一組屬性及其上的操作的封裝體

類:一組有相同屬性和操作的對象的集合

繼承:一個類為另一個類上的擴充的方式,子類繼承父類,主要目的是代碼復用

消息:對象間通信的手段

D是結構化程序設計或過程式(函數式)語言中的,一般的面向對象程序設計語言兼容這種方式,但不是其特征,故最佳選項為D

62.C

63.C本題主要考查指針數組。指針數組的特點是指針數組中的每一個元素都是一個指針。在本題中,定義了一個大小為2的字符型指針數組,并進行了初始化操作。下面分別分析四個選項對指針數據s的描述。

由于s中的兩個元素是兩個指針,可以指向字符串,也可以指向一維數組,因此說其是″abcd″和″ABCD″兩個字符串的首地址是正確的;同理,說其兩個元素分別指向字符型一維數組也是正確的。

由于指針數組s的兩個元素分別指向″abcd″和″ABCD″兩個字符串的首地址,那么它們的當前值是字符′a′和′A′的地址,而非一維字符數組中的元素值。

綜上所述,可以知道本題的答案是C。

64.A通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。

65.D在c語言中,邏輯運算符有4個,它們分

66.A用E—R圖可以描述實體及其相互之間的聯系,還可以描述多個實體集之間的聯系和一個實體集內部實體之間的聯系。用E—R圖表示的概念數據模型不僅能轉換為關系數據模型,還可以轉換為其他數據模型,如網狀模型和層次模型等。所以A的說法正確。

67.A算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成。有窮性是指算法程序的運行時間是有限的。

68.A

69.C考查二維數組元素的引用方法。題中通過二維數組的行、列下標來定位元素的位置,從而實現元素的引用。

70.B

71.D

72.D軟件并不只是包括可以在計算機上運

溫馨提示

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

評論

0/150

提交評論