2022年黑龍江省黑河市全國計算機等級考試C語言程序設計測試卷(含答案)_第1頁
2022年黑龍江省黑河市全國計算機等級考試C語言程序設計測試卷(含答案)_第2頁
2022年黑龍江省黑河市全國計算機等級考試C語言程序設計測試卷(含答案)_第3頁
2022年黑龍江省黑河市全國計算機等級考試C語言程序設計測試卷(含答案)_第4頁
2022年黑龍江省黑河市全國計算機等級考試C語言程序設計測試卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年黑龍江省黑河市全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.以下選項中表示空函數的是()。

A.intfun(){return0;}

B.intfun();

C.intfun(){}

D.intfun(inta,intB){return1;}

2.對初始狀態(tài)為遞增序列的數組按遞增順序排序,最省時間的是插入排序算法,最費時間的算法是()

A.堆排序B.快速排序C.插入排序D.歸并排序

3.十進制數124轉換成二進制數是()

A.111l010B.1111100C.1011111D.1111011

4.以下程序輸出的結果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX");char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

5.數組A中,每個元素的長度為4個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放在存儲器內,該數組按行存放時,元素A[8][5]的起始地址為()。

A.SA+292B.SA+296C.SA+300D.304

6.深度為5的二叉樹至多有_____個結點。

A.16B.32C.31D.10

7.若有運算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()

A.%、sizeof、>、<<、=

B.sizeof、%、>、=、<<

C.sizeof、<<、>、%、=

D.sizeof、%、<<、>、=

8.結構化程序所規(guī)定的三種最基本控制結構是A.A.輸入、處理、輸出

B.樹形、網形、環(huán)形

C.順序、選擇、循環(huán)

D.主程序、子程序、函數

9.有以下程序:#include<stdio.h>main(){intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=0;i<3;i++)for(j=1;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序運行后的輸出結果是()。A.1B.3C.4D.0

10.有如下程序:

main

{inta=2,b=-1.c=2;

if(a<b)if(b<0)c=0;

elsec++;

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

}

該程序的輸出結果是()。A.A.0B.1C.2D.3

11.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0

12.以下選項中可作為C語言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe

13.有以下函數:intfun(char*x,char*y){intn=0;.while((*x==*y)&&*x!="\0){x++;y++;n++;}returnn;}函數的功能是()。

A.將y所指字符串賦給x所指存儲空間

B.查找和y所指字符串中是否有"\0'

C.統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數

D.統(tǒng)計x和y所指字符串中相同的字符個數

14.有以下程序#include<stdio.h>voidfun(int*s,intn1,intn2){inti,j,t;i=n1j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序的運行結果是

A.987654321B.4321098765C.5678901234D.987651234

15.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數是()。

A.scanfB.getcharC.getsD.getc

16.以下敘述中錯誤的是______。A.C程序中的#include和#define行均不是C語句

B.除逗號運算符外,賦值運算符的優(yōu)先級最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%號是算術運算符,司用于整型和實型數的運算

17.排序的算法很多,若排序的穩(wěn)定性和不穩(wěn)定性分類,則()是不穩(wěn)定排序。

A.冒泡排序B.歸并排序C.直接插入排序D.希爾排序

18.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234

19.在計算機中,算法是指()

A.加工方法B.解題方案的準確而完整的描述C.排序方法D.查詢方法

20.以下程序的輸出結果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020

二、2.填空題(20題)21.關系模型的數據操作即是建立在關系上的數據操作,一般有【】、增加、刪除和修改四種操作。

22.以下程序通過函數指針p調用函數fun,請在填空欄內寫出定義變量p的語句。

voidfun(int*x,int*y)

{……}

main()

{inta=10,b=20;

【】:

p=fun;p(&a,&b);

……

}

23.按照邏輯結構分類,數據結構可分為線性結構和非線性結構,隊列屬于______。

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

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

while(--cp>&a[0])putchar(*cp);

}

25.數據結構分為線性結構和非線性結構,線性表、棧和隊列都屬于【】。

26.有以下程序#include<stdio.h>typedefstruct{intnum;doubles;}REC;voidfunl(REC*x){x->num=23;x->s=88.5;}voidmain(){RECa={16,90.0};fun1(&A);printf("%d\n",a.num);}程序運行后的輸出結果是()。

27.以下程序從終端讀入數據到數組中,統(tǒng)計其中正數的個數,并計算它們之和,請?zhí)羁铡?/p>

#include<stdio,h>

main()

inti,a[20],sum,count;

sum=count=0;

for(i=0;i<20;i++)scanf("%d",【】);

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

{if(a[i]>0)

{count++;

sum+=【】;

}

prinff("sum=%d,count=%d\n",sum,count);

}

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

29.下面程序的運行結果是()。#include<stdio.h>#defineSIZE12main(){chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+32;sub(s,5,SIZE-1);for(i=0;i<SIZE;i++)printf("%c",s[i]);printf("\n");}sub(char*a,intt1,intt2){charch;while(t1<t2){ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--;}}

30.以下程序的運行結果為【】。

#defineN5

main()

{inta[N]={1,2,3,4,5},i,temp;

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

{temp=a[i];

a[i]=a[N-i-1];

a[N-i-1)=temp;

}

printf("\n");

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

}

31.以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

請?zhí)羁铡?/p>

ginclude"math.h"

doublefun(doublex){return(x*x-2*x+6);}

main()

{doublex,y1,y2;

pfintf("Enterx:");scanf("%lf"&x);

y1=fun([10]);y2=fun([11]);

pin

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

#include<stdio.h>

main()

{inta=2,b=3,c=4;

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

Printf("%d",a);

}

33.按"先進后出"原則組織數據的數據結構是【】。

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

#include<stdio.h>

main()

{inta=10,b=3;

printf("%d,",a%B);

printf("%d,",(a-b,a+B));

printf("%dLn",a-b?a-b:a+B);

}

35.以下函數用來求出2個整數之和,并通過形參將結果傳回。

voidfunc(intx,inty,【】z)

{*z=x+y;}

36.下面程序的輸出是【】。

main()

{intarr[10],i,k=0;

for(i=0;i,10;i++)arr[i]=i;

for(i=1;i<4;i++)k+=arr[i]+i;

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

}

37.閱讀下面程序,則程序的執(zhí)行結果為【】。

#include"stdio.h"

main()

{inta=30,b=20,z;

z=fun(a+b,a-b);

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

fun(inta,intb)

{intz;

z=a/b;

returnz;}

38.在關系模型中,把數據看成一個二維表,每一個二維表稱為一個______。

39.在樹型結構中,根結點沒有【】結點,其余每個結點有且僅有【】個前驅結點;葉結點沒有后繼結點,其余每個結點的【】結點數不受限制。

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

main()

{inti,j,a[][3]={1,2,3,4,5,6,7,8,9);

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

for(j=i+1;j<3;j++)a[j][i]=0;

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

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

printf("\n");

}

}

三、1.選擇題(20題)41.當用戶要求輸入的字符串中含有空格時,應使用的輸入函數是()。

A.scanfB.getcharC.getsD.getc

42.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數值為9的表達式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

43.有以下程序:main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf("%",t[2-i][i]);}程序執(zhí)行后的輸出結果是()。

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

44.下面程序main(){intx=32;printf("%d\n",x=x<<1);}的輸出是______。

A.100B.160C.120D.64

45.有以下程序:#include<stdio.h>main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);程序運行后的輸出結果是()。

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

46.對下面的程序進行編譯與連接生成可執(zhí)行文件c.exe,并在DOS命令提示符下輸入:cIsaid"IloveChina"!程序代碼如下:main(intargc,char*argv[]){printf("%d",argC);}其輸出結果為______。

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

47.若a,b,c1,c2,x,y均是整型變量,正確的switch語句是______。

A.switch(a+b);{case1:y=a+b;break;case0:y=a-b;break;}

B.switch(a*a+b*b){case3;case1:y=a+b;break;case3:y=b-a;break;}

C.switcha{casec1:y=a-b;break;casec2;x=a*b;break;default:x=a+b;}

D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a-b;break;}

48.已有定義:.chara[]="xyz",b[]={'x','y','z');,以下敘述中正確的是

A.數組a和b的長度相同B.n數組長度小于b數組長度C.a數組長度大于b數組長度D.以述說法都不對

49.在關系數據庫中,用來表示實體之間聯(lián)系的是

A.樹結構B.網結構C.線性表D.二維表

50.模塊本身的內聚是模塊獨立性的重要性度量因素之一。在7類內聚中,具有最強內聚的一類是__________。

A.順序性內聚B.過程性內聚C.邏輯性內聚D.功能性內聚

51.要把數組元素中的最大值放入a[0]中,則在if語句中的條件表達式應該是______。main(){inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;for(i=0;i<10;i++,p++)if(______)*a=*p;printf("%d"t,*a);}

A.p>aB.*p>a[0]C.*p>*a[0]D.*p[0p*a[0]

52.執(zhí)行語句for(i=1;i++<4;);后變量i的值是______。

A.3B.4C.5D.不定

53.下列程序運行后,輸出結果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}

A.1234567B.7654321C.1711717D.7177171

54.以下定義語句中正確的是

A.inta=b=0;

B.charA=65+1,b=′b′;

C.floata=1,*b=&a,*c=&b;

D.doublea=0.0;b=1.1;

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

A.ifx++);

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

C.if(x>0)x--

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

56.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

57.以下程序的輸出結果是_______。main(){intx=-1,a=1:if(x+=A)printf("YES!\n");elseprintf("NO!\n");}

A.有語法錯,不能通過編譯B.通過編譯,但運行程序造成死機C.輸出YES!D.輸出N0!

58.假定當前盤符下有兩個如下文本文件:文件名a1.txta2.txt內容123#321#則下面程序段執(zhí)行后的結果為#include"stdio.h"voidfc(FILE*p){charc;while((c=fgetc(p))!='#')putchar(c);}main(){FILE*fp;fp=fopen("a1.txt","r");fc(fp);fclose(fp);fp=fopen("a2.txt","r");fc(fp);fclose(fp);putchar('\n');}

A.123321B.123C.321D.以上答案都不正確

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

B.數據行

C.數據塊

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

60.設有如下枚舉類型定義:enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};枚舉類型Fortran的值為()

A.4B.7C.102D.103

四、選擇題(20題)61.

62.(23)在深度為5的滿二叉樹中,葉子結點的個數為______。

A.32

B.31

C.16

D.15

63.某循環(huán)隊列的存儲空間為Q(4:m),初始狀態(tài)為front=lea/"=m?,F經過一系列的人隊操作和退隊操作后,front=m,r6ar=m一1,則該循環(huán)隊列中的元素個數為()。

A.m一1B.mC.1D.0

64.以下敘述中正確的是

A.C語言比其他語言高級

B.C語言可以不用編譯就能被計算機識別執(zhí)行

C.C語言以接近英語國家的自然語言和數學語言作為語言的表達形式

D.C語言出現得最晚,具有其他語言的一切優(yōu)點

65.

66.若有定義“inta=5,b=7;”,則表達式a%=(b%2)運算后,a的值為()。

A.0B.1C.11D.3

67.

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

main

{inta=6,b=3,C;

if(a<b)

{c=a*b;printf("%d%d,%d\n",b,a,c);)

else

{c=b/a;printf("%d,%d,%d\n",b,a,c);)

}

A.3,6,18B.3,6,2C.6,3,18D.6,3,2

68.下面敘述中錯誤的是()。

A.軟件測試的目的是發(fā)現錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debu9

D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

69.

70.有以下程序段以下關于程序段執(zhí)行情況的敘述,正確的是()。

A.當產生的隨機數n為0時,結束程序運行

B.當產生的隨機數n為4時,結束循環(huán)操作

C.當產生的隨機數n為l和2時,不做任何操作

D.細循環(huán)語句固定執(zhí)行8次

71.

72.

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

A.在C語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參

B.在C的函數中,最好使用全局變量

C.外部變量可以在函數之間傳遞數據

D.自動變量實質上是一個函數內部的局部變量

74.以下不合法的字符常量是

A.’x\018’B.’\"’C.’\\’D.’\xcc’

75.下列哪個屬性是用來定義內聯(lián)樣式的?()

A.fontB.classC.stylesD.style.

76.以下能正確定義二維數組的是()。

A.inta[][3];

B.inta[][3]={2*3);

C.inta[][3]={};

D.inta[2][3]一{{1),{2},{3,4}};

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

A.便于用戶,開發(fā)人員進行理解和交流

B.反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據

C.作為確認測試和驗收的依據

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

78.

79.若有定義語句:“intyear=2009,*p=&year;”,以下不能使變量year中的值增至2010的語句是()。

A.*p+=1;

B.(*p)++;

C.++(*p);

D.*++P

80.以下敘述中錯誤的是

A.C語言源程序經編譯后生成后綴為.obj的目標程序

B.C程序經過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件

C.用C語言編寫的程序稱為源程序,它以ASCII碼形式存放在一個文本文件中

D.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉換成二進制的機器指令

五、程序改錯題(1題)81.下列給定的程序中,函數proc()的功能是:將str所指字符串中出現的t1所指字符串全部替換成t2所指字符串,所形成的新的字符串放在w所指的數組中。在此處,要求t1和t2所指字符串的長度相同。例如,當str所指字符串中所指的內容為abcdabcdef9,t1所指字符串中的內容為bc,t2所指字符串中的內容為11時,結果在w所指的數組中的內容應為alldalldefg。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。請編寫函數fun,其功能是:除了字符串前導的。號之外,將串中其他*號全部刪除。在編寫函數時.不得使用C語言提供的字符串函數.

參考答案

1.C空函數是函數體沒有執(zhí)行語句的函數。選項A、D不是空函數;選項B是函數的聲明;只有選項C是空函數。故本題答案為C選項。

2.B

3.B

4.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當執(zhí)行p=alpha后,p指向指針數組alpha的首地址。for循環(huán)中輸出了4個字符串。

5.B

6.C

7.D解析:主要考查運算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。

8.C解析:結構化程序設計方法采用順序、選擇和循環(huán)三種基本程序控制結構編寫程序,從而使程序具有好的結構。

9.C本題考查了兩層for循環(huán)。外層循環(huán)增量i的值作為內層循環(huán)執(zhí)行次數的值使用。

10.Celse與離它最近的if構成if…else語句,而當a為2時,第一個if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項。

11.C子函數fun1(doublea)的功能是返回a的平方值的整數部分。子函數fun2(doublex,doubley)的功能是返回X的平方值的整數部分與Y的平方值的整數部分的和。又因為題中變量w的定義為double型,函數fun(2)的定義為int型,按照各類數值型數據間的混合運算,整型數據被轉換為實型數據。所以雙精度型變量w的值為5.0。

12.A解析:C語言的常量分為整型常量、實型常量和字符型常量。選項A屬于實型常量中的十進制小數形式的表示法,是合法的。

13.C本題中由循環(huán)條件可知遇到“0或x與y所指的字符的值不等中的一個條件時就結束,所以功能是統(tǒng)計x和y所指字符串中最前面連續(xù)相同的字符個數。

14.C解析:函數fun(int*s,intn1,intn2)的功能是對數組s中的元素進行首尾互相調換。所以在主函數中,當fun(a,0,3)執(zhí)行完后,數組a[12]={4,3,2,1,5.6,7,8,9,01;再執(zhí)行fun(a,4,9),數組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數組a[12]={5,6,7,8,9,0,1,2,3,4}。

15.C解析:C語言提供了許多輸入函數,其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數默認將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數可以輸入一整行作為一個字符串,其中也包括空格字符,故應該選擇C。

16.D解析:“%”是求余運算符,其兩側的數值只能為整型,所以它不能用于實型的運算,故選項D錯誤。

17.D

18.D

19.B在計算機中,算法被定義為對一個問題求解步驟的一種描述,是求解問題的方法,它是指令的有限序列,其中每條指令表示一個或者多個操作。算法具有有窮性、確定性、可行性、輸入和輸出五大特點。

在本題中,選項A、C、D的說法明顯偏離了算法的定義,因此正確答案選B。

20.B從題目中可知,\O、\t、\\分別為一個字符,而sizeof是求字節(jié)個數的函數,其中包括\O占的字節(jié),strlen函數是求數組長度的函數;其以\0結束,因此strlen的值為5,sizeof的值為20。

21.查詢查詢解析:關系模型的數據操作即是建立在關系上的數據操作,一般有查詢、增加、刪除和修改四種操作。數據查詢是指用戶可以查詢關系數據庫中的數據,它包括一個關系內的查詢以及多個關系間的查詢。數據刪除的基本單位是一個關系內的元組,它的功能是將指定關系內的指定元組刪除。數據增加僅對一個關系而言,在指定關系中插入一個或多個元組。數據修改是在一個關系中修改指定的元組和屬性。

22.void(*p)();void(*p)();解析:要定義p為指向函數的指針變量,需寫成void(*p)();,注意*p兩側的括弧不可以省略,表示P先與*結合,是指針變量,再與后面的()結合,表示此指針變量指向函數,這個函數無返回值(同fun()函數)。

23.線性結構線性結構解析:隊列有且只有一個根結點,而且每一個結點最多有一個前件,也最多有一個后件,滿足線性結構的條件,所以屬于線性結構。

24.GFEDCB。GFEDCB。解析:開始指針cp指向字符串結束標志,在循環(huán)中,cp依次向前移動,當打印出第二個字符后,cp指向第一個字符,循環(huán)判斷條件不滿足,退出循環(huán),因此,只打印出第一個字符以后的字符的逆序列。

25.線性結構線性結構解析:本題考查了數據結構的基本概念。與棧類似,隊列也是線性表,可以采用鏈式存儲結構,所以帶鏈的隊列屬于線性結構。

26.23

27.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應該填寫地址,由于是循環(huán)輸入,所以填&a[i]。依據題意第二處應該填寫a[i],以實現sum=sum+a[i]的求和。

28.99解析:本題要輸出的結果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。

29.abcdelkjihgfabcdelkjihgf解析:本題先給字符型數組s的12個元素賦值a到1的12個字母,函數sub(shar*a,intt1,intt2)的功能是將數組a的從第t1+1個元素到t2+1個元素進行逆置,在主函數中調用sub(s,5,SIZE-1)函數,是將數組s的第6個元素到第12個元素進行逆置,其他元素位置不變。

30.54321

31.用x+8代替函數fun(doublex)中形式參數x。用sin(x)代替函數fun(doublex)中形式參數x。

32.2828解析:a*=16+(b++)-(++c)等價于a=a*(16+(b++)-(++c)),b++的值為3,++c的值為5,這里要注意前綴++和后綴++的用法。

33.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數據的數據結構是棧;按'先進先出'原則組織數據的數據結構是隊列。

34.11371,13,7解析:本題考查3個知識點:①余數的計算,題中的a=10,b=3,a%b=1;②(表達式1,表達式2)形式的結果為最后—個表達式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13:③條件運算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結果為7。

35.int*

36.1212解析:本題首先通過第一個for語句把0~9(包含0和9)間的整數依次賦值給數組arr,第二個for語句用于實現將滿足條件的數組元素與對應的下標值求和并累加,并用變量k保存。

37.55解析:函數調用的時候,函數名字必須與所調用的函數名完全一致,形參與實參類型要一致,在沒有給出函數返回值類型的情況下,默認為整形,當返回值為整型的函數放到主函數后面時,可以不需要事先說明就調用這個函數。return既可以返回一個普通常量,也可以返回一個指針變量。

38.關系關系解析:關系模型用;維表表示,則每個;維表代表一種關系。

39.前驅一后繼前驅\r\n一\r\n后繼

40.123056009123\r\n056\r\n009解析:本題中,定義了一個元素類型為整型的二維數組a[][3]={1,2,3,4,5,6,7,8,9},它是一個3*3的矩陣,“for(i=0;i<3;i++)for(j=i=1;j<3;j++)a[j][i]=0;”將列下標i小于行下標j的元素a[1][0]、a[2][0]、a[2][1]賦值為0,最后“for(j=0;j<3;j++)printf('%n',a[i][j]);printf('\\n');”進行換行輸出,所以輸出結果為:

123

056

009

41.C解析:C語言提供了許多輸入函數,其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數默認將輸入的空格字符作為分割符,所以空格不會被輸入,故可排除scanf。getc的作用是從文件中輸入一個字符,故也不可取。gets函數可以輸入一整行作為一個字符串,其中也包括空格字符,故應該選擇C。

42.B解析:在C語言的數組元素的引用方法,我們在前面已經講過了,比如數組元素a[0],可以用表達式*(p+0),即*p來引用,對于數組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數組元素a[2],則可以用表達式。(p+2)來引用…,對于數組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數組的起始地址時,若0≤i<10,則數組元素a[i]可以用*(p+i)來表示。

43.B解析:定義二維數組時第一維的長度可以不指定,該程序中t[][3]通過賦初值等價于t[3][3],并且其數組按行進行賦值,故通過for循環(huán)輸出的分別是t[2][0]、t[1][1]和t[0][2]。

44.D解析:<<是C語言中規(guī)定的左移運算符,例如,a=a<<2,這個語句即是將a的二進制數左移兩位,左移一位相當于該數乘于2,左移兩位相當于該數乘以2的2次方。所以,x<<1=32*2=64。

45.D解析:&是按位“與”運算符,若參加運算的兩個運算量的相應位都為1,則該位的結果值為1,否則為0?!恰叭》础边\算符,用來對一個二進制數按位取反,即將0變1,1變0。對于x/y&~z,先計算x/y的值,結果為1,用十六進制表示為0001;z用十六進制表示為0001,則~z為FFFE;最后進行&運算,整個表達式的值為0。

46.B解析:帶參數的main()函數常用形式為:main(intargc,char*argv[])其中,參數的個數由C程序運行時自動計算出來。字符型指針數組argv的第一個元素存放命令名,其后各個元素依次存放命令行中各個參數的首地址:整型變量argc用來記錄命令行中的參數個數,文件名也作為一個參數,對于命令行中雙引號內的字符串,即使空格分開,也只算是一個參數,同時雙引號本身不算參數的內容,因此本題argc的值等于5。

47.D解析:由switch語句的格式排除A、C項,選項B中出現了兩個相同的case標號。

48.C解析:對字符型一維數組在定義時初始化,既可以使用初始化列表,也可以使用字符串常量。不過由于字符串常量會自動在結尾添加\'\\0\'字符做結束標志,所以用字符串常量的初始化列表項個數是字符串的長度加1。因此題目中的chara[]='xyz';等價于chara[]={\'x\',\'y\',\'z\',\'\\0\'};,所以a數組長度大于b數組長度,應該選C。

49.D解析:在關系模型中,把數據看成一個二維表,每一個二維表稱為一個關系。即關系模型是用表格數據來表示實體本身及其相互之間的聯(lián)系。本題的正確答案是D。

50.D解析:內聚性是一個模塊內部各元素間彼此結合的緊密程度的度量。內聚是從功能角度來度量模塊內的聯(lián)系。內聚共有7類,它們之㈨的內聚性由弱到強排列順序為:偶然內聚、邏輯內聚、時間內聚、過程內聚、通信內聚、順序內聚和功能內聚。

51.B解析:p是指向整型的指針,初始指向數組a的首地址,a[0]本來就表示數組a的第1個元素,不是表示地址,因此選項C、D中的*a[0]是錯誤的。選項A語法上沒有錯,但是不合乎題意,沒有比較數組元素和指針變量p當前指向單元的內容。

52.C解析:for語句中的表達式可以部分或全部省略,但兩個“;”不能省略,若3個表達式均省略,會因為缺少條件判斷,導致循環(huán)無限執(zhí)行,而形成死循環(huán)。本題中當i的值為5的時候,循環(huán)終止。

53.C

54.B解析:本題考查變量的定義方法。

55.C解析:選項A)和選項B)在條件判斷語句的后面是空語句,什么都不做;在選項D)中,if后面是一個復合空語句;而在選項C)中,在X--后面少了一個分號,所以程序段在編譯時,會出現語法錯誤。

56.D解析:在C語言中,字符串常量是以雙引號括起來的字符序列。故選項B和C不正確。字符序列中可包含一些轉義字符,轉義字符都是以“\\”開頭的。選項A中包含了三個“\\”,前兩個(\\\\)代表了一個“\\”字符,后面一個和“'”一起(\\”)被看作一個……,所以該字符串缺少一個結束的“'”,故不正確。選項D的兩個……之間沒有任何字符,代表的是一個空串,是合法的字符串常量,故應該選擇D。

57.D解析:if語句中條件表達式的值是賦值表達式x+=a的值,x+=a相當于x=x+a,值為0。

58.A解析:本題的功能是順序的讀兩個文本文件;依次輸出。當打開文件時出現錯誤,fopen函數將返回NULL。

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

60.C

61.C

62.C

63.A循環(huán)隊列長度為rl3,由初始狀態(tài)為鋤t=re“=m,可知此時循環(huán)隊列為空。入隊運算時,首先隊尾指針進1(即rear+1),然后在re”指針指向的位置插入新元素。特別的,當隊尾指針瑚r=nl+1時,置rear=1。退隊運算時,徘頭指針進1(即front+1),然后刪除f∞ont指針指向的位置上的元素,當排頭指針front=ITI+1時,置front=1。從排頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。如果l_efl.r—front>0,則隊列中的元素個數為rear—front個;如果reⅡ一front<0,則隊列中的元素個數為rear—front+m。該題中m一1<ITl,即/'ear—front<0,則該循環(huán)隊列中的元素個數為(m一1)一m+111=m一1。故選A選項。

64.C本題主要考查我們對C語言一些基礎知識的掌握情況。下面分別分析本題的四個選項。

對于選項A,C語言是一種高級語言,但還存在很多其他的高級語言,并不能說C語言就比其他高級語言更高級。

對于選項B,C語言并不是機器語言或匯編語言,它需要通過編譯程序對其進行編譯后才能被計算機識別執(zhí)行。

對于選項C,C語言以接近英語國家的自然語言和數學語言作為語言的表達形式的說法是正確的。

對于選項D,C語言并不是最晚出現的語言,而且C語言也不具備其他語言的一切優(yōu)點。C語言是一種面向過程的設計語言,它不具備面向對象的優(yōu)點。

65.B

66.A本題考查“%”運算符的使用。運算符“%”是整數除法的余數。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。

67.B

\n本題考查if…else語句。如果if條件成立,則執(zhí)行if下面的語句,不成立則執(zhí)行else,判斷條件,發(fā)現a<b不成立,則執(zhí)行else后面的語句,得c=b/a=2。

\n

68.A軟件測試的目的是為了發(fā)現錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,因此選項A)錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼以排除錯誤、進行回歸測試以防止引進新的錯誤。程序調試通常稱為Debu9,即排錯。軟件測試的基本準則包括:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試

溫馨提示

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

評論

0/150

提交評論