




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022年安徽省合肥市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.對于C語言的函數(shù),下列敘述中正確的是()。
A.函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套
B.函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套
C.函數(shù)的定義和調(diào)用都不能嵌套
D.函數(shù)的定義和調(diào)用都可以嵌套
3.若有定義和語句:inta,b;scanf("%d,%d",&a,&b);以下選項中的輸人數(shù)據(jù),不能把值3賦給變量a、5賦給變量b的是()。A.3,5,B.3,5,4C.3,5D.3,5
4.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()
A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值
5.
6.
7.以下敘述中正確的是______。
A.C語言比其他語言高級
B.C語言可以刁;用編譯就能被計算機(jī)識別執(zhí)行
C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式
D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點
8.C語言源程序的擴(kuò)展名是()。
A..CB..exeC..objD..cp
9.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。
A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b
10.折半查找法的查找速度一定比順序查找法快()。
A.正確B.錯誤
11.有以下程序:viodfun(inta,intb,intc){a=456;b=567;c=678;}main{intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}輸出的結(jié)果是()。A.30,20,10B.10,20,30C.456,567,678D.678,567,456
12.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機(jī)結(jié)果*/}程序運行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯
13.對于棧操作數(shù)據(jù)的原則是()。
A.先進(jìn)先出B.后進(jìn)先出C.后進(jìn)后出D.不分順序
14.有以下程序
#include<stdio.h>
#include<stdlib.h>
main()
{int*a,*b,*c;
a=b=c=(int*)malloc(sizeof(int));
*a=1;*b=2,*c=3;
a=b
printf(”%d,%d,%d\n”,*a,*b,*c);
}
程序運行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
15.設(shè)二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。
A.CBDAB.DCBAC.BCDAD.ACDB
16.下面不能正確表示a*b/(c*d)的表達(dá)式是()。
A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d
17.數(shù)據(jù)字典(DD)所定義的對象都包含于()。
A.軟件結(jié)構(gòu)圖B.方框圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖
18.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
19.算術(shù)運算符和圓括號有不同的運算優(yōu)先級,對于表達(dá)式“a+b+c*(d+e)”,關(guān)于執(zhí)行順序,以下說法正確的是()。
A.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“a+b”得r1,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果
B.先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果
C.先執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,再執(zhí)行“b+r3”得r4,最后執(zhí)行“a+r4”得表達(dá)式最后結(jié)果
D.先執(zhí)行“a+b”得r1,再執(zhí)行“r1+c”得r5,再執(zhí)行“(d+e)”得r2,最后執(zhí)行“r5*r2”得表達(dá)式最后結(jié)果
20.以下敘述中正確的是()。
A.在switch語句中,不一定使用break語句
B.break語句只能用于switch語句
C.break語句必須與switch語句中的case配對使用
D.在switch語句中必須使用default
二、2.填空題(20題)21.軟件測試分為白箱(盒)測試和黑箱(盒)測試。等價類劃分法屬于【】測試。
22.以下程序的運行結(jié)果是______。
structNode}
intx;
charch;
};
fun(structNode*sn)
}statick=1;
sn->x=20;
Sn->ch='a'+k++;
}
main()
{inti;
staticstructNodest=}10,'a'};
for(i=0;i<2;i++)
fun(&st);
printf("%d,%c\n",st.x,st.ch);
}
23.以下程序運行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
charc1,c2;
for(el='0',c2='9';e1<c2;c1++,c2--)printf("%c%c",c1,c2);
printf("\n");
}
24.下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個二維數(shù)組b中。請?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya"\n");
for(i=0;i<=1;i++)
{for(j=0;【】;j++)
{printf("%5d",a[i][j]);
【】;}
printf("\n");}
printf("arrayb:\n");
for(i=0;【】;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");}}
25.下面函數(shù)的功能是將一個字符串的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
voidfun(charstr[])
{inti,j,k;
for(i=0,j=【】;i<j;i++,j--)
{k=str[i];
str[i]=str[j];
str[j]=k;}}
26.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
27.算法的復(fù)雜度主要包括【】復(fù)雜度和空間復(fù)雜度。
28.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
29.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
則程序運行后的輸出結(jié)果是【】。
30.在結(jié)構(gòu)化設(shè)計方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個______實際上對應(yīng)一個處理模塊。
31.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3),{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<30++)
______;
}
}
32.以下程序輸出的結(jié)果是【】。
#include<stdio.h>
main()
{inta=5,b=4,c=3,d;
d=(a>b>c);
printf("%d\n",d);
}
33.程序如下:
main()
{inti=4;
printf("%d",-++i);
}
該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。
34.在Windows環(huán)境下,可以將窗口最小化為【】。
35.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisNO.”。空白處需要填入的內(nèi)容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case'y':
case'Y':printf("\nThisisYES,\n");
case'n':
case'N':printf("\nThisisNO.\n");}}
main()
{charch;
printf("\nEnterachar'y','Y'or'n','N':");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
36.設(shè)有以下結(jié)構(gòu)體類型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補(bǔ)充完整:
fwrite(student,【】,1,fp);
37.下列程序執(zhí)行后輸出的結(jié)果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
38.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值。請?zhí)羁铡?/p>
#include<stdio,h>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
prinff("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];'
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
【】=x;
}
}
39.以下程序運行后的輸出結(jié)果是______。
structNODE
{inthum;structNODE*next;
};
main()
{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;
intsum=0;
s[0].next=s+1;s[1].next=s+2;s[2].next=s;
p=S;q=p->next;r=q->next;
sum+=q=>next->num;sum+=r->next->next->num;
40.以下程序用于判斷a,b,c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a,b,c輸入三角形三條邊長時,確定a,b,c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構(gòu)成三角形*/
elseprinff("NO\n");/*a.b.c不能構(gòu)成三解形*/
}
三、1.選擇題(20題)41.下列敘述中,不屬于結(jié)構(gòu)化分析方法的是()。A.A.面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法
B.面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法
C.面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法
D.面向?qū)ο蟮姆治龇椒?/p>
42.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值.
D.當(dāng)在程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL
43.八進(jìn)制數(shù)253.74轉(zhuǎn)換成二進(jìn)制數(shù)是()
A.10101011.1111
B.10111011.0101
C.11001011.1001
D.10101111.1011
44.下列敘述中正確的是()。A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率
45.下面程序段的運行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}
A.LANGUAGEB.languageC.LAND.langUAGE
46.執(zhí)行以下語句的結(jié)果為______。y=10;x=y++;
A.x-10,y=10B.x=11,y=11C.x=10,y=11D.x=11,y=10
47.軟件需求分析階段的工作可以分為4個方面:需求獲取、需求分析、編寫需求分析說明書和
A.階段性報告B.需求評審C.總結(jié)D.都不正確
48.數(shù)據(jù)結(jié)構(gòu)中,與所使用的計算機(jī)無關(guān)的是數(shù)據(jù)的()。A.存儲結(jié)構(gòu)B.物理結(jié)構(gòu)C.邏輯結(jié)構(gòu)D.物理和存儲結(jié)構(gòu)
49.設(shè)有說明語句如下:staticcharstr[]="Beijing";若執(zhí)行下列輸出語句:printf("%d\n",strlen(strcpy(str,"China")));則輸出結(jié)果為()。
A.5B.7C.12D.14
50.設(shè)有定義:inta=2,b=3,c=4;則以下選項中值為0的表達(dá)式是()。
A.(!a==1)&&(!b==0)
B.(a<b)&&!c‖1
C.a&&b
D.a‖(b+b)&&(c-a)
51.有以下程序:#include<stdio.h>voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}執(zhí)行后的輸出結(jié)果是()。
A.4B.3C.2D.1
52.下列程序的執(zhí)行結(jié)果是______。in(f(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("goodbye!"));}
A.3B.6C.8D.0
53.設(shè)有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是
A.PER是結(jié)構(gòu)體變量名
B.PER是結(jié)構(gòu)體類型名
C.typedefstruct是結(jié)構(gòu)體類型
D.struct是結(jié)構(gòu)體類型名
54.結(jié)構(gòu)化程序設(shè)計的一種基本方法是()
A.篩選法B.遞歸法C.歸納法D.逐步求精法
55.下面程序運行后的輸出結(jié)果是_____。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}
A.5B.6C.7D.8
56.有以下程序:main(){intx=3,y=2,z=1;printf("%d\n",x/y&~z);}程序運行后的輸出結(jié)果是______。
A.3B.2C.-1D.0
57.下列敘述中,正確的一條是______。
A.C語言的整型變量可以分為int、short、long、unsignedint、unsignedshort、unsignedlong等幾種類型,因此整型常量也可以分為這幾種類型
B.C語言的字符數(shù)據(jù)與整型數(shù)據(jù)可以互相賦值
C.若對字符型變量的定義為:charc;可使用語句c="a",對變量c賦值
D.已知x為float型,執(zhí)行語句(int)x后,x為int型
58.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運行后的輸出結(jié)果是()。
A.1B.2C.3D.4
59.fgets(str,n,fp)函數(shù)從文件中讀入一個字符串,以下錯誤的敘述是()。
A.字符串讀入后會自動加入'\0'
B.fp是指向該文件的文件型指針
C.fgets函數(shù)將從文件中最多讀入n個字符
D.fgets函數(shù)將從文件中最多讀入n-1個字符
60.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
四、選擇題(20題)61.以下敘述中錯誤的是()。
A.一個C程序中可以包含多個不同名的函數(shù)
B.一個C程序只能有一個主函數(shù)
C.C程序在書寫時,有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過
D.C程序的主函數(shù)必須用main作為函數(shù)名
62.(36)下列工具中屬于需求分析常用工具的是()
A.PAD
B.PFD
C.N-S
D.DFD
63.以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù):
下劃線處應(yīng)填入的語句是()。
A.
B.
C.
D.
64.
有以下程序
#include<stdi0.h>
main
{FILE*fp;inta[0]一{1,2,3,0,0},i;
fp=fopen("d2.dat,"wb");
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a.sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printft("%d",a[i]);
}
程序的運行結(jié)果是()。
A.1,2,3,0,0,o,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
65.
有下列程序:
#include<stdio.h>
main
{inta=6,b=7,m=1;
switch(a%2)
{case0:m++;break;
case1:m++;
switch(b%2)
{default:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}
程序的運行結(jié)果是()。
A.3B.2C.4D.1
66.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
67.以下程序的輸出結(jié)果是()。
charstr[15]=”hello!”;
printf(“%d\n”,strlen(str));
A.15B.14C.7D.6
68.以下程序的輸出結(jié)果是()。
A.9B.8C.7D.6
69.下列關(guān)于棧的描述錯誤的是()。
A.棧按“先進(jìn)后出”組織數(shù)據(jù)B.棧是特殊的線性表,只能在一端插入或刪除數(shù)據(jù)C.棧具有記憶功能D.棧只能順序存儲
70.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
71.為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是
A.高級語言B.數(shù)據(jù)描述語言(DDL)C.數(shù)據(jù)操縱語言(DML)D.匯編語言
72.
73.
74.為了提高軟件的獨立性,模塊之間最好是()。
A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合
75.
有以下程序.
#include<stdio.h>
main
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar;c6=getchar;
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運行后,若從鍵盤輸入(從第l列開始)
123<回車>
45678<回車>
則輸出結(jié)果是()。
A.1267B.1256C.1278D.1245
76.下列敘述中正確的是()。
A.算法就是程序B.設(shè)計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計C.設(shè)計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對
77.對如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
78.有下列程序:fun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}main(){intj=1,m=1,k;k=fun(j,m);printS(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)執(zhí)行后的輸出結(jié)果是()。A.5,5B.5,11C.11,11D.11,5
79.
80.若運行以下程序時,從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運行結(jié)果是()。
A.v0=7,vl=4,v2=7
B.v0=8,vl=4,v2=8
C.v0=11,vl=4,v2=11
D.v0=13,vl=4,v2=12
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將tt所指字符串中的小寫字母全部改為對應(yīng)的大寫字母,其他字符不變。例如,若輸入“Ab,cD”,則輸出“AB,CD”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了字符串前導(dǎo)的。號之外,將串中其他*號全部刪除。在編寫函數(shù)時.不得使用C語言提供的字符串函數(shù).
參考答案
1.A
2.A
3.C在輸入3和5之間除逗號外不能有其他字符。
4.A
5.D
6.D
7.C解析:計算機(jī)語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須譯成能被計算機(jī)識別的二進(jìn)制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)從1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。
8.AC語言源程序的擴(kuò)展名是.C,目標(biāo)文件的擴(kuò)展名是.obj,可執(zhí)行文件的擴(kuò)展名是.exe。故本題答案為A選項。
9.D
10.B
11.B本題考查實參與形參調(diào)用,從實參傳遞到形參時,只是數(shù)值的傳遞,調(diào)用函數(shù)中值的改變不會影響主函數(shù)中的值,因此原樣輸出。
12.AC語言規(guī)定,注釋語句可以換行寫,并且一個“/*”和其后緊跟的第一個“*/”中間的部分是注釋內(nèi)容,并且注釋部分的內(nèi)容不參與程序的執(zhí)行,因此本題中沒有執(zhí)行“b=20”;這條語句。
13.B
14.A解析:本題中,首先創(chuàng)建開辟一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同的變量。分別給a、b、C所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量的值,即3,3,3。所以選A。
15.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序序列為BCDA,可知以A為根節(jié)點的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。
16.A
17.C數(shù)據(jù)字典(DD)是指對數(shù)據(jù)的數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實體等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明。
18.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。
19.B題干表達(dá)式中,圓括號的優(yōu)先級最高,乘法運算符次之,加法運算符最低。同優(yōu)先級中,加法運算符的結(jié)合性從左向右結(jié)合,所以題干中的表達(dá)式執(zhí)行順序是:先執(zhí)行“a+b”得r1,再執(zhí)行“(d+e)”得r2,再執(zhí)行“c*r2”得r3,最后執(zhí)行“r1+r3”得表達(dá)式最后結(jié)果。故本題答案為B選項。
20.Aswitch語句中不一定使用break語句,選項A正確;break語句除了用于switch語句,還可以用于循環(huán)語句中,選項B、C錯誤;switch語句不一定需要使用default語句,選項D錯誤。本題答案為A選項。
21.黑箱或黑盒黑箱或黑盒解析:黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。常用的黑箱測試技術(shù)分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。
22.20c。20,c。解析:函數(shù)fun的功能是給結(jié)構(gòu)體指針變量所指的結(jié)構(gòu)體變量的各成員賦值,主函數(shù)兩次調(diào)用函數(shù)fun,第一次調(diào)用,實參st兩個成員的值是20和字符b,調(diào)用結(jié)束時,靜態(tài)局部變量k沒有釋放,值為2:第二次調(diào)用,實參st兩個成員的值是20和字符c,調(diào)用結(jié)束時,靜態(tài)局部變量k沒有釋放,值為3;因此,輸出結(jié)果是20和c。
23.918273645918273645解析:程序通過for循環(huán)將字符'0'~'9'從前向后,同時從后向前依次輸出,所以輸出結(jié)果為:0918273645。
24.j<2b[j][i]=a[i][j]i<=2j<2\r\nb[j][i]=a[i][j]\r\ni<=2解析:本題考查了二維數(shù)組元素的引用。a[i][j]表示的是二維數(shù)組a的第i+1,第j+1列的元素。
25.strlen(str)-1strlen(str)-1解析:程序中的for循環(huán)就是用來完成串反序的,所以應(yīng)該對循環(huán)的條件進(jìn)行初始化,所以在[18]應(yīng)該填入strlen(str)-1。注意,在串反序的時候,不應(yīng)該把串結(jié)束符‘\\0’也反序。
26.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。
27.時間時間解析:算法的復(fù)雜度主要指時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
28.33解析:本題考查do…while語句形式:
do循環(huán)體
while表達(dá)式
首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。
29.310
30.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應(yīng)一個處理模塊。
31.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。
32.00解析:在本題中,d=(a>b>c);相當(dāng)于d=(5>4>3);其計算過程為:先算5>4,結(jié)果為真,得1,即d=(1>3);然后計算1>3,結(jié)果為假,得0。
33.-55。
34.圖標(biāo)或按鈕圖標(biāo)或按鈕
35.getchargetchar解析:題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結(jié)構(gòu)來比較輸入字符與字符'y','Y'、,'n','N'是否相等來實現(xiàn)的。注意:用于字符串處理的函數(shù)。
36.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫的字節(jié)數(shù);count是要寫多少個size字節(jié)的數(shù)據(jù)項;fp是文件指針。
37.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。
38.br[i]或*(br+i)br[i]或*(br+i)解析:程序中的數(shù)組a是一個3行4列的二維數(shù)組,一維數(shù)組b用于存放每行的最大數(shù)。在函數(shù)fun中,通過二重for循環(huán)求每行的最大數(shù),外層for循環(huán)用于控制行數(shù),內(nèi)層for循環(huán)用于控制列數(shù),當(dāng)外層循環(huán)執(zhí)行一次時,內(nèi)層循環(huán)則從一行的4個數(shù)中找出最大數(shù)x,然后將最大值x賦給數(shù)組br,故空格處應(yīng)填br[i]或*(br+i)。
39.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。
40.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構(gòu)成三角形的條件:兩邊之和大于第三邊,得出空格應(yīng)該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。
41.D解析:常見的需求分析方法有結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒▋深悺F渲薪Y(jié)構(gòu)化分析方法又包括面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA-Structuredanalysis),面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD-Jacksonsystemdevelopmentmethod)和面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法(DSSD-Datastructuredsystemdevelopmentmethod)。
42.C解析:函數(shù)形參和實參分別占用不同的內(nèi)存單元,改變形參的值不會影響對應(yīng)實參的值,選項A)正確。指針類型的函數(shù)可以返回地址值,選項B)正確。在文件stdio.h中,NULL被定義為void型的指針,選項D)也正確。指針變量的值只能是存儲單元地址,而不能是一個整數(shù),選項C)錯誤。
43.A
44.DD)【解析】數(shù)據(jù)的存儲結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲結(jié)構(gòu),其處理的效率是不同的。
45.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時,數(shù)組的大小就應(yīng)該比它將要實際存放的最長字符多一個元素,以存放‘\\0’。
46.C解析:執(zhí)行語句x=y++,是先將y的值10賦給x,然后y自增。
47.B解析:本題考查軟件需求分析的四個階段,分別為需求獲取、需求分析、編寫需求分析說明書和需求評審。
48.C數(shù)據(jù)結(jié)構(gòu)概念一般包括3個方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)(物理結(jié)構(gòu))及數(shù)據(jù)上的運算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象地反映數(shù)據(jù)元素之間的邏輯關(guān)系,即數(shù)據(jù)元素之間的前后件關(guān)系,而不管它在計算機(jī)中的存儲表示形式。
49.A解析:本題考查求字符串的長度。數(shù)組str初始化的長度是7,使用strcpy函數(shù)將新字符串賦給str后,strlen函數(shù)返回的是新字符串的字符個數(shù)5。
50.A解析:邏輯運算符的優(yōu)先級由高到低運算次序如下:!(非)→&&(與)→||(或),選項A)的表達(dá)式中,先計算!a,結(jié)果為0,由于'0==1'不成立,故整個表達(dá)式的值為0。
51.A解析:該程序通過main函數(shù)循環(huán)凋用sum函數(shù)。
當(dāng)i=2時,將實參aa[2]的地址傳遞給形參,此時a[0]=a[1]=aa[3]=4,即aa[2]=4;
當(dāng)i=1時,將實參aa[1]的地址傳遞給形參,此時a[0]=a[1]=aa[2]=4,即aa[1]=4;
當(dāng)i=0時,將實參aa[0]的地址傳遞給形參,此時a[0]=a[1]=aa[1]=4,即aa[0]=4;
當(dāng)i=-1時,不滿足條件i>=0,跳出循環(huán),程序執(zhí)行后數(shù)組aa中的值為4,4,4,4,5,6,7,8,9,10,所以aa[0]=4。
52.C解析:字符在內(nèi)存中占一個字節(jié)的存儲空間,按字符的存儲順序,其地址依次遞增,在函數(shù)f中循環(huán)過后,p指向字符串的結(jié)束位置,s指向字符串首地址,p-s即為字符串長度。
53.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。
54.D解析:在結(jié)構(gòu)化程序設(shè)計中,通常采取自頂向下、逐步求精的方法,尤其是在詳細(xì)設(shè)計和編碼階段,其總的思想就是先全局后局部、先整體后細(xì)節(jié)、先抽象后具體、程序自頂向下、逐步細(xì)化。而篩選法、遞歸法和歸納法指的都是程序的某種具體算法。逐步求精法是結(jié)構(gòu)化程序設(shè)計中很重要的思想,一定要牢記!
55.B解析:在main函數(shù)中定義了一個structabc類型的數(shù)組,同時分別利用{1,2,3}及{4,5,6}對數(shù)組中兩個元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對其中的a,b,c三個變量進(jìn)行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。
56.D解析:本題中表達(dá)式x/y&~z中運算符優(yōu)先級的順序為:~(按位取反)、/(除)、&(按位與),即首先執(zhí)行~z得11111110,然后執(zhí)行x/y=3/2=1,最后執(zhí)行1&11111110=00000001&11111110=00000000=0。
57.B
58.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達(dá)式a%3,即15%3為0:執(zhí)行case0:后面的語句“m++;”,m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m值為1。所以選項A正確。
59.C解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。s可以是一個字符數(shù)組名,或是指向字符串的指針;n為要讀取的最多的字符個數(shù):fp是指向該文件的文件型指針。字符串輸入函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串存放到字符數(shù)組s中。
60.B解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左,右子樹。
61.C【答案】C
【知識點】C程序的函數(shù)
【解析】C程序必須有且只有一個主函數(shù)main()。一個C程序可以包含多個不重名的子函數(shù)。C程序在書寫時沒有嚴(yán)格的縮進(jìn)要求,語句前的縮進(jìn)隨意。
62.D
63.C在c語言循環(huán)語句中continue用來跳出當(dāng)次循環(huán),因此B)項和D)項不正確。if(i/8==0)是指當(dāng)i除以8的商等于0,即i的值小于8時,打印換行,因此A)項不正確。if(i%8==0)是指當(dāng)i除以8的余數(shù)等于0,即當(dāng)間隔8個數(shù)時,打印換行,因此選項c)正確。
64.D
\n本題程序首先用函數(shù)fopen以“wb”的方式開打文件“d2.dat”,然后調(diào)用兩次fwrite函數(shù)將數(shù)組a的5個元素,依次輸出到文件fp中,共10個字節(jié),關(guān)閉文件。再次打開文件,使用文件指針指向文件的開頭,調(diào)用head函數(shù)從文件印中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中。型數(shù)組bb中,因此,【2】處填“str[i]-0”;由函數(shù)proc可知,變量n中存放整型數(shù)組bb中的元素個數(shù),最后要返回到主函數(shù)當(dāng)中,因此,【3】處填“n”。\n
65.B
\n本題考查switch語句及break的用法。第一個switch語句,因為a=6.a(chǎn)%2=0,所以執(zhí)行“case0,m++;”,將m加1,遇到break語句跳出switch語句,結(jié)束循環(huán)。不執(zhí)行下面的switch。
\n
66.C統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題重點考察指向數(shù)組的指針。c語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運行的結(jié)果是l+3+5+7+9=25。1
67.D
68.B逗號表達(dá)式a++,b++,a+b先計算a++,a=2;再計算b++,b=3;表達(dá)式的值就是a+b的值,為5。表達(dá)式C++的值是C遞增前的值,為3。所以fun((a++,b++,a+b),
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安交通工程學(xué)院《口腔病理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安職業(yè)技術(shù)學(xué)院《工管運籌學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025河北省安全員C證考試題庫
- 云南中醫(yī)藥大學(xué)《農(nóng)業(yè)推廣學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧特殊教育師范高等??茖W(xué)?!妒覂?nèi)專題項目生態(tài)性居住空間設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年江西省建筑安全員-A證考試題庫附答案
- 銅仁幼兒師范高等??茖W(xué)校《口腔組織病理學(xué)實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼陽職業(yè)技術(shù)學(xué)院《外貿(mào)函電與單證》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京協(xié)和醫(yī)學(xué)院《需求分析與系統(tǒng)設(shè)計(雙語)》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川電力職業(yè)技術(shù)學(xué)院《WTO-TBT基礎(chǔ)知識》2023-2024學(xué)年第二學(xué)期期末試卷
- DL-T5153-2014火力發(fā)電廠廠用電設(shè)計技術(shù)規(guī)程
- 冀人版科學(xué)六年級下冊全冊同步練習(xí)
- (高清版)JTGT 3365-02-2020 公路涵洞設(shè)計規(guī)范
- DZ∕T 0223-2011 礦山地質(zhì)環(huán)境保護(hù)與恢復(fù)治理方案編制規(guī)范(正式版)
- 2024年湖南有色金屬職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫學(xué)生專用
- 靜療相關(guān)血管解剖知識課件
- 【蘇科版】九年級物理下冊教學(xué)計劃(及進(jìn)度表)
- 康復(fù)運動治療技術(shù)
- 醫(yī)保定點醫(yī)療機(jī)構(gòu)申請表
- 《大腸埃希氏菌》課件
- 煤礦環(huán)境保護(hù)培訓(xùn)課件
評論
0/150
提交評論