2021年黑龍江省大慶市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021年黑龍江省大慶市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021年黑龍江省大慶市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021年黑龍江省大慶市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021年黑龍江省大慶市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年黑龍江省大慶市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有如下定義#defineD2intx=5;floaty=3.83;charC='D';則下面選項中錯誤的是

A.x++;B.y++;C.c++;D.D++;

2.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的運行結果是()。

A.321B.12300C.1D.123

3.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

4.下列排序方法中,()方法的比較次數(shù)與記錄的初始排列狀態(tài)無關。

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

5.設變量已正確定義并賦值,下列表達式中正確的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

6.

下列程序的輸出結果是()。

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]-1;

else

p[1][i]=1;

}

printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

}

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

7.為了提高軟件的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內容耦合D.數(shù)據(jù)耦合

8.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序運行后的輸出結果是______。

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

9.算法是指為解決某個特定問題而采取的確定且有限的步驟,下面不屬于算法的五個特性的是A.A.有零個輸入或多個輸入B.高效性C.有窮性D.確定性

10.

11.有以下程序:#include<stdio.h>#defineSUB(x,y)(x)*(y)main(){inta=3,b=4;printf(“%d\n”,SUB(a++,b++));程序運行后的輸出結果是()。

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

12.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成

B.函數(shù)調用可以作為—個獨立的語句存在

C.若函數(shù)有返回值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應的實參

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

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

14.軟件生命周期中,花費最多的階段是()。

A.詳細設計B.軟件編碼C.軟件測試D.軟件維護

15.以下關于C語言文件系統(tǒng)的敘述中正確的是()。

A.fprintf與fwrite函數(shù)功能相同

B.文件以“r”方式打開后,可以存儲文本類型的數(shù)據(jù)

C.fscanf與fread函數(shù)功能相同

D.以“w”或“wb”方式打開的文件,不可以從中讀取數(shù)據(jù)

16.將10階對稱矩陣壓縮存儲到一維數(shù)組A中,則數(shù)組A的長度最少為()

A.100B.40C.55D.80

17.若i、j已定義成mt型,則下列程序段中內循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

18.以下選項中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L

19.實體聯(lián)系模型中實體與實體之間的聯(lián)系不可能是

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

20.下列敘述中正確的是()。A.算法就是程序B.設計算法時只需要考慮數(shù)據(jù)結構的設計C.設計算法時只需要考慮結果的可靠性D.以上三種說法都不對

二、2.填空題(20題)21.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。

22.在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。

23.在面向對象方法中,類之間共享屬性和方法的機制稱為______。

24.存儲結構的4種基本類型分別是順序、鏈式、索引和【】。

25.下面程序的功能是根據(jù)公式e=1+1/1!+1/2!+1/3!+1/4!+...計算e的近似值,精度要求為10-5。請?zhí)羁铡?/p>

main()

{intn;

doublee=1.0,t=1.0;

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

{【】e+=t;}

printf("%f\n",e);}

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

main()

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

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

for([11];i<10;i++)

a[i-1]=x[i]+[12];

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

printf("");

}

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

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

28.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產生的結果。

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

main()

{inta=1,b=10;

do

{b-=a;a++;}while(b--<0);

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

}

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

#defineS(x)4*x*x+1

mah()

{inti=6,j=8;

printf("%d\n",S(i+j));

}

31.診斷和改正程序中錯誤的工作通常稱為【】。

32.軟件維護活動包括以下幾類:改正性維護、適應性維護、【】維護和預防性維護。

33.設a、b、c為整形數(shù),且a=2,b=3,c=4則執(zhí)行完以下語句后,a的值是【】。

a*=16+(b++)-(++c);

34.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結果為______。

35.strcat函數(shù)的作用是【】。

36.棧和隊列通常采用的存儲結構是【】。

37.媒體在計算機領域中的含義,是指存儲信息的實體和【】。

38.若x、y和z均是int型變量,則執(zhí)行下面表達式后的x值為【】。

x=(y=4)+(z=3)

39.以下程序用來輸出結構體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>

structst

{charname[20];doublescore;};

main()

{structstex;

printf("exsize:%d\n",sizeof(【】));}

40.以下scanf函數(shù)調用語句中對結構體變量成員的引用不正確的是{charname[20];}pup[5],*p;

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

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

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

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

43.若有程序段:intc1=1,c2=2,c3;c3=1.0/c2*cl;則執(zhí)行后,c3中的值是()

A.0B.0.5C.1D.2

44.有如下程序段:#include<stdio.h>#defineMax(a,b)a>b?a:bmain(){inta=5,b=6,c=4,d;d=c+Max(a,b);printf("%d",d);}其輸出結果為______。

A.10B.5C.6D.編譯錯誤

45.有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);}程序運行后的輸出結果是

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

46.在調用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據(jù)傳遞方式是______。

A.地址傳遞B.單向值傳遞C.由實參傳紿形,再由形參傳回實參D.傳遞方式由用戶指定

47.對于一個正常運行的C程序,下列敘述中正確的是()。A.A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結束

B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結束

C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結束

D.程序的執(zhí)行總是從程序中的第一個函數(shù)開始,在程序的最后一個函數(shù)中結束

48.下列選項中不屬于軟件生命周期開發(fā)階段任務的是()。

A.軟件測試B.概要設計C.軟件維護D.詳細設計

49.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

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

A.指令由操作數(shù)和操作碼兩部分組成

B.常用參數(shù)xxMB表示計算機的速度

C.計算機的一個字長總是等于兩個字節(jié)

D.計算機語言是完成某一任務的指令集

51.有以下程序:main(){char*p[]={"3697","2584"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}}printf("%d\n",num);}程序執(zhí)行后的輸出結果是()。

A.35B.37C.39D.3975

52.若有以下程序段intm=0xabc,n=0xubc;m-=n;printf("%X\n",m);執(zhí)行后輸出結果是

A.0X0B.0x0C.0D.0XABC

53.下列程序的輸出結果是()。#include<stdio.h>main(){structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un));}

A.6,2B.6,4C.8,4D.8,6

54.在設計程序時,應采納的原則之一是()。

A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結構應有助于讀者理解

55.設有二維數(shù)組A[8][9],其每個元素占2個字節(jié),從首地址400開始,按行優(yōu)先順序存放,則元素A[8,5]的存儲地址為______。

A.570B.506C.410D.482

56.如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序

57.fseek函數(shù)的正確調用形式是()。

A.fseek(文件指針,起始點,位移量)

B.fseek(文件指針,位移量,起始點)

C.fseek(位移量,起始點,文件指針)

D.fseek(起始點,位移量,文件指針)

58.設x為int型變量,執(zhí)行以下語句,x=10;x+=x-x;x;x的值為______。

A.10B.20C.30D.40

59.若有以下定義,則對a數(shù)組元素地址的正確引用是()。

inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]

60.下列程序的輸出結果是______。#include<stdio.h>main(){inti=1,j=3;printf("%d,",i++);{inti=0;i+=j*2;printf("%d,%d,",i,j);}printf("%d,%d\n",i,j);}

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

四、選擇題(20題)61.有以下程序

62.

對兩個數(shù)組a和b進行下列初始化:

charm[]="1234567";

charn[]={1,2,3,4,5,6,7};

則下列敘述正確的是()。

A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串

63.若有定義:intX=0,*P=&x;,則語句printf(”%d\n”,*P.的輸出結果是()。

A.隨機值B.0C.X的地址D.P的地址

64.

65.設有以下程序段:

structMP3

{charname[20];

charcolor;

floatprice;

}std,*ptr;

ptr=&std:

若要引用結構體變量std中的color成員,寫法錯誤的是()。

A.std.color

B.ptr->color

C.std->color

D.(*ptr)color

66.

67.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序執(zhí)行后的輸出結果是()。A.45B.50C.60D.55

68.下列關于C語言文件的敘述中正確的是()。A.文件睦數(shù)據(jù)序列組成,可以構成二進制文件或文本文件

B.文件由結構序列組成,可以構成二進制文件或文本文件

C.文件由一系列數(shù)據(jù)依次排列組成,只能構成二進制文件

D.文件由字符序列組成,其類型只能是文本文件

69.有以下程序函數(shù)fun只對下標為偶數(shù)的元素進行操作.:

程序運行后的輸出結果是()。A.A.7,2,5,4,3,6,1,

B.1,6,3,4,5,2,7,

C.7,6,5,4,3,2,1,

D.1,7,3,5,6,2,1,

70.以下能正確定義字符串的語句是()。

A.charstr=”\x43”;

B.charstr[]=”、0”;

C.charstr=”;

D.charstr[]={’\064’};

71.以下程序的輸出結果是______。main(){charst[20]="hello'、0\t\\";printf("%d%d\n",strlen(st),sizeof(st));}

A.99B.520C.1320D.2020

72.設x,y,z均為整型變量,現(xiàn)有如下語句x=y=z=1;(++x||(++y&&++z));,則執(zhí)行這個語句后y的值為

A.2B.1C.0D.不定值

73.

74.下面不屬于軟件設計階段任務的是()。

A.制訂軟件確認測試計劃B.數(shù)據(jù)庫設計C.軟件總體設計D.算法設計

75.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。

A.不確定B.編譯錯誤C.gD.輸出null字符

76.

77.

78.

79.以下程序的輸出結果是()。main(){intRum=0;while(num<=2){num++;printf(”%d\n”,num);}}A.1B.1C.1234D.1223

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!

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

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

試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計一行字符串中單詞的個數(shù),并將其作為函數(shù)值返回。字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格隔開,一行的開始沒有空格。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}

參考答案

1.D解析:C語言中++運算符的對象可以是整型、實型和字符型,但不可是常量,本題中D為常量。

2.D程序首先將數(shù)組a中的元素1、2、3分別寫入了d1.dat文件中,再將d1.dat文件中的數(shù)據(jù)“123”整體寫到變量n的空間中,所以輸出的數(shù)據(jù)為123。故本題答案為D選項。

3.B解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

4.D

5.A運算符“%”的左右兩個操作數(shù)均應為整數(shù),所以B選項與D選項錯誤。C選項中不能將“x+z”的值賦給表達式“y*5”,所以C選項錯誤。故本題答案為A選項。

6.B

\n本題考查for循環(huán)及if…else語句嵌套,第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=l,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

\n

7.D在程序設計中,各模塊間的內聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,以有利于提高模塊的獨立性。耦合性與內聚性是模塊獨立的兩個定性標準,是互相關聯(lián)的。

8.D解析:C語言覿定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實參傳給形參,而不能由形參傳回來給實參。函數(shù)調用結束后,形參單元被釋放,實參單元仍保留并維持原值。本題要求輸出aa[0]的值,結果應為1。

9.B

10.B

11.B#define命令是C語言中的一個宏定義命令,標識符一般使用大寫,用標識符定義一個:字符串,該標識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進行其他操作,僅僅只是替換標識符。后綴自增運算a++表示先運算,后自加。意思是遇到a++了,先把當前的a的值拿來參加運算,后面再自加。SUB(a++,b++)→(a++)*(b++)=3*4。故本題答案為B選項。

12.D解析:在調用函數(shù)時,給形參分配存儲單元,并將實參對應的值傳遞紿形參,調用結束后,形參單元彼釋放,實參單元仍保留并維持原值。因此,在執(zhí)行—個被調用函數(shù)時,形參的值如果發(fā)生改變,并不會改變主調函數(shù)的實參的值,也就是說形參的值是不傳回紿對應的實參的。

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

14.D本題考查對軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護階段。其中定義階段包括可行性研究與計劃制訂和需求分析;開發(fā)階段包括概要設計、詳細設計、開發(fā)和測試;維護階段是一個單獨階段,不包含在開發(fā)階段內,它是所花費用最多的一個階段。

15.Dfprintf函數(shù)和fscanf函數(shù)都可以讀寫文本文件,而fwrite和fread函數(shù)可以讀寫二進制文件,選項A、C錯誤;文件以“r”方式打開后,只可以讀取文本數(shù)據(jù),選項B錯誤。故本題答案為D選項。

16.C

17.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內循環(huán)體執(zhí)行6*4=24次。

18.D在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。整型常量和實型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個字母l(L的小寫)或L;實型常量必須用帶小數(shù)點的數(shù)表示,例如3.14159、-2.71828、0.0等;選項A中字母o不符合要求,選頂B中超出八進制的范圍,選項C中e后面的不為整數(shù),因此選頂D是正確的。

19.D解析:實體聯(lián)系模型中實體與實體之間的聯(lián)系有一對一(1:1),一對多戌多對一(1:m或m:1),多對多(m:n)其中一對一是最常用的關系。

20.D算法是指解題方案的準確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設計算法時不僅要考慮對數(shù)據(jù)對象的運算和操作,還要考慮算法的控制結構。故答案為D選項。

21.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。

22.中序中序解析:在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結點,最后遍歷左子樹。

23.繼承繼承解析:在面向對象的程序設計方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。

24.散列散列

25.t>=le-5;t=t/n;

26.i=1x[i-1]i=1\r\nx[i-1]解析:對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進行9次加法運算,所以空11處應填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空12處應填入x[i-1]。

27.3535解析:函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結果為35。

28.驅動模塊驅動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調用或驅動,同時被測試模塊還要去調用其他模塊,前者稱為驅動模塊,后者稱為承接模塊。其中驅動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產生的結果;承接模塊的作用是代替被測模塊,調用其他模塊。

29.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結果為:a=2,b=8。

30.8181解析:本題的宏調用S(i+j)將被替換成表達式4*i+j*i+j+l等于4*6+8*6+8+1=24+48+8+1=81。所以本題輸出81。

31.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。

32.完善性軟件維護活動包括以下幾類:改正性維護,適應性維護、完善性維護和預防性維護,完善性維護是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴充軟件功能、增強軟件性能、改進加工效率、提高軟件的可維護性。

33.28

34.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術運算的時候是用其相應的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應的字符,所以是B。

35.連接兩個字符數(shù)組中的字符連接兩個字符數(shù)組中的字符解析:strcat函數(shù)的作用是連接兩個字符數(shù)組中的字符串。

36.鏈式存儲和順序存儲鏈式存儲和順序存儲

37.載體載體

38.77解析:x=(y=4)+(z=3)等價于y=4,z=3,x=y+z=4+3=7。

39.structst或exstructst或ex解析:結構體類型數(shù)據(jù),其數(shù)據(jù)成員各自占據(jù)不同的存儲空間,整個結構體變量所占存儲單元的字節(jié)數(shù)為每一個數(shù)據(jù)成員所占的存儲空間的和。注意:共用體變量所占存儲單元字節(jié)數(shù)的計算。

40.D

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

42.C解析:這是一個轉換程序:低字節(jié)相互轉換,高字節(jié)不變。“abe”的ab和“123”的12相互轉化。

43.A

44.B解析:在C語言中,宏定義是直接替換的,所以在c+a>b?a:b這個條件表達式中,c+a>b為真,所以用a的值作為整個表達式的值,而a的值為5,所以整個表達式的值為5。

45.A解析:函數(shù)f1(x,y)的功能返回x,y中較大的一個,而函數(shù)f2(x,y)的功能是返回x,y中較小的一個,所以f1(a,b)=4,f1(c,d)=3,f2(c,d)=2,故e=f2(4,5),f=(3,2)=3,g=4+3+5+2-4-3=7。

46.B解析:C語言函數(shù)中的參數(shù)傳遞方式有傳值與傳址兩種方式,傳值方式是指將實參的值復制一份傳遞給形參,而傳址方式是指將實參的變量地址傳遞給形參,也就是實參的引用。

47.A解析:一個C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結束。

48.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又進一步劃分為若干個階段。軟件定義時期的基本任務是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)時期是具體設計和實現(xiàn)在前一時期定義的軟件,它通常由下面五個階段組成:概要設計、詳細設計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務是使軟件持久地滿足用戶的需要。即當軟件在使用過程中發(fā)現(xiàn)錯誤時應加以改正;當環(huán)境改變時應該修改軟件,以適應新的環(huán)境;當用戶有新要求時應該及時改進軟件,以滿足用戶的新要求。根據(jù)上述對軟件生命周期的介紹,可知選項C中的軟件維護不是軟件生命周期開發(fā)階段的任務。因此,本題的正確答案是C。

49.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結點。根據(jù)前序遍歷的結果可知,a是根結點。由中序遍歷的結果dgbaechf可知,d、g、b是左子樹的結點,e、c、h、f是右子樹的結點。再由前序遍歷的結果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結果dgb可知,d、g是b左邊子樹的結點,b右邊子樹無結點。再由前序遍歷結果dg可知,d為b左子樹的根,g是以d為根的子樹的右結點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結點位置。所以可知后序遍歷的結果是D。

50.A

51.C解析:通過賦值表達式指針數(shù)組*p[]等價于數(shù)組p[2][4];表達式“p[i][j]-'0'”可用來表示該字符數(shù)組元素的數(shù)值,故表達式“(p[i][j]-'0')%2”為判斷該字符數(shù)組元素的數(shù)值的奇偶性,表達式“num=10*num+p[i][j]-'0'”中的數(shù)值運算表示直接加該字符數(shù)組元素的數(shù)值。

52.C解析:C語言中的自反賦值運算符?!癿-=n”相當于“m=m-n”,兩個相等的數(shù)相減,其值為0。

53.B解析:本題主要考查結構體和聯(lián)合內存使用的區(qū)別:結構中不同的成員分別使用不同的內存空間,一個結構所占內存空間的大小是結構中每個成員所占內存空間大小的總和,結構中每個成員相互獨立;聯(lián)合所占用的內存空間為最長的成員所占用的空間。

54.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,選項C)也不選。

55.A

56.B解析:由棧“后進先出”的特點可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進棧→e2進?!鷈2出?!鷈3進?!鷈4進?!鷈4出?!鷈3出?!鷈1出棧,所以只看出棧序列應為e2,e4,e3,e1。

57.B解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調用形式為:

fseek(文件指針,位移量,起始點)

“起始點”用0,1或2代替,0代表“文件開始”,1為“當前位置”,2為“文件末尾”。

“位移量”指以“起始點”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當文件長度大于64k時不致出現(xiàn)問題。ANSIC標準規(guī)定在數(shù)字末尾加一個字母L表示long型。

58.B解析:本題x=10,表達式“x+=x-=x-x;”的求解步驟如下:先進行x=x-x的運算,相當于x=x-(x-x)=x=10;再進行x+=x的運算,即x=x+x=200

59.D本題考查如何引用數(shù)組元素的地址。選項A)中,p5引用的是af51的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤;選項B)中,*a1指的是將數(shù)組a的第一個元素加1;選項C)中,這種引用方式錯誤;選項D)中,&a[0]引用的是數(shù)組的首地址。

60.B

61.A循環(huán)輸出前兩個數(shù)據(jù),所以結果為A)。

62.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個字符型數(shù)組并進行了初始化,C語言規(guī)定,在字符串的末尾自動加上串結束標記\'\\0\',因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對數(shù)組進行初始化,系統(tǒng)不會自動加上串結束標記\'\\0\',因此數(shù)組n的長度是7。

63.B題中定義的語句等價于以下語句。

故本題定義一個整型變量x和一個指向整型的指針P,并把變量X的地址賦值給P,即P為指向整型變量x的指針,則*P表示P所指向的整型變量x的數(shù)值。

64.B

65.A\n本題中要引用結構體變量std中的color,要使用指針,而std.color不是一個指針類型,所以答案選擇A。

\n

66.D

67.C在函數(shù)intfun(intx[],intn)的定義中,變量sum為一個靜態(tài)局部變量。由于在整個程序運行期間,靜態(tài)局部變量在內存中的靜態(tài)存儲中占據(jù)著永久的存儲單元。函數(shù)intfun(intx[],intn)的功能是求出

溫馨提示

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

最新文檔

評論

0/150

提交評論