版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年山西省運城市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面程序運行后的輸出結果是______。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}
A.5B.6C.7D.8
2.設線性鏈表中結點的結構為(data,next)。若想刪除結點p的直接后繼,則應執(zhí)行下列()操作。
A.p->next=p->next->next;
B.p=p->nextp->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
3.有以下程序:程序運行后的輸出結果是()。A.13442B.13431C.01234D.02431
4.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細設計說明書C.用戶手冊D.軟件需求規(guī)格說明書
5.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運行后的輸出結果是()。
A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy
6.快速排序在_____情況下最易發(fā)揮其長處。
A.被排序數(shù)據(jù)中含有多個相同排序碼
B.被排序數(shù)據(jù)已基本有序
C.被排序數(shù)據(jù)完全無序
D.被排序數(shù)據(jù)中最大值和最小值相差懸殊
7.下列語句組中正確的是()。
A.char*s;s={“BOOK!”};
B.char*s;s=“BOOK!”;
C.chars[10];s=“BOOK!”;
D.chars[];s=“BOOK!”;
8.
9.
10.選出任何情況下都不引起二義性的宏定義()。
A.#definePOWER(x)x*x
B.#definePOWER(x)((x)*(x))
C.#definePOWER(x)(x*x)
D.#definePOWER(x)(x)*(x)
11.下面不屬于需求分析階段任務的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測試計劃D.需求規(guī)格說明書評審
12.一個順序表的第一個元素的存儲地址是100,每個元素的長度為5,則第7個元素的地址是()。
A.130B.125C.120D.135
13.設"char**s;",以下正確的表達式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
14.下列代碼的復雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)
15.下面關于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
16.假設下圖中每個正方形的邊長為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14
17.下列選項中,當X為大于1的奇數(shù)時,值為0的表達式是()。
A.x%2==0B.x/2C.x%2!=0D.x%2==1
18.設有定義:intx=2.以下表達式中,值不為6的是()。A.2*x,x+=2B.x++.2*xC.x*=(1+x)D.x*=x+1
19.
20.有以下程序:
程序運行后的輸出結果是()。A.AaB.AbC.abD.Ba
二、2.填空題(20題)21.下面程序的運行結果是【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
22.注釋一般分為序言性注釋和______注釋。
23.將以下程序寫成三目運算表達式是【】。
if(a>b)max=a;
elsemax=b;
24.下述函數(shù)用于統(tǒng)計—行字符中的單詞個數(shù),單詞之間用空格分隔。
word_num(str)
charstr[];
{int,num=O,word=O;
for(i=0;str[i]!=【】;i++)
if(【】=")wprd=0
elseif(word=O)
{
word=1:
【】;
}
return(num);
}
25.以下程序運行后的輸出結果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}
26.若有以下程序
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,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í)行后輸出結果是【】。
27.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
28.下列程序段的輸出結果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
29.以下程序的輸出結果是______。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
30.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
31.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
32.以下說明語句中,【】是結構體類型名。
typedefstruct
{intn;
charch[8];
}PER;
33.數(shù)據(jù)庫系統(tǒng)其內部分為三級模式,即概念模式、內模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
34.下面程序的輸出結果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
35.函數(shù)compare的功能是比較兩個字符串是否相等,若相等則函數(shù)返回1,否則返回o,請?zhí)羁铡?/p>
compare(chars[],chart[])
{
inti=0
while(s[i]==t[i]&&【】)i++;
return(【】?1:0);
}
36.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
37.若輸入字符串:(圖片),則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
38.沒有chara,b;,,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進制是【】。
39.設有以下定義和語句,則*(*(P+2)+1)的值為【】。
int[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
40.以下程序的輸出結果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
三、1.選擇題(20題)41.請選出以下程序的輸出結果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}sub(s,y)int*s,y;{staticintt=3;y=s[t];t--;}
A.1234B.4321C.0D.4444
42.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[5][10]={"abc","aabdog","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[0]));}程序運行后的輸出結果是()。
A.2B.4C.6D.3
43.有以下程序:main(){charstr[][10]={"China","Beijing"),*p=str;printf("%s\n",p+10);}程序運行后的輸出結果是()。
A.ChinaB.BeijngC.ngD.ing
44.設有下列二叉樹:
對此二叉樹中序遍歷的結果為
A.ABCDEFB.DAECFC.BDAECFD.DBEFCA
45.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%lf",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%lf",*p);
D.p=&a;scanf("%lf",p);
46.下面程序輸出的結果是
main()
{inti;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d",a[2-i][i]);}
A.159B.753C.357D.591
47.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()
A.voidfun(double*s)
B.fun(double*s[4])
C.fun(double(*s)[3])
D.voidfun(double(*s)[4])
48.X、Y、2被定義為int型變量,若從鍵盤給X、Y、Z輸入數(shù)據(jù),正確的輸入語句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
49.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為
A.10g2nB.n/2C.nD.n+1
50.字符(char)型數(shù)據(jù)在微機內存中的存儲形式是______。
A.反碼B.補碼C.EBCDIC碼D.ASCII碼
51.以下合法的字符型常量是
A.′\x13′B.′\081′C.′65′D.\n
52.運行下面程序時,從鍵盤輸入字母H,則輸出結果是main(){charch;ch=getchar();swimh(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmoming!Bye_ye!
D.Hello!Bye_ye!
53.結構化程序設計方法的3種基本控制結構中不包括
A.循環(huán)結構B.遞歸結構C.順序結構D.選擇結構
54.以下程序段的while循環(huán)執(zhí)行的次數(shù)是______。intk=0;while(k=1)k++;
A.無限次B.有語法錯,不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次
55.下面敘述不正確的是
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結構有關
B.算法的空間復雜度是指執(zhí)行這個算法所需要的內存空間
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.算法的時間復雜度是指執(zhí)行這個算法所需要的時間
56.當執(zhí)行下面的程序時,如果輸入ABC,則輸出的結果是()。#include<Stdlib.h>main(){charss[]="1,2,3,4,5";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}
A.ABC6789B.ABDC67C.123ABC678D.ABC456789
57.有如下程序
main()
{charch[2][5]={"6937","8254"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
該程序的輸出結果是
A.69825B.63825C.6385D.693825
58.設x=2.5、a=7、y=4.7,算術表達式x+a%3*(int)(x+y)%2/4的值為______。
A.2.5B.7C.4.7D.2.75
59.當執(zhí)行以下程序段時,______。x=-1;do{x=x*x;}while(!x);
A.循環(huán)體將執(zhí)行1次B.循環(huán)體將執(zhí)行2次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤
60.假定int類型變量占用兩個字節(jié),若有定義:intx[10]={0,2,4};,則數(shù)組x在內存中所占字節(jié)數(shù)是______。
A.3B.6C.10D.20
四、選擇題(20題)61.
62.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
63.
64.
65.
66.
下列程序的輸出結果是()。
voidfun(int*X,inty)
{printf("%d%d",*x,*y);*x=3;*y=1;}
main
{intx=1,y=2;
fun(&y,&x);
printf("%d%d",x,y);
}
A.2143B.1212C.1234D.2112
67.(30)關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()
A.排序、索引、統(tǒng)計
B.選擇、投影、連接
C.關聯(lián)、更新、排序
D.顯示、打印、制表
68.下述程序執(zhí)行的輸出結果是()。
#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.&
69.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結構
B.循環(huán)隊列是隊列的一種順序存儲結構
C.循環(huán)隊列是非線性結構
D.循環(huán)隊列是一種邏輯結構
70.
71.在下列選項中,哪個不是一個算法一般應該具有的基本特征()。
A.無窮性B.可行性C.確定性D.有窮性
72.
73.有以下程序
74.
下列程序的輸出結果是()。
char*point(char*pt):
main
{charb[4]={a,c,s,f),*pt=b;
pt=point(pt);
printf("%c\n",*pt);
}
point(char*p)
{p+=3;
returnp;
}
A.sB.cC.fD.a
75.設有宏定義:
76.
77.在滿足實體完整性約束的條件下()。
A.一個關系中廊該有一個或多個候選關鍵字
B.一個關系中只能有一個候選關鍵字
C.一個關系中必須有多個候選關鍵字
D.一個關系中可以沒有候選關鍵字
78.
79.
80.
五、程序改錯題(1題)81.下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構成一個新數(shù)放在t中。例如,當s中的數(shù)為l23456789時,t中的數(shù)為2468。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中,去掉一個最高分和一個最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個數(shù)(n>2)。例如,若輸入9.98.57.68.59.39.58.97.88.68.4共10個得分,則輸出結果為8.687500。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B解析:在main函數(shù)中定義了一個structabc類型的數(shù)組,同時分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個元素進行初始化。在該結構體,依次對其中的a,b,c三個變量進行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。
2.A
3.Bmain函數(shù)中定義包含5個元素的數(shù)組m,每個元素都是NODE類型。指針p指向數(shù)組第1個元素,指針q指向數(shù)組最后一個元素。while循環(huán)使用p、q從首尾向中間遍歷,遍歷的同時為各個元素賦值。所以第1輪循環(huán),i的值為0,先執(zhí)行的值為++i,后執(zhí)行i++的值也為1,m[0].k和m[4].k的值都為1;接著第2輪循環(huán),i的值為2,先執(zhí)行的值為3,后執(zhí)行i++的值也為3,m[l].k和m[3].k的值都為3;第3輪循環(huán),p和q指向的都是m[2]元素,指針相同,循環(huán)結束,此時i的值為4,即m[2].k賦值為4。綜上,程序輸出:13431。本題答案為B選項。
4.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審四個方面。所以選擇D。
5.Dmain函數(shù)定義一個二維字符數(shù)組a,它包含5個字符串,每個字符串存放在一個長度為10的一維數(shù)組中。指針數(shù)組P包含5個字符指針元素。for循環(huán)中,每次將*(a+i)賦給P[i],再輸出P[i]和*P[i]。由于*(a+i)等價于a[i],因此每次都是將下標為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3時,輸出字符串“welcome”和首字符“w”;i=4時,輸出字符串“you”和首字符“y”。綜上,輸出結果為welcomewyouy。故本題答案為D選項。
6.C
7.BA選項去掉花括號后,賦值正確;C選項和D選項應在定義時賦初值,因為數(shù)組名相當于常量,不能重新賦值。故本題答案為B選項。
8.C
9.C
10.B解析:引起帶參數(shù)宏的二義性主要有兩個方面:一是,參數(shù)之間因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項A),若程序中使用POWER(a+b),會展開為a+b*a+b,這樣就會先計算b*a的值,然后再加一個a和一個b,產(chǎn)生二義性。杜絕這種二義性的方法是在宏定義的每個參數(shù)外加上圓括號以保證總是先計算每個參數(shù)的值,就好像本題的選項D)那樣。另一個是,整個宏所代表的表達式因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項D),若程序中使用a/POWER(b),會展開為a/(b)*(b),這樣就會先計算a/b的值,然后再乘以b,產(chǎn)生二義性。杜絕這種二義性的方法是對整個宏定義加一個圓括號,就好像本題的選項B)那樣。故選項B)在任何情況下都不會引起二義性,應該選B。
11.C【答案】:C
【知識點】:需求分析階段的任務
【解析】:需求分析階段的任務是深入描述軟件的功能和性能,確定軟件設計的約束和軟件同其他系統(tǒng)元素的接口細節(jié),定義軟件的其他有效性需求,借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)邏輯模型,解決目標系統(tǒng)“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評審三個階段。從此可以看出需求分析的任務不包括制定軟件集成測試計劃,故選C。
12.A
13.B
14.D
15.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時應保持相同的值。
\n
16.C
17.A算術運算符的優(yōu)先級高于關系運算符的優(yōu)先級。所以當x為大于1的奇數(shù)時,A選項的值為假,即0。B選項的值為不定值,但絕對不是0。C選項的值為真,即1。0選項的值為真,即1。故本題答案為A選項。
18.A[解析]A)選項中逗號表達式先計算第一表達式2*x,然后計算表達式x+=2的值,即x=x+2即4.整個逗號表達式為第二個表達式的值4.所以選A)。B)選項中首先計算逗號表達式中第一個表達式x++,此時x為3.再執(zhí)行第二個表達式2*x=2*3=6.所以逗號表達式為第二個表達式的值6.C)選項的賦值表達式可以表示為x==x*(1+x)=2*(1+2)=6.D)選項中的表達式可以表示為x=x*(x+1)=2*3=6.
19.A
20.B函數(shù)fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對該地址的值執(zhí)行自增1;main函數(shù)中p1指向ch1,p2指向ch2。通過fun函數(shù)的調用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項。
21.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學表達式如下:
本題中定義了一個長度為3的數(shù)組aa并初始化。接著調用遞歸函數(shù)f,由上面的數(shù)學表達式以計算其返回值s=1+2+3=6,所以空格處應該填6。
22.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,
23.max=(a>b)?a:b;max=(a>b)?a:b;解析:本題考查三目運算符的用法,條件運算符要求有三個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3所以,我們可以寫成(a,b)?a:b,它是一個“條件表達式”。執(zhí)行順序是:如果(a>b)條件為真,則條件表達式取值a,否則取值b。注意:逗號表達式的執(zhí)行原理。
24.\0'或0或NULLstr[i]num++或num=num+1或mum+=l\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或mum+=l解析:觀察題目要求,可以知道以下幾點:
①for循環(huán)的結束條件應當是:str[i]已是字符串的最后一個字符;
②str[i]代表字符串str中的第i+1個字符;
③整型變量num的值是要記錄的單詞的個數(shù)。
C語言中規(guī)定字和會串的最后一個字和會是一個隱含的字符串結束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通地變量num的加1累加到字符串中的單詞個數(shù)。
25.1020010200解析:本題考查的是混合運算。“(a/b<1)&&(a%b<1)”的運算順序為:括號>算術運算符>關系運算符>邏輯運算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個表達式的結果為0,所以輸出的a,b,c的值為10200。
26.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[i][j]的值是否等于0,若等于0則退出內層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。
27.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內部結構和內部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。
28.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結果是passwarn。
29.3535解析:函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結果為35。
30.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。
31.1919解析:根據(jù)二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數(shù)為18,故葉子結點數(shù)為18+1=19個。
32.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。
33.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結構和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結構的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
34.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。
35.s[i]&&t[i]或s[i]!='\0'&&t[i]!='\0'!(s[i]-t[i])s[i]&&t[i]或s[i]!='\\0'&&t[i]!='\\0'\r\n!(s[i]-t[i])解析:while后括號中的判斷條件為兩個字符串相同位置上的字符相等,且兩個字符串都沒有結束,則循環(huán)。故第一空應該填s[i]&&t[i]或其他等價表達式。如果兩個字符串完全相等,則while循環(huán)退出時s[i]和t[i]的值同時為0,否則s[i]和t[i]不相等。故表達式s[i]-t[i]在字符串相等時為0,不相等時為非0,所以第二空應該填!(s[i]-t[i])就滿足題意了。
36.k=p;k=p;解析:為尋找數(shù)組中最大元素的下標,需先預設1個臨時最大元素的下標,并順序逐一考查數(shù)組的元素,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標。直至考查了數(shù)組的全部元素后,這臨時最大元素下標就是數(shù)組的最大元素下標。通常預設的最大元素下標是數(shù)組的首元素下標,考查通常從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標的變量是k,變量p控制順序考查的循環(huán)控制變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k]更大時,應該用p更新k,所以在空框處應填入代碼'k=p;'。
37.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個字符。用戶輸入的第1個字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個循環(huán)不會被執(zhí)行。
38.1000001010000010解析:運算“&”的規(guī)則是只有當兩個相應的二進制位都為1時,該位的結果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。
39.6060解析:本題定義了一個3行2列的二維數(shù)組a,并定義了一個指向兩個元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。
40.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。
41.C解析:若指針s指向數(shù)組a,則s[t]可以引用數(shù)組a中下標為t的元素。注意:通過數(shù)組的首地址引用數(shù)組元素。
42.C解析:題目中已告知函數(shù)f()的作用是將字符串從小到大排序,因此主函數(shù)中調用完f(p,5);后,二維數(shù)組p中的內容為('aabdfg','abbd','abc','cd','dcdbc'}。輸出的結果是strlen(p[0]),即p中第1個字符串的長度,所以結果是6。故本題應該選擇C。
43.B解析:本題中首先定義了一個字符串數(shù)組并初始化,初始化后使得str[0]='China',str[1]='Beijng',然后定義一個指針變量p并讓其指向str,而在該二維數(shù)組中定義每個字符串的長度為10,所以p+10將指向str[1],因此最后輸出*(p+10)的值為Beijng。所以,4個選項中選項B符合題意。
44.C解析:叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求中序遍歷,其遍歷順序應該為:中序遍歷左子樹->,訪問根結點->中序遍歷右子樹.按照定義,中序遍歷序列是BDAECF,故答案為B。
45.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對。scanf()的輸入變量必須為地址,因此C是錯誤的。
46.B解析:本題用循環(huán)的方法考查對數(shù)組概念的掌握。首先,當i=0時,數(shù)組中的位置是a[2][0]=7,當然,如果用排除法,就不用考慮后面的循環(huán),因為在4個選項中,第1個數(shù)為7的選項只有B)。本題執(zhí)行第2次循環(huán)時,i的值為1,則printf函數(shù)中的數(shù)組指向為a[1][1]=5,依次循環(huán),可求出答案。
47.D
48.B解析:C語言中沒有輸入輸出語句,它是通過C語言提供的函數(shù)來實現(xiàn)的,本題C中,應為變量地址。
49.C解析:對于長度為n的有序線性表,在最壞情況下,二分查找只需要比較logn2次,而順序查找需要比較n次。
50.D解析:將—個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
51.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用一個'\\'開頭的字符序列來表示字符常量。其中,形式'\\ddd'表示1到3位8進制數(shù)所代表的字符;形式'\\xhh'表示1到2位16進制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個字符常量;\'\\081\'用8進制數(shù)所代表的字符,但形式不正確,因為8進制數(shù)所代表的字符中不會出現(xiàn)數(shù)字'8';\'65\'不是一個字符,而是一個十進制數(shù)字;'\\n'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。
52.C解析:本題主要對switch語句進行了考查。switch語句的執(zhí)行過程為:進入switch結構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行de-fault后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'C'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行
53.B解析:本題考查了程序的基本結構。程序由一些基本結構組成。任何一個大型的程序都由3種基本結構組成,由這些基本結構順序的構成了一個結構化的程序。這3種基本結構為:順序結構、選擇結構和循環(huán)結構。
54.A
55.D解析:算法的時間復雜度是指執(zhí)行算法所需要的計算工作量,故D選項不正確。
56.A解析:本題程序一開始定義了一個字符數(shù)組ss,并用一個字符串常量初始化之。然后使用gets()函數(shù)從鍵盤緩沖區(qū)讀入一個字符串'ABC',此時gets()將改變數(shù)組的前4個元素為{\'A\',\'B\',\'C\',\'\\0\'}。接下來的strcat()函數(shù)將一個字符串連接到字符串ss之后,因為ss[3]被gets()設置為\'\\0\'(字符串結束標志),故strcat()從ss[3]開始將'6789'依次寫入ss[3]、ss[4]、ss[5]、ss[6],并將一個\'\\0\'寫入ss[7]。所以輸出結果是ABC6789,故應該選擇A。
57.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char*p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應關系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=s*10+p[i][j]-\'0\';的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當前p[i][j]中的字符量轉換為相應的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內層循環(huán)的循環(huán)條件p[i]\ue009[j]>\'\\0\'是指p[i][j]中的字符只要不是字符串結束標志\'\\0\'就繼續(xù)循環(huán),語句j+=2;是使下標j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是\'6\'和\'3\',然后從p[1]所指向的字符串'8254'中一個隔一個地取出字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 43758.2-2024智能網(wǎng)聯(lián)汽車運行安全測試環(huán)境技術條件第2部分:半開放道路
- 人教版八年級物理上冊《第二章聲現(xiàn)象》章末測試卷含答案
- 酶解法促進海產(chǎn)品副產(chǎn)物資源化
- 高一化學成長訓練:第三單元人工合成有機化合物
- 2024屆四川省高考化學四模試卷含解析
- 2024高中地理第二章自然環(huán)境中的物質運動和能量交換1地殼的物質組成和物質循環(huán)課時作業(yè)含解析湘教版必修1
- 2024高考地理一輪復習第五單元地表形態(tài)的塑造練習含解析
- 2025高考數(shù)學考點剖析精創(chuàng)專題卷三-三角函數(shù)與解三角形【含答案】
- 起重機委托使用協(xié)議書范本
- 2024年溫州科技職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 危重癥護理組組長競聘
- 航空工程材料(第3版)課件 6有色金屬
- 印刷廠廠長年終小結
- MOOC 工程圖學-天津大學 中國大學慕課答案
- 園林景觀工程關鍵施工技術、措施
- 談談微電影創(chuàng)作課件
- 《變革管理》課件
- 各元素離子半徑
- 小學五年級數(shù)學上冊寒假作業(yè)天天練30套試題(可打印)
- 地下管道三維軌跡慣性定位測量技術規(guī)程
- 特種設備鍋爐日管控、周排查、月調度主要項目及內容表
評論
0/150
提交評論