版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年河南省鶴壁市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下面關(guān)于串的的敘述中,哪一個(gè)是不正確的()。
A.串是字符的有限序列
B.空串是由空格構(gòu)成的串
C.模式匹配是串的一種重要運(yùn)算
D.串既可以采用順序存儲(chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)
2.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
3.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
4.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。
A.&.B.^C.||D.~
5.以下關(guān)于字符串的敘述中正確的是()。
A.C語言中有字符串類型的常量和變量
B.兩個(gè)字符串中的字符個(gè)數(shù)相同時(shí)才能進(jìn)行串符串大小的比較
C.可以用關(guān)系運(yùn)算符對(duì)字符串的大小進(jìn)行比較
D.空串一定比空格打頭的字符串小
6.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl
7.運(yùn)算符________的優(yōu)先級(jí)最高。
A.[]B.+=C.?:D.++
8.需求分析最終結(jié)果是產(chǎn)生
A.項(xiàng)目開發(fā)計(jì)劃B.需求規(guī)格說明書C.設(shè)計(jì)說明書D.可行性分析報(bào)告
9.設(shè)有以下函數(shù)f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調(diào)用該函數(shù),則輸出結(jié)果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}
A.789B.7911C.71013D.777
10.有以下程序:#include<stdio.h>structnode{charid;structnode*next;}a={‘A’},b={‘B’},c={‘C’},*p=&a,*pt;main(){p->next=&b;p=p->next;p->next=&c;p=p->next;p->next=NULL;p=&a;}若程序經(jīng)運(yùn)行后形成下圖所示的數(shù)據(jù)結(jié)構(gòu)。則以下可以刪除中間節(jié)點(diǎn)b的正確選項(xiàng)是()。
A.pt=p->next;p->next=p->next->next;free(pt);
B.pt=p->next;p->next=p->next->next->next;free(pt);
C.pt=&b;free(pt);
D.pt=&b;p->next=p->next->next->next;free(pt);
11.下列程序的輸出結(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
12.若有定義“doublea;”,則正確的輸入語句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
13.若x=10010111,則表達(dá)式(3+(int)(x))&(~3)的運(yùn)算結(jié)果是()。
A.10011000B.10001100C.10101000D.10110000
14.以下語句中存在語法錯(cuò)誤的是()。A.charss[6][20];s[1]="right?";
B.charss0[20]={"right?"};.
C.char*ss[6];s[1]="right?";
D.char*ss[={"rignt?"};
15.以下說法正確的是()。
A.數(shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位
B.數(shù)據(jù)元素是數(shù)據(jù)的最小單位
C.數(shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項(xiàng)的集合
D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)
16.以下選項(xiàng)中,非法的字符常量是______。
A.'t\'B.'\17'C.\nD.'\xaa'
17.
18.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應(yīng)填入的是()。
A.i-1B.iC.i+1D.4一i
19.結(jié)構(gòu)化程序的3種基本控制結(jié)構(gòu)是()。
A.遞歸、堆棧和隊(duì)列B.過程、子程序和函數(shù)C.順序、選擇和重復(fù)D.調(diào)用、返回和轉(zhuǎn)移
20.在深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為()。
A.31B.32C.16D.15
二、2.填空題(20題)21.下面程序執(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);
}
22.有下面的程序:
#include<stdio,h>
main()
{enumteam{my,your=4,his,her=his+10};
prinff("%d%d%d%d\n",my,your,his,her);
此程序的輸出結(jié)果是【】。
A)0123B)04010C)04515D)14515
23.以下程序中,fun()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請(qǐng)?zhí)羁铡?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=x;
}
}
24.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。
25.以下程序輸出的最后一個(gè)值是【】。
intff(intn)
{staticintf=1;
f=f*n;
retumf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i))i
}
26.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
27.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:
abcl23edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype,h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
}
28.以下程序中函數(shù)huiwen的功能是檢查一個(gè)字符串是否是回文,當(dāng)字符串是回文時(shí),函數(shù)數(shù)返回字符串:yes!否則函數(shù)返回這符串:no!并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請(qǐng)?zhí)羁?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
pl=str;p2=______;
for(i=0;i<=strlen(str)/2;i+*)
if(*p1++!=*p2--){t=1;break;}
if(______)return("yes!");
elsereturn(*no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",______);
}
29.若有如下程序:
main()
{intx=4,y=1;
printf("%d\n",sub(x,sub(x,y)));}
sub(inti,intj)
{staticinta=0;
intb=2;
a+=i+b;
b+=j(luò)+a;}
則程序運(yùn)行后的輸出結(jié)果是【】。
30.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\N,*p,*q))
}
31.由25人圍坐成圓圈,先從任意一人出發(fā)用1到25順時(shí)針依次編號(hào),然后從1號(hào)開始順時(shí)針報(bào)數(shù)(1、2、3…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號(hào)。
#include<stdio.h>
【】
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j(luò);
j=1;count=0;n=【】;
do
{if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
32.以下程序的運(yùn)行結(jié)果是______。
#include<string.h>
typedefstructstudent{
charname[10];
longsno;
floatscore;
}STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},
c={"Anhua",2003,95},d,*p-&d;
d=a;
if{strcmp(a.nalne,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%ld%s\n",d.sno,p>name};
}
33.以下程序運(yùn)行后的輸出結(jié)果是()。
intf(inta[],intn)
{if(n>=1)returnf(a,n-1)+a[n-1];
elsereturn0;
}
main()
{intaa[5]={1,2,3,4,5),s;
s=f(aa,5);printf("%d\n",s);
}
34.有以下程序,其功能是:以二進(jìn)制“寫”方式打開文件d1.dat,寫入1~100這100個(gè)整數(shù)后關(guān)閉文件。再以二進(jìn)制“讀”方式打開文件d1.dat,將這100個(gè)整數(shù)讀入到另一個(gè)數(shù)組b中,并打印輸出。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;
inti,a[100],b[100];
fp=fopen("d1.dat","wb");
for(i=0;i<100;i++)a[i]=i+1;
fwrite(a,sizeof(int),100,fp);
fclose(fp);
fp=fopen("d1.dat",【】);
fread(b,sizeof(int),100,fp);
fclose(fp);
for(i=0;i<100;i++)printf("%d\n",b[i]);
}
35.有兩個(gè)C程序文件T18.c和myfun.c同在VC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();prinff("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!:'\n')s[n++]=c;
n--;
while(n>=0)prinff("%c",s[n--]);
}
當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入"Thank!”,則輸出結(jié)果是【】。
36.以下程序的輸出結(jié)果是【】。
main()
{
intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
37.下面程序的功能是:計(jì)算1~10之間奇數(shù)和及偶數(shù)之和。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=O;
for(i=O;i<=10;i+=2)
{a+=i;
【】;
c+=b;
}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);
}
38.若從鍵盤輸入24,則以下程序輸出的結(jié)果是()。
#include<stdio.h>
main()
{inta;
scanf("%d",&A);
if(a>20)printf("%d",A);
if(a>10)printf("%d",A);
if(a>5)printf("%d",A);
}
39.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
40.有以下程序:
intf(intn)
{if(n==1)retum1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序運(yùn)行后的輸出結(jié)果是【】。
三、1.選擇題(20題)41.用C語言編寫的代碼______。
A.可立即執(zhí)行B.是一個(gè)源程序C.經(jīng)過編譯即可執(zhí)行D.經(jīng)過編譯解釋才能執(zhí)行
42.有以下程序main(){intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;K--;}printf("%d,%d\n",k,n);}程序運(yùn)行后的輸出結(jié)果是
A.1,1B.2,2C.3,3D.4,4
43.有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;}fun(a,++i,--j);}}main(){inta[]={1,2,3,4,5,6},i;fun(a,0,5);for(i=0;i<6;i++)printf("%d",a[i]);}執(zhí)行后的輸出結(jié)果是______。
A.654321B.432156C.456123D.123456
44.有以下程序,程序運(yùn)行后的輸出結(jié)果是_______。intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n"f(A));}
A.22B.11C.18D.16
45.有以下計(jì)算公式:若程序前面已在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x);if(x<0)y=sqrt(-x);
C.if(x>=0)y=sqrt(x);if(x<0)=sqdrt(-x);
D.y=sqrt(x>=0?x:-x);
46.若待排序序列中元素非常多,而且它們的排列是完全無序的,那么最好選用下列排序方法中的______。
A.冒泡排序B.簡單選擇排序C.直接插入排序D.快速排序
47.線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是______。
A.順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
B.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
C.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)
D.任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)
48.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語句是()。
A.scanf(“%3d,%3d,%3d”,&i,&j,&k);
B.scanf(“%d,%d,%d”,&i,&J,&k);
C.scanf(“%d%d%d”,&i,&j,&k);
D.scanf(“i=%d,%d,k=%d”,&i,&j,&k);
49.以下不能對(duì)二維數(shù)組a進(jìn)行正確初始化的語句是
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};
50.若有“doublea;”,則正確的輸入語句是()。
A.scanf("%lf",A);
B.scanf("%f",&A);
C.scanf("%lf",&A)
D.scanf("%le",&A);
51.對(duì)表達(dá)式for(表達(dá)式1;;表達(dá)式3)可理解為()。
A.for(表達(dá)式1;0;表達(dá)式3)
B.for(表達(dá)式1;1;表達(dá)式3)
C.for(表達(dá)式1;表達(dá)式1;表達(dá)式3)
D.for(表達(dá)式1;表達(dá)式3;表達(dá)式3)
52.若有定義血b[8],*p=b;則p+6表示()。
A.數(shù)組元素b[6]的值B.數(shù)組元素b[6]的地址C.數(shù)組元素b[7]的地址D.數(shù)組元素b[0]的值加上6
53.以下程序有錯(cuò),錯(cuò)誤原因是main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;……}
A.p和q的類型不一致,不能執(zhí)行*p=*q;語句
B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句
C.q沒有指向具體的存儲(chǔ)單元,所以*q沒有實(shí)際意義
D.q雖然指向了具體的存儲(chǔ)單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會(huì)影響后面語句的執(zhí)行結(jié)果
54.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.6C.8D.12
55.下列程序執(zhí)行后的輸出結(jié)果是:main(){chararr[2][4];strcpy(arr'"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}程序的輸出結(jié)果是()。
A.you&meB.meC.youD.err
56.有以下程序:voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];fun1(p)printf("%s\n",A);}程序執(zhí)行后的輸出結(jié)果是()。
A.ProhsbnB.PrphsbnC.ProgsbnD.Program
57.請(qǐng)選出正確的程序段______。
A.int*pscanf(""%d"",p);……
B.int*s,k;*s=100;……
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';……
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;……
58.有以下程序intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){returnf2(x)-f1(x);}main(){inti;i-f(fa,fb,2);printf("%d\n",i);}程序運(yùn)行后的輸出結(jié)果是
A.4B.1C.4D.8
59.若a,b,c1,c2,x,y均是整型變量,正確的switch語句是______。
A.switch(a+b);{case1: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*b;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;}
60.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序運(yùn)行后的輸出結(jié)果是______。
A.3B.2C.-1D.0
四、選擇題(20題)61.
62.
63.
64.若有說明語句:double*p,a;則通過scanf語句正確給輸入項(xiàng)讀人數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%1f”,p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%",*p);
D.p=&a;scanf("%1f",p);
65.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的三個(gè)連續(xù)節(jié)點(diǎn)。structnode{intdata;structnode*next;}*P,*q,*r;現(xiàn)要將q所指節(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),
以下不能完成指定操作的語句是()。
A.p->next=q->next;
B.p->next=P->next->next;
C.p->next=r;
D.p=q->next;
66.下列敘述中正確的是()。
A.每個(gè)C語言程序文件中都必須要有一個(gè)main(.函數(shù)
B.在c語言程序中main(.函數(shù)的位置是固定的
C.c語言程序中所有函數(shù)之間都可以相互調(diào)用,與函數(shù)所在位置無關(guān)
D.在c語言程序的函數(shù)中不能定義另一個(gè)函數(shù)
67.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對(duì)象B.繼承C.類D.過程調(diào)用
68.下面描述中,不屬于軟件危機(jī)表現(xiàn)的是()。
A.軟件過程不規(guī)范B.軟件質(zhì)量難以控制C.軟件開發(fā)生產(chǎn)率低D.軟件成本不斷提高
69.
70.
71.
72.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
73.
設(shè)有如下定義:
intarr[]={6,7,8,9,10);
int*ptr:
ptr=arr;
*(ptr2)=2;
printf("%d,%d\n",*ptr,*(ptr2)):
則下列程序段的輸出結(jié)果為()。
A.8,10B.6,8C.7,9D.6,2
74.
75.
76.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
77.若程序中有以下說明和定義。
structabc
{
intx;chary;
}
structabcs1,s2;
則會(huì)發(fā)生的情況是
A.編譯時(shí)出錯(cuò)B.程序?qū)㈨樞蚓幾g、連接、執(zhí)行
C.能順序通過編譯、連接,但不能執(zhí)行D.能順序通過編譯,但連接出錯(cuò)
78.
79.
80.有以下程序
#include<stdio.h>
main()
{charcl,c2;
c1=A+8-4
c2=A+8-5;
printf("%C,%d\n",cl,c2);
}
已知字母A的ASCIl碼為65,程序運(yùn)行后的輸出結(jié)果是()。
A.E,69B.D,69C.E,DD.輸出無定值
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算str所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是將兩個(gè)兩位數(shù)的正整數(shù)a、b合并成一個(gè)整數(shù)放在c中。合并的方式是將a中的十位數(shù)和個(gè)位數(shù)依次放在c的個(gè)位和百位上,b中的十位數(shù)和個(gè)位數(shù)依次放在c的十位和千位上。例如,當(dāng)a=45,b=12時(shí),調(diào)用該函數(shù)后c=2514。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}
參考答案
1.B
2.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。
3.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。
4.B按邏輯位運(yùn)算特點(diǎn):①用按位與運(yùn)算將特定位清為0或保留特定位;②用按位或運(yùn)算將特定的位置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。
5.D解析:C語言中只有字符串常量而沒有字符串變量,故選項(xiàng)A不正確:字符串比較大小是以第1個(gè)不相同字符的大小為標(biāo)準(zhǔn)的,跟長度沒有關(guān)系,故選項(xiàng)B不正確:字符串比較大小除了使用庫函數(shù)stremp()以外,就只能靠自己寫代碼來實(shí)現(xiàn)了,而不能通過關(guān)系運(yùn)算符來比較大小,因?yàn)樽址诒磉_(dá)式中相當(dāng)于coostchar*,即常字符指針,代表的是字符串的首地址,關(guān)系運(yùn)算符會(huì)將兩個(gè)字符串的首地址值比較大小,這是毫無意義的。所以選項(xiàng)C也不正確。空串的長度為0,而以空格打頭的字符串的長度至少為1,故選項(xiàng)D正確,本題應(yīng)該選擇D。
6.D
7.A
8.B解析:本題考核軟件工程中的需求分析環(huán)節(jié)。需求分析應(yīng)交付的主要文檔就是需求規(guī)格說明書。
9.A解析:本題考查靜態(tài)變量的問題。函數(shù)f中c是靜態(tài)變量存放在靜態(tài)存儲(chǔ)區(qū),在程序的整個(gè)運(yùn)行期間都不釋放占據(jù)的存儲(chǔ)單元。函數(shù)f被調(diào)用3次,調(diào)用過程如下。
第1次調(diào)用;a=2、b=0、c=3,執(zhí)行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7
第2次調(diào)用:a=2、b=0、c=4.執(zhí)行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8
第3次調(diào)用:a=2、b=0、c=5,執(zhí)行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9
所以輸出結(jié)果為選項(xiàng)A。
10.A題干中,a、b、c3個(gè)節(jié)點(diǎn)都是node類型,它們都有兩個(gè)成員:字符成員id,node類型指針成員next。由于a的next指向b,b的next指向c,因此a、b、c構(gòu)成了鏈表。要想刪除b節(jié)點(diǎn),只需要將a節(jié)點(diǎn)的next(p->next)指向c(p->next->next),然后將節(jié)點(diǎn)b的存儲(chǔ)空間釋放即可。所以刪除b節(jié)點(diǎn)的語句為“pt=p->next;p->next=p->next->next;free(pt);”。故本題答案為A選項(xiàng)。
11.B解析:算術(shù)運(yùn)行符“/”、“%”的優(yōu)先級(jí)處于同一級(jí),并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達(dá)式運(yùn)算過程為:a=25/10%9=2%9=2:當(dāng)邏輯運(yùn)算符“&&”兩邊的值都是非零時(shí),邏輯表達(dá)式的值才為真(即為1)。所以b=2&&(-1)=1。
12.D本題考查seanf函數(shù)的調(diào)用形式:scanf(格式字符串,輸入項(xiàng)地址表)。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,所以選項(xiàng)D正確。
13.A解析:本題主要考查運(yùn)算表達(dá)式的運(yùn)算。3+(int)(x)的結(jié)果是10011010,~3的結(jié)果是11111100,二者邏輯與得10011000。
14.A[解析]數(shù)組定義后,不可以對(duì)數(shù)組整體賦值,s是二維數(shù)組,因ss[1]是一維字符數(shù)組,即字符串,字符串賦值可以使用strcpy[1],"right);這樣的形式,而選項(xiàng)A)中對(duì)二維數(shù)組中的第“1維(相當(dāng)于一個(gè)一維數(shù)組)賦值,是不可以的。選項(xiàng)B)和D)是定義時(shí)對(duì)數(shù)組初始化,這是可以的。選項(xiàng)C)中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個(gè)元素,這是可以的。
15.D
16.C解析:C語言中字符常量是以單引號(hào)括起來的單個(gè)字符,或以“\\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。
17.B
18.B
\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。
\n
19.C1966年Boehm和Jacopini證明了程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)3種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。本題答案為C選項(xiàng)。
20.C解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個(gè)結(jié)點(diǎn)。對(duì)于滿二叉樹,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn)。所以,在深度為5的滿二叉樹中,所有葉子結(jié)點(diǎn)在第5層上,即其結(jié)點(diǎn)數(shù)為2(k-1)=2(5-1)=16。
21.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
22.CC解析:枚舉的語法規(guī)定,當(dāng)枚舉元素沒有賦值時(shí),如果前面沒有其他枚舉元素,其值為0;如果前面有其他枚舉元素,其值為前一個(gè)元素的值加1,所以his的值為5,her的值為15。
23.br[i]
24.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
25.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)方式,它具有以下特點(diǎn):
①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。
②對(duì)靜態(tài)局部變量是在編譯時(shí)賦初值的,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。
③如在定義局部變量時(shí)不賦初值的話,則對(duì)靜態(tài)局部變量來說,編譯對(duì)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)。(注意:C語言中的非靜態(tài)變量在定義時(shí),系統(tǒng)并不會(huì)自動(dòng)給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個(gè)整數(shù)的階乘。
26.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語句是終止整個(gè)循環(huán)的執(zhí)行,不再進(jìn)行條件判定。
27.s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或57>=s[i]&&48<=s[i]或48<=s[i]&&57>=s[i]解析:字符數(shù)組的初始化,字符串的輸入和輸出的應(yīng)用。C語言沒有字符串變量,字符串不是存放在一個(gè)變量中而是存放在一個(gè)字符型數(shù)組中,因此為了存放字符串,常常在程序中定義字符型數(shù)組;字符串存放在字符數(shù)組中,但字符數(shù)組與字符串可以不等長,C語言規(guī)定以“\\0”字符作為字符串結(jié)束標(biāo)志。
本題中,chars[80],d[80];定義了兩個(gè)字符型數(shù)組,可以放入80個(gè)字符。gets函數(shù)是c語言提供的一個(gè)專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個(gè)字符是否為數(shù)字字符,因?yàn)樽址麛?shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的ASCII碼值是否在48('0'的ASCII代碼)與57('9'的ASCII代碼)之間,或者直接與'0','9'進(jìn)行比較,如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進(jìn)行下一字符的比較,直至s結(jié)束(即'0'的出現(xiàn))。將“'\\0'”字符作為字符串d結(jié)束標(biāo)志,最后調(diào)用puts函數(shù)輸出d。所以在空格處應(yīng)填入比較語句s[i]>='0'&&s[i]<='9'或isdigit(s[i])或s[i]>=48&&s[i]<=57或s[i]<='9'&&s[i]>='0'或'9'>=s[i]&&'0'<=s[i]或'0'<=s[i]&&'9'>=s[i]或s[i]<=57&&s[i]>=48或&&48<=s[i]或57>=s[i]。
28.str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:判斷回文教一般使用兩個(gè)指針或下標(biāo)變量分別從檢查串的第1個(gè)字符和最后一個(gè)字符開始相向移動(dòng),并比較兩者內(nèi)容是否相同,直到中間相遇一直相同則是回文數(shù),否則不是。函數(shù)huiwen中開始定義了兩個(gè)字符指針p1和p2,并讓p1指向str的開始位置,所以p2應(yīng)該指向str的尾部,即&str[strlen(sir)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價(jià)形式。然后使用一個(gè)循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個(gè)指針。若有不同,則讓標(biāo)志t為1,并跳出循環(huán)。所以最后一個(gè)if語句應(yīng)該為判斷標(biāo)志t是否為1,即應(yīng)該填t==0或者其他等價(jià)形式。在主函數(shù)中,應(yīng)該輸出huiwen()函數(shù)的返回結(jié)果,印最后一空應(yīng)該填huiwen(str)。
29.19
30.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,形參指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
31.main()0a[j]=0count<25
32.2002Shangxian2002Shangxian解析:本題考核的知識(shí)點(diǎn)是結(jié)構(gòu)體類型的定義、賦初值以及字符串的比較。本題中首先定義一個(gè)結(jié)構(gòu)體類型STU,鎮(zhèn)結(jié)構(gòu)體由一個(gè)長度為10的字符型數(shù)組、一個(gè)long型變量和一個(gè)float型變量組成。接著在主函數(shù)中用STU定義了4個(gè)結(jié)構(gòu)體變量a、b、c、d,并且給a、b、c賦初值,然后定義?一個(gè)結(jié)構(gòu)體指針p,并讓它指向變量d。然后讓將變量a的值賦給變量d,接著通過兩個(gè)if語句比較結(jié)構(gòu)體變量a、b、c的成員name大小。第一個(gè)訂語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量中較小的那個(gè)賦值給結(jié)構(gòu)體變量d,第二個(gè)if語句將結(jié)構(gòu)體變量和結(jié)構(gòu)體變量較大的那個(gè)賦給結(jié)構(gòu)體變量d。比較通過函數(shù)strcmp實(shí)現(xiàn)。strcmp()函數(shù)有兩個(gè)參數(shù),分別為被比較的兩個(gè)字符串。如果第一個(gè)字符串大于第二個(gè)字符串返回值大于0,若第一個(gè)小于第二個(gè)返回值小于0,相等時(shí)返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開始依次向右比較,遇到某一個(gè)字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個(gè)字符小,該字符所在的字符串就是較小的字符串。程序中第一個(gè)if語句strcmp(,)>0為真,故將b的值賦給d;第二個(gè)if語句strcmp()>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此輸出d.sn0和p->name的值為2002Shangxian
33.1515解析:通過遞歸調(diào)用f函數(shù)實(shí)現(xiàn)了數(shù)組各元素之和,即a[4]+a[2]+a[1]+a[0]=15。
34.rb或"r+b"或"rb+"rb或'r+b'或'rb+'解析:根據(jù)題目要求,在下劃線位置應(yīng)該填入一個(gè)能實(shí)現(xiàn)二進(jìn)制讀的使用文件方式的參數(shù)即可。所以,可以填'rb'或'r+b'或'rb+'。
35.!knahT!knahT解析:程序中myfun.c被包含在T18.c中進(jìn)行編譯。fun函數(shù)中用getehar函數(shù)輸入字符并賦給數(shù)組s,每輸入一個(gè)字符,數(shù)組下標(biāo)n加1,直到遇到回車鍵時(shí)輸入結(jié)束。while(n>=0)循環(huán)反序輸出字符中。所以myfun.c文件用于實(shí)現(xiàn)字符串反序的功能。
36.2424解析:本題程序定義了一維數(shù)組p,有七個(gè)數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2==1)的值為真時(shí),執(zhí)行語句j+=p[i++];,如:當(dāng)i=0時(shí),i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2==1)的值為真,所以整個(gè)表達(dá)式(i<7&&p[i]%2==1)的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。
37.b=i+1
38.242424
39.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
40.33解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f2=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。
41.B解析:用C語言編寫的代碼是一個(gè)源程序,不能立即執(zhí)行,如果沒有錯(cuò)誤,則經(jīng)過編譯、連接后即可執(zhí)行。
42.C解析:在本程序的for循環(huán)中,用到了一個(gè)continue語句,continue語句的作用是停止本次循環(huán),即不執(zhí)行循環(huán)體內(nèi)continue語句后面的其他語句,繼續(xù)下次循環(huán)的條件判斷。首先在for循環(huán)中n自加1(值變?yōu)?),然后執(zhí)行后面的if語句,由于if語句后面括號(hào)的表達(dá)式(1%3!=0)的值為真,程序執(zhí)行continue語句,回到for循環(huán)的開始部分,并且判斷for循環(huán)中的條件表達(dá)式(n<k)為真,重復(fù)執(zhí)行“n++;”語句,如此循環(huán)直到n=3時(shí),if語句判定條件中表達(dá)式(3%3!=0)的值為假,程序執(zhí)行if語句后面的“k--;”語句,此時(shí)k的值為3,不滿足“n<k”,退出for循環(huán)。故最后的k和n的值為3和3。
43.A解析:本題考查指針變量作函數(shù)形參的問題。指針變量作函數(shù)的形參,實(shí)現(xiàn)的是地址傳遞,形參的改變可以影響實(shí)參。fun由數(shù)的功能是將a所指數(shù)組中的內(nèi)容逆置。在main函數(shù)中調(diào)用fun函數(shù)后,實(shí)參數(shù)組s中元素的值變?yōu)椋篴[0]=6、a[1]=5、a[2]=4、a[3]=3、a[4]=2、a[5]=1。
44.D解析:本題通過函數(shù)調(diào)用對(duì)數(shù)組a[0][0]、a[1][1]、a[2][2]、a[0][3]進(jìn)行求和,然后用return語句返回s的值。
45.B解析:選項(xiàng)B一開始就調(diào)用了sqrt(x)而沒有判斷x的正負(fù),所以是錯(cuò)誤的。故應(yīng)該選B。
46.D
47.B【命題目的】考查有關(guān)線性表存儲(chǔ)結(jié)構(gòu)的基本知識(shí)。
【解題要點(diǎn)】順序存儲(chǔ)結(jié)構(gòu)中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲(chǔ)單元中,每個(gè)數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計(jì)算得到,從而實(shí)現(xiàn)了隨機(jī)存取。對(duì)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),要對(duì)某結(jié)點(diǎn)進(jìn)行存取,都得從鏈的頭指針指向的結(jié)點(diǎn)開始,這是一種順序存取的存儲(chǔ)結(jié)構(gòu)。
【考點(diǎn)鏈接】順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的定義和性質(zhì),兩種存儲(chǔ)結(jié)構(gòu)的操作方法。
48.B解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。
若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符,其中的逗號(hào)也必須輸入。
49.C解析:關(guān)于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個(gè)數(shù)與數(shù)組元素的個(gè)數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時(shí),系統(tǒng)將自動(dòng)給后面各行的元素補(bǔ)初值0;③在給二維數(shù)組賦初值時(shí)可以不用行花括號(hào)對(duì)。選項(xiàng)C)應(yīng)該是inta[3][2]={{1,2},{3,4},{5,6,}};
50.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。
51.B在本題中,for循環(huán)結(jié)構(gòu)缺省了表達(dá)式2,而表達(dá)式2的作用是用來判斷循環(huán)是否結(jié)束,在缺省該語句的情況下,循環(huán)將無法結(jié)束,從題目給出的四個(gè)循環(huán)結(jié)構(gòu)我們可以看出,能構(gòu)成死循環(huán)的是選項(xiàng)B,該選項(xiàng)中for結(jié)構(gòu)的表達(dá)式2一直為1,即真,這樣循環(huán)就無法結(jié)束。因此,本題正確的答案選B。
52.B解析:指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。所以題中將p+6指的是將指針向后移動(dòng)了6個(gè)存儲(chǔ)單元,指向b[6],存放的是b[6]的地址。
53.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時(shí),q已經(jīng)指向了一個(gè)具體的存儲(chǔ)單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。
54.B
55.A解析:本題定義了一個(gè)二維字符數(shù)組arr[2][4],該二維數(shù)組可以看成一個(gè)含有兩個(gè)元素arr[0]、arr[1]的一維字符數(shù)組,分別看成是含有4個(gè)元素,也可以看成是以arr為首地址的一個(gè)一維字符數(shù)組。函數(shù)strcpy(arr,“you”)是把字符串“you”復(fù)制到arr指向的空間,strcpy(arr[1],“me”)同理,在以arr[0]為首地址的字符數(shù)組中有“you”,在以air[1]為首地址的字符數(shù)組中有“me”。arr[0][3]=‘&’;是給arr[0]為首地址的字符數(shù)組的第4個(gè)元素賦值為‘&’。因此輸出為you&me。
56.A解析:在函數(shù)fun1()中,首先將形參p的內(nèi)容存入臨時(shí)指針q中,然后使用—個(gè)while循環(huán),當(dāng)q所指內(nèi)容不是字符串結(jié)束標(biāo)志'\\0\'時(shí),讓q所指內(nèi)容增1,然后將指針q增1指向下一個(gè)位置。所以函數(shù)fun1()實(shí)現(xiàn)的功能是:將傳入字符串的所有字符自增1。主函數(shù),指針p在被傳入fun1()函數(shù)之前,初始化指向的是寧符數(shù)組a的第4個(gè)元素\'g\',所以最終輸出的結(jié)果應(yīng)該是Prohsbn。故應(yīng)該選擇A。
57.C解析:本題的選項(xiàng)A)和B)犯了同樣的錯(cuò)誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預(yù)見的,所指的單元也是不可預(yù)見的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
58.C解析:函數(shù)f()有3個(gè)形式參數(shù)f1、f2和x,其中f1、f2是指向函數(shù)的指針變量。在main()函數(shù)中執(zhí)行了函數(shù)調(diào)用“f(fa,fb,2)”,從而使f()的形式參數(shù)f1指向了fa,形式參數(shù)f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭健康管理AI在醫(yī)療領(lǐng)域的應(yīng)用與前景
- 2025年度鋼筋工程設(shè)計(jì)合同10篇
- 小學(xué)生情感教育在數(shù)學(xué)與科學(xué)課堂中的融合實(shí)踐
- 教育游戲與學(xué)習(xí)心理學(xué)的結(jié)合案例
- 2025年房屋買賣定金支付協(xié)議2篇
- 2025年房產(chǎn)投資咨詢與購買協(xié)議3篇
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)推動(dòng)制造業(yè)的智能化升級(jí)
- 教育行業(yè)中的技術(shù)趨勢與創(chuàng)新方向
- Unit 5 Working the Land Assessing Your Progress 說課稿-2024-2025學(xué)年高中英語人教版(2019)選擇性必修第一冊
- 7納米技術(shù)就在我們身邊說課稿-2023-2024學(xué)年四年級(jí)下冊語文統(tǒng)編版
- 漢語拼音默寫表及拼讀專練
- 肌力的評(píng)定與護(hù)理
- 工業(yè)機(jī)器人論文3000字(合集4篇)
- 【中小企業(yè)融資難問題探究的國內(nèi)外綜述5800字】
- DL∕T 2138-2020 電力專利價(jià)值評(píng)估規(guī)范
- 深圳市購物中心租金調(diào)查
- 我國無菌包裝行業(yè)消費(fèi)量已超千億包-下游需求仍存擴(kuò)容潛力
- 大數(shù)據(jù)管理與考核制度大全
- 大學(xué)面試后感謝信
- 2022屆上海高考語文調(diào)研試測卷詳解(有《畏齋記》“《江表傳》曰…”譯文)
- SBT11229-2021互聯(lián)網(wǎng)舊貨交易平臺(tái)建設(shè)和管理規(guī)范
評(píng)論
0/150
提交評(píng)論