版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022-2023年湖北省荊門市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.軟件生命周期中,花費最多的階段是()。
A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護
2.對于int*pa[5];的描述,()是正確的。
A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素
B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量
C.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針
D.pa[5]表示某數(shù)組的第5個元素的值
3.下列能正確進行字符串賦值的是()。A.B.C.D.
4.對線性表進行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈式方式存儲,并按關(guān)鍵碼值排好序
D.線性表以鏈式方式存儲,并按關(guān)鍵碼的檢索頻率排好序
5.對于哈希表,如果將裝填因子α定義為表中裝入的記錄數(shù)與表的長度之比,那么向表中加入新紀錄時,()
A.α的值隨時沖突次數(shù)的增加而遞減
B.α越大發(fā)生沖突的可能性越大
C.α等于1時不會再發(fā)生沖突
D.α低于0.5時不會發(fā)生沖突
6.
7.若有定義"int(*pt)[3];",則下列說法正確的是()。
A.定義了基類型為int的三個指針變量
B.定義了基類型為int的具有三個元素的指針數(shù)組pt
C.定義了一個名為*pt、具有三個元素的整型數(shù)組
D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組
8.下列關(guān)于宏的敘述中正確的是()。
A.宏替換沒有數(shù)據(jù)類型限制
B.宏定義必須位于源程序中所有語句之前
C.宏名必須用大寫字母表示
D.宏調(diào)用比函數(shù)調(diào)用耗費時間
9.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
10.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進行的關(guān)鍵字依次為()
A.f,c,BB.f,d,BC.g,c,BD.g,d,B
11.下列程序的運行結(jié)果是()。
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
12.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()
A.2和4B.1和5C.4和2D.5和1
13.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。
A.#definef(x)5*x*x+5*x+5
B.#definef5*X*x+5*x+5
C.#definef(a)(5*a*a+5*a+5)
D.#define(5*x*x+5*x+5)f(x)
14.有以下程序:voidswap1(intC[]){intt;t=c[0];c[0]=C[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5);swapl(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結(jié)果是
A.5353B.5335C.3535D.3553
15.以下敘述中錯誤的是()。
A.C語言編寫的函數(shù)源程序,其文件名后綴可以是C
B.C語言編寫的函數(shù)都可以作為一個獨立的源程序文件
C.C語言編寫的每個函數(shù)都可以進行獨立的編譯并執(zhí)行
D.一個C語言程序只能有一個主函數(shù)
16.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
17.對一個算法的評價,不包括()方面的內(nèi)容。
A.健壯性和可讀性B.并行性C.正確性D.時空復(fù)雜度
18.
19.
20.若變量已正確定義,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其輸出結(jié)果是()。A.程序段有語法錯B.3,5,3C.3,5,5D.3,5,7
二、2.填空題(20題)21.在數(shù)據(jù)的存儲結(jié)構(gòu)中,不僅需要存儲各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
22.在關(guān)系數(shù)據(jù)庫中把數(shù)據(jù)表示成二維表,每一個二維表稱為【】。
23.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
24.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為【】。
25.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?zhí)羁铡?/p>
main()
{
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)
scanf("%d",(______);
for(i=0;i<20;i++)
{
if(a[i]>0)
{
count++;
sum+=(______);
}
}
printf("sum=%d,count-%dkn",sum,count);
}
26.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
27.有以下程序:
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序運行后的輸出結(jié)果是【】。
28.下列程序段的輸出結(jié)果是______。
intn='c':
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("moming");
case'd':printf("class");
}
29.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)畛渫暾?/p>
voidfunc(intx,inty,【】z)
{*z=x+y;
}
30.下面的程序能求a:ab.c文件中最長行和它的位置。
#include<stdio.h>
main()
{intlin,i,j=0,k=0;
charc;
FILE*fp;
fp=(【】("a:ab.c","r");
rewind(fp);
while(fgetc(fp)!=EOF)
i=1;
【】
{i++;
j++;
if(i>=k){k=i;【】;}
}
printf("\n%d\t%d\n",k,lin);
【】;
}
31.下列程序利用指針將2個數(shù)按從大到小的順序輸出。
main()
{inta,b,【】;
printf("inputa,b:");
scanf("%d%d",&a,&b);
【】;
p2=&b;
if(a<b)
{p=p1;
p1=p2;
p2=p;
}
printf("a=%db=%d\n",a,b);
printf("max=%dmin=%d\n",【】);
32.以下程序調(diào)用函數(shù)swap_p將指針s和t所指單元(a和b)中的內(nèi)容交換,請?zhí)羁铡?/p>
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
33.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{infi,j,[13];charstr[]={"1234567"};
for(i=0,j=strlen(str)[14];i<j;i++,j--)
{k=str[i];str[i]=str[i];str[j]=k;}
printf("%s\n",str);}
34.設(shè)有chara,b;,若要通過a&b運算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進制是【】。
35.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
36.以下函數(shù)將b字符串連接到a字符串的后面,并返回a中新字符串的長度。
strcen(charaC),charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;)
return(num);
}
37.下列程序的輸出結(jié)果是______。
main()
{inta[]={31,27,20,12,6,1},*p=a;
p++;
printf("%d\n",*(p+2));
}
38.函數(shù)delete(s,i,n)是作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
while(s[length])
【】;
-i;
j=i
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
39.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
40.以下程序運行后的輸出結(jié)果是【】。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*2+1;
printfi["%d",n[i]);
}
}
三、1.選擇題(20題)41.以下程序的運行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
42.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是()。
A.順序存儲的有序線性表B.結(jié)性鏈表C.二叉鏈表D.有序線性鏈表
43.實體是信息世界中廣泛使用的一個術(shù)語,它用于表示()。
A.有生命的事物B.無生命的事物C.實際存在的事物D.一切事物
44.下列說法不正確的是
A.int*fun();----fun是一個返回int指針的函數(shù)
B.int(*fun)();---fun是一個返回int指針的函數(shù)
C.int(*array[5])();----array是一個有5個元素的數(shù)組,每一個元素都是一個函數(shù)指針,指向一個返回int的函數(shù)
D.int(*fun(int))(int);----fun是帶有一個int參數(shù)的函數(shù),返回值是一個函數(shù)指針,這個指針指向帶有一個int參數(shù)并返回int的函數(shù)
45.若二維數(shù)組a有m列,且設(shè)a[0][0]位于數(shù)組的第一個位置上,則計算任一元素a[i][j]剛在數(shù)組中的位置的式子為()。
A.i*m+jB.j*m+iC.i*m+j-1D.i*m+j+l
46.以下能正確定義一維數(shù)組的選項是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
47.微型計算機中使用的鼠標器連接在()
A.并行接口上B.串行接口上C.顯示器接口上D.鍵盤接口上
48.設(shè)在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占()個字節(jié)。
A.1B.2C.8D.4
49.有以下程序intf(intn){if(n==l)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf{"%d\n",j);}程序運行后的輸出結(jié)果是
A.4B.3C.2D.1
50.下列程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}
A.0,1,2B.1,2,3C.1,1,3D.1,2,2
51.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
52.有以下程序:voidsott(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;)}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},I;sort(aa+2,5);for(i=0;i<10;i++)printf("%d",aa[i]);printf("\n");}程序運行后的輸出結(jié)果是______。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,10,
53.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序運行后的輸出結(jié)果是()。
A.1*1=11*2=21*3=32*1=22*2=43*1=3
B.1*1=11*2=21*3=32*2=42*3=63*3=9
C.1*1=11*2=22*2=41*3=32*3=63*3=9
D.1*1=12*1=22*2=43*1=33*2=63*3=9
54.有以下程序并include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}}main(){charp[]="1234567";fun(p,strlen(p));puts(p);}程序運行后的輸出結(jié)果是()
A.1234567B.7654321C.1711717D.7177171
55.以下對枚舉類型名的定義中正確的是______。
A.enuma={one,two,three};
B.enuma{one=9,two=-1,three};
C.enuma={one","two","three"};
D.enuma{"one","two","three"};
56.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
57.請選出以下程序的輸出結(jié)果_______。#include<stdio.h>sub(int*s,inty){staticintt=3,y=s[t];t-;}main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}
A.1234B.4321C.0D.4444
58.以下程序的功能是進行位運算main(){unsignedchara,b;a=73;b=~4&3;printf("%d%d\n",a,b);}程序運行后的輸出結(jié)果是
A.43B.73C.70D.40
59.函數(shù)的值通過return語句返回,下面關(guān)于return語句的形式描述錯誤的是
A.return表達式;
B.return(表達式);
C.一個return語句可以返回多個函數(shù)值
D.一個return語句只能返回一個函數(shù)值
60.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
四、選擇題(20題)61.
62.
以下程序的輸出結(jié)果是()。
main
{charw[][10]={"ABCD","EFGH","IJKL","
MNOP"),K;
for(k=1;k<3;k++)printf("%s\n",w[k]);
A.ABCDFGHKLB.ABCDEFGUC.EFGJKOD.EFGHUKL
63.有如下程序段
#include"stdio.h"
typedefunion
{longx[2];
inty[4];
charz[8];
}atx;
typedefstructaa
{longx[2];
inty[4];
charz[8];
}stx;
main()
{printf("union=%d,structaa=%d\n",sizeof(atx),sizeof(stx));}
則程序執(zhí)行后輸出的結(jié)果是
A.union=8,structaa=8
B.union=8,structaa=24
C.union=24,structaa=8
D.union=24,structaa=24
64.(20)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計
B.模式設(shè)計和內(nèi)模式設(shè)計
C.內(nèi)模式設(shè)計和物理設(shè)計
D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
65.在一個C程序中
A.main函數(shù)必須出現(xiàn)在所有的函數(shù)之前B.main函數(shù)可以在任何地方出現(xiàn)
C.main函數(shù)必須出現(xiàn)在所有的函數(shù)之后D.main函數(shù)必須出現(xiàn)在固定位置
66.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
67.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
68.若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是
69.
70.有以下程序:
執(zhí)行后輸出結(jié)果是()。
A.58B.56C.45D.24
71.
72.
73.有以下程序程序的運行結(jié)果是()。
A.a=2,b=lB.a=2,b=2C.a=1,b=lD.a=1.b=0
74.有以下程序在VC6平臺上編譯運行。程序運行后的輸出結(jié)果是(
)。
A.4,8B.4,4C.2,4D.10,6
75.下列敘述中,正確的是()。
A.用E—R圖能夠表示實體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B.用E—R圖只能表示實體集之間一對一的聯(lián)系
C.用E—R圖只能表示實體集之間一對多的聯(lián)系
D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
76.有以下程序:
若要按以下形式輸出數(shù)組右上半三角:
則在程序下劃線處應(yīng)填人的語句是()。
A.i-1B.i+1C.iD.4-i
77.有如下程序段:
執(zhí)行該程序段后,X的值為()。
A.trueB.falseC.0D.1
78.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有小寫字母c。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),它的功能是計算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C語言中可調(diào)用log(n)函數(shù)求1n(n)。例如,若n1的值為30,則proc()函數(shù)值為8.640500。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.D本題考查對軟件生命周期的理解,軟件生命周期整體上可分為定義階段、開發(fā)階段和維護階段。其中定義階段包括可行性研究與計劃制訂和需求分析;開發(fā)階段包括概要設(shè)計、詳細設(shè)計、開發(fā)和測試;維護階段是一個單獨階段,不包含在開發(fā)階段內(nèi),它是所花費用最多的一個階段。
2.A
3.C選項A、B的空間不夠;選項D中字符串存儲要有結(jié)束符ˊ\0ˊ,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
4.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
5.B
6.C
7.D\n數(shù)組指針是指向數(shù)組的一個指針,int(*pt)[3]表示一個指向3個int元素的數(shù)組的一個指針。
\n
8.A宏定義寫在函數(shù)的花括號外,作用域為其后的程序,通常在文件的最開頭,所以B選項錯|誤。宏名一般用大寫字母,但不是必須用大寫字母,所以C選項錯誤。宏展開不占運行時間,只占編譯時間,函數(shù)調(diào)用占運行時間(分配內(nèi)存、保留現(xiàn)場、值傳遞、返回值),所以D選項錯誤。故本題答案為A選項。
9.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
10.A
11.D本題考查while循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,x++后值為1,x自加變成2,進入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1.循環(huán)條件成立,進入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句。退出循環(huán)。結(jié)果為D。
12.A
13.C解析:帶參數(shù)宏的格式為:#define標識符(形參表)形參表達式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達式。
14.B解析:本題中函數(shù)swapl()是傳遞的地址。所以對該形參c的改變將影響實參,分析可知該函數(shù)的作用,是使數(shù)組c的第一個元素和第二個元素的值互換。主函數(shù)中調(diào)用該函數(shù)將a作為實參傳遞給形參c,故執(zhí)行該函數(shù)后a的第一個元素和第二個元素的值將交換。分別為5和3。函數(shù)swap2()是值傳遞的,所以該函數(shù)執(zhí)行后對數(shù)組b將沒有任何改變,此時該數(shù)組的第一個和第二個元素依然為3和5,因此最后的輸出為5、3、3和5,所以,4個選項中選項B符合題意。
15.C函數(shù)是指預(yù)先定義功能塊,其目的是提高程序的重用性。在C語言中函數(shù)的源程序,后綴名可以為C。C語言所編寫的函數(shù)都可以是一個獨立的源文件。一個C語言程序只能有一個主函數(shù)。C語言中編寫的函數(shù)不是每個都可以獨立地編譯和執(zhí)行的,因為C語言中程序的開始為主函數(shù),如果程序中沒有主函數(shù)則無法進行編譯和執(zhí)行。
16.C解析:x=7,通過遞歸調(diào)用fun函數(shù)后得到結(jié)果。
17.B
18.C
19.D
20.B解析:本題考查的是程序結(jié)構(gòu)設(shè)計中if語句的應(yīng)用,當(dāng)if判斷條件成立時就執(zhí)行其后的相關(guān)語句,否則不執(zhí)行,本題中第一個if條件不成立,故不執(zhí)行“a=b”,接著執(zhí)行“c=a”,此時第二個if條件也不成立,故不執(zhí)行其后語句,最終c的值為3。
21.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲結(jié)構(gòu)中,除了要存儲數(shù)據(jù),還要存儲數(shù)據(jù)的前后件關(guān)系,對于順序存儲的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲空間的位置來實現(xiàn)的,而對于鏈式存儲來說,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實現(xiàn)的。
22.關(guān)系或一個關(guān)系關(guān)系或一個關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,把數(shù)據(jù)表示成二維表,而一個二維表就是一個關(guān)系。
23.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
24.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)
25.&a[i]或a+ia[i]或*(a+i)&a[i]或a+ia[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20得整形數(shù)組,然后通過—個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應(yīng)填各個元素的地址,即填&a[1]或a+i,然后在通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于。將其累加到變量sum中,所以第二個空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a[i]或*(a+i)。
26.外模式外模式解析:外模式由概念模式推導(dǎo)而出,給出了每個用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。
27.66解析:本題定義了二維數(shù)組a和指針變量p,p指向數(shù)組的首地址,for循環(huán)語句的功能是給數(shù)組元素賦值,結(jié)果為a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函數(shù)的輸出結(jié)果為6。
28.morningclassmorningclass解析:本題考查了兩個知識點:①“++、--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n=\'c\'時,執(zhí)行“case\'c\':”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行'case\'d\':”,輸出class,最終輸出結(jié)果為morningclass。
29.int*int*解析:從函數(shù)體中可看出,2是一個指向整型的指針,該函數(shù)的形參z是傳地址調(diào)用。
30.fopenwhile(fgetc(fp)!='\n')lin=jclose(fp)fopen\r\nwhile(fgetc(fp)!='\\n')\r\nlin=j\r\nclose(fp)
31.*p*p1*p2p1:&a*p1*p2
32.&s&t&s,&t解析:指針做函數(shù)參數(shù)時,形參和實參指向同一個數(shù)據(jù),所以函數(shù)中對形參所指向的數(shù)據(jù)的改變也能影響到實參。本題中函數(shù)swap_p的形參為指向指針的指針,即雙重指針,原理跟普通的指針是一樣的。注意:通過指針來引用一個存儲單元。
33.顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標變量i和j,i是前端元素的下標,j是后端元素的下標,交換以這兩個變量值為下標的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j字符串末元素的下標是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中—起定義,所以在第—個空\r\n\r\n
34.1000001010000010解析:運算“&”的,的規(guī)則是只有當(dāng)兩個相應(yīng)的二進制位都為1時,該位的結(jié)果才為1。要保留第2、8位,只要將其與二進制數(shù)10000010相與。
35.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
36.\0n++
37.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。
38.length++i<lengthlength++\r\ni<length解析:第一個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后一個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進行了-i運算,故實際應(yīng)填入i<length。
39.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到笫i+n或最后—個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進行了-i運算,故實際應(yīng)填入i<length。
40.1371513715解析:本題中,定義了個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
41.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。
42.A\nA。【解析】二分法查找只適用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。
\n
43.C解析:實體是客觀存在且可以相互區(qū)別的事物。實體可以是具體的對象,如一個學(xué)生,也可以是一個抽象的事件,如一次出門旅游等。因此,實體既可以是有生命的事物,也可以是無生命的事物,但它必須是客觀存在的,而且可以相互區(qū)別。
44.B解析:該函數(shù)中fun是一個函數(shù)指針。指向一個返回int的函數(shù)。
45.D解析:解此題要注意的問題有兩個:一是,二維數(shù)組在內(nèi)存中的存放形式是線性的,且是以行方式排列的。例如:a[3][4]在內(nèi)存中是以a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],a[1][1],a[1][2],…的順序排列的。二是,數(shù)組的下標范圍是從0開始至上限減1為止的。例如:a[5]中5個元素的下標范圍是0~4。所以,元素a[i][j]剛在m列的二維數(shù)組a中,其上面已經(jīng)有a[0][?]~a[i-1][?],i行元素,加上其左面的a[i][0]~a[i][j-1],j個元素,再加上自己所處的位置1就是該元素在數(shù)組中的位置值了。i行元素的個數(shù)是i*m,所以元素a[i][j]在數(shù)組中的位置為i*+j+1。得出結(jié)論后還應(yīng)該驗證一下,當(dāng)i=0,j=0時,a[0][0]所處的位置代入式子為0*m+0+1:1,符合題意。故正確答案為D。
46.B解析:選項A定義數(shù)組時省略了長度,而C語言中規(guī)定,只有在定義并同時進行初始化時,數(shù)組的長度才可以省略,數(shù)組的長度為初始化時候的成員個數(shù),故選項A錯誤;在C語言中規(guī)定,數(shù)組的長度必須是一個整數(shù)或整型常量表達式,故選項C不正確:定義時數(shù)組的長度不能使用變量表示,故選項D不正確,所以,4個選項中選項B符合題意。
47.B
48.C
\n在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機器的位數(shù)有關(guān),16位機中(也就是在標準c中),若int類型數(shù)據(jù)占2個字節(jié),則float類型數(shù)據(jù)占4個字節(jié),double類型數(shù)據(jù)占8個字節(jié)。
\n
49.B解析:本題考查的知識點是遞歸函數(shù).通過分析不難寫出,f()函數(shù)的數(shù)學(xué)表達式為:
f(n)=1n=1;
f(n)=f(n-1)+1n不等于1;
在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到i中,i的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知“f(2)=f(1)+1”,得到返回值2并把它加到i中,j的值為3。所以最后輸出的j的值為3,所以4個選項中B正確。
50.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下列的++c。
51.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間,函數(shù)調(diào)用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。
52.C解析:aa+2=aa[2],因此sort(aa+2,5)是從aa[2]開始,依次與后面的元素進行比較,將當(dāng)前值小于其后一項的值進行互換,循環(huán)5次。
53.B解析:外層for循環(huán)的自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)束.對于外層循環(huán)自變量i的每一個值,內(nèi)層循環(huán)的自變量j每次從i開始,每次循環(huán)后增1,直到j(luò)等于3結(jié)束。所以在每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打印i*j=兩個乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。
54.C
55.B解析:聲明枚舉類型用enum開頭。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);說明:1、在C編譯中,對枚舉元素按常量處理,同時可以改變他們的值。2、枚舉值可以用來做判斷比較。3、一個整數(shù)不能直接賦給一個枚舉變量。
56.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。
57.C解析:x作為函數(shù)sub()的實參時,函數(shù)對x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以在打印時,x的值是始終不變的,即為0。
58.A解析:是位異或運算符,其作用是將左右運算分量的相應(yīng)二進制位進行異或操作。即,相應(yīng)位同時為。或同時為1則結(jié)果相應(yīng)位為0,否則結(jié)果相應(yīng)位為1。所以a=73=(00000111)2(00000011)2=(00000100)2=4?!俏环催\算符,作用是將運算分量的二進制位按位取反。即,原來是0的二進制位變成1,原來是1的變成0。&是位與運算符,其作用是將左右運算分量的相應(yīng)二進制位進行與操作。即,相應(yīng)位同時為1時結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。所以b=-4&3=~(00000100)2&(00000011)2(11111011)2&(00000011)2=(00000011)2=3。故應(yīng)該選擇A。
59.C解析:return語句中的表達式的值就是所求的函數(shù)值,此表達式值的類型必須與函數(shù)首部所說明的類型一致。如果類型不一致,則以函數(shù)值的類型為準,由系統(tǒng)自動進行轉(zhuǎn)換。一個return語句只能返回一個值。
60.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年輕工業(yè)生產(chǎn)質(zhì)量管理手冊
- 企業(yè)職業(yè)健康安全管理員手冊(標準版)
- 傳染病消毒隔離管理制度
- DB61T 2094.6-2025天麻生產(chǎn)技術(shù)規(guī)范 第6部分:商品天麻
- 超市商品銷售及營銷策略制度
- 采購團隊培訓(xùn)與發(fā)展制度
- 辦公室員工保密承諾制度
- 2026年石獅市鴻山鎮(zhèn)第二中心幼兒園招聘備考題庫帶答案詳解
- 2026年未央?yún)^(qū)漢城社區(qū)衛(wèi)生服務(wù)中心招聘備考題庫及1套參考答案詳解
- 養(yǎng)老院安全管理與應(yīng)急制度
- 道岔滾輪作用原理講解信號設(shè)備檢修作業(yè)課件
- 小學(xué)師徒結(jié)對師傅工作總結(jié)
- 2024-2025學(xué)年山東省臨沂市高二上學(xué)期期末學(xué)科素養(yǎng)水平監(jiān)測數(shù)學(xué)試卷(含答案)
- 金融行業(yè)風(fēng)險控制與投資策略研究
- BCG-并購后整合培訓(xùn)材料-201410
- 招標代理機構(gòu)入圍 投標方案(技術(shù)方案)
- 運輸車隊年終總結(jié)報告
- 房屋損壞糾紛鑒定報告
- 精益生產(chǎn)方式-LEAN-PRODUCTION
- 頸動脈外膜剝脫術(shù)
- 養(yǎng)老設(shè)施建筑設(shè)計規(guī)范
評論
0/150
提交評論