版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022年江西省萍鄉(xiāng)市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下敘述中正確的是()A.當(dāng)對文件的讀(寫操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個程序中當(dāng)對文件進行了寫操作后,必須先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù)
D.語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
2.
3.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
4.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
5.在如下結(jié)構(gòu)定義中,不正確的是()。A.
B.
C.
D.
6.以下敘述中不正確的是
A.預(yù)處理命令行都必須以#號開始
B.在程序中凡是以#號開始的語句行都是預(yù)處理命令行
C.宏替換不占用運行時間,只占編譯時間
D.在以下定義是正確的:#definePI3.1415926;
7.下列關(guān)于線性鏈表的敘述中,正確的是()A.各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致
B.各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)
C.進行出入與刪除時,不需要移動表中的元素
D.以上三種說法都不催
8.給出以下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為()。
A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度
9.
10.算法的時間復(fù)雜度取決于()
A.問題的規(guī)模B.待處理數(shù)據(jù)的初態(tài)C.A和B
11.將發(fā)送端數(shù)字脈沖信號轉(zhuǎn)換成模擬信號的過程稱為
A.鏈路傳輸B.調(diào)制C.解調(diào)D.數(shù)字信道傳輸
12.有以下程序段chareh;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
13.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點:
則以下選項中司將q所指結(jié)點從鏈表中刪除并釋放該結(jié)點的語句組是______。A.(*p).next=(*q).next;free(p);
B.p=q->next;free(q);
C.p=q;free(q);
D.p->next=q->next;free(q);
14.在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為()。
A.31B.32C.16D.15
15.若有定義intw[3][5];,則以下不能正確表示該數(shù)組元素的表達式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)
16.由兩個棧共享一個存儲空間的好處是______。
A.減少存取時間,降低下溢發(fā)生的幾率
B.節(jié)省存儲空間,降低上溢發(fā)生的幾率
C.減少存取時間,降低上溢發(fā)生的幾率
D.節(jié)省存儲空間,降低下溢發(fā)生的幾率
17.在一個有頭結(jié)點的鏈隊列中,假設(shè)f和r分別為隊首和隊尾指針,則插入s所指的結(jié)點的運算是()。
A.f->next=s;f=s;
B.r->next=s;r=s;
C.s->next=r;r=s;
D.s->next=f;f=s;
18.若一棵二叉樹具有10個出度為2的結(jié)點,則在該二叉樹中,出度為0的結(jié)點個數(shù)是()
A.9B.11C.12D.不確定
19.
20.下列敘述中正確的是()。
A.對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n
B.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為n/2
C.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為log2n
D.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為nlog2n
二、2.填空題(20題)21.若有如下程序:
main()
{intx=5,y,*t;t=&x;
y=++(*t);
printf("%d,%d",x,y);}
則程序執(zhí)行后的x值為【】,y的值為【】。
22.對于長度為n的順序存儲的線性表,當(dāng)隨機插入和刪除—個元素時,需平均移動元素的個數(shù)為【】。
23.下列程序執(zhí)行后輸出的結(jié)果是【】。
f(intA)
{staticc=0;
c=a+c++;
return(c);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
24.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
25.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>
main()
{intx[10],a[9],i;
for(i=0;i<10;i++)scanf("%d",&x[i]);
for([11];i<10;i++)
a[i-1]=x[i]+[12];.
for(i=0;i<9;i++)printf("%d",a[i]);
printf("");
}
26.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
27.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請?zhí)羁眨瓜旅娉绦蚨蔚墓δ芘c之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
28.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA"m,"BB","CC:,"DD"};
printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);
}
29.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。
#include<stdio.h>
main()
{inti;
inta[5]={1,3,5,7,9};
int*num[5];
int【】;
for(i=0;i<5;i++)
num[i]=【】;
p=num+0;
for(i=0;i<5;i++)
{printf("%d%d\n",【】);
p++;
}
}
30.語句:x++;++x;x=1/x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
31.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,legth=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<length)
while(k<length)
s[j++]=s[k++];
s[j]='\0'
}
32.通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為【】。
33.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
34.有以下程序
voidf(inty,int*x)
{y=y+*x;*X=*X+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,y);
}
執(zhí)行后輸出結(jié)果是______。
35.實體之間的聯(lián)系可以歸結(jié)為一對一的聯(lián)系,一對多的聯(lián)系與多對多的聯(lián)系。如果一個學(xué)校有許多學(xué)生,而一個學(xué)生只歸屬于一個學(xué)校,則實體集學(xué)校與實體集學(xué)生之間的聯(lián)系屬于【】的聯(lián)系。
36.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
37.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getehar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
38.已知a=1,b=2,則表達式(a&B)&b||b的結(jié)果為()。
39.以下程序中給指針p分配3個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdllb.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
40.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使相同的數(shù)只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)fun返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
2223445666677899101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:2345678910。請?zhí)羁铡?/p>
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
三、1.選擇題(20題)41.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
42.為了提高測試的效率,應(yīng)該()。
A.隨機選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.集中對付那些錯誤群集的程序
43.以下符合C語言語法的實型常量是
A.1.2E0.5B.3.14159EC.5.00E-03D.E15
44.c語言規(guī)定,在一個源程序中,main函數(shù)的位置()。
A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D.必須在最后
45.以下對枚舉類型名的定義中正確的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
46.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結(jié)果是
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
47.下列敘述中,不符合良好程序設(shè)計風(fēng)格要求的是
A.程序的效率第一,清晰第B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息
48.以下各選項企圖說明一種新的類型名,其中正確的是______。
A.typedefv1int;
B.typedefv2=int;
C.typedefintv3;
D.typedefv4:int
49.以下關(guān)于C語言數(shù)據(jù)類型的敘述中正確的是()。
A.C基本數(shù)據(jù)類型包括:分為整型、實型、浮點型、字符型四種
B.實型常量的表達方式包括十進制形式、十六進制形式、二進制形式、八進制形式、指數(shù)形式
C.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
D.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
50.下列程序執(zhí)行后的輸出結(jié)果是______。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}
A.456B.258C.369D.789
51.設(shè)有以下程序段:structst{intn;structst*next;};staticstructsta[3]={5,&a[1],7,&a[2],9,'\0'),*p;p=&a[0];下面選項中,其值為6的表達式為______。
A.P++->nB.p->n++C.(*p).n++D.++p->n
52.下列程序運行后,輸出結(jié)果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}
A.1234567B.7654321C.1711717D.7177171
53.下列術(shù)語中,與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)的是______。
A.隊列B.棧C.二叉樹D.堆
54.下列說法不正確的是()。
A.C語言程序是以函數(shù)為基本單位的,整個程序由函數(shù)組成
B.C語言程序的一條語句可以寫在不同的行上
C.C語言程序的注釋行對程序的運行功能不起任何作用,所以注釋應(yīng)該盡可能少寫
D.C語言程序的每個語句都以分號結(jié)束
55.運行下列程序,若從鍵盤輸入字母“a”,則輸出結(jié)果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);
A.fB.tC.eD.d
56.在數(shù)據(jù)庫的兩級映射中,從概念模式到內(nèi)模式的映射一般由______實現(xiàn)。
A.數(shù)據(jù)庫系統(tǒng)B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫操作系統(tǒng)
57.若有說明inta[][3]={1,2,3,4,5,6,7,8,9),則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無確定值
58.以下選項中屬于C語言的數(shù)據(jù)類型是_______。
A.復(fù)數(shù)型B.邏輯型C.雙精度型D.集合型
59.以下關(guān)于switch語句和break語句的描述中,正確的是______。
A.在switch語句中必須使用break語句
B.在switch語句中,可以根據(jù)需要使用或不使用break語句
C.break語句只能用于switch語句中
D.break語句是switch語句的一部分
60.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。
A.隊列B.線性表C.二叉樹D.棧
四、選擇題(20題)61.以下關(guān)于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通常可以增加程序的可讀性
62.右兩個關(guān)系R和S如下:
則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影
63.有以下程序
#include"stdio.h"
main()
{structdate
{intnumber;
floatfenzhi;
charname;
}stu;
printf("%d\n",sizeof(stu));
}程序的運行結(jié)果是
A.3B.5
C.7D.8
64.
65.對于一個正常運行的C程序,以下敘述中正確的是()。A.程序的執(zhí)行總是從main函數(shù)開始
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
66.有如下程序
#include"stdio.h"
voidfun(int*a,int*b)
{intm;
m=(*a+*b)*(*a+*b);
m+=(*a-*b)*(*a-*b);
printf("%d\n",m);}
main()
{inta=5,b=6,*x=&a,*y=&b;
fun(x,y);}
程序執(zhí)行后輸出的結(jié)果為
A.120B.121
C.122D.123
67.有以下函數(shù):
該函數(shù)的功能是()。
A.tt-gs所指字符串的長度
B.比較兩個字符串的大小
C.計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)
D.將s所指字符串復(fù)制到字符串t中
68.
69.
70.
有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序()。
#include<string.h>
voidf(char*p[],intn)
{char*t;inti,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j]>0){t=p[i];p[i]=p[j];p[j]
=t;}
}
main
{char*P[5]={"abe","aabdfg","abbd","dcd-
be","cd"};
f(p,5);
printf("%d\n",strlen(p[1]));
}
程序運行后的輸出結(jié)果是()o
A.2B.3C.6D.4
71.下列可用于C語言用戶標(biāo)識符的一組是
A.void,define,WORDB.a(chǎn)3_b3,_123,Car
C.For,-abc,CaseD.2a,DO,sizeof
72.在軟件開發(fā)中,需求分析階段可以使用的工具是()。A.N—s圖B.DFD圖C.PAD圖D.程序流程圖
73.
74.已知字母A的ASCII碼為十進制的65,下面程序的輸出為()。
voidmain()
{charch1,ch2;
ch1=’A’+’5’-’3’;
ch2=’A’+6-3;
printf("%d,%c\n",ch1,ch2);
}
A.67,DB.B,CC.C,DD.不確定的值
75.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.邏輯結(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ù)處理的效率
76.有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",'');
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。A.A.i-1B.iC.i+1D.4一i
77.在結(jié)構(gòu)化程序設(shè)計方法中,下面內(nèi)聚性最弱的是()。
A.邏輯內(nèi)聚B.時間內(nèi)聚C.偶然內(nèi)聚D.過程內(nèi)聚
78.
79.
80.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。
A.當(dāng)產(chǎn)生的隨機數(shù)n為0時,結(jié)束程序運行
B.當(dāng)產(chǎn)生的隨機數(shù)n為4時,結(jié)束循環(huán)操作
C.當(dāng)產(chǎn)生的隨機數(shù)n為l和2時,不做任何操作
D.細循環(huán)語句固定執(zhí)行8次
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:給定n個實數(shù),輸出平均值,并統(tǒng)計平均值以上(含平均值)的實數(shù)個數(shù)。
例如,n=8時,輸入90.009,179.623,167.575,100.051,6.092,154.986,12.432,45.765,所得平均值為94.566635,在平均值以上的實數(shù)個數(shù)應(yīng)為4。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.編寫函數(shù)fun(),其功能是計算:
s作為函數(shù)值返回。
在C語言中可調(diào)用log(n)函數(shù)求1n(n)。log函數(shù)的引
用說明為:doublelog(doublex)。
例如,若m的值為20,則fun()函數(shù)值為6.506583。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。
試題程序:
參考答案
1.AB)選項中打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C)選項中在一個程序中當(dāng)對文件進行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進行重新定位即可。D)選項中,C語言中的文件可以進行隨機讀寫。
2.D
3.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
4.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。??梢圆捎庙樞虼鎯Γ部梢圆捎面?zhǔn)酱鎯Α?/p>
5.B
6.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。
7.C
試題2分析
結(jié)點的存儲順序和邏輯順序不一定一致,存儲空間也不一定連續(xù)。插入和刪除元素的時候,不需要移動表中的元素。
試題2答案
C
8.C解析:在C語言中,字符串以'\\0'作為結(jié)束符,因此數(shù)組x的長度為7+1=8,而數(shù)組y的長度等于7。
9.B
10.C
11.B
12.D解析:輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。
13.D解析:本題題面要求刪除q所指結(jié)點并釋放該結(jié)點,而選項A中雖然是刪除了q所指鮚點,但并未釋放q這個結(jié)點,而釋放的是p結(jié)點,所以選項A錯誤;選項B是將q的下一結(jié)點的地址賦值給指針變量p,這意味著p原來的成員變量內(nèi)容被q的下一結(jié)點的成員變量內(nèi)容所代替,即原p結(jié)點也被刪除了,所以選項B錯誤;選項C相當(dāng)于將q的所有成員變量內(nèi)容代替了p的所有成員變量內(nèi)容,即p結(jié)點被刪除,所以錯誤;選項D是將q的下—結(jié)點的地址賦值給p的成員next\u3000(成員next用于存放一結(jié)點的地址),使得p的next成員不再指向q,而是指向q的下一結(jié)點,相當(dāng)于刪除了q這個結(jié)點,同叫用free函數(shù)正確釋放了q這一結(jié)點,所以選項D正確。
14.C解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結(jié)點。對于滿二叉樹,每一層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結(jié)點。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點在第5層上,即其結(jié)點數(shù)為2(k-1)=2(5-1)=16。
15.C在C語言中,二維數(shù)組的名字表示的是二維數(shù)組的地址,表達式*(W+1)表示的是二維數(shù)組的第一行的第二個元素。在其前面再加上*(*(w+1))就是錯誤的表達式。
16.B解析:常常一個程序中要用到多個棧,為了不發(fā)生上溢錯誤,就必須給每個棧分配一個足夠大的存儲空間。但實際中,很難準(zhǔn)確地估計,若每個棧都分配過大的存儲空間,勢必造成系統(tǒng)空間緊張;若讓多個棧共用一個足夠大的連續(xù)存儲空間,則可利用棧的動態(tài)特性使他們的存儲空間互補。
17.B
18.B
19.B
20.C\n\tC。【解析】二分法查找只適用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。
21.66
22.n/2n/2解析:刪除—個元素,平均移動的元素個數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動元素個數(shù)為n/2。
23.77解析:在程序執(zhí)行時,static變量僅初始化一次,下次使用時將使用上次保存的值。
24.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。
25.對于10個數(shù),相鄰的兩個數(shù)相加取和,總共要進行9次加法運算,所以空14處應(yīng)填入i=1。相鄰的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[i-1]。\r\n\r\n
26.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對鏈表的定義。
27.k<=nk++k<=n\r\nk++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數(shù)值的語句“k++;”。
28.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。
29.**pa+I**p*p
30.x+=1x+=1解析:本題考查'++'、'--'運算符。'++'、'--'只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
31.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后一個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進行了-i運算,故實際應(yīng)填入i<length。
32.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計、實現(xiàn)、測試、交付使用以及維護等活動。
33.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
34.8484解析:本題考核的知識點是函數(shù)的調(diào)用、值傳遞和地址傳遞的區(qū)別?!爸祩鬟f”指實參將值傳遞給形參后,實參與形參再無聯(lián)系。也就是說對行參的改變將不影響實參;地址傳遞是指地址或數(shù)組名作為形參時的參數(shù)傳遞,這種情況下對形參的改變將對實參產(chǎn)生影響.函數(shù)f(Y*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實參的y的值將不改變,而實參x的值將改變,故最后輸出的y的值為4,而x的值為8。
35.—對多—對多解析:實體之間的聯(lián)系可以歸結(jié)為一對一、一對多與多對多。如果一個學(xué)校有許多學(xué)生,而一個教師只歸屬于一個學(xué)生,則實體集學(xué)校與實體集學(xué)生之間的聯(lián)系屬于一對多的聯(lián)系。
36.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈?zhǔn)酱鎯碚f,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實現(xiàn)的。
37.1212解析:程序中的ch1與ch2為字符型變量,輸入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'將字符1,轉(zhuǎn)換為數(shù)值1,同理,n2為1*10+2=12。程序執(zhí)行后輸出十進制整數(shù)12。
38.1
39.3*sizeof(double)3*sizeof(double)解析:malloc(size)函數(shù)用于申請動態(tài)存儲空間,故應(yīng)填3個double型變量在內(nèi)存中所占的字節(jié)數(shù)。while循環(huán)的功能把字符從第二個元素開始左移一位,并將原第一個元素賦給最后一個元素。
40.!=returnj!=returnj解析:函數(shù)fun中,變量j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個元素的下一個元素的下標(biāo),所以訂語句中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個元素,若條件成立則表示出現(xiàn)了不同的值,a[i]要添加到新數(shù)組中。該算法只能用于數(shù)組已排序的題目中。
41.D解析:算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
42.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。
(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細的測試計劃,了解測試項目的業(yè)務(wù)需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。
43.C解析:在C語言中,可以用指數(shù)形式將實型常量表示為數(shù)值和指數(shù)兩部分,數(shù)值部分不能為空,指數(shù)部分只能為整數(shù)表示。選項A中1.2和0.5都不是整數(shù),故選項A不正確;選項B中3.14159也不是整數(shù),故選項B不正確;選項D中數(shù)值部分不能為空,故選項D也不正確。所以,4介選項中選項C符合題意。
44.C解析:不論main函數(shù)在整個過程中的位置如何,一個C程序總是從main函數(shù)開始執(zhí)行的。
45.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。
46.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號表達式中第二個表達式的值,為1。
47.A解析:當(dāng)今主導(dǎo)的程序設(shè)計風(fēng)格是“清晰第一,效率第二”的觀點。結(jié)構(gòu)化程序設(shè)計思想提出之前,在程序設(shè)計中曾強調(diào)程序的效率,而在實際應(yīng)用中,人們更注重程序的可理解性。
48.C解析:C語言中可以使用typedef來重新定義已有的數(shù)據(jù)類型,相當(dāng)于為數(shù)據(jù)類型取個別名。
49.C解析:C基本數(shù)據(jù)類型包括:分為整型、實型、枚舉型、字符型四種,實型就是浮點型,實型數(shù)據(jù)只有十進制,沒有2,8,16進制表達,在C語言中沒有定義邏輯類型,而是一般用0代表假,用非零代表真。
50.C解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][1],m[2][2],即369。
51.D
52.C
53.C
54.C解析:本題涉及C語言的3個基本知識點:①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個函數(shù)完成相對獨立的功能,其中只能包括一個主函數(shù);②C語言規(guī)定每個語句以分號結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;⑧注釋行雖然對程序的運行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。
55.C解析:首先,getchar函數(shù)通過鍵盤讀入字符'a',即c='a',(其實c得到的是字符a的ASCII碼值),然后判斷if語句的控制條件,發(fā)現(xiàn)'a'>='a'&&'a'<='g'成立,則執(zhí)行下一步列的語句,c=c+4,c得到的是字符e的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符e。
56.B解析:從概念模式到內(nèi)模式的映射一般由數(shù)據(jù)庫管理系統(tǒng)(DBMS)實現(xiàn)。
57.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大小:②當(dāng)初值的個數(shù)不能被第二維的常量表達式的值除盡時,第一維的大小等于所得商數(shù)加1。
58.C解析:C語言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種類型。
59.B解析:break語句可以根據(jù)需要,使用在循環(huán)體和switch語句體內(nèi),因此B是可選項。
60.C解析:線性表、棧和隊列所表達和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,它只能在固定的一端進行插入和刪除操作,又稱后進先出表(LastInFirstOut);隊列是插入在一端進行,刪除在另一端進行的線性表,又稱先進先出表(FirstInFirstOut)。
61.A解析:本題考查的重點是typedef的理解運用。C語言允許通過typedef為數(shù)據(jù)類型定義新名字,但是,它并非是生成新的數(shù)據(jù)類型,因此選項A是錯誤的。
62.C選擇:是在數(shù)據(jù)表中給予一定的條件進行篩選數(shù)據(jù)。投影:是把表中的某幾個屬性的數(shù)據(jù)選擇出來。連接:有自然連接、外連接,內(nèi)連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學(xué)中的并是一樣的。兩張表進行并操作,要求它們的屬性個數(shù)相同并且需要相容。
63.C本題主要考查結(jié)構(gòu)體所占存儲單元的計算。在C語言中,函數(shù)sizeof的作用是用以計算變量所處存儲單元的大小,即占的字節(jié)數(shù)。
在本題中,程序首先定義了一個結(jié)構(gòu)體,該結(jié)構(gòu)體包含三個成員變量,分別為整型、浮點型和字符型。在C語言中,這三種類型的變量所占的字節(jié)數(shù)分別為2、4、1,然后定義一個該結(jié)構(gòu)體的結(jié)構(gòu)體變量,并輸出該結(jié)構(gòu)體變量所占的字節(jié)數(shù)。那么結(jié)果應(yīng)為2+4+1=7,因此本題正確的答案為C。
64.B
65.A程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)中結(jié)束,其他函數(shù)通過main函數(shù)調(diào)用執(zhí)行,所以A)正確。
66.C在本題程序中,首先定義了一個fun函數(shù),函數(shù)帶有兩個指針變量的形參,在程序體中,定義一個整型變量m用來保存計算的結(jié)果,然后執(zhí)行第一條運算語句,并將運算結(jié)果保存至變量m,然后執(zhí)行第二條運算語句,最后輸出程序m的值。
在主函數(shù)中,首先定義兩個整型變量a和b,并分別賦值為5和6,定義兩個指針變量x和y,分別指向變量a和b。然后調(diào)用函數(shù)fun,調(diào)用函數(shù)傳遞的參數(shù)為x和y,因此,執(zhí)行m=(*a+*b)*(*a+*b)=(5+6)*(5+6)=121,然后執(zhí)行m+=(*a-*b)*(*a-*b)等價于m=m+(-1)*(-1)=121+1=122。因此,本題程序的輸出結(jié)果為122,答案選C。
67.A首先charss接受一個字符型數(shù)組的首地址并將這個首地址賦給另一個字符型指針char+
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版知識產(chǎn)權(quán)反擔(dān)保保證合同書2篇
- 2025版土地抵押權(quán)抵押資產(chǎn)證券化合同模板3篇
- 設(shè)備監(jiān)理合同-《設(shè)備監(jiān)理合同管理》押題密卷2
- 土壤污染治理與農(nóng)業(yè)生態(tài)環(huán)境保護考核試卷
- 唇部護理產(chǎn)品的選擇與涂抹技巧考核試卷
- 2025年銷售部勞動合同加班時間規(guī)定范本2篇
- 2025年家政服務(wù)服務(wù)調(diào)整協(xié)議
- 2025年度木材行業(yè)綠色認證及產(chǎn)品檢測服務(wù)合同范本4篇
- 2025年婚禮廣告合作協(xié)議
- 二零二五年度房地產(chǎn)項目納稅擔(dān)保及貸款擔(dān)保合同2篇
- 2024年安全教育培訓(xùn)試題附完整答案(奪冠系列)
- 神農(nóng)架研學(xué)課程設(shè)計
- 文化資本與民族認同建構(gòu)-洞察分析
- 2025新譯林版英語七年級下單詞默寫表
- 《錫膏培訓(xùn)教材》課件
- 唯物史觀課件
- 2021-2022學(xué)年四川省成都市武侯區(qū)部編版四年級上冊期末考試語文試卷(解析版)
- 中國傳統(tǒng)文化服飾文化
- 大氣污染控制工程 第四版
- 淺析商務(wù)英語中模糊語言的語用功能
- 工程勘察資質(zhì)分級標(biāo)準(zhǔn)和工程設(shè)計資質(zhì)分級標(biāo)準(zhǔn)
評論
0/150
提交評論