版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年云南省昆明市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}該程序的輸出結(jié)果是()。
A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD
2.
3.直接選擇排序的時(shí)間復(fù)雜度為()。(n為元素個(gè)數(shù))
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)
4.有以下程序:#include<stdio.h>intfun(){staticintx=1;x*=2;returnx;}main(){inti,s=1;for(i=1;i<=3;i++)s*=fun();printf(“%d\n”,s);}程序的運(yùn)行結(jié)果是()。
A.10B.30C.0D.64
5.在帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
6.當(dāng)輸入為"hello?"時(shí),下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello
7.若有定義“charc=“hello!”;”,則以下說法正確的是()。
A.c占用7字節(jié)內(nèi)存B.c是一個(gè)字符串變量C.定義中有語法錯(cuò)誤D.c的有效字符個(gè)數(shù)是6
8.設(shè)有以下函數(shù):
voidfun(intn,char*$s){……}
則下面對(duì)函數(shù)指針的定義和賦值均正確的是A.void(*pf)();pf=fun;
B.void*Pf();pf=fun;
C.void*pf();*pf=fun;
D.void(*pf)(int,char);nf=&fun;
9.下列對(duì)于線性鏈表的描述中正確的是()。
A.存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的
B.存儲(chǔ)空間不一定連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
C.存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的
10.a、b和c都是int型變量,且a=3,b=4,c=5,則下面的表達(dá)式中,值為0的表達(dá)式是()
A.'a'&&'b
B.a<=b
C.ab+c&&b-c
D.!((a<b)&&!c1)
11.
12.函數(shù)原形中,下列()是不必要的。
A.函數(shù)的類型B.形式參數(shù)名C.函數(shù)名D.形式參數(shù)類型
13.快速排序在已經(jīng)有序的情況下效率最差,復(fù)雜度為()
A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)
14.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.1,0B.1,1C.1,4D.4,4
15.C程序的基本模塊為()。
A.表達(dá)式B.標(biāo)識(shí)符C.語句D.函數(shù)
16.有以下程序:
程序運(yùn)行后的輸出結(jié)果是().
A.1,3
B.2,3
C.1,4
D.1,2
17.表達(dá)式9!=10的值為()。
A.非零值B.trueC.0D.1
18.則以下函數(shù)調(diào)用語句錯(cuò)誤的是()。#include<stdio.h>intadd(inta,intb){return(a+b)}main(){intk,(*f)(),a=5,b=10;f=add;...}A.k=f(a,b);B.k=add(a,b);C.k=(*f(a,b);D.k=*f(a,b);
19.有以下程序:#includc<stdio.h>voidfun(int*p){printf("%d\n",p[5]);}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};fun(&a[3]);}程序運(yùn)行后的輸出結(jié)果是()。A.5B.6C.8D.9
20.下列程序段的時(shí)間復(fù)雜度為()。A.O(n)B.O(n-1)C.O(n2)D.O(log2n)
二、2.填空題(20題)21.以下程序段的運(yùn)行結(jié)果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}
22.【】是從二維表列的方向進(jìn)行的運(yùn)算。
23.若有以下定義和語句:
intw[10]={23,54,10,33,47,98,72,80,61},*p;
p=w;
則通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
24.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求π的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0;
longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*s));
}
25.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
26.數(shù)據(jù)的基本單位是______。
27.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
msin()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
28.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長(zhǎng)時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。
請(qǐng)?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)成三角形*/
}
29.以下程序的功能是:通過函數(shù)func輸入字符并統(tǒng)計(jì)輸入字符的個(gè)數(shù)。輸入時(shí)用字符作為輸入結(jié)束標(biāo)志。請(qǐng)?zhí)羁铡?include<stdio.h>long();/*函數(shù)說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}
30.以下程序的輸出結(jié)果是______。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n".s);
}
31.數(shù)據(jù)庫系統(tǒng)的三級(jí)模式分別為【】模式、內(nèi)部級(jí)模式與外部級(jí)模拭。
32.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<string.h>
cbar*ss(char*s)
{char*p,t;
p=s+1;t=*s;
while(-p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
33.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結(jié)果是______。
#include<stdio.h>main(){FILE*fr;charstr[40];
fgets(str,5,fr);
printf("%s\n,,str);
fclose(fr);}
34.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語言表達(dá)式是______。
35.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
36.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。
37.某二叉樹中度為2的節(jié)點(diǎn)有18個(gè),則該二叉樹中有()個(gè)葉子節(jié)點(diǎn)。
38.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是【】。
39.在一個(gè)容量為25的循環(huán)隊(duì)列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊(duì)列中共有【】個(gè)元素。
40.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
三、1.選擇題(20題)41.設(shè)棧S初始狀態(tài)為空。元素a、b、c、d、e、f依次通過棧S,若出棧的順序?yàn)閏、f、e、d、b、a,則棧S的容量至少應(yīng)該為()。
A.6B.5C.4D.3
42.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<-10‖!(y-x)>10
D.(x-y)*(x-y)<100
43.下列敘述中正確的是()。
A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的聯(lián)系
B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小
D.上述三種說法都不對(duì)
44.線性表若采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),要求內(nèi)存中可用存儲(chǔ)單元的地址()
A.必須是連續(xù)的B.部分地址必須是連續(xù)的C.一定是不連續(xù)的D.連續(xù)不連續(xù)都可以
45.下列程序段的輸出結(jié)果是______。staticinta[3]={1,2,3};int**ptr,*p;p=a;ptr=&p;(ptr[0]++)[1]+=3;printf("%d,%d,%d\n",**ptr,*p,a[0]);
A.5,5,10B.1,5,5C.5,5,1D.輸出結(jié)果不確定
46.第
13
題
設(shè)有程序段
intk=10;
while(k=0)k=k-1;
則下面描述中正確的是A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次
47.若有以下定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為3的表達(dá)式是()
A.p+=2,*(pd++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p
48.在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。
A.PDL(過程設(shè)計(jì)語言)B.PAD圖C.N-S圖D.DFD圖
49.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考
50.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。
A.無確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值
51.對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
52.算法的空間復(fù)雜度是指()。
A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間
53.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()
A.voidfun(double*s)
B.fun(double*s[4])
C.fun(double(*s)[3])
D.voidfun(double(*s)[4])
54.簡(jiǎn)單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
55.下面關(guān)于數(shù)據(jù)庫三級(jí)模式結(jié)構(gòu)的敘述中,正確的是()
A.內(nèi)模式可以有多個(gè),外模式和模式只有一個(gè)
B.外模式可以有多個(gè),內(nèi)模式和模式只有一個(gè)
C.內(nèi)模式只有一個(gè),模式和外模式可以有多個(gè)
D.模式只有一個(gè),外模式和內(nèi)模式可以有多個(gè)
56.有以下程序#include<stdio.h>voidmain(){inta=1,b=0;printf("%d,",b=(a++)+(a++));pfintf("%d\n",a+B);}程序運(yùn)行后的輸出結(jié)果是()。
A.4,6B.2,5C.3,5D.2,6
57.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚
58.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序易讀性
59.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過程中可以出棧,則下列不可能的—個(gè)出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
60.下列司用于C語言用戶標(biāo)識(shí)符的一組是______。
A.voiddefineWORD
B.a3_b3_123Car
C.For_abcIFCase
D.2aDOsizeof
四、選擇題(20題)61.
62.下列定義變量的語句中錯(cuò)誤的是()。
A.intjnt;B.doubleint_;C.charFor;D.floatUS$;
63.
64.
65.
66.下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。
A.帶鏈隊(duì)列B.循環(huán)隊(duì)列C.帶鏈棧D.二叉樹
67.
68.下列關(guān)于二叉樹的敘述中,正確的是()。
A.葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)
B.葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)
C.葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍
D.度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍
69.對(duì)下列二叉樹
進(jìn)行中序遍歷的結(jié)果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
70.已知i、j、k為int型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。A.A.scanf("%3d,‰3d,%3d",&i,&j,%k);
B.scanf("%d,%d,%d",&i,8Lj,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
71.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對(duì)。
A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
72.
73.
74.有以下程序
75.
76.有以下程序:
若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是()。
A.編譯錯(cuò)誤2000B.102000C.122030D.10
77.有以下程序
#defineN15
fun(inta[],intn,intm)
{inti,j;
for(i=m;i>=n;i--)
a[i+1]=a[i];
}
main()
{inti,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,3,7);
for(i=3;i<8;i++)
printf("%d",a[i]);
}
程序的運(yùn)行結(jié)果是A.A.45678
B.44567
C.45567
D.45677
78.在數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)中,處于最上層的是()。
A.應(yīng)用層B.語言翻譯處理層C.數(shù)據(jù)存取層D.數(shù)據(jù)存儲(chǔ)層
79.(30)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()
A.排序、索引、統(tǒng)計(jì)
B.選擇、投影、連接
C.關(guān)聯(lián)、更新、排序
D.顯示、打印、制表
80.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。
A.A.A,BB.A,68C.65,66D.65,68
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語句和表達(dá)式。例如,變量a中的值原為8,b中的值原為3,程序運(yùn)行后,a中的值為3,b中的值為8。請(qǐng)改正程序中的錯(cuò)誤,使它得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫函數(shù)proc,其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語句。試題程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法來按從高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行輸出4個(gè)學(xué)生記錄printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}
參考答案
1.D解析:本題考查指向字符串指針的運(yùn)算方法。執(zhí)行p=s+1后,指針變量p就指向字符串中的第二個(gè)字符“B”,然后輸出字符串“BCD”并換行;下面繼續(xù)執(zhí)行循環(huán)語句,指針變量p指向下一個(gè)字符“C”,輸出字符串“CD”,最后一次循環(huán),p指向字符“D”,輸出字符串“D”。
2.D
3.D
4.D本題中靜態(tài)局部變量X,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放。在main函數(shù)中,執(zhí)行for循環(huán),第1次循環(huán),變量s的值為2;第2次循環(huán),函數(shù)的返回值為4,所以變量s的值為8;第3次循環(huán),函數(shù)的返回值為8,所以s的值為64。故本題答案為D選項(xiàng)。
5.B
6.A本題考查getchar函數(shù)與putchar函數(shù),通過9etchar函數(shù)讀入字符,并通過putchar函數(shù)將字符逐個(gè)輸出,當(dāng)用戶輸入“?”時(shí)停止輸出,且c是一個(gè)字符變量只占一個(gè)字節(jié)。
7.Cc是字符變量,“hello!”是字符串。字符串不能賦給字符變量,定義中有語法錯(cuò)誤。本題答案為C選項(xiàng)。
8.A解析:函數(shù)指針的定義形式是:數(shù)據(jù)類型標(biāo)識(shí)符(*指針變量名)()。void(*pf)()定義了一個(gè)沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時(shí),只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時(shí),只把函數(shù)名fun賦給pf即可。所以正確答案為選項(xiàng)A)。
9.A解析:在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由指針域來確定的。由此可見,選項(xiàng)A的描述正確。因此,本題的正確答案為A。
10.D
11.D
12.A
13.D
14.A&&是邏輯與運(yùn)算符,x、y的取值為4、2,兩個(gè)都是非零值,所以x&&y的結(jié)果為真,值為1;&是位運(yùn)算符,x的二進(jìn)制為0100,y的二進(jìn)制為0010,0100&0010的結(jié)果為0。本題答案為A選項(xiàng)。
15.D
16.Af函數(shù)功能使第二個(gè)指針指向的元素增1,第一個(gè)指針指向的元素不變,所以答案選擇A)。
17.D
18.DD選項(xiàng)中*f(a,b)表示調(diào)用后返回一個(gè)指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類型,所以不能將其賦值給整形變量k。
19.B由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語句為p[5],由數(shù)組a可知輸出的為6。
20.B
21.x=2
22.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運(yùn)用常規(guī)的集合運(yùn)算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運(yùn)算,如投影、選擇、連接等。投影是從二維表的列方向上進(jìn)行的運(yùn)算。
23.*(p+5)
24.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本題考查數(shù)據(jù)類型的轉(zhuǎn)換。由題意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循環(huán)體為s=s+1/(i*i),由于s為double型數(shù)據(jù),所以要將1/(i*i)的值轉(zhuǎn)換為double類型。
25.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
26.數(shù)據(jù)元素。數(shù)據(jù)元素。
27.1371513715解析:程序中n是一個(gè)有5個(gè)元素,且元素值全為0的數(shù)組。在for循環(huán)中,當(dāng)i=1時(shí),n[1]=n[0]*2+1,此時(shí)n[1]=1;i=2時(shí),n[2]=n[1]*2+1,此時(shí)n[2]=3;i=3時(shí),n[3]=n[2]*2+1,此時(shí)n[3]=7;i=4時(shí),n[4]=n[3]*2+1,此時(shí)n[4]=15,循環(huán)結(jié)束。輸出函數(shù)中%d后有空格,因此輸出結(jié)果為13715。
28.a+b>c&&a+c>b&&b+c>aa+b>c&&a+c>b&&b+c>a解析:在邏輯表達(dá)式中,如果要同時(shí)滿足幾個(gè)條件可以使用邏輯與運(yùn)算符“&&”,故本題的答案應(yīng)該為:a+b>c&&a+c>b&&b+c>a或其他等價(jià)形式。
29.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數(shù)在主函數(shù)之后定義,就要對(duì)其進(jìn)行說明,說明的形式為:“函數(shù)類型名函數(shù)名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個(gè)數(shù),所以每輸入一個(gè)字符,變量m的值就加1。所以此處填寫m++。
30.55解析:此程序中,for循環(huán)語句后面直接跟了一個(gè)“;”,表明循環(huán)體為空.輸出語句不在for循環(huán)體內(nèi),所以在循環(huán)執(zhí)行完畢后才輸出s的值.s、i的初值分別為0和1,判斷循環(huán)條件,表達(dá)式“1<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為2和1,繼續(xù)判斷循環(huán)條件,表達(dá)式“2<3”成立,執(zhí)行“i++,s+=i”后,i和s的值分別為3,再次判斷循環(huán)條件,表達(dá)式“3<3”不成立,循環(huán)結(jié)束。
31.概念或概念級(jí)概念或概念級(jí)解析:數(shù)據(jù)庫系統(tǒng)在其內(nèi)部具有三級(jí)模式及二級(jí)映射,三級(jí)模式分別是概念級(jí)模式、內(nèi)部級(jí)模式和外部級(jí)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶(應(yīng)用)公共數(shù)據(jù)視圖。
內(nèi)模式式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑,內(nèi)模式的物理性主要體現(xiàn)在操作系統(tǒng)及文件級(jí)上,它還未深入到設(shè)備級(jí)上(如磁盤及磁盤操作)。
外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,它由概念模式推導(dǎo)而出。
32.bcdefghabcdefgha解析:while循環(huán)的功能把字符從第二個(gè)元素開始左移一位,并將原第一個(gè)元素賦給最后一個(gè)元素。
33.HellHell解析:該函數(shù)有3個(gè)參數(shù),第三個(gè)參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個(gè)參數(shù)是一個(gè)整數(shù)(假設(shè)為n),表示從文件中讀n-1個(gè)字符并在其后加一個(gè)'\\0',第一個(gè)參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中。可見本題的輸出結(jié)果為:Hell。
34.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
35.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長(zhǎng)度。本題實(shí)際上是要求s2字符串的長(zhǎng)度,即是4。
36.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
37.19
38.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)解析:數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。(1)人工管理階段。這一階段的計(jì)算機(jī)主要用于科技計(jì)算。外存只有磁帶、卡片和紙帶等,軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理方式是批處理。(2)文件系統(tǒng)階段。文件系統(tǒng)是數(shù)據(jù)庫系統(tǒng)發(fā)展的初級(jí)階段,它提供了簡(jiǎn)單的數(shù)據(jù)共享與數(shù)據(jù)管理能力,但是它無法提供完整的、統(tǒng)一的管理和數(shù)據(jù)共享的能力。由于它的功能簡(jiǎn)單,因此它附屬于操作系統(tǒng)而不能成為獨(dú)立的軟件,目前一般將其看成僅是數(shù)據(jù)庫系統(tǒng)的雛形,而不是真正的數(shù)據(jù)庫系統(tǒng)。(3)數(shù)據(jù)庫系統(tǒng)階段。數(shù)據(jù)庫階段用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)模型,有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口,用戶可使用查詢語言或終端命令操作數(shù)據(jù)庫,也可以用程序方式(用COBOL、C一類高級(jí)語言和數(shù)據(jù)庫語言編制的程序)操作數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)提供了數(shù)據(jù)控制功能。
39.1818解析:設(shè)循環(huán)隊(duì)列的容量為n。若rear>front,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為rear-front;若rear<front,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為n+(rear-front)。題中,front=16,rear=9,即rear<front,所以,循環(huán)隊(duì)列中的元素個(gè)數(shù)為m+(rear-front)=25+(9-16)=18。
40.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲(chǔ)單元的首地址。指針的定義:
類型說明符*指針變量名;
41.B解析:根據(jù)題中給定的條件,可做如下模擬操作:
①元素a、b、c進(jìn)棧,棧中有3個(gè)元素,分別為a、b、c;
②元素c出棧后,元素d、e、f進(jìn)棧,棧中有5個(gè)元素,分別為a、b、d、e、f;
③元素f、e、d、a、b出棧,棧為空??梢钥闯?,進(jìn)棧的順序?yàn)閍、b、c、d、e、f,出棧的順序?yàn)閏、f、e、d、b、a,滿足題中所提出的要求。
在每一次進(jìn)棧操作后,棧中最多有3個(gè)元素,因此,為了順利完成這些操作,棧的容量應(yīng)至少為5。本題答案為B。
42.C解析:選項(xiàng)A用了一個(gè)絕對(duì)值函數(shù)abs();選項(xiàng)B中用了一個(gè)“&&”邏輯與;選項(xiàng)C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值;選項(xiàng)D為本題中數(shù)學(xué)關(guān)系式的一個(gè)等價(jià)命題。
43.C解析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對(duì)象是面向?qū)ο蟮能浖幕灸K,它是由數(shù)據(jù)及可以對(duì)這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對(duì)象是以數(shù)據(jù)為中心的,操作圍繞對(duì)其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。從模塊的獨(dú)立性考慮,對(duì)象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。由于完成對(duì)象功能所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對(duì)象內(nèi)部,它與外界的聯(lián)系自然就比較少,所以,對(duì)象之間的耦合通常比較松。所以,選項(xiàng)A與B錯(cuò)誤,選項(xiàng)C正確。
44.D解析:在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)接點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。
45.C解析:ptr指向指針變量p,p指向數(shù)組a的首地址,(ptr[0]++)[1]+=3;的意思是將p指向數(shù)組元素a[1],并將它的值增3變?yōu)?,此時(shí),ptr指向p,p指向a[1]。
46.C本題中,首先將0賦給k,表達(dá)式變?yōu)?,跳出循環(huán),沒有執(zhí)行循環(huán)體語句。解答本題的關(guān)鍵是掌握while語句。
47.A
48.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ù)功能圖表,簡(jiǎn)稱DFD,是采用圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。
49.C解析:面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同。它的基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去思考。
50.B
51.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡(jiǎn)單插入排序n(n-1)/2、希爾排序0(n1.5)、簡(jiǎn)單選擇排序n(n-1)/2、堆排序O(nlog2n)
52.D解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
53.D
54.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡(jiǎn)單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
55.BB)【解析】數(shù)據(jù)庫的三級(jí)模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)
\n的外模式、模式和內(nèi)模式。一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式,但只有一個(gè)模式和一個(gè)內(nèi)模式。
56.B
57.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識(shí)符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個(gè)說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會(huì)破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。
58.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。
由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個(gè)模塊時(shí),不會(huì)受到其他模塊的牽連,因而可將原來較為復(fù)雜的問題化簡(jiǎn)為一系列簡(jiǎn)單模塊的設(shè)計(jì)。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來了不少的方便,因?yàn)榭梢猿浞掷矛F(xiàn)有的模塊作為積木式的擴(kuò)展。
結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法從問題本身開始,經(jīng)過逐步細(xì)化,將解決問題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個(gè)復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過組合、嵌套構(gòu)成,那么這個(gè)新構(gòu)造的程序一定是一個(gè)單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。
59.C解析:棧是—種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)棧,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。
60.B解析:C語言規(guī)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度師承合同范本:航空技術(shù)傳承師徒協(xié)議培養(yǎng)航空人才的合同2篇
- 汽車生產(chǎn)線升級(jí)工程招標(biāo)合同三篇
- 14《小狗學(xué)叫》教學(xué)實(shí)錄-2024-2025學(xué)年三年級(jí)上冊(cè)語文統(tǒng)編版
- 《愛心行動(dòng) - 圖形與拼組》(教學(xué)實(shí)錄)-2023-2024學(xué)年青島版數(shù)學(xué)二年級(jí)下冊(cè)
- 七年級(jí)語文上冊(cè) 第六單元 22《寓言四則》杞人憂天教學(xué)實(shí)錄 新人教版
- 2024年度電競(jìng)場(chǎng)館音視頻設(shè)備采購與安裝合同3篇
- 內(nèi)蒙古自治區(qū)通遼市開魯縣2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末試題含解析
- 2024年版:產(chǎn)品代理銷售補(bǔ)充合同書
- 2024版地下室租賃與裝修改造一體化合同3篇
- 2024年搬家服務(wù)合同含搬家服務(wù)期間法律咨詢2篇
- 2023-2024年人教版九年級(jí)上冊(cè)化學(xué)期末實(shí)驗(yàn)題復(fù)習(xí)
- 當(dāng)前臺(tái)海局勢(shì)分析課件
- 五金采購工作總結(jié)
- 蘇教版三年級(jí)上冊(cè)解決問題的策略應(yīng)用題100題及答案
- 質(zhì)量管理中的流程改進(jìn)與優(yōu)化
- 成長(zhǎng)賽道-模板參考
- 室外晾衣棚施工方案
- 兒童健康管理服務(wù)總結(jié)分析報(bào)告
- 殯葬行業(yè)的風(fēng)險(xiǎn)分析
- 通信工程冬季施工安全培訓(xùn)
- 痛風(fēng)病科普講座課件
評(píng)論
0/150
提交評(píng)論