![2021年山東省淄博市全國計算機等級考試C語言程序設計真題(含答案)_第1頁](http://file4.renrendoc.com/view/3771e4c2e923c4a6db6beeee4e833e72/3771e4c2e923c4a6db6beeee4e833e721.gif)
![2021年山東省淄博市全國計算機等級考試C語言程序設計真題(含答案)_第2頁](http://file4.renrendoc.com/view/3771e4c2e923c4a6db6beeee4e833e72/3771e4c2e923c4a6db6beeee4e833e722.gif)
![2021年山東省淄博市全國計算機等級考試C語言程序設計真題(含答案)_第3頁](http://file4.renrendoc.com/view/3771e4c2e923c4a6db6beeee4e833e72/3771e4c2e923c4a6db6beeee4e833e723.gif)
![2021年山東省淄博市全國計算機等級考試C語言程序設計真題(含答案)_第4頁](http://file4.renrendoc.com/view/3771e4c2e923c4a6db6beeee4e833e72/3771e4c2e923c4a6db6beeee4e833e724.gif)
![2021年山東省淄博市全國計算機等級考試C語言程序設計真題(含答案)_第5頁](http://file4.renrendoc.com/view/3771e4c2e923c4a6db6beeee4e833e72/3771e4c2e923c4a6db6beeee4e833e725.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年山東省淄博市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.某二叉樹結點的中序序列為A、B、C、D、E、F、G,后序序列為B、D、C、A、F、G、E,該二叉樹對應的層次遍歷序列為()
A.E、G、F、A、C、D、B
B.E、A、C、B、D、G、F
C.E、A、G、C、F、B、D
D.E、G、A、C、D、F、B
2.下列說法中錯誤的是A.A.只能在循環(huán)體內(nèi)使用break語句
B.在循環(huán)體內(nèi)使用break語句可以使流程跳出本層循環(huán)體,從而提前結束本層循環(huán)
C.在while和do…while循環(huán)中,continue語句并沒有使整個循環(huán)終止
D.continue的作用是結束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)判斷
3.有下列函數(shù)定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數(shù)的類型是()。A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯
4.
5.以下選項中表示一個合法的常量是(說明:符號口表示空格)()。
A.9口9口9B.0XabC.123E0.2D.2.7e
6.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結果是A.A.0X0
B.0x0
C.0
D.0xABC
7.
8.下列程序的輸出結果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}A.A.3B.4C.5D.6
9.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
10.在下列定義語句中,編譯時會出現(xiàn)編譯錯誤的是()。
A.chara=‘\x2d’;B.chara=‘\n’;C.chara=‘a(chǎn)’;D.chara=“aa”;
11.下列語句中,說法正確的是______。
A.C程序書寫格式嚴格,每行只能寫一個語句
B.C程序書寫格式嚴格,每行必須有行號
C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號隔開
D.C程序書寫格式自由,一個語句可以分寫在多行
12.棧通常采用的兩種存儲結構是A.A.線性存儲結構和鏈表存儲結構
B.散列方式和索引方式
C.鏈表存儲結構和數(shù)組
D.線性存儲結構和非線性存儲結構
13.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
14.有以下程序:
程序運行后的輸出結果是()。
A.7B.10C.8D.9
15.允許對隊列進行的操作有()。
A.對隊列中的元素排序B.取出最近進隊的元素C.在隊頭元素之前插入元素D.刪除隊頭元素
16.
17.以下()不是隊列的基本運算
A.從隊尾插入一個新元素B.從隊列中刪除第i個元素C.判斷一個隊列是否為空D.讀取隊頭元素的值
18.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關系
19.在下列關系運算中,不改變關系表中的屬性個數(shù)但能減少元組個數(shù)的是A.并B.交C.投影D.笛卡兒乘積
20.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的方法,稱______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
二、2.填空題(20題)21.若變量n中的值為24,則print函數(shù)共輸出【】行,最后一行有【】個數(shù)。
voidprint(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if(!(i%5))
printf("\n");
}
printf("\n");
}
22.下列程序輸出的結果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
23.用以下程序計算1到100的整數(shù)的累加和。請?zhí)羁铡?/p>
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=j
i++;
}
printf("sum=%d\n",【】);
}
24.下述函數(shù)統(tǒng)計字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=")flag=0;
elseif【】{flag=1;num++}
}
return【】;}
25.以下程序運行后的輸出結果是【】。
#include<stdio.h>
main()
{inta,b,c;
a=25;b=025;e=0x25;
prinff("%d%d%d\n",a,h,c);
}
26.在深度為7的滿二叉樹中,度為2的結點個數(shù)為【】。
27.下面函數(shù)用來求出兩個整數(shù)之和,并通過形參傳回兩數(shù)相加之和值。請?zhí)羁铡?/p>
intadd(intx,inty,【】,)
{【】=x+y;}
28.已知字符A的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>,則輸出結果是【】。
#include
main()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
29.設函數(shù)findbig已定義為求3個數(shù)中的最大值。以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】;
seanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,2);
printf("big=%d\n",big);
}
30.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結構是【】。
31.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
32.以下程序的輸出結果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
33.下列循環(huán)的循環(huán)次數(shù)是______。
intk=2;
while(k=0)
printf["%d",k);
k--;
printf("\n");
34.在樹形結構中,樹根結點沒有______。
35.假定變量x為int類型,請以最簡單的形式寫出與邏輯表達式!x等價的C語言關系表達式【】。
36.設有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。
37.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
38.下列程序執(zhí)行輸出的結果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(A);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
39.以下程序的運行結果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
40.下列程序的輸出結果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
三、1.選擇題(20題)41.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
42.有程序段:int*p,a,b=1;p=&a;*p=10;a=*p+b;執(zhí)行該程序段后,a的值是()
A.12B.11C.10D.編譯出錯
43.表達式0x130x17的值是()。
A.0x04B.0x13C.0xE8D.0x17
44.下列不屬于軟件工程的3個要素的是()。
A.32具B.過程C.方法D.環(huán)境
45.結構化程序設計的3種基本結構是()。
A.過程、子程序和分程序B.順序、選擇和重復C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移
46.設有定義:charp[]={′1′,′2′,′3′},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
47.以下程序的運行結果是
#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);}
A.Y=3B.存在語法錯誤C.Y=7D.Y=0
48.以下程序的輸出結果是#include<stdio.h>in[fun(intn,int*s){intn,f2;if(n==0‖n==1)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=f1+f2;}}voidmain(){intx;fun(6,&x);pfintf("\n%d",x);}
A.7B.13C.9D.10
49.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,負責數(shù)據(jù)的完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等功能的是
A.數(shù)據(jù)定義語言B.數(shù)據(jù)轉(zhuǎn)換語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
50.以下敘述正確的是
A.函數(shù)可以嵌套定義但不能嵌套調(diào)用
B.函數(shù)既可以嵌套調(diào)用也可以嵌套定義
C.函數(shù)既不可以嵌套定義也不可以嵌套調(diào)用
D.函數(shù)可以嵌套調(diào)用但不可以嵌套定義
51.下列程序的輸出結果是#include"stdio.h"#defineM(x,y)x%ymain(){inta,m=12,n=100;a=M(n,m);printf("%d\n",a--);}
A.2B.3C.4D.5
52.若有說明:ints[2][3]={0};,則下面正確的敘述是______。
A.只有元素s[0][0]可得到初值0
B.此說明語句不正確
C.數(shù)組s中各元素都可得到初值,但其值不一定為0
D.數(shù)組s中每個元素均可得到初值0
53.有以下程序;charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,B),fun(b,C)));}程序的執(zhí)行結果是
A.函數(shù)調(diào)用出錯B.8C.9D.7
54.某片軟盤上已染有病毒,為防止該病毒傳梁計算機系統(tǒng),正確的措施是()
A.刪除該軟盤上的所有程序B.給該軟盤加上寫保護C.將該軟盤放一段時間后再用D.將該軟盤重新格式化
55.以下不能定義為用戶標識符的是()。
A.scanfB.VoidC.3comD.int
56.下面程序main(){intx=100,a=10,b=20,ok1=5,ok2=0;if(a<b)if(b!=15)if(!ok1)x=1:elseif(ok2)x=10;x=-1;printf("%d\n",x);}的輸出是______。
A.-1B.0C.1D.不確定的值
57.以下程序中函數(shù)sort的功能是對a所指數(shù)組中的數(shù)據(jù)進行由大到小的排序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf(“%d”,aa[i]);pfintf(“\n”);}程序運行后的輸出結果是
A.1,2,3,4,5,6,7,8,9,10
B.10,9,8:7,6,5,4,3,2,1
C.1,2,3,8,7,6,5,4,9,10
D.1,2,10,9,8,7,6,5,4,3
58.以下程序的輸出結果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
59.以下程序的輸出結是_______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf(%d",a);}
A.200100B.100100C.100200D.200200
60.已知:intc[3][4];,則對數(shù)組元素引用正確的是()。
A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表達都錯誤
四、選擇題(20題)61.寫出下列程序段的輸出結果()。
main()
{intx=5;inty=10;
printf("%d\n",x++);
printf("%d\n",++y);}
A.5B.6C.6D.5
10101111
62.如已定義X和Y為double類型,則表達式X=1,y=x+5/2的值是()。
A.2B.3.0C.3D.3.5
63.以下敘述中錯誤的是()。A.c程序在運行過程中所有計算都以十進制方式進行
B.c程序在運行過程中所有計算都以二進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.c程序中字符變量存放的是字符的ASCIl值
64.
下列程序的輸出結果是()。
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
65.在面向?qū)ο蠓椒ㄖ校瑢崿F(xiàn)信息隱蔽是依靠()。
A.對象的繼承B.對象的多態(tài)C.對象的封裝D.對象的分類
66.有以下程序:
當執(zhí)行程序時,按下列方式輸人數(shù)據(jù)(從第l列開始,<CR>代表回車,注意,回車也是—個字符)l<CR>
234<CR>
則輸出結果是()。
A.34
B.134
C.123
D.1234
67.設整型變量a為5,使b不為2的表達式是()。
A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:1
68.
69.有以下程序:
執(zhí)行后輸出結果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
70.
71.定義如下變量和數(shù)組:
則下面語句的輸出結果是()。
A.951B.741C.753D.963
72.
73.有下列程序:
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í)行后的輸出結果是()。
A.x=4B.x=8C.x=6D.x=12
74.數(shù)據(jù)的存儲結構是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結構在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
75.若i、j已定義成int型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。
for(i=6;i>0;i--)
for(j=0;j<4;j++){…}A.A.20B.24C.25D.30
76.下列哪個屬性是用來定義內(nèi)聯(lián)樣式的?()
A.fontB.classC.stylesD.style.
77.有以下程序已知字母A的ASCIl碼為65,程序運行后的輸出結果是()。
A.E。68B.D,69C.E,DD.輸出無定值
78.
79.
80.若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是
五、程序改錯題(1題)81.已知一個數(shù)列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc的功能是:計算并輸出該數(shù)列前n項的和sum。n的值通過形參傳人。例如,當n=20時,程序的輸出結果應為42762.000000。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動maiil函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}
六、程序設計題(1題)82.N名學生的成績已在主函數(shù)中放人一個帶頭節(jié)點的鏈表結構中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。
例如,若學生的成績是:8576698591726487,則平均分應當是:78.625。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.C
2.A解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句,當break出現(xiàn)在循環(huán)體中的switch語句體時,其作用是跳出該switch語句體。當break出現(xiàn)在循環(huán)體中,但不在switch語句體中時,則在執(zhí)行break后,跳出本層循環(huán)體。continue語句的作用是,跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。
3.A本題考查函數(shù)值的類型,在函數(shù)定義時,由于函數(shù)沒有說明其類型,系統(tǒng)默認一律自動按整型(int)處理。
4.A
5.B當用指數(shù)形式表示浮點數(shù)據(jù)時,E的前后都要有數(shù)據(jù),并且E的后面數(shù)要為整數(shù)。
6.C本題考查C語言中的數(shù)據(jù)輸出格式。
題目中定義了兩個整型變量m、n,對這兩個變量賦值,輸入的數(shù)值為十六進制整數(shù),并且有m=n。進行m-n運算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進制的標志,輸出數(shù)據(jù)時,數(shù)據(jù)前面不會自動加上進制的標志。
7.D
8.B
9.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
10.DD選項中將字符串常量“aa”賦給字符變量a是錯誤的。故本題答案為D選項。
11.D
12.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結構是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結構中的應用。
13.DD。【解析】面向?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。
14.D調(diào)用f(a,b)函數(shù)返回3,調(diào)用f(a,c)函數(shù)返回6,所以外層調(diào)用f(f(a,b),f(a,c));即調(diào)用f(3,6)函數(shù)返回9。
15.D
16.B
17.B
18.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。
19.B并運算的含義是:假設有一個“在校學生信息表”,它包括這樣一些字段:學號、姓名、性別、出生日期、籍貫、聯(lián)系電話,這個表的關系模式可以表示為:校學生信息表(學號,姓名,性別,出生日期,籍貫,聯(lián)系電話)。還有一個“新生信息表(學號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”。若要將9月份進校的新生信息加入到“在校學生信息表”中,這樣進行的就是并運算。并運算不會改變表的字段(又叫屬性)個數(shù),但是會增加記錄(又叫元組)個數(shù)。交運算的含義是:兩個表(要求結構要一模一樣)進行交運算取兩個表中相同的記錄構成一個新表,交運算不會改變表的字段個數(shù),但是一般會減少記錄個數(shù)。投影運算的含義是:從在“校學生信息表(學號,姓名,性別,出生日期,籍貫,聯(lián)系電話)”中選取學生的“姓名”和“聯(lián)系電話”這兩個字段,可以構成一個“學生聯(lián)系表(姓名,聯(lián)系電話)”,這就是一個投影運算,所以投影運算一般會減少字段(又叫屬性)的個數(shù)。笛卡兒乘積又叫稱乘運算,設有n元關系R和m元關系s,他們分別有P、q個元組,則關系R和關系s的笛卡兒積表示為R×S,該關系是一個n+m元關系,元組個數(shù)是PXq。因此本題的正確答案是B。\r\n
20.A解析:希爾排序法的基本思想是:將整個無序列分割成若干小的子序列分別進行插入排序。
21.54
22.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。
23.0i<=100;sum
24.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄一個單詞是否結束。第13空應填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空恪,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標志為1,num的值加1,如果不是,則不必記錄。故第14空應填flag=0或*(s-1);最后一個空格需填寫的是返回的單詞的個數(shù),即num。
25.252137252137解析:程序中變量a、b、c分別為十進制、八進制、十六進制的數(shù)25,按%d格式輸出,a的輸出值為25;b=025轉(zhuǎn)換為十進制數(shù)(b=2*8+5=16+5=21)輸出;c=0x25轉(zhuǎn)換為十進制數(shù)(c=2*16+5=32+5=37)輸出。輸出結果為252137。
26.63或26-163或26-1解析:在滿二叉樹中,每層結點都是滿的,即每層結點都具有最大結點數(shù)。深度為k的滿二叉樹,一共有2k-1個結點,其中包括度為2的結點和葉子結點。因此,深度為7的滿二叉樹,一共有27-1個結點,即127個結點。根據(jù)二叉樹的另一條性質(zhì),對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+1。設深度為7的滿二叉樹中,度為2的結點個數(shù)為x,則改樹中葉子結點的個數(shù)為x+1。則應滿足x+(x+1)=127,解該方程得到,x的值為63。結果上述分析可知,在深度為7的滿二叉樹中,度為2的結點個數(shù)為63。
27.int*p*p或p[0]int*p\r\n*p或p[0]
28.1B1B解析:從鍵盤輸入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在輸出時均需要把a,b轉(zhuǎn)化為字符型,因此輸出為1B。
29.findbigfindbig解析:本題首先定義了一個指向函數(shù)的指針變量f,如果希望讓它指向某個函數(shù),只需把函數(shù)名賦給該指針變量即可。所以說本題的空格處應該填入函數(shù)名findbig。
30.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結構是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結構是隊列。
31.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。
32.246
33.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。
34.前件前件
35.x==0
36.88解析:本題考查帶參數(shù)的宏定義及相關運算.運算過程為:t=B*2=A+3*2=2+3*2=8。
37.調(diào)試調(diào)試
38.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。
39.a=2b=1a=2,b=1解析:本題考查了switch結構的內(nèi)容。C語言中,程序執(zhí)行完一個case標號的內(nèi)容后,如果沒有break語句,控制結構會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結構后,繼續(xù)執(zhí)行了外部switch結構的case2:分支,最后a和b的值分別為2和1。
40.11解析:ifelse語句的功能是:若表達式的值為真,執(zhí)行語句1,并跳過其他語句,執(zhí)行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執(zhí)行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執(zhí)行printf語句,在整個過程中變量z的值都沒發(fā)生變化。
41.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
42.B
43.A解析:運算符“^”是按位異或運算符,其運算規(guī)則是:參與運算的兩個二進制數(shù),若相對應的二進制位上的數(shù)相同,則該位的結果為0;否則該位的結果為1??傻茫?x130x17=1001110111=0x04
44.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段:工具支持軟件的開發(fā)、管理和文檔生成:過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。
45.BB。【解析】程序的三種基本控制結構包括:順序、選擇和重復(循環(huán)),這三種結構就足以表達出各種其他形式的結構。
46.A解析:在本題中,p和q同為指向字符類型數(shù)據(jù)的指針。*q和p[0]同為字符型數(shù)據(jù)。選項B)、C)和D)都符合題目的要求;選項A)計算得出的是指針類型數(shù)據(jù)所占的內(nèi)存字節(jié)數(shù)。
47.C解析:考查帶參數(shù)的宏替換。宏替換不像函數(shù)調(diào)用要進行參數(shù)值的計算、傳遞等,而只是簡單按照原格式進行字符串的替換。
48.B
49.D解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)語言中,數(shù)據(jù)控制語言負責數(shù)據(jù)的完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等功能。
50.D解析:在C語言中,所有的函數(shù)都是平行的,即在定義函數(shù)時是互相獨立的,一個函數(shù)并不從屬于另一個函數(shù),即函數(shù)不能嵌套定義,但可以互相調(diào)用,但不能調(diào)用main函數(shù)。注意:函數(shù)不能嵌套定義,但可以嵌套調(diào)用,故選項A)、B)和C)中的描述都錯誤。
51.C解析:帶參數(shù)的宏定義命令行形式如下:
#define宏名(形參表)替換文本
在編譯的時候編譯預處理程序用“替換文本”來替換宏,即M(n,m)被替換為n%m,之后計算,將計算的結果賦給a。注意,宏替換是在編譯時由預處理程序完成的,宏替換不占用運行的時間,而函數(shù)調(diào)用是在程序運行時進行的,在函數(shù)的調(diào)用過程中需要占用一系列的處理時間。
52.D解析:給二維數(shù)組賦初值時,若所賦初值不足,則給后面的元素自動補初值0。
53.D解析:本題考核的知識點是函數(shù)的返回值以及返回值作為函數(shù)的參數(shù)。經(jīng)過分析得出函數(shù)fun()的功能是比較形參x和形參y的大小,返回較小的一個.函數(shù)fun()有兩個參數(shù).本題中,首先定義了三個整型變量a、b和c,分別賦初值為9、8和7.然后執(zhí)行函數(shù)fun(fun(a,b),fun(b,c))。在該函數(shù)中分別將fun(a,b)和fun(b,C)函數(shù)的返回值作為該函數(shù)的兩個實參。在函數(shù)fun(a,b)中,由于a>b,故返回較小值b即8,在函數(shù)fun(b,C)中,由于b<c,故返回較小值c即為7,因此調(diào)用函數(shù)fun(fun(a,b),fun(b,C))相當于執(zhí)行函數(shù)fun(8,7),返回較小值即7。所以,4個選項中選項D符合題意。
54.D
55.D解析:標識符是C語言中用來表示變量名、數(shù)組名、函數(shù)名、指針名、結構名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語句標號等用途的字符序列。標識符由1~32個字符組成,第一個字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標識符不能與C關鍵字相同,并區(qū)分大小寫。選項D)錯誤,因為int是C語言中的關鍵字。
56.A解析:第一個判斷值為真,過渡到下一個判斷,第二個判斷為真,過渡到第三個判斷……,如此循環(huán),在打印輸出語句的前一行,程序給變量x賦了值,為-1,所以,無論前期如何變化,最后的x值依然為-1。
57.C解析:本題中首先定義一個長度為10的一個整型數(shù)組,并初始化為“l(fā),2,3,4,5,6,7,8,9,10”,然后調(diào)用排序函數(shù)sort(),通過分析不難看出,sort()函數(shù)是對具有n個元素的a數(shù)組進行從大到小排序。由于函數(shù)的第一個參數(shù)是數(shù)組名,其對應的實參可以是函數(shù)名或地址。本題在調(diào)用該函數(shù)時,實參是&aa[3]的地址,即把aa[3]的地址傳給了形參數(shù)組名a,函數(shù)也就是對aa[3]開始的5個元素進行從大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化。sort()執(zhí)行完畢后,接著執(zhí)行后面的for語句輸出數(shù)組aa中各個元素的值,由于函數(shù)sort()只是對aa[3]開始的5個元素進行從大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化,所以輸出為“1,2,3,8,7,6,5,4,9,10”。
58.B解析:由于實參傳送的是變量的地址,所以對形參指針所指向的單元內(nèi)容的改變,即對實參內(nèi)容的改變。
59.C解析:#define宏名的有效范圍為定義命令之后到本源文件結束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。
60.C
61.D++是自增運算符,但作為前綴和后綴是不一樣的,對于變量本身沒有差別,但對于表達式的值有影響,x++,表達式先去x的值5作為輸出,然后再加1,++y是先增1,然后取自增后的值為表達式的值,所以輸出結果為11
62.B題目中定義變量x和y為雙精度double類型,根據(jù)給定算數(shù)表達式的優(yōu)先級應先計算5/2,結果為2,將值代入后,由x和y的數(shù)據(jù)類型得出y為3.0。整個逗號表達式的值為后面y=x+5/2的值,所以選擇B)。
63.AC程序在運行過程中所有計算都以二進制方式進行,所以本題答案為A)。
64.C
\n當執(zhí)行fun函數(shù)時,因為參數(shù)傳遞時是地址傳遞,因此形參值的改變會影響實參中的數(shù),在執(zhí)行fun函數(shù)時先輸出12,接著把*X賦3,*y賦4,此時帶回主函數(shù)中,輸出的值為3
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鶴崗貨運考試題目
- 2025年萊蕪貨運資格證安檢考試題
- 小學二年級數(shù)學上口算紙
- 2025年濟寧道路客貨運輸從業(yè)資格證b2考試題庫
- 2025年焦作道路運輸從業(yè)人員從業(yè)資格考試
- 電焊工入職合同(2篇)
- 《北魏政治和北方民族大交融》聽課評課記錄2(新部編人教版七年級上冊歷史)
- 2024-2025學年高中英語Module6TheInternetandTelecommunicationsSectionⅤWriting-正反觀點對比類議論文教案含解析外研版必修1
- 企業(yè)年終工作總結報告
- 公司人事部門年終工作總結
- 班級建設方案中等職業(yè)學校班主任能力大賽
- T-TJSG 001-2024 天津市社會組織社會工作專業(yè)人員薪酬指導方案
- 芯片設計基礎知識題庫100道及答案(完整版)
- 00015-英語二自學教程-unit2
- 2024變電站無人機巡檢系統(tǒng)規(guī)范第2部分:檢測規(guī)范
- 人教版九上化學第二單元課題2氧氣課件
- 三年級上冊乘法豎式計算200道及答案
- 區(qū)塊鏈技術指南
- 湘教版初二英語(八年級)上冊期末知識點歸納
- 1.中小學推行全員育人導師制的實施方案
- 中頻治療儀的使用流程
評論
0/150
提交評論