版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年河南省平頂山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行
B.退出Windows后再關(guān)機(jī)
C.退出Windows后重新啟動(dòng)計(jì)算機(jī)
D.終止當(dāng)前應(yīng)用程序的運(yùn)行
2.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
3.若以下變量均是整型,且num=sum=7;則執(zhí)行表達(dá)式sum=num++,sum++,++num后sum的值為()。
A.7B.8C.9D.10
4.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是______。
A.startB.endC.startendD.endrt
5.現(xiàn)有二叉搜索樹(BST)前序遍歷結(jié)果序列為abdefgc,中序遍歷結(jié)果序列為debgfac,請(qǐng)問(wèn)后序遍歷結(jié)果序列為()
A.debgfaCB.edgfbcAC.edgbfcAD.degbfaC
6.算法分析的兩個(gè)主要方面是()。
A.空間復(fù)雜性和時(shí)間復(fù)雜性B.正確性和簡(jiǎn)明性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性
7.
8.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
9.具有n個(gè)頂點(diǎn)的完全有向圖的弧數(shù)為()。
A.n(n-1)/2B.n(n-1)C.n2D.n2-1
10.
11.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
12.判定一個(gè)循環(huán)隊(duì)列qu(最多元素為MaxSize)為空的條件是()。
A.QU->rear-QU->front==MaxSize
B.QU->rear-QU->front-1==MaxSize
C.QU->front==QU->rear
D.QU->front==QU->rear+1
13.
14.鏈表不具備的特點(diǎn)是()。
A.可隨機(jī)訪問(wèn)任一結(jié)點(diǎn)B.插入刪除不需要移動(dòng)元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與其長(zhǎng)度成正比
15.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。
A.abcloB.abcC.helloabcD.abchello
16.折半查找的時(shí)間復(fù)雜性為()
A.O(n2)B.O(n)C.O(nlogn)D.O(logn)
17.定義int*swap()指的是______。
A.—個(gè)返回整型值的函數(shù)swap()
B.一個(gè)返回指向整型值指針的函swap()
C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值
D.以上說(shuō)法均錯(cuò)
18.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達(dá)式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4
19.下面不正確的字符賦值或賦初值的方式為()。
A.chars[10]=”hello!”
B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}
C.chars[10];s=”hello”
D.char[]=”hello!”
20.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
二、2.填空題(20題)21.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為______。
22.若x,y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。
x=(y=4)+(z=2)
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{char*p;t;
p=s+1;t=*s;
while(*p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdergh";
p=ss(str);
printf("%s\n",p);
}
24.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
25.以下程序運(yùn)行后的輸出結(jié)果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
26.用下面語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使單精度型指針p指向具有40個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)羁铡?/p>
p=(float*)【】;
27.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
28.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
29.下列程序的輸出結(jié)果是【】。
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
30.軟件測(cè)試方法中,黑盒測(cè)試法和白盒測(cè)試法是常用的方法,其中黑盒測(cè)試法主要是用于測(cè)試【】。
31.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
32.設(shè)有以下結(jié)構(gòu)類型說(shuō)明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是【】。
structstud
{charnum[6];
mts[4];
doubleave;
}a,*p;
33.計(jì)算圓的周長(zhǎng)、面積和球體積。
#definePI3.1415926
#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R
main()
{floatr,l,s,v;
printf("inputaradus:");
scanf("%f",&r);
CIRCLE(r,l,s,v);
printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);
}
34.下列程序的功能是對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
35.下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)小寫字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
36.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
37.在E-R圖中,矩形表示【】。
38.以下程序運(yùn)行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
39.軟件測(cè)試中路徑覆蓋測(cè)試是整個(gè)測(cè)試的基礎(chǔ),它是對(duì)軟件【】進(jìn)行測(cè)試。
40.以下程序段的功能是統(tǒng)計(jì)鏈表中結(jié)點(diǎn)的個(gè)數(shù),其中first為指向第一個(gè)結(jié)點(diǎn)的指針(鏈表帶頭結(jié)點(diǎn))。請(qǐng)?jiān)谙聞澗€內(nèi)填入正確內(nèi)容。
structlink
{chardata;
structlink*next;};
…
structlink*p,*first;
intc=0;
p=first;
while(【】)
{c++;
p=【】;}
三、1.選擇題(20題)41.有以下程序:#include<sldio.h>main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
42.設(shè)以下變量均為int類型,表達(dá)式的值不為7的是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+1,x=y,x+1)
43.若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)字符型變量的動(dòng)態(tài)存儲(chǔ)單元,則應(yīng)填入;char*p;p=()malloc(sizeof(char));
A.charB.char*C.(*char)D.(char*)
44.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<-10‖!(y-x)>10
D.(x-y)*(x-y)<100
45.有以下程序:#include<stdio.h>#include<string.h>main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是()。
A.2B.3C.4D.5
46.有以下程序
#include<stdio.h>
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);}
程序運(yùn)行后的輸出結(jié)果是
A.2030B.2050C.3050D.3020
47.以下程序的輸出結(jié)果是()main(){charss[16]="test\0\n\"";printf("%d,%d\n",strlen(ss),sizeof(ss)):}
A.4,16B.7,7C.16,16D.4,7
48.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
49.有以下程序intf1[y){returnx>y?x:y;}intf2(intx,inty){returrnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b},f1(c,d));f=f1(f2(a,b),f2(c,d);;g=a+b+c+d-e-f;printf("%d,%d,%d\n",c,f,g);}程序運(yùn)行后的輸出結(jié)果是
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
50.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4:*y=s[m];m--;}voidmain(){inta[]={1,2,3,4,5},k,x;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}
A.5,4,3,2,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,
51.有下列二叉樹,對(duì)此二叉樹中序遍歷的結(jié)果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
52.軟件的可靠性主要表現(xiàn)在______。
A.能夠安裝多次B.能夠在不同類型的計(jì)算機(jī)系統(tǒng)上安裝和使用C.軟件的正確性和健壯性D.前面都正確
53.語(yǔ)句int(*ptr)()的含義是()。
A.(!a==1)&&(!b==0)
B.(a<b)&&!c‖1
C.a&&b
D.a‖(b+b)&&(c-a)
54.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}程序運(yùn)行后的輸出結(jié)果是______。
A.4B.3C.2D.1
55.下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是
A.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)體變量
B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體
C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體
D.對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的
56.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合
57.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
58.按照“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹
59.在16位IBM-PC機(jī)上使用C語(yǔ)言,若有如下定義structdata{inti;charch;doublef;}b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是
A.1B.2C.7D.11
60.設(shè)有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。
A.'\0'B.'0'C.不確定的值D.'0'的地址
四、選擇題(20題)61.
62.有如下程序段
#include"stdio.h"
typedefunion
{longx[2];
inty[4];
charz[8];
}atx;
typedefstructaa
{longx[2];
inty[4];
charz[8];
}stx;
main()
{printf("union=%d,structaa=%d\n",sizeof(atx),sizeof(stx));}
則程序執(zhí)行后輸出的結(jié)果是
A.union=8,structaa=8
B.union=8,structaa=24
C.union=24,structaa=8
D.union=24,structaa=24
63.合法的數(shù)組定義是()。
A.
B.
C.
D.
64.
65.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
66.在一個(gè)C源程序文件中所定義的全局變量。其作用域?yàn)?)。A.由具體定義位置和extern說(shuō)明來(lái)決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
67.以下程序的輸出結(jié)果是()。
main()
{char*s="12134211";
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{case’1’:v1++;
case’3’:v3++;
case’2’:v2++;
defaule:v4++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n,v1,v2,v3,v4);
}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=4,v2=7,v3=5,v4=8
68.一名工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多名工作人員使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是()。
A.—對(duì)一B.—對(duì)多C.多對(duì)多D.多對(duì)一
69.
70.以下程序段完全正確的是()。
A.int*p;scanf(”%d”,&p);
B.int*p;scanf(”%d”,P);
C.intk,*P:&k;scanf(’’%d”,P);
D.intk,*p;*P=&k;scanf(”%d”,P);
71.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
72.下面敘述中正確的是(
)。A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態(tài)類型變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C.函數(shù)的形參都屬于全局變量D.未在定義語(yǔ)句中賦值的auto變量和static變量的初值都是隨機(jī)值
73.
74.
以下程序的輸出結(jié)果是()。
main
{charch[3][4]={"123","456","78"),*p[3];inti;
for(i=0;i<3;i++)p[i]=ch[i];
for(i=0;i<3;i++)printf("%s",p[i]);}
A.123456780B.123456780C.12345678D.147
75.
76.
77.有以下程序:
當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無(wú)確定值
78.
79.
下列程序的輸出結(jié)果是()。
#includedstdi0.h>
#includedstring.h>
voidfun(intb[])
{staticinti=0;
do
{b[i]+=b[i+1];
}while(++i<2);
}
main
{intk,a[5]={1,3,5,4,9};
fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);
}
A.13579B.48579C.48549D.48999
80.
五、程序改錯(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的值通過(guò)形參傳人。例如,當(dāng)n=20時(shí),程序的輸出結(jié)果應(yīng)為42762.000000。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)maiil函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>doubleproc(intn){doublesum,s0,s1,s2,s;intk;sum=1.0;if(n<=2)sum=0.0;s0=0.0;s1=0.0;s2=1.0;//****found****for(k=4;k<n;k++)}{s=s0+s1+s2;sum+=S:s0=s1;s1=s2;//****found****s2=s;returnsum;}voidmain{intn;system("CLS");printf("InputN=");scanf("%d",&nJ;printf("%f\n",proc(n));}
六、程序設(shè)計(jì)題(1題)82.程序定義了M×M的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)proc(inta[][M],intn),該函數(shù)的功能是使數(shù)組左下半三角元素中的值加上n。例如,a數(shù)組中的值為:
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
參考答案
1.D
2.C\n面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過(guò)程中從應(yīng)用領(lǐng)域的概念角度去思考。
\n
3.A
4.B
5.B
6.A
7.B
8.A解析:模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)是概念設(shè)計(jì)的兩種方法。物理設(shè)計(jì)是根據(jù)特定的計(jì)算機(jī)系統(tǒng),對(duì)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和存取方法進(jìn)行設(shè)計(jì),從而實(shí)現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來(lái)看,結(jié)構(gòu)特性設(shè)計(jì)和行為特性-設(shè)計(jì)是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)所具有的兩個(gè)特性。結(jié)構(gòu)特性的設(shè)計(jì),設(shè)計(jì)各級(jí)數(shù)據(jù)庫(kù)模式(靜態(tài)特性):行為特性的設(shè)計(jì),改變實(shí)體及其特性,決定數(shù)據(jù)庫(kù)系統(tǒng)的功能(動(dòng)態(tài)特性)。
9.B
10.C
11.D
12.C
13.A
14.A
15.B執(zhí)行“fprintf(f,“abc”);”后,f文件原有內(nèi)容被“abc”覆蓋。故本題答案為B選項(xiàng)。
16.D
17.B解析:—個(gè)函數(shù)可以帶回—個(gè)整型值、字符值、實(shí)型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號(hào)和*號(hào),由于()優(yōu)先級(jí)高于*。故它是—個(gè)返回整型指針的函數(shù)。
18.C本題考查三目運(yùn)算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級(jí),先算括號(hào)內(nèi)的,c小于d為真取C的值,再看a小于b為假,所以取C的值。
19.C
20.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機(jī)。為了消除軟件危機(jī),通過(guò)認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識(shí)到軟件工程是使計(jì)算機(jī)軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。
21.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。
22.6
23.bcdefghabcdefgha解析:在本題定義的ss()函數(shù)中首先定義了一個(gè)指針p和一個(gè)字符變量t,然后讓p指向參數(shù)指針s的下一個(gè)位置s+1,并讓t保存s位置的字符。然后使用一個(gè)while循環(huán)將p指向的內(nèi)容賦給它前面一個(gè)位置,即將參數(shù)s所指的字符串從第2個(gè)字符開始整體往前移動(dòng)一位。循環(huán)結(jié)束時(shí),p指向原s串的結(jié)束標(biāo)志處,所以讓*(p-1)=t;即是將原s串的第1個(gè)字符復(fù)制到s串的最后一個(gè)位置。整個(gè)函數(shù)實(shí)現(xiàn)的是讓一個(gè)字符串循環(huán)左移一位。故主函數(shù)中最后輸出的字符串是'bcdefgha'。
24.doublemaxdoublemax解析:本題考查函數(shù)的聲明。C語(yǔ)言中函數(shù)聲明的一般形式為:
(1)函數(shù)類型函數(shù)名(參數(shù)類型1,參數(shù)類型2,…)
(2)函數(shù)類型函數(shù)名(參數(shù)類型1參數(shù)名1,參數(shù)類型2參數(shù)名2,…)
題目中函數(shù)類型是double。函數(shù)名是max。故答案是doublemax。
25.136136解析:本題考核的知識(shí)點(diǎn)是函數(shù)遞歸。主函數(shù)調(diào)用函數(shù)fun(6),由于6/2>0為真遞歸調(diào)用fun(3),接著遞歸調(diào)用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應(yīng)該填136。
26.malloc(40)malloc(40)解析:庫(kù)函數(shù)malloc()只有一個(gè)參數(shù),就是所需分配內(nèi)存的字節(jié)數(shù),然后返回一個(gè)void*指針。本題要求分配40個(gè)字節(jié),故直接調(diào)用malloc(40)就可以了。
27.aa解析:本程序先將指針ptr1和ptr2分別指向字符數(shù)組a和b,然后通過(guò)指針的移動(dòng)比較a和b中是否有相同的字符。若有相同的字符則將其輸出。
28.棧棧解析:棧和隊(duì)列都是—種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進(jìn)行插入或刪除操作,是—種“先進(jìn)后出”的線性表;而隊(duì)列只允許在表的—端進(jìn)行插入操作,在另—端進(jìn)行刪除操作,是—種“先進(jìn)先出”的線性表。
29.HelloHello解析:執(zhí)行b[5]=0;是給數(shù)組的第6個(gè)元素賦值為0,即將Hello后的空格變?yōu)?。當(dāng)輸出字符串時(shí)遇到0終止輸出。
30.軟件外部功能軟件外部功能
31.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。
32.2222解析:C語(yǔ)言里char類型占1個(gè)字節(jié),int類型占2個(gè)字節(jié),float類型占4個(gè)字節(jié),double類型占8個(gè)字節(jié),因此變量a在內(nèi)存中所占字節(jié)數(shù)=1*6+4*2+1*8=6+8+8=22。
33.CIRCLE(RLSV)S=PI*R*Rr1sv
34.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。
35.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
36.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為\'a\',執(zhí)行一次循環(huán)后變?yōu)閈'c\',之后再變成\'e\',當(dāng)其變?yōu)閈'g\'時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式'i-\'a\'+\ue008\'A\'\ue009'即表示輸出i對(duì)應(yīng)的大寫字母,結(jié)果為ACE。
37.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。
38.1343113431解析:初始化時(shí),指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語(yǔ)句,得到m[0].k=1,m[4].k=1,此時(shí)i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語(yǔ)句,得到m[1].k=3,k=3,此時(shí)i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。
39.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測(cè)試是白盒測(cè)試方法中的—種,它要求對(duì)程序中的每條路徑最少檢查一次,目的是對(duì)軟件的結(jié)構(gòu)進(jìn)行測(cè)試。
40.p!=NULLp->nextp!=NULL\r\np->next解析:結(jié)構(gòu)體變量構(gòu)成鏈表需要每個(gè)節(jié)點(diǎn)中都有一個(gè)指向下一個(gè)結(jié)點(diǎn)的指針,就像本題中的next指針一樣。注意:掌握可以對(duì)鏈表進(jìn)行的操作。
41.B解析:當(dāng)x=0,y=5,z=3時(shí),z->0&&++x<5成立,執(zhí)行y=y-1;此時(shí)y=5-1=4,z=z-1=2,x=x+1=1;條件z-->0&&++x<5仍然成立,繼續(xù)執(zhí)行y=y-1,此時(shí)y=y-1=3,z=1,x=2;條件z-->0&&++x<5仍然成立,繼續(xù)執(zhí)行y=y-1,此時(shí)y=y-1=2,z=0,x=3;條件不再成立,執(zhí)行條件判斷后x=3,y=2,z=-1。
42.C解析:本題考查逗號(hào)表達(dá)式的用法。C語(yǔ)言中逗號(hào)“,”也是一種運(yùn)算符,稱為逗號(hào)運(yùn)算符。其功能是把兩個(gè)表達(dá)式連接起來(lái)組成一個(gè)表達(dá)式,稱為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式的一般形式為:表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n,其值為表達(dá)式n的值。
43.D
44.C解析:選項(xiàng)A用了一個(gè)絕對(duì)值函數(shù)abs();選項(xiàng)B中用了一個(gè)“&&”邏輯與;選項(xiàng)C中,“||”左邊的式子如為真,將不再判斷其后的表達(dá)式的值;選項(xiàng)D為本題中數(shù)學(xué)關(guān)系式的一個(gè)等價(jià)命題。
45.A解析:p是由10個(gè)指向字符型數(shù)據(jù)的指針元素組成的指針數(shù)組,其中前5個(gè)數(shù)組元素進(jìn)行了初始化。p[4]='cd',strlen(str)是統(tǒng)計(jì)字符串str中字符的個(gè)數(shù)(不包括終止符\'\\0\'),輸出結(jié)果為2。
46.A解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件函數(shù)的應(yīng)用。
函數(shù)名:fopen
功能:打開一個(gè)文件
調(diào)用方式FILE*fp;
fp=fopen(文件名,使用文件方式);
函數(shù)名:fprintf
功能:傳送格式化輸出到一個(gè)文件中
調(diào)用方式:fprintf(文件指針,格式字符串,輸出表列);
函數(shù)名:fclose
功能:關(guān)閉一個(gè)文件
調(diào)用方式:fclose(文件指針);
函數(shù)名:fscanf
功能:從磁盤文件執(zhí)行格式化輸入
調(diào)用方式:fscanf(文件指針,格式字符串,輸入列表)。
47.A
48.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個(gè)字符串。
49.A解析:本題考查的是函數(shù)的綜合應(yīng)用.程序開頭定義了兩個(gè)函數(shù)f1()、f2(),每個(gè)函數(shù)都只有一條語(yǔ)句,在f1()中是“如果x>y則返回x否則返回廣,即返回兩個(gè)參數(shù)中較大的那一個(gè),C()則正好相反,返回較小的.主函數(shù)的語(yǔ)句e=f2(f1(a,b),f1(c,d));是使用兩次調(diào)用n()函數(shù)的返回值作為f2()函數(shù)的參數(shù),并將n()的返回值賦給變量e.a(chǎn)、b中較大的數(shù)是a為4,c.d中較大的數(shù)是c為5,4和5中較小的數(shù)是4,所以結(jié)果e=4.同理可以推出f=3,那么g=a+b+c+d-e-f=4+3+5+2-4-3=7。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
50.A解析:本題考查的是靜態(tài)變量以及函數(shù)的實(shí)參與形參之間的地址值傳遞。sub()函數(shù)數(shù)中定義的變量m是一個(gè)靜態(tài)變量,系統(tǒng)可為其分配固定的存儲(chǔ)空間,重復(fù)使用時(shí),變量的值保留;所以當(dāng)mam()函數(shù)中的for循環(huán)中語(yǔ)句sub(a,&x);執(zhí)行時(shí),sub函數(shù)中m的值依次是4,3,2,1,0;因?yàn)樽兞縳進(jìn)行的是地址值傳遞,所以最后依次輸出的是數(shù)組a的元素a[4]、a[3]、a[2]、a[1]、a[0]。
51.B對(duì)二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左、右子樹時(shí),注意依舊按照“左子樹一根結(jié)點(diǎn)一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問(wèn)左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問(wèn)左子樹DY;在左子樹DY中,也按中序遍歷,先訪問(wèn)左子樹,左子樹沒有,則訪問(wèn)根結(jié)點(diǎn)D,然后訪問(wèn)右子樹Y;③接著訪問(wèn)根B,再訪問(wèn)右子樹E;④訪問(wèn)左子樹BDEY后,接著訪問(wèn)根結(jié)點(diǎn)A,接著訪問(wèn)右子樹CFXZ;⑤右子樹CFXZ的訪問(wèn)順序同理可得:FCZX。
52.C
53.A解析:在選項(xiàng)A)中,因?yàn)?a=0,所以關(guān)系表達(dá)式!a==1的值為0,又因?yàn)檫壿嬇c運(yùn)算符“&&”兩邊的表達(dá)式只要一個(gè)等于零,則整個(gè)表達(dá)式為零,所以選項(xiàng)A)正確。在選項(xiàng)B)中,關(guān)系表達(dá)式a<b為真,表達(dá)式(a<b)&&!c為假,而表達(dá)式(a<b)&&!c‖1為真,所以整個(gè)表達(dá)式的值為真。選項(xiàng)C)中,a&&b的結(jié)果為真。在選項(xiàng)D)中,a‖(b+b)&&(c-a)的結(jié)果為真。
54.D解析:C語(yǔ)言規(guī)定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。
55.A解析:對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接的對(duì)應(yīng)關(guān)系,對(duì)象之間通過(guò)傳遞消息互相聯(lián)系,從模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對(duì)象的思想廣泛應(yīng)用于C++、Java等語(yǔ)言中,因此A)錯(cuò)誤。
56.D解析:軟件是運(yùn)行在計(jì)算機(jī)硬件之上的邏輯實(shí)體,包括程序、數(shù)據(jù)和相關(guān)的文檔,軟件的開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制。
57.D解析:本題考查switch語(yǔ)句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語(yǔ)句的語(yǔ)法格式:
switch語(yǔ)句的語(yǔ)法格式為:
switch(表達(dá)式)
{
case常量表達(dá)式1:語(yǔ)句組1;
case常量表達(dá)式2:語(yǔ)句組2;
……
case常量表達(dá)式n:語(yǔ)句組n;
default:語(yǔ)句組n+1;
}
另外,注意以下幾點(diǎn)關(guān)于switch語(yǔ)句的重點(diǎn):
①系統(tǒng)在執(zhí)行時(shí)計(jì)算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個(gè)case標(biāo)號(hào)表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(hào)(本例中匹配的是case'B':);③找到匹配后執(zhí)行后面相應(yīng)的語(yǔ)句表,順序往下執(zhí)行;④如果無(wú)相匹配的標(biāo)號(hào),若存在default標(biāo)號(hào),則執(zhí)行該語(yǔ)句標(biāo)號(hào)后面的語(yǔ)句表n+1;當(dāng)不存在default標(biāo)號(hào)時(shí),不執(zhí)行switch中的任何一個(gè)語(yǔ)句表。
一般而言,在多分支結(jié)構(gòu)中總會(huì)出現(xiàn)“意外”的情況,這時(shí)均可歸入default:程序段,作統(tǒng)一的處理;default標(biāo)號(hào)是可選性的,不必每次都有,視需要而定。switch語(yǔ)句中還可以包含switch語(yǔ)句,形成switch的嵌套。
58.BB.【解析】棧是一種特殊的線性表,其插入和刪除運(yùn)算都只在線性表的一端進(jìn)行,而另一端是封閉的。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元索是最后被插入的元素,也是最后被刪除的元素。棧是按先進(jìn)后出的原則組織數(shù)據(jù)的。
【知識(shí)拓展】“?!钡男问饺缡謽尩膹椣?,最后壓入的子彈總是最先被彈出,而最先壓人的子彈最后才被彈出,也就是“先進(jìn)后出”。
59.D解析:結(jié)構(gòu)體變量所占用內(nèi)存的字節(jié)數(shù)是其所有成員所占用內(nèi)存字節(jié)數(shù)之和。本題中整型變量i所占用的內(nèi)存是2字節(jié),字符型變量ch所占用的內(nèi)存是1字節(jié),雙精度型變量f所占用的內(nèi)存是8字節(jié),三者相加即可。
60.A解析:本題涉及字符數(shù)組和指針兩個(gè)知識(shí)點(diǎn):①在C語(yǔ)言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上'\\0',所以題中數(shù)組str有11個(gè)元素;②ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。
61.B
62.B本題主要考查結(jié)構(gòu)體和聯(lián)合體所占的存儲(chǔ)空間。
在本題程序中,首先定義了一個(gè)聯(lián)合體,聯(lián)合體中具有三個(gè)成員,它們的類型分別為長(zhǎng)整型、整型和字符型。按照C語(yǔ)言的規(guī)定,這三種類型的變量所占的存儲(chǔ)空間分別為4個(gè)字節(jié)、2個(gè)字節(jié)和1個(gè)字節(jié)。但由于定義的成員都是數(shù)組,長(zhǎng)整型數(shù)組的大小為2,那么需要的總空間為8個(gè)字節(jié);整型數(shù)組的大小為4,那么需要的總空間為8個(gè)字節(jié);字符數(shù)組的大小為8,需要的總空間也為8個(gè)字節(jié),因此,可以看出三個(gè)成員需要的存儲(chǔ)空間一樣,都為8。根據(jù)聯(lián)合體變量中的所有成員共享存儲(chǔ)空間,聯(lián)合變量的長(zhǎng)度等于各成員中最長(zhǎng)的長(zhǎng)度的特點(diǎn),我們可知,系統(tǒng)只需為該聯(lián)合體變量準(zhǔn)備8個(gè)字節(jié)存儲(chǔ)空間即可。
然后,定義了一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體中的成員類型及數(shù)組大小與聯(lián)合體完全一致,即三個(gè)成員所需的空間都為8個(gè)字節(jié)。但是結(jié)構(gòu)體與聯(lián)合體不一樣的是,結(jié)構(gòu)體不能共享空間,一個(gè)結(jié)構(gòu)體變量的總長(zhǎng)度是各成員長(zhǎng)度之和。因此,該結(jié)構(gòu)體所需的存儲(chǔ)空間為24個(gè)字節(jié)。
綜上所述,我們可以知道程序中的聯(lián)合體和結(jié)構(gòu)體所需要的存儲(chǔ)空間分別為8個(gè)字節(jié)和24個(gè)字節(jié)。因此,用sizeof運(yùn)算符計(jì)算這兩者的存儲(chǔ)空間,輸出的結(jié)果應(yīng)該為union=8,structaa=24,本題正確答案選B。
63.B選項(xiàng)A),字符串”string”中的元素是char類型,而數(shù)組a中存放的是int類型的元素,不匹配。選項(xiàng)c),a中只能存放字符類型數(shù)據(jù),而”0”是字符串。選項(xiàng)D),定義二維數(shù)組時(shí),列數(shù)不可省略。
64.D
65.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號(hào)隔開輸出兩個(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符合題意。
66.A全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)
67.Dk=0,s[k]=1,v1++,v2++,v3++,v4++;k=1,s[k]=2,v2++,v4++;k=3,s[k]=1,……,直到k=8,s[k]=0.退出循環(huán)
68.c因?yàn)橐幻ぷ魅藛T可以操作多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)又可以被多名工作人員使用,所以兩個(gè)實(shí)體之間是多對(duì)多的關(guān)系,選擇c)。
69.A
70.CA選項(xiàng)中錯(cuò)在沒有對(duì)指針進(jìn)行初始化,是無(wú)效指針,并且在scanf(”%d”,&p)中無(wú)需再進(jìn)行取地址操作;B選項(xiàng)中沒有對(duì)指針進(jìn)行初始化,是無(wú)效指針;D選項(xiàng)中語(yǔ)句+P=&k;的左端tpt是指針?biāo)竷?nèi)存空間的值,&k是地址,應(yīng)為P=&k。因此C選項(xiàng)正確。
71.C本題中x++中的x值應(yīng)當(dāng)是先引用,后自加,在此基礎(chǔ)上,逐步將值帶入程序中,即可得到正確的答案。
72.B
73.B\r\n
74.B
\n第一個(gè)for循環(huán)的作用是讓p指向每行的首地址,第二個(gè)for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項(xiàng)。
\n
75.D
76.A
77.A本題考查的是輸入輸出函數(shù)。函數(shù)get.char的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符,且只能接受一個(gè)字符(回車符也算是一個(gè)字符)。故本題中變量cl被賦予字符a,c2被賦予回車符。
78.C
79.C
\n本題考查do-while循環(huán),在fun函數(shù)中,首先定義了靜態(tài)變量i=0,do-while循環(huán)要實(shí)現(xiàn)的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不變的規(guī)則重新給b數(shù)組賦值。在主函數(shù)中,通過(guò)調(diào)用fun函數(shù),按上面的規(guī)則對(duì)數(shù)組a重新賦值,最后輸出數(shù)組a。
\n
80.D
81.(1)錯(cuò)誤:for(k=4;k<n;k++)正確:for(k=4;k<=11;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語(yǔ)言的語(yǔ)法規(guī)則,for循環(huán)體中的多條語(yǔ)句必須在大括號(hào)“{”和“}”之間,因此,要在語(yǔ)句s2=s;后加上)。
82.
【解析】使數(shù)組左下半三角元素中的值加上n,首先要找出數(shù)組中下半三角元素。數(shù)組中下半三角元素的特點(diǎn)是,其列下標(biāo)小于等于行下標(biāo)。根據(jù)這個(gè)特點(diǎn)找出所有的下半三角元素再加上n放在原來(lái)的位置上。
2021年河南省平頂山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.在Windows環(huán)境下,單擊當(dāng)前應(yīng)用程序窗口中的“關(guān)閉”按鈕,其功能是A.將當(dāng)前應(yīng)用程序轉(zhuǎn)為后臺(tái)運(yùn)行
B.退出Windows后再關(guān)機(jī)
C.退出Windows后重新啟動(dòng)計(jì)算機(jī)
D.終止當(dāng)前應(yīng)用程序的運(yùn)行
2.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
3.若以下變量均是整型,且num=sum=7;則執(zhí)行表達(dá)式sum=num++,sum++,++num后sum的值為()。
A.7B.8C.9D.10
4.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是______。
A.startB.endC.startendD.endrt
5.現(xiàn)有二叉搜索樹(BST)前序遍歷結(jié)果序列為abdefgc,中序遍歷結(jié)果序列為debgfac,請(qǐng)問(wèn)后序遍歷結(jié)果序列為()
A.debgfaCB.edgfbcAC.edgbfcAD.degbfaC
6.算法分析的兩個(gè)主要方面是()。
A.空間復(fù)雜性和時(shí)間復(fù)雜性B.正確性和簡(jiǎn)明性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性
7.
8.數(shù)據(jù)庫(kù)設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
9.具有n個(gè)頂點(diǎn)的完全有向圖的弧數(shù)為()。
A.n(n-1)/2B.n(n-1)C.n2D.n2-1
10.
11.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
12.判定一個(gè)循環(huán)隊(duì)列qu(最多元素為MaxSize)為空的條件是()。
A.QU->rear-QU->front==MaxSize
B.QU->rear-QU->front-1==MaxSize
C.QU->front==QU->rear
D.QU->front==QU->rear+1
13.
14.鏈表不具備的特點(diǎn)是()。
A.可隨機(jī)訪問(wèn)任一結(jié)點(diǎn)B.插入刪除不需要移動(dòng)元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與其長(zhǎng)度成正比
15.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。
A.abcloB.abcC.helloabcD.abchello
16.折半查找的時(shí)間復(fù)雜性為()
A.O(n2)B.O(n)C.O(nlogn)D.O(logn)
17.定義int*swap()指的是______。
A.—個(gè)返回整型值的函數(shù)swap()
B.一個(gè)返回指向整型值指針的函swap()
C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值
D.以上說(shuō)法均錯(cuò)
18.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達(dá)式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4
19.下面不正確的字符賦值或賦初值的方式為()。
A.chars[10]=”hello!”
B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}
C.chars[10];s=”hello”
D.char[]=”hello!”
20.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
二、2.填空題(20題)21.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為______。
22.若x,y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。
x=(y=4)+(z=2)
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{char*p;t;
p=s+1;t=*s;
while(*p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdergh";
p=ss(str);
printf("%s\n",p);
}
24.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
scanf("%lf%lf",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
25.以下程序運(yùn)行后的輸出結(jié)果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
26.用下面語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使單精度型指針p指向具有40個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)羁铡?/p>
p=(float*)【】;
27.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}
28.按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
29.下列程序的輸出結(jié)果是【】。
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
30.軟件測(cè)試方法中,黑盒測(cè)試法和白盒測(cè)試法是常用的方法,其中黑盒測(cè)試法主要是用于測(cè)試【】。
31.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
32.設(shè)有以下結(jié)構(gòu)類型說(shuō)明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是【】。
structstud
{charnum[6];
mts[4];
doubleave;
}a,*p;
33.計(jì)算圓的周長(zhǎng)、面積和球體積。
#definePI3.1415926
#define【】L=2*PI*R;【】;V=4.0/3.0*PI*R*R*R
main()
{floatr,l,s,v;
printf("inputaradus:");
scanf("%f",&r);
CIRCLE(r,l,s,v);
printf("r=%.2f\nl=%.2f\ns=%.2f\nv=%.2f\n",【】);
}
34.下列程序的功能是對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
35.下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)小寫字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
36.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
37.在E-R圖中,矩形表示【】。
38.以下程序運(yùn)行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
39.軟件測(cè)試中路徑覆蓋測(cè)試是整個(gè)測(cè)試的基礎(chǔ),它是對(duì)軟件【】進(jìn)行測(cè)試。
40.以下程序段的功能是統(tǒng)計(jì)鏈表中結(jié)點(diǎn)的個(gè)數(shù),其中first為指向第一個(gè)結(jié)點(diǎn)的指針(鏈表帶頭結(jié)點(diǎn))。請(qǐng)?jiān)谙聞澗€內(nèi)填入正確內(nèi)容。
structlink
{chardata;
structlink*next;};
…
structlink*p,*first;
intc=0;
p=first;
while(【】)
{c++;
p=【】;}
三、1.選擇題(20題)41.有以下程序:#include<sldio.h>main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是()。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
42.設(shè)以下變量均為int類型,表達(dá)式的值不為7的是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+1,x=y,x+1)
43.若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)字符型變量的動(dòng)態(tài)存儲(chǔ)單元,則應(yīng)填入;char*p;p=()malloc(sizeof(char));
A.charB.char*C.(*char)D.(char*)
44.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<-10‖!(y-x)>10
D.(x-y)*(x-y)<100
45.有以下程序:#include<stdio.h>#include<string.h>main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n",strlen(p[4]));}執(zhí)行后的輸出結(jié)果是()。
A.2B.3C.4D.5
46.有以下程序
#include<stdio.h>
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);}
程序運(yùn)行后的輸出結(jié)果是
A.2030B.2050C.3050D.3020
47.以下程序的輸出結(jié)果是()main(){charss[16]="test\0\n\"";printf("%d,%d\n",strlen(ss),sizeof(ss)):}
A.4,16B.7,7C.16,16D.4,7
48.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
49.有以下程序intf1[y){returnx>y?x:y;}intf2(intx,inty){returrnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b},f1(c,d));f=f1(f2(a,b),f2(c,d);;g=a+b+c+d-e-f;printf("%d,%d,%d\n",c,f,g);}程序運(yùn)行后的輸出結(jié)果是
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
50.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>voidsub(int*s,int*y){staticintm=4:*y=s[m];m--;}voidmain(){inta[]={1,2,3,4,5},k,x;printf("\n");for(k=0;k<=4;k++){sub(a,&x);printf("%d,",x);}}
A.5,4,3,2,1,B.1,2,3,4,5,C.0,0,0,0,0,D.4,4,4,4,4,
51.有下列二叉樹,對(duì)此二叉樹中序遍歷的結(jié)果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
52.軟件的可靠性主要表現(xiàn)在______。
A.能夠安裝多次B.能夠在不同類型的計(jì)算機(jī)系統(tǒng)上安裝和使用C.軟件的正確性和健壯性D.前面都正確
53.語(yǔ)句int(*ptr)()的含義是()。
A.(!a==1)&&(!b==0)
B.(a<b)&&!c‖1
C.a&&b
D.a‖(b+b)&&(c-a)
54.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}程序運(yùn)行后的輸出結(jié)果是______。
A.4B.3C.2D.1
55.下面關(guān)于對(duì)象概念的描述中,錯(cuò)誤的是
A.對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)體變量
B.對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體
C.對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體
D.對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的
56.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合
57.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是#include<stdio.h>main(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1+=1default:v0+=1;v2+=1;}}while(c!='\n');printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
58.按照“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹
59.在16位IBM-PC機(jī)上使用C語(yǔ)言,若有如下定義structdata{inti;charch;doublef;}b;則結(jié)構(gòu)變量b占用內(nèi)存的字節(jié)數(shù)是
A.1B.2C.7D.11
60.設(shè)有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。
A.'\0'B.'0'C.不確定的值D.'0'的地址
四、選擇題(20題)61.
62.有如下程序段
#include"stdio.h"
typedefunion
{longx[2];
inty[4];
charz[8];
}atx;
typedefstructaa
{longx[2];
inty[4];
charz[8];
}stx;
main()
{printf("union=%d,structaa=%d\n",sizeof(atx),sizeof(stx));}
則程序執(zhí)行后輸出的結(jié)果是
A.union=8,structaa=8
B.union=8,structaa=24
C.union=24,structaa=8
D.union=24,structaa=24
63.合法的數(shù)組定義是()。
A.
B.
C.
D.
64.
65.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
66.在一個(gè)C源程序文件中所定義的全局變量。其作用域?yàn)?)。A.由具體定義位置和extern說(shuō)明來(lái)決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
67.以下程序的輸出結(jié)果是()。
main()
{char*s="12134211";
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{case’1’:v1++;
case’3’:v3++;
case’2’:v2++;
defaule:v4++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n,v1,v2,v3,v4);
}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=4,v2=7,v3=5,v4=8
68.一名工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多名工作人員使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是()。
A.—對(duì)一B.—對(duì)多C.多對(duì)多D.多對(duì)一
69.
70.以下程序段完全正確的是()。
A.int*p;scanf(”%d”,&p);
B.int*p;scanf(”%d”,P);
C.intk,*P:&k;scanf(’’%d”,P);
D.intk,*p;*P=&k;scanf(”%d”,P);
71.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
72.下面敘述中正確的是(
)。A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態(tài)類型變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C.函數(shù)的形參都屬于全局變量D.未在定義語(yǔ)句中賦值的auto變量和static變量的初值都是隨機(jī)值
73.
74.
以下程序的輸出結(jié)果是()。
main
{charch[3][4]={"123","456","78"),*p[3];inti;
for(i=0;i<3;i++)p[i]=ch[i];
for(i=0;i<3;i++)printf("%s",p[i]);}
A.123456780B.123456780C.12345678D.147
75.
76.
77.有以下程序:
當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無(wú)確定值
78.
79.
下列程序的輸出結(jié)果是()。
#includedstdi0.h>
#includedstring.h>
voidfun(intb[])
{staticinti=0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)規(guī)范培訓(xùn)管理制度
- 甲狀腺結(jié)節(jié)規(guī)范管理制度
- 公司規(guī)范流程管理制度
- 醫(yī)院潔具規(guī)范使用制度
- 公司軟件管理制度規(guī)范
- 墻壁吊頂管理制度規(guī)范
- 醫(yī)院規(guī)章制度制定規(guī)范
- 啤酒發(fā)酵過(guò)濾工崗前激勵(lì)考核試卷含答案
- 工業(yè)設(shè)計(jì)工藝師誠(chéng)信競(jìng)賽考核試卷含答案
- 鉭鈮鑭還原冶煉工崗前評(píng)優(yōu)競(jìng)賽考核試卷含答案
- 蘇教版六年級(jí)上冊(cè)科學(xué)期末模擬試題
- 中國(guó)武術(shù)段位制概要(示范提綱)
- 校園傳染病預(yù)防主題班會(huì)PPT
- 激光原理習(xí)題解答完整版-周炳琨
- 項(xiàng)目2:復(fù)利終值地計(jì)算
- 新材料、生物緩沖劑及配套工程B3車間產(chǎn)品優(yōu)化調(diào)整項(xiàng)目環(huán)評(píng)報(bào)告書
- 汽車美容裝潢工(四級(jí))職業(yè)資格考試題庫(kù)-上(單選題匯總)
- 戲劇專業(yè)常用詞匯中英文對(duì)照
- 國(guó)開生命健康學(xué)院《中藥炮制》形成性考核一答卷
- 最新部編版四年級(jí)語(yǔ)文下冊(cè)第一單元課件
- 資金時(shí)間價(jià)值-課件
評(píng)論
0/150
提交評(píng)論