




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年吉林省長春市全國計算機等級考試C語言程序設(shè)計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序運行后的輸出結(jié)果是()。A.0B.1C.2D.3
2.設(shè)變量已正確定義并賦值,以下正確的表達式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
3.以下敘述中正確的是()。
A.C語言語句必須在一行內(nèi)寫完
B.C語言程序中的每一行只能寫一條語句
C.C語言程序中的注釋必須與語句寫在同一行
D.簡單C語言語句必須以分號結(jié)束
4.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個關(guān)鍵碼為基準元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個位置。
A.3B.5C.7D.9
5.
6.用樹形結(jié)構(gòu)表示實體之間聯(lián)系的模型的是
A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是
7.數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,()沒有專門的軟件對數(shù)據(jù)進行管理。
I.人工管理階段
II.文件系統(tǒng)階段
Ⅲ.數(shù)據(jù)庫階段A.A.僅IB.僅ⅢC.I和IID.II和Ⅲ
8.輸入序列為ABC,輸出為CBA時,經(jīng)過的棧操作為()。
A.push,pop,push,pop,push,pop
B.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,pop
D.push,pop,push,push,pop,pop
9.以下選項中可作為C語言合法常量的是_____。A.-80B.-080C.-8e1.0D.-80.Oe
10.若程序中有宏定義行“#defineN100”,則下列敘述中正確的是()。
A.宏定義行中定義了標識符N的值為整數(shù)100
B.在編譯程序?qū)語言源程序進行預處理時用100替換標識符N
C.上述宏定義行實現(xiàn)將100賦給標識符N
D.在運行時用100替換標識符N
11.對于"int*pa[5];"的描述中,正確的是()。
A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素
B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量
C.pa[5]表示某個元素的第5個元素的值
D.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針
12.對n個數(shù)進行排序,哪種算法,其時間復雜度在最壞和最好都是O(nlogn)()
A.快速排序B.希爾排序C.堆排序D.選擇排序
13.下列關(guān)于return語句的敘述中正確的是()。
A.—個自定義函數(shù)中必須有一條return語句
B.—個自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處
14.與單鏈表相比,雙鏈表的優(yōu)點之一是()。
A.插入、刪除操作更簡單B.可以進行隨機訪問C.可以省略表頭指針或表尾指針D.順序訪問相鄰結(jié)點更靈活
15.有以下程序:#include<stdio.h>main(){charc;for(;(c=getchar())!=‘#’;){if(c>=‘a(chǎn)’&&c<=‘z’)c=c-‘a(chǎn)’+‘A’;putchar(++c);}}執(zhí)行時輸入aBcDefG##并按<Enter>鍵,則輸出結(jié)果是()。
A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bcdefgh
16.設(shè)有定義inta=2,b=3,c=4;,則以下選項中值為0的表達式是______。A.(!a==1&&(!b==0)
B.(a<b)&&!c||1
C.a&&b
D.a||(b+b)&&(c-a)
17.若有定義int(*pt)[3];,則下列說法正確的是A.定義了基類型為int的三個指針變量
B.定義了基類型為int的具有三個元素的指針數(shù)組pt
C.定義了一個名為*pt、具有三個元素的整型數(shù)組
D.定義了一個名為pt的指針變量,它可以指向每行有三個整數(shù)元素的二維數(shù)組
18.設(shè)計一個判別表達式中左、右括號是否配對出現(xiàn)的算法,采用()數(shù)據(jù)結(jié)構(gòu)最佳。A.線性表的順序存儲結(jié)構(gòu)B.隊列C.線性表的鏈式存儲結(jié)構(gòu)D.棧
19.在面向?qū)ο笤O(shè)計中,對象有很多基本特點,其中“從外面看只能看到對象的外部特性,而對象的內(nèi)部對外是不可見的。”這一性質(zhì)指的是對象的
A.分類性B.標識惟一性C.多態(tài)性D.封裝性
20.下列程序段的時間復雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)
二、2.填空題(20題)21.以下程序的功能是:處理由學號和成績組成的學生記錄,N名學生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,它的功能是:把分數(shù)最高的學生數(shù)據(jù)放在h所指的數(shù)組中,注意:分數(shù)高的學生可能不只一個,函數(shù)返回分數(shù)最高學生的人數(shù)。請?zhí)羁铡?/p>
#include<stdio.h>
#defineN16
typedefstruct
{charnum[10];
ints;
}STREC;
intfun(STREC*a,STREC*b)
{inti,j=0,max=a[0].s;
for(i=0;i<N;i++)
if(max<a[i].s)max=a[i].s;
for(i=0;i<N;i++)
if(【】)b[j++]=a[i];
returnj;
}
main()
{STRECs[N]={{"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}
};
STRECh[N];
inti,n;FILE*out;
n=fun(s,h);
printf("The%dhighestscore;\n",n);
for(i=0;i<n;i++)
printf("%s%4d\n",h[i].num,h[i].s);
printf("\n");
out=fopen("out15.dat","w");
fprintf(out,"%d\n",n);
for(i=0;i<n;i++);
fprintf(out,"%4d\n",h[i].s);
fclose(out);
}
22.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行人隊運算。這種情況稱為【】。
23.在關(guān)系運算中,【】運算是在指定的關(guān)系中選取所有滿足給定條件的元組,構(gòu)成一個新的關(guān)系,而這個新的關(guān)系是原關(guān)系的一個子集。
24.請讀程序片段:
inta=17;
printf("%d,%o\n",a,a);
以上程序片段的輸出結(jié)果是【】。
25.在關(guān)系模型中,二維表的行稱為______。
26.深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。
27.觀察題目要求,可以知道以下幾點:}
28.用復合的賦值運算符將變量x中的值增大2的賦值表達式是【】。
29.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
30.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
31.設(shè)有如下宏定義
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過宏調(diào)用實現(xiàn)變量a,b內(nèi)容交換,請?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】a,b);
32.下面程序執(zhí)行后輸出的結(jié)果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
33.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
34.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。
35.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。
36.以下程序中,select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標。請?zhí)羁铡?/p>
#defineN3
#defineM3
select(inta[N][M],int*n)
{inti,j,row=1,colum=1;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j;}
*n=【】;
return(【】);
}
main()
{inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,&n);
printf(“max=%d,line=%d\n”,max,n);
}
37.以下程序運行后的輸出結(jié)果是______。
main()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2==0)
*p='*';
p++;i++;
}
puts(a);
}
38.funl函數(shù)的調(diào)用語句為:fun1(&a,&b,&c);它將3個整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c這3個變量中,a中放最大數(shù)。
voidfun2(int*x,int*y)
{intt;
t=*x;*X=*y;*y=t;
}
voidfunl(int*pa,int*pb,int*pc)
{if(*pc>*pb)fun2(【】);
if(*pa<*pc)fun2(【】);
if(*pa<*pb)fun2(【】);
}
39.下列程序段的輸出結(jié)果是______。
intn='c':
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("moming");
case'd':printf("class");
}
40.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:
請?zhí)羁?/p>
#defineN4
voidrotate(inta[][])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];【】;a[j][i]=t;}
}
三、1.選擇題(20題)41.已知inta=1,b=3則a^b的值為
A.3B.1C.2D.4
42.以下所列的各函數(shù)首部中,正確的是______。
A.voidplay(vara:Integer,varb:Integer)
B.voidplay(inta,b)
C.voidplay(inta,intb)
D.Subplay(aasinteger,basinteger)
43.下列程序的執(zhí)行結(jié)果是______。point(char*pt);main(){charb[4]={'a','c','s','f'},*pt=b;point(pt);printf("%c\n",*pt);}point(char*p){p+=3;}
A.sB.cC.fD.a
44.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
45.若程序中定義了以下函數(shù):doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語句之后,則在調(diào)用之前應該對函數(shù)進行說明,以下選項中錯誤的說明是()。
A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
46.有以下程序main(){inta=3,b=4,c=5,d=2;if(a>B)if(b>C)printf("%d",d+++1);elseprintf("%d",++d+1);printf("%d\n",D);}程序運行后的輸出結(jié)果是
A.2B.3C.43D.44
47.能正確表示“當x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)||(X<=10)||(X>=100)||(x<=110)
C.(x>=1)&&(X<=10)||(x>=100)&&(x<=110)
D.(x>=1)||(x<=10)&&(x>=100)||(x<=110)
48.若有下面的說明和定義,則sizeof(structaA)的值是()struetaa{intr1;doubler2floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
49.有以下程序:#include<stdio.h>main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后的輸出結(jié)果是()。
A.77B.88C.810D.1010
50.若有如下說明:unions{chara[9]intb;floatc;}t;則下列敘述正確的是()
A.共用體變量t不能作為函數(shù)的參數(shù)
B.通過引用共用體變量名t可以得到成員的值
C.共用體變量t的地址和它的各成員的地址不同
D.共用體變量t所占的內(nèi)存長度等于它的各成員所占的內(nèi)存長度之和
51.以下程序的輸出結(jié)果是()fun(intx,inty,intz){z=x*x+y*y;}main(){inta=31;fun(5,2,a);print{("%d",a);}
A.0B.29C.31D.無定值
52.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。
A.不確定B.編譯錯誤C.gD.輸出null字符
53.有以下程序main(){inti=0,s=0;for(;;){if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;};printf("%d\n",s);}程序運行后的輸出結(jié)果是
A.10B.13C.24D.程序進入死循環(huán)
54.下列程序執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chararr[2][4];strcpy(arr[0],"you");strcpy(arr[1],"me");arr[0][3]='&';Printf("%s\n",arr);}
A.you&meB.youC.meD.err
55.若有條件表達式(exp)?a++:b--,則以下表達式中能完全等價于表達式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
56.變量a已被定義為整型,下列表達式有錯的是
A.a='A'+20B.a-='a'C.a=c+dD.a='c'+'d'
57.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。
A.10B.11C.12D.語法錯誤
58.有以下程序
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的運行結(jié)果是
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
59.C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個成員駐留在內(nèi)存中
60.判斷字符串s1是否大于字符串s2,應該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
四、選擇題(20題)61.
62.對于一個正常運行的C程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main函數(shù)結(jié)束.
C.程序的執(zhí)行總是從main函數(shù)開始、
D.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
63.
64.下列工具中為需求分析常用工具的是()。
A.PADB.BFDC.N-SD.DFD
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0,0B.1,0C.3,2D.1,2
66.
67.下列敘述中正確的是()。
A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結(jié)構(gòu)
B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況
C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況
D.循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定的
68.若x是int型變量,且有下面的程序片段:
上面程序片段的輸出結(jié)果是()。
A.
B.
C.
D.
69.有以下程序:
程序運行后的輸出結(jié)果是()。
A.3B.6C.9D.2
70.有以下程序
程序運行后的輸出結(jié)果是()。
A.6,2,3,4,5,B.2,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
71.關(guān)系數(shù)據(jù)庫管理系統(tǒng)所管理的關(guān)系是()。A.若干個二維表B.一個DBF文件C.一個DBC文件D.若干個DBC文件
72.在深度為7的滿二叉樹中,葉子結(jié)點的個數(shù)為______。A.32B.31C.64D.63
73.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
74.
75.以下程序的功能是
#include<stdio.h>
main()
{FILE*fp1;*fp2;
fp1=fopen("file1","r");
fp2=fopen("file2","w");
while(!feof(fp1))
fputc(fgetc(fp1),fp2);
fclose(fp1);
fclose(fp2);
}
A.將磁盤文件的內(nèi)容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
76.下列敘述中正確的是()。
A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)
B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D.以上三種說法都不對
77.(33)有以下程序段
inti,n;
for(i=0;i<8;i++)
{n=rand()%5;
switch(n)
{case1:
case3:printf("%d\n",n);break;
case2:
case4:printf("%d\n",n);continue;
case0:exit(0);
}
printf("%d\n",n);
}
以下關(guān)于程序段執(zhí)行情況的敘述,正確的是
A)for循環(huán)語句固定執(zhí)行8次
B)當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作
C)當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
D)當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行
78.
79.人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是()。
A.身份證號B.姓名C.性別D.年齡
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進行排序。插入法的基本方法是:先對字符串中的頭兩個元素進行排序,然后把第3個字符插入前兩個字符中,插入后前3個字符依然有序;再把第4個字符插入前三個字符中,待排序的字符串已
在主函數(shù)中賦予。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#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);
}
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,其功能是:將str所指字符串中除下標為偶數(shù)、同時ASCIl碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFGl2345,其中字符B的ASCIl碼值為偶數(shù),所在元素的下標為奇數(shù),因此必須刪除;而字符A的ASCIl碼值為奇數(shù),所在數(shù)組中的下標為偶數(shù),因此不應當刪除。依此類推,最后t所指的數(shù)組中的內(nèi)容應是ACEG。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidproc(char*str,chart[])
{
}
voidmain
{
charstr[100],t[100];
system("CLS");
printf("\nPleaseenterstringstr:");
scanf("%S",str);
proc(str,t);
printf("\nTheresultiS:%s\n",t);
參考答案
1.A根據(jù)C語言運算符的優(yōu)先級與結(jié)合性,先計算a/b,結(jié)果為l,再將a/b的結(jié)果與C做按位與運算,即l與2做按位與運算,其結(jié)果為0。
2.A[解析]B)與D)選項中取模運算符%的左右兩個操作數(shù)均應為整數(shù),所以B)、D)錯誤。C)選項中不能將x+z的值賦給表達式y(tǒng)*5.所以C)錯誤。
3.DC語句可以跨行來寫,但是必須以分號結(jié)束,所以A選項錯誤。C語言程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行,也可以不放在一行,所以C選項錯誤。故本題答案為D選項。
4.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
5.B
6.C解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實體集(記錄型)是樹中的結(jié)點,而樹中各結(jié)點之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。
7.A數(shù)據(jù)管理技術(shù)發(fā)展的蘭個階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng),即數(shù)據(jù)庫管理系統(tǒng)。
8.B
9.A解析:C語言的常量分為整型常量、實型常量和字符型常量。選項A屬于實型常量中的十進制小數(shù)形式的表示法,是合法的。
10.B宏定義在編譯程序時做了一個簡單的替換,所以B選項正確。故本題答案為B選項。
11.D
12.C
13.B在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值,A選項描述錯誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,D選項描述錯誤。故本題答案為B選項。
14.D
15.C題干中,循環(huán)的作用是將輸入的字符串轉(zhuǎn)化為大寫,getchar函數(shù)讀入一個字符,putchar函數(shù)輸出一個字符,當遇到‘#’字符結(jié)束?!皃utcha(++C);”,表示將字符變量c加1后輸出。當輸入“aBcDefG##”時,得到的結(jié)果是BCDEFGH。故本題答案為C選項。
16.A解析:選項A中(!a==1)&&(!b==0)→(!2==1)&&(!b==0)→(0==1)&&(!b==0)→0&&(!b==0)→0(&&右邊表達式(!b==0)被“短路”):選項B中(a<b)&&!c||1→(2<3)&&!4||1→1&&0||1→0||1→1;選項C中a&&b→2&&3→1;選項Da||b+b)&&(c-a)→2||(b+b)&&(c-a)→1(||右邊表達式(b+b)&&(c-a)被“短路”)。所以本題選A。
17.D解析:定義了一個指向一維數(shù)組的指針,該一維數(shù)組具有三個int型元素,按照C語言中二維數(shù)組的定義知,二維數(shù)組先按照行排列,再按照列排列,故選D。
18.D
19.D解析:從外面看只能看到對象的外部特性,而對象的內(nèi)部,即處理能力的實行和內(nèi)部狀態(tài),指的是對象的封裝性。
20.C
21.max==a[i].smax==a[i].s解析:該程序使用循環(huán)嵌套,第1個for語句的作用是找出最大值。第2個循環(huán)的作用是找出與max相等的成績,也即最高成績的學生,并存入b中。
22.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時,置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行人隊運算,這種情況稱為“上溢”。
23.選擇選擇解析:關(guān)系運算中,選擇運算是在指定的關(guān)系中選取所有滿足給定條件的元組,構(gòu)成一個新的關(guān)系,而這個新的關(guān)系是原關(guān)系的一個子集。
24.1721
25.元組元組解析:在關(guān)系型數(shù)據(jù)庫中,用二維表來表示關(guān)系,二維表的表名即關(guān)系名,二維表的行稱為關(guān)系的元組,二維表的列,稱為關(guān)系的屬性。
26.1616解析:滿二叉樹的葉子結(jié)點都在最后一層,即第4層,且第4層的結(jié)點達到最大數(shù),即25-1=16。
27.p=i;i>=pi<=Np=i;\r\ni>=p\r\ni<=N解析:本題主要考查了插入排序。由于程序中的數(shù)組在開始已經(jīng)按從小到的大順序排好。在插入時,首先要查到第一個大于待插入數(shù)的數(shù)組下標,即當待插入元素小于數(shù)組中當前元素時,記下數(shù)組的當前下標p,并結(jié)束循環(huán)。故第一空目的是為了記下數(shù)組下標,應填p=i;插入的第二部是將大于待插入元素的所有元素都向后移動一位,故在循環(huán)時,要從最后一個元素到第p個元素都要后移一位,因此第二空應填i>=p。最后一個循環(huán)是將N+1個元素都輸出,故最后一空應為i<=N。(注:本題有多種答案,以上僅提供一種)
28.x+=2
29.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。
30.調(diào)試調(diào)試
31.cc解析:該題考查以下兩個知識點:
(1)用一個指定的標識符(即名字)來代表一個字符串,它的一般形式為#define標識符字符串
(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應填c。
32.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應取外部變量的值13,因此輸出2。
33.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。
34.軟件工具軟件工具
35.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。
36.rowa[row][colum]row\r\na[row][colum]解析:指針變量作為函數(shù)參數(shù)及二維數(shù)組的一個典型算法——求最大值及其下標。通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標,colum的作用是用來記錄最大元素的列下標。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標,分別存放在變量row和colum中,根據(jù)題意,應該把行下標賦值給形參指針變量n指向的變量,把最大值a[row][colum]作為函數(shù)值返回。
37.*2*4*6*8**2*4*6*8*解析:程序中定義了一個字符數(shù)組a,并初始化為123456789,接著定義了一個指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個while循環(huán),此循環(huán)的作用是:當i為偶數(shù)時,將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*
38.pcpb或pbpcpcpa或papcpbpa或papbpc,pb或pb,pc\r\npc,pa或pa,pc\r\npb,pa或pa,pb
39.morningclassmorningclass解析:本題考查了兩個知識點:①“++、--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n=\'c\'時,執(zhí)行“case\'c\':”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行'case\'d\':”,輸出class,最終輸出結(jié)果為morningclass。
40.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:將矩陣轉(zhuǎn)置就是將行列互換,所以第一處應填j<=i,第二處應填a[i][j]=a[j][i]。
41.C解析:^是按位異或運算,如果對應位不同則結(jié)果為1,相同則為0。
42.C解析:除選項C項外,其他各項都沒有按照C語言中的函數(shù)定義規(guī)則定義函數(shù)。
43.D
44.B
\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。
\n
45.A解析:函數(shù)聲明是對所用到的函數(shù)的特征進行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達式進行檢測,以保證調(diào)用表達式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:
類型標識符函數(shù)名(類型標識符形參,…);
這些信息就是函數(shù)定義中的第一行的內(nèi)容。這里形參的名字是不重要的,重要的是類型標識符,函數(shù)聲明中也可以不寫形參名只寫該形參的聲明類型,但不能只寫形參名而不寫該形參的類型。本題中,選項A中doublemyadd(doublea,b),沒寫出形參b的類型。
46.A解析:本題考核的知識點是if-else語句的程序分析。我們首先看程序中if-else的匹配,由于C語言中規(guī)定else總是與最近的if搭配,因此程序中else與第二個訂搭配,即該if-else語句為第一個if語句的執(zhí)行部分,接著判斷第一個if后面括號里的表達式的值“a>b”為假('3>4'為假),因此不執(zhí)行后面if-else語句,程序?qū)?zhí)行下面的輸出語句輸出d,而d一直未被改變故為原來的值2,所以,4個選項中選項A符合題意。
47.C解析:本題考查邏輯與(&&)和邏輯或(||)運算符的使用。x>=1和x<=1O是邏輯與的關(guān)系,因此C語言表達式應寫成“(x>=1)&&(x<=10)”,x>=100和x<=11O也是邏輯與的關(guān)系,因此C語言表達式應寫成“(x>=100)&&(x<=110)”;[1,10]和[100,110]是邏輯或的關(guān)系,因此只要將前兩個表達式用邏輯或運算符連接起來即可,所以最后的表達式;(x>=1)&&(x<=10)||(x>=100)&&(x<=110)。
48.D
49.C解析:用a[]='abcdefg'對數(shù)組a進行初始化,是用一個字符串作初值。數(shù)組a的長度包括由系統(tǒng)加上的\'\\0\',因此是8。b[10]='abcdefg'只初始化了前7個元素,后3個元素為0(\'\\0\'),所以長度為10。
50.A
51.C
52.A解析:由于s[2][6]表示字符串已超出了數(shù)組s的表示范圍,在C中不會劉數(shù)組越界進行檢查,當數(shù)組越界時,會得到一個不確定的值。
53.D解析:程序中for循環(huán)中省略了判斷退出循環(huán)的表達式,for循環(huán)將由里面的break語句控制是否結(jié)束循環(huán),第一次循環(huán),第一條if語句后面括號里的表達式的值為假,所以該if語句不被執(zhí)行,執(zhí)行下面的第二條語句,此時該if語句表達式的值為假,所以該if語句也不執(zhí)行,執(zhí)行下面的語句,i++、s+=i,執(zhí)行完畢后i的值為1,s的值為1,如此循環(huán),直到第三次之后i,s的值都為3,繼續(xù)第四次循環(huán),顯然這時滿足第一條if語句的,執(zhí)行后面的continue該次循環(huán)結(jié)束從頭開始下次循環(huán),而i的值為3一直沒有改變,所以第一條語句始終要執(zhí)行,因此for循環(huán)將一直循環(huán)下去。
54.A解析:函數(shù)strcpy的功能是字符串拷貝,函數(shù)原型為char*strcpy(char*strl,char*str2),作用是將字符串2復制到字符串1中去。二維數(shù)組可以看做是一種特殊的一維數(shù)組,它的每一個元素又是一個一維數(shù)組。本題arr可看做是一個具有兩個元素arr[0]和arr[1]的一維數(shù)組,每個元素又是一個包含四個元素的一維數(shù)組。
55.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式17表達式2:表達式3其求解順序是:先求解表達式1,若為非O(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值。若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。并且注意++、--的用法。
56.C
57.D解析:C語言中有基本的算術(shù)運算符(+、-、*、/)還包括自增自減運算符(++、-),在C語言解析表達式時,它總是進行貪婪咀嚼,這佯,該表達式就被解析為i+++++i,顯然該表達式不合C語言語法。
58.D解析:本題考查switch語句,首先,x=1符合條件case1,執(zhí)行switch(y)語句,y=0符合case0語句,執(zhí)行a++并跳出switch(y)語句,此時a=1。因為case1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。
59.A解析:C語言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。
60.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當str1<str2時,返回值為負數(shù);當str1=str2時,返回0;當str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。
61.A
62.C任何一個C語言程序的執(zhí)行都是從主函數(shù)main開始,至主函數(shù)main結(jié)束。故本題答案為C選項。
63.A
64.D需求分析常用的工具有4種:數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判斷樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N—S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。
6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 華帝櫥柜合同范例
- 組裝電腦銷售合同范本
- 單位電路維修合同范本
- 鋼結(jié)構(gòu)廠房拆除合同范本
- 吊頂線型燈采購合同范例
- 合同范本商務
- 變更臨時租賃合同范本
- 交車合同范本
- 倒運費合同范本
- 出售自用冷庫合同范本
- 藥房品種類別及數(shù)量清單
- 玻璃工藝學第4章 玻璃的性質(zhì)
- 四川省藥械集中采購及醫(yī)藥價格監(jiān)測平臺操作指引
- 機關(guān)檔案管理工作培訓PPT課件
- 大學生安全教育課件(ppt共41張)
- 初中物理人教版八年級下冊 第1節(jié)牛頓第一定律 課件
- 網(wǎng)站培訓內(nèi)容trswcm65表單選件用戶手冊
- 監(jiān)理大綱(范本)
- 空調(diào)系統(tǒng)維保記錄表格模板
- 打印版-圓與二次函數(shù)綜合題精練(帶答案)
- 工程結(jié)算書標準
評論
0/150
提交評論