版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年安徽省亳州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.以下敘述中錯(cuò)誤的是()。
A.將函數(shù)內(nèi)的局部變量說(shuō)明為static存儲(chǔ)類是為了限制其他編譯單位的引用
B.—個(gè)變量作用域的開(kāi)始位置完全取決于變量定義語(yǔ)句的位置
C.全局變量可以在函數(shù)以外的任何部位進(jìn)行定義
D.局部變量的“生存期”只限于本次函數(shù)調(diào)用,因此不能將局部變量的運(yùn)算結(jié)果保存至下一次調(diào)用
3.下面不能正確表示a*b/(c*d)的表達(dá)式是()。
A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d
4.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.將磁盤(pán)文件的內(nèi)容顯示在屏幕上
B.將兩個(gè)磁盤(pán)文件合為一個(gè)
C.將一個(gè)磁盤(pán)文件復(fù)制到另一個(gè)磁盤(pán)文件中
D.將兩個(gè)磁盤(pán)文件合并后送屏幕
5.表達(dá)式“a+=a-=a=9”的值是()。
A.18B.-9C.0D.9
6.有以下程序:#include<stdio.h>main(){inty=10;while(y--);printf(“y=%d\n”,y);}程序運(yùn)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=1D.while構(gòu)成無(wú)限循環(huán)
7.軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合
8.鏈表不具有的特點(diǎn)是()。
A.插入、刪除不需要移動(dòng)元素B.可隨機(jī)訪問(wèn)任一元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與線性長(zhǎng)度成正比
9.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}
A.求字符串的長(zhǎng)度B.求字符串存放的位置C.比較兩個(gè)字符串的大小D.將字符串x連接到字符串y后面
10.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf("%d\n",S(k+j));}程序運(yùn)行后的輸出結(jié)果是()。A.197B.143C.33D.28
11.下列定義語(yǔ)句中錯(cuò)誤的是()。
A.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
B.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C.intx[][3]={0},{1},{2},{3}};
D.intx[][3]={1,2,3,4};
12.有以下函數(shù)char*fun(char*p){returnp;}該函數(shù)的返回值是______。
A.無(wú)確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值
13.歸并排序采用的算法設(shè)計(jì)方法屬于()
A.歸納法B.分治法C.貪心法D.回溯方法
14.若i和k都是int類型變量,有以下for語(yǔ)句:for(i=0,k=-1;k=1;k++)printf("*****\n");下面關(guān)于語(yǔ)句執(zhí)行情況的敘述中正確的是()。
A.循環(huán)體執(zhí)行兩次B.循環(huán)體執(zhí)行一次C.循環(huán)體一次也不執(zhí)行D.構(gòu)成無(wú)限循環(huán)
15.以下不能定義為用戶標(biāo)識(shí)符的是()。
A.scanfB.VoidC.3comD.int
16.下列不正確的轉(zhuǎn)義字符是()。
A.'\\'B.'\t'C.'\n'D.'088'
17.有以下程序:#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);
18.若有語(yǔ)句“void*P=malloc(80);”,則以下敘述錯(cuò)誤的是()。
A.可以通過(guò)指針P直接訪問(wèn)用malloc開(kāi)辟的這塊內(nèi)存
B.p所指內(nèi)存可以通過(guò)強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有20個(gè)int型元素的一維數(shù)組來(lái)使用
C.p所指內(nèi)存可以通過(guò)強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有10個(gè)double型元素的一維數(shù)組來(lái)使用
D.P所指內(nèi)存可以通過(guò)強(qiáng)制類型轉(zhuǎn)換當(dāng)作具有80個(gè)char型元素的一維數(shù)組來(lái)使用
19.有如下程序段:
inta=14,b=15,x;
charc='A';
x=(a&&b)&&(c<'B'):
執(zhí)行該程序后,x的值為()。A.A.trueB.falseC.0D.1
20.以下敘述中錯(cuò)誤的是()
A.在C程序中,APH和aph是兩個(gè)不同的變量
B.C程序中的變量,代表內(nèi)存中的一個(gè)存儲(chǔ)單元,它的值可以根據(jù)需要隨時(shí)修改
C.在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無(wú)誤地表示
D.在C程序中,一個(gè)正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來(lái)表示
二、2.填空題(20題)21.以下程序的功能是:從低位開(kāi)始取出長(zhǎng)整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。請(qǐng)?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}
22.以下程序運(yùn)行后的輸出結(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));
}
23.函數(shù)mystrlen(char*s)的功能是求字符串s的長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>
mystrlen(char*s)
{char*t:
t=s;
while(【】)t++;
return(t-s);
}
24.以下程序的輸出結(jié)果是【】。
#defineMAX(x,y)(x)>(y)?(x)L:(y)
main()
{inta=5,b=2,C=3,d=3,t;
t=MAX(a+b,c+D)*10;
printf("%d\n",t);
}
25.下列執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0
for(i=0;i<10;i++)atr[i]=i
for(i=1,i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
26.以下程序運(yùn)行后的輸出結(jié)果是______。
#include<string.h>
voidfun(char*s,intp,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
}
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s);
}
27.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤(pán)輸入:B33<回車>,則輸出結(jié)果是【】。
#include
main()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
28.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為_(kāi)_____。
29.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
charc1,c2;
for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);
printf("\n");
}
30.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。
31.軟件生命周期包括8個(gè)階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開(kāi)發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。
32.若有定義:inta[4][4]={{l,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。
33.在運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是【】。
34.數(shù)據(jù)庫(kù)系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。
35.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:
1
11
121
1331
14641
其構(gòu)成規(guī)律是,第0列元素和主對(duì)角線元素均為1,其余元素為其左上方和正上方元素之和,數(shù)據(jù)的個(gè)數(shù)每行遞增1。請(qǐng)將程序補(bǔ)充完整。
#defintN6
voidYangHui(int*[N][N])
{
inti,j;
x[0][0]=1
for(i=1;i<N;i++)
{
x[i][0]=【】=1
for(j=1;j<i;j++)
x[i][j]=【】;
}
}
36.下面程序
main()
{intx,y,m,n;
x=5;y=8;
m=++x,x;
n=y+y++;
printf("%d,%d,%d,%d",x,y,m,n);
}
運(yùn)行后,x,y,m,n的值是______。
37.以下程序調(diào)用函數(shù)swap_p將指針s和t所指單元(a和b)中的內(nèi)容交換,請(qǐng)?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;}
38.下列程序的輸出結(jié)果是______。
longfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
39.下面程序的運(yùn)行結(jié)果是()。#defineP(A)printf("%d",A)main(){intj,a[]={1,2,3,4,5,6,7},i=5;for(j=3;j>1;j--){switch(j){case1:case2:P(a[i++]);break;case3:P(a[--i]);}}}
40.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為_(kāi)_____。
三、1.選擇題(20題)41.已定義c為字符型變量,則下列語(yǔ)句中正確是______。
A.c='97';B.c="97";C.c=97;D.c="a";
42.若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):
inti=8,j=9;
則下列語(yǔ)句:
printf("i=%u,j%x\n",i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.8.9C.89D.i=8,j=8
43.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
44.下列函數(shù)定義中,會(huì)出現(xiàn)編譯錯(cuò)誤的是______。
A.max(intx,inty,int*z)
B.intmax(intx,y){*z=x>y?x:y;}{intz;z=x>y?X:y;returnz;}
C.max(intx,inty)
D.intmax(intx,inty){intz;{returnx>y?x:y;}z=x>y?x:y;return(z);}
45.若以下定義:structlink{intdata;strucklink*next;}a,b,c,*p,*q;且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):
指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語(yǔ)句組是
A.a.next=c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p->next;
D.(*p).next=q;(*q).next=&b;
46.下列說(shuō)法中不正確的是()。
A.指針是一個(gè)變量B.指針中存放的是數(shù)值C.指針可以進(jìn)行加、減等算術(shù)運(yùn)算D.指針變量占用存儲(chǔ)空間
47.對(duì)長(zhǎng)度為N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為_(kāi)_____。A.N+1B.NC.(N+1)/2D.N/2
48.數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。A.編碼設(shè)計(jì)B.測(cè)試階段C.運(yùn)行階段D.物理設(shè)計(jì)
49.以下選項(xiàng)中非法的字符串常量是()
B.\X0\011
C.\\\t"
D.\n\007\n
50.下列語(yǔ)句執(zhí)行后的結(jié)果是()y=5;p=&y;x=*p++;
A.x=5,y=5B.x=5,y=6C.x=6,y=5D.x=6,y=6
51.下列程序的輸出結(jié)果是()。#include<stdio.h>voidp(int*x){printf("%d",++*x);}voidmain(){inty=3;p(&y);}
A.3B.4C.2D.5
52.在C語(yǔ)言程序中,下列說(shuō)法正確的是()。
A.函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套
B.函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
C.函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
D.函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套
53.以下數(shù)組定義中錯(cuò)誤的是A.intx[][3]={0};
B.intx[2][3]={{l,2},{3,4},{5,6}};
C.intx[][3]={{l,2,3},{4,5,6}};
D.intx[2][3]={l,2,3,4,5,6};
54.有以下程序:voidswap(char*x,char*y){cbart;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,abcB.abc,123C.1bc,a23D.321,cba
55.下列程序的輸出結(jié)果是#include"stdio.h"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
56.下列敘述中錯(cuò)誤的是()。
A.在C語(yǔ)言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語(yǔ)言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容
C.在C語(yǔ)言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別
D.在C語(yǔ)言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量
57.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
58.有以下程序:#include<stdio.h>main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++)}for(j=0;j<2;j++)prinff("%2d",a[i][j]);prinff("\n");}}若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是()。
A.產(chǎn)生錯(cuò)誤信息B.102000C.123000D.102030
59.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序運(yùn)行后的輸出結(jié)果是()。
A.0B.1C.-1D.NULL沒(méi)定義,出錯(cuò)
60.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
四、選擇題(20題)61.(VC++)若有以下定義,則對(duì)b數(shù)組元素正確的引用是
intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]
62.有以下程序
#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);
}
程序的運(yùn)行結(jié)果是
A.3B.5
C.6D.8
63.
64.有以下結(jié)構(gòu)體說(shuō)明、變量定義和賦值語(yǔ)句
65.
66.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.8B.4C.6D.2
67.以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是()。
A.do{*t++=*8++;}while(*s);
B.for(i=0;t[i]=s[i];i++);
C.while(*t=*s){t++;s++;}
D.for(i=0,j=0;t[i++]=s[j++];);
68.
69.
70.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
71.
72.下列選項(xiàng)中屬于軟件生命周期中開(kāi)發(fā)階段任務(wù)的是()。
A.詳細(xì)設(shè)計(jì)B.運(yùn)行維護(hù)C.可行性研究D.需求分析
73.CSS指的是下列()的縮寫(xiě)。
A.ComputerStyle.Sheets
B.CascadingStyle.Sheets
C.CreativeStyle.Sheets
D.ColorfulStyle.Sheets
74.
75.有以下程序l
該程序試圖通過(guò)指針P為變量n讀人數(shù)據(jù)并輸出,但程序有多處錯(cuò)誤,以下語(yǔ)句正確的是()。
76.(55)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是()
A.程序結(jié)構(gòu)應(yīng)有助于讀者理解
B.不限制goto語(yǔ)句的使用
C.減少或取消注解行
D.程序越短越好
77.以下定義數(shù)組的語(yǔ)句錯(cuò)誤的是()。
A.intnum[]={1,2,3,4,5,6};
B.intnum[][3]={{1,2},3,4,5,6};
C.intnum[2][4]={{1,2},{3,4},{5,6}};
D.intnum[][4]={1,2,3,4,5,6};
78.有以下函數(shù):
以下關(guān)于aaa函數(shù)功能敘述正確的是()。
A.將串s復(fù)制到串tB.比較兩個(gè)串的大小C.求字符串s的長(zhǎng)度D.求字符串s所占字節(jié)數(shù)
79.下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。
A.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C.文件由數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
D.文件由字符序列組成,其類型只能是文本文件
80.有以下程序
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.下列程序定義了M×M的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫(xiě)函數(shù)fun(intarr[][M]),該函數(shù)的功能是使數(shù)組左下半三角元素中的值全部置成0。例如,arr數(shù)組中的值為:
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
參考答案
1.B
2.A將函數(shù)內(nèi)的局部變量說(shuō)明為static存儲(chǔ)類,第1次調(diào)用該函數(shù)時(shí)才對(duì)其初始化,后續(xù)調(diào)用時(shí)使用上一次調(diào)用結(jié)束后的值;函數(shù)體內(nèi)的局部變量無(wú)論是否聲明為stat\x1fic,外部編譯單位都不能引用,選項(xiàng)A錯(cuò)誤,其他選項(xiàng)正確。本題答案為A選項(xiàng)。
3.A
4.C解析:程序首先定義了兩個(gè)文件類型的指針fp1、fp2。為讀打開(kāi)文件filel,并讓指針fp1指向該文件;為寫(xiě)打開(kāi)文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個(gè)字符,輸出到文件file2中,直到文件file1結(jié)束。因此程序的功能是將文件file1中的內(nèi)容復(fù)制到文件file2中。
5.C首先計(jì)算表達(dá)式“a=9”;再計(jì)算表達(dá)式“a-=9”;即“a=a-9”,結(jié)果為0;最后計(jì)算表達(dá)式“a+=0”,即“a=a+0”,所以最終結(jié)果為0。故本題答案為C選項(xiàng)。
6.B執(zhí)行“y--”直到值為0。退出循環(huán)。由于“y--”是后綴自減運(yùn)算,先使用再自減,因此退出循環(huán)時(shí),y的值為-1。故本題答案為B選項(xiàng)。
7.B一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。
8.BB選項(xiàng)的特點(diǎn)是順序存儲(chǔ)結(jié)構(gòu)的特點(diǎn),即數(shù)組的特點(diǎn)。
9.A解析:在函數(shù)體內(nèi)定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長(zhǎng)度。
10.B此程序考查帶參數(shù)的宏定義,S(k+j)展開(kāi)后即4*(k+j)*k+j+1,所以結(jié)果為l43,答案為B。
11.B二維數(shù)組定義的一般形式是:類型說(shuō)明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]。其中常量表達(dá)式1表示第1維長(zhǎng)度,常量表達(dá)式2表示第2維長(zhǎng)度。若對(duì)二維數(shù)組的全部元素賦初值,第1維長(zhǎng)度可以不給出。但如果只確定行數(shù),而不確定列數(shù),就無(wú)法正確賦值。故本題答案為B選項(xiàng)。
12.B解析:p本身就是一個(gè)字符型指針變量,返回p也就是返回變量p中存放的地址值。
13.B解析:以2一路歸并排序?yàn)槔M(jìn)行說(shuō)明。2一路歸并是指將兩個(gè)有序序列合并成一個(gè)有序序列,其基本過(guò)程為;從兩個(gè)序列中各取一個(gè)元素,進(jìn)行比較,輸出較小的元素,從較小元素所在序列取下一個(gè)元素,與未輸出的那個(gè)元素比較,輸出較小者。依此類推,直到輸出序列包含了兩個(gè)初始有序序列的全部元索。對(duì)于一個(gè)初始無(wú)序的序列,可以先將其等分為兩個(gè)無(wú)序的子序列,對(duì)這兩個(gè)子序列再次二分,重復(fù)該過(guò)程,直到分出的子序列中僅包含一個(gè)元素時(shí)(一個(gè)元素自然是有序的)為止,然后在反復(fù)進(jìn)行2一路歸并的過(guò)程,最后完成排序。
14.D此題考查的是基本的循環(huán),答案為D。
15.D解析:標(biāo)識(shí)符是C語(yǔ)言中用來(lái)表示變量名、數(shù)組名、函數(shù)名、指針名、結(jié)構(gòu)名、聯(lián)合名、枚舉常數(shù)名、用戶定義的數(shù)據(jù)類型名、語(yǔ)句標(biāo)號(hào)等用途的字符序列。標(biāo)識(shí)符由1~32個(gè)字符組成,第一個(gè)字符必須是字母或下劃線,后面的字符可以是字母、數(shù)字或下劃線。標(biāo)識(shí)符不能與C關(guān)鍵字相同,并區(qū)分大小寫(xiě)。選項(xiàng)D)錯(cuò)誤,因?yàn)閕nt是C語(yǔ)言中的關(guān)鍵字。
16.D解析:'\\\\'是反斜線轉(zhuǎn)義字符:'\\t'是水平跳格轉(zhuǎn)義字符:'\\n'是換行轉(zhuǎn)義字符;C語(yǔ)言中沒(méi)有規(guī)定'088'為轉(zhuǎn)義字符。
17.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)的語(yǔ)句為“pt=p->next;p->next=p->next->next;free(pt);”。故本題答案為A選項(xiàng)。
18.A題干中使用malloc函數(shù)分配了80個(gè)字節(jié)的內(nèi)存單元,void指針p指向該內(nèi)存單元。在C語(yǔ)言中,void*不能直接使用,必須利用強(qiáng)制類型轉(zhuǎn)換將其轉(zhuǎn)成所需的類型才能使用,選項(xiàng)A錯(cuò)誤。int類型的元素占4個(gè)字節(jié),所以可以將p指向的內(nèi)存強(qiáng)制類型轉(zhuǎn)換成具有20個(gè)int類型的一維數(shù)組來(lái)使用,同理,也可以強(qiáng)制類型轉(zhuǎn)換成10個(gè)double類型的一維數(shù)組來(lái)使用,或強(qiáng)制類型轉(zhuǎn)換成80個(gè)char類型的一維數(shù)組來(lái)使用,選項(xiàng)B、C、D正確。故本題答案為A選項(xiàng)。
19.D在C語(yǔ)言中,當(dāng)表達(dá)式成立時(shí)用l表示,不成立時(shí)用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故選擇D選項(xiàng)。
20.C
21.s%10*s1+t
22.gaegae解析:本題定義了兩個(gè)字符串?dāng)?shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串?dāng)?shù)組a和b,抽打for循環(huán),當(dāng)if(*(p1+k)==*(p2+k))條件為真,執(zhí)行輸出*(p1+k)對(duì)應(yīng)的字符。即當(dāng)k=0時(shí),*(p1+k)對(duì)應(yīng)的字符串?dāng)?shù)組a中的字符L,*(p2+k)對(duì)應(yīng)的字符串?dāng)?shù)組b中字符P,因此if(*(p1+k)==*(p2+k))條件為假,不執(zhí)行printf語(yǔ)句,依此類推,將字符串?dāng)?shù)組a和b中對(duì)應(yīng)位置上的字符——比較,如果對(duì)應(yīng)位置上的字符相同,則輸出該字符。
23.*t*t解析:通過(guò)while循環(huán)掃描字符串,遇到字符‘\\0’結(jié)束,并用t統(tǒng)計(jì)字符串的長(zhǎng)度。
24.77解析:在C語(yǔ)言中,宏定義是直接替換的,所以在對(duì)表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。
在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。
25.1212解析:本題的第—個(gè)for循環(huán)用于始數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
26.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語(yǔ)言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長(zhǎng)度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實(shí)現(xiàn)的功能簡(jiǎn)單來(lái)說(shuō)就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長(zhǎng)度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個(gè)字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因?yàn)閟[5]為'\\0',所以后面的字符不會(huì)輸出)。
27.1B1B解析:從鍵盤(pán)輸入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在輸出時(shí)均需要把a(bǔ),b轉(zhuǎn)化為字符型,因此輸出為1B。
28.對(duì)象對(duì)象解析:類描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書(shū)是一個(gè)對(duì)象,而這些具體的書(shū)都有共同的性質(zhì),它們都屬于更一般的概念“書(shū)”這一類對(duì)象。一個(gè)具體對(duì)象稱為類的實(shí)例。
29.918273645918273645解析:程序通過(guò)for循環(huán)將字符'0'~'9'從前向后,同時(shí)從后向前依次輸出,所以輸出結(jié)果為:0918273645。
30.BB解析:因?yàn)閏是字符類型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
31.軟件開(kāi)發(fā)軟件開(kāi)發(fā)解析:軟件生命周期可以分為3個(gè)時(shí)期:軟件定義期,包括問(wèn)題定義、可行性研究和需求分析3個(gè)階段;軟件開(kāi)發(fā)期,包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段。編碼和測(cè)試屬于軟件開(kāi)發(fā)階段。
32.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有,4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[O][2]、a[0][3]。
33.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運(yùn)算過(guò)程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運(yùn)算統(tǒng)一起來(lái)。循環(huán)鏈表具有兩個(gè)特點(diǎn):①在循環(huán)鏈表中增加了一個(gè)表頭結(jié)點(diǎn),其數(shù)據(jù)域?yàn)槿我饣蚋鶕?jù)需要來(lái)設(shè)置,指針域指向線性表的第一個(gè)元素的結(jié)點(diǎn)。循環(huán)鏈表的頭指針指向表頭結(jié)點(diǎn)。②循環(huán)鏈表中最后一個(gè)結(jié)點(diǎn)的指針不是空,而是指向表頭結(jié)點(diǎn)。
34.外模式外模式解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見(jiàn)到的數(shù)據(jù)模式。
35.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中有兩重循環(huán)。在第一層for循環(huán)中將每行的第0列賦值為1,對(duì)角線上的元素賦值為1,顯然在第一個(gè)空白處應(yīng)該填入對(duì)角線上的元素即x[i][i],在第二重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對(duì)角線的元素外其他元素為其對(duì)應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空白處應(yīng)該填入x[i-1][j-1]+x[i-1][j]。
36.69616。6,9,6,16。解析:賦值語(yǔ)句m=++x,x;是將逗號(hào)表達(dá)式的值賦給m,x和m的值都是6,賦值語(yǔ)句n=y+y++;是將y+y的值16賦給n,再執(zhí)行y的自加運(yùn)算,y的值變?yōu)?。
37.&s&t&s,&t解析:指針做函數(shù)參數(shù)時(shí),形參和實(shí)參指向同一個(gè)數(shù)據(jù),所以函數(shù)中對(duì)形參所指向的數(shù)據(jù)的改變也能影響到實(shí)參。本題中函數(shù)swap_p的形參為指向指針的指針,即雙重指針,原理跟普通的指針是一樣的。注意:通過(guò)指針來(lái)引用一個(gè)存儲(chǔ)單元。
38.考查ifelse語(yǔ)句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。\r\n\r\n
39.5555解析:分析程序執(zhí)行過(guò)程,第一次循環(huán)時(shí),j=3,i=5,因?yàn)閟witch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時(shí),j=2,i=4,因?yàn)閟witch(2),所以執(zhí)行case2,調(diào)用P(a[i++])=P(a[4])=P(5),輸出5,之后i自加1等于5。
40.1212解析:本題考查逗號(hào)表達(dá)式的運(yùn)算規(guī)則。逗號(hào)表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號(hào)表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒(méi)有給a賦值,因此a的值不變;接下來(lái)執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。
41.C解析:\'97\'不是字符變量,選項(xiàng)A錯(cuò)誤;'97'是字符串,選項(xiàng)B錯(cuò)誤;'a'是字符串,選項(xiàng)D錯(cuò)誤;正確答案是選項(xiàng)C。
42.A解析:本題考查函數(shù)printf()的格式。“%x”表示以+六進(jìn)制輸出整型數(shù)據(jù);“%u”表示以+進(jìn)制無(wú)符號(hào)型輸出整型數(shù)據(jù)。printf函數(shù)中格式說(shuō)明符之前插入的任何字符都原樣輸出。
43.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過(guò)程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。
44.B解析:在C語(yǔ)言中,不可以在函數(shù)的參數(shù)聲明列表中用一個(gè)類型名指定多個(gè)參數(shù)。故選項(xiàng)B是錯(cuò)誤的。其正確的表示方式應(yīng)為:
intmax(intx,inty){……}
或
intmax(x,y)
intx,y;
{……}
45.D解析:本題考核的知識(shí)點(diǎn)是在鏈表中插入結(jié)點(diǎn)的操作。在本題中指針p.指向變量a,q指向變量c。要把c插入到變量n和變量b之間,就應(yīng)該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b.所以,4個(gè)選項(xiàng)中D為所選。
46.B解析:指針中存放的是變量的地址,指針也可以進(jìn)行增減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是—個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。
47.B解析:在進(jìn)行順序查找過(guò)程中,如果被查的元素是線性表中的最后一個(gè),或者被查元素根本不性表中,則為了查找這個(gè)元素需要與線性表中所有元素進(jìn)行比較,這是順序查找最壞的情況。
48.DD)【解析】數(shù)據(jù)庫(kù)設(shè)計(jì)目前一段采用生命周期法.即將整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫(kù)設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。
49.4
50.A
51.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在函數(shù)調(diào)用時(shí),形參是指向?qū)崊⒌闹羔樧兞?,則printf的執(zhí)行結(jié)果為3+1=4。
52.B解析:本題考查函數(shù)調(diào)用的基本概念。因?yàn)楹瘮?shù)的結(jié)果是個(gè)未知量,而函數(shù)定義時(shí)不能使用未知量,所以函數(shù)定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套。
53.B(16)B)解析:二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化。②不分行的初始化。③部分?jǐn)?shù)組元素初始化。④省略第一維的定義,不省略第二維的定義。選項(xiàng)B)等號(hào)右邊分了3行,大于等號(hào)左邊數(shù)組的行數(shù)2。
54.C解析:函數(shù)swap()實(shí)現(xiàn)的功能為交換字符指針x和y首位的數(shù)值。
55.B解析:continue語(yǔ)句的作用是跳過(guò)本次循環(huán)體中余下尚未執(zhí)行的語(yǔ)句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時(shí),a就會(huì)增1,之后執(zhí)行continue語(yǔ)句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。
56.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。
57.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號(hào)隔開(kāi)輸出兩個(gè)十進(jìn)制整數(shù),每個(gè)整數(shù)域?qū)捠?。而在C語(yǔ)言中規(guī)定:當(dāng)域?qū)捫∮趯?shí)際寬度時(shí)域?qū)挷黄鹱饔?,按?shí)際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進(jìn)制整數(shù)12,等于十進(jìn)制的10)。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
58.B解析:程序中a[3)[2]={0}將數(shù)組元素全部初始化
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度律師事務(wù)所專業(yè)復(fù)印機(jī)及法律文件管理系統(tǒng)采購(gòu)合同3篇
- 二零二五年度禽類養(yǎng)殖標(biāo)準(zhǔn)化示范項(xiàng)目禽類采購(gòu)合同3篇
- 二零二五年度電子商務(wù)大賽賽事知識(shí)產(chǎn)權(quán)保護(hù)與侵權(quán)處理合同3篇
- 2024種植業(yè)務(wù)戰(zhàn)略合作伙伴合同樣本版B版
- 二零二五版高端石材采購(gòu)與安裝服務(wù)合同3篇
- 二零二五年度車隊(duì)車輛租賃與售后服務(wù)合同2篇
- 2024藥品采購(gòu)及冷鏈物流服務(wù)保障協(xié)議3篇
- 2025年度校園食堂廚房設(shè)備采購(gòu)與安裝綜合服務(wù)合同2篇
- 2025年度拍賣合同信息安全與隱私保護(hù)
- 2025年度智能穿戴設(shè)備銷售合同協(xié)議4篇
- 2024年工程咨詢服務(wù)承諾書(shū)
- 青桔單車保險(xiǎn)合同條例
- 車輛使用不過(guò)戶免責(zé)協(xié)議書(shū)范文范本
- 《獅子王》電影賞析
- 2023-2024學(xué)年天津市部分區(qū)九年級(jí)(上)期末物理試卷
- DB13-T 5673-2023 公路自愈合瀝青混合料薄層超薄層罩面施工技術(shù)規(guī)范
- 河北省保定市定州市2025屆高二數(shù)學(xué)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 哈爾濱研學(xué)旅行課程設(shè)計(jì)
- 2024 smart汽車品牌用戶社區(qū)運(yùn)營(yíng)全案
- 中醫(yī)護(hù)理人文
- 2024-2030年中國(guó)路亞用品市場(chǎng)銷售模式與競(jìng)爭(zhēng)前景分析報(bào)告
評(píng)論
0/150
提交評(píng)論