版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年河北省石家莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是()。
A.結(jié)構(gòu)化程序使用goto語(yǔ)句會(huì)很便捷
B.在c語(yǔ)言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
C.一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問(wèn)題
2.采用折半查找法查找長(zhǎng)度為n的線性表時(shí),每個(gè)元素的平均查找長(zhǎng)度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
3.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
4.下面哪個(gè)序列不是此圖的一個(gè)拓?fù)渑判?)A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch
5.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
6.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計(jì)算機(jī)結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯(cuò)
7.
8.在瀏覽WWW時(shí),如果連接到一個(gè)安全的站點(diǎn),應(yīng)當(dāng)以()開頭來(lái)書寫統(tǒng)一資源定位器。
A.shttp://B.http:s//C.http://D.https//
9.if語(yǔ)句基本形式是:if(表達(dá)式)語(yǔ)句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
10.
11.以下程序的輸出結(jié)果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21
12.
13.
下列程序的輸出結(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
14.
15.
16.在n個(gè)結(jié)點(diǎn)的順序表中,算法的時(shí)間復(fù)雜度是O(1)的操作是()。
A.訪問(wèn)第i個(gè)結(jié)點(diǎn)(1<=i<=n)和求第i個(gè)結(jié)點(diǎn)的直接前驅(qū)(2<=i<=n)
B.在第i個(gè)結(jié)點(diǎn)之后插入一個(gè)新結(jié)點(diǎn)(1<=i<=n)
C.刪除第i個(gè)結(jié)點(diǎn)(1<=i<=n)
D.將n個(gè)結(jié)點(diǎn)從小到大排序
17.以下敘述中錯(cuò)誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語(yǔ)言是-種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
18.冒泡排序在最壞情況下的比較次數(shù)是()。
A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2
19.第
2
題
現(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
20.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
二、2.填空題(20題)21.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*fl)int(*12)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運(yùn)行后,輸出結(jié)果是【】
22.下面程序把從終端讀入的10個(gè)整數(shù)以二進(jìn)制方式寫入一個(gè)名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
23.設(shè)有以下定義和語(yǔ)句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intx,a=1,b=2,c=3,d=4;
x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;
pfintf("%d\n",x);
}
25.在循環(huán)中,continue語(yǔ)句與break語(yǔ)句的區(qū)別是:______語(yǔ)句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
26.以下程序運(yùn)行結(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");}
27.設(shè)有以下定義
struetss
{intinfo;struetss*link;}x,y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請(qǐng)寫出刪除結(jié)點(diǎn)y的賦值語(yǔ)句【】。
28.______是數(shù)據(jù)庫(kù)應(yīng)用的核心。
29.人員基本信息一般包括:身份證號(hào)、姓名、性別、年齡等。其中可以作為主關(guān)鍵字的是()。
30.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。
31.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intm=011,n=11;
printf("%d%d\n",++m,n++);
}
32.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
33.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
34.數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
35.下列程序的輸出結(jié)果是【】。
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
36.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。
37.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正常運(yùn)行。
#include<stdio.h>
【】(double,double);
main()
{doublex,y;
scanf("%If%If",&x,&y);
printf("%If\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
38.以下程序的輸出結(jié)果是【】。
main()
{intx=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
39.閱讀下面語(yǔ)句,則執(zhí)行后的輸出結(jié)果為【】。
#include"stdio.h"
main()
{chara,b;
for(a='0',b='9';a<b;a++,b--)
printf("%c%c",a,b);
printf("\n");}
40.用以下程序把從鍵盤輸入的字符存放到一個(gè)文件中,用字符#作為結(jié)束符,請(qǐng)按題意要求填空完善程序。
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenameoffile\n");
gets(fname);
if(fp=fopen(【】))==NULL)
{printf("can'topen\n");
【】;
}
while((ch=getchar())!='#')
fputc(【】);
fclose(fp);
}
三、1.選擇題(20題)41.在計(jì)算面中,算法是指______。
A.查詢方法B.加工方祛C.解題方案的準(zhǔn)確而完整的描述D.排序方法
42.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實(shí)參傳遞給形參,再由形參傳遞給實(shí)參D.傳遞方式由用戶指定
43.請(qǐng)選出以下程序的輸出結(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.0000D.4444
44.C語(yǔ)言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個(gè)成員駐留在內(nèi)存中
45.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c,%c\n",c1,c2);}程序運(yùn)行后的輸出結(jié)果是()。
A.AbB.aaC.AaD.Bb
46.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序運(yùn)行后的輸出結(jié)果是()。
A.0B.1C.-1D.NULL沒定義,出錯(cuò)
47.下列程序執(zhí)行輸出的結(jié)果是()。#include<stdio.h>f(inta){intb=0;staticc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}
A.3B.4C.5D.6
48.若有下面的說(shuō)明和定義,則sizeof(structaa)的值是______。structaa{intrl;doubler2;floatr3;uninuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
49.以下程序的功能是:建立一個(gè)帶布頭結(jié)點(diǎn)的單向鏈表,并將存儲(chǔ)在數(shù)組中的字符依次存儲(chǔ)到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)從與下劃線處號(hào)碼對(duì)應(yīng)的一組選項(xiàng)中選擇出正確的選項(xiàng)
#include<stdlib.h>
structnode
{chardata;structnode*next;};
(48)CreatList(char*s),
{structnode*h,*p,*q;
h=(structnode*)malloc(sizeof(structnode));
p=q=h;
while(*s!="\0")
{p=(structnode*)malloc(sizeof(structnode));
p->data=(49);
q->next=p;
q=(50);
s++;
}
p->next="\0";
returnh;
}
main()
{charstr[]="linklist";
structnode*head;
head=CreatList(str);
…
}
(1)
A.char*B.structnodeC.structnode*D.char
50.若有如下程序:intm=1;main(){intt=0,s=0;{intm=4;s+=m;)t+=m;printf("%d,%d\n",s,t);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1,1B.1,4C.4,1D.4,4
51.有程序:main(){intx,i;for(i=1;i<50;i++){x=i;if(++%2==0)if(x%3==0)if(x%7==0)printf("%d",i);}}輸出結(jié)果是()
A.28B.27C.42D.41
52.以下敘述中不正確的是
A.C語(yǔ)言中的文本文件以ASCII碼形式存儲(chǔ)數(shù)據(jù)
B.C語(yǔ)言中對(duì)二進(jìn)制文件的訪問(wèn)速度比文本文件快
C.C語(yǔ)言中,隨機(jī)讀寫方式不適用于文本文件
D.C語(yǔ)言中,順序讀寫方式不適用于二進(jìn)制文件
53.在下列選項(xiàng)中,不是一個(gè)算法一般應(yīng)該具有的基本特征的是()。
A.確定性B.可行性C.無(wú)窮性D.擁有足夠的情報(bào)
54.以下數(shù)組定義中不正確的是_______。
A.inta[2][3];
B.intb[][3]={0,1,2};
C.intc[100][100={0};
D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
55.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語(yǔ)句后輸出的結(jié)果為()。
ch='b';
k=10;
printf("%x,%o,",ch,ch,k);
printf("k:%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無(wú)定值
B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
56.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序運(yùn)行后的輸出結(jié)果是——。
A.10234B.12344C.12334D.12234
57.C語(yǔ)言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語(yǔ)句
58.有如下程序: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
59.以下程序的功能是:給r輸入數(shù)據(jù)后計(jì)算半徑為r的圓面積s。#include<stdio,h>main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*Π*r*r;printf("s=%f\n",s);程序在編譯時(shí)出錯(cuò),出錯(cuò)的原因是()。
A.注釋語(yǔ)句書寫位置錯(cuò)誤
B.存放圓半徑的變量r不應(yīng)該定義為整型
C.輸出語(yǔ)句中格式描述符非法
D.計(jì)算圓面積的賦值語(yǔ)句中使用了非法變量
60.在一棵二叉樹上第8層的結(jié)點(diǎn)數(shù)最多是_______。
A.8B.16C.128D.256
四、選擇題(20題)61.
62.
63.有以下程序段
#include"stdio.h"
main()
{intj,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))
break;
if(i>=j-1)
{printf("%d",j);
k++;}
}
}
程序執(zhí)行后輸出的結(jié)果是
A.5359B.5953
C.3595D.9535
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.4C.lD.9
65.
66.下列排序方法中,最壞情況下比較次數(shù)最少的是()。
A.冒泡排序B.簡(jiǎn)單選擇排序C.直接插入排序D.堆排序
67.以下關(guān)于typedef的敘述錯(cuò)誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個(gè)新的名字來(lái)代替
C.用typedef可以為各種類型說(shuō)明一個(gè)新名,但不能用來(lái)為變量說(shuō)明一個(gè)新名
D.用typedef為類型說(shuō)明一個(gè)新名,通??梢栽黾映绦虻目勺x性
68.
69.表達(dá)式:的值是()。
A.3B.0C.4D.5
70.
71.
設(shè)有以下定義和語(yǔ)句:
charstr[2O]="Program",*P:
p=str:
則以下敘述中正確的是()。
A.*p與stf[0]的值相等
B.str與P的類型完全相同
C.str數(shù)組長(zhǎng)度和P所指向的字符串長(zhǎng)度相等
D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同
72.
73.若程序中定義了以下函數(shù)doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語(yǔ)句之后,則在調(diào)用之前應(yīng)該對(duì)該函數(shù)進(jìn)行說(shuō)明,以下選項(xiàng)中錯(cuò)誤的說(shuō)明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
74.
75.
76.
77.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為指針指向鏈表的第一個(gè)結(jié)點(diǎn)。
若有以下程序段:
該程序段實(shí)現(xiàn)的功能是()。
A.刪除尾結(jié)點(diǎn)B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)C.刪除首結(jié)點(diǎn)D.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)
78.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語(yǔ)句是()。
A.fget(f0,ch);
B.foutc(ch,fo);
C.fprinff(fp,”%c”,ch);
D.fwrite(&ch,sizeof(ch),1,fp);
79.有以下程序:
80.下列選項(xiàng)中,能夠滿足“若字符串sl等于字符串s2,則執(zhí)行ST”要求的是()。
A.if(stremp(s2,s1)==0)ST;
B.if(s1==s2)ST;
C.if(strcpy(sl,s2)==l)ST;
D.if(sl,s2==O)ST;
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是計(jì)算正整數(shù)m
各位上數(shù)字的平方和。例如,輸入498,則輸出應(yīng)該是161。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}
六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的。號(hào)之外,將串中其他*號(hào)全部刪除。在編寫函數(shù)時(shí).不得使用C語(yǔ)言提供的字符串函數(shù).
參考答案
1.B濫用90t0語(yǔ)句將使程序的流程毫無(wú)規(guī)律,可讀性差,對(duì)于初學(xué)者來(lái)說(shuō)盡量不要使用,所以A錯(cuò)誤。—個(gè)結(jié)構(gòu)化程序可以包含順序、分支、循環(huán)結(jié)構(gòu)中的一種或多種,所以C錯(cuò)誤。由三種基本結(jié)構(gòu)構(gòu)成的程序可以解決任何復(fù)雜的問(wèn)題,所以D錯(cuò)誤。
2.D
3.Cf函數(shù)的功能是對(duì)形參a的各個(gè)成員用結(jié)構(gòu)體變量b的各個(gè)成員進(jìn)行賦值后,然后返回變量a。
4.C
5.A在本題中,程序首先定義一個(gè)返回類型為整型的函數(shù)fun,該函數(shù)帶有一個(gè)指針型的形參變量str,從主函數(shù)中對(duì)其調(diào)用時(shí)傳遞的參數(shù)我們可以知道,該指針指向的是一個(gè)數(shù)組,在該函數(shù)體中,首先定義兩個(gè)整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識(shí),即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語(yǔ)句if(str[i]!=’’),如果結(jié)果為真,說(shuō)明取到的當(dāng)前字符不是空字符,這時(shí)執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說(shuō)明取到了空格字符,此時(shí)不保存,而接著執(zhí)行下次循環(huán)跳過(guò)空格字符。循環(huán)結(jié)束后執(zhí)行str[j]=’\\0’;,即保存字符結(jié)束標(biāo)識(shí)符,用來(lái)標(biāo)識(shí)字符串結(jié)束。通過(guò)上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。
在主函數(shù)中,首先定義了一個(gè)大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語(yǔ)句,執(zhí)行g(shù)ets(str);語(yǔ)句,該語(yǔ)句的作用是從鍵盤輸入一個(gè)字符串到str數(shù)組,碰到換行符結(jié)束。然后調(diào)用函數(shù)fun,其實(shí)參為str。通過(guò)上面對(duì)函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。
程序最后執(zhí)行輸出語(yǔ)句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結(jié)果是asdafaaz67,本題答案選A。
6.AC語(yǔ)言規(guī)定,注釋語(yǔ)句可以換行寫,并且一個(gè)“/*”和其后緊跟的第一個(gè)“*/”中間的部分是注釋內(nèi)容,并且注釋部分的內(nèi)容不參與程序的執(zhí)行,因此本題中沒有執(zhí)行“b=20”;這條語(yǔ)句。
7.A
8.C
9.D考查if循環(huán)語(yǔ)句。if(表達(dá)式),其中表達(dá)式是一個(gè)條件,條件中可以是任意的合法的數(shù)值。
10.A
11.A循環(huán)的作用是求行下標(biāo)從l到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。
12.C
13.B
\n當(dāng)邏輯運(yùn)算符“&&”兩邊的值是非零時(shí),邏輯表達(dá)式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
\n
14.C
15.A
16.A
17.A使用順序,選擇(分支),循環(huán)三種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問(wèn)題,而不只是解決簡(jiǎn)單問(wèn)題,所以A錯(cuò)誤。
18.C冒泡排序的基本思想是:將相鄰的兩個(gè)元素進(jìn)行比較,如果反序,則交換;對(duì)于一個(gè)待排序的序列,經(jīng)一趟排序后,最大值的元素移動(dòng)到最后的位置,其他值較大的元素也向最終位置移動(dòng),此過(guò)程稱為一趟冒泡。對(duì)于有n個(gè)數(shù)據(jù)的序列,共需n-1趟排序,第i趟對(duì)從l到n-i個(gè)數(shù)據(jù)進(jìn)行比較、交換。冒泡排序的最壞情況是待排序序列逆序,第l趟比較n-1次,第2趟比較n-2次。依此類推,最后趟比較1次,一共進(jìn)行n-l趟排序。因此,冒泡排序在最壞情況下的比較次數(shù)是(n-1)+(n-2)+…+l,結(jié)果為n(n-1)/2。本題的正確答案是選項(xiàng)C。
19.D
20.A解析:在C語(yǔ)言中所謂函數(shù)的遞歸是在指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接地調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用.由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是i
21.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個(gè)參數(shù),形參n與C分別是兩個(gè)指向函數(shù)的指針。在f中執(zhí)行nf2(x),實(shí)際上是執(zhí)行了fo(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為2^3-2^2=4。
22."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);
23.6060解析:程序中定義a是一個(gè)3行2列的二維數(shù)組,p是指向兩個(gè)元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
24.因?yàn)樵跅l件表達(dá)式(a<b)?a:b中,比較表達(dá)式a<b為真,所以x的值等于a的值等于1,后面兩個(gè)條件表達(dá)式中的比較表達(dá)式都為真,所以最終x的值等于1。\r\n\r\n
25.continuecontinue解析:continue語(yǔ)句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語(yǔ)句是終止整個(gè)循環(huán)的執(zhí)行,不再進(jìn)行條件判定。
26.0240480,2,4\r\n0,4,8解析:本題主要考查了for循環(huán)語(yǔ)句的使用以及靜態(tài)局部變量的特點(diǎn)。
27.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:鏈表中結(jié)點(diǎn)的刪除,要?jiǎng)h除結(jié)點(diǎn)y,只需要讓結(jié)點(diǎn)x的指針域指向y結(jié)點(diǎn)的指針域所指向的后續(xù)結(jié)點(diǎn)就可,因此只需把結(jié)點(diǎn)z的地址賦給x的指針域就可以了,即讓結(jié)點(diǎn)x的指針域指向結(jié)點(diǎn)z。而結(jié)點(diǎn)z的地址保存在結(jié)點(diǎn)y的指針域中,因此只需把結(jié)點(diǎn)y的指針域賦值給結(jié)點(diǎn)x的指針域即可。
28.數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)
29.身份證號(hào)身份證號(hào)解析:主關(guān)鍵字是表中區(qū)別不同記錄的標(biāo)識(shí),在該表中只有身份證號(hào)能具有這個(gè)作用,所以用其作為主關(guān)鍵字。
30.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過(guò)開方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時(shí),應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。
31.10111011解析:前綴自增運(yùn)算時(shí),表達(dá)式的值和變量自增之后的值相同;后綴自增運(yùn)算時(shí),表達(dá)式的值為變量自增之前的值。所以,本題程序輸出的兩個(gè)結(jié)果分別是m+1和n的值。而m在初始化時(shí)使用的是八進(jìn)制常量011,轉(zhuǎn)換為十進(jìn)制為9。故輸出結(jié)果是1011。
32.252H252H解析:要解答本題,首先要明白在對(duì)指針進(jìn)行加,減運(yùn)算時(shí),數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個(gè)存儲(chǔ)單元長(zhǎng)度。1個(gè)存儲(chǔ)單元長(zhǎng)度占存儲(chǔ)空間的多少,應(yīng)該視具體情況而定,如果存儲(chǔ)單元的基類型是血型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié);如果存儲(chǔ)單元基類型是float型,則移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。
33.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過(guò)變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
34.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫(kù)的應(yīng)用程序的集合。因此,數(shù)據(jù)庫(kù)管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。
35.HelloHello解析:執(zhí)行b[5]=0;是給數(shù)組的第6個(gè)元素賦值為0,即將Hello后的空格變?yōu)?。當(dāng)輸出字符串時(shí)遇到0終止輸出。
36.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。
37.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函數(shù)中調(diào)用了一個(gè)max函數(shù),而max函數(shù)是在調(diào)用之后定義的,所以要求填空的內(nèi)容應(yīng)該是對(duì)函數(shù)進(jìn)行聲明的語(yǔ)句。由max函數(shù)的定義可知此函數(shù)是double型的,因此空格處應(yīng)該填doublemax或externdoublemax。
38.77解析:在主函數(shù)中定義了一個(gè)變量x并賦初值0,然后執(zhí)行函數(shù)調(diào)用語(yǔ)句,該語(yǔ)句的執(zhí)行過(guò)程為sub(&x,8,1)調(diào)用sub(&a,4,2),sub(&a,4,2)調(diào)用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號(hào)里的判斷為假,遞歸結(jié)束,執(zhí)行其后的*a+=k;語(yǔ)句此時(shí)x=x+k=0+4=4,回推到上一層調(diào)用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語(yǔ)句,x=x+k=4+2=6,在回推到最上一層調(diào)用函數(shù)sub(&x,8,1)執(zhí)行后面的語(yǔ)句,x=x+k=6+1=7,所以最后輸出7。
39.918273645918273645解析:for是C語(yǔ)言的關(guān)鍵字,其后的一對(duì)圓括號(hào)中通常含有3個(gè)表達(dá)式,各個(gè)表達(dá)式之間用分號(hào)隔開,這3個(gè)表達(dá)式可以是任意形式的表達(dá)式,通常主要用于for循環(huán)控制。
40.fname"#"exit(0)chfp
41.C解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個(gè)基本特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。
42.B解析:C語(yǔ)言以定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實(shí)參傳紿形參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。調(diào)用結(jié)束后,實(shí)參單元仍保留并維持原值。
43.C解析:考查通過(guò)指針來(lái)引用一維數(shù)組元素的方法。若指針s指向數(shù)組a,則s[t]可以引用數(shù)組a中下標(biāo)為t的元素。
44.A解析:C語(yǔ)言結(jié)構(gòu)體類型變量在程序執(zhí)行期間所有成員一直駐留在內(nèi)存中。
45.A解析:經(jīng)過(guò)分析得知fun()函數(shù)的功能:將形參a指向形參b所指的存儲(chǔ)空間,然后使形參a指向變量的值加1。在主函數(shù)中定義了字符型指針變量p1和p2,并讓它們分別指向c1和c2。將p1、p2作為實(shí)參傳遞給形參a、b。在fun()函數(shù)中,首先讓指針變量p1指向p2,然后p1指向的存儲(chǔ)空間的值加1,即讓變量c2加1為b,而c1的值沒有被改變,仍然是A。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
46.A解析:在C語(yǔ)言中NULL的ASCII碼值為0,而輸出函數(shù)要求以整形格式輸出,故最后的輸出數(shù)為0。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合愿意。
47.B解析:本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在函數(shù)調(diào)用時(shí),static變量在函數(shù)調(diào)用結(jié)束后所做的所有變化均保持(即上次調(diào)用結(jié)束時(shí)的值)。
在主函數(shù)中,第一次循環(huán),i=0,調(diào)用k-f(a++)=f(2),調(diào)用完之后才將a加1,a變?yōu)?,在f(2)中,先將c=3賦值給a返回,然后將c加1,得到k=a=3,c=4。
第二次循環(huán),i=1,調(diào)用k=f(a++)=f(3),調(diào)用完之后才將a加1,a變?yōu)?,在f(3)中,先將c=4賦值給a返回,然后將c加1,得到k=a=4,c=5。
48.D解析:結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占的內(nèi)存長(zhǎng)度之和,每個(gè)成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。結(jié)構(gòu)體變量aa中,成員r1占2個(gè)字節(jié),r2占8個(gè)字節(jié),r3占4個(gè)字節(jié),共用體ua占8個(gè)字節(jié),所以共占用2+8+4+8=22個(gè)字節(jié)。
49.C
50.C解析:{intm=4;s+=m;}是復(fù)合語(yǔ)句,m=4,s+=m等價(jià)于s=s+m=0+4=4。t+=m等價(jià)于t=t+m,這里m為全局變量,值為1,t=t+m=O+1=1。
51.D
52.D解析:在C語(yǔ)言中文本文件是以ASCII碼形式存放的,每個(gè)字符占一個(gè)字節(jié)。由于數(shù)據(jù)在計(jì)算機(jī)中是以二進(jìn)制形式存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把ASCII碼轉(zhuǎn)換成二進(jìn)制,因此速度較快。在文本文件葉,,數(shù)據(jù)以ASCII碼形式存放,用戶很難判定一個(gè)數(shù)據(jù)到底占幾個(gè)字節(jié),所以不適合使用隨機(jī)讀寫方式。數(shù)據(jù)以二進(jìn)制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進(jìn)行隨機(jī)讀寫,當(dāng)然也可以順序讀寫。故D選項(xiàng)為所選。
53.C解析:作為一個(gè)算法,一般應(yīng)具有的基本特征有:可行性、確定性、有窮性、擁有足夠的情報(bào)。
54.D解析:一維數(shù)組的定義方式為:
類型說(shuō)明符數(shù)組名[常量表達(dá)式];
選項(xiàng)A符合此定義形式,正確;C語(yǔ)言中多維數(shù)組賦初值時(shí)可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對(duì)全部數(shù)組元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯(cuò)誤的。
55.C解析:第1個(gè)printf函數(shù),格式說(shuō)明的個(gè)數(shù)是2,而輸出項(xiàng)的個(gè)數(shù)是3,所以對(duì)于多余的輸出項(xiàng)k不予輸出;第2個(gè)printf函數(shù),有兩個(gè)%說(shuō)明,第1個(gè)%后面的字符要原樣輸出。
56.C解析:由于用了宏定義a[10]~a[19]均為0。函數(shù)fun的功能是把從a[n]到a[m]中的元素依次賦給后面的一個(gè)元素。調(diào)用了fun(a,2,9)以后,a[N]={1,2,3,3,4,5,6,7,8,9,10}。
57.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。
58.AC語(yǔ)言規(guī)定case后面跟的必須是整型常量表達(dá)式。進(jìn)入case后,如果沒有遇到break語(yǔ)句就會(huì)一直往下執(zhí)行,后面其他case或default分支的語(yǔ)句也會(huì)被執(zhí)行到,直到遇到break,或者執(zhí)行到整個(gè)switch語(yǔ)句塊的末尾。題目中給出了三個(gè)case語(yǔ)句:case0、case1、case2。當(dāng)x為1時(shí),從case1語(yǔ)句開始執(zhí)行,因?yàn)闆]有break語(yǔ)句,將一直執(zhí)行到函數(shù)末尾結(jié)束,即執(zhí)行case1、case2兩條語(yǔ)句。執(zhí)行完case1時(shí),a=1,b=0;執(zhí)行完case2時(shí),a=2,b=1。
59.D解析:本題中表達(dá)式*Π*r*r非法,且未對(duì)變量Π做任何定義,所以編譯時(shí)會(huì)出現(xiàn)非法字符的錯(cuò)誤信息。
60.C解析:根據(jù)二叉樹的性質(zhì)1:二叉樹第k(k>1)層上,最多有2k-1個(gè)結(jié)點(diǎn)。于是第8層的結(jié)點(diǎn)數(shù)最多是27=128。
61.D
62.B
63.A在本題中,程序首先定義了三個(gè)整型變量,并將變量k賦值為0,然后開始循環(huán),循環(huán)開始時(shí)變量j的值為50,結(jié)束時(shí)變量j的值為60,每循環(huán)一次,變量j自加1,即循環(huán)10次。
當(dāng)j=50,k=0時(shí),“!(k%10)”為真,輸出換行,即循環(huán)開始時(shí),輸出從新的一行開始,執(zhí)行第二重循環(huán),此時(shí)的i=2,“!(j%i)”為真,運(yùn)行break語(yǔ)句,即跳出本層循環(huán)(從這里我們可以看出,j如果可以被i整除,則跳出本層循環(huán)),然后判斷i是否不小于j-1,如果是,則輸出此時(shí)j的值,否則k自加1。
從程序執(zhí)行的過(guò)程來(lái)看,這個(gè)題目確實(shí)非常復(fù)雜,循環(huán)的次數(shù)太多,但經(jīng)過(guò)對(duì)上面一次循環(huán)過(guò)程的分析,我們可以發(fā)現(xiàn),其實(shí)這個(gè)程序的作用是找出50~60之間除1和本身外,不能被其他小于本身的數(shù)據(jù)整除的數(shù),并從小到大輸出這樣的數(shù)。這樣就能很容易地得到答案是5359。因此本題的正確答案是A。
64.B每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時(shí)t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循環(huán)時(shí)t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時(shí)t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。
65.D
66.D冒泡排序、簡(jiǎn)單插入排序與簡(jiǎn)單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。故答案為D選項(xiàng)。
67.Atypedef并不是增加了新類型,面是用一個(gè)新名字替代已存在的類型,不能為變量說(shuō)明一個(gè)新名,使用typedef可以增強(qiáng)程序的可移植性。所以A選項(xiàng)錯(cuò)誤:
68.B
69.Aint)((double)9/2)值為4,9%2值為l,相減值為3。
70.C
71.A
\n本題中的str為一個(gè)字符型數(shù)組,P為字符型指針變量,其指向str的首地址,*P的值為strE03中的字符,其類型、長(zhǎng)度不同,但字符第一個(gè)相同,故答案選擇A。
\n
72.B
73.A解析:本題考核的知識(shí)點(diǎn)是函數(shù)聲明的應(yīng)用。函數(shù)聲明是對(duì)所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對(duì)調(diào)用表達(dá)式進(jìn)行檢測(cè),以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:
類型標(biāo)識(shí)符函數(shù)名(類型標(biāo)識(shí)符形參…);
這些信息就是函數(shù)定義中的第一行的內(nèi)容。這里形參的名字是不重要的,重要的是類型標(biāo)識(shí)符,函數(shù)聲明中也可以不寫形參名只寫該形參的聲明類型,但不能只寫形參名而不寫該形參的類型。本題中,選項(xiàng)A中doublemyadd(doublea,b),沒寫出形參b的類型,故選項(xiàng)A不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
74.B
75.B
76.B
77.D本題考查鏈表的操作,本題中首先是s指向了它的下個(gè)結(jié)點(diǎn),題目中說(shuō)明了s總是指向鏈表的第一個(gè)結(jié)點(diǎn),然后while循環(huán)找到鏈表的最后一個(gè)元素,然后最后一個(gè)元素指向了之前鏈表的頭結(jié)點(diǎn),之前頭結(jié)點(diǎn)指向了空結(jié)點(diǎn),所以本題實(shí)現(xiàn)的功能是使首結(jié)點(diǎn)成為尾結(jié)點(diǎn)。選項(xiàng)D正確。
78.A函數(shù)fgete()從文件讀入一個(gè)字符到指定變量。函數(shù)fputc()將指定字符寫入審文件中,函數(shù)fprinff(),fwrite()均是寫入文件操作函數(shù)。因此選項(xiàng)B,c。D錯(cuò)誤。答案為A選項(xiàng)。
79.A#include<stdio.h>
intmain()
所以輸出為*#*#*#$和一個(gè)換行符*/,因此正確答案為A。
80.Astrcmp(char*,char*),函數(shù)strcmp用于比較兩個(gè)字符串的長(zhǎng)度,長(zhǎng)者為大,若字符個(gè)數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCIl表值計(jì)算,直到最后一個(gè)字符,若還相同,則兩個(gè)字符串相等,返回值0。選項(xiàng)A中if(strcmp(s2,sl)==0)ST,若s2等于sl,則返回值0,0等于0,所以邏輯表達(dá)式strcmp(s2,sl)==0為真,執(zhí)行ST。
81.\n\t(1)錯(cuò)誤:longsum=1;
\n正確:longsum=0;
\n(2)錯(cuò)誤:while(m)
\n正確:while(m);
\n【解析】由函數(shù)proc可知,變量sum中存放正整數(shù)m的各位上數(shù)字的平方和,其初始化為0。因此,“l(fā)ongsum=1;”應(yīng)改為“l(fā)ongsum=0;”。按照C語(yǔ)言的語(yǔ)法規(guī)則,語(yǔ)句都以分號(hào)結(jié)束,應(yīng)在do-while語(yǔ)句最后加上分號(hào)。因此,“while(m)”應(yīng)改為“while(m);”。\n
82.
程序設(shè)計(jì)題解析:
【考點(diǎn)分析】
本題考查:指針型變最定義;wh丑e循環(huán)語(yǔ)句;語(yǔ)句條件
表達(dá)式;字符串結(jié)束標(biāo)識(shí)‘\0’。
【解題思路】
函數(shù)fun的功能:除了字符串前導(dǎo)的*號(hào)之外,將串中其他+號(hào)全部刪除。
【解答本題】
(1)定義一個(gè)臨時(shí)指針P,初始指向原串首地址;(2)利用循環(huán)語(yǔ)句把字符串前導(dǎo)*號(hào)拷貝到原串;(3)繼續(xù)移動(dòng)指針,把串中和串尾的非*號(hào)字符拷貝到原串;(4)為修改后的字符串賦結(jié)束字符‘、O’。
【解題寶典】
要?jiǎng)h除字符串中的指定字符,我們通常采用保留非指定字符的方法??梢詫⒎侵付ㄗ址A粼谠磳⑿枰A舻淖址麖脑钠鹗嘉恢弥匦沦x值;也可以保留到新串,即新建一個(gè)字符串,存放要保留的字符。2021-2022年河北省石家莊市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是()。
A.結(jié)構(gòu)化程序使用goto語(yǔ)句會(huì)很便捷
B.在c語(yǔ)言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
C.一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問(wèn)題
2.采用折半查找法查找長(zhǎng)度為n的線性表時(shí),每個(gè)元素的平均查找長(zhǎng)度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)
3.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
4.下面哪個(gè)序列不是此圖的一個(gè)拓?fù)渑判?)A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch
5.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
6.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計(jì)算機(jī)結(jié)果*/}程序運(yùn)行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯(cuò)
7.
8.在瀏覽WWW時(shí),如果連接到一個(gè)安全的站點(diǎn),應(yīng)當(dāng)以()開頭來(lái)書寫統(tǒng)一資源定位器。
A.shttp://B.http:s//C.http://D.https//
9.if語(yǔ)句基本形式是:if(表達(dá)式)語(yǔ)句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
10.
11.以下程序的輸出結(jié)果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21
12.
13.
下列程序的輸出結(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
14.
15.
16.在n個(gè)結(jié)點(diǎn)的順序表中,算法的時(shí)間復(fù)雜度是O(1)的操作是()。
A.訪問(wèn)第i個(gè)結(jié)點(diǎn)(1<=i<=n)和求第i個(gè)結(jié)點(diǎn)的直接前驅(qū)(2<=i<=n)
B.在第i個(gè)結(jié)點(diǎn)之后插入一個(gè)新結(jié)點(diǎn)(1<=i<=n)
C.刪除第i個(gè)結(jié)點(diǎn)(1<=i<=n)
D.將n個(gè)結(jié)點(diǎn)從小到大排序
17.以下敘述中錯(cuò)誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問(wèn)題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語(yǔ)言是-種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
18.冒泡排序在最壞情況下的比較次數(shù)是()。
A.n(n+1)/2B.nlog2nC.n(n-1)/2D.n/2
19.第
2
題
現(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
20.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
二、2.填空題(20題)21.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*fl)int(*12)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運(yùn)行后,輸出結(jié)果是【】
22.下面程序把從終端讀入的10個(gè)整數(shù)以二進(jìn)制方式寫入一個(gè)名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
23.設(shè)有以下定義和語(yǔ)句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intx,a=1,b=2,c=3,d=4;
x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;
pfintf("%d\n",x);
}
25.在循環(huán)中,continue語(yǔ)句與break語(yǔ)句的區(qū)別是:______語(yǔ)句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
26.以下程序運(yùn)行結(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");}
27.設(shè)有以下定義
struetss
{intinfo;struetss*link;}x,y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請(qǐng)寫出刪除結(jié)點(diǎn)y的賦值語(yǔ)句【】。
28.______是數(shù)據(jù)庫(kù)應(yīng)用的核心。
29.人員基本信息一般包括:身份證號(hào)、姓名、性別、年齡等。其中可以作為主關(guān)鍵字的是()。
30.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。
31.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intm=011,n=11;
printf("%d%d\n",++m,n++);
}
32.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
33.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
34.數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
35.下列程序的輸出結(jié)果是【】。
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
36.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。
37.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正常運(yùn)行。
#include<stdio.h>
【】(double,double);
main()
{doublex,y;
scanf("%If%If",&x,&y);
printf("%If\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
38.以下程序的輸出結(jié)果是【】。
main()
{intx=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int*a,intn,intk)
{if(k<=n)sub(a,n/2,2*k);
*a+=k;
}
39.閱讀下面語(yǔ)句,則執(zhí)行后的輸出結(jié)果為【】。
#include"stdio.h"
main()
{chara,b;
for(a='0',b='9';a<b;a++,b--)
printf("%c%c",a,b);
printf("\n");}
40.用以下程序把從鍵盤輸入的字符存放到一個(gè)文件中,用字符#作為結(jié)束符,請(qǐng)按題意要求填空完善程序。
#include<stdio.h>
main()
{FILE*fp;
charch,fname[10];
printf("Inputthenameoffile\n");
gets(fname);
if(fp=fopen(【】))==NULL)
{printf("can'topen\n");
【】;
}
while((ch=getchar())!='#')
fputc(【】);
fclose(fp);
}
三、1.選擇題(20題)41.在計(jì)算面中,算法是指______。
A.查詢方法B.加工方祛C.解題方案的準(zhǔn)確而完整的描述D.排序方法
42.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實(shí)參傳遞給形參,再由形參傳遞給實(shí)參D.傳遞方式由用戶指定
43.請(qǐng)選出以下程序的輸出結(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.0000D.4444
44.C語(yǔ)言結(jié)構(gòu)體類型變量在程序執(zhí)行期間,()。
A.所有成員一直駐留在內(nèi)存中B.沒有成員駐留在內(nèi)存中C.部分成員駐留在內(nèi)存中D.只有一個(gè)成員駐留在內(nèi)存中
45.有以下程序:voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c,%c\n",c1,c2);}程序運(yùn)行后的輸出結(jié)果是()。
A.AbB.aaC.AaD.Bb
46.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序運(yùn)行后的輸出結(jié)果是()。
A.0B.1C.-1D.NULL沒定義,出錯(cuò)
47.下列程序執(zhí)行輸出的結(jié)果是()。#include<stdio.h>f(inta){intb=0;staticc=3;a=c++;b++;return(a);}main(){inta=2,i,k;for(i=0;i<2;i++)k=f(a++);printf("%d\n",k);}
A.3B.4C.5D.6
48.若有下面的說(shuō)明和定義,則sizeof(structaa)的值是______。structaa{intrl;doubler2;floatr3;uninuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
49.以下程序的功能是:建立一個(gè)帶布頭結(jié)點(diǎn)的單向鏈表,并將存儲(chǔ)在數(shù)組中的字符依次存儲(chǔ)到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)從與下劃線處號(hào)碼對(duì)應(yīng)的一組選項(xiàng)中選擇出正確的選項(xiàng)
#include<stdlib.h>
structnode
{chardata;structnode*next;};
(48)CreatList(char*s),
{structnode*h,*p,*q;
h=(structnode*)malloc(sizeof(structnode));
p=q=h;
while(*s!="\0")
{p=(structnode*)malloc(sizeof(structnode));
p->data=(49);
q->next=p;
q=(50);
s++;
}
p->next="\0";
returnh;
}
main()
{charstr[]="linklist";
structnode*head;
head=CreatList(str);
…
}
(1)
A.char*B.structnodeC.structnode*D.char
50.若有如下程序:intm=1;main(){intt=0,s=0;{intm=4;s+=m;)t+=m;printf("%d,%d\n",s,t);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1,1B.1,4C.4,1D.4,4
51.有程序:main(){intx,i;for(i=1;i<50;i++){x=i;if(++%2==0)if(x%3==0)if(x%7==0)printf("%d",i);}}輸出結(jié)果是()
A.28B.27C.42D.41
52.以下敘述中不正確的是
A.C語(yǔ)言中的文本文件以ASCII碼形式存儲(chǔ)數(shù)據(jù)
B.C語(yǔ)言中對(duì)二進(jìn)制文件的訪問(wèn)速度比文本文件快
C.C語(yǔ)言中,隨機(jī)讀寫方式不適用于文本文件
D.C語(yǔ)言中,順序讀寫方式不適用于二進(jìn)制文件
53.在下列選項(xiàng)中,不是一個(gè)算法一般應(yīng)該具有的基本特征的是()。
A.確定性B.可行性C.無(wú)窮性D.擁有足夠的情報(bào)
54.以下數(shù)組定義中不正確的是_______。
A.inta[2][3];
B.intb[][3]={0,1,2};
C.intc[100][100={0};
D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
55.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語(yǔ)句后輸出的結(jié)果為()。
ch='b';
k=10;
printf("%x,%o,",ch,ch,k);
printf("k:%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無(wú)定值
B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
56.有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序運(yùn)行后的輸出結(jié)果是——。
A.10234B.12344C.12334D.12234
57.C語(yǔ)言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語(yǔ)句
58.有如下程序: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
59.以下程序的功能是:給r輸入數(shù)據(jù)后計(jì)算半徑為r的圓面積s。#include<stdio,h>main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*Π*r*r;printf("s=%f\n",s);程序在編譯時(shí)出錯(cuò),出錯(cuò)的原因是()。
A.注釋語(yǔ)句書寫位置錯(cuò)誤
B.存放圓半徑的變量r不應(yīng)該定義為整型
C.輸出語(yǔ)句中格式描述符非法
D.計(jì)算圓面積的賦值語(yǔ)句中使用了非法變量
60.在一棵二叉樹上第8層的結(jié)點(diǎn)數(shù)最多是_______。
A.8B.16C.128D.256
四、選擇題(20題)61.
62.
63.有以下程序段
#include"stdio.h"
main()
{intj,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))
break;
if(i>=j-1)
{printf("%d",j);
k++;}
}
}
程序執(zhí)行后輸出的結(jié)果是
A.5359B.5953
C.3595D.9535
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.3B.4C.lD.9
65.
66.下列排序方法中,最壞情況下比較次數(shù)最少的是()。
A.冒泡排序B.簡(jiǎn)單選擇排序C.直接插入排序D.堆排序
67.以下關(guān)于typedef的敘述錯(cuò)誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個(gè)新的名字來(lái)代替
C.用typedef可以為各種類型說(shuō)明一個(gè)新名,但不能用來(lái)為變量說(shuō)明一個(gè)新名
D.用typedef為類型說(shuō)明一個(gè)新名,通??梢栽黾映绦虻目勺x性
68.
69.表達(dá)式:的值是()。
A.3B.0C.4D.5
70.
71.
設(shè)有以下定義和語(yǔ)句:
charstr[2O]="Program",*P:
p=str:
則以下敘述中正確的是()。
A.*p與stf[0]的值相等
B.str與P的類型完全相同
C.str數(shù)組長(zhǎng)度和P所指向的字符串長(zhǎng)度相等
D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同
72.
73.若程序中定義了以下函數(shù)doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語(yǔ)句之后,則在調(diào)用之前應(yīng)該對(duì)該函數(shù)進(jìn)行說(shuō)明,以下選項(xiàng)中錯(cuò)誤的說(shuō)明是()A.doublemyadd(doublea,b);
B.doublemyadd(do
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級(jí)物理第一次月考卷(全解全析)(廣州專用)
- 河南省安陽(yáng)市林慮中學(xué)2025屆高三語(yǔ)文試題第三次質(zhì)量檢測(cè)試題試卷含解析
- 內(nèi)燃式叉車日常點(diǎn)檢表
- 貴州省黔東南州錦屏縣民族中學(xué)2025屆高三下學(xué)期三診模擬考試語(yǔ)文試題含解析
- 貴州省畢節(jié)市重點(diǎn)中學(xué)2025屆高三下學(xué)期第三次(5月)月考語(yǔ)文試題試卷含解析
- 廣西岑溪市2024-2025學(xué)年高三下學(xué)期期末調(diào)研測(cè)試語(yǔ)文試題理試題含解析
- 廣東省廣州增城市2024-2025學(xué)年高三下學(xué)期期中考試語(yǔ)文試題版含答案含解析
- 廣東省東莞市北京師范大學(xué)石竹附屬學(xué)校2025屆高三第三次全國(guó)大聯(lián)考:語(yǔ)文試題卷含解析
- 甘肅省白銀市會(huì)寧縣第四中學(xué)2025年高考語(yǔ)文試題模擬題及解析(全國(guó)卷Ⅲ:)含解析
- 北京市西城區(qū)161中學(xué)2025年高三實(shí)驗(yàn)A班小題專項(xiàng)訓(xùn)練2含解析
- 設(shè)備故障排查與維修實(shí)操的實(shí)際案例與技術(shù)分享
- 體檢科縮短體檢時(shí)間品管圈課件
- 協(xié)議書:技術(shù)合作框架(通用版)
- 生物藥物的市場(chǎng)分析與商業(yè)化策略
- 崗位認(rèn)知教學(xué)課件
- 食品安全培訓(xùn)之印刷與包裝行業(yè)
- 2021年10月07891《數(shù)字媒體視頻編輯》歷年真題試卷及答案
- 成人高考課件
- MSOP(測(cè)量標(biāo)準(zhǔn)作業(yè)規(guī)范)測(cè)量SOP
- 2023年江蘇衛(wèi)生健康職業(yè)學(xué)院招聘工作人員24人筆試參考題庫(kù)(共500題)答案詳解版
- 超限運(yùn)輸管理(公路路政管理課件)
評(píng)論
0/150
提交評(píng)論