版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年廣東省揭陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.設(shè)棧S的初始狀態(tài)為空,6個(gè)元素入棧的順序?yàn)閑1,e2,e3,e4,e5和e6。若出棧的順序是e2,e4,e3,e6,e5,el,則棧s的容量至少應(yīng)該是()。
A.6B.4C.3D.2
2.需要分配較大空間,插入和刪除不需要移動(dòng)元素的線性表,其存儲(chǔ)結(jié)構(gòu)是()。A.單鏈表B.靜態(tài)鏈表C.線性鏈表D.順序存儲(chǔ)結(jié)構(gòu)
3.下列程序的輸出結(jié)果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}
A.1,2B.1,3C.0,2D.0,3
4.
5.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.02B.13C.57D.12
6.以下程序中函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。voidreverse(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是
A.22B.10C.34D.30
7.
8.數(shù)組A中,每個(gè)元素的長(zhǎng)度為4個(gè)字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放在存儲(chǔ)器內(nèi),該數(shù)組按行存放時(shí),元素A[8][5]的起始地址為()。
A.SA+292B.SA+296C.SA+300D.304
9.甲乙兩個(gè)聰明人上街,撿到一張10塊錢的購(gòu)物卡,兩人就想出一個(gè)辦法來(lái)分配這張卡。兩個(gè)分別將自己出的價(jià)格寫在紙上,然后看誰(shuí)出的價(jià)高就給誰(shuí),并且那個(gè)出價(jià)高的人要把出的錢給對(duì)方。現(xiàn)在甲有6塊錢,乙有8塊錢,甲乙雙方都知道對(duì)方當(dāng)前有多少錢并且都希望自己收益高于對(duì)方。問(wèn)最后誰(shuí)獲得的錢多()
A.甲多B.乙多C.一樣多D.有可能出現(xiàn)有人賠錢的情況
10.折半查找法的查找速度一定比順序查找法快()。
A.正確B.錯(cuò)誤
11.軟件調(diào)試的目的是______。
A.發(fā)現(xiàn)錯(cuò)誤B.改正錯(cuò)誤C.改善軟件的性能D.挖掘軟件的潛能
12.執(zhí)行下列程序后的輸出結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
13.下列說(shuō)法中錯(cuò)誤的是A.A.只能在循環(huán)體內(nèi)使用break語(yǔ)句
B.在循環(huán)體內(nèi)使用break語(yǔ)句可以使流程跳出本層循環(huán)體,從而提前結(jié)束本層循環(huán)
C.在while和do…while循環(huán)中,continue語(yǔ)句并沒(méi)有使整個(gè)循環(huán)終止
D.continue的作用是結(jié)束本次循環(huán),即跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)判斷
14.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
15.執(zhí)行下列程序中的輸出語(yǔ)句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13
16.下列關(guān)于字符串的說(shuō)法中錯(cuò)誤的是
A.在C語(yǔ)言中,字符串是借助于字符型一維數(shù)組來(lái)存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志
B.'\0'作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長(zhǎng)度
C.在表示字符串常量的時(shí)候不需要人為在其末尾加入'\0'
D.在C語(yǔ)言中,字符串常量隱含處理成以'\0'結(jié)尾
17.有以下程序:#includemain(){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
18.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
19.以下能正確定義一維數(shù)組的選項(xiàng)是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
20.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
二、2.填空題(20題)21.若有如下定義:
intx=2,y=3,z=4;
則表達(dá)式!(x=y)||x+z&&y-z的值是【】。
22.下列程序的輸出結(jié)果是______。
main()
{chara[]="ABCDEFG";
char*cp=&a[7];
while(--cp>&a[0])putchar(*cp);
}
23.設(shè)有以下定義和語(yǔ)句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
24.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。
25.以下程序的運(yùn)行結(jié)果是()。#defineA4#defineB(x)A*x/2main(){floatc,a=8.0;c=B(A;printf("%f\n",C);}
26.以下程序的輸出結(jié)果是______。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti-2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
27.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=2,b=1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
28.表示條件:10<x<100或x<0的C語(yǔ)言表達(dá)式【】。
29.執(zhí)行下列語(yǔ)句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
30.下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號(hào)能被4整除但不能被100整除或年號(hào)能被400整除,請(qǐng)?zhí)羁誣_____。
31.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過(guò)程的【】集合。
32.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
33.以下程序的功能是:求出數(shù)組x中各相鄰兩個(gè)元素的和依次存放到a數(shù)組中,然后輸出。請(qǐng)?zhí)羁铡?/p>
main()
{intx[10],a[9],i;
for(i=0;i<10;i++)scanf("%d",&x[i]);
for([11];i<10;i++)
a[i-1]=x[i]+[12];.
for(i=0;i<9;i++)printf("%d",a[i]);
printf("");
}
34.下列程序執(zhí)行后輸出的結(jié)果是【】。
f(intA)
{staticc=0;
c=a+c++;
return(c);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
35.若已經(jīng)定義inta=25,b=14,c=19;,以下三目運(yùn)算符(?:)所構(gòu)成的語(yǔ)句的執(zhí)行結(jié)果是【】。
a++<=2&&b--<=2&&c++?printf("***
a=%d,b=%d,c=%d\n",a,b,C):printf("a=%d,b=%d,c=%d\n",a,b,C);
36.下列程序的功能是將字符串s中所有的字符c刪除。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')______;
s[j]='\O';
puts(s);
}
37.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。
38.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
39.【】是指一個(gè)數(shù)據(jù)對(duì)象中的各個(gè)數(shù)據(jù)元素之間存在的聯(lián)系。
40.觀察題目要求,可以知道以下幾點(diǎn):}
三、1.選擇題(20題)41.下列程序的運(yùn)行結(jié)果是()。
#include<stdiO.h>
main()
{inta=0,b=4,c=0,d=10,x;
if(a)
d=d-10;
e1se
if(!B)
if(!C)
x=15;
else
x=25;
printf("%d\n",D);
}
A.5B.3C.20D.10
42.下列關(guān)于棧的描述正確的是______。
A.在棧中只能插入元素而不能刪除元素
B.在棧中只能刪除元素而不能插人元素
C.棧是特殊的線性表,只能在一端插入或刪除元素
D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
43.設(shè)有以下語(yǔ)句:charstr1[]="string",str2[8],*str3,*str4="string";則______不是對(duì)庫(kù)函數(shù)的正確調(diào)用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
44.以下程序段的執(zhí)行結(jié)果為#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}
A.SUM=9B.SUM=12C.SUM=18D.SUM=28
45.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為______。
A.10101001B.10101000C.11111101D.1010101
46.有以下程序:#include<stdio.h>main(){charcl='1',c2='2';cl=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無(wú)確定值
47.以下程序中C的二進(jìn)制值是()。chara=2,b=4,c;c=a^b>>2
A.11B.10100C.111100D.000l1000
48.有以下程序:#include<stdio.h>main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。
A.正整數(shù)1~9的累加和B.正整數(shù)1~10的累加和C.正整數(shù)1~9中奇數(shù)之和D.正整數(shù)1~10中偶數(shù)之和
49.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}
A.258B.741C.852D.369
50.算法的時(shí)間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)
51.以下選項(xiàng)中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0
52.設(shè)x=061,y=016,則z=x|y的值是()。
A.1111B.1.11111e+007C.111111D.1.1e+007
53.以下選項(xiàng)中可作為C語(yǔ)言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
54.已有定義:inti,a[10],*p;則合法的賦值語(yǔ)句是()。
A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;
55.設(shè)有如下定義,則執(zhí)行表達(dá)式(nFa>b)&&(n=c>d)后,n的值為______。inta=1,b=2,c=3,d=4,m=2,n=2;
A.1B.2C.3D.0
56.若有說(shuō)明:int*p,m=5,n;以下正確的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
57.有以下程序:main(){intn=0,m=l,x=2;if(!n)x-=l:if(!m)x-=2;if(!x)x-=3;printf("%d\n",x);}執(zhí)行后的輸出結(jié)果是______。
A.2B.1C.3D.6
58.閱讀下列程序,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
A.3e,6B.62,5C.56,5D.3E,6
59.若要說(shuō)明一個(gè)類型名STP,使得定義語(yǔ)句STPs;等價(jià)于char*s;,以下選項(xiàng)中正確的是A.typedefSTPchar*s;
B.typedef*charSTP;
C.typedefSTP*char;
D.typedefchar*STP;
60.以下不正確的定義語(yǔ)句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
四、選擇題(20題)61.
62.
63.
64.
65.下列函數(shù)的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的長(zhǎng)度
B.比較兩字符串的大小
C.將字符串s復(fù)制到字符串t中
D.將字符串s連接到字符串t后
66.
67.下列能正確進(jìn)行字符串賦值的是()。A.A.chars[5]={”ABCI)E”);
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%S",s);
68.
69.以下不能輸出字符A的語(yǔ)句是()(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)。
70.有以下程序:
#include<stdio.h>
main()
{FILE*fp;charstr[10];
fp=fopen("myfile,dat","");
{puts("abe",ip);fclose(fp);
fp=fopen("myfile.dat","a*");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%S",str);puts(str);
fclose(fp);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.abcB.28cC.abc28D.內(nèi)類型不一致而出錯(cuò)
71.有以下程序:
程序執(zhí)行后變量w中的值是()。
A.5.21B.5C.5.0D.0.0
72.
73.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0,0B.1,0C.3,2D.1,2
74.有以下程序段:
為使程序段不陷入死循環(huán),從鍵盤鍵入的數(shù)據(jù)應(yīng)該是()。
A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
75.
76.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.1,3B.2,3C.1,4D.1.2
77.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L
78.數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.加工B.控制流C.數(shù)據(jù)存儲(chǔ)D.數(shù)據(jù)流
79.設(shè)有charstr[10],下列語(yǔ)句正確的是
A.scanf("%s",&str);B.printf("%c",str);
C.printf("%s",str[0]);D.printf("%s",str);
80.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…
例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為l3。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
試題程序:
#include<stdio.h>
longfun(intg)
{
//****found****
switch(g);
{
case0:return0;
//****found****
casel:case2:return1;
}
return(fun(g-1)+fun(g-2));
}
voidmain
{
longfib;intn;
printf("Inputn:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\n\n",fib);
}
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫一個(gè)函數(shù),其功能是從傳入的num個(gè)字符串中找出最長(zhǎng)的一個(gè)字符串,并通過(guò)形參指針max傳回該字符串的地址(用****作為結(jié)束輸入的標(biāo)識(shí))。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:1#include<conio.h>2#include<stdio.h>3#include<string.h>4#include<stdlib.h>5char*fun(char(*a)[81],intnum,char*max)6{78}9voidmain()10{11FILE*wf;12charss[10][81],*ps=NULL;13chars[3][81]={"abed","deg","diegns"},*p=NULL;14inti=0,n;15system("CLS");16printf("輸入若干個(gè)字符串:");17gets(ss[i]);18puts(ss[i]);19while(!stremp(ss[i],"****")==0)/*用4個(gè)星號(hào)作為結(jié)束輸入的標(biāo)志*/20{21i++;22gets(ss[i]);24puts(ss[i]);25}26n=i;27ps=fun(ss,n,ps);28printf("\nmax=%s\n",ps);29/********************/30wf=fopen("out.dat","w");31p=fun(s,3,p);32fprintf(wf,"%s",p);33fclose(wf);34/********************/
參考答案
1.C
2.B
3.D解析:本題主要考查自加(++)、自減(--)運(yùn)算符的使用。“++i,--i”在使用i之前,先使i的值加1或者減1,然后再使用i此時(shí)的值參與運(yùn)算;“i++,i--”是在使用i參與表達(dá)式運(yùn)算之后,再使i的值加1或者減1。本題中--a和++b是先執(zhí)行a減1和b加1操作,再輸出表達(dá)式的值。
4.A
5.D本題考查邏輯運(yùn)算符的”短路”現(xiàn)象,由于k的值為0,表達(dá)式首先去求k++的值,因?yàn)楸磉_(dá)式k++的值為0,系統(tǒng)完全可以確定邏輯表達(dá)式的運(yùn)算結(jié)果總是為0,因此將跳過(guò)n++>2,不再對(duì)它進(jìn)行求值,即k的值加1,n的值不變。
6.A解析:本題考查的知識(shí)點(diǎn)是數(shù)組名作為函數(shù)參數(shù)及函數(shù)調(diào)用。reverse()數(shù)的功能是將具有n個(gè)元素的數(shù)組a反序存放。在主函數(shù)中調(diào)用語(yǔ)句是“reverse(b,8);”,實(shí)現(xiàn)的功能是把b數(shù)組的前八個(gè)元素逆置,所以b數(shù)組中依次存放的值為“8,7,6,5,4,3,2,1,9,10”。for循環(huán)了4次,分別把b[6]、b[7]、b[8]和b[9]的值(分別是2、1、9、10)加到了s中,s的結(jié)果是22,所以最后輸出的s值為22。所以4個(gè)選項(xiàng)中A正確。
7.D
8.B
9.C
10.B
11.B解析:在對(duì)程序進(jìn)行測(cè)試時(shí)會(huì)發(fā)現(xiàn)錯(cuò)誤,這就要進(jìn)行程序調(diào)試(排錯(cuò))。程序調(diào)試活動(dòng)由三部分組成:一是錯(cuò)誤定位,根據(jù)錯(cuò)誤的外部表現(xiàn)形式,確定程序中出錯(cuò)的位置,找出錯(cuò)誤的內(nèi)在原因;二是對(duì)程序進(jìn)行修改,排除這個(gè)錯(cuò)誤;三是進(jìn)行回歸測(cè)試,防止引進(jìn)新的錯(cuò)誤。所以程序調(diào)試的目的就是診斷和改正程序中的錯(cuò)誤。軟件調(diào)試不能改善軟件的性能,也不能挖掘軟件的潛能。
12.D
13.A解析:只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句,當(dāng)break出現(xiàn)在循環(huán)體中的switch語(yǔ)句體時(shí),其作用是跳出該switch語(yǔ)句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語(yǔ)句體中時(shí),則在執(zhí)行break后,跳出本層循環(huán)體。continue語(yǔ)句的作用是,跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)的條件判定。
14.C程序首先定義整型變量a和b,a的初值為123456。接著通過(guò)while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過(guò)switch語(yǔ)句判斷b的值執(zhí)行對(duì)應(yīng)分支語(yǔ)句。所以對(duì)應(yīng)a的每個(gè)個(gè)位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時(shí),執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過(guò)break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時(shí),執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時(shí),執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時(shí),執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時(shí),執(zhí)行case2輸出2,通過(guò)break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。
15.C本題考查逗號(hào)表達(dá)式。程序輸出時(shí)輸出一個(gè)%d,所以輸出第一個(gè)a的值與后續(xù)無(wú)關(guān)。本題考查逗號(hào)表達(dá)式。本題的返回值是a+7,a=2*3=6,a+7=13(注意:本題問(wèn)的是a的值,而不是程序的輸出值)。
16.B解析:'\\0'作為標(biāo)志占用存儲(chǔ)空間,但是不計(jì)入串的實(shí)際長(zhǎng)度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。
17.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。因此本題的答案為選項(xiàng)C。
18.C該程序中int8pl=&a,+p2=&b,4P=&c;指定義三個(gè)指針變量,并賦值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;該條語(yǔ)句是給P所指的存儲(chǔ)單元c賦值,就是pl所指的存儲(chǔ)單元的值,即a的值,與p2所指的存儲(chǔ)單元b的值相乘,也就是c=a+b,等價(jià)于c=1·3=3;因此C選項(xiàng)正確?!?/p>
19.B解析:選項(xiàng)A)定義的是長(zhǎng)度為5的數(shù)組元素,但初值有6個(gè)元素,所以錯(cuò)誤;選項(xiàng)C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項(xiàng)D)的類型說(shuō)明符錯(cuò)誤,應(yīng)改為char;選項(xiàng)B)中的0,1,2,3,4,5分別表示對(duì)應(yīng)字符的ASCII碼,所以正確。
20.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。
21.11解析:運(yùn)算符的優(yōu)先級(jí)次序由高到底是!,算術(shù)運(yùn)算符,&&,||。先運(yùn)算!(x=y),由于x=3非零,則表達(dá)式!(x=y)的值為0。再運(yùn)算x+z,x+z=3+4=7,非零則運(yùn)算y-z,y-z=3-4=-1,非零則表達(dá)式x+z&&y-z的值為1。0||1=0,則表達(dá)式!(x=y)||x+z&&y-z的值是1。
22.GFEDCB。GFEDCB。解析:開始指針cp指向字符串結(jié)束標(biāo)志,在循環(huán)中,cp依次向前移動(dòng),當(dāng)打印出第二個(gè)字符后,cp指向第一個(gè)字符,循環(huán)判斷條件不滿足,退出循環(huán),因此,只打印出第一個(gè)字符以后的字符的逆序列。
23.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。
24.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。
25.16.0
26.1616解析:首先將程序中宏替換掉,先把“MCRA(i)”替換成“2*i”,然后把“MCRA(j,2*i)”替換成“2*2*j+2*i”,經(jīng)計(jì)算該表達(dá)式的值為16,所以最后輸出為16。
27.22解析:分析程序,a=2,b=-1,c=2時(shí),if語(yǔ)句的表達(dá)式a<b不成立,不再柱下判斷,直接退出if語(yǔ)句,執(zhí)行后面的輸出語(yǔ)句,程序結(jié)束。在這個(gè)程序中a、b、c的值沒(méi)做任何改變。
28.(X>10&&x<100)||x<0或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)或0>x||(10<x&&x<100)或(括號(hào)有無(wú)都可以)(X>10&&x<100)||x<0\r\n\u3000\u3000或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)\r\n\u3000\u3000或0>x||(10<x&&x<100)或(括號(hào)有無(wú)都可以)
29.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。
30.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達(dá)。年號(hào)能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號(hào)能被400整除即y%400==0,與前兩項(xiàng)是或的關(guān)系。
31.軟件工具軟件工具
32.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
33.對(duì)于10個(gè)數(shù),相鄰的兩個(gè)數(shù)相加取和,總共要進(jìn)行9次加法運(yùn)算,所以空14處應(yīng)填入i=1。相鄰的兩個(gè)數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[i-1]。\r\n\r\n
34.77解析:在程序執(zhí)行時(shí),static變量?jī)H初始化一次,下次使用時(shí)將使用上次保存的值。
35.a=26b=14c=19a=26,b=14,c=19解析:這種條件表達(dá)式的—般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3,三目運(yùn)算符的執(zhí)行順序,先求解表達(dá)式1,若非0則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)表達(dá)式的值,若表達(dá)式1的值為0,則求解表達(dá)式3,此時(shí)表達(dá)式3的值就作為整個(gè)表達(dá)式的值。C語(yǔ)言在做一系列表達(dá)式相與時(shí),從左到右分別計(jì)算各表達(dá)式的值,一旦遇到一個(gè)表達(dá)式為false,則剩余的表達(dá)式都不再進(jìn)行運(yùn)算。該題中,a++<=2的值為false,則b-<=2和c++就都不再運(yùn)算再運(yùn)算。
36.s[j++]=s[i]s[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲(chǔ)存值與字符c相同,則i++直接跳過(guò)當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過(guò)j++將下標(biāo)加1,指向下一元素要存儲(chǔ)的位置。
37.n/2n/2解析:刪除—個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。
38.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進(jìn)制的025,c為十六進(jìn)制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進(jìn)制輸出,且中間用空格隔開,八進(jìn)制025轉(zhuǎn)換為十進(jìn)制的值為21,十六進(jìn)制的0x25轉(zhuǎn)換為十進(jìn)制的值為37,故最后的輸出結(jié)果為252137。
39.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)
40.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始已經(jīng)按從小到的大順序排好。在插入時(shí),首先要查到第一個(gè)大于待插入數(shù)的數(shù)組下標(biāo),即當(dāng)待插入元素小于數(shù)組中當(dāng)前元素時(shí),記下數(shù)組的當(dāng)前下標(biāo)p,并結(jié)束循環(huán)。故第一空目的是為了記下數(shù)組下標(biāo),應(yīng)填p=i;插入的第二部是將大于待插入元素的所有元素都向后移動(dòng)一位,故在循環(huán)時(shí),要從最后一個(gè)元素到第p個(gè)元素都要后移一位,因此第二空應(yīng)填i>=p。最后一個(gè)循環(huán)是將N+1個(gè)元素都輸出,故最后一空應(yīng)為i<=N。(注:本題有多種答案,以上僅提供一種)
41.D解析:本題考查ifelse語(yǔ)句。第1個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a=0條件不成立,則執(zhí)行與其配對(duì)的else語(yǔ)句;第2個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)b=4,則!b條件不成立,又沒(méi)有與其配對(duì)的else語(yǔ)句,所以執(zhí)行printf語(yǔ)句,輸出do。
42.C解析:棧是特殊的線性表,它的一端封閉,在另一端進(jìn)行插入和刪除操作。
43.C解析:C語(yǔ)言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的目的串指針str3沒(méi)有指向具體有效的存儲(chǔ)單元,故是錯(cuò)誤的調(diào)用。
44.B解析:本題考查帶參數(shù)的宏定義及應(yīng)用方法,這種宏不只是進(jìn)行字符串的替換,還要進(jìn)行參數(shù)的替換。
格式為:#define宏名(參數(shù)表)字符串
我們先看一個(gè)簡(jiǎn)單的帶參數(shù)的宏定義:#defineX(A,B)A*B*B并且在程序中有語(yǔ)句:y=X(4,3);經(jīng)過(guò)替換后變?yōu)閥=4*3*3;這就是帶參數(shù)的宏定義的使用方法。注意:宏是按原形替換,本題替換后為sun=1+2+3*2+3;。
45.D解析:異或運(yùn)算符(^)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個(gè)相應(yīng)位同號(hào),則結(jié)果為0(假);異號(hào)則為1(真)。取反運(yùn)算符(-)的運(yùn)算規(guī)則是:對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對(duì)3(二進(jìn)制形式為00000011)按位取反即11111100。表達(dá)式(2+x)(-3)的值就等價(jià)于(00000010+10100111)^11111100,結(jié)果為01010101。
46.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含的輸入沒(méi)備)輸入一個(gè)字符,且只能接收一個(gè)字符(回車符也算一個(gè)字符)。所以本題中c1被賦值字符a,c2被賦予回車符。
47.A
48.D解析:通過(guò)for(i=1;i<10;i+=2)可知,i取值為1~10的奇數(shù),即1,3,5,7,9,i+1即為2,4,6,8,10。因此,程序的功能是計(jì)算并輸出1~10中的偶數(shù)之和,s+=i+1就是累加這些偶數(shù)。
49.C解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=10-9=1;i=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類推,直到i=0時(shí),a[i]=10-0=10;此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8],分別為8,5,2。
50.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉懙某绦蜷L(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。
51.B解析:本題考查的是C語(yǔ)言中實(shí)型常量的指數(shù)表示法。實(shí)型常量的指數(shù)表示法是用字母e(或E)將一個(gè)實(shí)數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項(xiàng)B不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
52.C解析:本題主要考查按位或運(yùn)算,x=061(二進(jìn)制為00110001),y=016(二進(jìn)制為00001110),進(jìn)行或運(yùn)算后結(jié)果為00111111。
53.A解析:C語(yǔ)言的常量分為整型常量、實(shí)型常量和字符型常量。本題中包含整型常量和實(shí)型常量。選項(xiàng)B)以0打頭,應(yīng)該屬于八進(jìn)制整數(shù),而八進(jìn)制整數(shù)只能用數(shù)字0~7表示,所以選項(xiàng)B)不合法;選項(xiàng)C)和D)從形式上看屬于實(shí)型常量,但對(duì)于指數(shù)形式的實(shí)型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項(xiàng)C)和D)都不合法;選項(xiàng)A)屬于實(shí)型常量中正確的十進(jìn)制小數(shù)形式。
54.D解析:本題考核的知識(shí)點(diǎn)是指針變量的賦值。本題中定義了一個(gè)整型數(shù)組a和一個(gè)整型指針變量P。選項(xiàng)A中將一個(gè)整型數(shù)賦值給一個(gè)指針變量,C語(yǔ)言規(guī)定,只能特地址賦給指針指針變量,故選項(xiàng)A不正確:選項(xiàng)B中a[5]為一數(shù)組元素,同樣不是一個(gè)地址,故選項(xiàng)B不正確;選項(xiàng)c中a[2]為一數(shù)組元素,同樣是一個(gè)整型數(shù)據(jù),不是個(gè)地址,故選項(xiàng)C不正確:選項(xiàng)D中數(shù)蛆名a代表數(shù)組首地址加2,代表第三個(gè)元素的地址,故選項(xiàng)D正確,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
55.B
56.D解析:“&”是求址運(yùn)算符,“*”是指變量說(shuō)明符。選項(xiàng)A)、B)應(yīng)改為scanf('%d',p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險(xiǎn),建議不使用。
57.B解析:因n=0,故!n為真,執(zhí)行語(yǔ)句x-=1得x=x-1=2-1=1;條件!m和!x不成立,所以x=1,正確答案為1。
58.A解析:數(shù)組a[5][5],0<=i<5,0<=j<5,則可以用5種表達(dá)式來(lái)引用,a[i][j],*a(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+5*i+j)。數(shù)組的下限為0,%后面為小寫的x,所以輸出的結(jié)果為小寫字母表示的十六進(jìn)制。
59.D解析:指針類型的自定義的形式如下:typedef類型說(shuō)明符*用戶類型名。不難看出只有選項(xiàng)D是正確的定義形式。所以,D選項(xiàng)為所選。
60.B解析:在一維數(shù)組中要注意的是作為下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于0,選項(xiàng)B)中定義有5個(gè)元素,但賦值時(shí)有6個(gè)元素,所以是錯(cuò)誤的。
61.C
62.D
63.C
64.B
65.B在本題中,從題目給出的四個(gè)選項(xiàng)我們就可以知道,程序是對(duì)兩個(gè)字符串進(jìn)行操作。下面將具體分析程序。
程序首先定義兩個(gè)字符型的指針變量s和t,從后面的程序中不難看出這兩個(gè)指針變量應(yīng)該用來(lái)對(duì)兩個(gè)字符串進(jìn)行操作處理。用循環(huán)來(lái)對(duì)字符串進(jìn)行處理時(shí),循環(huán)繼續(xù)的條件是指針變量s和指針變量t所指向的結(jié)果值不為0,且兩結(jié)果值相等。很顯然,指針變量s和指針變量t所指向的結(jié)果值不為0,說(shuō)明兩字符串沒(méi)有結(jié)束,只有結(jié)束時(shí)才為0,而結(jié)果值相等說(shuō)明兩字符相等,如果不等,循環(huán)則結(jié)束,此時(shí)程序?qū)⒁蠓祷夭坏仍刂g的差值,從差值的正負(fù)關(guān)系我們可以判斷出哪個(gè)元素更大。綜上所述,程序段的作用是用來(lái)比較兩字符串的大小。因此,本題正確的答案選B。
66.B
67.C選項(xiàng)A、B的空間不夠;字符串存儲(chǔ)要有結(jié)束符'\0',且要占用一個(gè)空間,printf用來(lái)輸出字符,不能輸入字符串。
68.D
69.A%d輸出整數(shù),所以選擇A)。
70.C\n本題考查文件的操作,首先打開文件,進(jìn)行寫操作,把
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度窗簾市場(chǎng)調(diào)研與分析服務(wù)合同12篇
- 二零二五年度戶外展覽搭棚及設(shè)備租賃合同3篇
- 個(gè)人安裝合同范本范本下載3篇
- 2025不銹鋼電梯及配件維修保養(yǎng)合同3篇
- 二零二五版鐵礦石資源開發(fā)投資合同2篇
- 2025年度打井工程地質(zhì)安全監(jiān)測(cè)及預(yù)警合同4篇
- 二零二五版互聯(lián)網(wǎng)廣告投放效果評(píng)估范本合同3篇
- 商鋪物業(yè)管理權(quán)轉(zhuǎn)讓合同(2025年度)2篇
- 2025年度汽車租賃公司車輛資產(chǎn)轉(zhuǎn)讓合同4篇
- 二零二五年度藥品研發(fā)項(xiàng)目臨床試驗(yàn)倫理審查合同3篇
- 2024年安全教育培訓(xùn)試題附完整答案(奪冠系列)
- 2025新譯林版英語(yǔ)七年級(jí)下單詞默寫表
- 《錫膏培訓(xùn)教材》課件
- 斷絕父子關(guān)系協(xié)議書
- 福建省公路水運(yùn)工程試驗(yàn)檢測(cè)費(fèi)用參考指標(biāo)
- 《工程勘察資質(zhì)分級(jí)標(biāo)準(zhǔn)和工程設(shè)計(jì)資質(zhì)分級(jí)標(biāo)準(zhǔn)》
- 小學(xué)語(yǔ)文閱讀教學(xué)落實(shí)學(xué)生核心素養(yǎng)方法的研究-中期報(bào)告
- 眼內(nèi)炎患者護(hù)理查房課件
- 2021-2022學(xué)年四川省成都市武侯區(qū)部編版四年級(jí)上冊(cè)期末考試語(yǔ)文試卷(解析版)
- 中國(guó)傳統(tǒng)文化服飾文化
- 大氣污染控制工程 第四版
評(píng)論
0/150
提交評(píng)論