




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年遼寧省阜新市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤上輸入:10A10<回車>,則輸出結(jié)果是
A.10,A,10B.10,a,10C.1O,a,0D.10,A,0
2.
3.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲類的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
4.程序設(shè)計(jì)方法要求在程序設(shè)計(jì)過程中,()。
A.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再畫出程序的流程圖
B.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
D.以上3種說法都不對
5.下列語句組中,正確的是()。
6.下列函數(shù)的功能是()。voidfun(char*a,char*b){while((*b=*a)!=‘\0’){a++;b++;}}
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進(jìn)行比較
D.檢查a和b所指字符串中是否有‘\0’
7.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
8.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
9.若有定義“inta=0,b=1,c=1;”,關(guān)于邏輯表達(dá)式“a++||b++&&c++”中各個(gè)部分的執(zhí)行順序,以下說法正確的是()。
A.先執(zhí)行“b++”,再執(zhí)行“c++”,最后執(zhí)行“a++”
B.先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“c++”
C.先執(zhí)行“c++”,再執(zhí)行“b++”,最后執(zhí)行“a++”
D.先執(zhí)行“b++”,再執(zhí)行“a++”,最后執(zhí)行“c++”
10.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
11.已知a,b均被定義為double型,則表達(dá)式:b=1,a=b+5/2的值為()。
A.1B.3C.3.0D.3.5
12.以下能正確定義一維數(shù)組的選項(xiàng)是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
13.如果只想得到1024個(gè)元素組成的序列中第5個(gè)最小元素之前的部分排序的序列,用()方法最快
A.冒泡排序B.快速排序C.簡單選擇排序D.堆排序
14.下面敘述中錯(cuò)誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤
B.對被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟
C.程序調(diào)試通常也稱為Debug
D.軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性
15.設(shè)有以下語句
charchl,ch2;scanf("%c%C",&chl,&ch2);
若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。
A.A和B之間用逗號間隔
B.A和B之間不能有任何間隔符
C.A和B之間可以用回車間隔
D.A和B之間用空格間隔
16.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
17.已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是()。
A.一個(gè)整型變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)
B.一個(gè)文件指針,指向要讀的文件
C.一個(gè)指針,是指向的輸入數(shù)據(jù)放在內(nèi)存中的起始位置
D.一個(gè)存儲區(qū),存放要讀的數(shù)據(jù)項(xiàng)
18.在面向?qū)ο蠓椒ㄖ校粋€(gè)對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
19.歸并排序采用的算法設(shè)計(jì)方法屬于()
A.歸納法B.分治法C.貪心法D.回溯方法
20.以下敘述中錯(cuò)誤的是()。
A.C程序中的#include和#define行均不是C語句
B.除逗號運(yùn)算符外,賦值運(yùn)算符的優(yōu)先級最低
C.C程序中,j++;是賦值語句
D.C程序中,+、-、*、/、%是算術(shù)運(yùn)算符,可用于整型和實(shí)型數(shù)的運(yùn)算
二、2.填空題(20題)21.由25人圍坐成圓圈,先由任意一人開始順時(shí)針沿用1~25依次編號,然后從1號開始順時(shí)針報(bào)數(shù)(1、2、3…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
22.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
23.閱讀程序:
main()
{charstrl[]="howdoyoudo",str2[10];
char*p1=strl,*p2=str2;
scanf("%s”,p2);
printf("%s”,p2);
printf("%s\n",p1);
}
運(yùn)行上面的程序,輸入字符串HOWDOYOUDO則程序的輸出結(jié)果是【】。
24.數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
25.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
26.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實(shí)體完整性、______和自定義完整性。
27.若intx=1,y=2;則計(jì)算表達(dá)式y(tǒng)+=y-=x*=y后的y值是()。
28.用十六進(jìn)制給存儲器中的字節(jié)地址進(jìn)行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。
29.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
30.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
31.以下程序的運(yùn)行結(jié)果是【】。
#defineMAL(a,b)(a>b?a:b)+1
main()
{inti=6,j=8;
printf("%d\n",MAL(i,j));
}
32.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。
33.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test,t","rb");
fseek(myf,(),SEEK_END;f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
34.表達(dá)式pow(2.8,sqrt(float(x)))值的數(shù)據(jù)類型為______型。
35.若有程序
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j-%d\n",i,j);
}
要求給i賦10,給j賦20,則應(yīng)該從鍵盤輸入______。
36.以下isprime函數(shù)的功能是判斷形參a是否為素?cái)?shù),是素?cái)?shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
37.下面程序的運(yùn)行結(jié)果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
38.定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為______。
39.表示“整數(shù)x的絕對值大于5”時(shí)值為“假”的C語言表達(dá)式是______。
40.以下程序中給指針p分配三個(gè)double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{dOuble*p;
p=(double*)malloc();
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
三、1.選擇題(20題)41.設(shè)已定義i和k為int類型變量,則以下for循環(huán)語句______。for(i=0;k=-1,k=1,i++,k++)printf("****\n");
A.判斷循環(huán)結(jié)束的條件不合法B.是無限循環(huán)C.循環(huán)—次也不執(zhí)行D.循環(huán)只執(zhí)行一次
42.有以下程序:#include<stdio.h>fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.6C.8D.12
43.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表
44.在嵌套使用if語句時(shí),C語言規(guī)定else總是A.和之前與其具有相同縮進(jìn)位置的if配對
B.和之前與其最近的if配對
C.和之前與其最近的且不帶else的if配對
D.和之前的第一個(gè)if配對
45.下列程序的運(yùn)行結(jié)果為
#include<stdio.h>
voidabc(char*str)
{inta,b;
for(a=b=0;str[a]!='\0';a++)
if(str[a]!='c')
str[b++]=str[a];
str[b]='\0';}
voidmain()
{charstr[]="abcdef";
abc(str);
printf("str[]=%s",str);}
A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab
46.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}
A.266B.11C.265D.138
47.靜態(tài)測試是一種重要的測試方式,可以發(fā)現(xiàn)30%到70%的邏輯設(shè)計(jì)和編碼錯(cuò)誤。下面()不屬于靜態(tài)測試?
A.白盒測試B.代碼檢查C.代碼質(zhì)量度量D.靜態(tài)分析
48.設(shè)計(jì)數(shù)據(jù)庫的存儲結(jié)構(gòu)屬于()。
A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)
49.以下程序的運(yùn)行結(jié)果是()#include<stdio.h>main(){inta=015,b=22;printf("%d,%d\n",a++,--b);}
A.15,22B.15,21C.13,21D.14,21
50.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.運(yùn)行時(shí)出錯(cuò),x無定值
51.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){intp;if(x==0‖x==1)return3;elsep=x-fun(x-2);returnp;}voidmain(){printf("\n%d",fun(5));}
A.5B.3C.7D.1
52.以下程序的運(yùn)行結(jié)果是
#defineMAX(A,B)(A)>(B)?(A):(B)
#definePRINT(Y)printf("Y=%d\t",Y)
main()
{inta=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
PRINT(t);}
A.Y=3B.存在語法錯(cuò)誤C.Y=7D.Y=0
53.若有如下程序:voids(char*m,intn){*m=*m+3;n=n+3;printf("%c,%c,",*m,n);}main(){charp='b',q='B';s(&q,p);printf("%c,%c\n",p,q);}則程序運(yùn)行后的輸出結(jié)果是()
A.E,e,b,EB.e,E,b,F(xiàn)C.E,e,e,ED.e,E,b,E
54.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用
55.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.6C.8D.12
56.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
57.下列數(shù)組說明中,正確的是______。
A.intarray[][4];
B.intarray[][];
C.intmarray[][][5];
D.intarray[3][];
58.有以下程序;voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運(yùn)行后的輸出結(jié)果是()。
A.ABCDDEFEDBDB.abeDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
59.以下不能定義為用戶標(biāo)識符的是()
A.MainB._0C._intD.sizeof
60.有以下程序: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,
四、選擇題(20題)61.
62.合法的main函數(shù)命令參數(shù)形式是()。
A.main(inta,char*c[])
B.main(intarc,char**arv)
C.main(intargc,char*argv)
D.main(intargv,char*argc[])
63.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C稃序文件存存
64.以下程序運(yùn)行后的輸出結(jié)果是()。
A.2B.1C.3D.O
65.
66.
67.
68.若有以下定義:intt[3][2];,能正確表示t數(shù)組元素地址的表達(dá)式是______。
A.&t[3][2]B.t[3]C.t[1]D.*t[2]
69.下列語句中,顯示沒有下畫線的超鏈接的語句是()。
A.a{text—decoration:none}
B.a{text—decoration:nounderline}
C.a{underline:none}
D.a{decoration:nounderline}
70.
71.若有以下程序段(n所賦的是八進(jìn)制數(shù))
intm=32767,n=032767;
printf("%d,%o\n",m,n);
執(zhí)行后的輸出結(jié)果是
A.32767,32767B.32767,032767
C.32767,77777D.32767,077777
72.設(shè)有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;
73.設(shè)有定義:
則以下賦值語句中錯(cuò)誤的是()。
A.data2=datal;
B.data2=(2,6.;
C.
D.
74.
75.若要用函數(shù)fopen打開一個(gè)新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以()方式打開文件。
A."wb"B."wb+"C."rb+"D."rb"
76.
77.有以下程序
.程序運(yùn)行后的輸出結(jié)果是()。
A.6B.9C.11D.7
78.下列選項(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;
79.有以下程序段
structSTU
{charnum[10];floatscore[3];};
main()
{
structSTUs[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90},
},*p=s;
inti;floatsum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序運(yùn)行后的輸出結(jié)果是
A.260.00B.270.00
C.280.00D.285.00
80.有以下程序:
從第一列開始輸入以下數(shù)據(jù)(<CR>代表一個(gè)回車符.:
2743<CR>
程序的輸出結(jié)果是()。
A.66877B.668966C.6677877D.6688766
五、程序改錯(cuò)題(1題)81.程序改錯(cuò)題(共l8分)下列給定程序中,函數(shù)fun的功能是:傳人一個(gè)整數(shù)m,計(jì)算如下公式的值。例如,若輸入5,則應(yīng)輸出一0.283333。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換成一個(gè)整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)換成整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換成整數(shù)值-1234。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<string.h>longfun(char*p){}voidmain(){ chars[6]; longn; printf(“Enterastring:\n”); gets(s); n=fun(s); printf(“%ld\n”,n);}
參考答案
1.A解析:本題考核的知識點(diǎn)是scallf()函數(shù)輸入格式。格式字符“%d”用于輸入整數(shù),“%C”用來輸入字符。在輸入時(shí),系統(tǒng)把第一個(gè)10作為整數(shù)10賦給m,把隨后的A作為字符賦值給c,后面的10作為整數(shù)賦給n,最后輸出的結(jié)果為10,A,10所以,A選項(xiàng)為所選。
2.B
3.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
4.D解析:程序設(shè)計(jì)的過程應(yīng)是先畫出流程圖,然后根據(jù)流程圖編制出程序,所以選項(xiàng)A錯(cuò)誤。程序中的注釋是為了提高程序的可讀性,注釋必須在編制程序的同時(shí)加入,所以,選項(xiàng)B和選項(xiàng)C錯(cuò)誤。綜上所述,本題的正確答案為選項(xiàng)D。
5.A字符型指針變量可以用選項(xiàng)A)的賦值方法:char*s;s=”O(jiān)lympictt;,選項(xiàng)C)的寫法:char*s,s={1.Olympic”};是錯(cuò)誤的。字符數(shù)組可以在定義的時(shí)候初始化:chars[]_IfIOlympic”l;或者chars[]=”O(jiān)lympic'1.都是正確的,但是不可以在定義字符數(shù)組后,對數(shù)組名賦值(數(shù)組名是常量,代表數(shù)組首地址)。所以選項(xiàng)B)和選項(xiàng)D)都是錯(cuò)誤的。對于本例,選項(xiàng)B)、D)中字符數(shù)組S的大小至少為8,才能存放下字符串(字符串的末尾都有結(jié)束標(biāo)志“\0”)。
6.A題目的fun函數(shù)內(nèi),while循環(huán)條件為“(*b=*a)!=‘\\0’”,執(zhí)行時(shí)先把指針a所指向的字符賦給指針b所在的內(nèi)存單元。如果該字符不是結(jié)束標(biāo)識‘\\0’,執(zhí)行循環(huán)體“a++;b++;”,指針a、b分別指向下一個(gè)字符單元。再判斷循環(huán)條件,如果成立,繼續(xù)把指針a所指向的字符賦給指針b所在的內(nèi)存單元,直到遇到結(jié)束標(biāo)識為止。故本題答案為A選項(xiàng)。
7.C解析:x=7,通過遞歸調(diào)用fun函數(shù)后得到結(jié)果。
8.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。
9.BC語言中運(yùn)算符有優(yōu)先級和結(jié)合性。自增、自減運(yùn)算符的優(yōu)先級高于邏輯運(yùn)算符,邏輯運(yùn)算符中邏輯與“&&”的優(yōu)先級比邏輯或“||”高,邏輯運(yùn)算符的結(jié)合性自左向右。所以題干中表達(dá)式等價(jià)于“(a++)||((b++)&&(c++))”。運(yùn)算順序?yàn)椋菏紫葓?zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“C++”。故本題答案為B選項(xiàng)。
10.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。
11.D
12.B解析:選項(xiàng)A定義數(shù)組時(shí)省略了長度,而C語言中規(guī)定,只有在定義并同時(shí)進(jìn)行初始化時(shí),數(shù)組的長度才可以省略,數(shù)組的長度為初始化時(shí)候的成員個(gè)數(shù),故選項(xiàng)A錯(cuò)誤;在C語言中規(guī)定,數(shù)組的長度必須是一個(gè)整數(shù)或整型常量表達(dá)式,故選項(xiàng)C不正確:定義時(shí)數(shù)組的長度不能使用變量表示,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
13.D解析:從平均時(shí)間性能而言,快速排序最佳,其所需時(shí)間最少,但快速排序在最壞情況下的時(shí)間性能不如堆排序和歸并排序。當(dāng)序列中的記錄基本有序或元素個(gè)數(shù)較少時(shí),冒泡排序和簡單選擇排序?yàn)樽罴雅判蚍椒?,故本題答案應(yīng)該為選項(xiàng)D。
14.A軟件測試的目的是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,并不涉及改正錯(cuò)誤,所以選項(xiàng)A錯(cuò)誤。程序調(diào)試的基本步驟有:錯(cuò)誤定位、修改設(shè)計(jì)和代碼,以排除錯(cuò)誤、進(jìn)行回歸測試,防止引進(jìn)新的錯(cuò)誤。程序調(diào)試通常稱為Debug,即排錯(cuò)。軟件測試的基本準(zhǔn)則有:所有測試都應(yīng)追溯到需求、嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應(yīng)避免檢查自己的程序、窮舉測試不可能、妥善保存測試計(jì)劃等文件。故答案為A選項(xiàng)。
15.B\nscanf輸入函數(shù)中,格式控制J必須嚴(yán)格按照函數(shù)中的要求進(jìn)行輸入,在scanf('%c%c',&chl,&ch2)的格式控制語句中沒有任何字符進(jìn)行間隔,所以在輸入時(shí)也不能使用任何字符進(jìn)行間隔,所以答案選擇B。
\n
16.A左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補(bǔ)0。例如,a<<4是把a(bǔ)的各二進(jìn)位向左移動4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十進(jìn)制48)。
17.C解析:數(shù)據(jù)塊輸入/輸出函數(shù)的調(diào)用形式為:fread(buffer,size,count,fp)。fread函數(shù)參數(shù)說明:“buffer”是一個(gè)指引,對fread來說,它是讀入數(shù)據(jù)的存放地址;“size”是要讀寫的字節(jié)數(shù);“count”是要進(jìn)行讀寫多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);“fp”是指文件型指針。
18.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
19.B解析:以2一路歸并排序?yàn)槔M(jìn)行說明。2一路歸并是指將兩個(gè)有序序列合并成一個(gè)有序序列,其基本過程為;從兩個(gè)序列中各取一個(gè)元素,進(jìn)行比較,輸出較小的元素,從較小元素所在序列取下一個(gè)元素,與未輸出的那個(gè)元素比較,輸出較小者。依此類推,直到輸出序列包含了兩個(gè)初始有序序列的全部元索。對于一個(gè)初始無序的序列,可以先將其等分為兩個(gè)無序的子序列,對這兩個(gè)子序列再次二分,重復(fù)該過程,直到分出的子序列中僅包含一個(gè)元素時(shí)(一個(gè)元素自然是有序的)為止,然后在反復(fù)進(jìn)行2一路歸并的過程,最后完成排序。
20.D解析:“%”是求余運(yùn)算符,其兩側(cè)的數(shù)值只能為整型,不能用于實(shí)型數(shù)據(jù)的運(yùn)算。
21.0a[j]=0count<25
22.存儲結(jié)構(gòu)
23.HOWhowdoyoudo
24.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)
25.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
26.參照完整性參照完整性
27.0
28.64KB
29.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式“i-'a'+'A'”即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。
30.77解析:此表達(dá)式為三目運(yùn)算符,++a的值為6,b--的值為6,則整個(gè)表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
31.99解析:用i和j替換宏MAL(a,b)小的參數(shù)a和b,(a>b?a:b)+1等價(jià)于(i>j?i:j)+1。因?yàn)?>8為假,則關(guān)系表達(dá)式i>j?i:j的值就是j的值,j=8,8+1=9,最后輸出9。
32.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊(duì)列也是線性表,也町以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。
33.fopenfopen解析:C語言中的文件分為:ASCII文件與二進(jìn)制文件。文件在使用前打開,使用后要關(guān)閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen(“文件名”,“使用文件方式”);關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。
34.floatfloat解析:在此表達(dá)式中x是float類型的變量,經(jīng)過開方所得到的結(jié)果仍是float類型,再和2.8進(jìn)行運(yùn)算時(shí),應(yīng)該先將2.8轉(zhuǎn)換成float類型再運(yùn)算,最后結(jié)果仍是float型。
35.i=0j=20i=0j=20解析:本題考核的知識點(diǎn)是scanf()數(shù)的使用.該函數(shù)的第一個(gè)參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應(yīng)要輸入的變量,所以說本題中應(yīng)該原樣輸入i=j=,后面分別給變量0和20,所以說空格處應(yīng)該填入i=0,j=20。
36.return0return1return0,return1解析:如果a能被i整除,則a是素?cái)?shù),返回值為0。如果a不能被i整除,則a不是素?cái)?shù),返回值為1。
37.1111解析:此題涉及函數(shù)的調(diào)用和if語句。程序先執(zhí)行第二個(gè)if語句,然后再執(zhí)行第一個(gè)if語句,最后用return返回?cái)?shù)值。
38.用“&&”連接兩個(gè)表達(dá)式時(shí),若第1個(gè)表達(dá)式的值為“假”,則運(yùn)算結(jié)果與第2個(gè)表達(dá)式無關(guān),此時(shí)第2個(gè)表達(dá)式將不再進(jìn)行計(jì)算。本題中第1個(gè)表達(dá)式“j=!ch”值為0,所以第2個(gè)表達(dá)式i++將不再進(jìn)行計(jì)算,i的值為1。\r\n\r\n
39.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對值大于5”時(shí)值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
40.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點(diǎn)是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個(gè)字符的存儲單元,并返回該存儲區(qū)的首地址,實(shí)際調(diào)用的時(shí)候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價(jià)的表達(dá)式。
41.B解析:本題定義了一個(gè)for循環(huán),循環(huán)變量是i,但由于本題并沒有設(shè)置循環(huán)條件,所以循環(huán)的條件永遠(yuǎn)默認(rèn)為真,即無限次執(zhí)行循環(huán)。
42.D解析:本題考查函數(shù)的返回值。fun函數(shù)的功能是比較a,b的值,返回其中較大者。對于main函數(shù)中的語句r=fun(fun(x,y),2*z);是先調(diào)用fun(x,y)返回8,再將8和12作為實(shí)參調(diào)用函數(shù)fun,得到的返回值為12。
43.A\r\n二分法又叫折半(對分)查找法,只適合于順序存儲的有序表(是指線性表中的元素按值非遞減排列)。二分法的基本思想是:設(shè)有序線性表的長度為n,被查元素為X,則二分查找的方法如下:
將X與線性表的中間項(xiàng)進(jìn)行比較:若中間項(xiàng)的值等于x,則說明找到,查找結(jié)束;若x小于中間項(xiàng)的值,則在線性表的前半部分(即中間項(xiàng)以前的部分)以相同的方法進(jìn)行查找;若X大于中間項(xiàng)的值,則在線性表的后半部分(即中間項(xiàng)以后的部分)以相同的方法進(jìn)行查找、這個(gè)過程-直進(jìn)行到查找成功或于表長度為0,(說明線性表中沒有這個(gè)元素為止)順序存儲的線性袁在計(jì)算機(jī)中-般用一個(gè)-維數(shù)組來表示,在數(shù)組中我們可以通過數(shù)組名和下標(biāo)來對數(shù)組中的任意一個(gè)元素進(jìn)行訪問,而在鏈表(不管是有序還是無序)中,要對元素進(jìn)行訪問必須從表頭結(jié)點(diǎn)開始,順著鏈條一個(gè)一個(gè)結(jié)點(diǎn)進(jìn)行搜索,因此選項(xiàng)A正確
44.C解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合,與書寫格式無關(guān)。所以選項(xiàng)C)為正確答案。
45.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個(gè)元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。
46.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數(shù)組c共占用同—個(gè)存儲單元,且此存儲單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
47.A
48.DD?!窘馕觥课锢碓O(shè)計(jì)階段主要解決選擇文件存儲結(jié)構(gòu)和確定文件存取方法的問題。物理設(shè)計(jì)階段包括:選擇存儲結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。
49.C
50.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個(gè)指針變量中存儲的地址是不同的。變量x接受的是一個(gè)關(guān)系運(yùn)算的結(jié)果,因?yàn)閮蓚€(gè)地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。
51.A解析:本題考查函數(shù)的遞歸調(diào)用。在函數(shù)遞歸調(diào)用時(shí),fun(5):a=5-fun(3)->fun3=a=3-fun(1)->fun(1):a-3,反推回去fun(3):a=3-3=0->fun(5):a=5-0=5,最后的計(jì)算結(jié)果為5。
52.C解析:考查帶參數(shù)的宏替換。宏替換不像函數(shù)調(diào)用要進(jìn)行參數(shù)值的計(jì)算、傳遞等,而只是簡單按照原格式進(jìn)行字符串的替換。
53.A
54.D[答案]D
[考點(diǎn)]軟件工程基礎(chǔ)
[評析]
面向?qū)ο?對象+類+繼承+通過消息的通信
對象:一組屬性及其上的操作的封裝體
類:一組有相同屬性和操作的對象的集合
繼承:一個(gè)類為另一個(gè)類上的擴(kuò)充的方式,子類繼承父類,主要目的是代碼復(fù)用
消息:對象間通信的手段
D是結(jié)構(gòu)化程序設(shè)計(jì)或過程式(函數(shù)式)語言中的,一般的面向?qū)ο蟪绦蛟O(shè)計(jì)語言兼容這種方式,但不是其特征,故最佳選項(xiàng)為D
55.B
56.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。
57.A
58.B解析:本題中的函數(shù)ss()有兩個(gè)參數(shù),一個(gè)是字符型指針變量s,另一個(gè)是字符型變量t。在函數(shù)中通過一個(gè)while循環(huán),在循環(huán)中一次取出s指向的字符串并判斷它是否和t中存放的字符相同,若相等,則執(zhí)行“*s=t-'a'+'A';”(若是小寫字母,則把它轉(zhuǎn)換成大寫字母)語句。在主函數(shù)中執(zhí)行函數(shù)調(diào)用ss(str1,c),很顯然是把str1數(shù)組中所有字符“d”變成大寫字母,其他字符不變。所以4個(gè)選項(xiàng)中B正確。
59.D解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個(gè)字符必須是字母或下劃線,標(biāo)識符名不能與關(guān)鍵字重名。選項(xiàng)A)中Main與主函數(shù)名main不同,所以選項(xiàng)D)是非法的標(biāo)識符。
60.A解析:在C語言中所謂函數(shù)的遞歸是在指在調(diào)用一個(gè)函數(shù)的過程中,又出現(xiàn)了直接或間接地調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用.由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是i
61.C
62.C在C語言中,main函數(shù)也可以有參數(shù),例如,main(intar90,char*argv),argc是指字符串的指針數(shù)組,而其他幾項(xiàng)表達(dá)不正確。
63.A一個(gè)C語言程序能實(shí)現(xiàn)多種算法,所以A)錯(cuò)誤。
64.A參數(shù)r的傳遞是地址傳遞,函數(shù)調(diào)用會改變其值。函數(shù)f的功能是:判斷n是否為3或5的倍數(shù),如果是,則將指針r所指的內(nèi)存空間賦值為n除以3或5的商;否則n遞減,直到它可以被3或5整除。初始時(shí)調(diào)用函數(shù)f(7,&r);n=7,執(zhí)行else子句,調(diào)用f(6,&r1);后n=6,執(zhí)行語句if(n%3==0)r1=n/3;,此后執(zhí)行語句*r=rl;。所以r=6/3=2。
65.C
66.D
67.C
68.C解析:選項(xiàng)A和B兩個(gè)表達(dá)式都越界了;選項(xiàng)D中,*t[2]是目標(biāo)變量,即—個(gè)整型值,而不是地址值。
69.A
70.B\r\n
71.A在程序段中,首先定義了兩個(gè)整型變量m和n,然后將m初始化為32767,將n初始化為032
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)??萍脊疚膯T聘用及綠色創(chuàng)新協(xié)議
- 二零二五年度農(nóng)村私人土地租賃與特色養(yǎng)殖合作合同
- 二零二五年度跨境電商金融服務(wù)商務(wù)協(xié)議書
- 小微企業(yè)市場開拓的營銷推廣計(jì)劃
- 電商平臺用戶行為規(guī)范及免責(zé)聲明
- 車位抵押借款合同協(xié)議
- 企業(yè)信息化改造升級合作協(xié)議
- 設(shè)備采購說明文書模板
- 提高團(tuán)隊(duì)協(xié)作效率的行動計(jì)劃
- 物流運(yùn)輸安全及免責(zé)承諾書
- (三級)工業(yè)機(jī)器人運(yùn)用與維護(hù)理論考試復(fù)習(xí)題庫(含答案)
- 2024年廣東省公務(wù)員錄用考試《行測》真題及解析
- 高中英語必背3500單詞表(完整版)
- 房產(chǎn)中介居間服務(wù)合同模板樣本
- 海洋工程裝備保險(xiǎn)研究
- 2024年廣東省深圳市中考英語試題含解析
- GB/T 16288-2024塑料制品的標(biāo)志
- 麻風(fēng)病防治知識課件
- 3素炒圓白菜 教案
- 透析患者營養(yǎng)不良護(hù)理
- 學(xué)生消防安全常識問卷及答案
評論
0/150
提交評論