版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年河南省周口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
2.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
3.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運(yùn)行后的輸出結(jié)果是A.5670B.656667C.567D.ABC
4.設(shè)有定義的語句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。
A.c1^c2B.c1&c2C.~c2D.c1|c2
5.若有以下說明:chars1[]={"tree"},s2[]={"flower"};,則以下對數(shù)組元素或數(shù)組的輸出語句中,正確的是()。
A.printf("%s%s",s1[5],s2[7]);
B.printf("%c%c",s1,s2);
C.puts(s1);puts(s2);
D.puts(s1,s2);
6.下列敘述中錯(cuò)誤的是()。A.程序可以由多個(gè)程序文件組成
B.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法
C.程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)C函數(shù)可以單獨(dú)作為一一個(gè)c程序文件存在
7.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運(yùn)行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
8.若有如下定義,則__________是對數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
9.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示
A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
10.以下敘述中正確的是()。
A.算法的時(shí)間復(fù)雜度是指算法在執(zhí)行過程中基本運(yùn)算的次數(shù)
B.算法的時(shí)間復(fù)雜度是指算法執(zhí)行所需要的時(shí)間
C.算法的時(shí)間復(fù)雜度是指算法執(zhí)行的速度
D.算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度
11.對于一個(gè)正常運(yùn)行的C程序,下列敘述中正確的是()。A.A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
12.鏈表不具有的特點(diǎn)是()。A.A.不必事先估計(jì)存儲空間
B.可隨機(jī)訪問任意元素
C.插入、刪除不需要移動元素
D.所需空間與線性表長度成正比
13.可以判斷一個(gè)有向圖中是否含有回路的方法為()。
A.廣度優(yōu)先遍歷B.深度優(yōu)先遍歷C.拓?fù)渑判駾.求最短路徑
14.C語言中的標(biāo)識符分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符,以下敘述正確的是()。
A.預(yù)定義標(biāo)識符(如庫函數(shù)中的函數(shù)名)可用做用戶標(biāo)識符,但失去原有含義
B.用戶標(biāo)識符可以由字母和數(shù)字任意順序組成
C.在標(biāo)識符中大寫字母和小寫字母被認(rèn)為是相同的字符
D.關(guān)鍵字可用做用戶標(biāo)識符,但失去原有含義
15.設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
16.
17.以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}
A.6B.8C.10D.12
18.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Zhao,m,85,Zhao,m,85
B.Sun,f,90,Zhao,m,85
C.Zhao,m,85,Sun,f,90
D.Sun,f,90,Sun,f,90
19.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a(chǎn)’+‘A’);}程序運(yùn)行后的輸出結(jié)果是()。
A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR
20.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
二、2.填空題(20題)21.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
22.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
23.若x、y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。
x=(y=4)+(z=3)
24.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價(jià)漲價(jià)5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"
25.棧的3種基本運(yùn)算是:入棧、退棧和______。
26.下面程序的運(yùn)行結(jié)果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
27.以下程序用于判斷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>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
28.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為______。
29.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。
30.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:
ABCDE
FGHI
JKL
MN
O
請?zhí)羁胀瓿稍摮绦颉?/p>
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
}
elseprintf("nistoolarge!\n")
printf("\n"0);
}
31.下列程序的輸出結(jié)果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
32.設(shè)有以下定義
stnctss
{intinfo;sEruc5ss*link;}x.y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請寫出刪除結(jié)點(diǎn)y的賦值語句______。
33.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intp=30;
printf("%dkn",(p/3>0?p/10:p%3));
}
34.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。
35.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
36.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。
37.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是()。
38.下列程序的運(yùn)行結(jié)果為【】。
voidaverage();
main()
{floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,99}};
average(*score,12);
}
voidaverage(p,n)
intn;
float*p;
{inti;
floatsum=0;
for(i=0;i<n;i++,p++)sum+=(*p);
printf("%.2f\n",sum/n);
}
39.要求使下列程序輸出5個(gè)整數(shù),請?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
40.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
三、1.選擇題(20題)41.有以下程序: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
42.有如下程序;
intfunc(inta,intb)
{return(a+b);}
main()
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);printf("%\d\n",r);}
該程序的輸出的結(jié)果是______。
A.12B.13C.14D.15
43.下列一維數(shù)組說明中,不正確的是()。
A.intN;
B.floata[]={1,6,6,0,2};scanf("%d",&N);intb[N];
C.#defineS10
D.inta[S+5];
44.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta=2,b=3,p;
p=f(a,B);
pdntf("%d",p);
}
intf(a,B)
{intc;
if(a>B)c=1;
elseif(a==B)c=0;
elSec=-1;
return(C);
}
A.-1B.0C.1D.2
45.若要用函數(shù)fopen打開一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以哪種方式打開文件()。
A.wbB.wb+C.rb+D.rb
46.結(jié)構(gòu)化程序設(shè)計(jì)的三種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
47.在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。
A.PDL(過程設(shè)計(jì)語言)B.PAD圖C.N-S圖D.DFD圖
48.若有定義語句:floatx[6];則以下對x數(shù)組元素的正確引用形式是()。
A.x+2B.&x[6]C.*(x+2)D.*&x[6]
49.標(biāo)有/$$$/的語句的執(zhí)行次數(shù)是______。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/$$$/;}
A.20B.19C.10D.9
50.下列敘述中正確的是A.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題
D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
51.下列程序的輸出結(jié)果是()。point(char*pt);main(){charb[4]={'a','c','s','f},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}
A.sB.cC.fD.a
52.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
53.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
54.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
55.按條件f對關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式是()。
A.R||R
B.
C.f(R)
D.f(R)
56.若希望下列的程序運(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=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i:2;i<4;++i
57.以下程序的輸出結(jié)果為()。inta,b,C;a=10;b=50;C=30;if(a<b)a=b;b=C;c=a;printf("a=%d,b=%d,c=%d",a,b,C);
A.a=50,b=30,c=30
B.a=10,b=30,c=10
C.a=50,b=30,c=10
D.a=50,b=30,c=50
58.下面函數(shù)intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}的功能是_______。
A.求字符串的長度B.比較兩個(gè)字符串的大小C.將字符串x復(fù)制到字符串yD.將字符串x連接到字符串y后面
59.有以下程序:voidchange(intk[]){k[0]=k[5];)main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4)(change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。
A.678910B.13579C.12345D.62345
60.以下選項(xiàng)中,合法的一組C語苦數(shù)值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
四、選擇題(20題)61.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
62.下列敘述中正確的是()。
A.對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為n/2
C.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為log2n
D.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為nlog2n
63.
64.有以下程序:
#include<stdio.h>
main()
{inta,b,k,m,*pl,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*pl-m;b=*p1+*p2+6;
printf("%d",a);printf("%d\n",b);
}
編譯時(shí)編譯器提示錯(cuò)誤信息,你認(rèn)為出錯(cuò)的語句是()。
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
65.以下程序運(yùn)行后的輸出結(jié)果是()。
A.zB.0C.元素Ch[5]地址D.字符y的地址
66.
67.若程序中定義了以下函數(shù)doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對該函數(shù)進(jìn)行說明,以下選項(xiàng)中錯(cuò)誤的說明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
68.
69.以下錯(cuò)誤的定義語句是()。
70.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.24B.28C.32D.36
71.若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x—y)?(x++):(y++)中的條件表達(dá)式(x—Y)等價(jià)的是()。
A.(x—Y<01Ix—Y>O)B.(x—y<0)C.(x—Y>0)D.(x—Y==0)
72.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4B.34C.31D.32
73.設(shè)有定義:
則以下賦值語句中錯(cuò)誤的是()。
A.data2=datal;
B.data2=(2,6.;
C.
D.
74.有以下程序
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*z++);}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);
prt(&a,&b,&c);
}
程序的輸出結(jié)果是
75.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價(jià)的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
76.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
77.
78.若有說明語句:double*p,a;則通過scanf語句正確給輸入項(xiàng)讀人數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
79.
80.有以下程序:
當(dāng)執(zhí)行程序時(shí)從鍵盤上輸入HelloBeijing<;回車>;,則程序運(yùn)行后的輸出結(jié)果是()。
A.hellobajiIlg
B.HelloBeijing
C.HELLOBEIJING
D.hELLOBeijing
五、程序改錯(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。
請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動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.請編寫一個(gè)函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個(gè)數(shù)。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個(gè)數(shù)
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.A
2.A由于a==l和a!=1兩者互斥,即總有一個(gè)為真,因此二者的或也必定為真。
3.C
4.A當(dāng)值相同時(shí)按位異或,則為0,按位或與按位與時(shí)仍不變,負(fù)數(shù)也為非0。
5.C
6.B[解析]在一個(gè)C語言程序中可以進(jìn)行多種算法的實(shí)現(xiàn),對算法的個(gè)數(shù)沒有規(guī)定,所以B)錯(cuò)誤。
7.Asizeof是運(yùn)算符,計(jì)算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標(biāo)識?!皊izeof(a)”是求數(shù)組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結(jié)束,“strlen(a)”=4?!皊trier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項(xiàng)。
8.D
9.D解析:數(shù)據(jù)流相當(dāng)于一條管道,并有一級數(shù)據(jù)(信息)流經(jīng)它。在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。數(shù)據(jù)流可以從加工流向加工,也可以從加工流向文件或從文件流向加工,并且可以從外部實(shí)體流向系統(tǒng)或從系統(tǒng)流向外部實(shí)體。
10.A算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,其計(jì)算工作量是用算法所執(zhí)行的基本運(yùn)算次數(shù)來度量的。本題答案為A選項(xiàng)。
11.A解析:一個(gè)C語言源程序無論包括了多少函數(shù),總是從main函數(shù)開始執(zhí)行,從main函數(shù)結(jié)束。
12.B鏈表采用的是鏈?zhǔn)酱鎯Y(jié)構(gòu),它的結(jié)點(diǎn)空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來指示,插入、刪除不需要移動數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯Y(jié)構(gòu)也有不足之處:每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲空間,它是一種非隨機(jī)存儲結(jié)構(gòu)。
13.C
14.A用戶標(biāo)識符不能以數(shù)字開頭,C語言中標(biāo)識符是區(qū)分大小寫的,關(guān)鍵字不能用做用戶標(biāo)識符。
15.D解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。
16.C
17.A解析:結(jié)構(gòu)體變量的長度是其內(nèi)部成員總長度之和,在本題中,structdate中包含year,month,day三個(gè)整型變量。通常一個(gè)整型變量占2個(gè)字節(jié),因此,用sizeof求得該結(jié)構(gòu)體變量的長度為6個(gè)字節(jié)。
18.D程序定義結(jié)構(gòu)體類型STU,main函數(shù)定義結(jié)構(gòu)體STU變量b,并將b的地址賦給指針變量a。調(diào)用函數(shù)f,傳入a。在函數(shù)f中,定義了STU變量c,并將c的地址賦給d,再用d指向的值賦給a指向的地址,接著輸出a指向的值,也就是c的值:Sun,f,90。由于函數(shù)f的調(diào)用通過指針參數(shù)a修改了變量b的值,因此a指向的值也就是b的值等價(jià)于c:Sun,f,90。本題答案為D選項(xiàng)。
19.C程序定義一個(gè)字符數(shù)組b,并使用字符串“happynewyeai”進(jìn)行初始化。然后通過for循環(huán),遍歷字符數(shù)組b中的每個(gè)字符,再將b中的字符元素修改為大寫字母。程序輸出:HAPPYNEWYEAR。故本題答案為C選項(xiàng)。
20.D
21.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。
22.PI=3.14159PI=3.14159解析:本題先定義了一個(gè)宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進(jìn)行替換的。
23.77解析:x=(y=4)+(z=3)等價(jià)于y=4,z=3,x=y+z=4+3=7。
24.SET單價(jià)=單價(jià)*1.05SET單價(jià)=單價(jià)*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個(gè)或多個(gè)屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達(dá)式賦值給對應(yīng)的屬性名(SET單價(jià)=單價(jià)*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進(jìn)行限制,即對符合條件的元組進(jìn)行更新。
25.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個(gè)新的元素;退棧是指取出棧頂元素并賦值給一個(gè)變量;讀棧頂元素是將棧頂元素賦值給一個(gè)指定的變量,不刪除棧頂元素。
26.8080解析:數(shù)組a是共用體變量,共用體類型變量所占的內(nèi)存長度為最大成員的長度,即單精度數(shù)組的長度,為4×4=16,因此,數(shù)組a所占的內(nèi)存長度為5×16=80,所以最后輸出的s的值為80。
27.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本題主要考查運(yùn)算符邏輯與“&&”的用法。
28.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個(gè)int型變量。調(diào)用函數(shù)fsets()時(shí),最多能讀入n-1個(gè)字符,系統(tǒng)自動在最后加字符串結(jié)束標(biāo)志,并以buf作為函數(shù)值返回。
29.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。
30.ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;priintf("\n");或putchar('\n');ch++;或++ch;或ch=ch+1;或ch=1+ch;或ch+=1;\r\npriintf('\\n');或putchar(\'\\n\');解析:因?yàn)閏h被初始化為\'A\',而內(nèi)循環(huán)中有—條輸出ch的語句,整個(gè)程序都沒有一條改變ch值的語句。所以,第1空應(yīng)該填ch++或其它類似的表達(dá)式,以使每次輸出一個(gè)字母后ch都能變?yōu)橄乱粋€(gè)字母。內(nèi)循環(huán)結(jié)束后,代表這一行已經(jīng)輸出完畢,此時(shí)即將開始下一行的輸出,所以在第2空位置應(yīng)該輸出一個(gè)換行符,故應(yīng)填入printf('\\n');或其他等價(jià)形式。
31.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。
32.x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;解析:本題考核的知識點(diǎn)是鏈表中結(jié)點(diǎn)的刪除。要?jiǎng)h除結(jié)點(diǎn)y,只需要讓結(jié)點(diǎn)x的指針域指向y結(jié)點(diǎn)的指針域所指向的后續(xù)結(jié)點(diǎn)就可,因此只需把結(jié)點(diǎn)2的地址賦給x的指針域就可以了即讓結(jié)點(diǎn)x的指針域指向結(jié)點(diǎn)2。而結(jié)點(diǎn)z得地址保存在節(jié)點(diǎn)y的指針域中,因此只需把節(jié)點(diǎn)y的指針城賦值給節(jié)點(diǎn)x的指針域即可。
33.33本試題中,先判斷表達(dá)式p/3>0,該值為真,所以此表達(dá)式等于p/10的值3,故最后輸出的值為3。
34.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個(gè)階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。
35.邏輯關(guān)系邏輯關(guān)系
36.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等活動。
37.層次模型層次模型解析:層次模型是最早發(fā)展起來的數(shù)據(jù)庫模型。層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu)。
38.82.25
39.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個(gè)整數(shù)則需要的條件是i<=8。
40.2121解析:外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個(gè)switch語句后面括號里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
41.B解析:因n=0,故!n為真,執(zhí)行語句x-=1得x=x-1=2-1=1;條件!m和!x不成立,所以x=1,正確答案為1。
42.D解析:函數(shù)func的功能是計(jì)算兩個(gè)形參之和,并將值返回主調(diào)函數(shù)。所以:r=func(func(x,y),z)=func(func(2,5),8)=func(7,8)=15。
43.A
44.A解析:本題考查ifelse語句。在intf(a,b)中:第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a>b條件不成立,則執(zhí)行與其配對的else語句:第二個(gè)if語句,先判斷條件,發(fā)現(xiàn)a==b條件不成立,則執(zhí)行與其配對的else語句,c=-1。
45.B解析:本題考查文件使用方式標(biāo)識符。方式“wb”為輸出打開一個(gè)二進(jìn)制文件;方式“wb+”為讀寫建立一個(gè)新的二進(jìn)制文件;方式“rb+”為讀寫打開一個(gè)二進(jìn)制文件:方式“rb”為輸入打開一個(gè)二進(jìn)制文件。
46.D結(jié)構(gòu)化程序設(shè)計(jì)以模塊化設(shè)計(jì)為中心,采用自頂向下、逐步求精的程序設(shè)計(jì)方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。
47.D解析:PDL一種設(shè)計(jì)性語言,用于書寫軟件設(shè)計(jì)規(guī)約。它是軟件設(shè)計(jì)中廣泛使用的語言之一。N-S圖是無線的流程圖,是算法描述工具;PAD圖是問題分析圖,它用二維樹狀結(jié)構(gòu)的圖表示程序的控制流,將這種圖轉(zhuǎn)換為程序代碼比較容易。此3類均是過程設(shè)計(jì)工具,數(shù)據(jù)流圖(DataFunctionDiagram):又名數(shù)據(jù)功能圖表,簡稱DFD,是采用圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。
48.C解析:數(shù)組名x為該數(shù)組的首地址即第1個(gè)元素的地址,x+2表示數(shù)組第3個(gè)元素的值地址。x[6]表示數(shù)組中長度為6,數(shù)組元素的下標(biāo)從0到5,沒有x[6]。&為取地址符,取得的是元素的地址。*為間接訪問運(yùn)算符,其運(yùn)算對象為地址或存放地址的指針變量。*(x+2)為取數(shù)組第3個(gè)元素的值,因此只有選項(xiàng)C正確引用了數(shù)據(jù)元素,選項(xiàng)C正確。
49.C解析:程序中標(biāo)有/$$$/的語句y+=i在for循環(huán)中,由于該語句前面的條件語句使循環(huán)變量i在對2求余為0時(shí)就結(jié)束本次循環(huán),直接跳過標(biāo)有/$$$/的語句,因此該語句執(zhí)行了10次。
50.C解析:數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持,這一點(diǎn)必不可少,故選項(xiàng)A敘述不正確。選項(xiàng)B錯(cuò)誤,數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿足用戶要求,性能良好的數(shù)據(jù)庫。選項(xiàng)D也不對,數(shù)據(jù)庫應(yīng)該具有物理獨(dú)立性和邏輯獨(dú)立性,改變其中的一個(gè)而不影響另一個(gè)。正確答案為選項(xiàng)C。
51.C解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。函數(shù)point的參數(shù)為字符指針,當(dāng)執(zhí)行函數(shù)point時(shí),剛開始指針p指向“a”,經(jīng)過+3操作后,指針p指向“f”,所以最后的輸出結(jié)果是f。
52.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
53.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。
54.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實(shí)體集也可以轉(zhuǎn)換成關(guān)系。
55.C解析:選項(xiàng)A表示關(guān)系R與關(guān)系R進(jìn)行自然連接;選項(xiàng)B表示關(guān)系R與關(guān)系R按條件f做連接運(yùn)算;選項(xiàng)C表示按條件f對關(guān)系R做選擇運(yùn)算;選項(xiàng)D表示在域f上對關(guān)系R做投影運(yùn)算。
56.D解析:要想使程序輸出是25,則i-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語句,使引用的數(shù)組元素累加為65-50=15即可。
57.D解析:a的初值為10,b的初值為50,a<b為真,執(zhí)行a=b,則a的值為50。繼續(xù)執(zhí)行b=c;和c=a;,則b=30,c=50。所以選項(xiàng)D正確。
58.A解析:本題的考查點(diǎn)是while()循環(huán)語句。本題首先要注意的是對*y++的運(yùn)算,由于++和*為同—優(yōu)先級別,且結(jié)合方向?yàn)樽杂蚁蜃?,因此它相?dāng)于*(y++)。由于++在y的右側(cè)是“后加”,因此先對y的原值進(jìn)行*運(yùn)算,然后使y的值改變。
59.A解析:本題主要考查數(shù)組元素的地址作為實(shí)參,當(dāng)n=0時(shí),把x[0]的地址傳遞給被調(diào)函數(shù)change(),即把形參k和實(shí)參x指向同一個(gè)存儲單元,執(zhí)行被調(diào)函數(shù)后k[0]=6,即x[0]=6;當(dāng)n=1時(shí),執(zhí)行被調(diào)函數(shù)后x[1]=7,以此類推,最后得到x數(shù)組的值為6,7,8,9,10。
60.B
61.A答案A
解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語言程序可以實(shí)現(xiàn)多種算法。
62.C\n\tC。【解析】二分法查找只適用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。
63.A
64.A\n本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對指針進(jìn)行賦值時(shí)沒有錯(cuò)誤。a=/*p+m賦值,在c語言中'/*'表示的注釋,所以答案選擇A。
\n
65.A表達(dá)式*(pc+5)先將指針向后移動5
66.A
67.A解析:本題考核的知識點(diǎn)是函數(shù)聲明的應(yīng)用。函數(shù)聲明是對所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達(dá)式進(jìn)行檢測,以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:
類型標(biāo)識符函數(shù)名(類型標(biāo)識符形參…);
這些信息就是函數(shù)定義中的第一行的內(nèi)容。這里形參的名字是不重要的,重要的是類型標(biāo)識符,函數(shù)聲明中也可以不寫形參名只寫該形參的聲明類型,但不能只寫形參名而不寫該形參的類型。本題中,選項(xiàng)A中doublemyadd(doublea,b),沒寫出形參b的類型,故選項(xiàng)A不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
68.C
69.A二維數(shù)組定義行數(shù)可以省略,列數(shù)不能省略,所以答案選擇A)。
70.A第一次循環(huán)返回l2,第二次循環(huán)返回l2,累加結(jié)果為24。
71.A條件表達(dá)式:x=表達(dá)式17表達(dá)式2:表送式3的含義是:先求解表達(dá)式1,若為非0(真),則求解表達(dá)芪2,將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求辭表達(dá)式3,將表達(dá)式3的值賦給x。在本題中與表達(dá)式1::x—y)等價(jià)的是(x—Y<0I|x—Y>O)。
72.C本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4.0,這樣對應(yīng)定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對s[i][j]進(jìn)行操作實(shí)際上就是對主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此C選項(xiàng)正確。
73.B選項(xiàng)8需要強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型,應(yīng)該為
(structcomplex){2,6};。
74.B在本題中,程序首先定義了一個(gè)prt函數(shù),該函數(shù)帶有三個(gè)整型指針變量,分別為x,y,z,程序體是一條輸出語句,由于運(yùn)算符*和++的優(yōu)先級一樣,且都是自右向左結(jié)合的運(yùn)算符,因此,++*x等價(jià)于++(*x),這個(gè)操作可描述為:選取值,再加1,最后輸出相加后的結(jié)果,并將相加后的結(jié)果修改到實(shí)參中;*z++等價(jià)于*(z++),這個(gè)操作可描述為:先調(diào)用值,然后對其進(jìn)行自加,最后通過取值運(yùn)算符*取其值輸出,這里還要注意,由于值自加后,沒有對其地址進(jìn)行操作,采用的是傳值方式,此次修改并不能改變實(shí)參的結(jié)果值。
在主函數(shù)中,首先定義三個(gè)整型變量a、b、c,并分別賦值為10、40和20,然后第一次調(diào)用prt函數(shù),用這三個(gè)變量的地址值作為實(shí)參,即分別使指針變量指向整型變量的值。根據(jù)上面對prt函數(shù)的分析可知,第一次調(diào)用輸出的結(jié)果分別為11、41和20,第一次調(diào)用后實(shí)參a,b,c的值分別為11、41和20。然后第二次調(diào)用prt函數(shù),同理,輸出的結(jié)果為12、42和20。因此,本題的正確答案是B。
75.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2”的值,此時(shí)“表達(dá)式2”的值就是整個(gè)條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時(shí),求出“表達(dá)式3”的值,此時(shí)“表達(dá)式3”的值就是整個(gè)條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式EXP為非0值時(shí)條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時(shí),執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++:i++;”。
76.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。
77.B
78.Ddouble*p,a定義了一個(gè)指向雙精度型的指針變量P和雙精度型變量a,p=&a表示將變量a的地址賦給指針變量p;scanf("%If",p)表示用鍵盤輸入的數(shù)賦給指針變量P所指向的地址單元中,scanf函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f。否則,數(shù)據(jù)不能正確輸入。所以選項(xiàng)D正確。
79.B
80.C主程序讀取整個(gè)字符串存于s中,調(diào)用fun函數(shù)。字符指針c指向數(shù)組S。函數(shù)fun的功能是把指針C所指向的字符數(shù)組中的所有小寫字符轉(zhuǎn)換為大寫。囂cts函數(shù)可以把空格作為字符串的一部分輸入,以回車作為輸入結(jié)束。如果·c為小寫字符,則}C={C一32(轉(zhuǎn)大寫)。因此C選項(xiàng)正確。
81.(1)錯(cuò)誤:switch(g);
\n正確:switch(g)
\n(2)錯(cuò)誤:casel:case2:returnl;
\n正確:casel;case2:returnl;
\n【解析】此題考查C語言的語法規(guī)則,switch(表達(dá)式)后不應(yīng)該帶有“;”,case語句常量后應(yīng)該是“:”。
\nswitch語句的一般形式如下:
\nswitch(表達(dá)式){
\ncase常量表達(dá)式1:語句1;
\ncase常量表達(dá)式2:語句2;
\ncase常量表達(dá)式n:語句i;
\ndefault:語句n+1;
\n}
\n
82.\n\tvoidproc(intm,int*a,int*n)
\n{
\ninti,j=0;
\nfor(i=1;i<=m;i++)//進(jìn)行m次循環(huán)
\nif(i%7==0||i%11==0)//能被7或11整除的所有整數(shù)
\na[j++]=i;//符合條件的數(shù)放在數(shù)組a中
\n*n=j;//返回這些數(shù)的個(gè)數(shù)
\n}
\n【解析】本題需要先判斷1~m每一個(gè)整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個(gè)數(shù)通過形參n返回主函數(shù)。\n2021年河南省周口市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charss[10]="12345";gets(ss);strcat(ss"6789");printf("%s\n",ss);}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
2.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
3.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運(yùn)行后的輸出結(jié)果是A.5670B.656667C.567D.ABC
4.設(shè)有定義的語句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。
A.c1^c2B.c1&c2C.~c2D.c1|c2
5.若有以下說明:chars1[]={"tree"},s2[]={"flower"};,則以下對數(shù)組元素或數(shù)組的輸出語句中,正確的是()。
A.printf("%s%s",s1[5],s2[7]);
B.printf("%c%c",s1,s2);
C.puts(s1);puts(s2);
D.puts(s1,s2);
6.下列敘述中錯(cuò)誤的是()。A.程序可以由多個(gè)程序文件組成
B.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法
C.程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)C函數(shù)可以單獨(dú)作為一一個(gè)c程序文件存在
7.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運(yùn)行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
8.若有如下定義,則__________是對數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
9.在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示
A.模塊之間的調(diào)用關(guān)系B.程序的組成成分C.控制程序的執(zhí)行順序D.數(shù)據(jù)的流向
10.以下敘述中正確的是()。
A.算法的時(shí)間復(fù)雜度是指算法在執(zhí)行過程中基本運(yùn)算的次數(shù)
B.算法的時(shí)間復(fù)雜度是指算法執(zhí)行所需要的時(shí)間
C.算法的時(shí)間復(fù)雜度是指算法執(zhí)行的速度
D.算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度
11.對于一個(gè)正常運(yùn)行的C程序,下列敘述中正確的是()。A.A.程序的執(zhí)行總是從main函數(shù)開始,在main函數(shù)結(jié)束
B.程序的執(zhí)行總是從程序的第一個(gè)函數(shù)開始,在main函數(shù)結(jié)束
C.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序中的第一個(gè)函數(shù)開始,在程序的最后一個(gè)函數(shù)中結(jié)束
12.鏈表不具有的特點(diǎn)是()。A.A.不必事先估計(jì)存儲空間
B.可隨機(jī)訪問任意元素
C.插入、刪除不需要移動元素
D.所需空間與線性表長度成正比
13.可以判斷一個(gè)有向圖中是否含有回路的方法為()。
A.廣度優(yōu)先遍歷B.深度優(yōu)先遍歷C.拓?fù)渑判駾.求最短路徑
14.C語言中的標(biāo)識符分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符,以下敘述正確的是()。
A.預(yù)定義標(biāo)識符(如庫函數(shù)中的函數(shù)名)可用做用戶標(biāo)識符,但失去原有含義
B.用戶標(biāo)識符可以由字母和數(shù)字任意順序組成
C.在標(biāo)識符中大寫字母和小寫字母被認(rèn)為是相同的字符
D.關(guān)鍵字可用做用戶標(biāo)識符,但失去原有含義
15.設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
16.
17.以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){st,uctdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}
A.6B.8C.10D.12
18.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Zhao,m,85,Zhao,m,85
B.Sun,f,90,Zhao,m,85
C.Zhao,m,85,Sun,f,90
D.Sun,f,90,Sun,f,90
19.有以下程序:#include<stdio.h>main(){charb[]=“happynewyear”,k;for(k=0;b[k];k++) printf(“%c”,b[k]-‘a(chǎn)’+‘A’);}程序運(yùn)行后的輸出結(jié)果是()。
A.hAppynewyeArB.HappynewyearC.HAPPYNEWYEARD.HaPPYNEWYEaR
20.對于如圖所示二叉樹采用中根遍歷,正確的遍歷序列應(yīng)為()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF
二、2.填空題(20題)21.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
22.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結(jié)果是______。
#definePI3.14159;printf("PI=%f",PI);
23.若x、y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。
x=(y=4)+(z=3)
24.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價(jià)漲價(jià)5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"
25.棧的3種基本運(yùn)算是:入棧、退棧和______。
26.下面程序的運(yùn)行結(jié)果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
27.以下程序用于判斷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>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構(gòu)成三角形*/
elseprintf("NO\n");/*a、b、c不能構(gòu)成三角形*/
}
28.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個(gè)字符放到buf字符數(shù)組中,函數(shù)返回值為______。
29.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。
30.以下程序的功能是輸入任意整數(shù)給n后,輸出n行由大寫字母A開始構(gòu)成的三角形字符陣列圖形。例如,輸入整數(shù)5時(shí)(注意:n不得大于10),程序運(yùn)行結(jié)果如下:
ABCDE
FGHI
JKL
MN
O
請?zhí)羁胀瓿稍摮绦颉?/p>
main()
{inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
}
elseprintf("nistoolarge!\n")
printf("\n"0);
}
31.下列程序的輸出結(jié)果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
32.設(shè)有以下定義
stnctss
{intinfo;sEruc5ss*link;}x.y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請寫出刪除結(jié)點(diǎn)y的賦值語句______。
33.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intp=30;
printf("%dkn",(p/3>0?p/10:p%3));
}
34.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。
35.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
36.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為【】。
37.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是()。
38.下列程序的運(yùn)行結(jié)果為【】。
voidaverage();
main()
{floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,99}};
average(*score,12);
}
voidaverage(p,n)
intn;
float*p;
{inti;
floatsum=0;
for(i=0;i<n;i++,p++)sum+=(*p);
printf("%.2f\n",sum/n);
}
39.要求使下列程序輸出5個(gè)整數(shù),請?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
40.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intX==1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
三、1.選擇題(20題)41.有以下程序: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
42.有如下程序;
intfunc(inta,intb)
{return(a+b);}
main()
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);printf("%\d\n",r);}
該程序的輸出的結(jié)果是______。
A.12B.13C.14D.15
43.下列一維數(shù)組說明中,不正確的是()。
A.intN;
B.floata[]={1,6,6,0,2};scanf("%d",&N);intb[N];
C.#defineS10
D.inta[S+5];
44.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta=2,b=3,p;
p=f(a,B);
pdntf("%d",p);
}
intf(a,B)
{intc;
if(a>B)c=1;
elseif(a==B)c=0;
elSec=-1;
return(C);
}
A.-1B.0C.1D.2
45.若要用函數(shù)fopen打開一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以哪種方式打開文件()。
A.wbB.wb+C.rb+D.rb
46.結(jié)構(gòu)化程序設(shè)計(jì)的三種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
47.在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。
A.PDL(過程設(shè)計(jì)語言)B.PAD圖C.N-S圖D.DFD圖
48.若有定義語句:floatx[6];則以下對x數(shù)組元素的正確引用形式是()。
A.x+2B.&x[6]C.*(x+2)D.*&x[6]
49.標(biāo)有/$$$/的語句的執(zhí)行次數(shù)是______。inty,i;for(i=0;i<20;i++){if(i%2==0)continue;y+=i;/$$$/;}
A.20B.19C.10D.9
50.下列敘述中正確的是A.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題
D.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
51.下列程序的輸出結(jié)果是()。point(char*pt);main(){charb[4]={'a','c','s','f},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}
A.sB.cC.fD.a
52.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
53.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
54.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
55.按條件f對關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式是()。
A.R||R
B.
C.f(R)
D.f(R)
56.若希望下列的程序運(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=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i:2;i<4;++i
57.以下程序的輸出結(jié)果為()。inta,b,C;a=10;b=50;C=30;if(a<b)a=b;b=C;c=a;printf("a=%d,b=%d,c=%d",a,b,C);
A.a=50,b=30,c=30
B.a=10,b=30,c=10
C.a=50,b=30,c=10
D.a=50,b=30,c=50
58.下面函數(shù)intfunl(char*x){char*y=x;while(*y++);return(y-x-1);}的功能是_______。
A.求字符串的長度B.比較兩個(gè)字符串的大小C.將字符串x復(fù)制到字符串yD.將字符串x連接到字符串y后面
59.有以下程序:voidchange(intk[]){k[0]=k[5];)main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4)(change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。
A.678910B.13579C.12345D.62345
60.以下選項(xiàng)中,合法的一組C語苦數(shù)值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
四、選擇題(20題)61.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
62.下列敘述中正確的是()。
A.對長度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為n
B.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為n/2
C.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為log2n
D.對長度為n的有序鏈表進(jìn)行對分查找,最壞情況下需要的比較次數(shù)為nlog2n
63.
64.有以下程序:
#include<stdio.h>
main()
{inta,b,k,m,*pl,*p2;
k=1,m=8;
p1=&k,p2=&m;
a=/*pl-m;b=*p1+*p2+6;
printf("%d",a);printf("%d\n",b);
}
編譯時(shí)編譯器提示錯(cuò)誤信息,你認(rèn)為出錯(cuò)的語句是()。
A.a=/*pl-m;
B.b=*p1+*p2+6;
C.k=1,m=8;
D.pl=&k,p2-&m;
65.以下程序運(yùn)行后的輸出結(jié)果是()。
A.zB.0C.元素Ch[5]地址D.字符y的地址
66.
67.若程序中定義了以下函數(shù)doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對該函數(shù)進(jìn)行說明,以下選項(xiàng)中錯(cuò)誤的說明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
68.
69.以下錯(cuò)誤的定義語句是()。
70.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.24B.28C.32D.36
71.若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x—y)?(x++):(y++)中的條件表達(dá)式(x—Y)等價(jià)的是()。
A.(x—Y<01Ix—Y>O)B.(x—y<0)C.(x—Y>0)D.(x—Y==0)
72.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4B.34C.31D.32
73.設(shè)有定義:
則以下賦值語句中錯(cuò)誤的是()。
A.data2=datal;
B.data2=(2,6.;
C.
D.
74.有以下程序
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*z++);}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);
prt(&a,&b,&c);
}
程序的輸出結(jié)果是
75.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價(jià)的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度土地承包經(jīng)營權(quán)續(xù)包與調(diào)整合同模板4篇
- 2025年度商鋪?zhàn)赓U合同環(huán)保與節(jié)能條款規(guī)范4篇
- 2025年伊捷卡項(xiàng)目可行性研究報(bào)告
- 2025年江西宜春公交集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年浙江嘉興興港熱網(wǎng)有限公司招聘筆試參考題庫含答案解析
- 2025年安徽亳州市蒙城縣城投集團(tuán)招聘筆試參考題庫含答案解析
- 2025年浙江余杭旅游集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年浙江國企杭州建德市公共交通運(yùn)輸有限公司招聘筆試參考題庫附帶答案詳解
- 漳州理工職業(yè)學(xué)院《教學(xué)技能培訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 張家口職業(yè)技術(shù)學(xué)院《智慧供應(yīng)鏈管理實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設(shè)有限公司招聘筆試參考題庫附帶答案詳解
- 貨運(yùn)企業(yè)2025年度安全檢查計(jì)劃
- 以發(fā)展為導(dǎo)向共創(chuàng)教育新篇章-2024年期末校長總結(jié)講話稿
- 2025年焊工安全生產(chǎn)操作規(guī)程(2篇)
- 《事故快速處理協(xié)議書》電子版
- 廣東省廣州越秀區(qū)2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試卷(含答案)
- 臨床經(jīng)鼻高流量濕化氧療患者護(hù)理查房
- 2024年貴州省中考數(shù)學(xué)真題含解析
- 8小時(shí)等效A聲級計(jì)算工具
- 人教版七年級下冊數(shù)學(xué)計(jì)算題300道
- 社會實(shí)踐登記表
評論
0/150
提交評論