




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年甘肅省蘭州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________一、單選題(20題)1.有以下程序#include<stdio.h>main{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。A.741B.963C.852D.875421
2.
有以下程序:
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.i-1B.iC.i+1D.4一i
3.計(jì)算機(jī)高級(jí)語(yǔ)言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。
A.C語(yǔ)言程序僅可以編譯執(zhí)行B.C語(yǔ)言程序僅可以解釋執(zhí)行C.C語(yǔ)言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對(duì)
4.允許對(duì)隊(duì)列進(jìn)行的操作有()。
A.對(duì)隊(duì)列中的元素排序B.取出最近進(jìn)隊(duì)的元素C.在隊(duì)頭元素之前插入元素D.刪除隊(duì)頭元素
5.若果要求一個(gè)線性表既能較快查找,又能適應(yīng)動(dòng)態(tài)變化的要求,可以采用()查找方法。
A.分塊B.順序C.二分D.散列
6.若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語(yǔ)句是()。A.scanf(“%d%lx,%le”,&x,&y,&z);
B.scanf(“%2d*%d%lf”&x,&y,&z);
C.scanf(“%x%*d%o”,&x,&y);
D.scanf(“%x%o%6.2f”,&x,&y,&z)
7.設(shè)有定義:structcomplex{intreal,unreal;}data1={1,8},data2;則下列賦值語(yǔ)句中錯(cuò)誤的是()。
A.data2=(2,6);
B.data2=data1;
C.data2.real=data1.real;
D.data2.real=data1.unreal;
8.深度為5的二叉樹至多有C個(gè)結(jié)點(diǎn)。
A.16B.32C.31D.10
9.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序運(yùn)行后的輸出結(jié)果是______。
A.4B.3C.2D.1
10.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
11.已知一個(gè)無向圖(邊為正數(shù))中頂點(diǎn)A,B的一條最短路P,如果把各個(gè)邊的權(quán)重(即相鄰兩個(gè)頂點(diǎn)的距離)變?yōu)樵瓉淼?倍,那么在新圖中,P仍然是A,B之間的最短路,以上說法是()A.錯(cuò)誤B.正確
12.在C語(yǔ)言中,函數(shù)隱含的類型是()
A.autoB.staticC.intD.void
13.有以下函數(shù):intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。
A.將y所指字符串賦給x所指存儲(chǔ)空間
B.查找x和y所指字符串中是否有‘\0’
C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
D.統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)
14.有以下程序:#include#definePT3.5;#defineS(x)PT*x*x;Main(){inta=1,b=2;printf("%4.1f\n",S(a+b));程序運(yùn)行后的輸出結(jié)果是()。A.7.5B.31.5C.程序有錯(cuò)無輸出結(jié)果D.14.0
15.若有定義和語(yǔ)句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結(jié)果是()
A.10,10B.10,20C.20,10D.20,20
16.最小堆[0,3,2,5,7,4,6,8],在刪除堆頂元素0之后,其結(jié)果是()
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
17.a、b、c、d變量均為float類型且已正確賦值,下列選項(xiàng)中與數(shù)學(xué)式子“2ab/(5cd)”等價(jià)的C語(yǔ)言表達(dá)式是()。
A.2/5*a/c*d/b
B.a/(5*c*d)*(2*b)
C.2*a*b/5*c*d
D.2/5*a*d*(1/c*d)
18.已知廣義表L=((x,y,z),a,(u,t,w)),從L表中取出原子項(xiàng)t的運(yùn)算是()。
A.head(tail(tail(L)))
B.tail(head(head(tail(L))))
C.head(tail(head(tail(L))))
D.head(tail(head(tail(tail(L)))))
19.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是______。
A.數(shù)據(jù)庫(kù)是一個(gè)DBF文件B.數(shù)據(jù)庫(kù)是一個(gè)關(guān)系C.數(shù)據(jù)庫(kù)是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫(kù)是一組文件
20.下列描述中正確的是()。
A.軟件工程只是解決軟件項(xiàng)目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
二、2.填空題(20題)21.在長(zhǎng)度為n的線性表中查找一個(gè)表中不存在的元素,需要的比較次數(shù)為【】。
22.以下程序段的輸出結(jié)果是【】。
inti=9;
printf("%o\n",i);
23.在宏定義#defineP13.14159中,用宏名PI代替一個(gè)______。
24.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為______。
25.下列程序的功能:對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(c))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
26.若有定義語(yǔ)句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請(qǐng)?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號(hào)表達(dá)式)
while(s[i]){d[j]=【】;j++;}
d[j]=0;
27.以下程序的輸出結(jié)果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
28.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為______個(gè)。
29.【】是指一個(gè)數(shù)據(jù)對(duì)象中的各個(gè)數(shù)據(jù)元素之間存在的聯(lián)系。
30.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
31.數(shù)據(jù)庫(kù)管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
32.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
33.下列程序的運(yùn)行結(jié)果為【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
34.以下程序運(yùn)行后的輸出結(jié)果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
35.要使以下程序段輸出10個(gè)整數(shù),請(qǐng)?zhí)钊胍粋€(gè)整數(shù);
for(i=0;i<=【】;printf("%d\n",i+=2));
36.某二叉樹中度為2的節(jié)點(diǎn)有18個(gè),則該二叉樹中有()個(gè)葉子節(jié)點(diǎn)。
37.下述函數(shù)統(tǒng)計(jì)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=")flag=0;
elseif【】{flag=1;num++}
}
return【】;}
38.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】}
39.設(shè)有以下定義和語(yǔ)句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
40.想通過以下輸入語(yǔ)句給x賦值2,給y賦值3,則輸入數(shù)據(jù)的形式應(yīng)該是______。
intx,y;
scanf("x=%d,y=%d",&x,&y);
三、1.選擇題(20題)41.以下不正確的敘述是A.A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低
B.在C程序中,APH和aph是兩個(gè)不同的變量
C.若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變
D.當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)型數(shù)值
42.有以下程序
#include<stdlib.h>
structNODE
{intnum;stmctNODE*next;};
main()
{structNODE*p,*q,*r;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf(“%d\n”,p->num+q->next->num);
}
程序運(yùn)行后的輸出結(jié)果是
A.10B.20C.30D.40
43.設(shè)有以下語(yǔ)句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中0≤i≤0)inta[10]={O,12,3,4,5,6,7,8,9},*p=a;
A.a[p-a}B.*(&a[i])C.p[i]D.*(*(a+i)
44.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
45.有下列程序:
fun(intx)
{intp;
if(x==0‖x==1)return(3);
p=x-fun(x-2);
returnp;
}
main()
{printf("%d\n",fun(7));}
執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
46.有以下程序struetSTU{charname[10];intnum;intScore;};main(){structSTUs[5]-{{"YangSan",20041,703},("LiSiGuo",20042,580},{"WangYin",20043,680},{"SunDan",20044,550},{"Penghua",20045,537}},*p[5],*t;inti,j;for(i=0;i<5;i++)p[i]-&s[i];for(i0;i<4;i++)for(j-i+1;j<5;j++)if(p[i]>Score>p[j]>Score){t=p[i];p[i]=p[j];p[j]-t;}printf("%d%dkn",s[1].Score,p[1]->Score);}執(zhí)行后輸出結(jié)果是
A.550550B.680680C.580550D.580680
47.若變量已正確定義并賦值,以下符合C++語(yǔ)言語(yǔ)法的表達(dá)式是()。
A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b
48.若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元int*pp=______malloc(sizeof(int));則應(yīng)填入______。
A.intB.int*C.(*int)D.(int*)
49.有以下程序:main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}程序運(yùn)行后的輸出結(jié)果是
A.3B.6C.9D.2
50.設(shè)有如下三個(gè)關(guān)系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
51.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是
A.8,6B.8,3C.6,4D.7,4
52.以下選項(xiàng)中不屬于字符常量的是
A.'C'B.CC.'\xCC'D.'\072'
53.有以下函數(shù)fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是______。
A.計(jì)算a和b所指字符串的長(zhǎng)度之差
B.將b所指字符串連接到a所指字符串中
C.將b所指字符串連接到a所指字符串后面
D.比較a和b所指字符串的大小
54.以下敘述中錯(cuò)誤的是______。A.用戶所定義的標(biāo)識(shí)符允許使用關(guān)鍵字
B.用戶所定義的標(biāo)識(shí)符應(yīng)盡量做到“見名知意”
C.用戶所定義的標(biāo)識(shí)符必須以字母或下劃線開頭
D.用戶定義的標(biāo)識(shí)符中,大、小寫字母代表不同標(biāo)識(shí)
55.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系
56.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數(shù)調(diào)用語(yǔ)句錯(cuò)誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
57.下列程序的輸出結(jié)果是______。main(){staticintnum[5]=}1,3,5,7,9};int*p1,**p2;p1=num;p2=&p1;printf("%d,",*(++p1));printf("%d\n",**p2);}
A.3,1B.3,3C.1,1D.1,3
58.設(shè)有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。
A.輸出語(yǔ)句中格式說明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出
B.運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息
C.輸出值為2002
D.輸出值為2003
59.對(duì)線性表進(jìn)行二分法查找,其前提條件是()
A.線性表以順序方式存儲(chǔ),并已按關(guān)鍵碼值排好序
B.線性表以順序方式存儲(chǔ),并已按關(guān)鍵碼值的查找頻率排好序
C.線性表以鏈接方式存儲(chǔ),并已按關(guān)鍵碼值排好序
D.線性表以鏈接方式存儲(chǔ),并已按關(guān)鍵碼值的查找頻率排好序
60.若在以下定義和賦值語(yǔ)句,則才s數(shù)組的第i行第j列(假設(shè)i,j已正確說明并賦值)元素地址的合法引用為ints[2][3]={0},(*p)[3];p=s;
A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]
四、選擇題(20題)61.設(shè)有如下程序段:
則執(zhí)行P=s;語(yǔ)句后,以下敘述中正確的是()。
A.可以用*P表示s[O]
B.S數(shù)組中元素的個(gè)數(shù)和P所指字符串長(zhǎng)度相等
C.s和P都是指針變量
D.數(shù)組s中的內(nèi)容和指針變量P中的內(nèi)容相等
62.
63.
對(duì)兩個(gè)數(shù)組a和b進(jìn)行下列初始化:
charm[]="1234567";
charn[]={1,2,3,4,5,6,7};
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長(zhǎng)度相同C.數(shù)組m比數(shù)組n長(zhǎng)1D.數(shù)組m與數(shù)組n中都存放字符串
64.下列關(guān)于線性鏈表的敘述中,正確的是()。
A.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致
B.各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)
C.進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素
D.以上說法均不正確
65.為用戶與數(shù)據(jù)庫(kù)系統(tǒng)提供接口的語(yǔ)言是
A.高級(jí)語(yǔ)言B.數(shù)據(jù)描述語(yǔ)言(DDL)C.數(shù)據(jù)操縱語(yǔ)言(DML)D.匯編語(yǔ)言
66.設(shè)有定義:longx=-123456L;則以下能夠正確輸出變量x值的語(yǔ)句是_______。
A.printf(“x=%d\n”,x)
B.printf(“x=%ld\n”,x)
C.printf(“x=?l\n”,x)
D.printf(“x=%D\n”,x);
67.軟件生命周期中所花費(fèi)用最多的階段是()。
A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)
68.下列程序的輸出結(jié)果是()。
char*p1="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A.xyabcABB.abcABzC.ABabczD.xycdBCD
69.執(zhí)行以下程序段后,T的值為
intT=’a’,x=12,y=5;
T=((x||y)&&(T>’A’));
A.1B.NULLC.-lD.0
70.
71.以下描述中正確的是()。
A.由于do-while循環(huán)中循環(huán)體語(yǔ)句只能是一條可執(zhí)行語(yǔ)句,所以循環(huán)體內(nèi)不能使用復(fù)合語(yǔ)句
B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號(hào)
C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷
D.do-while循環(huán)中,根據(jù)情況可以省略while
72.
73.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運(yùn)算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
74.以下程序的輸出結(jié)果是()。
charstr[15]=”hello!”;
printf(“%d\n”,strlen(str));
A.15B.14C.7D.6
75.
76.對(duì)如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。
A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
77.
78.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)
D.ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針
79.在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。
A.程序內(nèi)部邏輯B.程序外部功能C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
80.
五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對(duì)數(shù)組中的n個(gè)元素按從大到小的順序進(jìn)行排序。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的記錄已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是找出成績(jī)最高的學(xué)生記錄,通過形參將其返回主函數(shù)(規(guī)定只有一個(gè)最髙分)。已給出函數(shù)的首部,請(qǐng)完成該函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10typedefstructss/*定義結(jié)構(gòu)體*/{charnum[10];ints;}STU;fun(STUa[],STU*s){}voidmain(){STUa[N]={{“A01”,81},{“A02”,89},{“A03”,66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,80},{“A10”,71}},m;inti;system(“CLS”);printf(“****Theoriginaldata****”);for(i=0;i<N;i++)printf(“No=%sMark=%d\n”,a[i].num,a[i].s);fun(a,&m);printf(“****THERESULT****\n”);printf(“Thetop:%s,%d\n”,m.num,m.s);}
參考答案
1.C在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),執(zhí)行輸出語(yǔ)句,輸出表達(dá)式--Y的值。Y先自減l,然后再輸出y的值。
2.B
\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。
\n
3.A解釋執(zhí)行是計(jì)算機(jī)語(yǔ)言的一種執(zhí)行方式。由解釋器現(xiàn)場(chǎng)解釋執(zhí)行,不生成目標(biāo)程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經(jīng)過編譯生成目標(biāo)文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。
4.D
5.A
6.D
7.AA選項(xiàng)中的語(yǔ)句可以在聲明變量的同時(shí)為data2賦值,賦值語(yǔ)句應(yīng)寫作“data2={2,6};”。故本題答案為A選項(xiàng)。
8.C
9.D解析:C語(yǔ)言覿定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。
10.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進(jìn)行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。
11.B
12.C
13.C本題中由循環(huán)條件可知,遇到‘\\0’或x與y所指的字符不相等時(shí)循環(huán)結(jié)束。所以函數(shù)的功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。故本題答案為C選項(xiàng)。
14.C宏定義不是C語(yǔ)句,末尾不需要有分號(hào)。所以語(yǔ)句Printf("%4.1f\\n",,S(a+b));展開后為printf("%4.1f\\n",3.5;*a+b*a+b;);所以程序會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。
15.D
16.C
17.B解析:選項(xiàng)A和選項(xiàng)D中首先計(jì)算2/5,因?yàn)閮蓚€(gè)計(jì)算分量都是整型,所以結(jié)果為2,與實(shí)際運(yùn)算不符;選項(xiàng)B中因?yàn)槌顺M足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項(xiàng)C中的表達(dá)式等價(jià)于2abcd/5,所以不滿足題目要求。故應(yīng)該選擇B。
18.D
19.C解析:數(shù)據(jù)庫(kù)(Database,簡(jiǎn)稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有“集成”、“共事”之特點(diǎn)。
20.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長(zhǎng)得不到滿足、軟件開發(fā)成本和進(jìn)度無法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長(zhǎng)。軟件項(xiàng)目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項(xiàng)C正確。
21.nn解析:在長(zhǎng)度為n的線性表中查找一個(gè)表中不存在的元素,需要的比較次數(shù)為n。
22.1111解析:本題考核的知識(shí)點(diǎn)是printf()函數(shù)的輸出格式。本題中定義了一個(gè)整型變量i并賦初值為9,然后要求以八進(jìn)制輸出i的值,9的八進(jìn)制數(shù)的表示為11。
23.本題考查字符替換格式:#define標(biāo)識(shí)符字符串。
24.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。
25.分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。\r\n\r\n
26.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。
27.aa解析:'z'的ASCII碼值為122,經(jīng)過c-25運(yùn)算后,得97,以字符形式輸出是a。
28.3232解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。由此,26-1=32.所以答案為32。
29.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
30.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*
31.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫(kù)之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。
32.3131解析:在函數(shù)調(diào)用時(shí),形參值和改變,不會(huì)改變實(shí)參的值。
33.maxvalueis34
34.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長(zhǎng)到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個(gè)for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時(shí)的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。
35.18或1918或19
36.19
37.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空恪,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是—個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1);最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。
38.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1)='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。
39.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。
40.x=2y=3。x=2,y=3。解析:使用scanf函數(shù)輸入數(shù)據(jù),普通字符必須原樣輸入,本題的普通字符為'x'、'='、','、'y'正確的輸入格式是x=2,y=3。
41.D解析:在C語(yǔ)言所有的運(yùn)算符中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。C語(yǔ)言中區(qū)分大小寫,所以APH和aph是兩個(gè)不同的變量。賦值表達(dá)式a=b表示將b的值付給a,而b本身的值保持不變;通過鍵盤可以向計(jì)算機(jī)輸入允許的任何類型的數(shù)據(jù)。選項(xiàng)D)中當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量可以輸入整型數(shù)值和字符,對(duì)于實(shí)型變量可以輸入實(shí)型數(shù)值和整型數(shù)值等。
42.D解析:主函數(shù)中首先定義了三個(gè)結(jié)構(gòu)體指針變量p,q,r。然后調(diào)用內(nèi)存分配函數(shù)分別為其分配地址空間,程序中變量q->num的值為20,指針變量q->next指向指針變量r,r->num的值為30,所以變量q->next->num的值為30,因此,表達(dá)式q->num+q->next->num的值為20+30=50。
43.D解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。
44.C解析:解答本題,首先要明白在對(duì)指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長(zhǎng)度,而1個(gè)存儲(chǔ)單元長(zhǎng)度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié),如果基本類型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。
45.C解析:因?yàn)樵诤瘮?shù)fun(intx)中,如果參數(shù)x等于0或1時(shí),返回值3。否則p=x-fun(x-2)這是一個(gè)遞歸函數(shù),所以在主函數(shù)調(diào)用fun(7)時(shí),其過程為:“fun(7)=7-fun(5)=7-(5-fun(3))=7-(5-(3-fun(1))=7-(5-(3-3))=7-5=2”,所以最后的輸出結(jié)果為2。
46.C解析:本題考核的知識(shí)點(diǎn)是結(jié)構(gòu)體類型的定義、初始化以及結(jié)構(gòu)體數(shù)組中元素的引用方法。本題中首先定義了結(jié)構(gòu)體類型STU,該結(jié)構(gòu)體由一個(gè)長(zhǎng)度為10的字符數(shù)組、兩個(gè)整型變量hum和Score組成.在主函數(shù)中,定義了一個(gè)長(zhǎng)度為5的結(jié)構(gòu)體數(shù)組s并賦初值,一個(gè)指針數(shù)組p和一個(gè)指針變量t,接著將數(shù)組s中各元素的地址依次賦給指針數(shù)組p中的各成員。然后通過兩個(gè)for循環(huán)將數(shù)組p按Score的值從小到大的順序排列。因此最后輸出的p[1]->Seore的值為550,而數(shù)組s[1]。Score的值為580,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
47.B解析:a=b=c+2實(shí)際上相當(dāng)于a=(b=c+2),進(jìn)而可分解為兩個(gè)表達(dá)式:b=c+2和a=b。注意:選項(xiàng)A)中包含一個(gè)不合法的運(yùn)算符“:=”;選項(xiàng)C)應(yīng)改為(int)18.5%3;選項(xiàng)D)可理解為兩個(gè)表達(dá)式:a+7=c+b和a=a+7,其中第一個(gè)是錯(cuò)的,因?yàn)镃++語(yǔ)言規(guī)定賦值號(hào)的左邊只能是單個(gè)變量,不能是表達(dá)式或常量等。注意:C++語(yǔ)言賦值語(yǔ)句的運(yùn)用,
48.D解析:不論p是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法使之類型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。
49.B解析:主函數(shù)中首先定義了一個(gè)3行3列的二維數(shù)組,定義了一個(gè)整型變量指向它,直接通過for循環(huán)給數(shù)組的每一個(gè)元素賦值,使得a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][l]=5、a[1][2]=6、a[2]10]=7、a[2][1]=8、a[2][2]=9。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
50.C解析:本題考查數(shù)據(jù)庫(kù)的關(guān)系代數(shù)運(yùn)算。R表中只有一個(gè)域名A,有兩個(gè)記錄(也叫元組),分別是m和n;S表中有兩個(gè)域名,分別是B和C,其所對(duì)應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個(gè)記錄依次與S的所有記錄組合,然后再由R的第二個(gè)記錄與S的所有記錄組合,形成的一個(gè)新表。上述運(yùn)算恰恰符合關(guān)系代數(shù)的笛卡兒積運(yùn)算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運(yùn)算用“×”來表示。因此,上述運(yùn)算可以表示為T=R×S。因此,本題的正確答案為C。
51.C解析:本題考查的知識(shí)點(diǎn)是運(yùn)算符的優(yōu)先級(jí).在復(fù)合賦值語(yǔ)句中,應(yīng)該由右向左依次賦值,在表達(dá)式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個(gè)選項(xiàng)中C正確。
52.B解析:在C語(yǔ)言程序中,用單引號(hào)把一個(gè)字符或反斜線后跟一個(gè)特定的字符括起來表示一個(gè)字符常量。選項(xiàng)A)、C)和D)為正確的字符常量,而選項(xiàng)B)是用雙引號(hào)括起來的字符,表示一個(gè)字符串常量。
53.D解析:本題的函數(shù)fun的最后一個(gè)語(yǔ)句是“return(*a-*b);”,也就是返回指針a所指單元的值與指針b所指單元的值的差。顯然這不可能是計(jì)算a和b所指字符串的長(zhǎng)度之差,因此選項(xiàng)A的說法是錯(cuò)誤的。由于函數(shù)中并沒有出現(xiàn)。a=*b的賦值操作,所以選項(xiàng)B的連接字符串的說法也是錯(cuò)誤的。同理,由于沒有*a現(xiàn)*a=*b的賦值操作,所以選項(xiàng)C的復(fù)制字符串的說法也是錯(cuò)誤的。排除了三個(gè)選項(xiàng)后,就可以斷定正確選項(xiàng)是D。
54.A解析:C語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,用戶在定義標(biāo)識(shí)符時(shí)應(yīng)盡量做到“見名知意”,且不允許使用關(guān)鍵字作標(biāo)識(shí)符。
55.C解析:程序流程圖是人們對(duì)解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;
表示邏輯條件。
56.C答案C
解析:在語(yǔ)句“k=*f(a,b)”中,由于“()”的優(yōu)先級(jí)高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個(gè)整型參數(shù)的函數(shù)。
57.B解析:指針p1指向數(shù)組num的首地址(同第一個(gè)元素的地址),二級(jí)指針變量p2指向p1。第一個(gè)輸出語(yǔ)句中p1先移動(dòng)一個(gè)單位,指向第二個(gè)數(shù)組元素,再輸出元素的值(3),p1的移動(dòng)不改變p2的指向。因此,第二個(gè)輸出語(yǔ)句輸出的也是3。
58.D解析:本題考查逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的形式為:表達(dá)式1,表達(dá)式2,其求解過程為:先求解表達(dá)式1,再求解表達(dá)式2。整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。
59.A解析:二分法查找是一種線性表查找方法,其基本方法是:首先要用要查找的關(guān)鍵碼與線性表中間位置結(jié)點(diǎn)的關(guān)鍵碼值進(jìn)行比較,這個(gè)中間結(jié)點(diǎn)把線性表分為兩個(gè)子表,比較相等則查找完畢,不等則根據(jù)查找結(jié)果確定下一步的查找應(yīng)該在哪一個(gè)子表中進(jìn)行,如此下去,直到找到滿足條件的結(jié)點(diǎn),或者確定表中沒有這樣的結(jié)點(diǎn)。二分查找法應(yīng)用的前提是順序存儲(chǔ)并且已經(jīng)排好序,這是由該法的實(shí)現(xiàn)思想決定的。
60.A解析:p+i是數(shù)組s的第i+1行的首地址,而*(p+i)則是數(shù)組第i+1行第1列的元素的地址,*(p+i)+j則是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是數(shù)組元素s[i][j]的值。注意:通過建立一個(gè)指針數(shù)組來引用二維數(shù)組元素。
61.AP=8;后,指針P指向s的首地址,*P=s[0],因此
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化產(chǎn)業(yè)產(chǎn)權(quán)轉(zhuǎn)讓與市場(chǎng)推廣合同
- 2025年度委托收款與新能源項(xiàng)目合作合同
- 2025年度乙方轉(zhuǎn)丙方特許經(jīng)營(yíng)合同模板
- 2025年度家居裝修工人安全責(zé)任免除協(xié)議書
- 2025年度電影演員檔期聘用合同
- 2025年度土地承包經(jīng)營(yíng)權(quán)流轉(zhuǎn)與農(nóng)村電商合作合同
- 2025年度危重病人治療免責(zé)協(xié)議書(特定醫(yī)療機(jī)構(gòu)版)
- 2025年度文化產(chǎn)業(yè)發(fā)展自愿退股及項(xiàng)目運(yùn)營(yíng)合同模板
- 2025年度養(yǎng)老機(jī)構(gòu)委托管理及運(yùn)營(yíng)合作協(xié)議范本
- 信訪接待室改造工程合同
- 2025年海南職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 北京市西城區(qū)2024-2025學(xué)年高三上學(xué)期期末考試語(yǔ)文試題(解析版)
- 2025年春新人教版數(shù)學(xué)一年級(jí)下冊(cè)課件 第六單元 數(shù)量間的加減關(guān)系 第2課時(shí) 求比1個(gè)數(shù)多(少)幾的數(shù)
- 語(yǔ)文課堂中的多媒體教學(xué)方法研究
- 民用無人機(jī)操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點(diǎn)題庫(kù)500題(含答案)
- 2025年春新北師大版物理八年級(jí)下冊(cè)課件 第六章 質(zhì)量和密度 第三節(jié) 密度的測(cè)量與應(yīng)用
- 北京市朝陽(yáng)區(qū)2025下半年事業(yè)單位招聘149人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 肩袖損傷課件
- DB3207-T 1047-2023 羊肚菌-豆丹綜合種養(yǎng)技術(shù)規(guī)程
- 鋼筋安裝施工技術(shù)交底
- 2025年下學(xué)期八年級(jí)物理備課組工作計(jì)劃
評(píng)論
0/150
提交評(píng)論