2021-2022年甘肅省嘉峪關(guān)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第1頁(yè)
2021-2022年甘肅省嘉峪關(guān)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第2頁(yè)
2021-2022年甘肅省嘉峪關(guān)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第3頁(yè)
2021-2022年甘肅省嘉峪關(guān)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第4頁(yè)
2021-2022年甘肅省嘉峪關(guān)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年甘肅省嘉峪關(guān)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.以下敘述錯(cuò)誤的是()。

A.算術(shù)運(yùn)算符中不包含“=”運(yùn)算符

B.模運(yùn)算符“%”是c語(yǔ)言基本的算術(shù)運(yùn)算符

C.算術(shù)運(yùn)算符中只有“*”、“/”優(yōu)先級(jí)高于關(guān)系運(yùn)算符

D.自加和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式

2.下列關(guān)于return語(yǔ)句的敘述中正確的是()。

A.—個(gè)自定義函數(shù)中必須有一條return語(yǔ)句

B.—個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語(yǔ)句

C.定義成void類型的函數(shù)中可以有帶返回值的return語(yǔ)句

D.沒(méi)有return語(yǔ)句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處

3.設(shè)計(jì)軟件結(jié)構(gòu)是在軟件生命周期的()。

A.軟件定義期B.軟件開(kāi)發(fā)期C.軟件維護(hù)期D.以上3個(gè)都不是

4.對(duì)n個(gè)元素的有序表A[1..n]進(jìn)行順序查找,其成功查找的平均查找長(zhǎng)度(即在查找表中找到指定關(guān)鍵碼的元素時(shí),所進(jìn)行比較的表中元素個(gè)數(shù)的期望值)為()

A.nB.(n+1)/2C.log2nD.n^2

5.用二分法查找長(zhǎng)度為10的、排好序的線性表,查找不成功時(shí),最多需要比較多少次?()

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

6.下列條件語(yǔ)句中,輸出結(jié)果與其他語(yǔ)句不同的是()。

A.if(a!=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);

C.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);

D.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);

7.在inta=3,int*p=&a;中,*p的值是()

A.變量a的地址值B.無(wú)意義C.變量p的地址值D.3

8.下列描述中正確的是______。

A.軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題

B.軟件工程主要解決軟件新產(chǎn)品的生產(chǎn)率問(wèn)題

C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則

D.軟件工程只是解決軟件開(kāi)發(fā)中的技術(shù)問(wèn)題

9.設(shè)fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對(duì)函數(shù)fun的調(diào)用語(yǔ)句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

10.有以下程序

#include<stdio.h>

main()

{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

*q=*(p+5);

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

}

程序運(yùn)行后的輸出結(jié)果是A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510

11.以下有4組用戶標(biāo)識(shí)符,其中合法的一組是()。

A.FOr-subCase

B.4dDOSize

C.f2_G3IFabc

D.WORDvoiddefine

12.若已定義:“inta[9],*p=a;”,并在以后的語(yǔ)句中未改變p的值,不能表示a[1]地址的表達(dá)式是______。

A.p+1B.a+1C.a++D.++p

13.以下程序是用來(lái)計(jì)算兩個(gè)非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個(gè)數(shù)的長(zhǎng)度為n,基本運(yùn)算時(shí)間復(fù)雜度為O(1),那么該程序的時(shí)間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

14.二維數(shù)組A的元素都是6個(gè)字符組成的串,行下標(biāo)i的范圍從0到8,列下標(biāo)j的范圈從1到10,則存放A至少需要()個(gè)字節(jié)。

A.90B.180C.240D.270

15.有以下程序

A.741B.963C.852D.87542l

16.以下關(guān)于typedef的敘述錯(cuò)誤的是()。A.用tyFedef可以增加新類型

B.typedef只是將已存在的類型用一個(gè)新的名字來(lái)代表

C.用typedef可以為各種類型說(shuō)明一個(gè)新名,但不能用來(lái)為變量說(shuō)明一個(gè)新名

D.用typedef為類型說(shuō)明一個(gè)新名,通常可以增加程序的可讀性

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

A.順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的

B.順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)

C.順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表

D.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間

18.設(shè)某無(wú)向圖中有n個(gè)頂點(diǎn)e條邊,則建立該圖鄰接表的時(shí)間復(fù)雜度為()。

A.O(n+e)B.O(n^2)C.O(ne)D.O(n^3)

19.以下說(shuō)法錯(cuò)誤的是()。

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

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

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

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

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

A.在C語(yǔ)言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語(yǔ)言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容

C.在C語(yǔ)言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別

D.在C語(yǔ)言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量

二、2.填空題(20題)21.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。

22.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。

23.在關(guān)系運(yùn)算中,【】運(yùn)算是對(duì)兩個(gè)具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

24.下列程序的輸出結(jié)果是【】。

#include<stdio.h>

intfun(intx,inty)

{staticintm0,i=2;

i+=m+1;

m=i+x+y;

returnm;

}

main()

{intj=4,m=1,k;

k=fun(j,m);printf("%d,",k);

k=fun(j,m);printf("%d\n",k);

}

25.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請(qǐng)?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");

}

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

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!(a%b);x=!(a/b);

y=(a<b)&&(b>=0);

z=(a<b)||(b>=0);

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

}

27.關(guān)系模型的3類完整性指的是【】、參照完整性、用戶定義的完整性。

28.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test.t","rb");

fseek(myf,0,SEEKEND);

f1=ftell(myf);

fclose(myf);

printf("%d\n",f1)

29.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指內(nèi)存空間中,形成一個(gè)新字符串s。請(qǐng)?zhí)羁铡?/p>

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

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

}

30.有以下結(jié)構(gòu)體說(shuō)明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語(yǔ)句是【】。

structnode

{chardata;

structnode*next;}a,b

31.下面程序的輸出結(jié)果是【】。

main()

{inti=3,j=2;

char*a="DCBA";

printf("%c%c\n",a[i],a[j])

}

32.下面程序的功能是將字符串s中所有的字符c刪除,補(bǔ)足所缺語(yǔ)句。

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')【】;

s[j]='\0';

puts(s);

}

33.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

34.問(wèn)題處理方案的正確而完整的描述稱為_(kāi)_____。

35.若fp已正確定義為—‘個(gè)文件指針,d1.dd為二進(jìn)制文件,請(qǐng)?zhí)羁?,以便為“讀”而打開(kāi)此文件:fp=fopen(______);。

36.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、______和選擇排序。

37.常用的黑箱測(cè)試有等價(jià)類劃分法、【】和錯(cuò)誤推測(cè)法3種。

38.以下程序運(yùn)行后輸入:3,abcde<回車(chē)>,則輸出結(jié)果是______。

#include<string.h>

move(char*str,intn)

{charcemp;inti;

temp=str[n-1];

for(i=n-1;i>0;i--)str[i]=str[i-1);

str[0]=temp;}

main()

{chars[50];intn,i,z;

scanf(“%d,%s”,&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

printf(“%s\n”,s);

}

39.某二叉樹(shù)中度為2的結(jié)點(diǎn)有n個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。

40.與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是【】方法。

三、1.選擇題(20題)41.執(zhí)行語(yǔ)句“for(n=10;n>0;)printf("%d",--n+n--);”后,下列說(shuō)法正確的是()

A.循環(huán)體執(zhí)行了5次,最終n的值是-1

B.循環(huán)體執(zhí)行了6次,最終n的值是-1

C.循環(huán)體執(zhí)行了6次,最終n的值是0

D.循環(huán)體執(zhí)行了5次,最終n的值是0

42.以下敘述中正確的是

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

B.花括號(hào)“{”和“}”只能作為函數(shù)體的定界符

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

D.分號(hào)是C語(yǔ)句之間的分隔符,不是語(yǔ)句的一部分

43.若執(zhí)行下面程序時(shí)從鍵盤(pán)上輸入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x--);}則輸出是______。

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

44.若變量已正確說(shuō)明為float類型,要通過(guò)語(yǔ)句scanf("%f%f%f",&a,&b,&c),給a賦予10.0,b賦予22.0,b賦予33.0,不正確的輸入形式是()

A.10<回車(chē)>22<回車(chē)>33<回車(chē)>

B.10.0,22.0,33.0<回車(chē)>

C.10.0<回車(chē)>22.O33.00<回車(chē)>

D.10.22<回車(chē)>33<回車(chē)>

45.下列說(shuō)法正確的是()。

A.在C語(yǔ)言中,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù),定義元素個(gè)數(shù)可變的數(shù)組

B.在C語(yǔ)言中,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)

C.在C語(yǔ)言中,數(shù)組元素的數(shù)據(jù)類型可以不一致

D.在C語(yǔ)言中,定義了一個(gè)數(shù)組后,就確定了它所容納的元素的個(gè)數(shù)

46.設(shè)a、b、c都是int型變量,且a=3,b=4,c=5,則下面的表達(dá)式中,值為0的表達(dá)式是______。

A.'a'&&'b',

B.a<=b

C.a||b+c&&b-c

D.!((a<<b)&&!c||1)

47.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}

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

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

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

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

48.下面程序段中c的二進(jìn)制值是______。chara=3,b=6,c;c=ab<<1;

A.1011B.1111C.11110D.11100

49.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。

A.枚舉型B.共用型C.結(jié)構(gòu)型D.數(shù)組型

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

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

51.下面是對(duì)宏定義的描述,不正確的是______。

A.宏不存在類型問(wèn)題,宏名無(wú)類型,它的參數(shù)也無(wú)類型

B.宏替換不占用運(yùn)行時(shí)間

C.宏替換時(shí)先求出實(shí)參表達(dá)式的值,然后代入形參運(yùn)算求值

D.宏替換只不過(guò)是字符替代而已

52.fgetc函數(shù)的作用是從指定文件讀入一個(gè)字符,該文件的打開(kāi)方式必須是______。

A.只讀B.追加C.讀或讀寫(xiě)D.以上均正確

53.若有以下的說(shuō)明和語(yǔ)句,則在執(zhí)行for語(yǔ)句后,*(*(pt+1)+2)表示的數(shù)組元素是______。intt[3][3],*pt[3],k;for(k=0;k<3k++)pt[k]=&t[k][0]

A.t[2][0]B.t[2][2]C.t[1][2]D.t[2][1]

54.下列程序執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>voidfunc(int*a,intb[]){b[0]=*a+6;}main(){inta,b[5];a=0;b[0]=3;func(&a,b);printf("%d\n",b[0]);}

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

55.表達(dá)式'8'-'2'的值是()。

A.整數(shù)6B.字符6C.表達(dá)式不合法D.字符8

56.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<b)if(b<O)c=0;elsec++;printf("%d\n",c);}

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

57.當(dāng)下面的程序運(yùn)行后,變量c的值為_(kāi)_____。main(){inta=45,b=27,c=0;c=max(a,b);}intmax(x,y)intx,y;{intz;if(x>y)z=x;elsez=y;return(z);}

A.45B.27C.0D.72

58.若有以下定義和語(yǔ)句,則輸出結(jié)果是______。int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);

A.10,20B.10,10C.20,10D.20,20

59.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表

60.有以下程序

#include<stdlib.h>

gtruetNODE

{intnum;structNODE*next;};

main()

{

structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeef(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next-r;

printf("%d\n",p->num+q->next->num);

}

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

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

四、選擇題(20題)61.設(shè)有以下定義uniondata{intd1;floatd2;)demo;則下面敘述中錯(cuò)誤的是()。A.變量demo與成員d2所占的內(nèi)存字節(jié)數(shù)相同

B.變量demo中各成員的地址相同

C.變量demo和各成員的地址相同

D.若給demo.d1賦99后,demo.d2中的值是99.0

62.有以下程序程序執(zhí)行后的輸出結(jié)果是()。

A.y=-IB.y=oC.y=lD.while構(gòu)成無(wú)限循環(huán).

63.在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)

64.

65.

66.

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

A.1,2,3.4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.2,3,1,6,8,7,5,4,10,9,

D.10,9,8,7,6,1,2,3,4,5,

68.

69.有以下程序:

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

70.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()0、

A.雙向鏈表

B.帶鏈的棧

C.二叉鏈表

D.循環(huán)鏈表

71.

72.表示關(guān)系M<=N<=P的C語(yǔ)言表達(dá)式為()。

A.(M<=N.AND(N<=P.

B.(M<=N.&&(N<=P.

C.(M<=N<=P.

D.(M<=N.&(N<=P.

73.在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是()。

A.各模塊應(yīng)包括盡量多的功能

B.各模塊的規(guī)模應(yīng)盡量大

C.各模塊之間的聯(lián)系應(yīng)盡量緊密

D.模塊內(nèi)具有高內(nèi)聚度,模塊間具有低耦合度

74.下述程序執(zhí)行的輸出結(jié)果是()。

#include<stdio.h>

main()

{chara[2][4];,

strcpy(a。"are");strcpy(a[1],"you");

a[o][3]=&;

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

}

A.are&you

B.you

C.are

D.&

75.

76.

77.數(shù)據(jù)庫(kù)管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

78.

79.設(shè)有定義:intX=2;,以下表達(dá)式中,值不為6的是()。

A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1

80.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fIm和funx的功能是:用二分法求方程的一個(gè)根,并要求絕對(duì)誤差不超過(guò)0.001。

.例如,若給m輸入一100,n輸入90,則函數(shù)求得的二個(gè)根為2.000。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}

參考答案

1.C

2.B在函數(shù)中允許有多個(gè)return語(yǔ)句,但每次調(diào)用只能有一個(gè)return語(yǔ)句被執(zhí)行,因此只能返回一個(gè)函數(shù)值,A選項(xiàng)描述錯(cuò)誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語(yǔ)句,C選項(xiàng)描述錯(cuò)誤。沒(méi)有return語(yǔ)句的函數(shù)在執(zhí)行到函數(shù)的最后一條語(yǔ)句后會(huì)自動(dòng)返回到調(diào)用處,D選項(xiàng)描述錯(cuò)誤。故本題答案為B選項(xiàng)。

3.BB。【解析】設(shè)計(jì)軟件結(jié)構(gòu),是在軟件概要設(shè)計(jì)階段進(jìn)行的,而概要設(shè)計(jì)屬于軟件開(kāi)發(fā)期。

4.B

5.B

6.CA、B、D選項(xiàng)的含義均為:a的值如果為0,輸出y的值,否則輸出x的值。而C選項(xiàng)的含義是:a的值為0時(shí)輸出x的值,不為0時(shí)輸出y的值,與其他選項(xiàng)正好相反。故本題答案為C選項(xiàng)。

7.D

8.C解析:軟件工程是解決軟件項(xiàng)目的管理、軟件開(kāi)發(fā)過(guò)程中的技術(shù)、軟件產(chǎn)品的生產(chǎn)率等問(wèn)題,它的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則。

9.C由題目的已知條件函數(shù)fun的定義形式voidfun(charch,floatx){…)可知第一個(gè)形參為字符型,所以A不符合,第二個(gè)形參為精度型,所以D不符合,函數(shù)fun定義為void型(無(wú)論返回值型),故其沒(méi)有返回值,所以選項(xiàng)B錯(cuò)誤。選項(xiàng)C的第一個(gè)實(shí)參的類型為字符型,第二個(gè)實(shí)參的類型為單精度型,與函數(shù)fun的形式參數(shù)的類型相符合,所以選項(xiàng)C為正確答案。

10.C解析:本題中第一行代碼對(duì)指針P進(jìn)行了初始化,其指向數(shù)組a的第6個(gè)元素,在其后的操作中p的值也沒(méi)有改變過(guò),所以最后輸出*p=*\u3000\u3000(p+0)\u3000\u3000=a\u3000[5]\u3000=6,而第二行代碼中對(duì)q指向的值進(jìn)行賦值,等價(jià)于*q=a[10]=11,所以輸出結(jié)果*q為11。

11.C解析:選項(xiàng)A中for和case為C語(yǔ)言中的保留字,不能作為用戶標(biāo)志符,故A錯(cuò)誤。選項(xiàng)B中的4d其開(kāi)頭的第一個(gè)為數(shù)字,而在C語(yǔ)言中規(guī)定,第一個(gè)字符必須為字母或者下劃線,故B錯(cuò)誤;選項(xiàng)D中void為C語(yǔ)言中的保留字,不能作為用戶標(biāo)志符,故D錯(cuò)誤。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

12.C

13.B

14.A

15.C在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),執(zhí)行輸出語(yǔ)句,輸出表達(dá)式“——y”的值。y先自減1,然后再輸出y的值。

16.A用typedef沒(méi)有增加新類型,所以選擇A)。

17.A解析:順序存儲(chǔ)結(jié)構(gòu)就是用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)該線性表中的各個(gè)元素,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致,所以選項(xiàng)A是正確的。兩者都可以存儲(chǔ)線性的、有序的邏輯結(jié)構(gòu),所以選項(xiàng)B、C不正確。順序結(jié)構(gòu)使用的是連續(xù)物理空間,鏈?zhǔn)浇Y(jié)構(gòu)可以使用零散的物理空間存儲(chǔ),鏈?zhǔn)浇Y(jié)構(gòu)更靈活,不存在誰(shuí)節(jié)約空間的說(shuō)法,所以選項(xiàng)D不正確。

18.A

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

20.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。

21.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

22.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見(jiàn)的線性結(jié)構(gòu)有線性表、棧和隊(duì)列等,常見(jiàn)的非線性結(jié)構(gòu)有樹(shù)、二叉樹(shù)等。

23.自然連接自然連接解析:在關(guān)系運(yùn)算中,自然連接運(yùn)算是對(duì)兩個(gè)具有公共屬性的關(guān)系所進(jìn)行的運(yùn)算。

24.817

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

26.c=1x=Oy=Oz=1

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

28.fopenfopen解析:函數(shù)fopen的原型為FILE*fopen(char*filename,char*mode),功能為以mode指定的方式打開(kāi)名為filename的文件;函數(shù)fseek的原型為intfseek(FILE*fp,longoffset,intbase),功能為將fp所指向的文件的位置指針移到以base所指出的位置為基準(zhǔn),offset為位移量的位置;函數(shù)ftell的原型為longftell(FILE*fp),功能為返回fp所指向的文件中當(dāng)前的讀寫(xiě)位置;函數(shù)fclose的原型為intfclose(FILE*fp),功能為關(guān)閉fp所指的文件,釋放文件緩沖區(qū)。

29.*t++*t++解析:要使sstrcpy函數(shù)實(shí)現(xiàn)字符串復(fù)制,必須將t字符串中的每個(gè)字符逐個(gè)復(fù)制到s字符串中,可以使用*s=*t;s++;t++,也可以寫(xiě)成*s++=*t++,因此空格處填*t++。

30.a.next=aba.next=ab解析:選項(xiàng)A)中,指針變量q保存的就是變量b的地址,選項(xiàng)B)中的p是指針變量,應(yīng)該是p->next=&b;在選項(xiàng)D)中,用*運(yùn)算符取出結(jié)構(gòu)體變量,并且保存的就是b的地址。

31.AB

32.s[j++]=s[i]

33.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。

34.算法或程序或流程圖算法或程序或流程圖解析:算法是問(wèn)題處理方案正確而完整的描述。

35.d1.dat""rb"或"d1.dat""r+b”或"d1.dat""rb+"d1.dat','rb'或'd1.dat','r+b”或'd1.dat','rb+'解析:本題考查的知識(shí)點(diǎn)是二進(jìn)制文件的打開(kāi)方式。打開(kāi)文件的函數(shù)為fopen('文件名''mode'),其中'mode'表示文件的打開(kāi)方式.如果打開(kāi)的是二進(jìn)制文件,其mode字符串可以是:'rb''wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開(kāi)。'w'表示以寫(xiě)方式打開(kāi),如果已有在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件.'a'為追加方式打開(kāi)。若文件存在時(shí),將打開(kāi)這個(gè)文件并且在文件的末尾進(jìn)行追加.當(dāng)文件不存在,將創(chuàng)建新文件。'r='打開(kāi)一個(gè)已有在文件用于更新(可讀可寫(xiě))。'w+'創(chuàng)建一個(gè)新文件用于更新,如果文件存在,文件被重寫(xiě)(可讀可寫(xiě))。'a+'打開(kāi)用于追加,當(dāng)文件不存在時(shí),創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫(xiě))。根據(jù)題意,應(yīng)該填'd1.dat','rb'或其他等價(jià)的表達(dá)法。

36.交換排序交換排序解析:所謂排序是指將一個(gè)無(wú)序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡(jiǎn)單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。

37.邊界值分析法邊界值分析法解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測(cè)法3種。

38.cdeabcdeab解析:本題考核的知識(shí)點(diǎn)是基本算法的應(yīng)用和程序的綜合分析。從分析知道m(xù)ove()函數(shù)的作用,是將形參str所指的數(shù)組依次向后左移一位,即讓該數(shù)組第一個(gè)元素的值等于第二個(gè)元素的值,接著讓第二個(gè)元素的值等于第三個(gè)元素的值,直到該數(shù)組最后第二個(gè)元素的值等于最后一個(gè)元素的值,然后讓第一個(gè)元素等于最后一個(gè)元素的值。主函數(shù)中用了一個(gè)for循環(huán)調(diào)用move()函數(shù),共循環(huán)三次。當(dāng)i=1時(shí),第一次調(diào)用move()函數(shù),使輸入到數(shù)組的s的字符串“abcde”變?yōu)椤癳abcd”,當(dāng)i=2時(shí),第二次調(diào)用move()函數(shù),使字符串“eabcd”變?yōu)椤癲eabc”,當(dāng)i=3時(shí),第三次調(diào)用move()函數(shù),使字符串“deabc”變?yōu)椤癱deab”,故最后輸出的值為“cdeab”,故該空格處應(yīng)該填“cdeab”。

39.n+1n+1解析:在任意一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個(gè)。

40.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是結(jié)構(gòu)化設(shè)計(jì)方法。結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分以及各個(gè)成分之間的內(nèi)部聯(lián)系的技術(shù)。

41.D

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

43.B解析:根據(jù)C語(yǔ)言的語(yǔ)法,x++是在使用x之后,再將x的值加1,在if語(yǔ)句中,x的值為5,條件不成立,執(zhí)行else后面的語(yǔ)句,因?yàn)閤的值已經(jīng)加1,為6,所以打印結(jié)果為6。

44.B

45.D解析:本題考查數(shù)組的兩個(gè)知識(shí)點(diǎn):①在C語(yǔ)言中,數(shù)組元素的個(gè)數(shù)是確定的,不允許隨機(jī)變動(dòng),數(shù)組定義好之后,它所能容納的元素的個(gè)數(shù)也就確定了;②同一個(gè)數(shù)組中所有元素的類型是一樣的。

46.D

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

48.B解析:C語(yǔ)言提供六種位運(yùn)算符,按優(yōu)先級(jí)由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達(dá)式c=ab<<1先運(yùn)算b<<1得二進(jìn)制值為00001100,再運(yùn)算a∧00001100,最后得二進(jìn)制值00001111。

49.A本題考查高級(jí)語(yǔ)言的數(shù)據(jù)類型。其中屬于構(gòu)造類型的主要有結(jié)構(gòu)體類型、聯(lián)合體類型,即共用體類型和數(shù)組類型。

50.D解析:本題考查do…while循環(huán)。當(dāng)--y是0(即y是0)時(shí)結(jié)束循環(huán),輸出y--是先輸出y的值再將y的值減1。

51.C解析:宏替換實(shí)質(zhì)上就是字符替代,它不可能進(jìn)行計(jì)算,故C錯(cuò)誤。帶參數(shù)的宏與函數(shù)相比,宏在程序編譯之前已經(jīng)將代碼替換到程序內(nèi),執(zhí)行時(shí)不會(huì)產(chǎn)生類似于函數(shù)調(diào)用的問(wèn)題,可以說(shuō)不占用運(yùn)行時(shí)間。

52.D解析:fgetc函數(shù)是指從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫(xiě)方式打開(kāi)的。fgetc函數(shù)的調(diào)用形式為:ch=fgetc(fp);。

53.C解析:本題考查通過(guò)指針引用數(shù)組元素。*(*(pt+1)+2)等價(jià)于*(pt[1]+2),pt[1]+2是t[1][2]的地址,故*(pt[1]+2)是t[1][2]的值。

54.A解析:函數(shù)的實(shí)參分別為變量a的地址和b數(shù)組名,函數(shù)調(diào)用時(shí)將變量a的地址傳給指針變量a,數(shù)組名b作為實(shí)參,形參也為b數(shù)組,當(dāng)數(shù)組中各元素的值發(fā)生變化,實(shí)參數(shù)組元素的值也隨之發(fā)生變化,所以輸出的b[0]應(yīng)為6。

55.A解析:在C語(yǔ)言中,雖然字符都是變?yōu)槠鋵?duì)應(yīng)的ASCII碼值來(lái)參與算術(shù)運(yùn)算的,但字符間的相對(duì)位置關(guān)系還是不變的,字符8和字符2的ASCII碼值相差仍是6。

56.C解析:本題考查if語(yǔ)句。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b不成立,不再執(zhí)行下列的語(yǔ)句,直接執(zhí)行最后的printf輸出語(yǔ)句,然后結(jié)束程序,整個(gè)過(guò)程c的值沒(méi)有發(fā)生變化。

57.A

58.D

59.C隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項(xiàng)A和選項(xiàng)B錯(cuò)誤。允許插入的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭。在隊(duì)列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊(duì)列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來(lái)先服務(wù)”的原則,選項(xiàng)C正確,選項(xiàng)D錯(cuò)誤。

60.D解析:本題考查的知識(shí)點(diǎn)是對(duì)結(jié)構(gòu)體指針變量的正確引用與計(jì)算。主函數(shù)中首先定義了三個(gè)結(jié)構(gòu)體指針變量p,q,r。然后調(diào)用內(nèi)存分配函數(shù)分別為其分配地址空間,程序中變量q->num的值為20,指針變量q->next指向指針變量r,r->nnm的值為30,所以變量q->next->nm的值為30,因此,表達(dá)式q->num+q->next->num的值為20+30=50.所以4個(gè)選項(xiàng)中D正確。

61.D共用體變量中的所有成員共享一段公共存儲(chǔ)區(qū),所有成員的首地址相同。在每一個(gè)時(shí)刻所有的成員中只有一個(gè)有效,即只有最后一個(gè)被賦值的成員有效,其余的成員無(wú)效。

62.A當(dāng)y為。時(shí),表達(dá)式y(tǒng)一才為假,循環(huán)結(jié)束,最終y的值為一l,所以答案選擇A)。

63.B在while(E)中,表達(dá)式E可以是C語(yǔ)言中任意合法的條件表達(dá)式,但不能為空,由它來(lái)控制循環(huán)體是否執(zhí)行。在選項(xiàng)8中表達(dá)式E>0||E<0是一個(gè)邏輯表達(dá)式。

64.A

65.C

66.C

67.A本題考查的是結(jié)構(gòu)體成員的引用。在主函數(shù)main中定義了一個(gè)整型變量i和一個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論