2021-2022年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第1頁
2021-2022年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第2頁
2021-2022年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第3頁
2021-2022年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第4頁
2021-2022年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2021-2022年安徽省滁州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.

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

A.宏替換不占用程序的運(yùn)行時(shí)間

B.預(yù)處理命令行必須位于源文件的開頭

C.在源文件的一行上可以有多條預(yù)處理命令

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

3.有定義語句:“int*p[4];”,以下選項(xiàng)中與此語句等價(jià)的是()。

A.intp[4];B.int**P;C.int*(p[4]);D.int(*p)[4];

4.下列選項(xiàng)中,不能用作標(biāo)識符的是A._1234_B._1_2C.int_2_D.2_int_

5.線性表是具有n個(gè)()的有限序列。

A.字符B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.表元素

6.if語句的基本形式是“if(表達(dá)式)語句”,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。

A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值

7.下列敘述中錯(cuò)誤的是()。

A.可以用typedef將已存在的類型用一個(gè)新的名字來代表

B.可以通過typedef增加新的類型

C.用typedef定義新的類型名后,原有類型名仍有效

D.用typedef可以為各種類型起別名,但不能為變量起別名

8.在下列幾種排序方法中,空間復(fù)雜度最高的是()

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

9.在下述論述中,正確的是()。①只有一個(gè)結(jié)點(diǎn)的二叉樹的度為0;②二叉樹的度為2;③二叉樹的左右子樹可任意交換;④深度為K的順序二叉樹的結(jié)點(diǎn)個(gè)數(shù)小于或等于深度相同的滿二叉樹。

A.①②③B.②③④C.②④D.①④

10.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個(gè)FBI項(xiàng)目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請?jiān)谙旅鎺讉€(gè)數(shù)據(jù)結(jié)構(gòu)中選擇一個(gè)使檢索速度最快的()

A.二叉搜索樹,比較函數(shù)開銷:1次運(yùn)算/每字符

B.哈希表,hash算法開銷:10次運(yùn)算/每字符

C.鏈表,比較函數(shù)開銷:1次運(yùn)算/每字符

D.TRIE樹,尋找子節(jié)點(diǎn)開銷:1次運(yùn)算/每字符

11.對包含N個(gè)元素的散列表進(jìn)行檢索,平均檢索長度________

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

12.下列變量聲明合法的是()。A.shorta=1.4e-1;

B.doubleb=1+3e2.8;

C.longdo=0xfdaL;

D.float2aaa=1e-3;

13.下列程序段中完全正確的是()。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);

14.要聲明一個(gè)有10個(gè)int型元素的數(shù)組,正確的語句是()。

A.inta[10];B.inta[2,5];C.inta[];D.int*a[10];

15.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。

A.'a'<=c1<='Z'

B.(c1>=A)‖c1<=z)

C.('a'=>c1‖("z"<=c1)

D.(c1>='a')&&(c1<='z')

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

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

17.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結(jié)果為______。

A.abcdefB.abcdC.abcdD.abcdef

18.有如下嵌套的if語句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下選項(xiàng)中與上述if語句等價(jià)的語句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;

B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);

C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);

D.k=(a<b)?a:b;k=(a<c)?a:c;

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

20.以下程序的輸出結(jié)果是()。main{charw[][10]={"ABCD","EFGH","IJKL","MNOP"),K;for(k=1;k<3;k++)printf("%s\n",w[k]);A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL

二、2.填空題(20題)21.關(guān)系模型的3類完整性指的是【】、參照完整性、用戶定義的完整性。

22.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。

23.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=[9];[10]:a[N-1][i];}}

24.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

25.若有定義語句chars[100],d[100];intj=0,i==0;且s中已賦字符串,請?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號表達(dá)式)

while(s[i]=【】;j++;}

d[j]=0;

26.用高級語言編寫的程序稱為【】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。

27.設(shè)有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是

28.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

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

return(num);

}

29.以下程序中函數(shù)huiwen的功能是檢查一個(gè)字符串是否是回文,當(dāng)字符串是回文時(shí),函數(shù)返回字符串“yes!”,否則函數(shù)返回字符串“no!”,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adsda。請?zhí)羁铡?/p>

#include<stdio,h>

#include<string,h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*pl++!=*p2--){t=1;break

if(【】)return("yes!");

elsereturn("no!");

}

main(){charstr[50];

printf("Iaput:");scanf("%s",str);

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

30.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是()。

31.長度為n的順序存儲(chǔ)線性表中,當(dāng)在任何位置上插入一個(gè)元素概率都相等時(shí),插入一個(gè)元素所需移動(dòng)元素的平均個(gè)數(shù)為【】。

32.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運(yùn)行后,如果從鍵盤上輸入1298,則輸出結(jié)果為

33.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}

34.程序測試分為靜態(tài)分析和動(dòng)態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

35.當(dāng)執(zhí)行以下程序時(shí),輸入1234567890<回車>,則其中while循環(huán)體將執(zhí)行()次。

#include<stdio.h>

main()

{charch;

while((ch=getchar())=='0')printf("#");

}

36.若變量n中的值為24,則prnt函數(shù)共輸出【】行。

voidprnt(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if!(i%5))printf("\n");

}

printf("\n");

}

37.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{intn,s;

printf("Enteranumber:");scanf("%d",&n);

printf("Output:");

do

{s=n%10;printf("%d",s);【】;

}while(n!=0);

printf("\n");

}

38.有以下說明定義和語句,可用a.day引用結(jié)構(gòu)體成員day,寫出引用結(jié)構(gòu)體成員day的其他兩種形式【】、【】。

struct{intday;charmouth;intyear;}a,*b;b=&a;

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

my_cmp(char*s,char*t)

{while(*s==*t)

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

++s;++t;

}return【】;

}

40.下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。

三、1.選擇題(20題)41.十六進(jìn)制數(shù)FF.1轉(zhuǎn)換成十進(jìn)制數(shù)是()

A.255.625B.250.1625C.255.0625D.250.0625

42.若執(zhí)行以下程序時(shí)從鍵盤上輸入9,則輸出結(jié)果是______。main(){intn;scanf("%d:",&n);if(n++<10)printf("%d\n",n);elseprinf("%d\n",n--);}

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

43.下面哪一個(gè)是正確的賦值語句?

A.a++;B.a==b;C.a+=b;D.a=1,b=1;

44.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aaa<CR>bbb<CR>

A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb

45.數(shù)據(jù)庫系統(tǒng)的核心是()A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.軟件工具D.數(shù)據(jù)庫

46.函數(shù)調(diào)用語句;fseek(fp,-20L,SEEK_END);的含義是()

A.將文件位置指針移到距離文件頭20個(gè)字節(jié)處

B.將文件位置指針從當(dāng)前位置向后移動(dòng)20個(gè)字節(jié)

C.將文件位置指針從文件末尾處向后退20個(gè)字節(jié)

D.將文件位置指針移到離當(dāng)前位置20個(gè)字節(jié)處

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

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

48.有以下程序;intf1(doubleA){returna*a;}intf2(doublex,doubley){doublea,b;a=n(x);b=f1(y);returna+b;}main(){doublew;w=f2(1.1,2.0);┇}變量w中的值是()

A.5.21B.5C.5D.0

49.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;switch(b%3){default:m++;case0:m++;break;}}printf("%d\n",m);}

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

50.下列程序的運(yùn)行結(jié)果為()。

#deflneMAX(x,y)(x)>(y)(x):(y)

main()

{inta=2,b=3,c=1,d=3,t;

printf("%d\n",(MAX(a+b,c+D))*100);

}A.A.500B.5C.4D.400

51.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;執(zhí)行該程序段后,k的值是()。

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

52.已定義以下函數(shù):fun(Char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函數(shù)的功能是()。

A.將p1所指字符串復(fù)制到p2所指內(nèi)存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個(gè)指針?biāo)缸址M(jìn)行比較

D.檢查p1和p2兩個(gè)指針?biāo)缸址惺欠裼?\0',

53.假設(shè)有語句sizeof(double),則它是()。

A.一個(gè)整型表達(dá)式B.一個(gè)雙精度浮點(diǎn)型表達(dá)式C.一種函數(shù)調(diào)用D.一種函數(shù)定義

54.已定義ch為字符型變量,以下賦值語句中錯(cuò)誤的是

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

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

A.xyzabcABCB.zabeABCC.yzabcABCD.xyabcABC

56.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。

A.e1、e2、e3、e4、e5

B.e5、e4、e3、e2、e1

C.e2、e4、e3、e5、e1

D.e3、e4、e1、e2、e5

57.有如下函數(shù)調(diào)用語句func(rec1,rec2+rec3,(rec4,rec5));該函數(shù)調(diào)用語句中,含有的實(shí)參個(gè)數(shù)是______。

A.3B.4C.5D.有語法錯(cuò)誤

58.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是

A.data的每個(gè)成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實(shí)參

59.以下敘述中正確的是A.全局變量的作用域一定比局部變量的作用域范圍大

B.靜態(tài)(static)類別變量的生存期貫穿于整個(gè)程序的運(yùn)行期間

C.函數(shù)的形參都屬于全局變量

D.未在定義語句中賦初值的auto變量和static變量的初值都是隨機(jī)值

60.有下列程序:main(){inty=20;do{y--;}while(--y);printf("%d\n",y--);}當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。

A.-1B.1C.4D.0

四、選擇題(20題)61.(3)在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______。

A.8

B.16

C.32

D.15

62.

63.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合

64.以下敘述中錯(cuò)誤的是()。A.可以通過typedef增加新的類型

B.可以用typedef將已存在的類型用一個(gè)新的名字來代表

C.用typedef定義新的類型名后,原有類型名仍有效

D.用typedd可以為各種類型起別名,但不能為變量起別名

65.

66.負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。

A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言

67.

68.

69.有以下程序,其中%u表示按無符號整數(shù)輸出:

main

{

unsignedintx=0xFFFF;/*x的初值為十六進(jìn)制數(shù)*/

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

}

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

A.-1B.65535C.32767D.0xFFFF

70.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。

A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦臺(tái)

71.

72.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達(dá)式a<b?a:c<d?c:d的值是()。A.A.1B.2C.3D.4

73.

74.輸出語句:prinff(”%d\n”,ll+011);的輸出結(jié)果是()。

A.20B.22C.022D.021

75.以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是()。A.在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的

B.結(jié)構(gòu)化程序使用sotoi吾句會(huì)很便捷

C.一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成

D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題

76.

77.

78.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

79.算法的有窮性是指()。

A.算法程序的運(yùn)行時(shí)問是有限的。

B.算法程序所處理的數(shù)據(jù)量是有限的

C.算法程序的長度是有限的

D.算法只能被有限的用戶使用

80.

五、程序改錯(cuò)題(1題)81.給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值增加10倍。修改其中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請編一個(gè)函數(shù)fun(char*str),該函數(shù)的功能是把字符串中的內(nèi)容逆置。例如,字符串中原有的字符串為asdfg,則調(diào)用該函數(shù)后,串中的內(nèi)容為gfdsa。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.C

2.A宏替換是在編譯階段前的預(yù)處理階段,對程序中的宏完成文本替換,因此宏替換不占用運(yùn)行時(shí)間,選項(xiàng)A正確;預(yù)處理命令行無須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項(xiàng)B錯(cuò)誤;在源文件的一行上至多只能有一條預(yù)處理命令,選項(xiàng)C錯(cuò)誤;宏名通常使用大寫字母表示,這并不是語法規(guī)定,只是一種習(xí)慣,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。

3.D本題int*p[4]的作用是聲明一個(gè)指針數(shù)組,每個(gè)元素都是int*型指針。

4.D解析:本題考核的知識點(diǎn)是用戶的標(biāo)識符。在C語言中,合法的標(biāo)識符由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或者下劃線,如:acd,d_ad、_adf124,_124等都是合法的標(biāo)識符號.而2asdf、_sd/=都不是合法的標(biāo)識符.在C語言中大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,如:ACD和acd是兩個(gè)不同的標(biāo)識符號。選項(xiàng)D中用下劃線作為第一個(gè)字符,這是不合法的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

5.B

6.Dif語句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。故本題答案為D選項(xiàng)。

7.Btypedef并不是增加一種新的類型,而是對已存在的類型用一個(gè)新的名字來代表,所以B選項(xiàng)錯(cuò)誤。故本題答案為B選項(xiàng)。

8.A

9.D

10.D

11.C

12.A本題需了解3個(gè)知識點(diǎn):①標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線;②do是C語言的一個(gè)關(guān)鍵字,不能再用做變量名和函數(shù)名;③c語言規(guī)定指數(shù)形式的實(shí)型數(shù)量e或E后面的指數(shù)必須是整數(shù)。

13.CA選項(xiàng)中,沒有對指針進(jìn)行初始化,屬于無效指針,并且在“scanf(“%d”,&p);”中無須再進(jìn)行取地址操作;B選項(xiàng)中,沒有對指針進(jìn)行初始化,屬于無效指針;D選項(xiàng)中,語句“*p=&k;”書寫錯(cuò)誤,應(yīng)為“P=&k;”。故本題答案為C選項(xiàng)。

14.A

15.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項(xiàng)的這種形式在C語言中沒有,所以選項(xiàng)D)正確.

16.D

17.C解析:1.getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。

2.putchar():此函數(shù)的作用是向終端輸出一個(gè)字符,也可以輸出控制字符。本題在輸入字符時(shí),ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

18.C條件運(yùn)算符(?:)是C語言中唯一的一個(gè)三目運(yùn)算符,它是對第一個(gè)表達(dá)式做真/假檢測,然后根據(jù)結(jié)果返回兩個(gè)表達(dá)式中的一個(gè)作為運(yùn)算的結(jié)果。<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>。在運(yùn)算中,首先對第一個(gè)表達(dá)式進(jìn)行檢驗(yàn),如果為真,則返回表達(dá)式2的值;如果為假,則返回表達(dá)式3的值。

19.A解析:C語言的常量分為整型常量、實(shí)型常量和字符型常量。選項(xiàng)A屬于實(shí)型常量中的十進(jìn)制小數(shù)形式的表示法,是合法的。

20.D當(dāng)k=1時(shí),循環(huán)成立,輸出w[l]的數(shù)組即EFGH,接著執(zhí)行k++后k為2;當(dāng)k=2時(shí),循環(huán)成立,輸出w[2]的數(shù)組即IJKL,接著執(zhí)行k++后,k為3;當(dāng)k=3時(shí),循環(huán)不成立,退出。

21.實(shí)體完整性實(shí)體完整性解析:關(guān)系模型中的完整性是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和一致性。為了維護(hù)數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實(shí)世界的一致性,關(guān)系數(shù)據(jù)庫的插入、刪除、修改操作必須遵循3類完整性規(guī)則。關(guān)系模型的3類完整性指的是實(shí)體完整性、參照完整性和用戶定義的完整性。

22.軟件開發(fā)

23.b[i][N-1];s[0][i]實(shí)現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]門實(shí)現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。\r\n\r\n

24.33解析:本題考查do…while語句形式:

do循環(huán)體

while表達(dá)式

首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時(shí)再判斷循環(huán)條件不滿足,退出循環(huán)。

25.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。

26.源程序源程序解析:用高級語言編寫的程序稱為源程序。源程序不能在計(jì)算機(jī)上直接運(yùn)行,運(yùn)行源程序有兩種方式:一種是通過解釋程序,對源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生目標(biāo)程序(目標(biāo)程序是計(jì)算機(jī)可直接執(zhí)行的機(jī)器語言程序,是一種二進(jìn)制代碼程序),然后執(zhí)行目標(biāo)程序。

27.D

28.\0'n++\\0'\r\nn++解析:第1個(gè)循環(huán)是求字符串a(chǎn)的長度,并存儲(chǔ)在變量num中,循環(huán)條件要控制是否取到字符串末尾的'\\0'。第2個(gè)循環(huán)通過兩個(gè)變量num和n的改變,將b字符串連接到a字符串后面,并將新的字符串長度記錄到num中。

29.p1+(stfien(str)-1)或str+(strlen(str)-1)t==0或!thuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+strp1+(stfien(str)-1)或str+(strlen(str)-1)\r\nt==0或!t\r\nhuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+str解析:回文字符串是指正向與反向拼寫都一樣。由huiwen函數(shù)可知,第三處應(yīng)該填寫調(diào)用函數(shù)huiwen(str)。在函數(shù)huiwen中,執(zhí)行P1=str;使p1指向字符串str中第一個(gè)字符的地址,則第一處應(yīng)該使p2指向字符串str中最后一個(gè)字符的地址,故填p1+(stden(str)-1)或str+(strlen(str)-1)。本題要求如果是回文,則返回'yes!',否則,返回'no!',故當(dāng)t=0時(shí),說明字符串str為回文,所以第二處應(yīng)填t==0或!t。

30.層次模型層次模型解析:層次模型是最早發(fā)展起來的數(shù)據(jù)庫模型。層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu)。

31.n/2性表的任何位置插入一個(gè)元素的概率相等,即概率為p=1/(n+1),則插入一個(gè)元素時(shí)所需移動(dòng)元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

32.89218921

33.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時(shí),j=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。

34.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動(dòng)態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

35.00解析:“ch=getchat()”的功能是從終端讀入一個(gè)字符賦給變量ch,由于getchar()只能接收一個(gè)字符,所以輸入的字符1被賦給ch,即“'1'!='0'”,循環(huán)體不執(zhí)行,直接退出while循環(huán),所以循環(huán)體執(zhí)行的次數(shù)為0。

36.55解析:本題的關(guān)鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時(shí),則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個(gè)數(shù)。

37.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。

38.(*B).dat.b->day

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

40.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達(dá)。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項(xiàng)是或的關(guān)系。

41.C

42.B解析:n++是在語句結(jié)束后再加1,因此,if語句中相當(dāng)于判斷的是9<10,當(dāng)然是執(zhí)行if語句后面的printf語句,而這時(shí),因?yàn)閕f語句被執(zhí)行,n的值也被加1,所以在打印時(shí),n值為10,而n-是在printf語句執(zhí)行完畢后再減1的。

43.B解析:C語言中賦值語句是由賦值表達(dá)式加“;”構(gòu)成的。賦值表達(dá)式的形式為:變量=表達(dá)式;。選項(xiàng)A中a++相當(dāng)于a+1,是賦值語句;選項(xiàng)C和選項(xiàng)D也是賦值語句。只有選項(xiàng)B不是,因?yàn)檫x項(xiàng)B中“==”符號是等于的意思,并不是賦值運(yùn)算符。

44.B解析:scanf是標(biāo)準(zhǔn)輸入函數(shù),在輸入字符串a(chǎn)aa時(shí),實(shí)際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動(dòng)加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動(dòng)以“/0”代替換行符。

45.B數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實(shí)施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。

46.C

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

48.C

49.B解析:本題考查switch語句。因?yàn)閍=8,a%4=0,所以執(zhí)行case0后面的語句,將m加1,遇到break語句跳出switch。

50.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:(x)>(y)(x):(y)是x>y時(shí)輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時(shí),(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。

51.B解析:因?yàn)閍<b成立,所以條件表達(dá)式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因?yàn)閗=2>c=3不成立,所以條件表達(dá)式k>c?c:k的值等于k的值等于2。把條件表達(dá)式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項(xiàng)B)為正確答案。

52.A解析:fun()函數(shù)中聲明了兩個(gè)字符串指針作為形參,在其函數(shù)體中用了一個(gè)while循環(huán),首先while括號內(nèi)表達(dá)式*p2=*p1是將p1所指的內(nèi)容賦值到p2所指的存儲(chǔ)空間中,然后在判斷是否為'\\0',表達(dá)式的值為真時(shí),執(zhí)行循環(huán)體,指針p1和p2分別下移一位,當(dāng)p1指向字符'\\n'時(shí),表達(dá)式的值為假,循環(huán)結(jié)束,故此函數(shù)的功能是將p1所指字符串復(fù)制到p2所指內(nèi)存空間中。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。

53.A解析:sizeof(double)是C語言內(nèi)部規(guī)定的一個(gè)計(jì)算參數(shù)(double)在計(jì)算機(jī)的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),它返回一個(gè)整數(shù)值。

54.A解析:字符型變量用來存放字符常量,且只能存放一個(gè)字符。賦值反斜杠線“\\”,必須用轉(zhuǎn)義字符實(shí)現(xiàn),即ch='\\\\',所以選項(xiàng)A)錯(cuò)誤;字符型變量可以賦0~255之間的ASCII碼值,整型數(shù)據(jù)和字符型數(shù)據(jù)有時(shí)可以通用,所以選項(xiàng)B)正確;可以將NULL賦給一個(gè)字符型變量,NULL代表一個(gè)空字符,相當(dāng)于0,選項(xiàng)C)正確;'\\xaa'表示的是1~2位16進(jìn)制數(shù)所代表的字符,所以選項(xiàng)D)正確。

55.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC防到了*p1所指向的存儲(chǔ)單元中:strcpy在本題將abcABC復(fù)制到str+2所指向的存儲(chǔ)單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。

56.D解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點(diǎn)是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項(xiàng)D中,如果第一個(gè)出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因?yàn)閑1先入棧,故e1應(yīng)在e2后出棧,所以選項(xiàng)D是不可能的出棧順序。

57.A解析:(rec4,rec5)是逗號表達(dá)式,它的值是rec5的值。所以該函數(shù)調(diào)用語句含有的實(shí)參個(gè)數(shù)是3。

58.D解析:選項(xiàng)A),共用體的每個(gè)成員的起始地址都相同;選項(xiàng)B),共用體變量所占的內(nèi)存長度等于最長的成員的長度;選項(xiàng)C)因?yàn)槊總€(gè)成員的起始地址相同,所以整型數(shù)5以浮點(diǎn)型輸出時(shí)為5.000000;選項(xiàng)D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論