




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年江西省南昌市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是()
A.無序線性表B.線性鏈表C.二叉鏈表D.順序存儲的有序表
2.有以下程序:#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));}程序運行后的輸出結(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
3.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
4.
若變量均已正確賦初值,則以下語句中
錯誤的是()。
A.tl=t2;
B.t2.numl=tl.numl;
C.t2.mark=tl.Mark
D.t2.num2=tl.hum2;
5.對稱數(shù)組A中,每個元素的長度為4個字節(jié),行下標i從1到8,列下標j從1到8。將其下三角中的元素連續(xù)存儲在從首地址SA開始的存儲器內(nèi),該數(shù)組按行存放是,則元素A[5][8]的起始地址為()。
A.SA+124B.SA+128C.SA+132D.136
6.
7.
有以下程序:
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
則在程序下劃線處應填入的是()。
A.i-1B.iC.i+1D.4一i
8.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值
D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL
9.sizeof(float)是()。
A.一種函數(shù)調(diào)用B.一種函數(shù)定義C.一個浮點表達式D.一個整型表達式
10.為了提高軟件模塊的獨立性,模塊之間最好是()。
A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合
11.有以下程序:程序運行后的輸出結(jié)果是()。A.20B.13C.10D.31
12.能正確表示x>=3或者x<1的關系表達式是()。
A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1
13.以下敘述中錯誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是-種結(jié)構(gòu)化程序設計語言
D.結(jié)構(gòu)化程序設計提倡模塊化的設計方法
14.C語言提供的合法的數(shù)據(jù)類型關鍵字是()。
A.DoubleB.shortC.integerD.Char
15.與單鏈表相比,雙向鏈表的優(yōu)點之一是()。
A.插入、刪除操作更加簡單B.可以隨機訪問C.可以省略表頭指針或表尾指針D.順序訪問相鄰結(jié)點更加靈活
16.下列關于函數(shù)的敘述中正確的是()。A.A.每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))
B.每個函數(shù)都可以被單獨編譯
C.每個函數(shù)都可以單獨運行
D.在一個函數(shù)內(nèi)部可以定義另一個函數(shù)
17.在三級模式之間引入兩層映像,其主要功能之一是()。
A.使數(shù)據(jù)與程序具有較高的獨立性B.使系統(tǒng)具有較高的通道能力C.保持數(shù)據(jù)與程序的一致性D.提高存儲空間的利用率
18.fscanf函數(shù)的正確調(diào)用形式是()
A.fscanf(fp,格式字符串,輸出表列);
B.fscanf(格式字符串,輸出表列,fp);
C.fscanf(格式字符串,文件指針,輸出表列),
D.fscanf(文件指針,格式字符串,輸入表列);
19.
20.
二、2.填空題(20題)21.下列程序段的運行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
pfintf("%d,%d",y,x);
22.測試用例包括輸入值集和【】值集。
23.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。
word_num(str)
for(i=0;str[i]!=【】;i++)
if(【】='')word=0;
【】;
}
return(num);
}
24.若從鍵盤輸入58,則以下程序的輸出結(jié)果是【】。
main()
{inta;
scanf(“%d”,&A);
if(a>50)printf(“%d”,A);
if(a>40)printf(“%d”,A);
if(a>30)printf(“%d”,A);
}
25.“printf("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
26.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
27.以下程序運行后的輸出結(jié)果是【】。
main()
{charCl,c2;
for(c1='0''c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);
printf("\n");
}
28.按照“先進先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
29.用十六進制給存儲器中的字節(jié)地址進行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。
30.對于軟件測試,從是否需要執(zhí)行被測軟件的角度,可以分為靜態(tài)測試和動態(tài)測試。代碼檢查屬于______測試。
31.數(shù)據(jù)庫是指按照一定的規(guī)則存儲在計算機中的【】的集合,它能被各種用戶共享。
32.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
33.下列程序運行后的輸出結(jié)果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運行程序,輸入HOWAREYOU。
34.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。
35.設函數(shù)findbig已定義為求3個數(shù)中的最大值,以下程序?qū)⒗煤瘮?shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】。
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
36.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
37.數(shù)據(jù)的獨立性分為邏輯獨立性與物理獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應用程序不必修改,這稱為______。
38.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下
1
11
121
1331
14641
┇
其構(gòu)成規(guī)律是:
(1)第0列元素和主對角線元素均為1
(2)其余元素為其左上方和正上方元素之和
(3)數(shù)據(jù)的個數(shù)每行遞增1
請將程序補充完整。
#defineN6
voidYangHui(intx[N][N])
{inti,j;
x[0][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
39.以下程序運行后的輸出結(jié)果是【】。
structNODE
{
intnum;
stmctNODE*next;
};
main()
{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s
q=p->next;
r=q->next;
sum+=q->next->num;
sum+=r->next->next->num;
printf("%d\n",sum);
}
40.[]的任務是診斷和改正程序中的錯誤。
三、1.選擇題(20題)41.在多媒體計算機系統(tǒng)中,CD-ROM屬于()
A.感覺媒體B.表示媒體C.表現(xiàn)媒體D.存儲媒體
42.以下敘述中,正確的是______。
A.do…while語句構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替
B.do…while語句構(gòu)成的循環(huán)只能用break語句退出
C.用do…while語句構(gòu)成的循環(huán),在while后的表達式為非零時結(jié)束循環(huán)
D.用do…while語句構(gòu)成的循環(huán),在while后的表達式為零時結(jié)束循環(huán)
43.下面程序輸出的結(jié)果是main(){intinta[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
44.若有語句scanf("%d%c%f",&a,&b,&c),假設輸入序列為2223a123o.12,則a.b.c的值為______。
A.無值B.2223,a,123o.12C.2223,a,無D.2223,a,123
45.有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序執(zhí)行后的輸出結(jié)果是
A.x=4B.x=8C.x=6D.x=12
46.下列敘述中正確的是______。
A.C程序中注釋部分可以出現(xiàn)在程序中任伺合適的地方
B.花括號""{""和""}""只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的—部分
47.以下不正確的定義語句是
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'};
48.設有如下程序段:main(){chars[4][20];inti;scanf("%s%s",s[0],s[1]);gets(s[2]);gets(s[3]);for(i=0;i<4;i++)puts(s[i]);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aabb<CR>ccdd<CR>則程序的輸出結(jié)果是______。
A.aabbccddB.aabbccddC.aabbccddD.aabbccdd
49.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。
A.\bB.\tC.\vD.\f
50.已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個數(shù)組:structanumber[10];假定文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。
A.fread(b,sizeof(structA),10,fp);
B.for(i=0;i<10;i++)fread(b[i],sizeof(structA),1,fp);
C.for(i=0;i<10;i++)fread(b+i,sizeof(structA),1,fp);
D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structA),2,fp);
51.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。
A.2,1B.2,2C.2,5D.5,2
52.若有語句:Char*line[5];,以下敘述中正確的是()。
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為Char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
53.下列敘述中正確的是()。
A.線性鏈表是線性表的鏈式存儲結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.雙向鏈表是非線性結(jié)構(gòu)D.只有根結(jié)點的二叉樹是線性結(jié)構(gòu)
54.可以在C語言中用做用戶標識符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
55.若有以下程序段:structst{intn;int*m;};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&b}};main(){structst*p;p=s;…}則以下表達式中值為5的是()。
A.(p++)->mB.*(p++)->mC.(*p).mD.*(++p)->m
56.以下敘述中不正確的是
A.在不同的函數(shù)中可以使用相同的名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效
57.請閱讀以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case2:a++,b++;break;}printf("a=%d,b=%d\n",a,b);上面程序的輸出結(jié)果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
58.軟件危機是指______。
A.軟件開發(fā)和軟件維護中出現(xiàn)的一系列問題B.計算機出現(xiàn)病毒C.軟件的版權得不到法律應有的保護D.以上都不正確
59.以下對結(jié)構(gòu)體類型變量的定義中,不正確的是()
A.typedefstructaa{intn;floatm;}AA;AAtdl;
B.#defineAAstructaaAA{intn;floatm;}tdl;
C.struct{intn;floatm;}aa;structaatdl;
D.struct{intn;floatm,}tdl;
60.C語言中()
A.不能使用do-while語句構(gòu)成的循環(huán)
B.do-while語句構(gòu)成的循環(huán)必須用break語句才能退出
C.do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為非零時結(jié)束循環(huán)
D.do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為零時結(jié)束循環(huán)
四、選擇題(20題)61.以下敘述中錯誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是-種結(jié)構(gòu)化程序設計語言
D.結(jié)構(gòu)化程序設計提倡模塊化的設計方法
62.若變量X、y已正確定義并賦值,以下符合c語言語法的表達式是()。
A.++x,y=x-一B.x+l=yC.x=x+10--x+yD.double(x)/lO
63.(7)在軟件開發(fā)中,下面任務不屬于設計階段的是()
A.數(shù)據(jù)結(jié)構(gòu)設計
B.給出系統(tǒng)模塊結(jié)構(gòu)
C.定義模塊算法
D.定義需求并建立系統(tǒng)模型
64.
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0B.1C.4D.8
66.
以下程序輸出結(jié)果是()。
main
{intm=5;
if(m++>5)printf("%d\n",m):
elseprintf("%d\n",m--);
}
A.7B.6C.5D.4
67.下列選項中屬于結(jié)構(gòu)化程序設計原則的是()。
A.可封裝
B.多態(tài)性
C.自下而上
D.逐步求精
68.有以下程序:main{inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j=0;j<=3;j++)x++;}x++;}printf("x=%d\n",x);}程序執(zhí)行后的輸出結(jié)果是()。A.x=4B.x=8C.x=6D.x=12
69.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
70.下面的程序段運行后,輸出結(jié)果是()。
A.9B.0C.不確定值D.18
71.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
72.要求通過while循環(huán)不斷讀入字符,當讀人字母N時結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。A.B.C.D.A.A.AB.BC.CD.D
73.以下定義數(shù)組的語句中錯誤的是()。
74.以下不能正確表示代數(shù)式4cd/ab的C語言表達式縣().
A.4*c*d/a/bB.c*d/a/b*4C.c/a/b*d*4D.4*c*d/a*b
75.若有以下函數(shù)首部:
intfun(doublex[10],int*n)
則下面針對此函數(shù)的函數(shù)聲明語句中正確的是()。
A.intfun(double,int);
B.intfun(double木,int*);
C.intmn(double*x,intn);
D.intfun(doublex,intint*n)
76.有以下程序,其輸出結(jié)果是()。
voidmain()
{
floarx=1;
inty;
x++;
y=x+1;
printf("x=%d,y=%f",x,y);
}
A.x=2,y=3
B.x=2,y=3.0
C.x=2.0,y=3
D.x=0,y=0.000000
77.設有以下函數(shù):
A.
B.
C.
D.
78.設char型變量x中的值為10100111,則表達式(2+x)^(~3)的值是
A.10101001B.10101000C.11111101D.01010101
79.
80.以下程序段中,不能正確給字符串賦值(編譯時系統(tǒng)會提示錯誤)的是:()
五、程序改錯題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長的剩余字符接在C所指的數(shù)組的尾部。例如,當a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時,c所指數(shù)組中的內(nèi)容應“a4b3c2dlef9”;而當a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時,c所指數(shù)組中的內(nèi)容應該為“l(fā)g2f3e4dcba”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設計題(1題)82.請編一個函數(shù)fun(ohlr*str),該函數(shù)的功能是把字符串中的內(nèi)容逆置。
例如,字符串中原有的字符串為asdf9,則調(diào)用該函數(shù)后,串中的內(nèi)容為9fdsa。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。
試題程序:
#include<string.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidfun(char*str)
{
}
voidmain
{
chara[N];
FILE*out:
printf("Enterastring:");
gets(a);
printf("Theorigiralstringis:");
puts(a);
fun(a):
printf("Thestringaftermodified:");
puts(a);
strcpy(a,"Welcome!");
fun(a);
ut=fopen("outfile.dat","w");
fprintf(out,"%s".a(chǎn));
fclose(out);
}
參考答案
1.DD)【解析】二分法查找只適用于順序存儲的有序表,表中的元素按值從小到大排列。
2.Asizeof是運算符,計算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標識?!皊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選項。
3.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標是i,說明它前面還有i行,有i*m個元素,數(shù)組第二維的下標是j,說明它前面還有j列,有j個元素,所以共有i*m+j個元素。
4.C結(jié)構(gòu)體變量中的第一成員都是數(shù)組,不能直接將變量tl的成員mark數(shù)組的地址賦給另一個變量t2的成員mark數(shù)組的地址。因為地址都是固定值,不能被賦值。結(jié)構(gòu)體可以進行整體的賦值。
5.B
6.B
7.B
\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。
\n
8.C指針變量的值只能是存儲單元地址,而不能是一個整數(shù),故選項C錯誤。
9.D解析:sizeof(float)是c語言內(nèi)部規(guī)定的用于計算單精度型變量(float)在計算機的內(nèi)存中所占用的字節(jié)數(shù)量的函數(shù),返回一個整數(shù)值。
10.D解析:耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,是互相關聯(lián)的。在程序設計中,各模塊間的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨立性。
11.D程序首先定義整型變量s和i,s的初值為0。for循環(huán)中i的取值為1,2,3,4,另外在switch語句中,執(zhí)行各個分支后,若沒有break語句,會繼續(xù)執(zhí)行后續(xù)分支。當i=1時,switch語句執(zhí)行case1、case2和default,將s自增3后再自增5,此時s的值為8;當i=2時,switch語句執(zhí)行case2、default,將s自增3后再自增5,此時s的值為16;當i=3時,switch語句執(zhí)行case3、case1、case2、default,將s逐步自增2,自增3,自增5,此時s的值為26;當i=4時,switch語句執(zhí)行default語句,將s自增5,此時s的值為31。本題答案為D選項。
12.C
13.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。
14.Bdouble,char,int,第一個字母都是小寫。
15.D
16.B在C語言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒有從屬關系。雖然函數(shù)之間可以相互調(diào)用,但main函數(shù)不能被調(diào)用,選項A)錯誤;C程序從main函數(shù)開始執(zhí)行,當main數(shù)執(zhí)行完畢時,整個程序就結(jié)束了。C程序的執(zhí)行必須從main函數(shù)開始,選項C)選項錯誤;函數(shù)不能嵌套定義,選項D)錯誤。
17.AA.【解析】數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨立性和物理獨立性。使系統(tǒng)具有較高的通道能力和提高存儲空間的利用率是操作系統(tǒng)的職能,而不是數(shù)據(jù)庫管理系統(tǒng)的職能。在數(shù)據(jù)庫系統(tǒng)中沒有“數(shù)據(jù)和程序一致性”這一概念。
18.D
19.B
20.B
21.8208,20解析:本題考查while循環(huán)和++運算符的運用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8=20,此時y=8。
22.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應的預期輸出結(jié)果(輸出值集)兩部分組成。
23.\O'或0或NULLstr[i]num++或num=num+1或num+=1\\O'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:
①for循環(huán)的結(jié)束條件應當是:str[i]已是字符串的最后一個字符;
②str[i]代表字符串str中的第i+1個字符;
③整形變量num的值是要記錄的單詞的個數(shù)。
C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結(jié)束符“\\0”,所以在題中第一個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。
24.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個if語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>40,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。
25.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標志\'\\0\'。
\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;\'\\xAB\'是以兩位+六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。
26.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。
27.9.18274e+0089.18274e+008解析:本題考查的循環(huán)條件是c1<c2,當c1>=c2時,退出循環(huán)。所以,第一次循環(huán)輸出09,第二次循環(huán)輸出18,如此循環(huán)直到輸出45,之后c1=5,c2=4,不滿足循環(huán)條件,退出循環(huán)。
28.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進先出的原則組織數(shù)據(jù)的。
29.64KB
30.靜態(tài)靜態(tài)解析:靜態(tài)測試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測試不實際運行軟件。
31.數(shù)據(jù)數(shù)據(jù)解析:數(shù)據(jù)庫是由一個互相關聯(lián)的數(shù)據(jù)的集合和一組用以訪問這些數(shù)據(jù)的程序組成,這些數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲。
32.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
33.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。
34.log2n
35.findbigfindbig解析:f是指向函數(shù)的指針變量,根據(jù)題意要求,空格處應填入findbig。
本題目考查:C語言中指向函數(shù)的指針變量定義的一般形式為;
數(shù)據(jù)類型標識符(*指針變量名)();
“數(shù)據(jù)類型標識符”表示函數(shù)返回值的類型。
函數(shù)的調(diào)用可以通過函數(shù)名調(diào)用,也可以通過函數(shù)指針調(diào)用。在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。(*p)()表示定義一個指向函數(shù)的指針變量,專門用來存放函數(shù)的入口地址,可以先后指向不同的指針變量。用函數(shù)指針調(diào)用函數(shù)時,只需要將(*p)代替函數(shù)名即可,在(*p)之后的括號中,根據(jù)需要寫上參數(shù)。
36.x+=1x+=1解析:本題考查“++”,“--”運算符?!?+”、“--”只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
37.物理獨立性物理獨立性解析:數(shù)據(jù)的獨立性是指數(shù)據(jù)和應用程序相互獨立,分為物理獨立性和邏輯獨立性。其中物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式)改變時,不需要修改應用程序。而邏輯獨立性是指當邏輯結(jié)構(gòu)改變時,不需要修改應用程序。
38.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對角線上的元素賦值為1顯然在第一個空中應該填入對角線上的元素即x[i][i],在第二重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應的上一行中同列和同列的前一列的元素相加,所以在第二個空中應該填入x[i-1][j-1]+x[i-1][j]。
39.55解析:主函數(shù)首先聲明了一個結(jié)點數(shù)組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結(jié)點指向其后面一個結(jié)點,而最后一個結(jié)點指向第1個結(jié)點,構(gòu)造出一條單向循環(huán)鏈表。接下來用結(jié)點指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個累計變量sum累加q->next->num和r->next->next->nm,因為q指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結(jié)果為5。
40.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務是診斷和改正程序中的錯誤。它與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于一定的調(diào)試工具去找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,調(diào)試主要在開發(fā)階段。
41.D
42.D
43.B解析:本題用循環(huán)的方法考查對數(shù)組概念的掌握。首先,當i=0時,數(shù)組中的位置是a[2][0]=7,當然,如果用排除法的話,就不用考慮后面的循環(huán)了,因為在4個選項中,第1個數(shù)為了的選項只有B)。本題執(zhí)行第2次循環(huán)時,i的值為1,則printf函數(shù)中的數(shù)組指向為a[1][1]=5,依次循環(huán),可求出答案。
44.D
45.B解析:此程序考察了for循環(huán)和x++。對于大循環(huán),有兩個x++,其中循環(huán)3次,對于小循環(huán),循環(huán)三次,但是運行了兩次x++,所以最后結(jié)果是6+2=8。
46.A解析:C程序中注釋部分用“/*”和“*/”括起來,可以出現(xiàn)在程序中任何合適的地方;花括號“{”和“}”不僅可作為函數(shù)體的定界符,也可作為復合語句的定界符;構(gòu)成C程序的基本單位是函數(shù);一個語句必須在最后出現(xiàn)分號,分號是C語句中不可缺少的部分。
47.B解析:在一維數(shù)組中要注意的是作為下標表達式的常量表達式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。
48.C解析:按題目要求輸入數(shù)據(jù)后,數(shù)組的第一行是字符串'aa',第二行是'bb',第三行是'ccdd',第四行沒有接收到字符串。
49.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案
轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進制數(shù)所代表的字符、\xhh1~2位十六進制數(shù)所代表的字符。
50.B
51.A解析:本題考查了continue和break語句用在循環(huán)語句中的作用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進入到下次循環(huán)。
52.A解析:理解復雜定義要掌握兩點:一、右結(jié)合原則.本題中的定義char*line[5];等價于char*(line[5]);;二、自外向內(nèi)分解成typedef語句。char*(line[5]);等價于typedefchar*A;Aline[5];其中A被typedef定義成字符指針的別名,然后line被定義成A的一維數(shù)組,即字符指針的一維數(shù)組。再來看看行指針的定義char(*line)[5];它應該被分解成typedefcharB[5];B*line;其中B被定義成包含5個元素的一維字符數(shù)組,然后line被定義成指向B的指針,即指向包含5個元素的一維字符數(shù)組的指針。所以兩者切不可混淆了,后者的括號不能省略。故本題應該選擇A。
53.A解析:一個非空的數(shù)據(jù)結(jié)構(gòu)如果滿足下列兩個條件:(1)有且只有一個根結(jié)點;(2)每一個結(jié)點最多有一個前件,也最多有一個后件,則稱為線性結(jié)構(gòu)。線性鏈表是線性表的鏈式存儲結(jié)構(gòu),選項A的說法是正確的。棧與隊列是特殊的線性表,它們也是線性結(jié)構(gòu),選項B的說法是錯誤的:雙向鏈表是線性表的鏈式存儲結(jié)構(gòu),其對應的邏輯結(jié)構(gòu)也是線性結(jié)構(gòu),而不是非線性結(jié)構(gòu),選項C的說法是錯誤的;二叉樹是非線性結(jié)構(gòu),而不是線性結(jié)構(gòu),選項D的說法是錯誤的。因此,本題的正確答案為A。
54.B解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關鍵字不能作標識符。選項A中void,C中for都為關鍵字,D中2c以字母開頭。
55.D
56.D解析:C語言在函數(shù)中說明的變量為局部變量,只在函數(shù)內(nèi)起作用但不會影響到其他函數(shù)。所以在不同的函數(shù)中使用相同的函數(shù)名不代表是同一函數(shù),A)項正確。在函數(shù)定義時聲明的參數(shù)只在函數(shù)內(nèi)部起作用,是函數(shù)的局部變量,B)正確。在一個函數(shù)中定義的變量是這個函數(shù)的局部變量,所以只在這個函數(shù)內(nèi)起作用,C)正確。復合語句中定義的變量其作用域是這個復合語句,不會擴大到整個函數(shù),所以D)項錯誤。注意:函數(shù)的書寫風格。
57.A解析:switch語句的執(zhí)行過程為:進入switch結(jié)構(gòu)后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時則執(zhí)行default后面的語句。注意:if語句及if嵌套語句的使用。
58.A解析:在計算機技術及其應用發(fā)展過程中,存在著錯誤的概念和方法,使得在軟件產(chǎn)品開發(fā)過程中沒有制定相應的質(zhì)量標準,導致開發(fā)出來的軟件的可用性和可維護性差,這種情況稱為軟件危機。因此軟件危機是指在軟件開發(fā)和維護中出現(xiàn)的一系列問題。
59.C解析:定義結(jié)構(gòu)體類型的變量有幾種的方法如下:
①定義結(jié)構(gòu)體類型的同時,定義結(jié)構(gòu)體類型的變量,如下面的定義中在定義結(jié)構(gòu)體類型aa的同時定義了該類型的變量tdl。上述B)項中將宏名AA用宏體structaa替換進去后,與該定義形式一樣,因此是正確的。這一定義形式中,結(jié)構(gòu)體類型名明是可以省略的,因此,D)項也是正確的。
structaa
{...
}tdl;
②先定義結(jié)構(gòu)體類型,然后再定義結(jié)構(gòu)體類型的變量,形式如下:
structaa
{
…
};
structaatdl;
這種定義形式也可演變?yōu)椋扔妙愋投x語句typedef將該結(jié)構(gòu)體類型定義成一個類型名AA,然后直接用該類型名AA去定義一個變量(這時不再需要使用關鍵字struct了)。這就是A)項的形式。
60.D
61.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡單問題,所以A錯誤。
62.Ax+1和x+10不能做左值,B)和c)錯誤;類型轉(zhuǎn)換需要用括號括起類型名,所以D)錯誤。
63.D數(shù)據(jù)結(jié)構(gòu)設計、給出系統(tǒng)模塊結(jié)構(gòu)以及定義模塊算法都屬于設計階段,而定義需求并建立系統(tǒng)模型屬于分析階段。
64.B
65.Cm函數(shù)中的X為靜態(tài)局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,x的定義相當于不存在,直接使用X的值。主函數(shù)中調(diào)用兩次fun函數(shù)t第一次調(diào)用:X=1,X=x}2=2,s=2;第二次調(diào)用:(直接用上次X的值)x=X·2=4,s=4。因此C選項正確。
66.B
\nm++的意思是先用m的值再自加1,所以表達式的值為5,m為6,此時if語句條件m++>5不成立,執(zhí)行else語句,則輸出m--的值為6,而此時m為5,故選擇B選項。
\n
67.D模塊化、自頂向下、逐步求精和限制使用goto語句是結(jié)構(gòu)化程序設計的原則。因此答案明顯為D.逐步求精。
68.B當i=0時,i<2成立,執(zhí)行第一個for循環(huán)x自加為1,接著執(zhí)行第二個for循環(huán);j=0時j<=3成立,此時if不成立,執(zhí)行x++后,x為2;接著j=1時,i<=3成立,繼續(xù)循環(huán),此時if成立,continue是跳出本次循環(huán),繼續(xù)下一次循環(huán),不再執(zhí)行x++了;接著j=2時,j<=3成立,此時if不成立,執(zhí)行其后的語句;當j=4時,退出第二個循環(huán),接著執(zhí)行循環(huán)外部的x++,x為4;當i=1時,i<2成立,執(zhí)行第一個循環(huán),x=5,此時接著執(zhí)行循環(huán)外部的語句,即第二個循環(huán);j=0時j<3成立,此時if不成立,x++后,x為6,接著j為1時,j<=3成立,繼續(xù)循環(huán),此時if成立,不再執(zhí)行x++了;接著J=2時,j<=3成立,此時if不成立,執(zhí)行其后的x++,x為7;i=3時,j<=3成立,此時if成立,不再執(zhí)行其后的語句了;當j=4時,退出第二個循環(huán),執(zhí)行循環(huán)外部的語句,最終x為8,故選B選項。
69.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑勞務清包合同
- 園林綠化工程施工合同
- 展廳裝修施工合同協(xié)議書
- 中介房屋買賣合同大全年
- 醫(yī)療健康領域醫(yī)療資源分布統(tǒng)計表
- 導購員聘用合同協(xié)議書
- 2025年潮州貨運上崗證模擬考試0題
- 2025年部編版小學三年級下冊課外閱讀專項復習題(有答案)
- ic芯片購銷合同范本
- 制動氣室市場分析及競爭策略分析報告
- 一年級美術課后輔導方案-1
- 新法律援助基礎知識講座
- 《鍛造安全生產(chǎn)》課件
- 小學數(shù)學1-6年級(含奧數(shù))找規(guī)律專項及練習題附詳細答案
- 《同濟大學簡介》課件
- 《建筑攝影5構(gòu)》課件
- 機電安裝工程質(zhì)量控制
- 愛自己是終身浪漫的開始 心理課件
- 新房房屋買賣合同
- 地鐵出入口雨棚施工工藝
- 人工智能引論智慧樹知到課后章節(jié)答案2023年下浙江大學
評論
0/150
提交評論