




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年河南省開封市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.C語言的邏輯表達(dá)式在特定情況下會(huì)產(chǎn)生“短路”現(xiàn)象。若有邏輯表達(dá)式“x++&&y++,”則以下敘述中正確的是()。
A.若x的值為0,則“y++”操作被“短路”,y值不變
B.若x的值為1,則“y++”操作被“短路”,y值不變
C.若y的值為0,則“&&”運(yùn)算被“短路”,y值不變
D.若y或x的值為0,則表達(dá)式值為0,“x++”和“y++”均不執(zhí)行
2.鏈表不具備的特點(diǎn)是()。
A.可隨機(jī)訪問任一結(jié)點(diǎn)B.插入刪除不需要移動(dòng)元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與其長度成正比
3.如果某圖的鄰接矩陣是對(duì)角線元素均為零的上三角矩陣,則此圖是_______
A.有向完全圖B.連通圖C.強(qiáng)連通圖D.有向無環(huán)圖
4.以下關(guān)于C語言文件系統(tǒng)的敘述中正確的是()。
A.fprintf與fwrite函數(shù)功能相同
B.文件以“r”方式打開后,可以存儲(chǔ)文本類型的數(shù)據(jù)
C.fscanf與fread函數(shù)功能相同
D.以“w”或“wb”方式打開的文件,不可以從中讀取數(shù)據(jù)
5.在Windows環(huán)境下,單擊當(dāng)前窗口中的按鈕“”,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行
B.退出Windows后再關(guān)機(jī)
C.終止當(dāng)前應(yīng)用程序的運(yùn)行
D.退出Windows后重新啟動(dòng)計(jì)算機(jī)
6.設(shè)有定義“char*c;”,以下選項(xiàng)中能夠使c正確指向一個(gè)字符串的是()。
A.charstr[]=“string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=“string”;
7.對(duì)線性表進(jìn)行折半查找最方便的存儲(chǔ)結(jié)構(gòu)是()。
A.順序表B.有序順序表C.鏈表D.有序鏈表
8.以下敘述中正確的是()。
A.C語言函數(shù)可以嵌套調(diào)用,例如:fim(fun(X))
B.C語言程序是由過程和函數(shù)組成的
C.C語言函數(shù)不可以單獨(dú)編譯
D.C語言中除了main函數(shù)外,其他函數(shù)不可作為單獨(dú)文件形式存在
9.對(duì)含有16個(gè)元素的有序表進(jìn)行二分查找,關(guān)鍵字比較次數(shù)最多是()
A.3B.4C.5D.6
10.算法的空間復(fù)雜度是指()。
A.算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)
11.
12.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行
B.退出Windows后再關(guān)機(jī)
C.退出Windows后重新啟動(dòng)計(jì)算機(jī)
D.終止當(dāng)前應(yīng)用程序的運(yùn)行
13.語句“printf("akbre"\'hi\'y\\\bou\n")”;的輸出結(jié)果是()。
A.akbre\'hi\'y'\\\bou
B.a\bre\'hi\\y\bou
C.re'hi'you
D.abre'hi'y\bou
14.在下面的一維數(shù)組定義中,哪一個(gè)有語法錯(cuò)誤()。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];
15.對(duì)于n個(gè)結(jié)點(diǎn)的單向鏈表(無表頭結(jié)點(diǎn)),需要指針單元的個(gè)數(shù)至少為______。
A.n-1B.nC.n+1D.2n
16.
17.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++printf("%d\n",sum);)執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9
18.已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是______。main(){unsignedinta=32,b=66;printf("%c\n",b|b);}
A.66B.98C.bD.B
19.if語句的基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
20.若有定義語句“inta,b;doubleX;”,則下列選項(xiàng)中沒有錯(cuò)誤的是()。
A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}
C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}
D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}
二、2.填空題(20題)21.若a=1,b=2,c=3,d=4;則條件表達(dá)式a>b?a:c<d?c:d的結(jié)果為()。
22.以下程序的輸出結(jié)果是【】。
main()
{inta=0;
a+=(a=8);
printf(“%d\n”,A);
}
23.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。
24.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
25.軟件是程序、數(shù)據(jù)和【】的集合。
26.若有函數(shù)max(a,b),為了讓函數(shù)指針變量p指向函數(shù)max,當(dāng)調(diào)用該函數(shù)時(shí),正確的賦值方法是
27.有以下說明定義和語句,可用a.day引用結(jié)構(gòu)體成員day,寫出引用結(jié)構(gòu)體成員day的其他兩種形式【】、【】。
struct{intday;charmouth;intyear;}a,*b;b=&a;
28.以下程序的輸出結(jié)果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
29.在面向?qū)ο蠓椒ㄖ?,?duì)象之間進(jìn)行通信的構(gòu)造稱為()。
30.數(shù)據(jù)庫恢復(fù)是將數(shù)據(jù)庫從______狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。
31.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
32.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i=1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
33.若輸入12、3、2、5、7,則以下程序的運(yùn)行結(jié)果為【】。
intmax,min;
voidmax_min_value();
main()
{inti,number[5];
printf("輸入5個(gè)整數(shù);\n");
for(i=0;i<5;i++)scanf("%d",&number[i]);
maxminvalue(number,5);
printf("max=%d,min=%d\n",max,min);
getch();
}
voidmax_min_value(array,n)
intarray[],n;
{int*p;
max=min=*array;
for(p=array+1;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
34.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
35.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
36.下面程序的運(yùn)行結(jié)果是【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
mam()
{
intil,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",il,i2);
}
37.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
38.關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有______、增加、刪除和修改四種操作。
39.下列程序執(zhí)行后輸出的結(jié)果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
40.在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅需要存儲(chǔ)各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
三、1.選擇題(20題)41.語句:printf("%d\n",12&012);的輸出結(jié)果是()。
A.12B.8C.6D.12
42.有以下程序:main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);}程序運(yùn)行后的輸出結(jié)果是()。
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
43.在一棵二叉樹上第5層的結(jié)點(diǎn)數(shù)最多是______。
A.8B.16C.32D.15
44.有以下程序:#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);ptintf("%s%s\n",p,q);}若從鍵盤輸入abcdef<回車>,則輸出的結(jié)果是()。
A.defdefB.abcdefC.abcdD.dd
45.下面能正確進(jìn)行字符串賦值操作的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;scanf("%s",&s);
46.
對(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長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串
47.從工程管理角度,軟件設(shè)計(jì)一般分為兩步完成,它們是()。
A.概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)B.數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)C.軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D.過程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)
48.若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.scanf("%d",n);
D.p=&n;scanf("%d",p);
49.對(duì)下述程序的判斷中,正確的是
#include<stdio.h>
voidmain()
{char*p,s[128];
p=s;
while(strcmp(s,"End"))
{printf("Inputastring:");gets(s);
while(*p)
putchar(*p++);}}
A.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止
B.此程序循環(huán)接收字符串,接收到字符串"End"則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串"End"為止,但因?yàn)榇a有錯(cuò)誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串"End"為止,輸出連接在一起的字符串
50.執(zhí)行下列語句的結(jié)果為______。i=3;printf("%d,",++i);printf("%d",i++);
A.3,3B.3,4C.4,3D.4,4
51.下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是
A.對(duì)象就是C語言中的結(jié)構(gòu)體變量
B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體
C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體
D.對(duì)象之間的信息傳遞是通過消息進(jìn)行的
52.語句“printf("a\bhow\'are\'y\\\bou\n");”的輸出結(jié)果是()。
A.a\bhow\'are\'y\\bou
B.a\bhow\'are\'y\bou
C.how'are'you
D.ahow'are'y\bou
53.在C語言中,退格符是
A.\nB.\tC.\fD.\b
54.下面程序輸出的結(jié)果是
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
55.要求以下程序的功能是計(jì)算s=1+1/2+1/3+…+1/10main(){intn;floats;s=1.0;for(n=1O;n>1;n--)s=s+1/n;printf("%6.4f\n",s);}程序運(yùn)行后輸出結(jié)果錯(cuò)誤,導(dǎo)致錯(cuò)誤結(jié)果的程序行是()。
A.s=1.0;
B.for(n=1O;n>l;n--)
C.s=s+1/n;
D.printf("%6.4f\n",s);
56.以下數(shù)組定義中不正確的是_______。
A.inta[2][3];
B.intb[][3]={0,1,2};
C.intc[100][100={0};
D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
57.以下程序的運(yùn)行結(jié)果為______。main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf("%d%d",f1,f2);f1+=f2;f2+=f1;}}
A.1123581321
B.1122551010
C.1258981321
D.0112451521
58.下列程序的輸出結(jié)果為______。main(){unsignedinta=65535;intb=-2;printf("\na=%d,%u;b=%d,%u,,a,a,b,b);}
A.-1,65535;-2,65534
B.65535,65535;-2,65534
C.65535,65535;65534,65534
D.-1,65535;65534,65534
59.若有"doublea;",則正確的輸入語句是()。
A.scanf("%lf",a);
B.scanf("%f",&a);
C.scanf("%lf",&a)
D.scanf("%le",&a);
60.設(shè)變量x和y均已正確定義并賦值。下列if語句中,在編譯時(shí)將產(chǎn)生錯(cuò)誤信息的是()。
A.if(x++);
B.if(x>y&&y!=0);
C.if(x>0)x--elsey++;
D.if(y<0){;}elsex++;
四、選擇題(20題)61.有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結(jié)果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx
62.設(shè)有定義:charp[]={1,2,3),*q=p;,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
63.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為指針指向鏈表的第一個(gè)結(jié)點(diǎn)。
若有以下程序段:
該程序段實(shí)現(xiàn)的功能是()。
A.刪除尾結(jié)點(diǎn)B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)C.刪除首結(jié)點(diǎn)D.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)
64.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;
B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"
C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;
D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;
65.
66.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。
A."0"xffB."0"X11C."0"x1gD.”0”Xabc
67.以下程序運(yùn)行后的輸出結(jié)果是()。
f(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inta=2,i;
for(i=0;i<3;i++)
printf("%4d",f(a));
A.789B.678C.567D.876
68.第
15
題
以下程序的輸出結(jié)果是
main()
{inta=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A.30B.31C.32D.33
69.軟件設(shè)計(jì)中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D.高內(nèi)聚高耦合
70.以下程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,1,5,9,
B.1,3,5,1,3,5,
C.1,3,5,0,d,8,
D.1,3,5,-1,3,7,
71.有以下程序:
voidmain()
{inta=1,b=2,m=0,n=0,k;
k=((n=b>a)+b)‖(m=a<b);
printf("%d,%d\n",k,m);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.0,0B.0,1C.1,0D.1,1
72.
73.
若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。
main
{inti,j=50,a[]={7,4,10,5,8};
for()
j+=a[i];
printf("%d",j-40);
}
A.i=l;i<4;++i
B.i=1;i<3;++i
C.i=4;i>2;i--
D.i=2;i<4;++i
74.
75.
有以下程序:
main
{inta=0,b=l0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,C,d);
}
程序輸出()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯(cuò)
76.有如下程序段:
執(zhí)行該程序段后,X的值為()。
A.trueB.falseC.0D.1
77.有以下程序
main()
{inta[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
for(i=0;i<3;i++)
{for(j=0;j<2;j++)printf("%2d",a[i][j]);
printf("\n");
}
}
若運(yùn)行時(shí)輸入123<回車>,則輸出結(jié)果為
78.
79.合法的數(shù)組定義是()。
A.
B.
C.
D.
80.
五、程序改錯(cuò)題(1題)81.下列給定的程序中,函數(shù)proc的功能是:用選擇法對(duì)數(shù)組中的m個(gè)元素按從小到大的順序進(jìn)行排序。例如,排序前的數(shù)據(jù)為:1132-5214則排序后的數(shù)據(jù)為:-52111432請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdio.h>#defineM20voidproc(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.請(qǐng)編寫一個(gè)函數(shù)voidproc(intm,intk,intxxE3),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入所指的數(shù)組中。例如,若輸入206,則應(yīng)輸出232931374143。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:
參考答案
1.A題干中,“x++&&y++”屬于邏輯與表達(dá)式。僅當(dāng)“x++”和“y++”的結(jié)果為真,整個(gè)邏輯表達(dá)式的結(jié)果才為真,否則整個(gè)表達(dá)式的結(jié)果為假。當(dāng)“x++”的結(jié)果為0時(shí),“y”就會(huì)被短路,即不再執(zhí)行“y++”表達(dá)式,整個(gè)表達(dá)式的結(jié)果為假。所以當(dāng)x的值為0時(shí),“x”的結(jié)果也是0,“y”操作被“短路”,y值不變。故本題答案為A選項(xiàng)。
2.A
3.D
4.Dfprintf函數(shù)和fscanf函數(shù)都可以讀寫文本文件,而fwrite和fread函數(shù)可以讀寫二進(jìn)制文件,選項(xiàng)A、C錯(cuò)誤;文件以“r”方式打開后,只可以讀取文本數(shù)據(jù),選項(xiàng)B錯(cuò)誤。故本題答案為D選項(xiàng)。
5.C解析:在Windows環(huán)境下,單擊當(dāng)前窗口中的按鈕“x”,其功能是終止當(dāng)前應(yīng)用程序的運(yùn)行,關(guān)閉當(dāng)前窗口。
6.A選項(xiàng)A為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定的地址)。C選項(xiàng)錯(cuò)誤,getchar函數(shù)輸入一個(gè)字符給字符型變量,而不是字符指針。B選項(xiàng)和D選項(xiàng)有類似的錯(cuò)誤,兩個(gè)選項(xiàng)并無語法錯(cuò)誤,但運(yùn)行時(shí)可能會(huì)出現(xiàn)問題。因?yàn)樵贐選項(xiàng)和D選項(xiàng)中,字符指針沒有被賦值,是一個(gè)不確定的值,指向一個(gè)不確定的內(nèi)存區(qū)域,這個(gè)區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個(gè)不確定的區(qū)域重新存放字符串,可能會(huì)發(fā)生無法預(yù)知的錯(cuò)誤。故本題答案為A選項(xiàng)。
7.B
8.AC語言程序是由函數(shù)組成的,所以B選項(xiàng)錯(cuò)誤。C語言函數(shù)可以單獨(dú)進(jìn)行編譯,所以C選項(xiàng)錯(cuò)誤。每個(gè)C語言程序必須包含一個(gè)main函數(shù),但不是每個(gè)C語言程序文件都必須有一個(gè)main函數(shù),用戶單獨(dú)編寫的某個(gè)函數(shù)也可以存儲(chǔ)為一個(gè)C語言程序文件,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
9.C
10.A算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A項(xiàng)。
11.B
12.D
13.C先輸出a、b表示退一格,當(dāng)執(zhí)行到:\b后,光標(biāo)往后退,接著輸出re'hi'y\(反斜杠后又加一個(gè)反斜杠的意思是要輸出一個(gè)反斜杠),此時(shí)又執(zhí)行:\b后,\就被ou覆蓋。
14.C
15.C解析:在n個(gè)結(jié)點(diǎn)的單向鏈表(無表頭結(jié)點(diǎn))中,每個(gè)結(jié)點(diǎn)都有一個(gè)指針單元(即指針域),加上頭指針,至少需要n+1個(gè)指針單元。
16.A
17.Csum=fun((a++,b++,a+b),c++)中a++,b++,a+b為逗號(hào)表達(dá)式,運(yùn)算后取a+b的值為5,c++為3,故函數(shù)調(diào)用后輸出結(jié)果為8。
18.C解析:位運(yùn)算符“|”的作用是按位或,即兩個(gè)二進(jìn)制數(shù)的相應(yīng)位中只要一個(gè)為1,該位的結(jié)果值為1。最后以字符型輸出,98對(duì)應(yīng)的字符“b”。
19.D
20.CC語言中,switch語句中的表達(dá)式和case表達(dá)式都不能是浮點(diǎn)類型。所以選C。
21.3
22.1616解析:在程序中首先將8賦值給變量a,然后再進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
23.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
24.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
25.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。
26.C
27.(*B).dat.b->day
28.4040解析:本題中指針s1和s2都指向同一個(gè)內(nèi)存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。
29.消息消息解析:對(duì)象之間進(jìn)行通信的構(gòu)造叫做消息,它請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
30.錯(cuò)誤。錯(cuò)誤。解析:數(shù)據(jù)庫恢復(fù)是將數(shù)據(jù)庫中的數(shù)據(jù)從錯(cuò)誤狀態(tài)中恢復(fù)到某種邏輯一致的狀態(tài)。如果數(shù)據(jù)庫中包含成功事務(wù)提交的結(jié)果,則稱數(shù)據(jù)庫處于一致性狀態(tài)。
31.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
32.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時(shí),因?yàn)閕f語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時(shí)i自加1;執(zhí)行第二次for循環(huán)時(shí),i:3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時(shí)i自加1執(zhí)行第三次for循環(huán)時(shí),i=5,訌語句條件滿足,所以執(zhí)行printf('%d\\n',i)輸出5,然后break語句跳出了for循環(huán)。
33.max=12min=2
34.存儲(chǔ)結(jié)構(gòu)
35.無限無限解析:分析程序“while(s)”語句后面有一個(gè)“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
36.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
37.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。
38.查詢查詢
39.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。
40.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,除了要存儲(chǔ)數(shù)據(jù),還要存儲(chǔ)數(shù)據(jù)的前后件關(guān)系,對(duì)于順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲(chǔ)空間的位置來實(shí)現(xiàn)的,而對(duì)于鏈?zhǔn)酱鎯?chǔ)來說,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。
41.B解析:位運(yùn)算12&012即1100&1010,結(jié)果是1000,轉(zhuǎn)化成十進(jìn)制數(shù)是8,所以,輸出結(jié)果是8。
42.C解析:程序中定義了兩個(gè)變量a和b,并分別賦初值為7和8,定義了3個(gè)指針變量p、q、r,并讓指針p指向變量a,讓q指向變量b,然后通過一個(gè)中間指針變量r,使指針變量p和q互換,互換后p指向b,q指向a,因此最后輸出的*p、*q的值為8、7、a、b的值沒有改變?nèi)詾?、8。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
43.B[答案]B
[考點(diǎn)]數(shù)據(jù)結(jié)構(gòu)與算法
[評(píng)析]依次從上到下,可得出:
第1層結(jié)點(diǎn)數(shù)為1;
第2層結(jié)點(diǎn)數(shù)為2*1=2;
第3層結(jié)點(diǎn)數(shù)為2*2=4;
第n層結(jié)點(diǎn)數(shù)為2的n-1次冪
44.A解析:本題首先定義兩個(gè)字符型指針變量p和q,通過malloc()函數(shù)申請(qǐng)20個(gè)字符的存儲(chǔ)空間,并把它的首地址賦給p,再把p的值賦給小p和q指向同一個(gè)存儲(chǔ)區(qū)。在scanf()語句中讀取字符串到p和q指向的字符串,先把a(bǔ)bc讀取到p指向的存儲(chǔ)區(qū)中,第一個(gè)空格是結(jié)束標(biāo)記,第二個(gè)空格是分隔符,再把def存放到q指向的存儲(chǔ)區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲(chǔ)區(qū)內(nèi)容是def,故最后輸出的def,def。4個(gè)選項(xiàng)中A正確。
45.C解析:如果一個(gè)字符數(shù)組用來存儲(chǔ)字符串,那么在定義該字符數(shù)組時(shí),數(shù)組的大小應(yīng)該比它將要實(shí)際存放的字符串長度大1,所以選項(xiàng)A)和B)錯(cuò);選項(xiàng)D)中s本身就是一個(gè)字符指針,不需再取地址。
46.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個(gè)字符型數(shù)組并進(jìn)行了初始化,C語言規(guī)定,在字符串的末尾自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對(duì)數(shù)組進(jìn)行初始化,系統(tǒng)不會(huì)自動(dòng)加上串結(jié)束標(biāo)記\'\\0\',因此數(shù)組n的長度是7。
47.A解析:從工程管理的角度看,軟件設(shè)計(jì)可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩大步驟。概要設(shè)計(jì)是根據(jù)需求確定軟件和數(shù)據(jù)的總體框架;詳細(xì)設(shè)計(jì)是將其進(jìn)一步精化成軟件的算法或表示和數(shù)據(jù)結(jié)構(gòu)。而在技術(shù)上,概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)又由若干活動(dòng)組成,包括總體結(jié)構(gòu)設(shè)計(jì)/數(shù)據(jù)設(shè)計(jì)和過程設(shè)計(jì)。因此,本題的正確答案是A。
48.D解析:函數(shù)scanf的地址列表應(yīng)由變量的地址組成。選項(xiàng)A中雖然&p也為地址,但它是指針變量p的地址,該地址的存儲(chǔ)單元中只能存放地址值,不能存放整型數(shù)據(jù)。選項(xiàng)B中*p相當(dāng)于變量n,所以不能正確讀入數(shù)據(jù);選項(xiàng)C不正確,因?yàn)閚為變量名;選項(xiàng)D中p為指針變量,并且值為變量n的地址,所以選項(xiàng)D能夠正確讀入數(shù)據(jù)。D為所選。
49.B解析:此題考查了字符串輸入函數(shù)gets和字符串比較函數(shù)strcmp,另外還有字符輸出函數(shù)putchar。gets從標(biāo)準(zhǔn)輸入設(shè)備中讀入全部字符,包括空格,直到遇到回車符為止。strcmp是字符串比較函數(shù),即strcmp(字符串1,字符串2),如果字符串1=字符串2,則函數(shù)值為0;如果字符串1>字符串2,則函數(shù)值為一正整數(shù);如果字符串1<字符串2,則函數(shù)值為一負(fù)整數(shù)。putchar(c)函數(shù)將字符c輸出到標(biāo)準(zhǔn)輸出設(shè)備上。
50.D
51.A解析:對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系,對(duì)象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對(duì)象的思想廣泛應(yīng)用于C++、Java等語言中,因此A)錯(cuò)誤。
52.C解析:“\\b”格式符表示退格,功能是將它后面的字母把它前面的字母覆蓋,導(dǎo)致“\\b'’格式符前面的字母不能輸出;“\\'”格式符表示輸出單引號(hào)字符;“\\\\”格式符表示輸出反斜線字符。
53.D解析:在C++語言中退格符表示為\\b退格。注意:其他轉(zhuǎn)義字符的意義:\\n表示回車換行,\\t表示橫向跳到下一制表位置,\\v表示豎向跳格,\\r表示回車,\\f表示走紙換頁,\\\\表示反斜線符,\\a表示鳴鈴,\\ddd1~3位表示八進(jìn)制數(shù)所代表的字符,\\xhh1~2位表示十六進(jìn)制數(shù)所代表的字符。
54.B解析:本題用循環(huán)的方法考查對(duì)數(shù)組概念的掌握。首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[2][0]=7,當(dāng)然,如果用排除法,就不用考慮后面的循環(huán),因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為7的選項(xiàng)只有B)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則printf函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。
55.C解析:程序中由于n為整型,所以1/n的結(jié)果始終為0,故程序最后輸出的結(jié)果為0,其結(jié)果錯(cuò)誤,原因?yàn)樵诒磉_(dá)式1/n中1和n均為整型,所以應(yīng)該將1改為1.0,這樣表達(dá)式1.0/n的值不為0,為該數(shù)學(xué)表達(dá)式的值,因此可以知道導(dǎo)致程序運(yùn)行后輸出結(jié)果錯(cuò)誤的行為“s=s+1/n;”,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
56.D解析:一維數(shù)組的定義方式為:
類型說明符數(shù)組名[常量表達(dá)式];
選項(xiàng)A符合此定義形式,正確;C語言中多維數(shù)組賦初值時(shí)可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對(duì)全部數(shù)組元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長度可以不指定,但第二維的長度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯(cuò)誤的。
57.A
58.A
59.D解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,例如變量a的地址為“&a”。
60.C解析:選項(xiàng)A)和選項(xiàng)B)在條件判斷語句的后面是空語句,什么都不做;在選項(xiàng)D)if后面是一個(gè)復(fù)合空語句;而在選項(xiàng)C)中,在x--后面少了一個(gè)分號(hào),所以程序段在編譯時(shí),會(huì)出現(xiàn)語法錯(cuò)誤。
61.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
62.A選項(xiàng)A計(jì)算的是p口字符數(shù)組首地址所占的內(nèi)存字節(jié)數(shù)。選項(xiàng)8、C和D都能計(jì)算出一個(gè)字符型數(shù)據(jù)所占的字節(jié)數(shù)。
63.D本題考查鏈表的操作,本題中首先是s指向了它的下個(gè)結(jié)點(diǎn),題目中說明了s總是指向鏈表的第一個(gè)結(jié)點(diǎn),然后while循環(huán)找到鏈表的最后一個(gè)元素,然后最后一個(gè)元素指向了之前鏈表的頭結(jié)點(diǎn),之前頭結(jié)點(diǎn)指向了空結(jié)點(diǎn),所以本題實(shí)現(xiàn)的功能是使首結(jié)點(diǎn)成為尾結(jié)點(diǎn)。選項(xiàng)D正確。
64.By=(x=)071:x<0?-1:0)中有兩個(gè)三目運(yùn)算符,因此按從右到在的順序運(yùn)算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項(xiàng)。
65.C
66.C十六進(jìn)制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個(gè)數(shù)字和a、b、C、d、e、f這6個(gè)字母。
67.Ai=0,f(a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南大版一年級(jí)心理健康第6課《來客人啦》課件
- 2024-2025學(xué)年陜西省漢中市西鄉(xiāng)縣小升初全真數(shù)學(xué)模擬預(yù)測卷含解析
- 2025湖南邵陽市市直事業(yè)單位和市屬國有企業(yè)人才引進(jìn)37人筆試參考題庫附帶答案詳解
- 貴州食品工程職業(yè)學(xué)院《食品工藝學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 堆龍德慶縣2024-2025學(xué)年三下數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 四川省樂山市井研縣2025屆數(shù)學(xué)五下期末聯(lián)考試題含答案
- 廣東潮州衛(wèi)生健康職業(yè)學(xué)院《ERP原理與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年江西省九江市武寧縣四下數(shù)學(xué)期末復(fù)習(xí)檢測試題含解析
- 2025年陜西省商洛市山陽縣五下數(shù)學(xué)期末學(xué)業(yè)水平測試模擬試題含答案
- 2025屆山西省晉源區(qū)第七小學(xué)小升初總復(fù)習(xí)數(shù)學(xué)測試題含解析
- 部編2023版道德與法治六年級(jí)下冊(cè)活動(dòng)園問題及答案
- GB/T 18983-2017淬火-回火彈簧鋼絲
- 《全國導(dǎo)游基礎(chǔ)知識(shí)》全套培訓(xùn)課件-295p-完整版
- 2023年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)考試筆試題庫及答案解析
- 玻璃幕墻安全專項(xiàng)施工方案(專家論證版本)
- 教育機(jī)構(gòu)招生合作協(xié)議
- 我的寒假生活課件模板
- ISO37000-2021組織治理-指南(雷澤佳譯2022)
- c語言期末機(jī)考(大連理工大學(xué)題庫)
- 洞頂回填技術(shù)交底
- 貝多芬與《月光奏鳴曲》
評(píng)論
0/150
提交評(píng)論