版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年遼寧省錦州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號(hào):________
一、單選題(20題)1.設(shè)有如下函數(shù)定義:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若執(zhí)行調(diào)用語句:“n=fun(3);”,則函數(shù)fun總共被訶用的次數(shù)是()。A.2B.3C.4D.5
2.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
3.有如下程序:main(){intx=1,a=0,b=0;switch(x){case0:b++;casel:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
4.數(shù)據(jù)庫是()的集合,它具有統(tǒng)一的結(jié)構(gòu)格式并存放于統(tǒng)一的存儲(chǔ)介質(zhì),可被各個(gè)應(yīng)用程序所共享
A.視圖B.消息C.數(shù)據(jù)D.關(guān)系
5.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
6.第
17
題
若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
7.有下列程序:main{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。A.45B.20C.25D.36
8.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為非空的循環(huán)單鏈表first的尾結(jié)點(diǎn)(由p所指向)滿足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;
9.對長度為n的無序線性表進(jìn)行順序查找,則查找成功、不成功時(shí)的平均數(shù)據(jù)比較次數(shù)分別為()。
A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1
10.設(shè)有定義“intk=3,i=2;”,以下選項(xiàng)中,變量k的值與其他3個(gè)不同的是()。
A.k-=i;B.k=--i;C.k=i-1;D.k=i--;
11.數(shù)據(jù)流圖(DFD)的作用是()。
A.描述軟件系統(tǒng)的控制流B.支持軟件系統(tǒng)的功能建模C.支持軟件系統(tǒng)的面向?qū)ο蠓治鯠.描述軟件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)
12.若有定義語句“chars[10]=“1234567\0\0”;”,則Strlen(s)的值是()。
A.7B.8C.9D.10
13.下而程序的輸出結(jié)果是()。
A)32
B)26
C)24
D)4
14.關(guān)于指針,以下說法正確的是()。A.可以直接向指針中寫入數(shù)據(jù)
B.若指針指向變量,則可以向指針?biāo)竷?nèi)存單元寫入數(shù)據(jù)
C.指針可以指向內(nèi)存中任何位置,并寫入數(shù)據(jù)
D.兩個(gè)指針可以通過加運(yùn)算求和,形成一個(gè)功能更強(qiáng)大的指針
15.有以下程序:#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);}程序的運(yùn)行結(jié)果是()。
A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
16.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):inti=8,j=9;則下列語句:printf("i=%%d,j=%%d\n",i,j);輸出的結(jié)果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
17.兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為()。
A.耦合度
B.內(nèi)聚度
C.復(fù)雜度
D.數(shù)據(jù)傳輸特性
18.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
19.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);執(zhí)行語句printf("%d,%C",a[2].a(chǎn)ge,*(a[3].name+2))的輸出結(jié)果為()。A.15,AB.16,HC.16,AD.17,H
20.下列關(guān)于棧敘述正確的是A.棧頂元素最先能被刪除B.棧頂元素最后才能被刪除C.棧底元素永遠(yuǎn)不能被刪除D.以上三種說法都不對
二、2.填空題(20題)21.以下程序的輸出結(jié)果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}
22.在樹形結(jié)構(gòu)中,樹根結(jié)點(diǎn)沒有______。
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
24.以下程序用于判斷a,b,c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a,b,c輸入三角形三條邊長時(shí),確定a,b,c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構(gòu)成三角形*/
elseprinff("NO\n");/*a.b.c不能構(gòu)成三解形*/
}
25.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
26.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個(gè)小于z”的表達(dá)式______。
27.設(shè)y為血型變量,請寫出描述“y是偶數(shù)”的表達(dá)式______。
28.測試的目的是暴露錯(cuò)誤,評價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
29.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
30.以下程序的輸出結(jié)果是【】。
#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);
}
31.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(S);
for(i=j(luò)0;s[i]!'\0';i++)
if(s[i]!='c')______;
s[j]='\0;
puts(S);
}
32.設(shè)有以下程序,為使之正確運(yùn)行,請?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
33.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
34.執(zhí)行以下程序后,輸出‘#’號(hào)的個(gè)數(shù)是【】。
#include<atdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
35.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。
36.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
37.在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅需要存儲(chǔ)各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
38.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計(jì)算它們的和值。和值通過形參傳回主函數(shù)輸出。請?zhí)羁铡?/p>
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*sum)
{inti,j,k,s=0;
for(i=0:i<N;i++)
{k=0:
for(j=1;j<M;j++)
if(a[k][i]>a[j][i]k=j;
s+=______;
}
______=s:
}
main()
{intx[M][N]={3,2,5,1,4,1,8.3},s;
sumColumMin(______)
printf("%d\n".s):
}
39.以下程序的輸出結(jié)果為【】。
#defineJFT(x)x*x
main()
{inta,k=3;
a=++JFT(k+1);
printf("%d",a);
}
40.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
三、1.選擇題(20題)41.假定所有變量已正確說明,下列程序段運(yùn)行后,x的值是()a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
42.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidfun(int*s,int*p){staticintt=3;*p=s[t];t--;}voidmain()inta[]={2,3,4,5},k;intx;for(k=0;k<4;k++){fun(a,&x);printf("%d,",x);}
A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,
43.按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹
44.下列語句段中,正確的是()。
A.struct{intx;floaty;inta[2];unsignedb[3];charname[10];};
B.structstu{unsigneda[3];unsignedb[4];}x;int*p=&x.a;
C.structstu{inta;floatx[4];}y={1,1.0};floatdata=y.x;
D.structnd{inta,b;unsignedc[2]=5;};
45.下列對于線性鏈表的描述中正確的是()
A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的
B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
C.存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的
46.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表
47.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b=′b′;
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
48.設(shè)函數(shù)fun的定義形式為:voldfun(charch,floatx){……}則以下對函數(shù)fun的調(diào)用語句中,正確的是()。
A.fun("abc",3.0);
B.t=fun('D',16.5);
C.fun('65',2.8);
D.fun(32,32);
49.以下選項(xiàng)中,不能正確賦值的是______。
A.chars1[10];s1="chest";
B.chars2[]={'C','t','e','s','t'};
C.chars3[20]="Chest";
D.char*s4="Cest\n"
50.下面程序段的運(yùn)行結(jié)果是
char*s="abcde";
s+=2;printf("%d",s);
A.cdeB.字符′c′C.字符′c′的地址D.無確定的輸出結(jié)果
51.有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1)printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是______。
A.6,1B.2,1C.6,0D.2,0
52.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
53.以下敘述錯(cuò)誤的是()。
A.C語言區(qū)分大小寫
B.C程序中的一個(gè)變量,代表內(nèi)存中一個(gè)相應(yīng)的存儲(chǔ)單元,變量的值可以根據(jù)需要隨時(shí)修改
C.整數(shù)和實(shí)數(shù)都能用C語言準(zhǔn)確無誤地表示出來
D.在C程序中,正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來表示
54.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流圖(DFD)作為描述工具的軟件開發(fā)階段是()。
A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼
55.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量
56.#define能作簡單的替代,用宏來替代計(jì)算多項(xiàng)式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
57.設(shè)有定義:longx=-123456L;,則以下能夠正確輸出變量x值的語句是A.printf("x=%d\n",x);
B.printf("x=%1d\n",x);
C.printf("x=%8dL\n",x);
D.printf("x=%LD\n",x);
58.下列敘述中正確的是A.break語句只能用于switch語句
B.在switch語句中必須使用default
C.break語句必須與switch語句中的case配對使用
D.在switch語句中,不一定使用break語句
59.假定所有變量均已正確說明,下列程序段運(yùn)行后x的值是a=d=c=0;x=35;if(!a)x=-1,elseif(b);if(c)x=3;elsex=4;
A.34B.4C.35D.3
60.數(shù)據(jù)庫的物理設(shè)計(jì)是為一個(gè)給定的邏輯結(jié)構(gòu)選取一個(gè)適合應(yīng)用環(huán)境的______的過程,包括確定數(shù)據(jù)庫在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法。
A.邏輯結(jié)構(gòu)B.物理結(jié)構(gòu)C.概念結(jié)構(gòu)D.層次結(jié)構(gòu)
四、選擇題(20題)61.軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
62.
63.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
64.
65.
66.
67.語句:“printf("%d",(a=)&&(b=-2));”的輸出結(jié)果是()。A.A.無輸出B.結(jié)果是不確定C.-1D.1
68.
69.以下不能正確定義二維數(shù)組的選項(xiàng)是()。
A.
B.
C.
D.
70.若有定義“doublea;”,則正確的輸入語句是()。
A.seaM("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
71.
72.以下敘述中正確的是()。
A.用C語言編寫的程序只能放在一個(gè)程序文件中
B.C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句
C.C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面
D.C程序書寫格式自由,一個(gè)語句可以寫在多行上
73.有如下說明
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數(shù)值為9的表達(dá)式是
A.*p+9B.*(p+8)C.*p+=9D.p+8
74.
75.有以下程序
76.
77.有以下程序main(){intc=35;printf("%d\n",c&c);}程序運(yùn)行后的輸出結(jié)果是______。
A.0B.70C.35D.1
78.在以下給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。
79.在以下選項(xiàng)中,不正確的賦值語句是()。
A.i++;B.nl=(n2=(n3=0..;C.m+n=1;D.i=k==j;
80.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc的功能是:用選擇法對數(shù)組中的m個(gè)元素按從小到大的順序進(jìn)行排序。
例如,排序前的數(shù)據(jù)為:1132-5214
則排序后的數(shù)據(jù)為:-52111432
請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#defineM20
voidproc(inta[],intn)
{
inti,j,t,P;
//****found****
for(j=0;j<n-1;j++);
{
p=j;
for(i=j;i<n;i++)
if(a[[i]<a[p])
p=i;
t=a[p];
a[p]=aEj3;
//****found****
a[p]=t;
}
}
voidmain
{
intarr[M]={11,32,-5,2,14},i,m=5;
printf("排序前的數(shù)據(jù):");
for(i=0;i<m;i++)
printf("%d",arr[i]);
printf("\n");
proc(arr,m);
printf("排序后的順序:");
for(i=0;i<m;i++)
printf("%d",arr[i]);
printf("\n");
}
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫程序,實(shí)現(xiàn)矩陣(3行、3列)的轉(zhuǎn)置(即行列互換)。例如,若輸入下面的矩陣:100200300400500600700800900則程序輸出:100400700200500800300600900注意:部分源程序在文件prog1.c中。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:11#include<stdio.h>2#include<conio.h>3#include<stdlib.h>4voidfun(intarray[3][3])5{67}8voidmain()9{10FILE*wf;11inti,j;12intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};13system("CLS");14for(i=0;i<3;i++)15{for(j=0;j<3;j++)16printf("%7d",array[i][j]);17printf("\n");18}19fun(array);20printf("Convertedarray:\n");21for(i=0;i<3;i++)22{for(j=0;j<3;j++)23printf("%7d",array[i][j]);24printf("\n");25}26/*********found*********/27wf=fopen("out.datn,"w");28for(i=0;i<3;i++)29{for(j=0;j<3;j++)30fprintf(wf,"%7dn,array[i][j]);31fprintf(wf,"\n");32}33fclose(wf);34/*********found********/35}
參考答案
1.B此題考查簡單的循環(huán),當(dāng)執(zhí)行n=fun(3),則函數(shù)fun執(zhí)行3次。
2.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:
類型名數(shù)組名[常量表達(dá)式];
一維數(shù)組的引用形式為:數(shù)組名[下標(biāo)表達(dá)式]。count表示能被2整除或被5整除的個(gè)數(shù),i則計(jì)算有多少個(gè)數(shù)組元素。
3.A當(dāng)X為1時(shí),執(zhí)行case1,a自加等于1,因?yàn)閏ase1后沒有break,接著執(zhí)行case2,此時(shí)a的值為2,b自加為1,故選擇A選項(xiàng)。
4.C解析:數(shù)據(jù)庫是數(shù)據(jù)的集合,其中的數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,它能構(gòu)造復(fù)雜的數(shù)據(jù)結(jié)構(gòu),以建立數(shù)據(jù)之間的內(nèi)在聯(lián)系與復(fù)雜的關(guān)系。
5.D本題考查兩個(gè)知識(shí)點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
6.B解析:條件運(yùn)算符要求有3個(gè)操作對象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。并且注意++、--的用法。
7.C在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因?yàn)镃語言規(guī)定數(shù)組名做表達(dá)式相當(dāng)于數(shù)組的首地址,也就是第一個(gè)元素的地址。因此,*(t+i)代表數(shù)組的第i+1個(gè)元素。所以程序運(yùn)行的結(jié)果是1+3+5+7+9=25,即變量S的值等于25。
8.C
9.C
10.D選項(xiàng)A是復(fù)合的賦值運(yùn)算符,等價(jià)于“k=k-i”,所以k的值為1;選項(xiàng)B中前綴自減運(yùn)算符首先將i的值自減1,然后將自減后的值賦給k,所以k和i的值都是1;選項(xiàng)C中k的值為1;選項(xiàng)D中后綴自減運(yùn)算符將i的值先賦給k,然后i自減1,所以k的值為2。故本題答案為D選項(xiàng)。
11.B數(shù)據(jù)流圖是系統(tǒng)邏輯模型的圖形表示,從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變化過程,它直接支持系統(tǒng)的功能建模。本題答案為B選項(xiàng)。
12.Astrlen函數(shù)計(jì)算字符串長度時(shí),遇到結(jié)束標(biāo)識(shí)為止,且長度不包括結(jié)束標(biāo)識(shí)。本題中的字符串從第1個(gè)字符開始,遇到第1個(gè)結(jié)束標(biāo)識(shí)‘\\0’為止,注意不占字符串長度,所以字符串長度為7。故本題答案為A選項(xiàng)。
13.C本題考查的是聯(lián)合所占的存儲(chǔ)空間。sizeof(t)=sizeof(douhle)*3=8*3=24。聯(lián)合體所占的存儲(chǔ)空間取決于所占空間最大的成員所占的空間。
14.BC語言中指針就是變量的地址,它必須有確定的基類型。當(dāng)指針指向某個(gè)變量時(shí),才能向其中寫入數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針除了指向變量外,還可以賦值為NULL,表示未指向任何地址,此時(shí)不能寫入數(shù)據(jù),另外指針必須有基類型,只能指向基類型相同的變量,選項(xiàng)C錯(cuò)誤;指針只能與一個(gè)整數(shù)進(jìn)行運(yùn)算,即移動(dòng)指針,兩個(gè)指針不能運(yùn)算,選項(xiàng)D錯(cuò)誤。本題答案為B選項(xiàng)。
15.Bcase常量表達(dá)式只是起語句標(biāo)號(hào)作用,并不進(jìn)行條件判斷。在執(zhí)行switch語句時(shí),根據(jù)switch的表達(dá)式,找到與之匹配的case語句,就從此case子句執(zhí)行下去,不再進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)層“switch(y)”時(shí)只執(zhí)行了“a++;”,此時(shí)a的值為1,然后執(zhí)行外層case2語句的“a++;b++;”,a值為2,b值為1。故本題答案為B選項(xiàng)。
16.B本題考查函數(shù)的輸出格式。在printf函數(shù),格式說明符中有兩個(gè)“%”說明;將第1個(gè)%后面的字符原樣輸出,并不輸出其對應(yīng)r的變量值。
17.A解析:本題考核模塊獨(dú)立性的評價(jià)。評價(jià)模塊獨(dú)立性的主要標(biāo)準(zhǔn)有兩個(gè);一是模塊之間的耦合,它表明兩個(gè)模塊之間互相獨(dú)立的程度,也可以說是兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度(所以,本題的正確答案為選項(xiàng)A);二是模塊內(nèi)部之間的關(guān)系是否緊密,稱為內(nèi)聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨(dú)立,而要求模塊的內(nèi)聚程度盡量地高。
18.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個(gè)逗號(hào)表達(dá)式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號(hào)表達(dá)式中第二個(gè)表達(dá)式的值,為1。
19.C本題考查結(jié)構(gòu)體數(shù)組。a[2].a(chǎn)ge為結(jié)構(gòu)體aEZ]的age成員,即a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個(gè)元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個(gè)元素“A”,*(a[3].name+2)是取指針?biāo)赶虻刂返膬?nèi)容。
20.A棧是限定只在一端進(jìn)行插入與刪除的線性表,按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。
21.ar=6ar=6ar=13ar=6ar=6ar=13解析:通過*p=a+5將指針P指向a[5],第1次循環(huán),i=3時(shí),switch(3),執(zhí)行case3,*(-p)-a[4]=6,所以輸出ar=6;第2次循環(huán),j=2時(shí),switch(2),執(zhí)行case2,(*p++)是先引用a[4]的值6,輸出ar=6,再將指針P移位指向a[5];第3次循環(huán),j=1時(shí),switch(1),執(zhí)行case1,case1后沒有break語句,接著執(zhí)行case2,(*p++)是先引用a[5]的值13,輸出ar=13,再將指針P移位指向a[6]。
22.前件前件
23.8888解析:C語言規(guī)定,以0開頭的整型常量為八進(jìn)制。另外,在primf()函數(shù)中,%X表示以十六進(jìn)制無符號(hào)形式輸出一個(gè)整數(shù),且十六進(jìn)制中的ABCDEF為大寫字母。本題的輸出應(yīng)該是八進(jìn)制210的十六進(jìn)制形式。將八進(jìn)制轉(zhuǎn)換為十六進(jìn)制,可以先將其轉(zhuǎn)換為二進(jìn)制。因?yàn)?位八進(jìn)制表示3位二進(jìn)制,4位二進(jìn)制表示1位十六進(jìn)制。(210)8=(10001000)2=(88)16,故本題輸出為880
24.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構(gòu)成三角形的條件:兩邊之和大于第三邊,得出空格應(yīng)該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價(jià)的形式。
25.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
26.x<z‖y<zx<z‖y<z解析:本題考查邏輯運(yùn)算符和邏輯表達(dá)式。x或y中至少有一個(gè)小于z,即x<z或y<z,是“或”的關(guān)系。
27.(y%2)==0(y%2)==0解析:因符合偶數(shù)的條件是對2取余為0,所以要描述y是偶數(shù)的表達(dá)式是(y%2)==0。
28.調(diào)試調(diào)試
29.無限無限解析:分析程序“while(s)”語句后面有一個(gè)“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
30.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
31.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲(chǔ)存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過.j++將下標(biāo)加1,指向下一元素要存儲(chǔ)的位置。
32.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒有特別說明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。
33.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進(jìn)行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
34.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時(shí),由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#;當(dāng)i=3時(shí),內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#;當(dāng)i=4時(shí),內(nèi)層循環(huán)循環(huán)三次,輸出三個(gè)#;當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個(gè)#。
35.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
36.21
37.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,除了要存儲(chǔ)數(shù)據(jù),還要存儲(chǔ)數(shù)據(jù)的前后件關(guān)系,對于順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲(chǔ)空間的位置來實(shí)現(xiàn)的,而對于鏈?zhǔn)酱鎯?chǔ)來說,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。
38.a[k][i]*sumx&s
39.99解析:本題中首先將宏替換掉,則表達(dá)式為a=++k+1*k+1=4+1*4+1=9,故最后輸出a的值為9。
40.6060解析:程序中定義a是一個(gè)3行2列的二維數(shù)組,p是指向兩個(gè)元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
41.B
42.A解析:分析fun函數(shù)程序段,可知fun函數(shù)要實(shí)現(xiàn)的功能是將s中第(t+1)個(gè)元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時(shí),就是要將數(shù)組a中前4個(gè)元素逆置賦給數(shù)組x,最后輸出x數(shù)組。
43.B解析:“后進(jìn)先出”表示最后被插入的元素最先能被刪除。選項(xiàng)A中,隊(duì)列是指允許在—端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,隊(duì)列又稱為“先進(jìn)先出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則:選項(xiàng)B中,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素,棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。隊(duì)列和棧都屆于線性表,它們具有順序存儲(chǔ)的特點(diǎn),所以才有“先進(jìn)先出”和“后進(jìn)先出”的數(shù)據(jù)組織方式。雙向鏈表使用鏈?zhǔn)酱鎯?chǔ)方式,二叉樹也通常采用鏈?zhǔn)酱鎯?chǔ)方式,它們的存儲(chǔ)數(shù)據(jù)的空間可以是不連續(xù)的,各個(gè)數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。所以選項(xiàng)C和選項(xiàng)D錯(cuò)誤。本題的正確答案為選項(xiàng)B。
44.A解析:本題主要考查的知識(shí)點(diǎn)是結(jié)構(gòu)類型的概念和定義,結(jié)構(gòu)定義的一般形式:
struct結(jié)構(gòu)類型名稱
{數(shù)據(jù)類型成員名1;
數(shù)據(jù)類型成員名2;
…
數(shù)據(jù)類型成員名n;
};
struct為關(guān)鍵字,是結(jié)構(gòu)的標(biāo)識(shí)符;{}中包圍的是組成該結(jié)構(gòu)的成員項(xiàng);每個(gè)成員的數(shù)據(jù)類型既可以是簡單的數(shù)據(jù)類型,也可以是復(fù)雜的數(shù)據(jù)類型。整個(gè)定義作為一個(gè)完整的語句,用分號(hào)結(jié)束。結(jié)構(gòu)類型名稱是可以省略的,此時(shí)定義的結(jié)構(gòu)稱為無名結(jié)構(gòu)。
45.A本題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。\n在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。故本題答案為A。
46.C隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,選項(xiàng)A和選項(xiàng)B錯(cuò)誤。允許插入的一端稱為隊(duì)尾,允許刪除的一端稱為隊(duì)頭。在隊(duì)列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊(duì)列又稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則,選項(xiàng)C正確,選項(xiàng)D錯(cuò)誤。
47.B解析:本題考查變量的定義方法。
48.D解析:調(diào)用有參函數(shù)時(shí),實(shí)參與形參的類型應(yīng)相同或賦值兼容。由于整型數(shù)據(jù)與字符型數(shù)據(jù)可以通用,所以實(shí)參“32”與形參ch的類型是一致的;又因?yàn)檎妥兞拷o浮點(diǎn)型變量賦值是相兼容的,所以選項(xiàng)D)正確。
49.A解析:C語言中不能將字符串常量直接賦給數(shù)組。但在賦初值時(shí)可以。
50.C解析:對于字符串指針,其保留的是整個(gè)串的首地址,即第一個(gè)字符的起始地址;當(dāng)該指針做算術(shù)運(yùn)算時(shí),就是該指針根據(jù)其類型向后移動(dòng)相應(yīng)的存儲(chǔ)空間。
51.B解析:本題主要考查的是C語言中的整除、求余以及邏輯值的概念。在C語言中,/號(hào)的兩邊如果都是整數(shù)的話,返回的結(jié)果也是整數(shù),如果除不凈則舍去小數(shù)部分。%是求余運(yùn)算,它的運(yùn)算對象只能是整型,運(yùn)算結(jié)果是兩數(shù)相除后所得的余數(shù),當(dāng)運(yùn)算量為負(fù)數(shù)時(shí),結(jié)果的符號(hào)與被除數(shù)相同。因此,執(zhí)行語句a=d/10%9;后,a=25/10%9=2%9=2。C語言中沒有專門的邏輯值,而是用整型值來代替。當(dāng)整型值作邏輯值使用時(shí),非零即表示“真”,零表示“假”,而邏輯值當(dāng)整型值使用時(shí),“真”等于1,“假”等于0。因此,執(zhí)行語句b=a&&(-1);后b=2&&(-1)=“真”&&“真”=“真”=1。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
52.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左、右子樹時(shí),注意依舊按照“左子樹一根結(jié)點(diǎn)一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結(jié)點(diǎn)D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結(jié)點(diǎn)A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。
53.C解析:本題涉及C語言最基本的3個(gè)概念:①C語言是區(qū)分大小寫的,q和Q是兩個(gè)不同的變量;②變量的實(shí)質(zhì)就是在內(nèi)存中占據(jù)一定的存儲(chǔ)單元,存儲(chǔ)單元里存放的是該變量的值,變量的值可以根據(jù)需要進(jìn)行修改;③整數(shù)在允許的范圍內(nèi)可以準(zhǔn)確的表示出來,但不可能表示無限度的實(shí)數(shù)。正整數(shù)可用二進(jìn)制、十進(jìn)制、八進(jìn)制和十六進(jìn)制表示。
54.B解析:軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。
55.A本題考查的知識(shí)點(diǎn)是轉(zhuǎn)義字符。題目中的關(guān)鍵是八進(jìn)制101的十進(jìn)制是多少.八進(jìn)制的101轉(zhuǎn)換為十進(jìn)制為65,也就是字符A的ASCII。
56.C解析:帶參數(shù)宏的格式為:#define標(biāo)識(shí)符(形參表)形參表達(dá)式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實(shí)參的宏名,展開成由實(shí)參組成的表達(dá)式。
57.B解析:本題考查的知識(shí)點(diǎn)是輸出語句printf()的基本用法。x為一個(gè)長整型的變量,而且是一個(gè)十進(jìn)制的數(shù),它的輸出控制符是“%1d”,所以排除選項(xiàng)A和選項(xiàng)C;由于C語言中是區(qū)分大小寫的,“1d”中的“d”不能為大寫,故排除選項(xiàng)D。4個(gè)選項(xiàng)中B正確。
58.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項(xiàng)A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時(shí)的分支,也可以不使用default,此時(shí)若所有case均失配則跳出switch,因此選項(xiàng)B不正確。在switch語句中,每個(gè)case的作用就是標(biāo)出一個(gè)執(zhí)行的起點(diǎn),當(dāng)符合某個(gè)case時(shí),程序就從該case所標(biāo)出的起點(diǎn)處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會(huì)一直執(zhí)行到switch的最后一條語句,而不是碰到下一個(gè)case就跳出switch。雖然break與case的配對使用會(huì)讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項(xiàng)C不正確,應(yīng)該選擇D。
59.B
60.B解析:根據(jù)數(shù)據(jù)庫物理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)消防安全評估指南
- 安全生產(chǎn)典范企業(yè)講解
- 2025-2026人教版小學(xué)二年級語文期末測試卷上
- 結(jié)構(gòu)專業(yè)考試題及答案
- 2025-2026人教版三年級語文上學(xué)期卷
- 腸道菌群與NAFLD肝硬化PHG:MDT調(diào)節(jié)策略
- 2025-2026一年級語文上學(xué)期期末測試卷
- 腸狹窄術(shù)后腹腔感染的處理策略
- 腸梗阻合并糖尿病患者的血糖管理策略
- 衛(wèi)生院執(zhí)業(yè)監(jiān)督管理制度
- 安全生產(chǎn)目標(biāo)及考核制度
- (2026版)患者十大安全目標(biāo)(2篇)
- 2026年北大拉丁語標(biāo)準(zhǔn)考試試題
- 臨床護(hù)理操作流程禮儀規(guī)范
- 2025年酒店總經(jīng)理年度工作總結(jié)暨戰(zhàn)略規(guī)劃
- 空氣栓塞課件教學(xué)
- 2025年國家市場監(jiān)管總局公開遴選公務(wù)員面試題及答案
- 肌骨康復(fù)腰椎課件
- 患者身份識(shí)別管理標(biāo)準(zhǔn)
- 2025年10月自考04184線性代數(shù)經(jīng)管類試題及答案含評分參考
- 2025年勞動(dòng)保障協(xié)理員三級技能試題及答案
評論
0/150
提交評論