2022-2023年貴州省六盤水市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第1頁
2022-2023年貴州省六盤水市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第2頁
2022-2023年貴州省六盤水市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第3頁
2022-2023年貴州省六盤水市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第4頁
2022-2023年貴州省六盤水市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

2022-2023年貴州省六盤水市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________

一、單選題(20題)1.如果對線性表的操作只有兩種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用()。

A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表

2.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

3.在以下一組運算中,優(yōu)先級最高的運算符是()

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

4.下列敘述中錯誤的是()。

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結(jié)構(gòu)

C.線性表的所有結(jié)點有且僅有一個前件和后件

D.線性表可以是空表

5.

6.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯無輸出結(jié)果D.14.0

7.以下敘述中正確的是()。A.A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失

B.打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋

C.在一個程序中當(dāng)對文件進行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)

D.c語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)

8.參加百年阿里培訓(xùn)的n位同學(xué)結(jié)伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學(xué)一組,請給出一個算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時間復(fù)雜度為?(假設(shè)體重均為整數(shù))()

A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)

9.如下程序段

#include<stdio.h>

#include<ctype.h>

#include<conio.h>

intfun(char*str)

{inti,j=0;

for(i=0;str[i]!=’\0’;i++)

if(str[i]!=’’)str[j++]=str[i];

str[j]=’\0’;

}

main()

{

charstr[81];

intn;

clrscr();

printf("Inputastring:");

gets(str);

fun(str);

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

}

當(dāng)運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67

B.asdafaaz67

C.asd

D.z67

10.設(shè)有如下定義和語句:FILE*fp;intdata[10],i,n;fp=fopen(“abc.txt”,“r”);文本文件abc.txt中的數(shù)據(jù)為58192765190,其中第1個數(shù)據(jù)代表的是它后面數(shù)據(jù)的個數(shù)。若文件已正確打開,則以下程序段中能將文件的最后5個數(shù)據(jù)依次正確讀入數(shù)組data[0]~data[4]中的是()。

A.fscanf(fp,“%d”,&n);for(i=0;i<n;i++)fscanf(fp,“%d”,&data[i]);

B.i=0;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

C.for(i=0;!feof(fp);i++)fscanf(fp,“%d”,&data[i]);

D.i=0;fscanf(fp,“%d”,&n);i++;while(!feof(fp)){fscanf(fp,“%d”,&data[i]);i++;}

11.

12.棧通常采用的兩種存儲結(jié)構(gòu)是()。

A.順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)B.散列方式和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)

13.以下涉及字符串?dāng)?shù)組、字符指針的程序段中,沒有編譯錯誤的是()。A.char*str,name[1];str=“Hello”;

B.char*str,name[1];name=“Hello”;

C.charstrl[10]=“ex1.c”,str2[6];str2=str1;

D.charhead_line[];head_line=“\\0”;

14.假設(shè)整型數(shù)i的地址為0x12345678,指針ip地址為0x21850043,則執(zhí)行以下后,k的值為()。A.0x12345678B.0x21850043C.100D.不確定

15.a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達式中,值為0的表達式是()

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

16.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不確定D.bcdef

17.在C語言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型

B.return語句中表達式值的類型

C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實參類型

D.函數(shù)定義時形參的類型

18.數(shù)據(jù)的獨立性是指______。

A.數(shù)據(jù)庫的數(shù)據(jù)相互獨立

B.DBMS和DB相互獨立

C.用戶應(yīng)用程序與數(shù)據(jù)庫的數(shù)據(jù)相互獨立

D.用戶應(yīng)用程序與DBMS相互獨立

19.設(shè)有兩個串p和q,求q在p中首次出現(xiàn)的位置的運算稱為()。

A.連接B.模式匹配C.求子串D.求串長

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

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

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

C.#include<stdi0.h>必須放在C程序的開頭

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

二、2.填空題(20題)21.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。

22.下列程序的運行結(jié)果是______。

#definePOW(r)(r)*(r)

main()

{intx=3,y=2,t;

t=POW(x+y);

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

}

23.下面rotme函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A'。例如:

請?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][N])

{inti,j,t;

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

for(j=0;【】;j++)

{t=a[i][j];

【】;

a[j][i]=t;

}

}

24.函數(shù)sstrcmp的功能是對兩個字符串進行比較。當(dāng)s所指字符串和t所指字符串相等時,返回值為0;當(dāng)s所指字符串大于t所指字符串時,返回值大于0;當(dāng)s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp)。請?zhí)羁铡?/p>

#include<stdio.h>

intsstrcmp(char*s,char*t)

{while(*s&&*t&&*s==【】)

{s++;t++;}

return【】;

}

25.設(shè)有下列宏定義:#defineA2

#defineBA+3

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

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

27.請讀程序片段:

inta=17;

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

以上程序片段的輸出結(jié)果是【】。

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

voidsstrcpy(char*s,char*t)

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

main()

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

sstrcpy(str1,str2);

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

}

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

#include<stdio.h>

main0

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

switch(x)

{case1:

switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:

a++;b++;break;

}

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

}

30.單元測試又稱模塊測試,一般采用【】測試。

31.在對文件進行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。

32.下面程序中函數(shù)creat用于建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點總是插在鏈表的末尾,單向鏈表的頭指針作為函數(shù)值返回。將程序補充完整。

#include<stdiao.h>

structlist

{chardata;structlist*next;};

structlist*creat()

{

structlist*h,*p,*q;charch;

h=【】malloc(sizeof(structlist));

p=q=h;ch=getchar();

while(ch!='?')

{

p=【】malloc(sizeof(structlist));

p->data=ch;q->next=p;q=p;ch=getchar();

}

p->next='\0';

【】;

}

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

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

}

34.計算機中存儲容量的基本單位是字節(jié),它的英文名稱是【】。

35.在面向?qū)ο蟮姆椒ㄖ?,______描述的是具有相似屬性與操作的一組對象。

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

intword(char*s)

{intnum=0,flag=0;

while(*s)

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

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

}

return【】}

37.fun1函數(shù)的功能是將3個整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c3個變量中,a中放最大數(shù),fun2函數(shù)的功能是交換兩個變量中的值。補足所缺語句。

fun2(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

fun1(int*p1,int*p2,int*p3)

{if(*p3>*p2)fun2(*P2,*p3);

if(*p1<*p3)fun2(______);

if(*p1<*p2)fun2(______);

}

main()

{inta,b,c;

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

fun1(&a,&b,&c);

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

}

38.有以下程序:

floatf1(floatn)

{returnn*n;}

floatf2(floatn)

{return2*n;}

main()

{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;

p1=f1;p2=f2;

y1=p2(p1(2.0));

t=P1;p1=p2;p2=t;

y2=p2(p1(2.0));

printf("%3.0f,%3.0f\n",y1,y2);

}

程序運行后的輸出結(jié)果是【】。

39.【】是數(shù)據(jù)庫設(shè)計的核心。

40.以下程序的運行結(jié)果是______。

#include<string.h>

typedefstructstudent{

charname[10];

longsno;

floatscore;

}STU;

main()

{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p-&d;

d=a;

if{strcmp(a.nalne,)>0)d=b;

if(strcmp(,)>0)d=c;

printf("%ld%s\n",d.sno,p>name};

}

三、1.選擇題(20題)41.下列選項中不屬于C語言的數(shù)據(jù)類型是()。

A.復(fù)數(shù)型B.邏輯型C.雙精度型D.集合型

42.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=1,b=3;if((++a<0)&&!(b--<=0))printf("%d,%d\n",a,B;elseprintf("%d,%d\n",b,A);}

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

43.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%%5.0f%c%d",58,76273.0'-',2278);fclose(fp);}

A.5876273-2278

B.5876273.000000-2278

C.5876273-2278

D.因文件為二進制文件而不可讀

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

A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出

B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變

C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息

D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)

45.若有以下說明和語句,則四個選項中是對c數(shù)組元素的正確引用的是()。intc[4][5],(*cp)[5];cp=c;

A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)

46.有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fp=fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運行后的輸出結(jié)果是

A.2030B.2050C.3050D.3020

47.在ASCII代碼表中每一個大寫字母比它相應(yīng)的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

48.表達式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8

49.支持數(shù)據(jù)庫各種操作的軟件系統(tǒng)叫做

A.數(shù)據(jù)庫管理系統(tǒng)B.文件系統(tǒng)C.數(shù)據(jù)庫系統(tǒng)D.操作系統(tǒng)

50.有以下函數(shù):intfun(char*s){char*t=s;while(*t++);return(t-s)該函數(shù)的功能是______。

A.比較兩個字符串的大小

B.計算s所指字符串占用內(nèi)存字節(jié)個數(shù)

C.計算s所指字符串的長度

D.將s所指字符串復(fù)制到字符串t中

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

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

52.若要用fopen函數(shù)打開一個文本文件,該文件要既能讀也能寫,則文件使用方式的字符串為()。

A.r+B.a+C.rb+D.'wb+"

53.設(shè)有如下關(guān)系表:

則下列操作中,正確的是()。

A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S

54.設(shè)有聲明語句chara='\72';,則變量a______。

A.包含1個字符B.包含2個字符C.包含3個字符D.聲明不合法

55.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i++)len+=strlen(argv[i]);printf("%d\n",len);}程序編譯連接后生成的可執(zhí)行文件是ex1.exe,若運行時輸入帶參數(shù)的命令行是:ex1abcdefg10<回車>則運行的結(jié)果是()。

A.22B.17C.12D.9

56.下列數(shù)據(jù)結(jié)構(gòu)中,按先進后出原則組織數(shù)據(jù)的是

A.線性鏈表B.棧C.循環(huán)鏈表D.順序表

57.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));

A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數(shù)

58.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

59.設(shè)計數(shù)據(jù)庫的存儲結(jié)構(gòu)屬于()。

A.需求分析B.概念設(shè)計C.邏輯設(shè)計D.物理設(shè)計

60.若要求在if后一對圓括號中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達式為()

A.a<0B.!aC.a=0D.a

四、選擇題(20題)61.設(shè)有如下說明

typedefstructST

{

longa;intb;charc[2];

}NEW;

則下列敘述中正確的是

A.以上的說明形式非法B.ST是一個結(jié)構(gòu)體類型

C.NEW是一個結(jié)構(gòu)體類型D.NEW是一個結(jié)構(gòu)體變量

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

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

63.有以下程序:

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

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

64.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21

65.面下程序段的運行結(jié)果是

charstr[]="ABC",*p=str;

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

A.67B.0C.字符’C’的地址D.字符’C’

66.以下程序的輸出結(jié)果是()。

main()

{inta=1;

charc=’a’;

floatf=2.0;

Printf("%d\n",(!(a==0),f1=0&&c==’A’));

}

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

67.有兩個關(guān)系R和T如下:

則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并

68.在長度為n的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)是

A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)

69.

70.

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

A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)

B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)

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

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

72.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是A.scanf("%d",pa);B.scanf("%d",a);C.scanf("%d",&pa);D.scanf("%d",*pa);

73.已定義:inta=25,b=14,c=19;,以下三目運算符(?:)所構(gòu)成語句的執(zhí)行后

a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是

A.***a=25,b=13,c=19B.***a=26,b=14,c=19C.###a=25,b=13,c=19D.###a=26,b=14,c=19

74.

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

#defineN20

voidfun(inta[],intn,intm)

{inti,j;

for(i=m;i>n;i--)a[i+1]=a[i];

}

main()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,2,9);

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

}

A.10234B.12344C.12334D.12234

75.有以下程序:main{union{charch[2];intd;}s;d=0x4321;printf("%x,%x\n",S.ch[0],S.ch[l]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()A.21,43B.43,21C.43,00D.21,00

76.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數(shù)的類型是()。A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯

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

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

78.以下選項中合法的標(biāo)識符是()。A.1_2B._12C.2_1D.12__

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

A.c語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行

B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行

C.c語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行、

D.main的各種大小寫拼寫形式都可以作為主函數(shù)名,如MAIN,Main等

80.有以下程序:

voidmain()

{intk=10,n=0;

for(;n<k;)

{//n++;

if(n++%3!=0)continue;

k--;}

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

}

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

A.7,7B.6,6C.3,3D.4,4

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的作用是:將字符串str中的大寫字母都改為對應(yīng)的小寫字母,其他字符不變。例如,若輸入“abD,dFAD”,則輸出“abd,dfad”。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計題(1題)82.下列程序定義了M×M的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)proc(),函數(shù)的功能是:求出數(shù)組周邊元素的平均值并作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的值為:21098則返回主程序后,s的值為3.750000。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。

3.C

4.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C.是錯誤的。

5.C

6.C宏定義不是C語句,末尾不需要有分號。所以語句Printf("%4.1f\\n",,S(a+b));展開后為printf("%4.1f\\n",3.5;*a+b*a+b;);所以程序會出現(xiàn)語法錯誤。

7.AB)選項中打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。c)選項中在一個程序中當(dāng)對文件進行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進行重新定位即可。D)選項中,C語言中的文件可以進行隨機讀寫。故本題答案為A)。

8.B

9.A在本題中,程序首先定義一個返回類型為整型的函數(shù)fun,該函數(shù)帶有一個指針型的形參變量str,從主函數(shù)中對其調(diào)用時傳遞的參數(shù)我們可以知道,該指針指向的是一個數(shù)組,在該函數(shù)體中,首先定義兩個整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識,即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結(jié)果為真,說明取到的當(dāng)前字符不是空字符,這時執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結(jié)束后執(zhí)行str[j]=’\\0’;,即保存字符結(jié)束標(biāo)識符,用來標(biāo)識字符串結(jié)束。通過上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。

在主函數(shù)中,首先定義了一個大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語句,執(zhí)行g(shù)ets(str);語句,該語句的作用是從鍵盤輸入一個字符串到str數(shù)組,碰到換行符結(jié)束。然后調(diào)用函數(shù)fun,其實參為str。通過上面對函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。

程序最后執(zhí)行輸出語句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結(jié)果是asdafaaz67,本題答案選A。

10.A由題意可知,文件abc.txt中存放了6個整數(shù)。其中第1個表示后續(xù)數(shù)據(jù)的個數(shù)。要將最后5個數(shù)據(jù)讀入數(shù)組data中,需要讀取數(shù)據(jù)的個數(shù)為5,所以首先調(diào)用fscanf函數(shù),將5讀入整型變量n中;接著通過for循環(huán),i分別取值0~n-1,調(diào)用fscanf函數(shù)將n個整數(shù)讀入data[0]~data[n-1]中。故本題答案為A選項。

11.A

12.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈?zhǔn)綏?。棧的順序存儲結(jié)構(gòu)是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設(shè)指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈?zhǔn)綏5牟僮鞲子趯崿F(xiàn)。注意:這3種運算方法在各種存儲結(jié)構(gòu)中的應(yīng)用。

13.AC語言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項B、C、D錯誤,選項A正確。故本題答案為A選項。

14.C

15.D

16.C解析:字符串少一個結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。

17.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達式類型一致。如果函數(shù)值的類型和return語句中的表達式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。

18.C解析:修改數(shù)據(jù)庫的物理結(jié)構(gòu)或邏輯結(jié)構(gòu)時,通過兩級映像,可以使得應(yīng)用程序不必修改,保證數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性包括物理獨立性和邏輯獨立性。

19.B

20.A預(yù)處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯誤。

21.參照完整性參照完整性

22.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。

23.j<Ia[i][j]=a[j][i]j<I\r\na[i][j]=a[j][i]解析:本題中要求將n行n列的矩陣A轉(zhuǎn)置,即讓數(shù)組中行上的元素變成對應(yīng)列上的元素。即把對角線兩邊的元素對換,所以本題的第一個空白處應(yīng)該填寫j<i,第二個空白處填寫交換對角線兩邊的元素的語句a[i][j]=a[j][i]。

24.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:函數(shù)sstrcmp()有兩個字符型指針變量,用來指向兩個字符串。比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應(yīng)的字符相等則接著比較下一個字符,一直到兩個字符串中對應(yīng)字符不等,或者有一個為\\0,此時字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為\\0,且*s和*t相同,第一處應(yīng)填“*t”或其他等價形式。根據(jù)題意可知第二處應(yīng)填*s-*t或其等價形式。

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

26.概念概念

27.1721

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

29.a=2b=3a=2,b=3解析:分析程序,程序從x=l語句開始執(zhí)行,之后執(zhí)行第一個switch語句,switch(x)=switch(1),所以執(zhí)行case1,casel語句中包含一個復(fù)合switch語句;這時執(zhí)行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復(fù)合語句執(zhí)行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a、b各加1,得到a=2,b=3。

30.白盒法白盒法

31.rewind函數(shù)rewind函數(shù)解析:rewind函數(shù)的功能是使文件的位置指針回到文件的開頭。

32.(structlist*)(structlist*)return(h)

33.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。

34.Brte

35.類類解析:在面向?qū)ο蟮姆椒ㄖ?,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。

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

37.*p1*p3*p1*p2。*p1,*p3*p1,*p2。解析:本題考查的知識點有3個,①指針變量作為形參,②函數(shù)的嵌套調(diào)用,③排序的基本方法。

38.8168,16解析:float(*p1)(float)是定義p1為指向函數(shù)的float型的指針變量。因此p1=f1;p2=f2;表示p1指向函數(shù)f1,p2指向函數(shù)f2,故所有y1=p2(p1(2.0))=f2(f1(2.0))=8;后面將p1與p2互換,y2=f1(f2(2.0))=16。

39.數(shù)據(jù)模型數(shù)據(jù)模型

40.2002Shangxian2002Shangxian解析:本題考核的知識點是結(jié)構(gòu)體類型的定義、賦初值以及字符串的比較。本題中首先定義一個結(jié)構(gòu)體類型STU,鎮(zhèn)結(jié)構(gòu)體由一個長度為10的字符型數(shù)組、一個long型變量和一個float型變量組成。接著在主函數(shù)中用STU定義了4個結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義?一個結(jié)構(gòu)體指針p,并讓它指向變量d。然后讓將變量a的值賦給變量d,接著通過兩個if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個訂語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個賦值給結(jié)構(gòu)體變量d,第二個if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個賦給結(jié)構(gòu)體變量d。比較通過函數(shù)strcmp實現(xiàn)。strcmp()函數(shù)有兩個參數(shù),分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。程序中第一個if語句strcmp(,)>0為真,故將b的值賦給d;第二個if語句strcmp()>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian

41.A解析:在C語言中,數(shù)據(jù)類型可分為基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針類型、空類型4大類,其中基本類型;字符型、整型、實型(單精度型和雙精度型)、枚舉類型。構(gòu)造類型:數(shù)組、結(jié)構(gòu)體、公用體。選項B中的邏輯型和C中雙精度類型都屬于基本數(shù)據(jù)類型,選項D集合類型屬于構(gòu)造類型;而選項A復(fù)數(shù)型不是C語言的數(shù)據(jù)類型。

42.C

43.C解析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自動加分隔符,選項A錯誤;浮點數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項B也是錯誤的。

44.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標(biāo)是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。

45.D解析:本題考查數(shù)組元素的引用。語句cp=c;將數(shù)組c的首行地址賦給了指針數(shù)組cp。選項A)的cp+1是指將數(shù)組c的首行地址加1,即為第二行地址;選項B)的*c(cp+3)是地址,等于數(shù)組c的首地址加3的內(nèi)存單元的內(nèi)容,不是對數(shù)組元素的引用;選項c)的*(cp+1)+3是地址,等于數(shù)組c的首地址加1的內(nèi)存單元中存放的值加3,不是對數(shù)組元素的引用。

46.A解析:本題考查的知識點是文件的綜應(yīng)用。本題首先以創(chuàng)建方式打開文件“d1.dat”,兩次調(diào)用fprintf()把i和i的值寫到文件“d1.dar”中,文件“d1.dat的內(nèi)容為20<回車>30<回車,后把該文件關(guān)閉再以讀的方式打開,文件位置指針指向文件頭,在通過fscanf()函數(shù)從中讀取兩個整數(shù)到k和n中,由于格式符無間隔,因此輸入數(shù)據(jù)可以用回車隔開,故輸入的k值為20,n的值為30.所以4個選項中A正確。

47.A解析:本題考查大小寫字母的ASCII碼值的關(guān)系。大寫字母比它相應(yīng)的小寫字母的ASCII碼小32。

48.D解析:*、/和%的優(yōu)先級要高于+和—,同級別的運算符從左至右運算。所以本題首先計算5/2和5%2,雖然我們都知道5/2的結(jié)果應(yīng)該是2.5,但C語言中規(guī)定了兩個整數(shù)相除的結(jié)果為整數(shù),而且是截尾取整,所以5/2的結(jié)果是2;5%2表示的是5除以2所得的余數(shù),其結(jié)果為1。計算完后,表達式變?yōu)?.6-2+1.2+1,從左至右計算不難得出結(jié)果為3.8,故應(yīng)該選擇D。

49.A解析:數(shù)據(jù)庫管理系統(tǒng)是一種系統(tǒng)軟件,負責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務(wù)等操作。所以答案為A。

50.C解析:定義一個字符指針t,并將字符指針s的首地址賦給字符指針t;通過while語句將指針t往下移到字符串最后一個字符后面的地址,指針s始終指向首地址,將末地址減去首地址可以計算出字符串的長度。

51.A解析:本題考查'%'運算符的使用。運算符'%'要求兩個運算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達式ao%=(b%2)等價于a=a%o(b%2)=5%(7%2)=5%1=0。

52.A解析:選項A表示為讀/寫打開一個文本文件,符合題意;選項B表示為讀/寫建立一個新的文本文件;選項C表示為讀/寫打開一個二進制文件:選項D表示為讀/寫建立一個新的二進制文件。故應(yīng)該選擇A。

53.B解析:T是R∪S的結(jié)果,關(guān)系T由屬于關(guān)系R的或者屬于關(guān)系S的元組組成。

54.A解析:轉(zhuǎn)文字符常量'\\xx'可以把'\\'后面的數(shù)字轉(zhuǎn)換為對應(yīng)的ASCII字符。

55.D解析:本題執(zhí)行時,因為命令行一共有4個字符串,所以argc的值為4,在循環(huán)中依次求出argv[1]、argv[2]和argv[3]指向的字符串('abcd'、'efg'和'10')的長度,并把它們加到變量len中,得到len的值9。所以最后輸出的len值為9,故4個選項中D正確。

56.B解析:棧是限定在二端進行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。注意:隊列組織數(shù)據(jù)的原則是“先進先出”或“后進后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊列組織數(shù)據(jù)的原則。

57.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

58.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。

59.DD?!窘馕觥课锢碓O(shè)計階段主要解決選擇文件存儲結(jié)構(gòu)和確定文件存取方法的問題。物理設(shè)計階段包括:選擇存儲結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。

60.D

61.Ctypedef關(guān)鍵字用于聲明一個新的類型名代替已有的類型名。本題中如果沒有用typedef進行定義,則structST為結(jié)構(gòu)體類型,現(xiàn)在用typedef定義后,相當(dāng)于用NEW代表了structST這一結(jié)構(gòu)體類型,故NEW為結(jié)構(gòu)體類型。

62.B指針中存放的是變量的地址,指針也可以進行增減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中“P+6”指的是將指針向后移動了6個存儲單元,即指向uE63,存放的是b[6]的地址。

63.B&按位與,如果兩個相應(yīng)的二進制位都為l,則該位的結(jié)果值為1,否則為0。l按位或,兩個相應(yīng)的二1進制位中只要有一個為l,該位的結(jié)果值為l。2的二進制為100000010,4的二進制為00000100,所以做或運算結(jié)

溫馨提示

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

最新文檔

評論

0/150

提交評論