




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年遼寧省大連市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序運行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應在程序空缺處填入的正確選項是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
2.有以下程序:#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=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
3.有如下定義:inta[5],*p;p=a;則下列描述錯誤的是()。
A.表達式p=p+1合法的B.表達式a=a+1是合法的C.表達式p-a是合法的D.表達式a+2是合法的
4.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)
5.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在用戶標識符中的是()。
A.大寫字母B.下劃線C.數(shù)字D.連接符
6.在n個結(jié)點的線性表的數(shù)組實現(xiàn)中,算法的時間復雜度是O(1)的操作是()。
A.訪問第i(1<=i<=n)個結(jié)點和求第i個結(jié)點的直接前驅(qū)(1<i<=n)
B.在第i(1<=i<=n)個結(jié)點后插入一個新結(jié)點
C.刪除第i(1<=i<=n)個結(jié)點
D.以上都不對
7.當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______。
A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值
8.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.3,7,8,9,10,6,5,4,2,1,
B.10,9,8,7,3,1,2,4,5,6,
C.10,9,8,7,6,1,2,3,4,5,
D.1,2,3,4,5,10,9,8,7,6,
9.算法的時間復雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
10.有以下程序:#include<stdio.h>main(){structSTU{charname[9];charsex;doublescore[2];};structSTUa={“Zhao”,‘m’,85.0,90.0},b={“Qian”,‘f’,95.0,92.0};b=a;printf(“%s,%c,%2.0f,%2.0f\n”,,b.sex,b.score[0],b.score[1]);}程序的運行結(jié)果是()。
A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,92
11.設R是一個2元關系,有3個元組,S是一個3元關系,有3個元組。如T=R×S,則T的元組的個數(shù)為()。A.6B.8C.9D.12
12.下面程序的運行結(jié)果是
#include<stdio.h>
main()
{inta=28,b;
chars[10],*p;
p=s;
do{b=a%16;
if(b<10)*p=b+48;
else*p=b+55;
p++;a=a/5;}while(a>0);
*p=′\0′;puts(s);}
A.10B.C2C.C51D.\0
13.以下不能對二維數(shù)組a進行正確初始化的語句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
14.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結(jié)束條件是
A.P的值不等于12345并且n的值小于3
B.P的值等于12345并且n的值大于等于3
C.P的值不等于12345或者n的值小于3
D.P的值等于12345或者n的值大于等于3
15.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
16.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.hAppychristmAs
B.happychristmas
C.HAppyCHrIstmAs
D.HAPPYCHRISTMAS
17.一棵二叉樹共有25個結(jié)點,其中5個是葉子結(jié)點,則度為l的結(jié)點數(shù)為()。
A.16B.10C.6D.4
18.有以下程序
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);printf("%s,%s\n",ss,aa);
}
程序的運行結(jié)果是
A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
19.下列不屬于軟件工程的3個要素的是
A.工具B.過程C.方法D.環(huán)境
20.若各選項中所用變量已正確定義,函數(shù)fun中通過return語句返回一個函數(shù)值,下列選項中錯誤的程序是()。
A.main(){…x=fun(2,10);…}floatfun(inta,intB){…}
B.floatfun(inta,intB){…}main(){…x=fun(i,j);…}
C.floatfun(int,int);main(){…x=fun(2,10);…}floatfun(inta,intB){…}
D.main()…{floatfun(inti,intj);…x=fun(i,j);…}floatfun(inta,intB){…}
二、2.填空題(20題)21.以下程序運行后的輸出結(jié)果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
22.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
23.設有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對結(jié)構體成員a的引用方法可以是abc.a和p_abc【】a。
24.本程序用改進冒泡法對數(shù)組a[n]的元素從小到大排序,請在程序空白處填空。
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
25.以下程序運行后的輸出結(jié)果是______。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
26.以下程序運行后的輸出結(jié)果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
27.以下說明語句中,【】是結(jié)構體類型名。
typedefstruct
{intn;
charch[8];
}PER;
28.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。
29.以下程序運行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
30.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",1);
}
31.棧中允許進行插入和刪除的一端叫做______。
32.若有如下結(jié)構體說明:
structSTRU
{inta,b;charc:doubled;
stmctSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構體類型。【】t[20]
33.下列程序的輸出結(jié)果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
34.請用位運算實現(xiàn)下述目標(設16位二進制數(shù)的最低位為零位):
(1)輸出無符號正整數(shù)m的第i個二進制位的數(shù)值。
(2)將m的第i個二進制位置1,其余的位不變,然后輸出m。
#include"stdio.h"
【】
main()
{
unsignedk,i,m=0;
scanf("%d%d",&m,&i);
k=【】;
printf("%d\n",k);
k=pow(2,i);
m=【】;
printf("%d\n",m);
}
35.有一個已排好序的數(shù)組,今輸入一個數(shù),要求按原來的順序規(guī)律將它插入到數(shù)組中。算法是:假設排序順序是從小到大,對輸入的數(shù),檢查它在數(shù)組中哪個數(shù)之后,然后將比這個數(shù)大的數(shù)順序后移一個位置,在空出的位置上將該數(shù)插入。請在程序中的空白處填上一條語句或一個表達式。
#defineN100
main()
{floata[N+1],x;
inti,p;
for(i=0;i<N;i++)
scanf("%f"&a[i]);
scanf("%f",&x);
for(i=0,p=N;i<N;i++)
if(x<a[i])
{【】;
break;}
for(i=N-1;【】;i-)
a[i+1]=a[i];
a[p]=x;
for(i=0;【】;i++)
{printf("%8.2f",a[i]);
if(i%5=0)
printf("\n");
}
}
36.以下程序的功能是:處理由學號和成績組成的學生記錄,N名學生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構體數(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);
}
37.以下程序運行后輸出的結(jié)果是【】。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
38.在雙鏈表中每個結(jié)點有兩個指針域:一個指向【】,另一個指向【】。
39.診斷和改正程序中錯誤的工作通常稱為【】。
40.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.C程序由函數(shù)組成
B.C程序由主函數(shù)構成
C.C程序由函數(shù)和過程構成
D.在C程序中無論是整數(shù)還是實數(shù),都可以正確無誤的表示出來
42.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關系
43.如果文件1包含文件2,文件2中要用到文件3的內(nèi)容,而文件3中要用到文件4的內(nèi)容,則可在文件1中用三個#include命令分別包含文件2、文件3和文件4。在下列關于這幾個文件包含順序的敘述中,正確的一條是()
A.文件4應出現(xiàn)在文件3之前,文件3應出現(xiàn)在文件2之前
B.文件2應出現(xiàn)在文件3之前,文件3應出現(xiàn)在文件4之前
C.文件3應出現(xiàn)在文件2之前,文件2應出現(xiàn)在文件4之前
D.出現(xiàn)的先后順序可以任意
44.若定義了以下函數(shù);voidsub(……){……*t=(int*)malloc(10*sizeof(int));……}其中t是該函數(shù)的形參,要求通過t把動態(tài)分配存儲單元的地址傳回主調(diào)函數(shù),則形參t的正確定義應該是()
A.int*tB.int**tC.long**tD.long*t
45.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
46.下列程序的輸出結(jié)果是()。#inelude<stdio.h>main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}
A.4B.22C.24D.46
47.下面程序的輸出結(jié)果是_______。unionun{inta[4];longb;charc[6];}main(){unionunu;printf("%d%d",sizeof(u),sizeof(uA));}
A.82B.88C.188D.182
48.請閱讀以下程序:#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
49.設有以下定義的語句,則*(*(p+2)+1)的值為______。inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;
A.10B.30C.60D.40
50.閱讀下面程序,則程序段的功能是#include"stdio.h"main(){intc[]={23,1,56,234,7,0,34},i,j,t;for(i=1;i<7;i++){t=c[i];j=i-1;while(j>=0&&t>c[j]){c[j+1]=c[j];j--;}c[j+1]=t;}for(i=0;i<7;i++)printf("%d",c[i]);putchar('\n');}
A.對數(shù)組元素的升序排列B.對數(shù)組元素的降序排列C.對數(shù)組元素的倒序排列D.對數(shù)組元素的隨機排列
51.能將高級語言程序轉(zhuǎn)換成目標語言程序的是______。
A.調(diào)試程序B.解釋程序C.編譯程序D.編輯程序
52.下面程序的文件名為t.exe,在DOS下輸入的命令行參數(shù)為:ttomeetme<回車>
則程序輸出的結(jié)果是
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);}
A.3B.4C.2D.以上答案都不正確
53.在下列選項中,沒有構成死循環(huán)的程序段是()。
A.inti=100;for(;;){i=i%10+1;if(i>10)break;}
B.while(1);
C.intk=0;do{++k;}while(k<=10);
D.ints=12;while(s);--s;
54.運行以下程序后,如果從鍵盤上輸入6514<回車>,則輸出結(jié)果為______。main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}
A.m=3B.m=2C.m=1D.m=0
55.有以下程序段
charch;intk;
ch=′a′;k=12;
printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
56.下面程序的輸出結(jié)果是()main(){inty=9;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}
A.741B.852C.963D.875421
57.有以下程序:#include<stdio.h>voidswap(char*x,ehar*y){chart;t=*x;*x:*y;*y=t;main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。
A.123,abeB.abe,123C.1bc,a23D.321,cba
58.下列有關數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關系C.數(shù)據(jù)庫是一個結(jié)構化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
59.以下只有使用時才為該類型變量分配內(nèi)存的存儲類型說明是()
A.auto和static
B.auto和register
C.register和static
D.extern和register
60.下列敘述中正確的是()。
A.一個算法的空間復雜度大,則其時間復雜度也必定大
B.一個算法的空間復雜度大,則其時間復雜度必定小
C.一個算法的時間復雜度大,則其空間復雜度必定小
D.上述三種說法都不對
四、選擇題(20題)61.下面屬于黑盒測試方法的是()。
A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋
62.
63.下列關于棧的描述中錯誤的是()。
A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針
64.以下選項中,能用作用戶標識符的是()。A._0_B.8—8C.voidD.unsigned
65.
66.
有以下程序:
fun(intx,inty){return(x+y);)
main
{inta=1,b=2,c=2,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的結(jié)果是()。
A.6B.7C.8D.9
67.有以下程序
#include"stdio.h"
voidfun(int*a,int*b)
{intc=20,d=20;
*a=c/3;
b=d/5;}
main()
{inta=3,b=5;
fun(&a,&b);
printf("%d,%d\n",a,b);
}
程序的運行結(jié)果是
A.6,5B.5,6
C.20,25D.3,5
68.(17)軟件需求分析階段的工作,可以分為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()
A.階段性報告
B.需求評審
C.總結(jié)
D.都不正確
69.以下敘述中正確的是
A.C程序的基本組成單位是函數(shù)B.C程序中的每一行只能寫一條語句
C.main()函數(shù)必須放在其他函數(shù)之前D.C語句必須在一行內(nèi)寫完
70.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內(nèi)模式和外模式的語言為()。
A.CB.BasicC.DDLD.DML
71.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應該是
A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)
72.交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。
A.&B.^C.D.E.F.~
73.設變量a、b、c、d和y都已正確定義并賦值。若有以下if語句
if(a<b)
if(c==d)y=0;
Elsey=1;
該語句所表示的含義是()。
A.
B.
C.
D.
74.
75.數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義和數(shù)據(jù)的物理存取構建的語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
76.下列選項中不屬于結(jié)構化程序設計原則的是()。
A.可封裝B.自頂向下C.模塊化D.逐步求精
77.
78.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構
C.循環(huán)隊列是非線性結(jié)構
D.循環(huán)隊列是一種邏輯結(jié)構
79.
80.C源程序中不能表示的數(shù)制是()。
A.十六進制B.八進制C.十進制D.二進制
五、程序改錯題(1題)81.給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值增加10倍。修改其中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構。試題程序:
六、程序設計題(1題)82.請編寫函數(shù)proc,它的功能是計算:s=(In(1)4+ln(2)4+ln(3)+…+In(m))0.5
在C語言中可調(diào)用log(n)函數(shù)求ln(n)。
例如,若m的值為30,則proc函數(shù)值為8.640500。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#inclllde<stdio.h>
#include<math.h>
doubleproc(intm)
{
}
voidmain
{
system("CLS");
printf("%f\n",proc(30));
}
參考答案
1.B解析:考查函數(shù)指針的使用方法??梢允褂煤瘮?shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實參表列)。
2.Bcase常量表達式只是起語句標號作用,并不進行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的case語句,就從此case子句執(zhí)行下去,不再進行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)層“switch(y)”時只執(zhí)行了“a++;”,此時a的值為1,然后執(zhí)行外層case2語句的“a++;b++;”,a值為2,b值為1。故本題答案為B選項。
3.B
4.B通過—維數(shù)組名或指向維數(shù)組元素的指針來引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價的。這是一種運算符之間的等價轉(zhuǎn)換,就好像a-(b-C)等價于a-b+c一樣。知道了這種轉(zhuǎn)換,我們可以將之擴展到二維數(shù)組甚至任意維數(shù)組上來。因為[]運算符的結(jié)合性是從左至右的,所以w[i][j]等價于(w[i][j],此時可以先將任意一個[]運算符轉(zhuǎn)換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時轉(zhuǎn)換:*(*(w+i)+j)。上述幾種形式都完全等價于w[i][j]。選項A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項B小,因為[]運算符的優(yōu)先級高于*運算符,所以*(w+1)[4]等價于*((w+1)[4]等價于*(*((w+1)+4)),即*(*(w+5)+0),它等價于w[5][0],很明顯它超過數(shù)組的范圍了,故不正確。選項C等價于w[1][0],是下確的。選項D中,&w[0][0]是數(shù)組w第1個元素的地址,它等價于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個數(shù),然后再除以這個數(shù)一樣。所以,&w[0][0]等價于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價于w[0][1],這個也是合法的。綜上所述,本題應該選擇B。
5.DC語言只符由字母、數(shù)字、下劃線組成,且第1個字符必須是字母或下劃線,所以D選項中的連接符不合法。故本題答案為D選項。
6.A
7.B解析:當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:
①形參定義成數(shù)組;
②形參定義成可變長數(shù)組:
③形參定義為指針變量。
8.B程序中函數(shù)fun的功能是將數(shù)組a的n個元素,按照flag的值進行排序:當flag為0時,升序排列;當flag為1時,降序排列。main函數(shù)中定義數(shù)組c,初始化10個元素的值。第1次調(diào)用函數(shù)fun,\nflag為1,即將c的下標為0開始的5個元素降序排列。第2次調(diào)用函數(shù)fun\n,flag為0,將c的下標為5開始的5個元素升序排列。所以輸出數(shù)組e的元素為10,9,8,7,3,1,2,4,5,6。本題答案為B選項。
9.C解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數(shù)來度量算法的時間復雜度。所以,本題正確答案為C。
10.B在main函數(shù)中將結(jié)構體變量a賦值給變量b。輸出結(jié)構體變量b的值為:Zhao,m,85,90。故本題答案為8選項。
11.CC。R為n元關系,有P個元組S為m元關系,有q個元組。兩個關系笛卡兒積是一個n+m元的關系,元組個數(shù)是q×p。所以T的元組的個數(shù)為9個。
12.C解析:考查用字符指針處理字符串的方法。語句'p=s;'是使指針p指向字符數(shù)組s。*p則引用了p所指位置的數(shù)組元素。通過指針來引用一維數(shù)組元素。
13.C解析:關于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個數(shù)與數(shù)組元素的個數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時,系統(tǒng)將自動給后面各行的元素補初值0;③在給二維數(shù)組賦初值時可以不用行花括號對。選項C)應該是inta[3][2]={{1,2},{3,4},{5,6,}};
14.D解析:本題考查的知識點是do-while循環(huán)結(jié)構循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點:
先執(zhí)行語句,后判斷表達式。所以,無論一開始表達式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點與while不同,
如果do-while語句循環(huán)體部分是由多個語句組成,則必須用花括號括起來,使其形成復合語句。
C語言中的do—while語句是在表達式“真”時重復執(zhí)行循環(huán)體。
在本題中,循環(huán)執(zhí)行判斷條件為while后面括號里的表達式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結(jié)束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項A的意思是:p的值不等于12345并且n的小于3和while后面括號里的表達式等價是循環(huán)執(zhí)行的條件而不是循環(huán)結(jié)束的條件,所以選項A不正確;選項B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結(jié)束的條件一個子集,所以選項B不正確;選項C的意思是:p的值不等于12345或者n的值小于3前一半是結(jié)束條件的子集,后一部分不是結(jié)束條件,所以選項C不正確;選項D描述的意思是:p的值等于12345或者你的大于等于3是結(jié)束條件的子集,所以選項D滿足題意。所以4個選項中D正確。
15.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數(shù)初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(shù)(某字符的ASCII碼值)。選項C定義的初始值表達式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。
16.C程序定義一個字符數(shù)組b和一個字符變量k。for循環(huán)通過循環(huán)變量k,遍歷數(shù)組b中的各個字符,通過if語句判斷當前下標為k的字符的ASCII值與字符'm'的ASCII值的大小,ASCII值小于‘m’的ASCII值的字符改成大寫字母(b[k]=b[k]-'a'+'A'),然后輸出b[k]。在字符串“happychristmas”中,ASCII值小于'm'的字符有h,a,c,h,i,a,所以程序輸出:HAppyCHrIstmAs。本題答案為C選項。
17.A根據(jù)二叉樹的性質(zhì),n=n0+n1+n2(n表示總結(jié)點數(shù),n0表示葉子結(jié)點數(shù),nl表示度數(shù)為1的結(jié)點數(shù),n2表示度數(shù)為2的結(jié)點數(shù)),而葉子結(jié)點數(shù)總是比度數(shù)為2的結(jié)點數(shù)多1,所以n2=n1-1=5-1=4,而n=25,所以nl=n-n0-n2=25-5-4=16。
18.D解析:本題中fun函數(shù)實現(xiàn)了字符串函數(shù)strcat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個復制到字符串ss的末尾處。
19.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
20.A在調(diào)用函數(shù)時,應對其進行說明。A選項中,調(diào)用時沒有對函數(shù)進行說明。B、C選項中,被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,不用說明。D選項中,在主函數(shù)中對被調(diào)用函數(shù)的返回值類型進行了說明。故本題答案為A選項。
21.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
22.參照完整性參照完整性
23.->->解析:結(jié)構變量abc有成員a,并有指針pabc指向結(jié)構變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。
24.n-1jn-1\r\nj解析:此題采用了do…while循環(huán)內(nèi)嵌for循環(huán)的雙層循環(huán)結(jié)構來實現(xiàn)了數(shù)組元素的排序。數(shù)組元素通過首地址和數(shù)組下標的方式來引用的。
25.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,pnntf函數(shù)輸出1,然后i的值加1,比較i<4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
26.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數(shù)中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然后遇到breake語句,退出switch語句;當i=10,i/10=1,執(zhí)行switch語句中default分支,使k和n的值各加1,變?yōu)?和1,退出switch語句:當i=11時,i/10=1,執(zhí)行switch語句中default分支,k和n的值各加1變,為2和3,退出switch語句,循環(huán)結(jié)束。故該空格處應該填132。
27.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構體類型,此時,也可以用PER來定義變量。
28.概念(或概念級)概念(或概念級)
29.45994599解析:要注意每條證語句后面是三條語句,而不是一條語句。執(zhí)行第一條if語句時,條件表達式不成立,執(zhí)行a=c;c=t;,此時a=5,c=99;執(zhí)行第二條if語句時,條件表達式成立,執(zhí)行t=b;b=a;a=t;交換a,b的值,輸出結(jié)果為4,5和99。
30.77解析:程序中經(jīng)過宏替換后,表達式t=MAX(a+b,c+d)*10變?yōu)閠=(a+b)>(c+d)?(a+b):(c+d)*10。因為(a+b)>(c+d)為真,所以t=(a+b),輸出結(jié)果為7。
31.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
32.structSTRUstructSTRU解析:結(jié)構體類型是構造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構體類型的定義:
struct結(jié)構體類型名
{
成員項表;
};
定義結(jié)構體變量的的形式為:
struct結(jié)構體類型名變量1,變量2,……
其中變量包括:一般變量、指針變量、數(shù)組變量等。
33.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
34.#include"math.h"m>>i&1m|k
35.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。(注:本題有多種答案,以上僅提供一種)
36.max==a[i].smax==a[i].s解析:該程序使用循環(huán)嵌套,第1個for語句的作用是找出最大值。第2個循環(huán)的作用是找出與max相等的成績,也即最高成績的學生,并存入b中。
37.2121解析:外層switch語句后面括號里的x的值為1,所以執(zhí)行從casel:后面的語句開始執(zhí)行,而cascl:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case0:開始執(zhí)行即執(zhí)行a++,這時a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行casel:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變?yōu)?。所以最后輸出的a和b的值為21。
38.前趨結(jié)點后繼結(jié)點前趨結(jié)點\r\n后繼結(jié)點
39.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
40.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
41.A解析:本題涉及C語言最基本的兩個知識點:①C程序是由函數(shù)構成的,有且僅有一個主函數(shù),也可以有其他的函數(shù);②整數(shù)在允許的范圍內(nèi)可以準確無誤的表示出來,但計算機的存儲能力有限,不能表示無限精度的實數(shù)。
42.CC?!窘馕觥繑?shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五個部分組成,可見DB和DBMS都是DBS的組成部分。
43.A
44.B
45.C解析:本題考核的知識點是字符型變量的基本概念。用單引號括起來的一個字符稱為字符常量,而選項B和選項D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項B和選項D不正確。因為在C語言中,字符常量在存儲時,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項C正確.而選項A中,給字符型變量賦值時只能賦一個字符,而9,7作為字符時為兩個字符且必須分別為單引號括起來,故選項A不正確,所以,4個選項中選項C符合題意。
46.C解析:指針變量p指向數(shù)組a的首地址,并把指針變量p的地址賦給指向指針的指針變量k。第一個printf函數(shù)輸出2,第二個printf函數(shù)輸出4。
47.B解析:sizeof函數(shù)計算已知類型所占的字節(jié)數(shù)。共用體變量所占的內(nèi)存長度等于最長的成員的長度。
48.A解析:switch語句的執(zhí)行過程為:進入switch結(jié)構后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時則執(zhí)行default后面的語句。注意:if語句及if嵌套語句的使用。
49.C
50.B解析:讀懂兩個循環(huán)的關系,是解這個題目的關鍵,本題的第一個for循環(huán)的作用是實現(xiàn)對數(shù)組元素的遍歷,第二個循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個語句是控制排序的關鍵語句,它即實現(xiàn)了比較兩個元素大小的作用,又實現(xiàn)了元素向后移動的作用,不斷地把大的數(shù)據(jù)向前移動,直到找到一個比它小的,或到數(shù)據(jù)的上界為止。
51.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執(zhí)行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。
52.B解析:argc中存入的是命令行中字符串的個數(shù)。argv是一個指向字符型的指針數(shù)組的指針。
53.C
54.C解析:分析程序可知,該程序?qū)崿F(xiàn)的功能是對數(shù)m,n求其最大公約數(shù)。在本題中m與n的值分別為65與14,其最大公約數(shù)為1,故其輸出結(jié)果為m=1。
55.D解析:考查printf函數(shù)的相關知識。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和C)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。所以選項D)為正確答案。
56.B
57.C解析:C語言中,字符串常量在內(nèi)存中是以字符數(shù)組的形式存放的,形參字符指針x和y指向的是各字符串的首地址,在swap函數(shù)中,*x與*y交換的是字符串的第一個字符,即字符'a'與'1'的交換,而字符串中其他字符保持不變。
58.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應用數(shù)據(jù)的集成,并可被各個應用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。
59.B
60.D解析:時間復雜度是指一個算法執(zhí)行時間的相對度量;空間復雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復雜度和空間復雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。
61.A黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅(qū)動、路徑測試等,主要用于軟件驗證。
62.C
63.B
\n棧是線性表的一
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國新式茶飲行業(yè)市場競爭格局及投資方向研究報告(智研咨詢)
- 七年級下冊《三元一次方程組的解法》課件與練習
- 構建平臺用戶個人信息保護制度
- 2025年衛(wèi)星數(shù)據(jù)采集系統(tǒng)項目合作計劃書
- 農(nóng)業(yè)技術研發(fā)推廣合作協(xié)議
- 裝修房屋委托合同
- 餐飲業(yè)食品安全保障與事故免責協(xié)議書
- 2025年工業(yè)廢氣凈化裝置項目發(fā)展計劃
- 2025年微球載體材料項目發(fā)展計劃
- 醫(yī)療美容服務項目風險告知與免責協(xié)議
- 委托書范本授權代理人辦理房屋租賃解除手續(xù)
- 2024CSCO胃腸間質(zhì)瘤診療指南解讀
- 4-6戴維南定理(部編)課件
- DZ∕T 0356-2020 海洋重力測量技術規(guī)范
- 天然氣處理廠工藝及自控
- 高鐵乘務人員形體訓練全套教學課件
- 基礎護理學智慧樹知到期末考試答案章節(jié)答案2024年德州學院
- (高清版)JTGT 4320-2022 公路車輛動態(tài)稱重檢測系統(tǒng)技術規(guī)范
- 小學思政課建設實施方案及措施
- 團餐服務培訓資料
- 喉全切除術手術配合
評論
0/150
提交評論