版權(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.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是______。
A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試
2.下列定義數(shù)組的語(yǔ)句中正確的是______。
A.#definesize10charstr1[size],str2[size+2];
B.charstr[];
C.intnum['10'];
D.intn=5;inta[n][n+2];
3.
4.在堆棧中存取數(shù)據(jù)的原則是。A.先進(jìn)先出B.后進(jìn)先出C.先進(jìn)后出D.隨意進(jìn)出
5.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫(xiě)字母的表達(dá)式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
6.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}
A.abcdeB.aC.不確定D.bcdef
7.在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)
8.下列選項(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;
9.
10.以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是()。
A._0_B.8_8C.voidD.unsigned
11.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。
A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)
12.以下選項(xiàng)中,合法的一組C語(yǔ)苦數(shù)值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
13.以下關(guān)于簡(jiǎn)單程序設(shè)計(jì)的步驟和順序的說(shuō)法中正確的是()。
A.確定算法后,整理并寫(xiě)出文檔,最后進(jìn)行編碼和上機(jī)調(diào)試
B.首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機(jī)調(diào)試,最后整理文檔
C.先編碼和上機(jī)調(diào)試,在編碼過(guò)程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔
D.先寫(xiě)好文檔,再根據(jù)文檔進(jìn)行編碼和上機(jī)調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)
14.若函數(shù)中有定義語(yǔ)句:inta;,則()。
A.系統(tǒng)將自動(dòng)給a賦初值0B.這時(shí)a中的值是和隨機(jī)數(shù)C.系統(tǒng)將自動(dòng)給a賦初值-1D.這a中無(wú)任何值
15.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
16.定義如下變量和數(shù)組:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};則下面語(yǔ)句的輸出結(jié)果是()。A.15913B.161116C.471013D.481216
17.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是______。A.輸出字符a的ASCⅡ碼B.輸出字符c的ASCⅡ碼C.輸出字符cD.程序出錯(cuò)
18.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易讀性和文檔性
19.有以下程序執(zhí)行后的輸出結(jié)果是()。A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
20.
二、2.填空題(20題)21.以下程序的功能是:利用指針向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中最大值,輸出到屏幕上。請(qǐng)?zhí)羁?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
22.在E-R圖中,矩形表示【】。
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
24.下面invert函數(shù)的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>
#include<string.h>
voidinvert(charstr[])
{inti,j,【】;
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
25.在C語(yǔ)言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
26.函數(shù)check用來(lái)判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請(qǐng)?zhí)羁铡?/p>
intcheck(char*s)
{
char*p1,*p2;intn;
n=strlen(s);
p1=s;
p2=【】;
while(p1<p2)
{
if(*p1!=*p2)break;
else{p1++;p2--;}
}
if(【】)return0;
elsereturn1;
}
27.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
#defineMAX(x,y)(x),(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
28.執(zhí)行以下程序,輸入-10的結(jié)果是【】,輸入5的結(jié)果是【】,輸入10的結(jié)果是
【】,輸入30的結(jié)果是【】。
#include<stdio.h>
main()
{
intx,c,m;
floaty;
scanf("%d",&x);
if(x<0)c=-1
elsec=x/10;
switch(c)
{
case-1;y=0;break;
case0;y=x;break;
case1;y=10;break
case2:
case3;y=-0.5*x+20;break;
default:y=-2;
}
if(y!=-2)printf("y=%f"\n",y);
elseprintf("error\n");
}
29.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
30.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行結(jié)果是()。t4.h的源程序?yàn)椋?/p>
#defineN10
#definef2(x)(x*N)
t4.c的源程序?yàn)椋?/p>
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf("%d%d\n",i,j);
}
31.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{while((*n))
printf("%d",(*n)--);
}
main()
{inta=10;
fun(&a);
}
32.樹(shù)中度為零的結(jié)點(diǎn)稱為_(kāi)_____。
33.已知字符'A'的ASCII碼值為65,以下語(yǔ)句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
34.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#include<stdlib.h>
#include<sldio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}
}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max.&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
35.若有定義:doubleW[10],則W數(shù)組元素下標(biāo)的上限為【】,下限為【】。
36.下面函數(shù)要求計(jì)算兩個(gè)整數(shù)x,y之和,并通過(guò)形參返回該值,請(qǐng)?zhí)羁铡?/p>
add(intx,inty,【】z)
{【】=x+y;}
37.軟件測(cè)試中路徑覆蓋測(cè)試是整個(gè)測(cè)試的基礎(chǔ),它是對(duì)軟件【】進(jìn)行測(cè)試。
38.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。
39.下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,指定字符1,則輸出3。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h)
#deftneM81
intfun(char*ss,charc)
{inti=0;
for(;【】;ss++)
if(*ss==c)i++;
returni;
}
main()
{chara[M],ch;
printf("\nPleaseenterastring:");gets(a);
printf("\nPleaseenterachar:");ch=getchar();
printf("\nThenumberofthecharis:%d\n",fun(a,ch));
}
40.以下程序的運(yùn)行結(jié)果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}
三、1.選擇題(20題)41.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。
A.goodabcB.abcdC.abcD.abcgood
42.若有下列說(shuō)明和語(yǔ)句,則對(duì)結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
43.運(yùn)行下面程序時(shí),從鍵盤(pán)輸入字母H,則輸出結(jié)果是main(){charch;ch=getchar();swimh(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmoming!Bye_ye!
D.Hello!Bye_ye!
44.若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是
A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5-4+1;
45.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()
A.為讀/寫(xiě)打開(kāi)一個(gè)文本文件
B.為輸出打開(kāi)一個(gè)文本文件
C.為讀/寫(xiě)建立一個(gè)新的文本文件
D.為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件
46.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
47.設(shè)已定義i和k為int類型變量,則以下for循環(huán)語(yǔ)句______。for(i=0;k=-1,k=1,i++,k++)printf("****\n");
A.判斷循環(huán)結(jié)束的條件不合法B.是無(wú)限循環(huán)C.循環(huán)—次也不執(zhí)行D.循環(huán)只執(zhí)行一次
48.以下能正確定義一維數(shù)組的選項(xiàng)是
A.inta[5]={0,1,2,3,4,5};
B.chara[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};
C.chara={′A′,′B′,′C′};
D.inta[5]="0123";
49.若有以下定義:chars[20]="programming",*ps=s;則不能代表字符o的表達(dá)式是_______。
A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps
50.內(nèi)聚性是對(duì)模塊功能強(qiáng)度的衡量,下列選項(xiàng)中,內(nèi)聚性較弱的是()
A.順序內(nèi)聚B.偶然內(nèi)聚C.時(shí)間內(nèi)聚D.邏輯內(nèi)聚
51.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
52.有以下程序main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b][j][j]];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()
A.3B.4C.1D.9
53.下列關(guān)于單目運(yùn)算符++,--的敘述中正確的是
A.它們的運(yùn)算對(duì)象可以是任何變量和常量
B.它們的運(yùn)算對(duì)象可以是char型變量和血型變量,但不能是float型變量
C.它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量
D.它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量
54.下面程序把數(shù)組元素中的最大值放入a[o]中,則在if語(yǔ)句中的條件表達(dá)式應(yīng)該是()main(){inta[10]={6,7,2,9,1,10,5,8,4,3,},*p=a,i;for(i=0;i<10;i++,p++)if(____)*a=*p;printf("%d",*a);}
A.p>aB.*p>a[0]C.*p>*a[0]D.*p[0]>*a[0]
55.若有如下程序:main(){intx=9,y=4,n=0;switch(x%2){case0:n++;break;case1:n++;case0:n++;break;}printf("%d\n",n);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.編譯錯(cuò)誤
56.下面程序的運(yùn)行結(jié)果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}
A.3B.10C.13D.14
57.下列對(duì)于線性鏈表的描述中正確的是______。
A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的
B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面
D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的
58.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N—SD.DFD
59.已知i、j、k為int型變量,若要從鍵盤(pán)輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語(yǔ)句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scanf("%d,%d,%d",&i,&j,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
60.有以下程序#include<stdio.h>voidWriteStr(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
四、選擇題(20題)61.
62.
63.有以下程序:
main()
{
chara[7]="a0\OaO\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序運(yùn)行后的輸出結(jié)果是()。
A)22B)76
C)75D)62
64.以下程序的輸出結(jié)果是()。
inta=5;
floatx=3.14;
a*=x*(‘E’-‘A’);
printf(“%f\n”,(float)a);
A.62.000000B.62.800000C.63.000000D.62
65.
66.在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。
A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
67.下列能正確進(jìn)行字符串賦值的是()。A.A.chars[5]={”ABCI)E”);
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%S",s);
68.有以下程序:#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
69.(63)線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是______。
A.順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)
B.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
C.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)
D.任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)
70.以下敘述中錯(cuò)誤的是(
)。A.函數(shù)形參的值也可以傳回給對(duì)應(yīng)的實(shí)參
B.函數(shù)調(diào)用可以作為一個(gè)獨(dú)立的語(yǔ)句存在
C.若函數(shù)有返回值,必須通過(guò)r;mm語(yǔ)句返回
D.C程序必須由一個(gè)或一個(gè)以上的函數(shù)組成
71.下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是()。
A.structord{intx;intY;intZ;};struetorda;
B.structord{intx;inty;intZ;}structorda;
C.structord{intX;intY;intZ;}a;
D.struct{intX;inty;intZ;}a;
72.(21)算法的空間復(fù)雜度是指______。
A.算法程序的長(zhǎng)度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲(chǔ)空間
D.算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間
73.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。、
A.ABEFB.CDEFC.ABCDD.CDAB
74.
下列程序的輸出結(jié)果是()。
char*point(char*pt):
main
{charb[4]={a,c,s,f),*pt=b;
pt=point(pt);
printf("%c\n",*pt);
}
point(char*p)
{p+=3;
returnp;
}
A.sB.cC.fD.a
75.有以下程序:
#include<stdio.h>
#include!(string.h>
voidfun(char*w,intm)
{charS,*pl,*p2;
p1=w;p2=w+m-;
while(pl<p2){s=*pl;*p1=*p2;*p2=s;pl++;p2-;}
}
main()
{chara[]="l23456";
fun(a,strlen(a));puts(a);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.654321
B.116611
C.161616
D.l23456
76.
77.若文件指針fp已正確指向文件,ch為字符型變量,以下不能把字符輸出到文件中的語(yǔ)句是()。
A.fget(f0,ch);
B.foutc(ch,fo);
C.fprinff(fp,”%c”,ch);
D.fwrite(&ch,sizeof(ch),1,fp);
78.有以下程序intfun(intx,inty){return(x+y);}main{inta=1,b=2,C=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}執(zhí)行后的輸出結(jié)果是()。A.6B.7C.8D.9
79.
在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。
A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)
80.
以下程序的輸出結(jié)果是()。
main
{intx=0.5;charz=a;
printf("%d\n",(x&1)&&(z<2));}
A.0B.1C.2D.3
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),該函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
1122234456666778
9910101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:
12345678910
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
參考答案
1.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評(píng)估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語(yǔ)言編制程序以前,對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過(guò)程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開(kāi)發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯(cuò)誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。
2.A
3.B
4.C
5.B解析:C語(yǔ)言的字符以其ASCII碼的形式存在,所以要確定某個(gè)字符是大寫(xiě)字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項(xiàng)A)和C)符合要求。函數(shù)isalpha用來(lái)確定一個(gè)字符是否為字母,大寫(xiě)字母的ASCII碼值的范圍為65到90,所以如果一個(gè)字母的ASCII碼小于91,那么就能確定它是大寫(xiě)字母。
6.C解析:字符串少一個(gè)結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。
7.B在while(E)中,表達(dá)式E可以是C語(yǔ)言中任意合法的條件表達(dá)式,但不能為空,由它來(lái)控制循環(huán)體是否執(zhí)行。在選項(xiàng)8中表達(dá)式E>0||E<0是一個(gè)邏輯表達(dá)式。
8.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。
9.C
10.AC語(yǔ)言的標(biāo)識(shí)符由字母、數(shù)字、下劃線組成,且第1個(gè)字符必須是字母或下劃線。另外,關(guān)鍵字不能作為標(biāo)識(shí)符。B選項(xiàng)中以數(shù)字8開(kāi)頭,所以錯(cuò)誤。C選項(xiàng)與D選項(xiàng)中用的是關(guān)鍵字“void”與“unsigned”,所以錯(cuò)誤。故本題答案為A選項(xiàng)。
11.A解析:作為一個(gè)算法,一般應(yīng)該具有下列4個(gè)特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個(gè)滿意的結(jié)果;(2)確定性,算法中的每一個(gè)步驟都必須是有明確定義的,(3)有窮性,一個(gè)算法必須在有限的時(shí)間內(nèi)做完;(4)擁有足夠的情報(bào)。
12.B
13.B\n選項(xiàng)C和D可直接排除,程序是數(shù)據(jù)結(jié)構(gòu)和算法的組合體,所以是先選擇數(shù)據(jù)結(jié)構(gòu),然后繼而選擇相對(duì)應(yīng)的算法,編碼并上機(jī)調(diào)試,最后整理文檔。
\n
14.B本題考查變量賦值基本概念。在聲明一個(gè)變量后,如果未顯式的對(duì)其進(jìn)行賦值,則它的值是一個(gè)隨機(jī)值。
15.A左移運(yùn)算符“<<”是雙目運(yùn)算符,其功能是把“<<”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0。例如,a<<4是把a(bǔ)的各二進(jìn)位向左移動(dòng)4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十進(jìn)制48)。
16.C
17.D解析:此題中s是—個(gè)字符數(shù)組,而字符數(shù)紐是在編繹時(shí)為它分配內(nèi)存單元的,即此字符數(shù)組的地址在編譯時(shí)是確定的,所以對(duì)此地址變量并不能賦值,故語(yǔ)句“s+=2;”錯(cuò)誤,故程序出錯(cuò)。
18.C
19.B
20.D
21.
22.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。
23.8181解析:將S(i+j)展開(kāi)來(lái)有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。
24.k-1k\r\n-1解析:本題通過(guò)定義一中間值k,實(shí)現(xiàn)字符串str內(nèi)容的交換。
25.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體;在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無(wú)論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
26.s+n-1p1<p2s+n-1\r\np1<p2解析:判斷是否“回文”字符串,應(yīng)該使用兩個(gè)字符型指針,一個(gè)從前往后遍歷字符串,另一個(gè)從后往前遍歷字符串,直到它們中途相遇,如果每次兩個(gè)指針?biāo)傅淖址枷嗤瑒t為“回文”字符串。程序中已經(jīng)使p1=s,即指向字符串的第一個(gè)字符了,所以p2應(yīng)該指向s的最后一個(gè)字符,故第一空應(yīng)填s+n-1。比較兩個(gè)指針時(shí),如果有一次不相同,則跳出循環(huán),因?yàn)榇藭r(shí)已可肯定不是“回文”字符串。如果是while循環(huán)的條件p1<p2不滿足時(shí)自然結(jié)束的循環(huán),則每次比較都是相同的,兩個(gè)指針是中途相遇了才結(jié)束比較。兩種情況的區(qū)別就是pl<p2是否成立。故第二空應(yīng)該填p1<p2。
27.77解析:本題綜合考查帶參數(shù)的宏以及三目運(yùn)算符的計(jì)算方法。三目運(yùn)算符的一般形式是:<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>?!?:”運(yùn)算符的含義是:先求表達(dá)式1的值,如果為真,則求表達(dá)式2的值,并把它作為整個(gè)表達(dá)式的值;如果表達(dá)式1的值為假,則求表達(dá)式3的值,并把它作為整個(gè)表達(dá)式的值。注意,在本題中宏替換時(shí)可采用逐步求解,最終為7>6?7:6*10,即t=7>6?7:60,其值為t=7。
28.05105
29.33解析:C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大于y,所以執(zhí)行printf('%d\\n',z);語(yǔ)句。
30.16111611解析:本題主要考查宏定義的兩種形式,不帶參數(shù)的宏定義:“#define宏名替換文本”;帶參數(shù)的宏定義:“#define宏名(形參表)替換文本”。故i=((1+1)*8)=16,j=(1+1*10)=11。
31.1.09877e+010
32.葉子結(jié)點(diǎn)葉子結(jié)點(diǎn)解析:樹(shù)中度為零的結(jié)點(diǎn),也就是沒(méi)有后件的結(jié)點(diǎn),稱為葉子結(jié)點(diǎn)。
33.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
34.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機(jī)種子,以便在使用rand函數(shù)時(shí)產(chǎn)生不同的數(shù)。通過(guò)循環(huán)用rand函數(shù)產(chǎn)生10個(gè)隨機(jī)數(shù)。在fun函數(shù)中,要在n個(gè)數(shù)中找最大值,所以第一處填寫(xiě)i<n,每次將當(dāng)前最大值與數(shù)組中的某元素比較,第二處填寫(xiě)a[i]。
35.90
36.int**zint*\r\n*z解析:函數(shù)希望通過(guò)形參z帶回結(jié)果,形參z必須是指針類型的。由于返回整型結(jié)果,所以第一處填int*;函數(shù)返回前必須先把結(jié)果通過(guò)形參z間接引用傳回,第二處應(yīng)填*z。
37.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測(cè)試是白盒測(cè)試方法中的—種,它要求對(duì)程序中的每條路徑最少檢查一次,目的是對(duì)軟件的結(jié)構(gòu)進(jìn)行測(cè)試。
38.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。
39.*ss!='\0'*ss!='\\0'解析:從字符串ss中找出某字符的方法是:從字符串ss的第一個(gè)字符開(kāi)始,依次進(jìn)行比較,若ss串的當(dāng)前字符等于字符c,則i++;若ss串的當(dāng)前字符和字符c不同,則繼續(xù)對(duì)ss串的下一個(gè)字符進(jìn)行比較。本程序采用循環(huán)逐一比較的方式,找出某字符在字符串中出現(xiàn)的次數(shù)。汀語(yǔ)句的作用是判斷某字符與字符串中的當(dāng)前字符是否相同。
40.149161,4,9,16,解析:分析程序執(zhí)行過(guò)程,第1次循環(huán),k=1時(shí),此時(shí)s(1)=1*1=1,然后k的值加1;第2次循環(huán),k=2時(shí),s(2)=2*2=4,然后k的值加1;第3次循環(huán),k=3時(shí),s(3)=3*3=9,然后k的值加1;第4次循環(huán),k=4時(shí),s(4)=4*4=16,然后k的值加1;當(dāng)k=5時(shí),條件不滿足,退出循環(huán)。
41.C解析:主函數(shù)中定義了一個(gè)文件指針fp1,然后通過(guò)fopen()函數(shù),以寫(xiě)的方式打開(kāi)文件f1.txt,并讓指針fp1指向它,接著調(diào)用fprimf()函數(shù)將abc寫(xiě)到文件fp1所指的文件里,由于印1指向文件f1.txt的開(kāi)始位置,因此abc將把文件f1.txt里原來(lái)的內(nèi)容good覆蓋掉,故文件f1.txt里最后的內(nèi)容為abc,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
42.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問(wèn)結(jié)構(gòu)體的成員,可以通過(guò)結(jié)構(gòu)變量訪問(wèn),即st.i,也可以用等價(jià)的指針形式,即(*p).i和p->i。
43.C解析:本題主要對(duì)switch語(yǔ)句進(jìn)行了考查。switch語(yǔ)句的執(zhí)行過(guò)程為:進(jìn)入switch結(jié)構(gòu)后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語(yǔ)句,直到遇到break語(yǔ)句,則跳出switch語(yǔ)句,如果各case都不匹配時(shí),則執(zhí)行de-fault后面的語(yǔ)句。本題中ch為字符'H',所以case'H'條件中的語(yǔ)句將被執(zhí)行,由于沒(méi)有break語(yǔ)句,所以case'C'后的語(yǔ)句也被執(zhí)行,由于同樣的缺少break語(yǔ)句,所以default后的語(yǔ)句也被執(zhí)行
44.A
45.D
46.A解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3,所以本題條件表達(dá)式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達(dá)式c<d?c:d的值等于2,再求條件表達(dá)式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達(dá)式的值等于1。
47.B解析:本題定義了一個(gè)for循環(huán),循環(huán)變量是i,但由于本題并沒(méi)有設(shè)置循環(huán)條件,所以循環(huán)的條件永遠(yuǎn)默認(rèn)為真,即無(wú)限次執(zhí)行循環(huán)。
48.B解析:選項(xiàng)A)中,定義的初值個(gè)數(shù)大于數(shù)組的長(zhǎng)度;選項(xiàng)C)中,數(shù)組名后少了中括號(hào);選項(xiàng)D)中,整型數(shù)組不能賦予字符串。
49.A解析:ps+2就是s[2]的地址,即存放字符o的地址,所以A是錯(cuò)誤的。
50.BB)【解析】?jī)?nèi)聚是從功能角度來(lái)衡量模塊的聯(lián)系,它描述的是模塊內(nèi)的功能聯(lián)系。內(nèi)聚有如下種類,它們之間的內(nèi)聚度由弱到強(qiáng)排列:
偶然內(nèi)聚——模塊中的代碼無(wú)法定義其不同功能的調(diào)用。但它使該模塊能執(zhí)行不同的功能,這種模塊為巧合強(qiáng)度模塊。
邏輯內(nèi)聚——這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的參數(shù)來(lái)確定該模塊應(yīng)完成哪一種功能。
時(shí)間內(nèi)聚——這種模塊順序完成一類相關(guān)功能,比如初始化模塊,它順序地為變量置初值。
過(guò)程內(nèi)聚——如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過(guò)程內(nèi)聚。
通信內(nèi)聚——這種模塊除了具有過(guò)程內(nèi)聚的特點(diǎn)外,還有另外一種關(guān)系,即它的所有功能都通過(guò)使用公用數(shù)據(jù)而發(fā)生關(guān)系。
順序內(nèi)聚——如果一個(gè)模塊內(nèi)各個(gè)處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù),則稱為順序內(nèi)聚。
功能內(nèi)聚——如果一個(gè)模塊包括為完成某一具體任務(wù)所必需的所有成分,或者說(shuō)模塊中所有成分結(jié)合起來(lái)是為了完成一個(gè)具體的任務(wù),此模塊則為功能內(nèi)聚模塊。
51.B解析:考查用指針引用字符串元素的方法。指針a通過(guò)數(shù)組元素下標(biāo)來(lái)從頭逐個(gè)地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時(shí),就去掉這個(gè)字符,所以程序結(jié)束后,字符串item中就只剩下和兩個(gè)字符了。
52.B
53.D解析:利用Release命令可以將表單從內(nèi)存中釋放,Refresh是刷新表單,Hide是隱藏表單,此兩個(gè)命令都不可以釋放表單,Delete的用法是錯(cuò)誤的。
54.B
55.D解析:一個(gè)switch語(yǔ)句中不能有兩個(gè)相同的case分支。本題的switch語(yǔ)句中出現(xiàn)了兩個(gè)case0,編譯無(wú)法通過(guò)。所以應(yīng)該選D。
56.C解析:本題考查移位運(yùn)算和按位或運(yùn)算,注意按位或運(yùn)算時(shí)只要對(duì)應(yīng)的二進(jìn)制位中有一個(gè)為1,結(jié)果為1;若都為0,結(jié)果為00
57.A解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表,是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接來(lái)實(shí)現(xiàn)的。
58.DD.【解析】需求分析常用的工具有數(shù)據(jù)流圖(DFD.、數(shù)據(jù)字典(DD.、判定樹(shù)和判定表。PAD(問(wèn)題分析圖)、PFD(程序流程圖)、N—S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。
59.B解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項(xiàng)地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符,其中的逗號(hào)也必須輸入。
60.B解析:本題主要考查的是打開(kāi)文件函數(shù)fopen().題目開(kāi)始定義了一個(gè)函數(shù),該函數(shù)有兩個(gè)字符指針型參數(shù),其作用分別用來(lái)傳入文件名和文件內(nèi)容。函數(shù)首先定義一個(gè)文件指針印,然后使用fopen()函數(shù)打開(kāi)參數(shù)fn所指定的文件。本題的關(guān)鍵就在于fopen()函數(shù)的第2個(gè)參數(shù),這個(gè)參數(shù)指定了文件打開(kāi)的方式。'w'表示為寫(xiě)而打開(kāi)一個(gè)文本文件,如果文件不存在,則新建一個(gè)文件,否則將清空原有文件。接下來(lái)函數(shù)使用fputs()函數(shù)將參數(shù)str中的內(nèi)容寫(xiě)入文件,最后調(diào)用fclose()函數(shù)關(guān)閉文件。在主函數(shù)中兩次調(diào)用該函數(shù),但寫(xiě)入的是同一個(gè)文件,故只有最后一次寫(xiě)入有效。所以應(yīng)該選擇B。
61.C
62.A
63.C數(shù)組a中有5個(gè)元素a,0,0,a,0占7個(gè)字節(jié)的內(nèi)容。最后一個(gè)\\0為結(jié)束符。
64.A
65.B
66.A【答案】:A
【知識(shí)點(diǎn)】:黑盒測(cè)試
【解析】:黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來(lái)檢查程序功能是否按照需求規(guī)格說(shuō)明書(shū)的規(guī)定正常使用。故選A。
67.C選項(xiàng)A、B的空間不夠;字符串存儲(chǔ)要有結(jié)束符'\0',且要占用一個(gè)空間,printf用來(lái)輸出字符,不能輸入字符串。
68.D本題考查靜態(tài)變量,靜態(tài)變量有儲(chǔ)存已經(jīng)操作過(guò)的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
69.B
70.A函數(shù)參數(shù)傳遞是個(gè)不可逆的過(guò)程,形參不會(huì)把值傳回實(shí)參,所以A)選項(xiàng)(24)[答案]A)[解析]c的值為a乘以b的值,為3。所以答案選擇A)。
71.B結(jié)構(gòu)體定義的類型說(shuō)明的一般形式為:struct結(jié)構(gòu)體標(biāo)識(shí)名{類型名1結(jié)構(gòu)成員名表l;類型名2結(jié)構(gòu)成員名表2;···};。注意:①結(jié)構(gòu)體說(shuō)明同樣要以分號(hào)結(jié)尾;②緊跟在結(jié)構(gòu)體類型說(shuō)明之后進(jìn)行定義;③在說(shuō)明一個(gè)無(wú)名結(jié)構(gòu)體類型的同時(shí),直接進(jìn)行定義;④先說(shuō)明結(jié)構(gòu)體類型,再單獨(dú)進(jìn)行變量定義等。所以B選項(xiàng)錯(cuò)誤。
72.D
73.B本題考察的是變量的作甩范圍。如果在同一個(gè)源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被“屏蔽”,即不起作用:奉題中,在funl()和main()函數(shù)內(nèi)訪問(wèn)的是全局變量a和b,在fun2()函數(shù)中訪問(wèn)的是形參變量a和b。所以,main()函數(shù)中的prinff()函數(shù)輸出的是在funl()函數(shù)中被改變的全局變量a和b的值C、D,而fun2()函數(shù)中輸出的是傳遞給它的實(shí)參值E、F。因此B選項(xiàng)正確。
74.C
\n本題考查函數(shù)的調(diào)用及參數(shù)傳遞,當(dāng)執(zhí)行函數(shù)point時(shí),剛開(kāi)始指針P指向“a”,經(jīng)過(guò)+3,指針p指向“f”,所以最后的輸出結(jié)果是f。
\n
75.A\n此題是需要將a[]中的數(shù)值倒過(guò)來(lái)進(jìn)行輸出,所以答案為A。
\n
76.D
77.A函數(shù)fgete()從文件讀入一個(gè)字符到指定變量。函數(shù)fputc()將指定字符寫(xiě)入審文件中,函數(shù)fprinff(),fwrite()均是寫(xiě)入文件操作函數(shù)。因此選項(xiàng)B,c。D錯(cuò)誤。答案為A選項(xiàng)。
78.Csum=fun((a++,b++,a+b),c++)中a++,b++,a+b為逗號(hào)表達(dá)式,運(yùn)算后取a+b的值為5,c++為3,故函數(shù)調(diào)用后輸出結(jié)果為8。
79.B
\n在while(E)中,表達(dá)式E可以是C語(yǔ)言中任意合法的條件表達(dá)式,但不能為空,由它來(lái)控制循環(huán)體是否執(zhí)行。在選項(xiàng)8中表達(dá)式E>0||E<0是一個(gè)邏輯表達(dá)式。
\n
80.B
\n(x&1)&&(z<2)=(0.5&1)&&(a<z)=1&&1=1,故選擇B選項(xiàng)。
\n
81.
82.
【解析】題目中要求刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。首先需要將字符串中的每一個(gè)字符與其后的一個(gè)字符相比較,相同則不做任何操作,不相同則將其放入新的字符串中。最后將新的字符串中的字符個(gè)數(shù)返回給主函數(shù)。
2021年福建省福州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開(kāi)發(fā)中的階段是______。
A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試
2.下列定義數(shù)組的語(yǔ)句中正確的是______。
A.#definesize10charstr1[size],str2[size+2];
B.charstr[];
C.intnum['10'];
D.intn=5;inta[n][n+2];
3.
4.在堆棧中存取數(shù)據(jù)的原則是。A.先進(jìn)先出B.后進(jìn)先出C.先進(jìn)后出D.隨意進(jìn)出
5.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫(xiě)字母的表達(dá)式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
6.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}
A.abcdeB.aC.不確定D.bcdef
7.在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)
8.下列選項(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;
9.
10.以下選項(xiàng)中,能用作用戶標(biāo)識(shí)符的是()。
A._0_B.8_8C.voidD.unsigned
11.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。
A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)
12.以下選項(xiàng)中,合法的一組C語(yǔ)苦數(shù)值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
13.以下關(guān)于簡(jiǎn)單程序設(shè)計(jì)的步驟和順序的說(shuō)法中正確的是()。
A.確定算法后,整理并寫(xiě)出文檔,最后進(jìn)行編碼和上機(jī)調(diào)試
B.首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機(jī)調(diào)試,最后整理文檔
C.先編碼和上機(jī)調(diào)試,在編碼過(guò)程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔
D.先寫(xiě)好文檔,再根據(jù)文檔進(jìn)行編碼和上機(jī)調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)
14.若函數(shù)中有定義語(yǔ)句:inta;,則()。
A.系統(tǒng)將自動(dòng)給a賦初值0B.這時(shí)a中的值是和隨機(jī)數(shù)C.系統(tǒng)將自動(dòng)給a賦初值-1D.這a中無(wú)任何值
15.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
16.定義如下變量和數(shù)組:inti;intx[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};則下面語(yǔ)句的輸出結(jié)果是()。A.15913B.161116C.471013D.481216
17.有以下程序main(){chars[]="abcde";s+=2;printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是______。A.輸出字符a的ASCⅡ碼B.輸出字符c的ASCⅡ碼C.輸出字符cD.程序出錯(cuò)
18.算法分析的目的是()。
A.找出數(shù)據(jù)結(jié)構(gòu)的合理性B.研究算法中的輸入和輸出的關(guān)系C.分析算法的效率以求改進(jìn)D.分析算法的易讀性和文檔性
19.有以下程序執(zhí)行后的輸出結(jié)果是()。A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
20.
二、2.填空題(20題)21.以下程序的功能是:利用指針向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中最大值,輸出到屏幕上。請(qǐng)?zhí)羁?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
22.在E-R圖中,矩形表示【】。
23.以下程序運(yùn)行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
24.下面invert函數(shù)的功能是將一個(gè)字符串str的內(nèi)容顛倒過(guò)來(lái),請(qǐng)?zhí)羁铡?/p>
#include<string.h>
voidinvert(charstr[])
{inti,j,【】;
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
25.在C語(yǔ)言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
26.函數(shù)check用來(lái)判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請(qǐng)?zhí)羁铡?/p>
intcheck(char*s)
{
char*p1,*p2;intn;
n=strlen(s);
p1=s;
p2=【】;
while(p1<p2)
{
if(*p1!=*p2)break;
else{p1++;p2--;}
}
if(【】)return0;
elsereturn1;
}
27.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
#defineMAX(x,y)(x),(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
28.執(zhí)行以下程序,輸入-10的結(jié)果是【】,輸入5的結(jié)果是【】,輸入10的結(jié)果是
【】,輸入30的結(jié)果是【】。
#include<stdio.h>
main()
{
intx,c,m;
floaty;
scanf("%d",&x);
if(x<0)c=-1
elsec=x/10;
switch(c)
{
case-1;y=0;break;
case0;y=x;break;
case1;y=10;break
case2:
case3;y=-0.5*x+20;break;
default:y=-2;
}
if(y!=-2)printf("y=%f"\n",y);
elseprintf("error\n");
}
29.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
30.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行結(jié)果是()。t4.h的源程序?yàn)椋?/p>
#defineN10
#definef2(x)(x*N)
t4.c的源程序?yàn)椋?/p>
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf("%d%d\n",i,j);
}
31.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{while((*n))
printf("%d",(*n)--);
}
main()
{inta=10;
fun(&a);
}
32.樹(shù)中度為零的結(jié)點(diǎn)稱為_(kāi)_____。
33.已知字符'A'的ASCII碼值為65,以下語(yǔ)句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
34.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#include<stdlib.h>
#include<sldio.h>
voidfun(inta[],intn,int*max,int*d)
{inti;
*max=a[0];*d=0;
for(i=0;【】;i++)
if(*max<【】)
{*max=a[i];*d=i;}
}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max.&index);
printf("Max=%5d,Index=%4d\n",max,index);
}
35.若有定義:doubleW[10],則W數(shù)組元素下標(biāo)的上限為【】,下限為【】。
36.下面函數(shù)要求計(jì)算兩個(gè)整數(shù)x,y之和,并通過(guò)形參返回該值,請(qǐng)?zhí)羁铡?/p>
add(intx,inty,【】z)
{【】=x+y;}
37.軟件測(cè)試中路徑覆蓋測(cè)試是整個(gè)測(cè)試的基礎(chǔ),它是對(duì)軟件【】進(jìn)行測(cè)試。
38.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。
39.下列程序的功能是:求出ss所指字符串中指定字符的個(gè)數(shù),并返回此值。
例如,若輸入字符串123412132,指定字符1,則輸出3。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h)
#deftneM81
intfun(char*ss,charc)
{inti=0;
for(;【】;ss++)
if(*ss==c)i++;
returni;
}
main()
{chara[M],ch;
printf("\nPleaseenterastring:");gets(a);
printf("\nPleaseenterachar:");ch=getchar();
printf("\nThenumberofthecharis:%d\n",fun(a,ch));
}
40.以下程序的運(yùn)行結(jié)果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}
三、1.選擇題(20題)41.有如下程序:#include<stdio.h>main(){FILE*fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有內(nèi)容為good,則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。
A.goodabcB.abcdC.abcD.abcgood
42.若有下列說(shuō)明和語(yǔ)句,則對(duì)結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
43.運(yùn)行下面程序時(shí),從鍵盤(pán)輸入字母H,則輸出結(jié)果是main(){charch;ch=getchar();swimh(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmoming!Bye_ye!
D.Hello!Bye_ye!
44.若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是
A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5-4+1;
45.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()
A.為讀/寫(xiě)打開(kāi)一個(gè)文本文件
B.為輸出打開(kāi)一個(gè)文本文件
C.為讀/寫(xiě)建立一個(gè)新的文本文件
D.為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件
46.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
47.設(shè)已定義i和k為int類型變量,則以下for循環(huán)語(yǔ)句______。for(i=0;k=-1,k=1,i++,k++)printf("****\n");
A.判斷循環(huán)結(jié)束的條件不合法B.是無(wú)限循環(huán)C.循環(huán)—次也不執(zhí)行D.循環(huán)只執(zhí)行一次
48.以下能正確定義一維數(shù)組的選項(xiàng)是
A.inta[5]={0,1,2,3,4,5};
B.chara[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};
C.chara={′A′,′B′,′C′};
D.inta[5]="0123";
49.若有以下定義:chars[20]="programming",*ps=s;則不能代表字符o的表達(dá)式是_______。
A.ps+2B.s[2]C.ps[2]D.ps+=2,*ps
50.內(nèi)聚性是對(duì)模塊功能強(qiáng)度的衡量,下列選項(xiàng)中,內(nèi)聚性較弱的是()
A.順序內(nèi)聚B.偶然內(nèi)聚C.時(shí)間內(nèi)聚D.邏輯內(nèi)聚
51.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
52.有以下程序main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b][j][j]];printf("%d\n",t);}程序運(yùn)行后的輸出結(jié)果是()
A.3B.4C.1D.9
53.下列關(guān)于單目運(yùn)算符++,--的敘述中正確的是
A.它們的運(yùn)算對(duì)象可以是任何變量和常量
B.它們的運(yùn)算對(duì)象可以是char型變量和血型變量,但不能是float型變量
C.它們的運(yùn)算對(duì)象可以是int型變量,但不能是double型變量和float型變量
D.它們的運(yùn)算對(duì)象可以是char型變量、int型變量和float型變量
54.下面程序把數(shù)組元素中的最大值放入a[o]中,則在if語(yǔ)句中的條件表達(dá)式應(yīng)該是()main(){inta[10]={6,7,2,9,1,10,5,8,4,3,},*p=a,i;for(i=0;i<10;i++,p++)if(____)*a=*p;printf("%d",*a);}
A.p>aB.*p>a[0]C.*p>*a[0]D.*p[0]>*a[0]
55.若有如下程序:main(){intx=9,y=4,n=0;switch(x%2){case0:n++;break;case1:n++;case0:n++;break;}printf("%d\n",n);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.編譯錯(cuò)誤
56.下面程序的運(yùn)行結(jié)果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}
A.3B.10C.13D.14
57.下列對(duì)于線性鏈表的描述中正確的是______。
A.存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的
B.存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
C.存儲(chǔ)空間必須連續(xù),且各前件元素一定存儲(chǔ)在后件元素的前面
D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的
58.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N—SD.DFD
59.已知i、j、k為int型變量,若要從鍵盤(pán)輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語(yǔ)句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scanf("%d,%d,%d",&i,&j,&k);
C.scanf("%d%d%d",&i,&j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
60.有以下程序#include<stdio.h>voidWriteStr(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
四、選擇題(20題)61.
62.
63.有以下程序:
main()
{
chara[7]="a0\OaO\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
}
程序運(yùn)行后的輸出結(jié)果是()。
A)22B)76
C)75D)62
64.以下程序的輸出結(jié)果是()。
inta=5;
floatx=3.14;
a*=x*(‘E’-‘A’);
printf(“%f\n”,(float)a);
A.62.000000B.62.800000C.63.000000D.62
65.
66.在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。
A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
67.下列能正確進(jìn)行字符串賦值的是()。A.A.chars[5]={”ABCI)E”);
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%S",s);
68.有以下程序:#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
69.(63)線性表的順序存儲(chǔ)結(jié)構(gòu)和線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)分別是______。
A.順序存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)
B.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、順序存取的存儲(chǔ)結(jié)構(gòu)
C.隨機(jī)存取的存儲(chǔ)結(jié)構(gòu)、隨機(jī)存取的存儲(chǔ)結(jié)
D.任意存取的存儲(chǔ)結(jié)構(gòu)、任意存取的存儲(chǔ)結(jié)構(gòu)
70.以下敘述中錯(cuò)誤的是(
)。A.函數(shù)形參的值也可以傳回給對(duì)應(yīng)的實(shí)參
B.函數(shù)調(diào)用可以作為一個(gè)獨(dú)立的語(yǔ)句存在
C.若函數(shù)有返回值,必須通過(guò)r;mm語(yǔ)句返回
D.C程序必須由一個(gè)或一個(gè)以上的函數(shù)組成
71.下面結(jié)構(gòu)體的定義語(yǔ)句中,錯(cuò)誤的是()。
A.structord{intx;intY;intZ;};struetorda;
B.structord{intx;inty;intZ;}structorda;
C.structord{intX;intY;intZ;}a;
D.struct{intX;inty;intZ;}a;
72.(21)算法的空間復(fù)雜度是指______。
A.算法程序的長(zhǎng)度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲(chǔ)空間
D.算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間
73.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。、
A.ABEFB.CDEFC.ABCDD.CDAB
74.
下列程序的輸出結(jié)果是()。
char*point(char*pt):
main
{charb[4]={a,c,s,f),*pt=b;
pt=point(pt);
printf("%c\n",*pt);
}
point(char*p)
{p+=3;
returnp;
}
A.sB.cC.fD.a
75.有以下程序:
#include<stdio.h>
#include!(string.h>
voidfun(char*w,intm)
{charS,*pl,*p2;
p1=w;p2=w+m-;
while(pl<p2){s=*pl;*p1=*p2;*p2=s;pl++
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保型地下水井監(jiān)測(cè)與維護(hù)合同范本4篇
- 二零二五年度智能電梯節(jié)能改造合同4篇
- 二零二五年度農(nóng)業(yè)品牌營(yíng)銷與推廣服務(wù)合同4篇
- 2025年度窗簾布藝設(shè)計(jì)制作與安裝服務(wù)合同范本3篇
- 2025個(gè)人黑色奔馳出租車司機(jī)勞動(dòng)合同2篇
- 2025年度個(gè)人住宅室內(nèi)空氣質(zhì)量檢測(cè)與治理合同2篇
- 2025年度農(nóng)業(yè)休閑農(nóng)業(yè)與鄉(xiāng)村旅游融合發(fā)展合同4篇
- 2025年度醫(yī)院兒科病房護(hù)理服務(wù)承包運(yùn)營(yíng)合同3篇
- 2025年度軟件開(kāi)發(fā)承攬合同范本(二零二五年度)4篇
- 二零二五版房地產(chǎn)開(kāi)發(fā)項(xiàng)目工程擔(dān)保合同規(guī)范6篇
- 2024年甘肅省武威市、嘉峪關(guān)市、臨夏州中考英語(yǔ)真題
- DL-T573-2021電力變壓器檢修導(dǎo)則
- 繪本《圖書(shū)館獅子》原文
- 安全使用公共WiFi網(wǎng)絡(luò)的方法
- 2023年管理學(xué)原理考試題庫(kù)附答案
- 【可行性報(bào)告】2023年電動(dòng)自行車相關(guān)項(xiàng)目可行性研究報(bào)告
- 歐洲食品與飲料行業(yè)數(shù)據(jù)與趨勢(shì)
- 放療科室規(guī)章制度(二篇)
- 中高職貫通培養(yǎng)三二分段(中職階段)新能源汽車檢測(cè)與維修專業(yè)課程體系
- 浙江省安全員C證考試題庫(kù)及答案(推薦)
- 目視講義.的知識(shí)
評(píng)論
0/150
提交評(píng)論