![2021年山東省聊城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第1頁](http://file4.renrendoc.com/view/00d4e9bb95c841ee2fb908bb8b3be693/00d4e9bb95c841ee2fb908bb8b3be6931.gif)
![2021年山東省聊城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第2頁](http://file4.renrendoc.com/view/00d4e9bb95c841ee2fb908bb8b3be693/00d4e9bb95c841ee2fb908bb8b3be6932.gif)
![2021年山東省聊城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第3頁](http://file4.renrendoc.com/view/00d4e9bb95c841ee2fb908bb8b3be693/00d4e9bb95c841ee2fb908bb8b3be6933.gif)
![2021年山東省聊城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第4頁](http://file4.renrendoc.com/view/00d4e9bb95c841ee2fb908bb8b3be693/00d4e9bb95c841ee2fb908bb8b3be6934.gif)
![2021年山東省聊城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)_第5頁](http://file4.renrendoc.com/view/00d4e9bb95c841ee2fb908bb8b3be693/00d4e9bb95c841ee2fb908bb8b3be6935.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年山東省聊城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運(yùn)行后的輸出結(jié)果是()。
A.7B.0C.3D.8
2.二叉樹的第三層最少有________個(gè)結(jié)點(diǎn)。
A.0B.1C.2D.3
3.下列定義數(shù)組的語句中,正確的是()。
A.intN=10;intx[N]:
B.#defineNl0;intx[N];
C.intx[0..10];
D.intx[];
4.
5.
6.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是()。
A.7B.8C.6D.2
7.有以下函數(shù):intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。
A.將y所指字符串賦給x所指存儲(chǔ)空間
B.查找x和y所指字符串中是否有‘\0’
C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
D.統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)
8.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90
B.Zhao,m,85,Sun,f,90
C.Zhao,m,85,Qian,f,95
D.Sun,f,90,Qian,f,95
9.以下敘述中正確的是()。
A.結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組或指針變量
B.不同結(jié)構(gòu)體的成員名不能相同
C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型可以是本結(jié)構(gòu)體類型
D.結(jié)構(gòu)體定義時(shí),類型不同的成員項(xiàng)之間可以用逗號(hào)隔開
10.若有如下定義,則__________是對數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
11.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
12.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.4284B.2870C.2668D.3981
13.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
14.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
15.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}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
16.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是()。
A.希爾排序B.冒泡排序C.直接插入排序D.直接選擇排序
17.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a(chǎn)[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
18.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
19.以下敘述中正確的是()。
A.用C語言編寫的程序只能放在一個(gè)程序文件中
B.C語言程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句
C.C語言程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面
D.C語言程序書寫格式自由,一個(gè)語句可以寫在多行上
20.以下敘述正確的是
A.continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語句
二、2.填空題(20題)21.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
stmctSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。【】t[20]
22.以下程序段用以統(tǒng)計(jì)鏈表中元素的個(gè)數(shù)。其中first指向鏈表第一個(gè)結(jié)點(diǎn),count用來統(tǒng)計(jì)結(jié)點(diǎn)個(gè)數(shù)。請?zhí)羁铡?/p>
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
23.以下程序的輸出結(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);
}
24.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。
25.下列程序的運(yùn)行結(jié)果為【】。
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
main()
{enumweekdayworkday,weekend;
inti,a[8];
workday=tue;
weekend=sun;
printf("\ntueday=%dsunday=%d;",workday,week_end);
workday=sun+tue;
week_end=(enumweekday)3;
printf("tueday=%dsunday=%d;",workday,weekend);
a[sun]=sun;
a[mon]=mon;
a[tue]=rue;
a[wed]=wed;
a[thu]=thu;
a[fri]=fri;
a[sat]=sat;
for(i=l;i<=7;i++)printf("%d",a[i]);
}
26.已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結(jié)果是()。
#include<ctype.h>
#include<string.h>
voidfun(chars[])
{inti,j;
for(i=0,j=0;s[i];i++)
s[j]='\0';
}
main()
{charss[80]="goodmorning";
fun(ss);
printf("%s",ss);
}
27.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
28.下面程序的運(yùn)行結(jié)果是______。
typedefunionstudent
{
charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{
STUa[5];
printf("%d\n",sizeof(A));
}
29.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
30.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
31.關(guān)系代數(shù)是關(guān)系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運(yùn)算對象和運(yùn)算結(jié)果均為()。
32.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
33.在scanf()函數(shù)調(diào)用語句中,可以在格式字符和%號(hào)之間加上一個(gè)星號(hào),它的作用是跳過對應(yīng)的輸入數(shù)據(jù);當(dāng)輸入以下數(shù)據(jù)時(shí),100200300400500<回車>,下面語句的執(zhí)行結(jié)果為【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
34.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式2.0+y/x的值為【】。
35.與十進(jìn)制數(shù)101等值的二進(jìn)制數(shù)為【】。
36.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱為對象的______。
37.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
doublefun(doublex){return(x*x-2*x+6);}
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun([6]);
y2=fun([7]);
printf("y1=%lf,y2=%lf\n",y1,y
38.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。
39.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
40.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=O;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
三、1.選擇題(20題)41.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。
A.不確定的值B.一個(gè)整數(shù)C.形參p中存放的值D.形參p的地址值
42.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66<回車>。則輸出結(jié)果是
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
43.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。
A.0,7B.7,7C.0,6D.1,6
44.設(shè)變量已正確定義,則以下能正確計(jì)算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;
45.有以下程序
#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);
}
程序的運(yùn)行結(jié)果是
A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
46.有以下程序
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,
47.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
48.結(jié)構(gòu)化程序有3種基本結(jié)構(gòu)組成,3種基本結(jié)構(gòu)組成的算法______。
A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)
49.設(shè)有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語句是
A.p=&data.n;
B.*p=data.n;
C.p=(structsk*)&data.n;
D.p=(structsk*)data.n:
50.設(shè)q1和q2是指向一個(gè)float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);
51.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
52.以下程序運(yùn)行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
53.表達(dá)式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8
54.設(shè)有以下語句:chara=3,b=6,c;c=ab<<2;則c的二進(jìn)制值是()。
A.11011B.10100C.11100D.11000
55.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);程序執(zhí)行后的輸出結(jié)果是()。
A.45B.50C.60D.55
56.若二維數(shù)組a有m列,則在a[i][j]剛前的元素個(gè)數(shù)為()。
A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1
57.下面程序main(){intx=32;printf("%d\n",x=x<<1);}的輸出是______。
A.100B.160C.120D.64
58.已知字母a的ASCII碼為十進(jìn)制數(shù)97,下面程序的輸出結(jié)果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.輸出無定值B.d,eC.e,fD.g,d
59.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
60.擁有PC機(jī)并以撥號(hào)方式接入網(wǎng)絡(luò)的用戶需要配置()
A.CD-ROMB.ModemC.電話機(jī)D.鼠標(biāo)
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。\\
A.Zhao,111,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
62.已知函數(shù)的調(diào)用形式:fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)
B.一個(gè)文件指針,指向要讀的文件
C.一個(gè)指針,指向要讀入數(shù)據(jù)的存放地址
D.一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)
63.軟件生命周期中的活動(dòng)不包括()。
A.市場調(diào)研B.需求分析C.軟件測試D.軟件維護(hù)
64.
65.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
66.以下定義語句中正確的是()。
67.有以下程序:
執(zhí)行程序時(shí),給變量x輸入l0,程序運(yùn)行后的輸出結(jié)果是()。
A.55B.54C.65D.45
68.以下程序擬實(shí)現(xiàn)計(jì)算sum=1+1/2+1/3+…+1/50。
程序運(yùn)行后,不能得到正確結(jié)果,出現(xiàn)問題的語句是()。
A.sum+=1/i;B.while(i<50);C.sum.=1.0;D.i++;
69.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
70.
71.右兩個(gè)關(guān)系R和S如下:
則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影
72.
73.
有以下程序:
main
{chara=a,b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序運(yùn)行后的輸出結(jié)果是()。
A.b,bB.b,cC.a,bD.a,c
74.
75.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>輸出結(jié)果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
76.
77.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
78.
79.
有以下程序
#include<stdio.h>
main
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的運(yùn)行結(jié)果是()。
A.741B.963C.852D.875421
80.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc()的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過形參傳人。例如,當(dāng)n-20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號(hào)。請編寫函數(shù)proc(),它的功能是:除了尾部的*號(hào)之外,將字符串中其他*號(hào)全部刪除。形參P已指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是abcdefg****。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫的若干語句。試題程序:
參考答案
1.C根據(jù)題意,要求統(tǒng)計(jì)字符數(shù)組s中阿拉伯?dāng)?shù)字的個(gè)數(shù)?!癱hars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計(jì)算出‘\\0’之前阿拉伯?dāng)?shù)字的個(gè)數(shù),由字符數(shù)組s可知,有3個(gè)阿拉伯?dāng)?shù)字。故本題答案為C選項(xiàng)。
2.B
3.D選項(xiàng)A、B中n為變量,C語言中不允許動(dòng)態(tài)定義數(shù)組維數(shù),即維數(shù)不能是變量。選項(xiàng)C無此語法。
4.D
5.D
6.B
7.C本題中由循環(huán)條件可知,遇到‘\\0’或x與y所指的字符不相等時(shí)循環(huán)結(jié)束。所以函數(shù)的功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。故本題答案為C選項(xiàng)。
8.A程序定義結(jié)構(gòu)體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對它初始化,調(diào)用函數(shù)f。將局部變量c的各個(gè)成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時(shí)a、b的各個(gè)成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項(xiàng)。
9.A結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組、指針變量或者結(jié)構(gòu)體變量,選項(xiàng)A正確;不同結(jié)構(gòu)體成員名可以相同,選項(xiàng)B錯(cuò)誤;結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型不能是本結(jié)構(gòu)體類型,選項(xiàng)C錯(cuò)誤;結(jié)構(gòu)體定義時(shí),類型不同的成員項(xiàng)之間使用分號(hào)隔開,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。
10.D
11.C解析:本題考核的知識(shí)點(diǎn)是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個(gè)字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個(gè)數(shù)7加上一個(gè)結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時(shí)b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
12.Bfor循環(huán)中,i取值為1~100。循環(huán)體中,3個(gè)if語句必須同時(shí)滿足才會(huì)輸出x,輸出的x取值為i+3,所以x的取值只能是4到103。x必須滿足以下條件:①x%7==0(x必須是7的倍數(shù));②(x-1)%3==0(x必須是3的倍數(shù)+1);③(x-2)%2==0(x必須是2的倍數(shù))。滿足條件③的x取值為7,14,21,28,35,42,49,56,63,70,77,84,91,98;又滿足條件②的x的取值為7,28,49,70,91;又滿足條件①的x的取值為28,70。本題答案為B選項(xiàng)。
13.A字符常量是使用單引號(hào)標(biāo)注的單個(gè)字符,選項(xiàng)A錯(cuò)誤;選項(xiàng)B屬于浮點(diǎn)數(shù)常量,正確;選項(xiàng)C屬于轉(zhuǎn)義字符常量,正確;選項(xiàng)D屬于轉(zhuǎn)義字符,代表八進(jìn)制數(shù)011的ASCII值的字符,正確。本題答案為A選項(xiàng)。
14.D
15.A當(dāng)x為1時(shí),執(zhí)行case1,a自加等于1,因?yàn)閏ase1后沒有break,接著執(zhí)行case2,此時(shí)a的值為2,b自加為1,故選擇A選項(xiàng)。
16.D
17.D本題考查靜態(tài)變量,靜態(tài)變量有儲(chǔ)存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
18.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級(jí)高于“==”,選項(xiàng)A等價(jià)于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。
19.D用C語言編寫的程序可以放置于多個(gè)程序文件中,所以A選項(xiàng)錯(cuò)誤。C語言程序中的一行可以有多條語句,所以B選項(xiàng)錯(cuò)誤。C語言中的注釋語句可以與原語句放在一行,也可以不放在一行,所以C選項(xiàng)錯(cuò)誤。故本題答案為D選項(xiàng)。
20.B解析:continue是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中,break用于循環(huán)語句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語句除了goto語句,exit,return等語句也能直接跳出多層循環(huán)。注意:continue和break語句在while語句中的作用。
21.structSTRUstructSTRU解析:結(jié)構(gòu)體類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項(xiàng)表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,……
其中變量包括:一般變量、指針變量、數(shù)組變量等。
22.p!=NULLcount++(*p).next
23.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。
24.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
25.tueday=2sunday=7;tueday=9sunday=3;1234567
26.goodmorninggoodmorning解析:子函數(shù)fun(chars[])的作用是將字符數(shù)組s中除去字母以外的所有其他字符都去掉,然后將字母仍按原來的順序存在數(shù)組s中。在主函數(shù)中調(diào)用fun(ss),是將“goodmorning”中所有的非字母去掉,在這里就是去掉空格,然后輸出ss。
27.完善性軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
28.8080解析:本題考查的知識(shí)點(diǎn)是共用體數(shù)組變量所占內(nèi)存的長度。數(shù)組a是共用體變量,共用體類型變量所占的內(nèi)存長度為最大成員的長度,即單精度數(shù)組的長度,為4×4=16,因此,數(shù)組a所占的內(nèi)存長度為5×16=80,所以最后輸出的s的值為80。
29.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
30.外模式外模式解析:外模式由概念模式推導(dǎo)而出,給出了每個(gè)用戶的局部數(shù)據(jù)描述,即數(shù)據(jù)視圖。
31.關(guān)系關(guān)系
32.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。
33.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳過對應(yīng)的輸入數(shù)據(jù),所以第二個(gè)輸入數(shù)200被跳過去了,只有100,300,400三個(gè)數(shù)被從鍵盤輸入了進(jìn)來。
34.4.0或44.0或4
35.1100101
36.封裝性封裝性解析:對象具有下列5個(gè)基本特點(diǎn):①標(biāo)識(shí)惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。
37.
38.數(shù)據(jù)模型數(shù)據(jù)模型
39.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲(chǔ)單元在程序運(yùn)行過程中始終不釋放,即當(dāng)下一次調(diào)用該函數(shù)時(shí),該變量仍然保留上一次函數(shù)調(diào)用結(jié)束時(shí)已有的值,3次調(diào)用fun函數(shù)分別得到2,4,6。
40.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。
41.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。
42.A解析:主函數(shù)中首先定義了4個(gè)字符變量a、b、cd,然后通過scanf()函數(shù)輸入a、b、c、d輸入中a和b是按字符格式c輸入的,c和d是按整型符號(hào)d輸入的。在看下面的printf()函數(shù)中,要求a、b、c、d都按字符輸出,故a和b原樣輸出為6、5,c和d將把與其ASCII碼對應(yīng)的字符輸出,65和66的ASCII碼對應(yīng)字符A和B,故最后的輸出為6,5,A,B。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合愿意。
43.A解析:本題考查while循環(huán).y的值在while循環(huán)的控制表達(dá)式中加1,在循環(huán)體內(nèi)減1,所以總的y值不變,且控制條件++y永遠(yuǎn)非零。當(dāng)x加到7時(shí)不滿足循環(huán)條件,結(jié)束循環(huán)。
44.D解析:A選項(xiàng),將f賦值為0,結(jié)果得到0,因?yàn)?乘任何數(shù)都為0;B選項(xiàng),i<n,計(jì)算的是(n-1)!,C選項(xiàng)將陷入死循環(huán)。
45.D解析:本題中fun函數(shù)實(shí)現(xiàn)了字符串函數(shù)strcat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時(shí),形參t和s分別指向了字符串ss和aa,然后通過一個(gè)while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個(gè)while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個(gè)復(fù)制到字符串ss的末尾處。
46.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。
47.B解析:由于實(shí)參傳送的是變量的地址,所以對形參指針?biāo)赶虻膯卧獌?nèi)容的改變,即對實(shí)參內(nèi)容的改變。
48.A解析:結(jié)構(gòu)化程序的3種基本結(jié)構(gòu)是順序、循環(huán)、選擇,任何復(fù)雜的任務(wù)都可以通過這3種結(jié)構(gòu)來實(shí)現(xiàn)。
49.C解析:本題主要考查了結(jié)構(gòu)體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:結(jié)構(gòu)體變量名.成員名或結(jié)構(gòu)體指針->成員名的方法來引用結(jié)構(gòu)體成員。
50.B解析:選項(xiàng)A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項(xiàng)B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進(jìn)行賦值運(yùn)算:選項(xiàng)C)中,是兩個(gè)指針變量之間的賦值:選項(xiàng)D)中,是兩個(gè)指針型變量所指向的兩個(gè)float型數(shù)據(jù)相乘。
51.D解析:20世紀(jì)70年代以來,提出了許多軟件設(shè)計(jì)方法,主要有①逐步求精:對復(fù)雜的問題,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化;②自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。不要一開始就過多追求眾多的細(xì)節(jié),先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化;⑧模塊化:一個(gè)復(fù)雜問題,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo),再進(jìn)一步分解為具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊,而可復(fù)用是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)優(yōu)點(diǎn)。
52.C
53.D解析:*、/和%的優(yōu)先級(jí)要高于+和—,同級(jí)別的運(yùn)算符從左至右運(yùn)算。所以本題首先計(jì)算5/2和5%2,雖然我們都知道5/2的結(jié)果應(yīng)該是2.5,但C語言中規(guī)定了兩個(gè)整數(shù)相除的結(jié)果為整數(shù),而且是截尾取整,所以5/2的結(jié)果是2;5%2表示的是5除以2所得的余數(shù),其結(jié)果為1。計(jì)算完后,表達(dá)式變?yōu)?.6-2+1.2+1,從左至右計(jì)算不難得出結(jié)果為3.8,故應(yīng)該選擇D。
54.A解析:“<<”是C語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方;“^”是異或運(yùn)算符,所以,c的二進(jìn)制值應(yīng)為00011011。
55.C解析:靜態(tài)變量是在編譯時(shí)賦初值的,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值,以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。在main函數(shù)中調(diào)用fun(a,5),執(zhí)行for循環(huán)得到sum=0+a[0]+a[1]+a[2]+a[3]+a[4]=15;然后調(diào)用fun(b,4),因?yàn)閟um為靜態(tài)變量,再次調(diào)用時(shí)sum保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,所以sum:15+b[0]+b[1]+b[2]+b[3]=45;返回sum的值,main函數(shù)中輸出的s=15+45=60。
56.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個(gè)元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個(gè)元素,所以共有i*m+j個(gè)元素。
57.D解析:<<是C語言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,這個(gè)語句即是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘于2,左移兩位相當(dāng)于該數(shù)乘以2的2次方。所以,x<<1=32*2=64。
58.D解析:C語言規(guī)定,所有字符常量都可以化為整型常量來處理,因而字符常量也可以參與算術(shù)運(yùn)算。注:字符常量參與算術(shù)運(yùn)算時(shí),其實(shí)是使用其對應(yīng)的ASCII碼值進(jìn)行計(jì)算。本題中,'a'對應(yīng)的ASCII碼值是97。題中雖然沒有給'6'和'0'的ASCII碼值,但應(yīng)該知道'6'-'0'是將字符'6'轉(zhuǎn)換成整數(shù)6的表達(dá)式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型輸出分別是g和d。
59.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運(yùn)算符”:*(p+1)就代表存儲(chǔ)單元a[1],注意:一對圓括號(hào)不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
60.B
61.A本題考查的是函數(shù)調(diào)用時(shí)的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時(shí),傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個(gè)拷貝,函數(shù)f所做所有操作只是針對這個(gè)數(shù)據(jù)拷貝進(jìn)行的修改,這些都不會(huì)影響變量c的值。
62.C本題主要考查成塊讀函數(shù)fread。在C語言中,提供了一種成塊的讀寫方式來操作文件,使其數(shù)組或結(jié)構(gòu)體等類型可以進(jìn)行一次性讀寫。成塊讀文件函數(shù)的調(diào)用形式為:
intfread(void*buf,intsize,intcount,FILE*stream)
fread()函數(shù)的意思是從stream指向的流文件讀取count(字段數(shù))個(gè)字段,每個(gè)字段為size(字段長度)個(gè)字符長,并把它們放到buf(緩沖區(qū))指向的字符數(shù)組中,然后進(jìn)行讀取操作。fread()函數(shù)返回實(shí)際已讀取的字段數(shù)。
從上面的分析我們可以知道,參數(shù)buf是一個(gè)無返回類型的指針,指向要讀入數(shù)據(jù)的存放地址,它其實(shí)是一個(gè)緩沖區(qū)。因此本題正確的答案選C。
63.A軟件的生命周期描述了軟件從產(chǎn)生到最終消亡的全過程,生命周期中的活動(dòng)包括需求分析、軟件設(shè)計(jì)(分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、軟件實(shí)現(xiàn)、軟件測試和軟件維護(hù),不包括市場調(diào)研。
64.B
65.A涵數(shù)返回的結(jié)構(gòu)體為在涵數(shù)里賦值的結(jié)構(gòu)體,所以選擇A)。
66.A定義變量時(shí)不能連等,所以B)錯(cuò)誤,c)選項(xiàng)中,b是指針,c定義為指向指針的指針才可以接受&b,所以c)錯(cuò)誤,D)選項(xiàng),b=1.1前沒有類型名,所以錯(cuò)誤。
67.A該程序考察的是函數(shù)的遞歸調(diào)用,在調(diào)用一個(gè)函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用。執(zhí)行結(jié)果為l+2+3+…+8+9+10=55。因此A選項(xiàng)正確。
68.A選項(xiàng)A中,8111111+=1/i;i為整型,因此l/i是整型類型,當(dāng)1/i有小數(shù)時(shí),小數(shù)部分會(huì)被截?cái)?。因此l/i結(jié)果始終為0,導(dǎo)致結(jié)果出錯(cuò),應(yīng)改為8111m+=1.0/i。因此答案為A選項(xiàng)。
69.C解析:選項(xiàng)A和B兩個(gè)表達(dá)式都越界了;選項(xiàng)D中,*t[2]是目標(biāo)變量,即—個(gè)整型值,而不是地址值。
70.C
71.C選擇:是在數(shù)據(jù)表中給予一定的條件進(jìn)行篩選數(shù)據(jù)。投影:是把表中的某幾個(gè)屬性的數(shù)據(jù)選擇出來。連接:有自然連接、外連接,內(nèi)連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學(xué)中的并是一樣的。兩張表進(jìn)行并操作,要求它們的屬性個(gè)數(shù)相同并且需要相容。
72.A
73.A
\n++a與a++的區(qū)別是前者先自加再運(yùn)算,后者是先運(yùn)算后自加。
\n
74.D
75.D解析:根據(jù)給定的數(shù)據(jù)輸入格式:123<空格>456<空格>789<回車>,第一個(gè)scanf語句中,格式字符為“%c”,只能得到一個(gè)字符\'1\',第二個(gè)scanf語句中格式字符為“%d”,變量i得到的數(shù)值為23,第三個(gè)scanf語句中格式字符為“%s”,遇到空格就自動(dòng)結(jié)束,因此字符數(shù)組s得到的是'456\\0”。因而正確答案為選項(xiàng)D。
76.A
77.D
78.D
79.C
\n在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),執(zhí)行輸出語句,輸出表達(dá)式--Y的值。Y先自減l,然后再輸出y的值。
\n
80.A解析:結(jié)構(gòu)化程序的概念首先是從以往編程過程中無限制地使用轉(zhuǎn)移語句而提出的。轉(zhuǎn)移語句可以使程序的控制流程強(qiáng)制性地轉(zhuǎn)向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉(zhuǎn)移功能。如果一個(gè)程序中多處出現(xiàn)這種轉(zhuǎn)移情況,將會(huì)導(dǎo)致程序流程無序可尋,程序結(jié)構(gòu)雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯(cuò)。尤其是在實(shí)際軟件產(chǎn)品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結(jié)構(gòu)和風(fēng)格的程序是不允許出現(xiàn)的。
81.(1)錯(cuò)誤:for(k=4;k<n;k++)
正確:for(k=4;k<=n;k++)
(2)錯(cuò)誤:s2=s;
正確:s2=s;}
【解析】題目中要求計(jì)算數(shù)列前n項(xiàng)的和,包括第n項(xiàng),因此“for(k=4;k<n;k++)”中的“k<n”應(yīng)改為“k<=n”;根據(jù)C語言的語法規(guī)則,for循環(huán)體中的多條語句必須在大括號(hào)“{”和“)”之間,因此,要在語句s2=s;后加上}。
82.
題目中要求除了尾部的*號(hào)之外,將字符串中其他*號(hào)全部刪除。首先將所有不是*的字符放在字符串str中,然后將尾部的*接在字符的后面,最后為字符串str加上結(jié)束符。
2021年山東省聊城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運(yùn)行后的輸出結(jié)果是()。
A.7B.0C.3D.8
2.二叉樹的第三層最少有________個(gè)結(jié)點(diǎn)。
A.0B.1C.2D.3
3.下列定義數(shù)組的語句中,正確的是()。
A.intN=10;intx[N]:
B.#defineNl0;intx[N];
C.intx[0..10];
D.intx[];
4.
5.
6.假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b++,a+b)的值是()。
A.7B.8C.6D.2
7.有以下函數(shù):intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。
A.將y所指字符串賦給x所指存儲(chǔ)空間
B.查找x和y所指字符串中是否有‘\0’
C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
D.統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)
8.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90
B.Zhao,m,85,Sun,f,90
C.Zhao,m,85,Qian,f,95
D.Sun,f,90,Qian,f,95
9.以下敘述中正確的是()。
A.結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組或指針變量
B.不同結(jié)構(gòu)體的成員名不能相同
C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型可以是本結(jié)構(gòu)體類型
D.結(jié)構(gòu)體定義時(shí),類型不同的成員項(xiàng)之間可以用逗號(hào)隔開
10.若有如下定義,則__________是對數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
11.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
12.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.4284B.2870C.2668D.3981
13.以下不能作為合法常量的是()。
A.'cd'B.1.234e04C.”\a”D.'\011'
14.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
15.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}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
16.在所有的排序方法中,關(guān)鍵字比較的次數(shù)與記錄的初始排列次序無關(guān)的是()。
A.希爾排序B.冒泡排序C.直接插入排序D.直接選擇排序
17.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a(chǎn)[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
18.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
19.以下敘述中正確的是()。
A.用C語言編寫的程序只能放在一個(gè)程序文件中
B.C語言程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語句
C.C語言程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面
D.C語言程序書寫格式自由,一個(gè)語句可以寫在多行上
20.以下敘述正確的是
A.continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語句
二、2.填空題(20題)21.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
stmctSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型?!尽縯[20]
22.以下程序段用以統(tǒng)計(jì)鏈表中元素的個(gè)數(shù)。其中first指向鏈表第一個(gè)結(jié)點(diǎn),count用來統(tǒng)計(jì)結(jié)點(diǎn)個(gè)數(shù)。請?zhí)羁铡?/p>
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
23.以下程序的輸出結(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);
}
24.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。
25.下列程序的運(yùn)行結(jié)果為【】。
enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};
main()
{enumweekdayworkday,weekend;
inti,a[8];
workday=tue;
weekend=sun;
printf("\ntueday=%dsunday=%d;",workday,week_end);
workday=sun+tue;
week_end=(enumweekday)3;
printf("tueday=%dsunday=%d;",workday,weekend);
a[sun]=sun;
a[mon]=mon;
a[tue]=rue;
a[wed]=wed;
a[thu]=thu;
a[fri]=fri;
a[sat]=sat;
for(i=l;i<=7;i++)printf("%d",a[i]);
}
26.已知函數(shù)isaplha(ch)的功能是判斷變量ch是否是字母,若是,則該數(shù)值為1,否則為0。下面程序執(zhí)行后的輸出結(jié)果是()。
#include<ctype.h>
#include<string.h>
voidfun(chars[])
{inti,j;
for(i=0,j=0;s[i];i++)
s[j]='\0';
}
main()
{charss[80]="goodmorning";
fun(ss);
printf("%s",ss);
}
27.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
28.下面程序的運(yùn)行結(jié)果是______。
typedefunionstudent
{
charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{
STUa[5];
printf("%d\n",sizeof(A));
}
29.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
30.數(shù)據(jù)庫系統(tǒng)在其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
31.關(guān)系代數(shù)是關(guān)系操作語言的一種傳統(tǒng)表示方式,它以集合代數(shù)為基礎(chǔ),它的運(yùn)算對象和運(yùn)算結(jié)果均為()。
32.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
33.在scanf()函數(shù)調(diào)用語句中,可以在格式字符和%號(hào)之間加上一個(gè)星號(hào),它的作用是跳過對應(yīng)的輸入數(shù)據(jù);當(dāng)輸入以下數(shù)據(jù)時(shí),100200300400500<回車>,下面語句的執(zhí)行結(jié)果為【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
34.設(shè)x和y均為int型變量,且x=1,y=2,則表達(dá)式2.0+y/x的值為【】。
35.與十進(jìn)制數(shù)101等值的二進(jìn)制數(shù)為【】。
36.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱為對象的______。
37.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
doublefun(doublex){return(x*x-2*x+6);}
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun([6]);
y2=fun([7]);
printf("y1=%lf,y2=%lf\n",y1,y
38.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。
39.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
40.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=O;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
三、1.選擇題(20題)41.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。
A.不確定的值B.一個(gè)整數(shù)C.形參p中存放的值D.形參p的地址值
42.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66<回車>。則輸出結(jié)果是
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
43.有下列程序:#include"stdio.h"main(){intx=0;inty=0;while(x<7&&++y){y--;x++;}printf("%d,%d",y,x);}程序的輸出結(jié)果是()。
A.0,7B.7,7C.0,6D.1,6
44.設(shè)變量已正確定義,則以下能正確計(jì)算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;
45.有以下程序
#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);
}
程序的運(yùn)行結(jié)果是
A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
46.有以下程序
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,
47.以下程序的輸出結(jié)果是______。#include<stdio.h>voidprt(int.*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}inta=10,b=40,c=20;main(){prt(&a,&b&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,41
D.11,41,2112,42,22
48.結(jié)構(gòu)化程序有3種基本結(jié)構(gòu)組成,3種基本結(jié)構(gòu)組成的算法______。
A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)
49.設(shè)有如下定義:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正確的賦值語句是
A.p=&data.n;
B.*p=data.n;
C.p=(structsk*)&data.n;
D.p=(structsk*)data.n:
50.設(shè)q1和q2是指向一個(gè)float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語句是()。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);
51.下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復(fù)用
52.以下程序運(yùn)行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
53.表達(dá)式3.6-5/2+1.2+5%2的值是A.4.3B.4.8C.3.3D.3.8
54.設(shè)有以下語句:chara=3,b=6,c;c=ab<<2;則c的二進(jìn)制值是()。
A.11011B.10100C.11100D.11000
55.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);程序執(zhí)行后的輸出結(jié)果是()。
A.45B.50C.60D.55
56.若二維數(shù)組a有m列,則在a[i][j]剛前的元素個(gè)數(shù)為()。
A.i*m+j-1B.i*m+jC.j*m+iD.i*m+j+1
57.下面程序main(){intx=32;printf("%d\n",x=x<<1);}的輸出是______。
A.100B.160C.120D.64
58.已知字母a的ASCII碼為十進(jìn)制數(shù)97,下面程序的輸出結(jié)果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.輸出無定值B.d,eC.e,fD.g,d
59.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
60.擁有PC機(jī)并以撥號(hào)方式接入網(wǎng)絡(luò)的用戶需要配置()
A.CD-ROMB.ModemC.電話機(jī)D.鼠標(biāo)
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。\\
A.Zhao,111,85,90,Qian,f,95,92
B.Zhao,m,85,90,Zha0,m,85,90
C.Qian,f,95,92,Qian,f,95,92
D.Qian,f,95,92,Zha0,m,85,90
62.已知函數(shù)的調(diào)用形式:fread(buf,size,count,fp),參數(shù)buf的含義是
A.一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)
B.一個(gè)文件指針,指向要讀的文件
C.一個(gè)指針,指向要讀入數(shù)據(jù)的存放地址
D.一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)
63.軟件生命周期中的活動(dòng)不包括()。
A.市場調(diào)研B.需求分析C.軟件測試D.軟件維護(hù)
64.
65.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
66.以下定義語句中正確的是()。
67.有以下程序:
執(zhí)行程序時(shí),給變量x輸入l0,程序運(yùn)行后的輸出結(jié)果是()。
A.55B.54C.65D.45
68.以下程序擬實(shí)現(xiàn)計(jì)算sum=1+1/2+1/3+…+1/50。
程序運(yùn)行后,不能得到正確結(jié)果,出現(xiàn)問題的語句是()。
A.sum+=1/i;B.while(i<50);C.sum.=1.0;D.i++;
69.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
70.
71.右兩個(gè)關(guān)系R和S如下:
則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影
72.
73.
有以下程序:
main
{chara=a,b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序運(yùn)行后的輸出結(jié)果是()。
A.b,bB.b,cC.a,bD.a,c
74.
75.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>輸出結(jié)果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
76.
77.設(shè)有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()。
A.1B.0C.4D.3
78.
79.
有以下程序
#include<stdio.h>
main
{inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的運(yùn)行結(jié)果是()。
A.741B.963C.852D.875421
80.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
五、程序改錯(cuò)題(1題)81.已知一個(gè)數(shù)列從0項(xiàng)開始的前3項(xiàng)為0,0,1,以后的各項(xiàng)都是其相鄰的前3項(xiàng)之和。下列給定的程序中,函數(shù)proc()的功能是:計(jì)算并輸出該數(shù)列前n項(xiàng)的和sum。n的值通過形參傳人。例如,當(dāng)n-20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。請修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號(hào)。請編寫函數(shù)proc(),它的功能是:除了尾部的*號(hào)之外,將字符串中其他*號(hào)全部刪除。形參P已指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言的字符串函數(shù)。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是abcdefg****。注意:部分源程序給出如下。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫的若干語句。試題程序:
參考答案
1.C根據(jù)題意,要求統(tǒng)計(jì)字符數(shù)組s中阿拉伯?dāng)?shù)字的個(gè)數(shù)。“chars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計(jì)算出‘\\0’之前阿拉伯?dāng)?shù)字的個(gè)數(shù),由字符數(shù)組s可知,有3個(gè)阿拉伯?dāng)?shù)字。故本題答案為C選項(xiàng)。
2.B
3.D選項(xiàng)A、B中n為變量,C語言中不允許動(dòng)態(tài)定義數(shù)組維數(shù),即維數(shù)不能是變量。選項(xiàng)C無此語法。
4.D
5.D
6.B
7.C本題中由循環(huán)條件可知,遇到‘\\0’或x與y所指的字符不相等時(shí)循環(huán)結(jié)束。所以函數(shù)的功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。故本題答案為C選項(xiàng)。
8.A程序定義結(jié)構(gòu)體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對它初始化,調(diào)用函數(shù)f。將局部變量c的各個(gè)成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時(shí)a、b的各個(gè)成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級(jí)數(shù)學(xué)上冊第30課時(shí)銷售問題和儲(chǔ)蓄問題聽評(píng)課記錄新湘教版
- 湘教版數(shù)學(xué)八年級(jí)上冊《1.1 分式》聽評(píng)課記錄
- 人教版歷史七年級(jí)下冊第1課《隋朝的統(tǒng)一與滅亡》聽課評(píng)課記錄
- 2022年新課標(biāo)八年級(jí)上冊道德與法治《7.1 關(guān)愛他人 》聽課評(píng)課記錄
- 生物技術(shù)創(chuàng)新合作開發(fā)合同(2篇)
- 理財(cái)委托合同(2篇)
- 人教版數(shù)學(xué)八年級(jí)下冊20.1.1《平均數(shù)》聽評(píng)課記錄3
- 語文聽評(píng)課記錄九年級(jí)
- 人教版數(shù)學(xué)八年級(jí)上冊《11.2.2三角形的外角》聽評(píng)課記錄1
- 數(shù)學(xué)七年級(jí)下學(xué)期《立方根》聽評(píng)課記錄
- 安全安全技術(shù)交底模板
- 房屋建筑工程投標(biāo)方案(技術(shù)方案)
- 部編版一年級(jí)語文下冊語文園地五《單元拓展-字族文》教學(xué)設(shè)計(jì)
- 靜脈輸液法操作并發(fā)癥的預(yù)防及處理
- 牙外傷的遠(yuǎn)期并發(fā)癥監(jiān)測
- 2025年高考語文作文備考:議論文萬能模板
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件(建筑)
- 《我的寒假生活》
- DZ/T 0430-2023 固體礦產(chǎn)資源儲(chǔ)量核實(shí)報(bào)告編寫規(guī)范(正式版)
- (高清版)WST 442-2024 臨床實(shí)驗(yàn)室生物安全指南
- 歷史時(shí)間軸全
評(píng)論
0/150
提交評(píng)論