2021年河南省鄭州市全國計算機等級考試C語言程序設計真題(含答案)_第1頁
2021年河南省鄭州市全國計算機等級考試C語言程序設計真題(含答案)_第2頁
2021年河南省鄭州市全國計算機等級考試C語言程序設計真題(含答案)_第3頁
2021年河南省鄭州市全國計算機等級考試C語言程序設計真題(含答案)_第4頁
2021年河南省鄭州市全國計算機等級考試C語言程序設計真題(含答案)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年河南省鄭州市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.有一個100×90的稀疏矩陣,非0元素有10,設每個整型數(shù)占2個字節(jié),則用三元組表示該矩陣時,所需的字節(jié)數(shù)是()。

A.20B.66C.18000D.33

3.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};

B.floata[3][]={{1},{2},{3}};

C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};

D.doublea[][3]={O);

4.C語言可執(zhí)行程序的開始執(zhí)行點是()。

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

5.下面程序的輸出結果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}

A.1B.2C.7D.10

6.下述程序的運行結果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正數(shù)B.負數(shù)C.零D.不確定的值

7.

8.

9.若已知一個棧的進棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。

A.IB.n-iC.n-i+1D.不確定

10.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關系

11.

12.以下敘述中正確的是()。

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號"{"和"}"只能作為函數(shù)體的定界符

C.構成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號是C語句之間的分隔符,不是語句的一部分

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

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

14.下列敘述中正確的是______。

A.線性表是線性結構B.棧與隊列是非線性結構C.線性列表是非線性性結構D.二叉樹是線性結構

15.允許對隊列進行的操作有()。

A.對隊列中的元素排序B.取出最近進隊的元素C.在隊頭元素之前插入元素D.刪除隊頭元素

16.以下敘述正確的是

A.continue語句的作用是結束整個循環(huán)的執(zhí)行

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

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

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

17.

18.以下敘述中正確的是()。

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

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

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

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

19.以下敘述中錯誤的是()。

A.函數(shù)的返回值類型不能是結構體類型,只能是簡單類型

B.函數(shù)可以返回指向結構體變量的指針

C.可以通過指向結構體變量的指針訪問所指結構體變量的任何成員

D.只要類型相同,結構體變量之間可以整體賦值

20.棧和隊列的共同點是()。

A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點

二、2.填空題(20題)21.請在以下程序第一行的下劃線處填寫適當內容,使程序能正常運行。

#include<stdio.h>

【】(double,double);

main()

{doublex,y;

scanf("%If%If",&x,&y);

printf("%If\n",max(x,y));

}

doublemax(doublea,doubleb)

{return(a>b?a:b);}

22.以下程序輸出的最后一個值是【】

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<=5;i++)printf("%d\n",ff(i));

}

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

voidfun(intx,int*y)

{……}

main()

{inta=10,b=20;

【】;/*定義變量p*/

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

}

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

#include<stdio.h>

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++)

printf("%d%d",X--,y);

}

25.軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。

26.軟件工程研究的內容主要包括:【】技術和軟件工程管理。

27.以下程序的輸出結果是#include<stdio.h>structstiintx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&it[0],60,&dt[0],};main(){p=aa;printf("%d\n",++(p->x));}

28.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。

29.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當s等于t時返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時返回正值,當s<t時返回負值。請?zhí)羁铡?/p>

my_cmp(char*s,char*t)

{while(*s==*t)

{if(*s=='\0')return0;

++s;++t;

}return【】;

}

30.若有如下程序:

main()

{inta[][2]={1,2,6,9,11},(*t)[2];

t=a;

printf("%d,%d\n",*(t[1]+1),(*t)[1]);

}

則程序運行后輸出的結果是【】。

31.以下程序的輸出結果是()。

#inciude<stdio.h>

main()

{chars[]="ABCabc";

s[5]='\0';

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

}

32.

doublefun(intn)

{doubles=0.0,fac=1.0;inti;

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

{fac=fac【】;

s=s+fac;

}

returns;

}

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

main()

charc;intn=100;

floatf=10;doublex;

x=f*=n/=(c=50);

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

34.若采用直接插入法對字母序列(W,S,E,L,X,G,I)進行排序,使字母按升序排列,那么第一次排序的結果為【】。

35.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>

#include<stdioh>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

for(i;0;i<9;i++)

{if(i%4==0)primf("\n");

printf("%3d",b[i];

}

}

36.注釋說明了程序的功能,它分為【】注釋和功能性注釋。

37.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

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

main()

{inti,j,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},b[4][3];

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

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

b[j][i]=a[i][j];

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

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

printf("%-3d",b[i][j]);

printf("\n");

}

}

39.數(shù)據(jù)結構分為邏輯結構與存儲結構,線性鏈表屬于【】。

40.若a是血型變量,則表達式(a=2*3,a*2),a+6的值為______。

三、1.選擇題(20題)41.以下程序的輸出結果是typedefunion{longx[2]inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}

A.32B.16C.8D.24

42.以下程序的輸出結果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

A.11B.12C.13D.15

43.main(){floatx=123.456;printf("%-5.2f\n",x);}以上程序輸出的結果是______。

A.123.4B.123.5C.123.45D.123.46

44.在C語言中,以下一組運算符中,優(yōu)先級最高的運算符是______。

A.<=B.=C.%D.&&

45.有下列程序:main(){intt,a=1,b=5,c=-2;while(a>b>c){t=a;a=b;b=t;c++;}printf("%d,%d,%d",a,b,c);}

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

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

A.在模塊化程序設計中,一個模塊應盡量多的包括與其他模塊聯(lián)系的信息

B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的每一個細節(jié)

C.在模塊化程序設計中,一個模塊內部的控制結構也要符合結構化原則

D.在程序設計過程中,不能同時采用結構化程序設計方法與模塊化程序設計方法

47.設p1和p2是指向一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是

A.k=*p1+*p2B.p2=k;C.p1=p2;D.k=*p1*(*p2);

48.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結果是______。

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

49.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱為______。

A.希爾排序B.冒泡排序C.插入排序D.選擇排序

50.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。

A.耦合性B.內聚性C.復雜性D.數(shù)據(jù)傳輸特性

51.以下能正確進行字符串賦值操作的是______。

A.char*sss;*sss="hello!";

B.char*sss;sss="hello!";

C.charsss[8];sss="hello!";

D.charsss[8];*sss="hello!";

52.已知字母A的ASCII碼為十進制數(shù)65,下面程序的輸出結果是()main(){charch1,ch2;ch1=A+5-3;ch2=A+6-3;printf("%d,%c\n",ch1,ch2);}

A.67,DB.B,CC.C,DD.不正確定的值

53.下列敘述中正確的是()。A.一個邏輯數(shù)據(jù)結構只能有一種存儲結構

B.邏輯結構屬于線性結構,存儲結構屬于非線性結構

C.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構不影響數(shù)據(jù)處理的效率

D.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存儲結構影響數(shù)據(jù)處理的效率

54.有以下程序main(){unsignedchara,b,c;a=0x3;b=a|0x8;c=b<<1;printf("~%d%d\n",b,C);}程序運行后的輸出結果是

A.-1112B.-19C.1224D.1122

55.有以下程序:voidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(A);for(i=0;i<5;i++)printf("%d,",a[i]);}程序運行后的輸出結果是()。

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

56.在C語言程序中,下列說法正確的是()。

A.函數(shù)的定義和函數(shù)的調用均可以嵌套

B.函數(shù)的定義不可以嵌套,但函數(shù)的調用可以嵌套

C.函數(shù)的定義可以嵌套,但函數(shù)的調用不可以嵌套

D.函數(shù)的定義和函數(shù)的調用均不可以嵌套

57.有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf(%c%c\n,c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結果是()。

A.1267B.1256C.1278D.1245

58.下列敘述中正確的是_______。

A.數(shù)據(jù)處理是將信息轉化為數(shù)據(jù)的過程

B.數(shù)據(jù)庫設計是指設計數(shù)據(jù)庫管理系統(tǒng)

C.如果一個關系中的屬性或屬性組并非該關系的關鍵字,但它是另一個關系的關鍵字,則稱其為本關系的外關鍵字

D.關系中的每列稱為元組,一個元組就是一個字段

59.有如下程序段

inta=14,b=15,x;

charc=′A′;

x=(a&&b)&&(c<′B′);

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

A.trueB.falseC.0D.1

60.有以下程序:main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}程序運行后的輸出結果是

A.3B.6C.9D.2

四、選擇題(20題)61.在一個C源程序文件中所定義的全局變量,其作用域為()。

A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

62.

63.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

64.利用fseek函數(shù)可實現(xiàn)的操作是()。

A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確

65.

66.

67.若有定義語句:“inta=10;doubleb=3.14;”,則表達式A+a+b值的類型是()。

A.charB.intC.doubleD.float

68.

69.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。

70.若有定義語句:inta[3][6];,按在內存中的存放順序,a數(shù)組的第10個元素是()。

A.a[o][4]B.a[1][3]C.a[o][3]D.a[1][4]

71.

有以下程序:

main

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i<j;i++)

if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結果是()。

A.11B.10C.9D.1011

72.

73.定義結構體數(shù)組:structstu{intnum;charnameE20];}X[5]={1,"LI",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.112A3H4IC.1A2N3A4UD.2H3A4H5I

74.有以下程序:main(){unsignedinta;intb=-1;a=b;printf("%u",a);}程序運行后的輸出結果是()。

A.-1B.65535C.32767D.-32768

75.

76.以下只有在使用時才為該類型變量分配內存的存儲類型說明是()。

A.auto和static

B.auto和register

C.register和static

D.extern和register

77.有以下程序

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

A.6B.9C.11D.7

78.在HTML文檔中,應該在下列哪個部分引用外部樣式表?()A.A.文檔的末尾

B.<title>部分

C.<body>部分

D.<head>部分

79.下列選項中,能正確定義數(shù)組的語句是()。

A.

B.

C.

D.

80.

五、程序改錯題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應輸出2.928968。請修改程序中的錯誤,使它能計算出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將a、b兩個兩位正整數(shù)合并成一個新的整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個位數(shù)依次放在變量c的百位和個位上,b中的十位數(shù)和個位數(shù)依次放在變量c的千位和十位上。例如,當a=45,b=12,調用該函數(shù)后c=1425。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

參考答案

1.D

2.B

3.D本題考查的是如何對二維數(shù)組進行賦值。選項A)中數(shù)組第二維的大小是4,但卻給賦了5個元素;選項B)中C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式而不可以省略第二個方括號中的常量表達式:選項c)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項D)中在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。

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

5.B解析:本題考查函數(shù)的調用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數(shù)內有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。

6.A本題考查符符串比較函數(shù)和兩個字符串比較的原則這兩個知識點。

(1)兩字符串比較的原則是依次比較兩個字符串同一位置的一對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大(2)strcmp(s1,s2)的返回值,當str1<str2時,返回值為負數(shù);當str1=str2時,返回0;當str1>str2,返回值為正數(shù)。

7.A

8.A

9.C

10.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。

11.B

12.A解析:/*與*/之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進行嵌套,故選項A正確:在C語言中,函數(shù)體是從花括號{開始,到花括號}結束。但沒有規(guī)定花括號{和}只能作為函數(shù)體定界符,故選項B錯誤;選項C中前半句是正確的,C程序由一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù),比如主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號;結束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。

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

14.A解析:一般將數(shù)據(jù)結構分為兩大類型:線性結構與非線性結構。線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。

15.D

16.B解析:continue是結束本次循環(huán),直接進入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。

17.A

18.C解析:計算機語言分為低級語言和高級語言,C語言屬于高級語言,但并非比其他語言高級,選項A)錯誤;除了機器語言外,其他各種語言都必須編譯成能被計算機識別的機器代碼才能執(zhí)行,選項B)錯誤;C語言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語言,選項D)錯誤。

19.A函數(shù)返回值類型可以是簡單類型和結構體類型。

20.C解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種“后進先出”(或“先進后出”)的線性表;而隊列只允許在表的一端進行插入操作,在另一端:進行刪除操作,是一種“先進先出”(或“后進后出”)的線性表。因此棧和隊列的共同點是只允許在端點處插入和刪除元素。

21.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函數(shù)中調用了一個max函數(shù),而max函數(shù)是在調用之后定義的,所以要求填空的內容應該是對函數(shù)進行聲明的語句。由max函數(shù)的定義可知此函數(shù)是double型的,因此空格處應該填doublemax或externdoublemax。

22.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調用結束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)

④雖然靜態(tài)局部變量在函數(shù)調用結束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

23.void(*p)()或void(*p)(int*int*)void(*p)()或void(*p)(int*,int*)

24.101091101091解析:for(表達式1;表達式2;表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán);第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。

25.結構結構解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結構進行測試。

26.軟件開發(fā)

27.C

28.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

29.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應字符相等情況下循環(huán),直至不相等結束。相等時,若字符串已到了字符串的結束標記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準備比較下一對字符。對應字符不相同,循環(huán)結束。循環(huán)結束時,就以兩個當前字符的差返回。所以在空框處應填入*s-*t,保證在e>t時返回正值,當s<t時返回負值。

30.929,2解析:本題開始定義了一個int型二維數(shù)組a,并賦以5個初值,系統(tǒng)使數(shù)組的最高維為3,并讓a[0][0]=1,a[0][1]=2,a[1][0]=6,a[1][1]=9,a[2][0]=11,a[2][1]因為初值不夠而初始化為0。然后定義一個行指針t指向數(shù)組a的首地址,因為表達式t[1]表示指向元素a[1][0]的int型指針,t[1]+1表示指向a[1][1]的int型指針,故*(t[1]+1)返回的是a[1][1]的值9。而*t表示指向元素a[0][0]的int型指針,故(*t)[1]返回的是a[0][1]的值2。所以正確答案應該為9,2。

31.ABCabABCab解析:本題中字符數(shù)組的初值是“ABCabc”,s[5]='c',然后通過s[5]='\\0'重新給s[5]賦值,在C語言中'\\0'是字符串結束標志,執(zhí)行s[5]='\\0',其實是將s[5]的值去掉只保留前面的字符。

32./i或*1.O/i或*1或*(1.O/i)或/(double)i/i或*1.O/i或*1或*(1.O/i)或/(double)i解析:主函數(shù)中首先定義了兩個double型的變量s和fac,并給它們賦初值為0.0和1.0,在函數(shù)中s和fac的作用是存放和以及要加到的那一項的值。通過分析可知,第i項的值可以由第i-1項的值得到,即第i項是第i-1項的值除以i。可見橫線處應添/i或與它等價的表達式。

33.220.0或220或220.或220.000000220.0或220或220.或220.000000解析:所有的賦值運算符的優(yōu)先級都相同,它們的結合性為從右至左,它們返回的表達式值為賦給變量的值.所以,語句x=f*=n/=(c=50):→x=f*=n/=50;→x=f*=2;(n的值變成2)→x=20;。故最終輸出的結果應該是:220.000000

34.SWELXGI

35.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i]小即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

36.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。

37.概念概念

38.159261037114812159\r\n2610\r\n3711\r\n4812解析:程序的功能是將一個二維數(shù)組的行和列元素互換,存到另一個二維數(shù)組中。

39.存儲結構

40.1212解析:本題考查逗號表達式的運算規(guī)則。逗號表達式的基本格式為:“表達式1,表達式2,…”,其整個表達式的結果取最后一個子表達式的值。本題中首先計算逗號表達式中的第1個表達式a=2*3=6,然后計算第2個表達式a*2,這時整個表達式的值為12,但要注意,因為第2個表達式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達式a+6=12,所以整個表達式最后的值為12。

41.C解析:共用體所占存儲空間的大小是所有成員所占存儲單元的和;共用體變量所占存儲單元的大小是所有成員中占據(jù)存儲空間最大的成員所占存儲空間的大小。本題中字符數(shù)組成員z占8個字節(jié)的長度,長度最長,所以共用體變量them用sizeof計算長度為8。

42.B解析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進行置換,如果串中包含宏中的形參,則將程序語句中相應的實參代替形參。將實參帶入已經(jīng)定義的宏中,可以得出答案為“12”。

43.D解析:f格式符,用來輸出實數(shù),以小數(shù)形式式輸出?!?-m.nf”的含義是:輸出數(shù)據(jù)共占m列,其中n位小數(shù),如果輸出位數(shù)小于m,則右端補空恪。如果總長度大于列數(shù),則按實際情況四舍五入輸出。

44.C

45.A解析:本題考查while循環(huán)。先判斷while循環(huán)的控制表達式是否成立,發(fā)現(xiàn)a>b>c不成立,所以不執(zhí)行循環(huán)。直接輸出a、b、c的值。

46.C解析:在模塊化設計中,要求將一個大程序按人們能理解的大小規(guī)模進行分解,使每個模塊都能易于理解,各模塊的功能盡量單一,各模塊之間的聯(lián)系盡量的少。因此,選項A中的說法是錯誤的。自頂向下、逐步細化的設計過程,主要包括兩個方面:一是將一個復雜問題的解法分解和細化成由若干模塊組成的層次結構;二是將一個模塊的功能逐步分解細化為一系列的處理步驟,直到某種程序設計語言的語句或某種機器指令。即在自頂向下、逐步細化的設計過程中,是按照先全局后局部,先整體后細節(jié)、先抽象后具體的方法設計程序。因此.選項B中的說法也是錯誤的。\u3000在模塊化程序設計中.每一個模塊完成一個功能,相對獨立,要求一個模塊內部的控制結構也要符合結構化原則。因此,選項C中的說法是正確的。由于在模塊化程序設計中,一個模塊內部的控制結構也要符合結構化原則,因此,在程序設計過程中,結構化程序設計方法與模塊化程序設計方法是要同時采用的。因此,選項D中的說法是錯誤的。

47.B解析:本題主要考查了一維數(shù)組指針的賦值和用指針引用數(shù)組元素進行運算。選項B)中p2為指向int型變量的指針。而k為int型變量,不能將int型變量直接賦值給指向int型變量的指針,所以選項B)錯誤。

48.C解析:本題考查的是if...else語句的使用。x=2.0,符合第二個IF語句的條件x<10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。

49.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。

50.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個模塊之間接口的復雜度、調用方式以及哪些信息通過接口。

[知識拓展]模塊的獨立程序是評價設計好壞的一個重要標準,衡量軟件的模塊獨立性有兩個定性的度量標準。其中內聚性是指一個模塊內部各個元素間彼此結合的緊密程度的度最,內聚性是從功能角度來度量模塊內的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來度量模塊間的聯(lián)系。

51.B

52.A

53.DD)【解析】數(shù)據(jù)的存儲結構是指數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式,一種數(shù)據(jù)結構可以根據(jù)需要采用不同的存儲結構,常用的存儲結構有順序和鏈式結構。采用不同的存儲結構,其處理的效率是不同的。

54.D解析:本題考查的知識點是位的邏輯運算和位的移位運算。將a的值轉換為二進制位:00000011,再與0×8的;進制“00001000”位與,得到結果“00001011”賦值給b,b的值為11,再將b左移一位得到:00010110,賦值給c,c的值為22,所以最后輸出的b,c的值位11,22。所以4個選項中D正確。

55.B解析:題目中定義了一個指針變量作為函數(shù)f()的參數(shù)。主函數(shù)main()中調用f()函數(shù),當i=0時,執(zhí)行語句“(*q)++;”,此處*q就代表數(shù)組a[0]的地址,也即將q進行加1操作;當i=1時,q仍指向數(shù)組元素a[0]的地址,因為在函數(shù)f()中并未對指針變量q做任何變動,即*q仍代表數(shù)組元素a[0]的值,所以此次(*q)++即為2+1,a[0]的值變?yōu)?;直到i=4時,執(zhí)行(*q)++后a[0]的值變?yōu)?,最后輸出數(shù)組a的結果為6、2、3、4、5。

56.B解析:本題考查函數(shù)調用的基本概念。因為函數(shù)的結果是個未知量,而函數(shù)定義時不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調用可以嵌套。

57.D解析:在題目中,程序執(zhí)行到scanf()函數(shù)時,會暫停等待用戶輸入4個字符,按題意輸入123<回車>后,字符1~3被分別輸入到c1~c3中,而c4會得到一個換行符'\\n'。然后執(zhí)行第1個getchar()函數(shù),由于前面的scanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第1個字符'4'被讀入并賦給c5,第2個getchar()函數(shù)會讀入緩沖區(qū)第2個字符'5'。所以最后依次輸出c1、c2、c5、c6的值后,屏幕上的結果是1245。故應該選擇D。

58.C解析:數(shù)據(jù)處理是指將數(shù)據(jù)轉換成信息的過程,故選項A敘述錯誤:設計數(shù)據(jù)庫的目的實質上是設計出滿足實際應用需求的實際關系模型:關系中的行稱為元組,對應存儲文件中的記錄,關系中的列稱為屬性,對應存儲文件中的字段,故D選項敘述錯誤。

59.D解析:在C語言中,邏輯運算符有4個,它們分別是:!(邏輯非)、邏輯或)、&&(邏輯與)、^(異或)。在位運算里面還有&(位與)、|(位或)的運算。本題考查邏輯與運算符的用法,在表達式x=(a&&b)&&(c<'B');中,先判斷a&&b條件,邏輯與條件的兩邊都要保證為1,即a和b都成立,當然c<'B'是成立的,顯然,該表達式的值為1。

60.B解析:主函數(shù)中首先定義了一個3行3列的二維數(shù)組,定義了一個整型變量指向它,直接通過for循環(huán)給數(shù)組的每一個元素賦值,使得a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][l]=5、a[1][2]=6、a[2]10]=7、a[2][1]=8、a[2][2]=9。所以,4個選項中選項B符合題意。

61.A全局變量的作用域是從聲明處到文件的結束。所以選擇A)。

62.D

63.B用關鍵字typedef聲明一種新的類型的形式為typedef類型名標識符。本題中的類型為char*。

64.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。

65.A

66.D

67.C如果是字符數(shù)據(jù)和整數(shù)運算將先轉換成整型再進行運算,當整型和浮點數(shù)進行運算,為了提高精度將會轉化為雙精度類型然后進行運算,所以此題結構的數(shù)值類型為double類型。

68.C

69.AB選項中switch((int)x)

溫馨提示

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

評論

0/150

提交評論