版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年貴州省銅仁地區(qū)全國計算機等級考試C語言程序設計測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.數(shù)組A中,每個元素的長度為3個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放的存儲器內(nèi),該數(shù)組按行存放,元素A[5][8]的起始地址為()。
A.SA+141B.SA+180C.SA+222D.SA+225
3.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的運行結(jié)果是()。
A.1B.41C.2D.331
4.有定義語句:inta=1,b=2,c=3,x;,則以下選項中各程序段執(zhí)行后,x的值不為3的是
A.if(c<a)x=1;elseif(b<a)x=1;elsex=3;
B.if(a<3)x=3;elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;
D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;
5.若串S=,software,其子串的數(shù)目是()。
A.8B.37C.36D.9
6.在以下一組運算中,優(yōu)先級最高的運算符是()
A.<=B.=C.%D.&&
7.
8.
9.數(shù)據(jù)庫的故障恢復一般是由()來執(zhí)行恢復
A.電腦用戶B.數(shù)據(jù)庫恢復機制C.數(shù)據(jù)庫管理員D.系統(tǒng)普通用戶
10.語句“printf("akbre"\'hi\'y\\\bou\n")”;的輸出結(jié)果是()。
A.akbre\'hi\'y'\\\bou
B.a\bre\'hi\\y\bou
C.re'hi'you
D.abre'hi'y\bou
11.以下關于簡單程序設計的步驟和順序的說法中正確的是()。
A.確定算法后,整理并寫出文檔,最后進行編碼和上機調(diào)試
B.首先確定數(shù)據(jù)結(jié)構,然后確定算法,再編碼,并上機調(diào)試,最后整理文檔
C.先編碼和上機調(diào)試,在編碼過程中確定算法和數(shù)據(jù)結(jié)構,最后整理文檔
D.先寫好文檔,再根據(jù)文檔進行編碼和上機調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構
12.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結(jié)構變量b占用內(nèi)存的字節(jié)數(shù)是
A.1B.2C.7D.11
13.以下敘述中不正確的是
A.預處理命令行都必須以#號開始
B.在程序中凡是以#號開始的語句行都是預處理命令行
C.宏替換不占用運行時間,只占編譯時間
D.在以下定義是正確的:#definePI3.1415926;
14.
15.下列程序的輸出結(jié)果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999
16.有以下程序:
程序運行后的輸出結(jié)果是()。
A.10B.40C.32D.8
17.設有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
18.設有以下說明,則不正確的敘述是()。
A.A.arr所占的內(nèi)存長度等于成員c的長度
B.arr的地址和它的各成員的地址都是同一地址
C.arr可以作為函數(shù)參數(shù)
D.不能在定義arr時對它初始化
19.當一個函數(shù)無返回值時,定義它的函數(shù)類型應是()。
A.voidB.intC.任意D.無
20.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是()。
A.9,18B.8,11C.7,11D.10,14
二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。
main()
{
chara[]="Language",b[]"Programe";
char*p1,*p2;
intk;
p1=a,p2=b;
for(k=0;k<=7;k++)
if(*(p1+k==*(p2+k))printf("%c",*(p1+k));
}
22.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}
23.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
24.下列程序的輸出結(jié)果是______。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0‖x==1)
return3;
else
p=x-fun(x-2);
returnp;
}
voidmain()
{printf("\n%d",fun(11));
25.下面程序的運行結(jié)果是()。#include<stdio.h>main(){chara[80],*p="AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}
26.模式/內(nèi)模式映射為數(shù)據(jù)庫提供了【】數(shù)據(jù)獨立性。
27.以下程序的運行結(jié)果是#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf(:Y=%d\t",Y)main(){inta=1,b=2,c=3,d=4,t;t:MAX(a+b,c+d);PRINT(t);}
28.樹中度為零的結(jié)點稱為______。
29.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。
30.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個數(shù)。累加的和放入x所指的存儲單元中。
fun(intb[],intn,int*x)
{intk,r=0;
for(k=0;k<n;k++)r=【】;
【】=r;
}
31.數(shù)據(jù)結(jié)構分為線性結(jié)構和非線性結(jié)構,帶鏈的隊列屬于[]。
32.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
33.以下程序的功能是找出三個字符串中的最大串。
【】
#include<stdio.h>
main()
{inti;
charstring[20],str[3][20];
(i=0;i<3;i++)gets(【】);
if(strcmp(str,str[0],str[1]>0)strcpy(string,str[0]);
elsestrcpy(string,str[1]);
if(strcmp(str[2],string)>【】)srtcpy(string,str[2]);
printf("Thelargeststringis\n%s\n",string);
}
34.對于長度為n的線性表,若進行順序查找,時間復雜性為【】;若進行二分查找,則時間復雜性為【】。
35.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達式后y的值為()。
36.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標并存放在k所指的存儲單元中。請?zhí)羁铡?/p>
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
37.下面程序的輸出結(jié)果是【】。
structaa
{intx,*y;
}*p;
inta[8]={10,20,30,40,50,60,70,80};
structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};
main()
{p=b;
printf(%d",*++p->y);
printf("%d\n",++(p->x));
}
38.若有以下程序:
main()
{
inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},
{-31,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出的結(jié)果是【】。
39.在算法正確的前提下,評價一個算法好壞的2個因素是時間復雜度和【】復雜度。
40.性結(jié)構中,隊列的操作順序是先進先出,而棧的操作順序是______。
三、1.選擇題(20題)41.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i=(i/2)*2)continue;sum+=i;}while(++i<A);print("%d\n",sum);}
A.2500B.2050C.4D.0
42.下面判斷正確的是
A.char*a="china";等價于char*a;*a="china";
B.charstr[5]={"china"};等價于charstr[]={"china"};
C.char*s="china";等價于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等價于charc[4]=d[4]="abc";
43.程序設計是以()和數(shù)據(jù)結(jié)構為基礎的。
A.算法設計B.編程語言C.設計風格D.數(shù)據(jù)結(jié)構
44.以下數(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}};
45.下面程序段的運行結(jié)果是()。char*format="%s,a=%d,b=%d\n";inta=11,b=10;a+=b;printf(format,"a+=b",a,b);
A.for,"a+=b",abB.format,"a+=b"C.a+=b,a=21,b=10D.以上結(jié)果都不對
46.有以下程序main(){inti:10,j=1;printf("%d,%d\n",i--,++j);}執(zhí)行后輸出結(jié)果是
A.9,2B.10,2C.9,1,D.10,1
47.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}
A.12B.23C.14D.32
48.程序設計的任務包括()。
A.編寫程序代碼并上機調(diào)試B.確定所用數(shù)據(jù)結(jié)構C.確定所用算法D.以上選項均正確
49.下列程序的輸出結(jié)果是()。main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
50.下列說法中,正確的是______。
A.指針是一個變量B.指針中存放的可以是任何類型的值C.指針變量是變量地址D.指針變量占用存儲空間
51.以下程序的輸出結(jié)果是intf(){staticinti=0;ints=1;s+=i;i++;retumS;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}
A.20B.24C.25D.15
52.下述語句中,_____中的if語句語法是錯誤的。()
A.if(x>y);
B.if(x==y(tǒng))x+=y(tǒng);
C.if(x!=y(tǒng))seanf("%d",&x)elsescanf("%d",&y);
D.if(x<y){x++;y++;}
53.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。
A.5B.6C.9D.8
54.下列敘述中正確的是()。
A.在模塊化程序設計中,一個模塊應該盡量多的包括與其他模塊聯(lián)系的信息
B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的第一個細節(jié)
C.在模塊化程序設計中,一個模塊內(nèi)部的控制結(jié)構也要符合結(jié)構化原則
D.在程序設計過程中,不能同時采用結(jié)構化程序設計方法與模塊化程序設計方法
55.若有以下說明和語句:char*language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"};char**q;q=language+2;則語句printf("%o\n",*q);()。
A.輸出的是language[2]元素的地址
B.輸出的是字符串PASCAL
C.輸出的是language[2]元素的值,它是字符串PASCAL的首地址
D.格式說明不正確,無法得到確定的輸出
56.已知有結(jié)構體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。
A.struct是結(jié)構體類型的關鍵字
B.st是結(jié)構體類型名
C.x、y、z都是結(jié)構體成員名
D.structstr是結(jié)構體類型名
57.有以下程序:intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("%d\n",d);}程序運行后的輸出結(jié)果是()。
A.9B.11C.19D.21
58.以下不能定義為用戶標識符的是()。
A.scanfB.VoidC.3comD.int
59.下列二維數(shù)組初始化語句中,不正確的是()。
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={{1,2},{3,4,5},{6}};
D.intb[3][2]={(1,2),(3,4),(5,6)};
60.有以下程序:
#include<stdlib.h>
structNODE{
intnurn;
structNODE*next;
};
main()
{structNODE*p,*q,*r;
intsum=0;
P=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
Printf("%d\n",sum);
}
執(zhí)行后的輸出結(jié)果是()。
A.3B.4C.5D.6
四、選擇題(20題)61.有下列程序:
main()
{inti,j,x=0;
for(i=0,i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++:
}
x++:
}
printf("x=%d\n"x);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.x=4B.x=8C.x=6D.x=12
62.用鏈表表示線性表的優(yōu)點是()。
A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序與邏輯順序相同
63.
64.下面屬于黑盒測試方法的是()。
A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋
65.
66.
67.以下敘述中錯誤的是()。A.可以通過typedef增加新的類型
B.可以用typedef將已存在的類型用一個新的名字來代表
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedd可以為各種類型起別名,但不能為變量起別名
68.有以下程序
69.以下程序的輸出結(jié)果是______。intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staticintx=1;x*=x+1;printf("%d",x);}
A.33B.22C.26D.25
70.
以下程序的輸出結(jié)果是()。
main
{inti;
for(i=0;i<3;i++)
switch(i){case0:printf("%d",i);
case2:printf("%d",i);
default:printf("%d",i);
}
}
A.000102B.000020C.000122D.000111
71.
72.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)和相關文檔的集合
73.
74.
75.在c語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和static
B.extern和register
C.auto和register
D.static和register
76.若有定義“doublea;”,則正確的輸入語句是()。
A.seaM("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
77.設整型變量n的值為2,執(zhí)行語句“n+=n-=n*n;”后,n的值是__________
A.0B.4C.-4D.2
78.
79.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結(jié)果是______。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
80.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從m個學生的成績中統(tǒng)計出低于平均分的學生人數(shù),人數(shù)由函數(shù)值返回,平均分存放在形參aver所指的存儲單元中。例如,輸入8名學生的成績:6070809065758595則低于平均分的學生人數(shù)為4(平均分為77.5)。實際輸入時學生數(shù)以“Enter”鍵作為結(jié)束,成績與成績之間也與Enter鍵作為分隔。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。試題程序:
六、程序設計題(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.A
2.C
3.Aelse總是與離它最近的if配對,所以當?shù)?個if語句的判斷條件不成立時,不再執(zhí)行第2個if語句以及與第2個if語句配對的else語句,而是直接執(zhí)行“x++”,輸出1。故本題答案為A選項。
4.C解析:選項A首先判斷if語句條件中表達式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。
選項B中首先判斷if語句條件中表達式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。
選項C中,首先執(zhí)行第一條if語句,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條if語句,由于“1<1為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。
選項D中;首先執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3。
5.B
6.C
7.D
8.A
9.CC)【解析】數(shù)據(jù)庫一旦發(fā)生故障,需要及時進行故障恢復,并由數(shù)據(jù)庫管理員負責執(zhí)行故障恢復。
10.C先輸出a、b表示退一格,當執(zhí)行到:\b后,光標往后退,接著輸出re'hi'y\(反斜杠后又加一個反斜杠的意思是要輸出一個反斜杠),此時又執(zhí)行:\b后,\就被ou覆蓋。
11.B\n選項C和D可直接排除,程序是數(shù)據(jù)結(jié)構和算法的組合體,所以是先選擇數(shù)據(jù)結(jié)構,然后繼而選擇相對應的算法,編碼并上機調(diào)試,最后整理文檔。
\n
12.D解析:結(jié)構體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相加即可。
13.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標識符PI來代替“3.1415926”這個字符串,但宏定義不是C語句,不必在行末加分號。
14.D
15.C本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過調(diào)用fun函數(shù),按上面的規(guī)則對數(shù)組a重新賦值,最后輸出數(shù)組a。
16.D整型變量ch使用八進制數(shù)020初始化,二進制數(shù)為10000,右移一位結(jié)果為1000,使用%d輸出十進制數(shù)為8。本題答案為D選項。
17.D本題考查兩個知識點,按位異或左移把b左移2位化成二進制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
18.C本題主要考查聯(lián)合體的內(nèi)存使用:聯(lián)合體所占用的內(nèi)存空間為最長的成員所占用的空間,int占2個字節(jié),char占1個字節(jié),float占4個字節(jié),所以arr所占的內(nèi)存長度等于成員c的長度:arr的地址和它的各成員的地址都是同一地址;不能直接對arr賦值,即不能在定義arr時對它初始化:arr也不可以作為函數(shù)參數(shù)。
19.A
20.D第1次循環(huán),a的值為1,滿足條件,執(zhí)行“b+=a;”與“a+=2;”,則b的值變?yōu)?,a的值變?yōu)?。執(zhí)行“a++”,a的值為4,滿足條件進入第2次循環(huán),執(zhí)行完循環(huán)體后,b的值為7,a的值為6。執(zhí)行“a++”,a的值為7,滿足條件進入第3次循環(huán),執(zhí)行完循環(huán)體后,b的值為14,a的值為9。執(zhí)行“a++”,a的值為10。條件不滿足,退出循環(huán)。故本題答案為D選項。
21.gaegae解析:本題定義了兩個字符串數(shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串數(shù)組a和b,執(zhí)行for循環(huán),當if(*p1+k)=*(p2+k))條件為真,執(zhí)打輸出*(p1+k)對應的字符。即當k=0時,*(p1+k)對應的字符串數(shù)組a中的字符L,*(p2+k)對應的字符串數(shù)組b中的字符P,因此if(*(p1+k)=*(p2+k))條件為假,不執(zhí)行printf語句,依此類推,將字符串數(shù)組a和b中對應位置上的字符一一比較,如果對應位置上的字符相同,則輸出該字符。
22.JD
23.調(diào)試調(diào)試
24.44解析:本題考查函數(shù)的遞歸調(diào)用。在主函數(shù)中第1次調(diào)用子函數(shù)是調(diào)用的fun(11),返回11-fun(9):第2次調(diào)用子函數(shù)是調(diào)用的fun(9),返回9-tim(7);第3次調(diào)用子函數(shù)是調(diào)用的fun(7),返回7-fun(5);第4次調(diào)用子函數(shù)是調(diào)用的fun(5),返回5-fun(3);第5次調(diào)用子函數(shù)是調(diào)用的fun(3),返回3-fun(1);第6次調(diào)用子函數(shù)是調(diào)用的fun(1),返回3。總的返回值是:11-(9-(7-(5-(3-3))))=4。
25.babcdbabcd解析:C語言中“\\0”表示字符串的結(jié)束。程序?qū)指針指向字符串“AbabCDcd”的首地址,循環(huán)開始后若指針不是指向當前字符串的結(jié)束標志位,則進入循環(huán)體。循環(huán)中每次檢驗字符串中字母是否在'a'與'z'之間,若滿足則將當前值賦值給數(shù)組a,最后給數(shù)組添加字符結(jié)束標志。此程序可以篩選出字符串中的小寫字母。
26.物理物理
27.C
28.葉子結(jié)點葉子結(jié)點解析:樹中度為零的結(jié)點,也就是沒有后件的結(jié)點,稱為葉子結(jié)點。
29.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。
30.r+b[k]或*(b+k)+r*xr+b[k]或*(b+k)+r\r\n*x解析:r是累加的和,k是數(shù)組b的下標,因此有r=r+b[k];由于x是傳地址調(diào)用,*x是其指向存儲單元的內(nèi)容,要把累加的和放入x所指的單元,因此有*x=r。
31.線性結(jié)構線性結(jié)構解析:與棧類似,隊列也是線性表,也町以采用鏈式存儲結(jié)構。
32.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
33.#include<string.h>str[i]0
34.O(n)O(log2n)
35.00解析:n%=2等價于n=n%2,結(jié)果為1:x%=1等價于x=x%1,結(jié)果為0。
36.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算,此外,一開始應使*k的值為數(shù)組中的某一下標值,即*k=0。
37.3010130101解析:注意地址自增與變量自增的區(qū)別。
38.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[¨剛的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。
39.空間空間
40.先進后出先進后出解析:隊列和棧都是線性結(jié)構,但是不同之處在于隊列的操作順序是先進先出,而棧的操作順序是先進后出。
41.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過這一次循環(huán),執(zhí)行下—次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所育奇數(shù)之和(1+99)*50/2=2500。
42.C解析:選項A)char*a;*a=“china”應改為a=china;,選項B)應該是charstr[6];D)項表述方法有錯誤。
43.A
44.D解析:一維數(shù)組的定義方式為:
類型說明符數(shù)組名[常量表達式];
選項A符合此定義形式,正確;C語言中多維數(shù)組賦初值時可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項C正確;另外,如果對全部數(shù)組元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省,所以選項B正確,而選項D是錯誤的。
45.C解析:字符串常量是由雙引號括起來的一串字符,每一個字符串常量都分別占用內(nèi)存中一串連續(xù)的存儲空間,這些連續(xù)的存儲空間實際上就是字符型一維數(shù)組。
46.B解析:++、--運算符在變量之前是先使變量的值加1或減1,然后再使用變量的值;如果在變量之后則先使用變量之前的值,再把變量的值加1或減1。顯然,程序中表達式“i--”的值為10,“++j”的值為2,所以最后輸出的值為10和2。
47.D解析:本題中是一個含有兩個結(jié)點的循環(huán)鏈表。
C語言中結(jié)構體的定義為:
struct結(jié)構題類型名
{
成員項表;
};
48.D程序設計是一門技術,需要相應的理論、技術、方法和工具來支持。程序設計的任務包括選項A)、B)、c)等方面。
49.B解析:算術運行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結(jié)合性都是從左到右。所以算術表達式運算過程為:a=25/10%9=2%9=2:當邏輯運算符“&&”兩邊的值都是非零時,邏輯表達式的值才為真(即為1)。所以b=2&&(-1)=1。
50.D解析:指針是地址,存放指針的變量是指針變量,不同類型的指針變量存放不同類型數(shù)據(jù)的地址,指針變量作為可存儲指針的變量,也要占用一定的存儲空間。
51.D解析:函數(shù)的靜態(tài)局部變量在編譯時就賦初值,即只賦初值一次,在程序運行時它已有初值,以后每次調(diào)用函數(shù)時不再重新賦值,而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
52.C
53.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]則是數(shù)組a的第9個元素,而a[8]=9,所以b=9。
54.CC?!窘馕觥吭谀K化程序設計中,模塊之間的聯(lián)系可以通過程序的控制結(jié)構來實現(xiàn),在自頂向下、逐步細化的設計過程中,首先要考慮全局目標,而不是細節(jié)。在程序設計中模塊化和結(jié)構化可以同時使用,一個模塊的內(nèi)部結(jié)構也要符合結(jié)構化設計原則。
55.C解析:題中指針數(shù)組language中的每個元素都是一個指向一個字符串的字符指針。通過這個指針可以引用到字符串中的每一個字符。題中的q是雙重字符指針,q=language+2則使指針q指向了數(shù)組language的第三個元素,是字符串“PASCAL”的首地址。
56.B解析:本題主要考查結(jié)構類型的定義:struct是結(jié)構體類型的關鍵字;structstr是結(jié)構體類型名;x、y、z都是結(jié)構體成員名;st是結(jié)構變量名。
57.A解析:函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、s[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6。其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當s[i]不為偶數(shù)的時,將s[i]相加,即當i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s[0]+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。
58.D解析:標識符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標號等用途的字符序列。標識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標識符不能與C關鍵字相同,并區(qū)分大小寫。選項D)錯誤,因為int是C語言中的關鍵字。
59.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。
在選項D)賦值表達式中,對每一維的元素賦初值應用{},而不是()。
60.B解析:本題中定義了一個結(jié)點structNODE,在主函數(shù)中定義了三個結(jié)點變量指針p、q和r,接著通過malloc函數(shù)分配了三個結(jié)點并讓p、q和r分別指向他們,再接著給p、q和r所指向的結(jié)點的num域賦值為1、2、3,然后讓結(jié)點p指向小讓q指向r,r指向NULL。顯然q->next->num的值為指針r所指向結(jié)點的num域的值為3,p->num的值為指針p所指向結(jié)點的num域的值為1,故最后輸出s的值為3+1=4。所以,4個選項中選項B符合題意。
61.B\n在第1次外層for循環(huán)中,首先x++得到x=1。進入到內(nèi)層for循環(huán),只有循環(huán)j的值為奇數(shù)時,變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量x的值自加兩次,當退出內(nèi)層for循環(huán)時,x=3,然后執(zhí)行x++,得到x=4。在進入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進入到內(nèi)層for循環(huán),只有循環(huán)變量J的值為奇數(shù)時,變量X的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過程中,變量X的值自加l兩次,當退出內(nèi)層for循環(huán)時,x=7,然后執(zhí)行x++,得到x=8,所以打印輸出變量x的值為8。
\n
62.CC?!窘馕觥繑?shù)據(jù)結(jié)構是相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合?!标P系”描述的是數(shù)據(jù)元素之間的邏輯關系,因此又稱數(shù)據(jù)的邏輯結(jié)構。數(shù)據(jù)的存儲結(jié)構是指數(shù)據(jù)結(jié)構(數(shù)據(jù)的邏輯結(jié)構)在計算機中的表示,又稱物理結(jié)構。數(shù)據(jù)的存儲結(jié)構有順序存儲結(jié)構和鏈式存儲結(jié)構兩種。不同存儲結(jié)構的數(shù)據(jù)處理效率不同。由于鏈表采用鏈式存儲結(jié)構,元素的物理順序并不連續(xù),對于插入和刪除無需移動元素,很方便,當查找元素時就需要逐個元素查找,因此查找的時間相對更長。
63.D\r\n
64.A黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅(qū)動、路徑測試等,主要用于軟件驗證。
65.C
66.B
67.Atypede偽原類型起個別名,并沒有增加新的類型,所以答案選擇A)。
68.Af函數(shù)將數(shù)組字符串轉(zhuǎn)換為對應的整數(shù),遇見不是數(shù)字字符停止,所以答案選擇A)。
69.C解析:C語言規(guī)定如果全局變量與局部變量同名,則在局部變量的作用域內(nèi)全局變量不起作用。程序開頭定義的變量x為全局變量,函數(shù)incre中定義的變量x是局部靜態(tài)變量,存放在靜態(tài)存儲區(qū),incre調(diào)用結(jié)束后不釋放x占據(jù)的存儲單元。main函數(shù)中使用的x是全局變量x=3,所以main函數(shù)中調(diào)用函數(shù)incre兩次。調(diào)用過程如下。第1次調(diào)用:x=x*(x+1)=1×(1+1)=2,printf函數(shù)輸出2;第2次調(diào)用:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工方案對工程建設的經(jīng)濟效益分析
- 跨學科視角下的情感教育實踐研究
- 音色感知在小學音樂欣賞中的重要性及其教學方法
- 藝術設計與宗教文化的互動商業(yè)空間的創(chuàng)新之路
- DB3715T 71-2025楊樹退化林修復技術規(guī)程
- 二手設備轉(zhuǎn)讓合同模板
- 2025年雜志宣傳合作協(xié)議(合同)
- 個人房屋買賣合同模板大全
- 二手房銷售合同模板大全
- 個人信用借款擔保合同范本
- 河北省邯鄲市永年區(qū)2024-2025學年九年級上學期期末考試化學試卷(含答案)
- 2025年閥門和龍頭項目發(fā)展計劃
- 消防員證考試題庫2000題中級
- 農(nóng)產(chǎn)品質(zhì)量安全檢測技術
- 【蟬媽媽】2024年抖音電商酒水行業(yè)趨勢洞察報告
- 海洋垃圾處理行業(yè)可行性分析報告
- 公共部門績效管理案例分析
- 無人機培訓計劃表
- 2025初級會計理論考試100題及解析
- 2024屆高考英語詞匯3500左右
- 2024年-2025年海船船員考試-船舶人員管理考試題及答案
評論
0/150
提交評論