版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年內(nèi)蒙古自治區(qū)烏海市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>voidf1(char*a,charb){charc;c=*a;*a=b;b=c;}voidf2(chara,charb){charc;c=a;a=b;b=c;}voidf3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}main(){chart1,t2;t1=‘A’;t2=‘B’;f3(&t1,&t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f2(t1,t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f1(&t1,t2);putchar(t1);putchar(t2);printf(“\n”);}程序運行后的輸出結(jié)果是()。
A.ABBABBB.BAABBBC.BABABAD.BABAAB
2.以下程序運行后的輸出結(jié)果是()。
A.2B.1C.3D.O
3.以下能正確定義一維數(shù)組的選項是()。
A.inta[5]=(0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5);
C.chara={'A','B','C'};
D.inta[5]="0123";
4.下列關(guān)于字符串的說法中錯誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志
B.'\0'作為標(biāo)志占用存儲空間,計入串的實際長度
C.在表示字符串常量的時候不需要人為在其末尾加入'\0'
D.在C語言中,字符串常量隱含處理成以'\0'結(jié)尾
5.要求當(dāng)A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達式的值為“假”,以下不滿足要求的表達式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)
6.以下程序的輸出結(jié)果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
7.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}運行時,若輸入123450<回車>,由輸出結(jié)果是()。A.6566456B.66656C.66666D.6666656
8.以下選項中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
9.
下列程序的輸出結(jié)果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(一1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
10.設(shè)有定義“intx=2;”,以下表達式中,值不為6的是()。
A.2*x,x+=2B.x++,2*xC.x*=(1+x)D.x*=x+1
11.下列程序的輸出結(jié)果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
12.設(shè)有如下定義:int(*ptr);則以下敘述中正確的是()。
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針
13.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(fnnc(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。
A.12B.13C.14D.15
14.下列程序的輸出結(jié)果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112
15.
16.設(shè)無向圖G中的邊的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},則從頂點a出發(fā)進行深度優(yōu)先遍歷可以得到的一種頂點序列為()。
A.aedfcbB.acfebdC.aebcfdD.aedfbc
17.若有說明:inta[][3]={1,2,3,4,5,6,7};則a數(shù)組第一維的大小是
A.2B.3C.4D.無確定值
18.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti,S=0;for(i=1;i<10;i++)if(!(i%2)&&!(i%3))s+=i;printf("%d\n",s);}A.4B.39C.45D.6
19.軟件測試的目的是()。
A.評估軟件可靠性B.發(fā)現(xiàn)并改正程序中的錯誤C.改正程序中的錯誤D.發(fā)現(xiàn)程序中的錯誤
20.
二、2.填空題(20題)21.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
則程序運行后的輸出結(jié)果是【】。
22.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括五個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、【】和處理過程。
23.以下程序的運行結(jié)果是【】。
#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);
}
24.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printfC%d\n",b=a);
}
25.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。
26.若輸入3、4、5,程序的輸出結(jié)果為【】。
#include"math.h"
main()
{floata,b,c,s,area;
scanf("%f,%f,%f",&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f",a,b,c,s);
printf("area=%7.2f\n",area);
}
27.表達式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。
28.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),線性表、棧和隊列都屬于【】。
29.以下程序運行后的輸出結(jié)果是【】。
main()
{
chara[]="Language",b[]"Programe";
char*p1,*p2;
intk;
p1=a,p2=b;
for(k=0;k<=7;k++)
if(*(p1+k==*(p2+k))printf("%c",*(p1+k));
}
30.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置為A',例如:
123415913
5678261014
當(dāng)A=9101112則A'=371115
13141516481216
請?zhí)羁铡?/p>
#defineN4
voidrotate(inta[][NJ)
{
inti,j,t;
for(i=0;i<N;i++)
for(j=0;______;j++)
{
t=a[i][j];
______;
a[j][i]=t;
}
}
31.下面程序的運行結(jié)果是【】。
#inelude<stdio.h>
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);printf("%d\n",s);
}
32.下列程序運行后的輸出的結(jié)果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運行程序,輸入HOWAREYOU。
33.以下程序運行后的輸出結(jié)果是【】。
main()
{
charc1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
34.以下程序運行后的輸出結(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]);
}
}
35.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且函數(shù)fun為void型,請寫出函數(shù)fun的首部【】。要求形參名為b。
main()
}doubles[10][22];
intn;
┆
fun(s);
┆
}
36.一個項目有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于【】的聯(lián)系。
37.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】
38.以下程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
printf("\n");}
39.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
40.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組b。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4=0)printf("\n");
printf("%3d",b[i]);
}
}
三、1.選擇題(20題)41.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
42.若有以下說明和語句:structst{intn;char*ch;};structsta[3]={5,"abc",7,"def",9,"ghk"},*p=a;則值為6的表達式是______。
A.p++->nB.p->n++C.(*p).n++D.++p->n
43.判斷char型變量c1是否為小寫字母的正確表達式為()。
A.'a'<=c1<='z'
B.(c1>=A)&&(c1<=z)
C.('a'>=c1||('z'<=c1)
D.(c1>='a')&&(c1<='z')
44.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。main(){inti,j=50,a[]={7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}
A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
45.以下程序的功能是:建立一個帶有頭結(jié)點的單向鏈表,并將存儲在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個結(jié)點中,請?zhí)羁铡?include<stdlib.h>stuctnode{chardata;struetnode*next;};stntctnode*CreatList(char*s){struetnode*h,*p,*q;h=(structnode*)malloc(sizeof(structnode));p=q=h;while(*s!='\0'){p=(structnode*)malloc(sizeof(structnode));p->data=()q->next=p;q=p;a++;p->next='\0';returnh;}main(){charstr[]="linklist";struetnode*head;head=CreatList(str);
A.*sB.sC.*s++D.(*s)++
46.設(shè)有下面的程序段:chars[]="china";char*p;p=s;則下列敘述正確的是
A.s和p完全相同
B.數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相同
C.s數(shù)組長度和p所指向的字符串長度相等
D.*p與s[0]相等
47.下列敘述錯誤的是()。
A.在C語言中的保留字必須小寫
B.變量的存儲類型決定了變量的存儲位置及其生存期
C.宏定義以#define開頭,行末必須加分號
D.在C語言中的注釋行可以出現(xiàn)在程序的任何位置
48.下述函數(shù)功能是_______。intfun(char*x){char*y=x;while(*y++);returny-s-1;}
A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面
49.請選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}sub(s,y)int*s,y;{staticintt=3;y=s[t];t--;}
A.1234B.4321C.0D.4444
50.設(shè)變量已正確定義,則下列能正確計算f=n!的程序段是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
51.閱讀下列程序段,則程序的輸出結(jié)果為#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}
A.3B.5C.6D.8
52.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是A.++x,y=x--B.x+1=yC.x=x+10=x+yD.double(x)/10
53.執(zhí)行下面程序段的結(jié)果是()。intx=23;do{printf("%2d",x--);}while(!x);
A.輸出321B.輸出23C.不輸出任何內(nèi)容D.陷入死循環(huán)
54.已知一個文件中存放若干工人檔案記錄,其數(shù)據(jù)結(jié)構(gòu)如下:structa{charnumber[100];intage;floatp[6];};定義一個數(shù)組:structanumber[10];假定文件已正確打開,不能正確地從文件中讀入10名工人數(shù)據(jù)到數(shù)組b中的是()。
A.fread(b,sizeof(structA),10,fp);
B.for(i=0;i<10;i++)fread(b[i],sizeof(structA),1,fp);
C.for(i=0;i<10;i++)fread(b+i,sizeof(structA),1,fp);
D.for(i=0;i<5;i+=2)fread(b+i,sezeof(structA),2,fp);
55.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0‖k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
56.以下程序中函數(shù)setup的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址:#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運行時依次輸入:abcd、abba和abc3個字符串,則輸出結(jié)果為______。
A.abcdB.abbaC.abcD.abca
57.字長為32位的計算機是指()
A.該計算機中的CPU有32個寄器
B.該計算機能夠處理的最大數(shù)不超過232
C.該計算機每秒鐘所能執(zhí)行的指令條數(shù)為32MIPS
D.該計算機中的CPU可以相同時處理32位的二進制數(shù)
58.下列程序的輸出結(jié)果是______。main(){chara[10]={1,2,3,4,5,6,7,8,9,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.7
59.執(zhí)行以下程序后,test.txt文件的內(nèi)容是(若文件能正常打開)()。#include<stdio.h>main(){FILE*fp;char*s1="Fortran",*s2="Basic";if((fp=fopen("test.txt","wb"))==NULL){printf("Can'topentest.txtfile\n");exit(1);}fwrite(s1,7,1,fp);/*把從地址s1開始的7個字符寫到fp所指文件中*/fseek(fp,0L,SEEK_SET);/*文件位置指針移到文件開頭*/fwrite(s2,5,1,fp);fclose(fp);}
A.BasicanB.BasicFortranC.BasicD.FortranBasic
60.若a、b、c1、c2、x、y均是整型變量,則正確的switch語句是()。
A.switch(a+b);{casel:y=a+b;break;case0:y=a-b;break;}
B.switch(a*a+b*b){case3:case1:y=a+b;break;case3:y=b-a;break;}
C.switcha{casec1:y=a-b;break;casec2:x=a*d;break;default:x=a+b;}
D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a—b;break;}
四、選擇題(20題)61.在關(guān)系數(shù)據(jù)庫系統(tǒng)中,當(dāng)關(guān)系的模型改變時,用戶程序可以不變,這是
A.?dāng)?shù)據(jù)的物理獨立性B.?dāng)?shù)據(jù)的邏輯獨立性C.?dāng)?shù)據(jù)的位置獨立性D.?dāng)?shù)據(jù)的存儲獨立性
62.若有以下說明,則()不是對strcpy庫函數(shù)正確的調(diào)用。strcpy庫函數(shù)用于復(fù)制一個字符串:char*strl="abCd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa";
A.strcpy(str2,strl)
B.strcpy(str3,strl)
C.strcpy(strl,str2)
D.strcpy(str5,strl)
63.
64.有以下程序程序運行后的輸出結(jié)果是()。
A.123456B.14C.1234D.12
65.
設(shè)有以下定義和語句:
charstr[2O]="Program",*P:
p=str:
則以下敘述中正確的是()。
A.*p與stf[0]的值相等
B.str與P的類型完全相同
C.str數(shù)組長度和P所指向的字符串長度相等
D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同
66.有以下程序(strcat函數(shù)用以連接兩個字符串)
67.
68.
有以下程序:
main
{inta[]=(2,4,6,8,10},y=0,x,*P;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n,y");
}
程序運行后的輸出結(jié)果是()。
A.10B.11C.14D.15
69.下面四個選項中,均是不合法的用戶標(biāo)識符的選項是()。
A.
B.
C.
D.
70.下列選項不符合良好程序設(shè)計風(fēng)格的是()。
A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計原則是高耦合、高內(nèi)聚
71.若intk=8;則執(zhí)行下列程序后,變量k的正確結(jié)果是
main()
{intk=8;
switch(k)
{case9:k+=1;
case10:k+=1;
default:k+=1;
case11:k+=1;break;
}
printf("%d\n",k);
}
A.12B.1
C.10D.9
72.以下敘述中錯誤的是()。
A)C語言是高級語言
B)C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令
C)C語言產(chǎn)生的目標(biāo)程序后綴名為OBJ
D)C語言中的函數(shù)不可以單獨進行編譯
73.
74.
75.
76.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
77.
78.
79.
80.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
五、程序改錯題(1題)81.已知一個數(shù)列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數(shù)proc的功能是:計算并輸出該數(shù)列前n項的和sum。n的值通過形參傳人。例如,當(dāng)n=20時,程序的輸出結(jié)果應(yīng)為42762.000000。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}
六、程序設(shè)計題(1題)82.請編寫函數(shù)fun(),其功能是計算并輸出下列多項式的值:F=1+1/1!+1/21+1/31+1/41+…+1/m!例如,若主函數(shù)從鍵盤給m輸入5,則輸出為F=2.716667。注意:m的值要求大于1但不大于100。部分源程序給出如下。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B函數(shù)f1(*a,b),*a為地址傳遞,b為值傳遞,將b值傳給*a,則f1(&t1,t2)調(diào)用后輸出t1、t2為BB。f2(a,b)為值傳遞,傳入的只是a、b的值,不實現(xiàn)交換,則f2(t1,t2)調(diào)用后輸出t1、t2為AB。f3(*a,*b)為地址傳遞,可以實現(xiàn)a、b值的交換,則f3(&t1,&t2)調(diào)用后輸出t1、t2為BA。因此結(jié)果為BAABBB。故本題答案為B選項。
2.A參數(shù)r的傳遞是地址傳遞,函數(shù)調(diào)用會改變其值。函數(shù)f的功能是:判斷n是否為3或5的倍數(shù),如果是,則將指針r所指的內(nèi)存空間賦值為n除以3或5的商;否則n遞減,直到它可以被3或5整除。初始時調(diào)用函數(shù)f(7,&r);n=7,執(zhí)行else子句,調(diào)用f(6,&r1);后n=6,執(zhí)行語句if(n%3==0)r1=n/3;,此后執(zhí)行語句*r=rl;。所以r=6/3=2。
3.B數(shù)組1標(biāo)從0開始,A選項中所賦值的個數(shù)超過了數(shù)組的長度;C選項中定義a為字符型變量,而不是數(shù)組,賦值錯誤;D選項中,整型數(shù)組不能賦字符串。
4.B解析:'\\0'作為標(biāo)志占用存儲空間,但是不計入串的實際長度。當(dāng)給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。
5.D
6.B解析:第1個循環(huán)對數(shù)組a進行賦值:第2個循環(huán)對數(shù)組p進行賦值;第3個循環(huán)對k進行累加,k的初值等于5,第1次循環(huán),k=k+p[0]*2=5+0*2=5,第2次循環(huán),k=k+p[1]*2=5+2*2=9,第3次循環(huán),k=k+p[2]*2=9+6*2=21并輸出。
7.A根據(jù)題意,當(dāng)s=1時,輸出65;當(dāng)s=2時,輸出6;當(dāng)S=3時,則輸出64;當(dāng)S=4時,輸出5;當(dāng)s=5時,輸出6;當(dāng)s=0時,程序直接退出。所以最后答案為6566456,A選項正確。
8.D在選項中,\\019,以0開頭的數(shù)都為八進制數(shù),而八進制的表示數(shù)字是0~7,所以答案選擇D。
9.B
\n當(dāng)邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
\n
10.AA選項中先計算逗號表達式的第1個表達式“2*x”,然后計算第2個表達式“x+=2”,即“x=x+2=4”,整個逗號表達式為第2個表達式的值4。所以A選項正確。B選項中首先計算逗號表達式的第1個表達式“x++”,此時x為3;再計算第2個表達式“2*x=2*3=6”,所以逗號表達式為第2個表達式的值6。C選項中的表達式可以表示為“x=x*(1+x)=2*(1+2)=6”。D選項中的表達式可以表示為“x=x*(x+1)=2*3=6”。故本題答案為A選項。
11.B本題主要考查結(jié)構(gòu)和聯(lián)合內(nèi)存使用的一些區(qū)別:結(jié)構(gòu)中每個成員相互獨立,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和;聯(lián)合所占用內(nèi)存空間是指最長的成員占用的空間。
12.C本題中int(*ptr)的含義是指向函數(shù)的指針變量,其為指向函數(shù)的指針變量,該函數(shù)返回一個int型數(shù)據(jù),故選擇C選項。
13.D
14.C當(dāng)執(zhí)行fun函數(shù)時,因為參數(shù)傳遞時是地址傳遞,因此形參值的改變會影響實參中的數(shù),在執(zhí)行fun函數(shù)時先輸出12,接著把*X賦3,*y賦4,此時帶回主函數(shù)中,輸出的值為34。
15.B
16.B
17.B解析:本題考查二維數(shù)組的定義方式。第一維的大小由以下方法判斷:①當(dāng)初值的個數(shù)能被第二維的常量表達式的值除盡時,所得商數(shù)就是第一維的大小;2)當(dāng)初值的個數(shù)不能被第二維的常量表達式的值除盡時,則第一維的劃、:所得的商數(shù)+1。
18.Dif語句的條件是當(dāng)i既是3的倍數(shù)又是2的倍數(shù)時成立,所以此程序?qū)崿F(xiàn)的功能是將10以內(nèi)既是3的倍數(shù)又是2的倍數(shù)的數(shù)相加。
19.D軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,測試要以查找錯誤為中心,而不是為了演示軟件的正確功能,也不是為了評估軟件或改正錯誤,因此本題答案為D)。
20.B
21.310
22.數(shù)據(jù)存儲數(shù)據(jù)存儲
23.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行,因為case常量表達式只是起語句標(biāo)號作用,并不是在該處進行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。
24.00解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。
25.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。
26.a=3.00b=4.00c=5.00s=6.00area=6.00
27.0。0。解析:表達式中將實型常量2.5和算術(shù)表達式1.25*(3.7+2.3)的值強制轉(zhuǎn)換為整型后參與運算。
28.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:本題考查了數(shù)據(jù)結(jié)構(gòu)的基本概念。與棧類似,隊列也是線性表,可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu),所以帶鏈的隊列屬于線性結(jié)構(gòu)。
29.gaegae解析:本題定義了兩個字符串?dāng)?shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串?dāng)?shù)組a和b,執(zhí)行for循環(huán),當(dāng)if(*p1+k)=*(p2+k))條件為真,執(zhí)打輸出*(p1+k)對應(yīng)的字符。即當(dāng)k=0時,*(p1+k)對應(yīng)的字符串?dāng)?shù)組a中的字符L,*(p2+k)對應(yīng)的字符串?dāng)?shù)組b中的字符P,因此if(*(p1+k)=*(p2+k))條件為假,不執(zhí)行printf語句,依此類推,將字符串?dāng)?shù)組a和b中對應(yīng)位置上的字符一一比較,如果對應(yīng)位置上的字符相同,則輸出該字符。
30.j<ia[i][j]=a[j][i]j<ia[i][j]=a[j][i]解析:本題中要求將n行n列的矩陣A轉(zhuǎn)置,即讓數(shù)組中行上的元素變成對應(yīng)列上的元素。即把對角線兩邊的元素對換,所以本題的第一個空格處應(yīng)該填寫1<i,第二個空格處填寫交換對角線兩邊的元素的語句a[i][j]=a[j][i]。
31.66解析:已知aa[3]={1,2,3},n=3,調(diào)用函數(shù)f,n>1成立,執(zhí)行a[0]+f(&a[1],n-1);即1+f(&a[1],2),遞歸調(diào)用函數(shù)f,將a[1]的地址作為參數(shù)傳給數(shù)組a,使數(shù)組a的首地址變?yōu)?a[1],數(shù)組中的元素只有2,3;2傳給n,這時n=2,n>1仍然成立,繼續(xù)調(diào)用a[0]+f(&a[1],n-1);即執(zhí)行1+2+f(&a[1],1),因為上次遞歸調(diào)用函數(shù)f后數(shù)組中的元素為2,3,所以此次的a[1]為3,調(diào)用后的a[0]為3。所以最后結(jié)果為1+2+3=6。
32.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符串,則不能使用scanf()函數(shù),所以本題中輸入空格就返回了'\\0',s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。
33.09182736450918273645解析:題目中為for循環(huán)定義了兩個字符型循環(huán)變量c1和c2,循環(huán)開始時分別初始化為字符‘0’和‘9’,然后每次循環(huán)結(jié)束給c1增1、c2減l,循環(huán)條件為c1<c2,即讓c1的值依次為‘0’、‘1’、‘2’…,c2的值依次為‘9’、‘8’、‘7’…,直到兩個數(shù)相遇時結(jié)束循環(huán)。又因為該循環(huán)的循環(huán)體每次按字符形式輸出c1和c2的值。所以最終的輸出結(jié)果為:0918273645。
34.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)體語句,相應(yīng)輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
35.voidfun(double*b)或voidfun(doubleb[10][12])voidfun(double*b)或voidfun(doubleb[10][12])解析:本題考查數(shù)組名作函數(shù)參數(shù)。程序中被調(diào)用函數(shù)fun(s)的實參s是數(shù)組名,而s為double型數(shù)組名,所以函數(shù)fun的形參類型為double*。
36.一對多或1:N一對多或1:N解析:兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有三種,即一對一(1:1)的聯(lián)系、一對多(1:N)或多對一(N:1)的聯(lián)系和多對多(N:N)的聯(lián)系。
37.判定樹、判定表判定樹、判定表
38.0240480,2,4\r\n0,4,8解析:本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。
39.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
40.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[j+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。
41.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。
42.D解析:根據(jù)結(jié)構(gòu)變量的存儲特點,p+1意味著增加地址值為結(jié)構(gòu)體數(shù)組a的一個元素所占的字節(jié)數(shù),即p++使p由a[0]指向a[1]起始地址。本題++p->n得到p指向的結(jié)構(gòu)體變量中成員n的值使之加1。因為p指向數(shù)組a起始地址,p->n的值為5,再掏打自加1運行,結(jié)果為6。
43.D
44.D解析:要想使程序輸出是25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語句,使引用的數(shù)組元素累加為65-50=15即可。
45.A本題要求建立一個stmctnode類型的數(shù)據(jù)鏈表,函數(shù)CreatList將字符串"linklist"的首地址傳給指針變量s,可以推斷建立的鏈表一定與"linklist",有關(guān),由CreatList(char*s)函數(shù)中所定義的變量及其他語句可知,h,p,q用于建立的鏈表,h表示頭指針,p用于記錄開辟的新結(jié)點,而q用作將新結(jié)點與已建立的鏈表相連的中間變量,所建立鏈表各個結(jié)點的data依次存放的是”linklist",中的各個字符,所以應(yīng)填空*s。
46.D解析:考查的是字符指針和字符數(shù)組的區(qū)別。選項A)中,s為數(shù)組名,是一個常量地址,而指針p為一個字符變量,不能說兩者完全相同,所以選項A)錯誤。選項B)和C)的說法都不嚴(yán)謹(jǐn),只有選項D)的說法正確。
47.C解析:本題涉及C語言最基本的4個知識點:①C語言的保留字必須小寫;②變量的存儲類型不同,其存儲位置和生存期也不一樣:③C語言允許其注釋部分出現(xiàn)在程序中的任何位置;④宏定義以#define開頭,行末不需要加分號。
48.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。
49.C解析:若指針s指向數(shù)組a,則s[t]可以引用數(shù)組a中下標(biāo)為t的元素。注意:通過數(shù)組的首地址引用數(shù)組元素。
50.D解析:要正確計算函數(shù)f=n!,由n!的數(shù)學(xué)定義可知n!=n*(n-1)*(n-2)*……*1。在選項A)中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,……,n。最后計算f=n!=O,所以選項A)不正確。在選項B)中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,……,(n-1)。最后計算得到f=(n-1)!,所以選項B)不正確。在選項C)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項C)不正確。在選項D)中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n-1,n-2,……,2。最后計算f=n!,所以選項D)正確。
51.A解析:帶參數(shù)的宏定義命令行形式如下:#define宏名(形參表)替換文本。首先進行M的宏替換,之后再進行N的宏替換,替換后的表達式為(a)*(b)/(C)。
52.A解析:在C語言的賦值表達式中,賦值對象必須是一個變量,而在選項B中其子表達式x+1代表的是一個臨時常量,因此不能將y賦給x+1,選項B錯誤。而選項C中由于“=”運算符是從右至左運算的,即原表達式相當(dāng)于x=(x+10=x+y),所以也犯了對一個臨時常量賦值的錯誤。選項D中,將x強制轉(zhuǎn)換為double類型的表達式應(yīng)該為(double)x,所以選項D也不正確。故本題的正確答案為選項A。
53.B解析:x--是先使用x的值,后進行自減運算,所以輸出的結(jié)果應(yīng)當(dāng)為23。
54.B
55.D
56.B解析:函數(shù)scmp的功能是比較兩個符號串的大小,返回值較小的那個符號串。str[0]中存放'abcd'、str[1]中存放'abba'、str[2]中存放'abc',執(zhí)行完語句strcpy(string,scmp(sty[0],sir[1]));后string中存放'abba',執(zhí)行完語句strcpy(string,scmp(string,str[2]));后string中存放'abba'。
57.D
58.C解析:p是一個指向字符的指針,在定義時,指向a[5]。執(zhí)行--p時,p就指向了a[4],那么*--p就是5。
59.A
60.D解析:switch語句后不能有分號,故選項A錯誤;switch語句中的常量不能在分支重復(fù)出現(xiàn),故選項B錯誤;選項C中,switch后的表達式必須要加括號,case后的表達式必須是常量,故選項C錯誤;因此只有選項D正確。
61.B數(shù)據(jù)獨立性是數(shù)據(jù)庫系統(tǒng)的一個最重要的目標(biāo)之一。它能使數(shù)據(jù)獨立于應(yīng)用程序。數(shù)據(jù)庫的數(shù)據(jù)獨立性主要包括數(shù)據(jù)的物理獨立性和邏輯獨立性。
物理獨立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的,即數(shù)據(jù)在磁盤上怎樣存儲由DBMS管理,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu)。這樣,當(dāng)數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。
邏輯獨立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,即當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,用戶程序也可以不變。
本題中說的關(guā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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 月子中心人員培訓(xùn)制度
- 田野課程培訓(xùn)制度及流程
- 事業(yè)單位定期培訓(xùn)制度
- 血透全員院感培訓(xùn)制度
- 歐萊雅培訓(xùn)制度
- 書畫培訓(xùn)室請假制度規(guī)定
- 運行指揮員崗位培訓(xùn)制度
- 完善教育培訓(xùn)管理制度
- 組織工作培訓(xùn)制度
- 培訓(xùn)機構(gòu)教室請假制度
- 2025成人高考全國統(tǒng)一考試專升本英語試題及答案
- 代辦煙花爆竹經(jīng)營許可證協(xié)議合同
- 國企員工總額管理辦法
- 企業(yè)級AI大模型平臺落地框架
- 常見傳染病的預(yù)防與護理
- TD/T 1036-2013土地復(fù)墾質(zhì)量控制標(biāo)準(zhǔn)
- 蘇教版六年級數(shù)學(xué)上冊全冊知識點歸納(全梳理)
- 車位包銷合同協(xié)議模板
- 病歷書寫規(guī)范版2025
- 中鐵物資采購?fù)稑?biāo)
- 泄漏管理培訓(xùn)課件
評論
0/150
提交評論