2021年內蒙古自治區通遼市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2021年內蒙古自治區通遼市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2021年內蒙古自治區通遼市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2021年內蒙古自治區通遼市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2021年內蒙古自治區通遼市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

2021年內蒙古自治區通遼市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有下列程序:程序執行后的輸出結果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0

2.以下不合法的數值常量是()。

A.8.0E0.5B.1e1C.011D.0xabcd

3.

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

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

5.由3個結點可以構造出______種不同形態的二叉樹。

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

6.計算機系統的組成是______。

A.主機、外設B.運算器、控制器C.硬件系統和軟件系統D.CPU、內存儲器

7.有以下程序

include<stdio.h>

main()

{chara[30],b[30];

scanf(“%s”,a);

gets(b);

printf(“%s\n%s\n”,a,b);

}

程序運行時若輸入:

howareyou?Iamfine<回車>

則輸出結果是A.howareyou?Iamfine

B.howareyou?1amfine

C.howareyou?Iamfine

D.howareyou?

8.下列關于c語言用戶標識符的敘述中正確的是()。

A.用戶標識符中可以出現下劃線和中劃線(減號)

B.用戶標識符中不可以出現中劃線,但可以出現下劃線

C.用戶標識符中可以出現下劃線,但不可以放在用戶標識符的開頭

D.用戶標識符中可以出現下劃線和數字,它們都可以放在用戶標識符的開頭

9.

讀取二進制文件的函數調用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一個文件指針,指向待讀取的文件

B.一個整型變量,代表待讀取的數據的字節數

C.一個內存塊的首地址,代表讀人數據存放的地址

D.一個內存塊的字節數

10.有以下程序:#include<stdio.h>#defineS(x)x*x/xmain(){intk=6,j=3;printf(“%d,%d\n”,S(k+j+2),S(j+k+2);}程序運行后的輸出結果是()。

A.11,11B.29,29C.26,29D.121,121

11.指針可以用來表示數組元素,若已知語句:inta[3][7];則下列表示中正確的是()。

A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)

12.對包含N個元素的散列表進行檢索,平均檢索長度________

A.為o(log2N)B.為o(N)C.不直接依賴于ND.上述三者都不是

13.若要用函數fopen打開一個新的二進制文件,該文件要既能讀也能寫,則應以哪種方式打開文件()。

A.wbB.wb+C.rb+D.rb

14.對長度為n的線性表排序,在最壞情況下,比較次數不是n(n-1)/2的排序方法是()。

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

15.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數3賦給變量a,5賦給變量b的輸入數據是A.A.35B.3,5C.3;5D.35

16.有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){ case1: switch(y) { case0:a++;break; case1:b++;break; } case2:a++;b++;break; case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的運行結果是()。

A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0

17.以下函數不能用于向文件中寫入數據的是()。

A.hellB.fwriteC.fputcD.fprintf

18.在下列關系運算中,不改變關系表中的屬性個數但能減少元組個數的是A.并B.交C.投影D.笛卡兒乘積

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

A.028.5e-3-0xf

B.12.OXa234.5eO

C..1774c1.5Oabc

D.0x8A10,0003.e5

20.“商品”與“顧客”兩個實體集之間的聯系一般是

A.一對一B.一對多C.多對一D.多對多

二、2.填空題(20題)21.數據的______結構在計算機存儲空問中的存放形式稱為數據的存儲結構或物理結構。

22.下述函數用于統計一行字符中的單詞個數,單詞之問用空格分隔。

word_num(str)

charstr[];

{inti,num=0,word=0;

fot(i=0;str[i]!=【】;i++)

if【】=='')word=0;

elseif(word==0)

{

word=1;

【】;

}

return(num);

}

23.按照“先進先出”的原則組織數據的結構是______。

24.關系模型的完整性規則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。

25.下列程序輸出的結果是______。

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

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

}

26.數據庫系統其內部分為三級模式,即概念模式、內模式和外模式。其中,______是用戶的數據視圖,也就是用戶所見到的數據模式。

27.數據結構分為邏輯結構和存儲結構,循環隊列屬于______結構。

28.用樹型結構表示實體類型及實體間聯系的數據模型稱為【】。

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

main()

{

intx=0210;

printf("%X\n",x);

}

30.一般來說,算法可以用順序、選擇和______三種基本控制結構組合而成。

31.為了便于對照檢查,測試用例應由輸入數據和預期的【】兩部分組成。

32.沒有chara,b;,,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進制是【】。

33.已知“inta=2,b=2,c=3;”,則執行完語句“a*=18+(b++)-(++C);”后,a的值是()。

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

main()

{charc='z';

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

35.數據結構包括數據的邏輯結構、數據的【】以及對數據的操作運算。

36.函數fun的返回值是【】。

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!='\0')num++;

while(b[n]){*(a+num)=b[n];num++;n++;}

returnnum;

}

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

main()

{intx=1,y=2,z=3;

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

printf("%d,%d",x,y);

}

38.設有以下定義和語句,sizeof(a)的值是【】,sizeof(b)的值是【】。

struct{intday;Charmonth;intyear;}a,*b;

b=&a;

39.執行以下for語句后,變量i的值是【】。

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

40.有以下程序

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

執行后輸出結果是【】。

三、1.選擇題(20題)41.下列寫法正確的是()。

A.main()

B.main(){inti=3,j;{inti=3;j=5}

C.main()

D.main(){;}

42.C語言函數返回值的類型是由______決定的。

A.return語句中的表達式類型B.調用函數的主調函數類型C.調用函數時臨時D.定義函數時所指定的函數類型

43.以下選項小可作為C語言合法整數的是()。

A.10110BB.386C.0XffaD.x2a2

44.在結構化程序設計中,模塊劃分的原則是()。

A.各模塊應包括盡量多的功能

B.各模塊的規模應盡量大

C.各模塊之間的聯系應盡量緊密

D.模塊內具有高內聚度,模塊間具有低耦合度

45.下列是合法的用戶自定義標識符的是()。

A._w1B.3_xyC.intD.LINE-3

46.能直接與CPU交換信息的功能單元是()。

A.硬盤B.控制器C.主存儲器D.運算器

47.有以下程序:main(){chars[]="ABCD",*p;for(p=s+1;p<s+4;p++)printf("%s\n",p);}程序運行后的輸出結果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

48.若程序中已包含頭文件stdio.h,以下選項中,正確運用指針變量的程序段是______。

A.int*i=NULL;scanf("%d",i);

B.float*f=NULL*f=19.5;

C.chart='m',*c=&t;*c=&t;

D.long*L;L='\0';

49.下列程序的執行結果是_____。main(){intx=23;do{printf("%d",x--);}while(!x);}

A.321B.23C.不輸出任何內容D.陷入死循環

50.下列可用于C語言用戶標識符的一組是()。

A.void,define,WORD

B.a3_3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

51.若執行下面的程序時,從鍵盤輸入5和2,則輸出結果是

main()

{inta,b,k;

scanf("%d,%d",&a,&b);

k=a;

if(a<b)k=a%b;

elsek=b%a;

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

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

52.下面關于算法的敘述中,正確的是()

A.算法的執行效率與數據的存儲結構無關

B.算法的有窮性是指算法必須能在執行有限個步驟之后終止

C.算法的空間復雜度是指算法程序中指令(或語句)的條數

D.以上三種描述都正確

53.下列程序輸出的結果是()。main(){inta;a=-4+4*5-6;printf("%d",a);a=4+4%5-6;printf("%d",a);a=-3+4%6/5;printf("%d",a);a=(7+6)%5/2;printf("%d",a);}

A.102-31B.10-221C.11-221D.10221

54.下面程序的輸出結果是#include<stdio.h>#include<string.h>main(){char*pl="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

55.定義結構體數組:structstu{intnum;charname[20];}x[5];{1,"L1",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);以上程序段的輸出結果為()。

A.2A3N4A5UB.1I2A3H4IC.1A2N3A4UD.2H3A4H5I

56.下列敘述中,正確的是

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

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

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

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

57.下面軟件中,屬中應用軟件的是()

A.UnixB.人事管理系統C.數據庫管理理系統D.DOS

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

A.數據所占的存儲空間

B.數據的邏輯結構在計算機中的存放形式

C.數據在計算機中的順序存儲方式

D.存儲在計算機外存中的數據

59.有以下程序:main(){intx=102,y=012;printf(“%2d,%2d\n”,x,y);}執行后輸出結果是()。

A.10,01B.02,12C.102,10D.02,10

60.軟件調試的目的是______。

A.發現錯誤B.改正錯誤C.改善軟件的性能D.挖掘軟件的潛能

四、選擇題(20題)61.

62.

63.

64.設有定義:chars[81];inti=0;,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。

65.

66.(33)有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

}

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

}

以下關于程序段執行情況的敘述,正確的是

A)for循環語句固定執行8次

B)當產生的隨機數n為4時結束循環操作

C)當產生的隨機數n為1和2時不做任何操作

D)當產生的隨機數n為0時結束程序運行

67.

68.以下關于字符串的敘述中正確的是()。

A.C語言中有字符串類型的常量和變量

B.兩個字符串中的字符個數相同時才能進行字符串大小的比較

C.可以用關系運算符對字符串的大小進行比較

D.空串一定比空格打頭的字符串小

69.

70.設以下變量均為int類型,則值不等于7的表達式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+1,x=y,x+1)

71.

72.有以下程序:

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

A.357B.753C.369D.751

73.簡單的交換排序方法是()。

A.快速排序B.選擇排序C.堆排序D.冒泡排序

74.

75.

76.

有下列程序:

#include<stdio.h>

main

{intx=0;

inty=0;

while(x<7&&++v)

{y--;

x++;}

printf("%d,%d",y,x);

}

程序的輸出結果是()。

A.0,7B.7,7C.0,6D.1,6

77.若有定義:char*st=”howareyou”;,下列程序段中正確的是()。

A.

B.

C.

D.

78.語句“printf(”a\bhow\’are\’y\\\bou\n”);”的輸出結果是()。A.A.a\bhow\'are\'y\\bou

B.a\bhow\’are\’y\bou

C.how'are'you

D.ahow'are'y\bou

79.以下程序段完全正確的是()。

A.int*P;scanf("%d",&p);

B.int*P;scanf("%d",p);

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

D.intk,*p;*p=&k;scanf("%d¨,p);

80.以下敘述中正確的是()。A.A.break語句只能用在循環體內和switch’語句體內

B.continue語句的作用是:使程序的執行流程跳出包含它的所有循環

C.在循環體內使用break語句和continue語句的作用相同

D.break語句只能用于switch語句體中

五、程序改錯題(1題)81.下列給定程序中,函數ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已

在主函數中賦予。

請修改程序中的錯誤,使它能得出正確的結果。

注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。

試題程序:

#include<strin9.h>

#include<stdi0.h>

#defineM80

voidproc(char*arr)

{inti,j,n;charch;

n=strlen(arr):

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

//****found****

{c=arr[i];

j=i-1;

while((j>=o)&&(ch<arr[j]))

{

arr[j+1]=arr[j];

j--;

}

arr[j+1]=ch;

}

}

voidmain

{

chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";

printf("Theoriginalstring:%s\n",a);

proc(a);

printf("Thestringaftersortin9:

%s\n\n",a);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,函數fmi()的功能是將a、b中的兩個正整數合并成一個新的整數存放在c中。合并的方式是將a中的十位和個位數依次放在變量c的十位和千位上,b中的十位和個位數依次放在變量c的個位和百位上。例如,a=45,b=12,調用該函數后,c=5241。注意:部分源程序在文件prog1.c中。請勿改動main()函數和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.Bif條件表達式“a--‖b--&&--c”使用了邏輯或運算符和邏輯與運算符。因為邏輯與運算符優先級比邏輯或運算符優先級高,所以條件表達式等價于“(a--)‖(b--&&--c)”,自左向右運算,執行“a”,因為a初值為1,所以a--的值為1,執行完后a的值為0;又因為邏輯或運算符的短路原則,當a--的值為1時,條件為真,后面的表達式b--&&--c不執行。程序執行if語句塊,輸出a、b、c的值為:0,1,1。本題答案為B選項。

2.AA選項中E后面的指數必須為整數,所以不合法。C選項中的011表示的是八進制常量,D選項中的0xabcd表示的是十六進制常量。故本題答案為A選項。

3.D\r\n

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

5.C難易程度:易

6.C

7.B

8.B解析:在C語言中,合法的標識符由字母,數字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.

9.Cfread函數中的參數buffer是內存塊的首地址,輸入的數據存入此內存塊中。

10.B#define命令是C語言中的一個宏定義命令,為了區分其他標識符,標識符一般使用大寫。將標識符定義為一個字符串,該標識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進行其他操作,僅僅只是替換標識符。題目中的S(k+j+2)=k+j+2*k+j+2/k+j+2”,經計算可得29。“S(j+k+2)=j+k+2*k+j+2/j+k+2”,經計算可得29。因此輸出為29,29。故本題答案為B選項。

11.D

12.C

13.B解析:本題考查文件使用方式標識符。方式“wb”為輸出打開一個二進制文件;方式“wb+”為讀寫建立一個新的二進制文件;方式“rb+”為讀寫打開一個二進制文件:方式“rb”為輸入打開一個二進制文件。

14.D各種排序方法中最壞情況下需要比較的次數分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

15.C解析:在C語言中scanf函數中輸入數據時要嚴格按照所規定的樣式輸入。

16.Bcase常量表達式只是起語句標號作用,并不進行條件判斷。在執行switch語句時,根據switch的表達式,找到與之匹配的case語句,就從此case子句執行下去,不再進行判斷,直到碰到break或函數結束為止。所以執行內層“switch(y)”時只執行了“a++;”,此時a的值為1,然后執行外層case2語句的“a++;b++;”,a值為2,b值為1。故本題答案為B選項。

17.Aftell是返回文件當前指針。

18.B并運算的含義是:假設有一個“在校學生信息表”,它包括這樣一些字段:學號、姓名、性別、出生日期、籍貫、聯系電話,這個表的關系模式可以表示為:校學生信息表(學號,姓名,性別,出生日期,籍貫,聯系電話)。還有一個“新生信息表(學號,姓名,性別,出生日期,籍貫,聯系電話)”。若要將9月份進校的新生信息加入到“在校學生信息表”中,這樣進行的就是并運算。并運算不會改變表的字段(又叫屬性)個數,但是會增加記錄(又叫元組)個數。交運算的含義是:兩個表(要求結構要一模一樣)進行交運算取兩個表中相同的記錄構成一個新表,交運算不會改變表的字段個數,但是一般會減少記錄個數。投影運算的含義是:從在“校學生信息表(學號,姓名,性別,出生日期,籍貫,聯系電話)”中選取學生的“姓名”和“聯系電話”這兩個字段,可以構成一個“學生聯系表(姓名,聯系電話)”,這就是一個投影運算,所以投影運算一般會減少字段(又叫屬性)的個數。笛卡兒乘積又叫稱乘運算,設有n元關系R和m元關系s,他們分別有P、q個元組,則關系R和關系s的笛卡兒積表示為R×S,該關系是一個n+m元關系,元組個數是PXq。因此本題的正確答案是B。\r\n

19.BC語言中,八進制數其開頭必須是數字“0”,其數字包括0~7,因此選項A錯誤。浮點數據的指數形式表示中,字母e或E之后的指數必須為整數,所以選項C錯誤。選項D中,整型數據l0,000的表示形式是錯誤的。

20.D解析:兩個實體間的聯系可以歸納為3種類型:一對一聯系:一對一的聯系表現為主表中的每一條記錄只與相關表中的一條記錄相關聯。一對多聯系,一對多的聯系表現為主表中的每一條記錄與相關表中的多條記錄相關聯。多對多聯系:多對多的聯系表現為二個表中的多個記錄在相關表中同樣有多個記錄其匹配。本題中一個顧客可以購買多種商品,同一種商品可以有多個顧客購買,所以商品和顧客之間是多對多的聯系。

21.邏輯邏輯解析:數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構或物理結構。

22.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:①for循環的結束條件應當是:str[i]已是字符串的最后一個字符;②str[i]代表字符串str中的第i+1個字符;③整型變量num的值是要記錄的單詞的個數。C語言中規定字符串的最后一個字符是一個隱含的字符串結束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數。

23.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數據的。

24.參照完整性參照完整性

25.11解析:本題考查局部變量和全局變量的區別:局部變量是指作用域在函數級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內。在fun函數內部定義了一個局部變量m=3,m=3的作用域僅在fun函數內部,通過fun函數返回兩個形參的積再減m。在主函數中,輸出fun(a,b)/m=(5*7-3)/17=1。

26.外模式外模式解析:數據庫系統的三級模式分別是內模式、概念模式和外模式。其中,物理模式給出了數據庫的物理存儲結構和存取方法;概念模式是數據庫系統中全局數據邏輯結構的描述;外模式是用戶的數據視圖,也就是用戶所見到的數據模式。

27.存儲或物理或存儲結構或物理結構存儲或物理或存儲結構或物理結構解析:數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構(也稱數據的物理結構)。所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間。供隊列循環使用。可知,循環隊列應當是物理結構。

28.層次模型用樹型結構表示實體類型及實體間聯系的數據模型稱為層次模型,用有向圖結構表示實體類型及實體間聯系的數據模型稱為網狀模型,用二維表格結構表示實體及其聯系的數據模型稱為關系模型。

29.8888解析:C語言規定,以0開頭的整型常量為八進制。另外,在primf()函數中,%X表示以十六進制無符號形式輸出一個整數,且十六進制中的ABCDEF為大寫字母。本題的輸出應該是八進制210的十六進制形式。將八進制轉換為十六進制,可以先將其轉換為二進制。因為1位八進制表示3位二進制,4位二進制表示1位十六進制。(210)8=(10001000)2=(88)16,故本題輸出為880

30.循環循環解析:算法一般由順序,選擇和循環三種基本控制結構組合而成。

31.輸出結果輸出結果解析:注意:測試的基本方法和步驟。

32.1000001010000010解析:運算“&”的規則是只有當兩個相應的二進制位都為1時,該位的結果才為1。要保留第2、8位,只要將其與二進制數10000010相與。

33.32

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

35.存儲結構數據結構包括3個方面,即數據的邏輯結構、數據的存儲結構及對數據的操作運算。

36.字符串a和b的長度之和字符串a和b的長度之和解析:本題首先通過第一個while循環計算字符串a的長度,再通過第二個循環,將字符串a和b相連,最后返回連接后的總長度。

37.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。

“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結果;若表達式1的值為0,則計算表達式3的值,且為最終結果。

本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執行y++,輸出2后y值增1,所以最后一個輸出x的值不變為1,y的值為增加后的3。

38.52

39.7

40.-4-4解析:if…else構造了一種二路分支選擇,是一種最基本的選擇結構,if(條件)S1(if分結構)elseS2(else分結構),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執行if分結構(S1);否則(不成立,值為0),就執行else分結構(S2)。本題中,n=0,可以判斷(!n)為真,執行x=x-1=2-1=1;m=1,可以判斷(m)為真,執行x=x-2=1-2=-1進而可以判斷(x)為真,執行x=x-3=-1-3=-4。

41.D解析:本題考查語句的基本構成。選項A)中j=5后面少了一個分號;選項B)中少了“}”;選項C)不是一個完整的函數定義格式,一個完整的函數定義格式還包括一對花括號:選項D)正確,是一個空語句。

42.D解析:函數值的類型應當是在定義函數時指定的。在定義函數時對函數值說明的類型一般應該和return語句中的表達式類型—致,如果不—致,則以函數類型為準,即函數類型決定返回值的類型。

43.C解析:整數可以用十進制、八進制或十六進制表示,并分為有符號數、無符號數和長整型數,由此可知選項A)錯;選項B),用0386表示八進制錯誤,因為八進制數字為0~7八個數字,含有8是不對的;數字前加“0x”表示十六進制數,所以D)不對。

44.D解析:本題考查軟件工程中軟件設計的概念和原理。人們在開發計算機軟件的長期實踐中積累了豐富的經驗,總結這些經驗得到如下的啟發式規則:

(1)改進軟件結構,提高模塊獨立性;通過模塊的分解或合并,力求降低耦合提高內聚。低耦合也就是降低不同模塊間相互依賴的緊密程度,高內聚是提高一個模塊內各元素彼此結合的緊密程度。

(2)模塊的規模應適中。一個模塊的規模不應過大,過大的模塊往往是由于分解不夠充分:過小的模塊開銷大于有益操作,而且模塊過多將使系統接口復雜。因此過小的模塊有時不值得單獨存在。

(3)模塊的功能應該可以預測,但也要防止模塊功能過分局限。如果模塊包含的功能太多,則不能體現模塊化設計的特點:如果模塊的功能過分的局限,使用范圍就過分狹窄。

經過上述分析,本題的正確答案是選項D。

45.A解析:C語言規定用戶標識符由英文字母、數字和下劃線組成,且第一個字符必須是字母或下劃線,由此可見選項B),D)是錯的;此外,C語言不允許用戶將關鍵字作為標識符,而選項C)中的int是C語言的關鍵字。

46.C運算器和控制器都是CPU的一部分,顯然不可能是正確答案,而硬盤中的程序、數據首先要調入內存儲器中,因為它不能直接與CPU打交道。

47.D解析:本題中首先定義一個字符數組s,并將字符串'ABCD'存到數組s中,定義了一個字符指針變量p,在接下來for循環中,循環體共執行了三次,第一次p指向s[1],所以此時輸出的p所指字符串的值為BCD,第二次循環p指向s[2],此時輸出p所指的字符串的值為CD,第三次循環p指向s[3],此時輸出的p所指的字符串的值為D。所以,4個選項中選項D符合題意。

48.A解析:選項C中語句'*C=&t;'錯誤;選項D中指針'L=\'\\0\''不正確,L應指向確定的地址單元,而不是特定的值;選項B中語句'float*f=NULL'錯誤,缺少語句結束符“;”。

49.B

50.B解析:C語言規定標識符只能由字母、數字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除選項C)和D);C語言中還規定標識符不能為C語言的關鍵字,而選項A)中void為關鍵字,故排除選項A)。

51.C解析:本題考查簡單的if卐lse語句。先執行條件if(a<b),顯然不成立,在執行else語句。

52.BB)【解析】算法在運行過程t}1需輔助存儲空間的大小稱為算法的空間復雜度。算法的有窮性是指個算法必須在執行有限的步驟以后結束。

53.A解析:本題考查%和/運算符的使用。如果兩個數不能整除,只取結果的整數部分,小數部分全部舍去。運算符“%”要求兩個運算對象都為整型,其結果是整數除法的余數。表達式:a=-4+4*5-6=-4+20-6=10:表達式:a=4+4%5-6=4+4-6=2;表達式:a=-3+4%6/5=-3+0=-3;表達式:a=(7+6)%5/2=13%5/2=1。

54.C解析:本題考查的重點是拷貝字符串——使用strcpy()函數,該函數的調用方式是:strcpy(字符數組,字符串),其中”字符串”可以是字符串常量,也可以是字符數組。函數的功能是:將“字符串”完整地復制到“字符數組”中,字符數組中原有的內容被覆蓋。

使用該函數時注意:①字符數組必須定義得足夠大,以便容納復制過來的字符串。復制時,連同結束標志'\\0'一起復制;②不能用賦值運算符“:”將一個字符串直接賦值給一個字符數組,只能用strcpy()函數處理。

另外,本題還考查連接字符串的strcat()函數,其調用方

55.A解析:本題主要考查結構體數組的使用。x[i].num為結構體x[i]中的num成員,x[i].name[2]是結構體x[i]中name成員的第3個元素。程序執行循環過程時:第1次循環,i=1,輸出x[1].num,x[1].name[2]的值,即2A;第2次循環,i=2,輸出x[2].num,x[2].name[2]的值,即3N:第3次循環,i=3,輸出x[3].num,x[3].name[2]的值,即4A;第4次循環,i=4,輸出x[4].num,x[4].name[2]的值,即5U。

56.A解析:兩個實體之間的聯系實際上是實體集間的函數關系,這種函數關系可以有下面幾種,即一對一的聯系、一對多(或多對一)的聯系和多對多的聯系;概念模型便于向各種模型轉換。由于概念模型不依賴于具體的數據庫管理系統,因此,容易向關系模型、網狀模型和層次模型等各種模型轉換。

57.B

58.B解析:數據的存儲結構,又稱為數據的物理結構,是數據的邏輯結構在計算機中的存放形式,數據的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。

59.C解析:本題中,printf('%2d,%2d\\n',x,y)表示輸出形式是十進制整數,域寬是2,而在C語言中規定:當域寬小于實際寬度時域寬不起作用,按實際寬度輸出因此最后的輸出值為102和10,所以,4個選項中選項C符合題意。

60.B解析:在對程序進行測試時會發現錯誤,這就要進行程序調試(排錯)。程序調試活動由三部分組成:一是錯誤定位,根據錯誤的外部表現形式,確定程序中出錯的位置,找出錯誤的內在原因;二是對程序進行修改,排除這個錯誤;三是進行回歸測試,防止引進新的錯誤。所以程序調試的目的就是診斷和改正程序中的錯誤。軟件調試不能改善軟件的性能

溫馨提示

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

評論

0/150

提交評論