2021-2022年江西省新余市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁
2021-2022年江西省新余市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁
2021-2022年江西省新余市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁
2021-2022年江西省新余市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁
2021-2022年江西省新余市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021-2022年江西省新余市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

2.下列程序段的時(shí)間復(fù)雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)

3.下面哪些使用的不是貪心算法()

A.單源最短路徑中的Dijkstra算法

B.最小生成樹的Prim算法

C.最小生成樹的Kruskal算法

D.計(jì)算每對(duì)頂點(diǎn)最短路徑的Floyd-Warshall算法

4.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不確定C.voidD.float

5.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

6.以下說法錯(cuò)誤的是()。

A.C語言標(biāo)識(shí)符中可以有多個(gè)字母、數(shù)字和下劃線字符

B.C語言標(biāo)識(shí)符中下劃線字符可以出現(xiàn)在任意位置

C.C語言標(biāo)識(shí)符不能全部由數(shù)字組成

D.C語言標(biāo)識(shí)符必須以字母開頭

7.對(duì)線性表進(jìn)行折半查找時(shí),必須要求線性表()。

A.順序方式存儲(chǔ)B.鏈?zhǔn)椒绞酱鎯?chǔ)C.以順序方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列D.以鏈?zhǔn)椒绞酱鎯?chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列

8.sizeof(float)是()。A.一個(gè)雙精度型表達(dá)式B.一個(gè)整型表達(dá)式C.一種函數(shù)調(diào)用D.一個(gè)不合法的表達(dá)式

9.一個(gè)模塊直接調(diào)用的下層模塊的數(shù)目稱為模塊的()。

A.扇入數(shù)B.扇出數(shù)C.寬度D.作用域

10.

11.在以下一組運(yùn)算中,優(yōu)先級(jí)最高的運(yùn)算符是()

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

12.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是()。

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

13.C程序是由()構(gòu)成的。

A.主程序與子程序B.主函數(shù)與子函數(shù)C.一個(gè)主函數(shù)與若干個(gè)其他函數(shù)D.主函數(shù)與子程序

14.在軟件開發(fā)過程中,軟件結(jié)構(gòu)設(shè)計(jì)是描述______。

A.數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)B.軟件體系結(jié)構(gòu)C.軟件結(jié)構(gòu)測(cè)試D.軟件控制過程

15.有以下程序(說明:字母A的ASCIl碼值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.BYB.BTC.YTD.YE

16.以下有關(guān)宏替換的敘述不正確的是()。A.A.使用宏定義可以嵌套

B.宏定義語句不進(jìn)行語法檢查

C.雙引號(hào)中出現(xiàn)的宏名不替換

D.宏名必須用大寫字母表示

17.

18.下列程序的輸出結(jié)果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8

19.以下關(guān)于C語言的敘述中正確的是()。

A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間

B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義

C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致

D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

20.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o影響的是()

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

二、2.填空題(20題)21.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長(zhǎng)時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。

請(qǐng)?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*a、b、c能構(gòu)成三角形*/

elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/

}

22.類是一個(gè)支持集成的抽象數(shù)據(jù)類型,而對(duì)象是類的【】。

23.下面程序的運(yùn)行結(jié)果是()。

#defineEXCH(a,B){intt;t=a;a=b;b=t;}

main()

{intx=1,y=2;

EXCH(x,y);

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

}

24.注釋一般分為序言性注釋和______注釋。

25.模塊測(cè)試時(shí),要為每個(gè)被測(cè)試的模塊另外設(shè)計(jì)兩類模塊:驅(qū)動(dòng)模塊和承接模塊(樁模塊)。其中______的作用是將測(cè)試數(shù)據(jù)傳送給被測(cè)試的模塊,并顯示被測(cè)試模塊所產(chǎn)生的結(jié)果。

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

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

b=&a;

27.設(shè)有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。

28.以下程序運(yùn)行后輸出的結(jié)果是【】。

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{

case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

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

}

29.下列程序的輸出結(jié)果是______。

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

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

}

30.在面向?qū)ο蠓椒ㄖ?,允許作用于某個(gè)對(duì)象上的操作稱為【】。

31.下面程序的輸出是()。

main()

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

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

arr[i]=i;

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

k+=arr[i]+i;

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

}

32.成本估算模型中,Putnam估算模型是一種【】模型。

33.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

34.函數(shù)fun的功能是使一個(gè)字符串按逆序存放。請(qǐng)?zhí)羁铡?/p>

voidfun(charstr[])

{charm;inti,j;

for(i=0,j=strlen(str);i<【】;i++,j--)

{m=str[i];

str[i]=【】;

str[j-1]=m;

}

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

}

35.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】

36.一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,則實(shí)體“宿舍”與實(shí)體“學(xué)生”的聯(lián)系屬于()的聯(lián)系。

37.下述函數(shù)統(tǒng)計(jì)—個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

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

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

}

return【】;}

38.以下主程序運(yùn)行后的輸出結(jié)果是【】。

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);

}

39.計(jì)算機(jī)中網(wǎng)絡(luò)通信協(xié)議IP是【】。

40.在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為【】。

三、1.選擇題(20題)41.以下敘述中錯(cuò)誤的是()。

A.C語言程序中的#include和#define行均不是C語句

B.除逗號(hào)運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級(jí)最低

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

D.C語言程序中,+、-、*、/、%號(hào)是算術(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算

42.單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為______。

A.外模式B.概念模式C.內(nèi)模式D.存儲(chǔ)模式

43.在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7

44.在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

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

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不對(duì)

45.函數(shù)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;}

A.字符串a(chǎn)的長(zhǎng)度B.字符串b的長(zhǎng)度C.字符串a(chǎn)和b的長(zhǎng)度之差D.字符串a(chǎn)和b的長(zhǎng)度之和

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

A.chara='A'b='B';

B.floata=b=10.0;

C.inta=10,*b=&a;

D.float*a,b=&a;

47.有以下程序:#include<stdio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運(yùn)行后的輸出結(jié)果是()。

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

48.已有定義inta=3;和輸出語句printf("%8x",A);以下正確的敘述是()。

A.整型變量的輸出格式符只有%d一種

B.%x是格式符的一種,它可以適用于任何一種類犁的數(shù)據(jù)

C.%x是格式符的一種,其變量的值按十六進(jìn)制數(shù)輸出,但%08x是錯(cuò)誤的

D.%8x是正確的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

49.有程序段:intal,a2;Charcl,c2;scanf("%d%c%d%c",&a1,&cl,&a2,&c2);若要求a1、a2、c1、c2的值分別為10、20、A、B,正確的數(shù)據(jù)輸入()

A.10A20B<CR>B.10A20B<CR>C.10A20B<CR>D.10A20B<CR>

50.下列敘述中正確的是()。A.用E-R圖能夠表示實(shí)體集之間一對(duì)一的聯(lián)系、一對(duì)多的聯(lián)系、多對(duì)多的聯(lián)系

B.用E-R圖只能表示實(shí)體集之間一對(duì)一的聯(lián)系

C.用E-R圖只能表示實(shí)體集之間一對(duì)多的聯(lián)系

D.用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型

51.有以下定義語句

doublea,b;intw;longc;

若各變量已正確賦值,則下列選項(xiàng)中正確的表達(dá)式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;

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

A.charstr[]={'\064'};

B.charstr="kx43";

C.charstr=";

D.charstr[]="\0";

53.以下數(shù)組定義中不正確的是_______。

A.inta[2][3];

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

C.intc[100][100={0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

54.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}

A.64B.8C.56D.0

55.下列語句中,不正確的是______。

A.staticchara[]={"Jack"};

B.staticchara[]="Jack";

C.printf("%s",a[0]);

D.scanf("%s",a);

56.若有以下定義,則對(duì)a數(shù)組元素的正確引用是()。inta[5],*p=a;

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

57.有以下程序:main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序運(yùn)行后的輸出結(jié)果是()。

A.44B.33C.34D.43

58.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

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

59.以下數(shù)組定義中錯(cuò)誤的是()。

A.intx[][3]={0};

B.intx[2][3]={{1,2},{3,4},{5,6}};

C.intx[][3]={{1,2,3},{4,5,6}};

D.intx[2][3]=(1,2,3,4,5,6};

60.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚

四、選擇題(20題)61.假定X和Y為double型,則表達(dá)式x=2,y=x+3/2的值是()。

A.3.500000B.3C.2.000000D.3.000000

62.有以下程序

63.有以下程序則以下函數(shù)調(diào)用語句錯(cuò)誤的是()。

A.k=*f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=f(a,b);

64.若有定義“intb[8],*p=b;”,則p+6表示()。

A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6

65.有三個(gè)關(guān)系R、s和T如下:

由關(guān)系R和s通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。

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

66.

67.閱讀下列程序,則運(yùn)行結(jié)果為()。

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

68.若有定義語句:“intx=10;”,則表達(dá)式x-=x+x的值為()。

A.-20B.-l0C.0D.10

69.對(duì)于算法的每一步,指令必須是可執(zhí)行的。算法的()要求算法在有限步驟之后能夠達(dá)到預(yù)期的目的。

A.可行性B.有窮性C.正確性D.確定性

70.有以下程序#includemain{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。A.741B.963C.852D.875421

71.

72.

73.

74.數(shù)據(jù)庫系統(tǒng)的核心是()。

A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫應(yīng)用系統(tǒng)

75.

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

A.預(yù)處理命令行必須位于C源程序的起始位置

B.在C語言中,預(yù)處理命令行都以“#”開頭

C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include<stdio.h>

D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能

76.

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

#include<stdio.h>

voidp(int*x)

{printf("%d¨,++*x);

}

voidmain()

{inty=3;

p(&y);

}

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

77.

有以下程序

#include<stdio.h>

intfun(chars[])

{intn=0;

while(*s<=9&&*s>=0){n=10*n+*s-o;s++;)

return(n);

}

main

{chars[10]={6,1,*,4,*,9,*,0,*);

printf("%d",fun(s));

}

程序運(yùn)行的結(jié)果是()。

A.9B.61490C.61D.5

78.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。A.A.a=b=c;B.(a=c)C.(a=c)&&(b=c);D.(b=c);

79.有三個(gè)關(guān)系R、S和T如下:

則由關(guān)系R和s得到關(guān)系T的操作是()。

A.自然連接B.并C.交D.差

80.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開始依次取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個(gè)新數(shù)存放在t中。高位仍在高位,低位仍在低位。

例如,當(dāng)s中的數(shù)為7654321時(shí),t中的數(shù)為7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。

注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!

#include<;stdi0.h>;

六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個(gè)數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符為l,則輸出3。

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

請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。

參考答案

1.C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。

2.C

3.D

4.A本題考查函數(shù)值的類型。在函數(shù)調(diào)用時(shí),盡管Y的類型是float.x的類型是double,但是因?yàn)楹瘮?shù)定義時(shí)沒有指定類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計(jì)算后Y的類型是int型。

5.A程序定義結(jié)構(gòu)體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對(duì)它初始化,調(diào)用函數(shù)f。將局部變量c的各個(gè)成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時(shí)a、b的各個(gè)成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項(xiàng)。

6.DC語言的合法的標(biāo)識(shí)符的命名規(guī)則是:標(biāo)識(shí)符可以由字母、數(shù)字和下劃線組成,并且第1個(gè)字符必須是字母或下劃線。選項(xiàng)D錯(cuò)誤。本題答案為D選項(xiàng)。

7.C

8.B該函數(shù)用于數(shù)據(jù)類型和變量。注意:sizeof操作符不能用于函數(shù)、不完全類型或位字段。不完全類型指具有未知存儲(chǔ)大小的數(shù)據(jù)類型,如未知存儲(chǔ)大小的數(shù)組類型、void類型等。

9.B扇入數(shù)是指調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)。扇出數(shù)是指由一個(gè)模塊直接調(diào)用的其他模塊數(shù),即一個(gè)模塊直接調(diào)用的下層模塊的數(shù)目。本題答案為B選項(xiàng)。

10.A

11.C

12.B解析:通過分析不難寫出,f()函數(shù)的數(shù)學(xué)表達(dá)式為:

f(n)=1n=l;

f(n)=f(-1)+1n≠1;

在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到j(luò)中,j的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j(luò)中,j的值為3。所以最后輸出,i的值為3。

13.B

14.B解析:從工程管理解度來看,軟件設(shè)計(jì)分兩步完成:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)(又稱結(jié)構(gòu)設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。

15.Dfun函數(shù)的意思是當(dāng)*s%2==0的時(shí)候就輸出并且s自加l次,然后判斷。所以可知只有第2和第4個(gè)位置上的才符合要求,所以答案為D。

16.D解析:本題考查宏替換的規(guī)則。宏替換有兩類:簡(jiǎn)單的字符替換和帶參數(shù)的宏替換。使用宏應(yīng)注意:①宏定義僅僅是符號(hào)替換,不是賦值語句,因此不做語法檢查:②為了區(qū)別程序中其他的標(biāo)示符,宏名的定義通常用大寫字母,但不是必須用大寫;③雙引號(hào)中出現(xiàn)的宏名不替換;④使用宏定義可以嵌套,即后定義的宏中可以使用先定義的宏。

17.D

18.A本題考查switch語句。當(dāng)i=1時(shí),執(zhí)行case1,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,a=a+2=2,a=a+3=5;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,a=a+2=7,a=a+3=10;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆]有遇到break語句,所以依次往下運(yùn)行,a=a+2=13,a=a+3=16;當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。

19.B解析:C語言中注釋可以放在任何位置,選項(xiàng)A錯(cuò)誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項(xiàng)B正確;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項(xiàng)C錯(cuò)誤;C語言數(shù)值常量中不允許存在空格,選項(xiàng)D錯(cuò)誤。

20.A

21.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達(dá)式中,如果要同時(shí)滿足幾個(gè)條件可以使用邏輯與運(yùn)算符“&&”,故本題的答案應(yīng)該為:a+b>c&&a+c>b&&b+c>a或其他等價(jià)形式。

22.實(shí)例將屬性、操作相似的對(duì)象歸為類,也就是說,類是具有共同屬性、共同方法的對(duì)象的集合。所以,類是對(duì)象的抽象,對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例。

23.x=2y=1

24.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,

25.在進(jìn)行單元測(cè)試時(shí),要用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其他模塊,即為被測(cè)模塊設(shè)計(jì)和搭建驅(qū)動(dòng)模塊和樁模塊。其中,驅(qū)動(dòng)模塊相當(dāng)于被測(cè)模塊的主程序,它接收測(cè)試數(shù)據(jù),并傳給被測(cè)模塊,輸出實(shí)際測(cè)試結(jié)果;而樁模塊是模擬其他被調(diào)用模塊,不必將子模塊的所有功能帶入。\r\n\r\n

26.52

27.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過程為:k=B*20=(A+3)*20=(2+3)*20=100。

28.2121解析:外層switch語句后面括號(hào)里的x的值為1,所以執(zhí)行從casel:后面的語句開始執(zhí)行,而cascl:后面語句也為switch語句,這個(gè)switch語句后面括號(hào)里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行casel:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變?yōu)?。所以最后輸出的a和b的值為21。

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

30.方法方法解析:在面向?qū)ο蠓椒ㄖ校椒ㄊ侵冈试S作用于某個(gè)對(duì)象上的各種操作。

31.20

32.動(dòng)態(tài)多變量動(dòng)態(tài)多變量

33.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。

34.strlen(str)/2str[j-1]

35.判定樹、判定表判定樹、判定表

36.一對(duì)多一對(duì)多解析:在現(xiàn)實(shí)世界中事物間的關(guān)聯(lián)稱為聯(lián)系。在概念世界中聯(lián)系反映了實(shí)體集間的一定關(guān)系。兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,分別是一對(duì)一,一對(duì)多和多對(duì)多,依據(jù)題意,一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,所以實(shí)體“宿舍”與實(shí)體“學(xué)生”的聯(lián)系屬于一對(duì)多的聯(lián)系。

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

38.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。

39.網(wǎng)際協(xié)議網(wǎng)際協(xié)議

40.數(shù)據(jù)字典數(shù)據(jù)字典解析:在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為數(shù)據(jù)字典。

41.D解析:在C程序中,以#開頭的行都稱為“編譯預(yù)處理”行,它不是C語言本身的組成成分,不能對(duì)它們進(jìn)行直接編譯;在運(yùn)算符優(yōu)先級(jí)表中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低,賦值運(yùn)算符其次;自加運(yùn)算表達(dá)式j(luò)++等價(jià)于賦值語句j=j+1;求余運(yùn)算符%僅用于整型變量。故選項(xiàng)D錯(cuò)誤。

42.A解析:選項(xiàng)A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項(xiàng)B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項(xiàng)C)不正確,物理存儲(chǔ)數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲(chǔ)方面的描述;選項(xiàng)D)不正確,存儲(chǔ)模式即為內(nèi)模式。

43.B解析:在長(zhǎng)度為64的有序線性表中,其中的64個(gè)數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。因此,在長(zhǎng)度為64的有序線性表十進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項(xiàng)B。

44.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。

45.D解析:第一個(gè)while循環(huán)是字符串a(chǎn)的長(zhǎng)度,第二個(gè)while是將字符串b接在a的后面,num在a串長(zhǎng)度上繼續(xù)累計(jì),為兩個(gè)字符串長(zhǎng)度之和。

46.C解析:選項(xiàng)A中定義兩個(gè)變量a和b,并賦初值,C語言中可以同時(shí)定義多個(gè)變量,但變量之間必須用“,”隔開,顯然,選項(xiàng)A中少了一個(gè)逗號(hào)“,”,故選項(xiàng)A不正確;選項(xiàng)B中定義變量時(shí)用了連續(xù)的賦值語句,這在定義變量是不正確的,故選項(xiàng)B不正確,選項(xiàng)D定義一個(gè)指針,然后定義了一個(gè)變量并讓這個(gè)變量的初值為該指針變量,顯然這這時(shí)的指針變量還沒初始化就被賦值給變量,是不對(duì)的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

47.A解析:本題考查帶參數(shù)的宏定義,參數(shù)只是簡(jiǎn)單的替換而不是求出其值后再替換形式參數(shù)。本題中用a++替換X,用b++替換Y,再求(a++)*(b++)的值,即3*4的值,其結(jié)果為12。

48.D解析:本題考查printf函數(shù)的格式?!?8x”表示以十六進(jìn)制無符號(hào)形式輸出整掣數(shù)據(jù)。“8”表示指定輸出數(shù)據(jù)的寬度為8位。

49.A

50.A解析:用E-R圖可以簡(jiǎn)單明了地描述實(shí)體及其相互之間的聯(lián)系,用E-R圖還可以方便地描述多個(gè)實(shí)體集之間的聯(lián)系和一個(gè)實(shí)體集內(nèi)部實(shí)體之間的聯(lián)系。因此,選項(xiàng)A中的說法是正確的,而選項(xiàng)B與C中的說法都是錯(cuò)誤的。

為了建立用戶所要求的數(shù)據(jù)庫.必須把概念結(jié)構(gòu)(用E-R圖表示的概念數(shù)據(jù)模型)轉(zhuǎn)換為某個(gè)具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型,這就是邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。

在已給定數(shù)據(jù)庫管理系統(tǒng)的情況下,數(shù)據(jù)庫的邏輯設(shè)計(jì)可以分兩步來進(jìn)行:

①將概念模型轉(zhuǎn)換成一般的數(shù)據(jù)模型;

②將一般的數(shù)據(jù)模型轉(zhuǎn)換為特定的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型。

由此可知,用E-R圖表示的概念數(shù)據(jù)模型不僅能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型,還可以轉(zhuǎn)換為其他數(shù)據(jù)模型,如網(wǎng)狀模型和層次模型等。因此,選項(xiàng)D中的說法也是錯(cuò)誤的。

51.C解析:選項(xiàng)A不是合法的賦值語句,將最右邊的第一個(gè)賦值表達(dá)式加括號(hào)即為a=a+(b=b++)才正確,故選項(xiàng)A不正確。選項(xiàng)B中運(yùn)算符%的對(duì)象必須是整型,而在選項(xiàng)B中(int)a+b為double型,故選項(xiàng)B不正確。a,b都為double型,應(yīng)當(dāng)避免使用a==b這樣的關(guān)系表達(dá)式,因?yàn)橥ǔ4娣旁趦?nèi)存中的實(shí)型數(shù)據(jù)是有誤差的,因此不可能精確相等,這將導(dǎo)致關(guān)系表達(dá)式a==b總為0。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

52.D解析:字符串必須以‘\\0’為結(jié)束符。

53.D解析:一維數(shù)組的定義方式為:

類型說明符數(shù)組名[常量表達(dá)式];

選項(xiàng)A符合此定義形式,正確;C語言中多維數(shù)組賦初值時(shí)可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對(duì)全部數(shù)組元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯(cuò)誤的。

54.C解析:如果沒有指明函數(shù)值類型,則默認(rèn)函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。

55.C解析:當(dāng)用%s格式符輸出字符串時(shí),printf中的輸出項(xiàng)是字符數(shù)組名,不是數(shù)組元素名。

56.D本題考查通過指針引用數(shù)組元素。選項(xiàng)A)、B),沒有這種引用形式;選項(xiàng)c),*(p5)是引用數(shù)組的第6個(gè)元素,而數(shù)組一共有5個(gè)元素,出現(xiàn)越界;選項(xiàng)D),*(a2)引用數(shù)組的第3個(gè)元素。

57.C解析:字符數(shù)組即可以用{初始化列表}來初始化,也可以用一個(gè)字符串常量來初始化。但字符串常量系統(tǒng)會(huì)自動(dòng)為其添加結(jié)束標(biāo)記'\\0',故比實(shí)際長(zhǎng)度要多一位,所以本題輸出為34,應(yīng)該選擇C。

58.A解析:該題考查的是遞歸函數(shù)的調(diào)用,題中讀fun函數(shù)進(jìn)行了遞歸調(diào)用,第1次調(diào)用:fun(3)n=3s=3-fun(2);第二次調(diào)用時(shí):fun(2)n=2s=2返回第一次調(diào)用后,s=3-2=1。

59.B解析:選項(xiàng)B的第1維長(zhǎng)度為2,而初始化列表外花括號(hào)中包含了3個(gè)內(nèi)花括號(hào),所以該選項(xiàng)的定義錯(cuò)誤,故應(yīng)該選擇B。

60.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個(gè)說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會(huì)破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。

61.D本題考查C語言中變量類型的轉(zhuǎn)換。

C語言中若參與運(yùn)算的變量的數(shù)據(jù)類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換數(shù)據(jù)始終往長(zhǎng)度增加的方向進(jìn)行,以確保精確度,如int和long運(yùn)算,則將int轉(zhuǎn)換為long再運(yùn)算,所有的浮點(diǎn)運(yùn)算都是以雙精度(double)進(jìn)行的。

題目中x、y都為double型數(shù)據(jù),而表達(dá)式3/2為兩個(gè)整型變量之間的計(jì)算,計(jì)算結(jié)果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結(jié)果為1。后面變?yōu)橛?jì)算y=x+1,這時(shí)都需要變?yōu)閐oubl

溫馨提示

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

評(píng)論

0/150

提交評(píng)論