




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年湖南省株洲市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有語句“typedefstructS{intg;charh;}T;”,則下列敘述中正確的是()。
A.可用S定義結(jié)構體變量B.可用T定義結(jié)構體變量C.S是struct類型的變量D.T是structS類型的變量
2.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序運行后的輸出結(jié)果是()。
A.9,8,9B.7,8,7C.7,8,3D.1,2,1
3.在關系代數(shù)運算中,有5種基本運算,它們是()。
A.并(∪)、差(-)、交(∩)、除(÷)和笛卡兒積(×)
B.并(∪)、差(-)、交(∩)、投影(π)和選擇(σ)
C.并(∪)、交(∩)、投影(π)、選擇(σ)和笛卡兒積(×)
D.并(∪)、差(-)、投影(π)、選擇(σ)和笛卡兒積(×)
4.從一個長度為100的順序表中刪除第30個元素時需向前移動()個元素
A.70B.71C.69D.30
5.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。
A.1B..0C.6D.2
6.現(xiàn)有以下結(jié)構體說明和變量定義,如圖所示,指針P、q、r分別指定一個鏈表中連續(xù)的3個結(jié)點。structnode{hardata;structnode*next;)*P,*q,*r;現(xiàn)要將q和r所指結(jié)點交換前后位置,同時要保持鏈表的結(jié)構,下列不能完成此操作的語句是()。A.q-:>next=r->next;p--:>next=r;rm:>next=q;
B.q-:>next=r;q->next=r->next;r->next=q;
C.q-:>next=r->next;r->next=q;p->next=r;
D.q-:>next=q;p->next=r;q->next=r->next;
7.一個關系中屬性個數(shù)為1時,稱此關系為()。
A.對應關系B.單一關系C.一元關系D.二元關系
8.
9.下列敘述中正確的是A.break語句只能用于switch語句
B.在switch語句中必須使用default
C.break語句必須與switch語句中的case配對使用
D.在switch語句中,不一定使用break語句
10.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構的抉擇,令人糾結(jié)。目前大家在策劃一個FBI項目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請在下面幾個數(shù)據(jù)結(jié)構中選擇一個使檢索速度最快的()
A.二叉搜索樹,比較函數(shù)開銷:1次運算/每字符
B.哈希表,hash算法開銷:10次運算/每字符
C.鏈表,比較函數(shù)開銷:1次運算/每字符
D.TRIE樹,尋找子節(jié)點開銷:1次運算/每字符
11.下列語句組中,正確的是()。
12.以下對C語言函數(shù)的有關描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
13.交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。
A.&B.^C.‖D.~
14.設有定義:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打開的文件,若要將c中的兩個字符寫入文件,且每個字符占一行,則下面的選項中正確的是()。
A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);
B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);
C.fprintf(fp,“%c%c”,c[0],c[1]);
D.fprintf(fp,“%s\n”,c);
15.已知待排序的n個元素可分為n/k個組,每個組包含k個元素,且任一組內(nèi)的各元素均分別大于前一組內(nèi)的所有元素和小于后一組內(nèi)的所有元素,若采用基于比較的排序,其時間下界應為()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)
16.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
17.數(shù)據(jù)的存儲結(jié)構是指______。
A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)
18.有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(“%d\n”,m);}intf(intx){returnx*2;}程序的運行結(jié)果是()。
A.8B.2C.4D.1
19.程序中若有如下說明和定義語句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下選項中對函數(shù)Fun的正確調(diào)用語句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);
20.棧和隊列的共同特點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點
二、2.填空題(20題)21.為了列出當前盤當前目錄中所有第三個字符為C的文件名的有關信息,應該使用命令【】。
22.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda,請?zhí)羁铡?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
p1=str;p2=();
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(t==0)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",huiwen(str));
}
23.以下程序段的功能是統(tǒng)計鏈表中結(jié)點的個數(shù),其中first為指向第一個結(jié)點的指針(鏈表帶頭結(jié)點)。請在下劃線內(nèi)填入正確內(nèi)容。
structlink
{chardata;
structlink*next;};
…
structlink*p,*first;
intc=0;
p=first;
while(【】)
{c++;
p=【】;}
24.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
25.數(shù)據(jù)的邏輯結(jié)構有線性結(jié)構和______兩大類。
26.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。
27.以下程序運行時,若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
28.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
則程序運行后的輸出結(jié)果是【】。
29.數(shù)據(jù)結(jié)構分為邏輯結(jié)構和存儲結(jié)構,循環(huán)隊列屬于______結(jié)構。
30.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotate(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=a[0][i];【】=a[N-1][i];}
}
31.在計算機軟件系統(tǒng)的體系結(jié)構中,數(shù)據(jù)庫管理系統(tǒng)位于用戶和【】之間。
32.在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
33.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
34.與結(jié)構化需求分析方法相對應的是【】方法。
35.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為為算法的【】。
36.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
37.下列程序的運行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
38.用樹型結(jié)構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為【】。
39.下列程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
40.下列程序的輸出結(jié)果是【】。
main()
{
inta=1,b=2;
a=a+b;b=a-b;a=a-b;
prrintf("%d,%d\n",a,b);
}
三、1.選擇題(20題)41.下面語句的輸出結(jié)果,是______。printh("%d\n",strlen("\t\"\065\xff\n"));
A.14B.8C.5D.輸出項不合法,無正常輸出
42.有以下程序
main()
{inti,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}
程序執(zhí)行后的輸出結(jié)果是
A.45B.20C.25D.36
43.有以下程序:main(){charstr[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=0;ps--)puts(ps);}執(zhí)行后輸出結(jié)果是()。
A.yzxyZB.zyzC.zyzD.xxyxyzxyz
44.設有charstr[10],下列語句正確的是()
A.scanf("%s"0,&str);
B.printf("%c",str);
C.printf("%s",str[0]);
D.printf("%s",str);
45.下列對于線性鏈表的描述中正確的是______。
A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的
B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面
C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面
D.存儲空間必須連續(xù),且各元素的存儲順序是任意的
46.有以下程序:main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}執(zhí)行后輸出結(jié)果是______。
A.2B.3C.4D.編譯時有錯,無結(jié)果
47.下列程序的輸出結(jié)果是()。#include<8tdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}
A.3B.3.2C.0D.3.07
48.下列描述中,不是線性表順序存儲結(jié)構特征的是
A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系
49.設棧S的初始狀態(tài)為空。元素a、b、c、d、e、f依次通過棧S,若出棧的順序為b、d、c、f、e、a,則棧S的容量至少應該為()。
A.3B.4C.5D.6
50.已知下面的程序段,正確的判斷是______。#defineA3#defineB(A)((A+1)*a)inta=3;......X=3*(A+B(7));
A.程序錯誤,不允許嵌套定義B.X=93C.X=81D.程序錯誤,宏定義不允許有參數(shù)
51.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構與存儲結(jié)構必定是一一對應的
B.由于計算機存儲空間是向量式的存儲結(jié)構,因此,數(shù)據(jù)的存儲結(jié)構一定是線性結(jié)構
C.程序設計語言中的數(shù)組一般是順序存儲結(jié)構,因此,利用數(shù)組只能處理線性結(jié)構
D.以上三種說法都不對
52.有以下程序:main(){inti=0,S=0;do{if(i%2){i++;continue;}i++;s+=i;)while(i<7);printf("%d\n",s);}執(zhí)行后輸出結(jié)果是()。
A.16B.12C.28D.21
53.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是
A.5B.6C.8D.9
54.在數(shù)據(jù)庫的兩級映射中,從概念模式到內(nèi)模式的映射一般由______實現(xiàn)。
A.數(shù)據(jù)庫系統(tǒng)B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫操作系統(tǒng)
55.下列程序段的輸出結(jié)果是______。voidfun(int*x,int*y){printf("%d%d",*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}
A.2143B.1212C.1234D.2112
56.在進行單元測試時,常用的方法是
A.采用白盒測試,輔之以黑盒測試B.采用黑盒測試,輔之以白盒測試C.只使用白盒測試D.只使用黑盒測試
57.在TurboC中繪圖時,首先要對圖形進行初始化,使用的函數(shù)是______。
A.windows()B.window()C.initgraph()D.init()
58.以下敘述中不正確的是
A.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
B.C語言中對二進制位的防問速度比文本文件快
C.C語言中,隨機讀寫方式不使用于文本文件
D.C語言中,順序讀寫方式不使用于二進制文件
59.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設計B.詳細設計C.可行性分析D.需求分析
60.以下正確的數(shù)組定義語句是()
A.inty[1][4]={1,2,3,4,5,}
B.floatx[3][]={{1},{2},{3}}
C.longs[2][3]={{1},{1,2}{1,2,3,}}
D.doublet[][3]={0}
四、選擇題(20題)61.(26)下面不屬于軟件工程的3個要素的是()
A.工具
B.過程
C.方法
D.環(huán)境
62.
有下列程序:
intfun(intx[],intn)
{staticintsum=0,i:
for(i0;i<n;i++)sum+=x[i];
returnsum;
}
main
{inta[]={1,2,3,4,5),b[]一{6,7,8,9),s=0:
s=fun(a,5)+fun(b,4);printf("%d\n",s):
}
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.50C.60D.55
63.以下選項中,能定義S為合法的結(jié)構體變量的是()。
A.
B.
C.
D.
64.軟件設計包括軟件的結(jié)構、數(shù)據(jù)接口和過程設計,其中軟件的過程設計是指()
A.模塊間的關系B.系統(tǒng)結(jié)構部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構D.軟件開發(fā)過程
65.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.5B.24C.32D.40
66.
67.
下述程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain
{intb[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
A.4,4B.2,2C.4,5D.2,4
68.有以下程序程序運行后的輸出結(jié)果是()。
A.1B.16C.32D.0
69.最常用的一種基本數(shù)據(jù)模型是關系數(shù)據(jù)模型,對于它的表示應采用
A.樹B.網(wǎng)絡C.圖D.二維表
70.若有條件表達式
則以下表達式中能完全等價于表達式(exp.的是()。
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
71.在C程序中有如下語句:char*func(intx,inty);它是()。
A.對函數(shù)func的定義。B.對函數(shù)func的調(diào)用。C.對函數(shù)func的原型說明。D.不合法的
72.
73.讀取二進制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,fp);,其中buffer代表的是()。
A.一個內(nèi)存塊的字節(jié)數(shù)
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個文件指針,指向待讀取的文件
D.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
74.選出下列標識符中不是合法的標識符的是()。
A.hot_doB.cat1C._priD.2ab
75.
76.
77.設有以下程序段:
structMP3
{charname[20];
charcolor;
floatprice;
}std,*ptr;
ptr=&std:
若要引用結(jié)構體變量std中的color成員,寫法錯誤的是()。
A.std.color
B.ptr->color
C.std->color
D.(*ptr)color
78.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
79.
80.(72)n個頂點的強連通圖的邊數(shù)至少有______。
A.n-1
B.n(n-1)
C.n
D.n+1
五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已
在主函數(shù)中賦予。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。
試題程序:
#include<strin9.h>
#include<stdi0.h>
#defineM80
voidproc(char*arr)
{inti,j,n;charch;
n=strlen(arr):
for(i=1;i<n;i++)
//****found****
{c=arr[i];
j=i-1;
while((j>=o)&&(ch<arr[j]))
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
voidmain
{
chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("Theoriginalstring:%s\n",a);
proc(a);
printf("Thestringaftersortin9:
%s\n\n",a);
}
六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.BT為結(jié)構體類型名,可以用來定義結(jié)構體變量。故本題答案為B選項。
2.C在main函數(shù)中調(diào)用了f函數(shù)使形參s指向數(shù)組a。執(zhí)行“S[1]+=6”;語句,則“a[1]=8;”執(zhí)行“*s=7;”語句,則“a[0]=7”;執(zhí)行“s+=2;”語句,則s指向數(shù)組的第3個元素并返回s。調(diào)用后,函數(shù)返回值賦給指針P,則*P=3,因此輸出的結(jié)果為7,8,3。故本題答案為C選項。
3.D解析:關系代數(shù)運算的基本運算符有4類:集合運算符、專門的關系運算符、算術運算符和邏輯運算符。并、差、笛卡兒積、投影、選擇是5種基本的運算,其他運算可以通過基本的運算導出。
4.A
5.C
6.D由題目中線性鏈表的定義可知,要將q和r所指的結(jié)點交換前后位置,只要使q指向r的后一個結(jié)點,P指向r結(jié)點,r指向q結(jié)點即可。而在選項D中,r->next=q,這時r指向的節(jié)點為q;p->next=r,這時P指向的節(jié)點為r;q->next:r->next,因為r節(jié)點已經(jīng)指向q,所以執(zhí)行這個語句后q又指向q,所以選項D不正確。
7.C解析:在關系模型數(shù)據(jù)庫中,基本結(jié)構是二維表,這種二維表稱為關系。關系的列稱為屬性,一個具有N個屬性的關系稱為N元關系。注意:各種關系查詢語言與過程性語言和非過程性語言的關系,過程性語言的特點。
8.D
9.D解析:break語句除了能用于switch語句外,還可以用于循環(huán)語句中,因此選項A不正確。在switch語句中,可以使用default來執(zhí)行所有case均失配時的分支,也可以不使用default,此時若所有case均失配則跳出switch,因此選項B不正確。在switch語句中,每個case的作用就是標出一個執(zhí)行的起點,當符合某個case時,程序就從該case所標出的起點處開始執(zhí)行,若沒有break語句中斷執(zhí)行的話,程序會一直執(zhí)行到switch的最后一條語句,而不是碰到下一個case就跳出switch。雖然break與case的配對使用會讓所有case分支互不重疊條理明確,但不配對使用在C語言中也是允許的。因此選項C不正確,應該選擇D。
10.D
11.A字符型指針變量可以用選項A)的賦值方法:char*s;s=”O(jiān)lympictt;,選項C)的寫法:char*s,s={1.Olympic”};是錯誤的。字符數(shù)組可以在定義的時候初始化:chars[]_IfIOlympic”l;或者chars[]=”O(jiān)lympic'1.都是正確的,但是不可以在定義字符數(shù)組后,對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址)。所以選項B)和選項D)都是錯誤的。對于本例,選項B)、D)中字符數(shù)組S的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標志“\0”)。
12.A解析:C語言中的函數(shù)可以進行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
13.B按邏輯位運算特點:①用按位與運算將特定位清為0或保留特定位;②用按位或運算將特定的位置為1;③用按位異或運算將某個變量的特定位翻轉(zhuǎn)或交換兩個變量的值。
14.A要寫入字符數(shù)據(jù),需要使用格式字符%c,選項D錯誤;換行符需要使用‘\\n’,而不是‘\\r\\n’,選項B錯誤;選項C中未使用換行符,不滿足題意。故本題答案為A選項。
15.B
16.B子函數(shù)fun(intx,inty),將變量m和i聲明為局部靜態(tài)變量,因此第l次調(diào)用主函數(shù)后,局部靜態(tài)變量m和i的值為5和3,第l次函數(shù)調(diào)用結(jié)束時,它們的值不釋放保持不變,所以第2次調(diào)用時,局部靜態(tài)變量m和i的初始值分別為5和3,即在執(zhí)行“i+=m+1”時,i的值為9,因此最終m的值為11。
17.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關系與它們的邏輯關系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構,也稱數(shù)據(jù)的物理結(jié)構。
18.A第1次調(diào)用為m=f(f(f(1))),第2次調(diào)用為m=f(f(2)),第3次調(diào)用為m=f(4),即返回值為8。故本題答案為A選項。
19.A解析:題中將函數(shù)fun的入口地址賦給了指針變量f1,這時f1和fun都指向函數(shù)的開頭,調(diào)用*f1就是調(diào)用函數(shù)fun。
20.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種'后進先出'的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種'先進先出'的線性表。模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。
21.DIR??C*.*
22.str+strlen(str)-1str+strlen(str)-1解析:檢查一個字符串是否是回文,函數(shù)huiwen中定義了兩個字符指針,pl=str指向字符串頭,p2應該指向字符串尾,因此該處應該填入:str+strlen(str)-1或&str[strlen(str)-1]。
23.p!=NULLp->nextp!=NULL\r\np->next解析:結(jié)構體變量構成鏈表需要每個節(jié)點中都有一個指向下一個結(jié)點的指針,就像本題中的next指針一樣。注意:掌握可以對鏈表進行的操作。
24.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。
25.非線性結(jié)構非線性結(jié)構
26.00解析:根據(jù)運算符的運算順序可知,該表達式最后運算的是與(&&)運算,而任何表達式與“0”進行“與”運算,結(jié)果都為0。
27.1030010300解析:輸入語句使i=10,j=30,k沒有被重新賦值,仍為初值0。
28.310
29.存儲或物理或存儲結(jié)構或物理結(jié)構存儲或物理或存儲結(jié)構或物理結(jié)構解析:數(shù)據(jù)的邏輯結(jié)構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(也稱數(shù)據(jù)的物理結(jié)構)。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用。可知,循環(huán)隊列應當是物理結(jié)構。
30.b[i][0]b[i][0]解析:因為要將a的最后一行放在b的第0列中,【】應填b的第0列的元素。
31.操作系統(tǒng)或OS操作系統(tǒng)或OS解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務。位于用戶和操作系統(tǒng)之間。
32.驅(qū)動模塊驅(qū)動模塊解析:在進行模塊測試時,要為每個被測試的模塊另外設計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。
33.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標識符(*旨針變量名)()。注:“類型標識符”為函數(shù)返回值的類型。
34.結(jié)構化設計結(jié)構化設計解析:與結(jié)構化需求分析方法相對應的是結(jié)構化設計方法。結(jié)構化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術。
35.空間復雜度和時間復雜度空間復雜度和時間復雜度解析:算法的復雜性是指對—個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復雜性,算法的計算量是算法的時間復雜性。
36.*(p+5)或p[5]*(p+5)或p[5]
37.2525解析:本題考查帶參數(shù)的宏的定義及相關運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
38.層次模型用樹型結(jié)構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為層次模型,用有向圖結(jié)構表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型,用二維表格結(jié)構表示實體及其聯(lián)系的數(shù)據(jù)模型稱為關系模型。
39.484,8解析:C語言規(guī)定,共用體中各個成員變量在內(nèi)存中占用同一段內(nèi)存單元,即e.in.x、e.a、e.b占用同一段內(nèi)存單元。執(zhí)行語句e.b=2;后,e.in.x=e.a=e.b=2;執(zhí)行語句e.in.x=e.a*e.b;時,e.a的值為2,e.b的值為2,所以運算得出e.in.x的值為4;執(zhí)行語句e.in.y=e.a+e.b時,由于e.in.x和e.a、e.b占用的是同一段內(nèi)存單元,所以此時的e.a、e.b的值為4,因此運算得出e.in.y的值為4+4=8。程序最后的輸出結(jié)果為4,8。
40.212,1解析:本題中,執(zhí)行a=a+b時,a=1,b=2,a=1+2=3,b=a-b時,a=3,b=2,b=3-2=1;a=a-b時,a=3,b=1,a=3-1=2;因此,本題的輸出是2,1
41.C解析:在C語言中,以“\\”開頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進制熟或在“\\”后跟字母x及1~2位十六進制數(shù),以此來代表—個特定的字符。
42.C解析:統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運行的結(jié)果是1+2+3+4+5+6+7+8+9=25。
43.C解析:執(zhí)行while循環(huán),使指針變量ps指向字符串“xyz”的字符串結(jié)束標志,然后執(zhí)行for循環(huán),先執(zhí)行“ps--”,使ps指向字符“z”,故puts(ps)輸出結(jié)果為“z”:再次執(zhí)行“ps--”,使ps指向字符“y”,故puts(ps)輸出結(jié)果為“yz”:再次執(zhí)行“ps--”,使ps指向字符'x',故puts(ps)輸出結(jié)果為“xyz”,退出循環(huán)。所以,C選項正確。
44.D
45.A解析:線性表的鏈式存儲結(jié)構稱為線性鏈表,是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構,數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接來實現(xiàn)的。
46.B解析:C語言規(guī)定else總是和離它最近的if語句配對。故第一個else和第一個if配對,第二個else和第二個if配對。首先計算第一個if后面的表達式“a>b>c”,表達式“a>b”是為1,表達式“1>c”為0,所以執(zhí)行else后面的語句。先執(zhí)行if后面的表達式,“c-1>d”為真,值為1?!?==1”為真,執(zhí)行printf語句。
47.C解析:本題中,程序先執(zhí)行語句x=1.2;根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將常量1.2轉(zhuǎn)換為整型,取整數(shù)1,并將其賦給變量x,然后執(zhí)行語句y=(x+3.8)/5.0。根據(jù)運算符的優(yōu)先級,先計算小括號內(nèi)的x+3.8,其運算過程是:先將整型變量x的值1轉(zhuǎn)換為double型1.0,然后與3.8做加法運算,得到中間結(jié)果4.8,接著進行除法運算4.8/5.0,其結(jié)果小于1.0,接著進行賦值運算,賦值號左邊的變量y的類型為整型,于是對這個小于1.0的中間結(jié)果進行取整,結(jié)果為0。于是變量y的值為0,d*y的值也為0。
48.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。
49.A解析:根據(jù)題中給定的條件,可以作如下的模擬操作:①元素a,b進棧,棧中有2個元素,分別為a,b;②元素b出棧后,元素c,d進棧,棧中有3個元素,分別為a,c,d;③元素d,c出棧后,元素e,f進棧,棧中有3個元素,分別為a,e,f;④最后,元素f,e,a出棧,棧為空??梢钥闯?,進棧的順序為a,b,c,d,e,f,出棧的順序為b,d,c,f,e,a,滿足題目要求。每次進棧操作后,棧中最多有3個元素,所以,為了順利完成這些操作,棧的容量應至少為3。本題的正確答案為A。
50.C解析:本題的宏定義是合法的,宏定義展開為3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。
51.D解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構根據(jù)需要可以表示成多種存儲結(jié)構,因此,數(shù)據(jù)的邏輯結(jié)構與存儲結(jié)構不一定是一一對應的。選項A中的說法是錯誤的。雖然計算機的存儲空間是向量式的存儲結(jié)構,但由于一種數(shù)據(jù)的邏輯結(jié)構根據(jù)需要可以表示成多種存儲結(jié)構,例如,線性鏈表是線性表的鏈式存儲結(jié)構。一般來說,性表的鏈式存儲結(jié)構中,各數(shù)據(jù)結(jié)點的存儲序號是不連續(xù)的,并且各結(jié)點在存儲空間中的位置關系與邏輯關系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關系是由各結(jié)點的指針域來指示的。因此,數(shù)據(jù)的存儲結(jié)構不一定是線性結(jié)構。選項B中的說法也是錯誤的。雖然程序設計語言中的數(shù)組一般是順序存儲結(jié)構,但是,利用數(shù)組也能處理非線性結(jié)構。例如,滿二叉樹與完全二叉樹是非線性結(jié)構,但對于滿二叉樹與完全二叉樹來說,根據(jù)完全二叉樹的性質(zhì)6,可以按層序進行順序存儲,即利用程序設計語言中的數(shù)組來存儲,這樣,不僅節(jié)省了存儲空間,又能方便地確定每一個結(jié)點的父結(jié)點與左右子結(jié)點的位置。對于一般的二叉樹來說,也可以將二叉樹中每一個結(jié)點的左指針、右指針以及數(shù)據(jù)域分別用三個數(shù)組中的對應元素來存儲,即實際上也是利用了程序設計語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構。選項C中的說法也是錯誤的。綜上所述,選項A、B與C中的說法都是錯誤的。
52.A解析:在循環(huán)體中有一條if語句,其后面表達式為i%2,當i的值為奇數(shù)時,其值為真,執(zhí)行其后面的語句,i的值加1,重新開始循環(huán),當i的值為偶數(shù)時,i%2為假,執(zhí)行“i++;s+=i。在循環(huán)中i為偶數(shù)時的值分別為0、2、4、6,加1后的值分別為1、3、5、7,s中存放的是它們的和,值為16。
53.D解析:C語言中規(guī)定:一個數(shù)組名代表它的起始地址.本題中,定義了一個長度為10的數(shù)組a并賦初值,數(shù)組名a就是數(shù)組的起始地址,由于數(shù)組下標是從。開始,因此a[0]地址也是a的值,a[1]的地址可以用a+1表示,也就是說a+1指向數(shù)組a中下標為1的元素,同樣a+1是a[i]的地址,*p=&a[3]表明指針變量p指向元素a[3],即p指向數(shù)組a的第4個元素4,p[5]的值應為數(shù)組a中的第9個元素的值即a[8]的值,即p[5]=9,所以b=9。所以,4個選項中選項D符合題意。
54.B解析:從概念模式到內(nèi)模式的映射一般由數(shù)據(jù)庫管理系統(tǒng)(DBMS)實現(xiàn)。
55.A解析:實參的個數(shù)必須與形參的個數(shù)一致,實參可以是表達式,在類型上應按位置與形參一一對應匹配。
56.A解析:單元測試的步驟如下:
①理解需求和設計。清楚被測試模塊在整個軟件中所處的位置。一個原則是:好的設計,各模塊只負責完成自己的事情,層次與分工明確。單元測試時,可以不測試不屬于被測模塊所負責的功能,以減少測試用例的冗余。
②概覽源代碼。瀏覽源代碼,初步檢查源代碼的編碼風格與規(guī)范,大致估算測試工作量,確定模塊的復雜程度,初步制定測試的優(yōu)先級等。
③精讀源代碼。認真閱讀和分析代碼,理解代碼的業(yè)務邏輯,檢查代碼與設計是否相符,仔細研究邏輯復雜的模塊,可采用一些檢查列表來檢查程序可能會出現(xiàn)的問題。
④設計測試用例。綜合運用白盒測試方法(并結(jié)合黑盒測試方法)設計測試用例,包括功能測試、性能測試等,要達到一定的測試覆蓋率。本題正確答案為選項A。
⑤搭建單元測試環(huán)境。這個階段主要就是寫樁模塊和驅(qū)動模塊,然后驅(qū)動模塊想辦法獲取被測試模塊對數(shù)據(jù)的處理結(jié)果,并判定返回的實際結(jié)果與測試用例的預
期結(jié)果是否一致,通過測試框架來記錄執(zhí)行的結(jié)果,對于出現(xiàn)的錯誤,還需統(tǒng)計錯誤的信息,供執(zhí)行完之后分析。
⑥執(zhí)行測試。運行寫好的驅(qū)動模塊完成對被測試模塊的測試。
⑦補充和完善測試用例。在測試過程中不斷補充測試用例,直到滿足要求為止。
⑧分析結(jié)果,給出評價。根據(jù)測試的結(jié)果分析、查找錯誤的原因,并找到解決的辦法。測試結(jié)束之后,根據(jù)測試過程的數(shù)據(jù)統(tǒng)計,給出被測試對象評價。
57.C
58.D解析:本題考核的知識點是文件的讀寫方式。在C語言中文本文件是以ASCII碼形式存放的,每個字符占一個字節(jié)。由于數(shù)據(jù)在計算機中是以;進制形式存放的,因此二進制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把ASCH碼轉(zhuǎn)換成二進制,因此速度較快。在文本文件中,數(shù)據(jù)以ASCII碼形式存放的,用戶很難判定一個數(shù)據(jù)到底占幾個字節(jié),所以不適合使用隨機讀寫方式。數(shù)據(jù)以二進制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進行隨機讀寫,當然也可以順序讀寫。所以,D選項為所選。
59.D通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。
軟件生命周期的主要活動階段為:
①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務的實施計劃。
②需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。
③軟件設計。系統(tǒng)設計人員和程序設計人員應該在反復理解軟件需求的基礎上,給出軟件的結(jié)構、模塊的劃分、功能的分配以及處理流程。
④軟件實現(xiàn)。把軟件設計轉(zhuǎn)換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟件測試。在設計測試用例的基礎上,檢驗軟件的各個組成部分。編寫測試分析報告。
⑥運行和維護。將已交付的軟件投入運行,并在運行使用中不斷地維護,根據(jù)新提出的需求進行必要而且可能的擴充和刪改。
60.D解析:選項A二維數(shù)組行下標為1,即數(shù)組有一行
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度老舊小區(qū)改造施工安全免責及物業(yè)管理協(xié)議
- 2025年度股權贈與及公司治理結(jié)構優(yōu)化協(xié)議
- 二零二五年度抑郁癥患者心理危機干預服務合同
- 2025年度設備拆除安全應急預案編制與演練合同
- 二零二五年度生態(tài)保護區(qū)拆遷居民安置協(xié)議
- 二零二五年度農(nóng)村房屋拆遷補償與農(nóng)村土地流轉(zhuǎn)合同
- 二零二五年度外企在華委托招聘本地員工協(xié)議
- 二零二五年度炊事員聘用及廚房安全管理合同
- 二零二五年度教育咨詢兼職課程顧問合同模板
- 2025年度智能化設備采購合同履約承諾書模板
- 【道法】做自信的人課件 2024-2025學年統(tǒng)編版道德與法治七年級下冊
- 高一英語完形填空專項訓練100(附答案)及解析
- 設計報告001模擬通信系統(tǒng)的SIMULINK建模仿真
- 橫河氧量變送器標定及檢修
- 沉降觀測常用表格
- 建設工程規(guī)劃放線、驗線申請表
- 績效考核 五金廠績效考核
- 金合極思打板與放碼系統(tǒng)幫助目錄
- 勵磁系統(tǒng)檢修規(guī)程
- WE-100B300B600B1000B型萬能材料試驗機使用說明書
- 相聲《治病》
評論
0/150
提交評論