版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年寧夏回族自治區(qū)銀川市全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若x,y,z均被定義為整數(shù),則下列表達(dá)式能正確表達(dá)代數(shù)式1/(x*y*z)的是()。A.1/x*y*zB.1.0/(x*y*z)C.1/(x*y*z)D.1/x/y/(float)z
2.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
3.一個遞歸算法必須包括()。
A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分
4.設(shè)有定義“inta=3,b,*p=&a”,則下列語句中使b不為3的語句是______。
A.b=*&a;B.b=*p;C.b=a;D.b=*a;
5.向一個棧頂指針為H的鏈棧中執(zhí)行出棧運算時,需執(zhí)行()。
A.p=H;H=H->link;free(p);
B.H=H->link;free(H);
C.p=H;H->link=H->link->link;free(p);
D.p=H;H=H->link;
6.
7.每次從無序表中取出一個元素,把它插入到有序表中的適當(dāng)位置,此種排序方法叫做()排序。
A.插入B.堆C.快速D.歸并排序
8.有以下程序:#include<stdio.h>voidsub(doublea,double*pb);intmain(){doublex,y;scanf(“%lf%lf”,&x,&y);sub(x,&y);printf(“x=%fy=%f\n”,x,y);}voidsub(doublea,double*pb){a=a-*pb;*pb=*pb-a;}程序運行時輸入10.23.5并按<Enter>鍵,則輸出結(jié)果為()。
A.x=10.200000y=-3.200000
B.x=6.700000y=-13.700000
C.x=7.000000y=-3.500000
D.x=13.400000y=-7.000000
9.數(shù)據(jù)處理的最小單位是()。
A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項D.數(shù)據(jù)結(jié)構(gòu)
10.以下選項中關(guān)于C語言算術(shù)表達(dá)式的敘述中錯誤的是()。
A.可以通過使用圓括號來改變算術(shù)表達(dá)式中某些算術(shù)運算符的計算優(yōu)先級
B.C語言采用的是人們熟悉的四則運算規(guī)則,即先乘除后加減
C.算術(shù)表達(dá)式中,運算符兩側(cè)類型不同時,將進(jìn)行類型之間的轉(zhuǎn)換
D.C語言僅提供了“+”“-”“*”“/”這4個基本算術(shù)運算符
11.
12.下列關(guān)于數(shù)據(jù)結(jié)構(gòu)的敘述中,正確的是()。
A.數(shù)組是同類型值的集合
B.遞歸算法的程序結(jié)構(gòu)比迭代算法的程序結(jié)構(gòu)更為精煉
C.樹是一種線性結(jié)構(gòu)
D.用一維數(shù)組存儲二叉樹,總是以先序遍歷的順序存儲各結(jié)點
13.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。
cb='b';
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);A.A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
14.串是一種特殊的線性表,其特殊性體現(xiàn)在()。
A.可以順序存儲B.數(shù)據(jù)元素是一個字符C.可以鏈?zhǔn)酱鎯.數(shù)據(jù)元素可以是多個字符
15.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
16.有以下程序:#includeMain(){Intx=1,y=0;if(!x)y++;elseif(x==0)if(x)y+=2;Elsey+=3;print("%d\n",y);}程序運行后的輸出結(jié)果是()。A.2B.1C.0D.3
17.排序方法中,將整個無序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱為______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
18.在C語言中,char型數(shù)據(jù)在內(nèi)存中的存儲形式是()。
A.補碼B.反碼C.原碼D.ASCII碼
19.
有以下程序:
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:n+=l;k--;break;
defalut:n=0;k--;
case2:
case4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結(jié)果是()。
A.235B.0235C.02356D.2356
20.以下程序的輸出結(jié)果是()。main{intx=0.5;charz=‘a(chǎn)’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
二、2.填空題(20題)21.當(dāng)先后輸入1、3、4、12、23時,屏幕上出現(xiàn)【】;再輸入12時,則屏幕上出現(xiàn)【】。
#include<stdio.h>
#defineN5
main()
{inti,j,number,top,bott,min,loca,a[N],flag;
charc;
printf("Pleaseinput5numbers(a[i]>a[i-1])\n");
scanf("%d",&a[0]);
i=1;
while(i<N)
{scanf("%d",&a[i]);
if(a[i]>=a[i-1))i++;
}
printf("\n");
for(i=0;i<N;i++)printf("%d",a[i]);
printf("\n");
flag=1;
while(flag)
{scanf("%d",&number);
loca=0;
top=0;
bott=N-1;
if((number<a[0])||(number>a[N-1]))loca=-1;
while((loca==0)&&(top<=bott))
{min=(bott+top)/2;
if(number==a[min])
{loca=min;
printf("%disthe%dthnumber\n",number,loca+1);
}
elseif(number<a[min])bott=min-1;
elsetop=min+1;
}
if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);
c=getchar();
if(c=='N'||c=='n')flag=0;
}
}
22.若想通過以下輸入語句使a=5.0,b=4,c=3,則輸入數(shù)據(jù)的形式應(yīng)該是【】。
intb,c;floata;
scanf("%f,%d,c=%d",&a,&b,&c)
23.結(jié)構(gòu)化程序設(shè)計的三種基本邏輯結(jié)構(gòu)為順序、選擇和【】。
24.下列程序的運行結(jié)果為【】。
main()
{intx=2,y,z;
x*=3+1;
printf("%d,",x++);
x+=y=z=5;
printf("%d,",x);
K=y==Z;
printf{"%d\n",x);
}
25.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。
26.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
27.匯編程序和編譯程序翻譯的目標(biāo)程序需經(jīng)【】連接成可執(zhí)行的程序。
28.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。
29.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
30.若從鍵盤輸入58,則以下程序輸出的結(jié)果是______。
main{)
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
31.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),是素數(shù),函數(shù)返回1,
否則返回0。請?zhí)羁铡?/p>
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
32.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數(shù),用換行符結(jié)束循環(huán)。請?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
33.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
34.用指針法求出數(shù)組元素中最大者和最小者。
intmax,min;
voidmax_min_value(array,n)
intarray[],n;
{【】;
max=min=*array;
for(【】;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
main()
{inti,number[20],*p;
p=number;
printf("輸入20個數(shù)據(jù):\n");
for(i=0;i<20;i++,p++)scanf("%d",p);
【】;
max_min_value(p,10);
printf("max=%-10dmin=%d\n",max,rain);
}
35.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdatc
{intday;
intmouth;
intyear:
union{intshare1;
floatshare2:
}share;
}a;
36.若有下列定義(設(shè)int類型變量占兩個字節(jié)),則i=【】,j=【】。
inti=8,j=9;floatx=123.456;
print("i=%oj=%o\n",i,j);
37.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
38.若有定義:doubleW[10],則W數(shù)組元素下標(biāo)的上限為【】,下限為【】。
39.執(zhí)行以下for語句后,變量i的值是【】。
for(i=1;i++<=5;);
40.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對其中的圖形元素進(jìn)行確切解釋。
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是#include<stdio.h>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);}
A.1B.2C.3D.4
42.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達(dá)式a/b+c-k值的類型為:
A.intB.doubleC.floatD.char
43.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
44.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
45.下面程序的輸出結(jié)果是______。main(){inta[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}
A.0B.1C.10D.9
46.若有如下語句:intx=3;do{printf("%d\n",x-=2);}wbile(!(--x));則上面程序段()。
A.輸出的是1B.輸出的是1和-2C.輸出的是3和0D.是死循環(huán)
47.在C語言中提供的合法的關(guān)鍵詞是______。
A.swicthB.cherC.CaseD.default
48.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b=′b′;
C.floata=1,*b=&a,*c=&b;
D.doublea=00;b=1.1;
49.設(shè)有如下關(guān)系表,由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
50.需求分析階段的任務(wù)是()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
51.下列程序的輸出結(jié)果是______。main(){chara[10]-(9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
52.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。
A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后
B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后
C.將字符串str2復(fù)制到字符串str1中后再將字符串str3連接到字符串str1之后
D.將字符串str2連接到字符串str1之后再將字符串str1復(fù)制到字符串str3中
53.下列有關(guān)數(shù)據(jù)庫的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程
B.數(shù)據(jù)的物理獨立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,數(shù)據(jù)的存儲結(jié)構(gòu)不變
C.關(guān)系中的每一列稱為元組,一個元組就是一個字段
D.如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
54.假設(shè)有如下定義:structa{intn;floatk}data,*p;若要使p指向data中的成員n,正確的賦值語句是
A.p=&data.n;
B.*p=data.n;
C.p=(structa*)&data.n;
D.p=(structa*)data.n;
55.下列程序執(zhí)行后的輸出結(jié)果是voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!”;voidfunc1(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}{inti=0;func1(i);printf("\n");}
A.helloB.helC.hloD.hlm
56.下列能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
57.若有定義和語句int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);則輸出結(jié)果是()
A.10,10B.10,20C.20,10D.20,20
58.以下對C語言函數(shù)的有關(guān)描述中,正確的是
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳給形參,形參的值不能傳送給實參
B.C函數(shù)既可以嵌套定義又可以遞歸調(diào)用
C.函數(shù)必須有返回值,否則不能使用函數(shù)
D.函數(shù)必須有返回值,返回值類型不定
59.以下選項中非法的表達(dá)式是()。
A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1
60.若要定義a為3×4的二維數(shù)組,正確的定義語句是()
A.floata(3,4);
B.floata[3][4];
C.floata(3)(4);
D.floata[3,4];
四、選擇題(20題)61.
已知有如下結(jié)構(gòu)體:
structsk
{inta;
floatb;
}data,*p;
若有P=&data,則對data的成員a引用正確的是()。
A.(*p).data.a(chǎn)B.(*p).a(chǎn);C.p->data.a(chǎn)D.p.data.a(chǎn)
62.
有以下程序:
main()
{intk=5,n=0;
do
{switch(k)
{case1:
case3:n+=l;k--;break;
defalut:n=0;k--;
case2:
case4:n+=2;k--;break:
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結(jié)果是()。
A.235B.0235C.02356D.2356
63.(42)希爾排序法屬于哪一種類型的排序法()
A.交換類排序法
B.插入類排序法
C.選擇類排序法
D.建堆排序法
64.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個C程序必須在開頭包含預(yù)處理命令行:#include
D.C語言的預(yù)處理不能實現(xiàn)宏定義和條件編譯的功能
65.在以下選項中,能正確調(diào)用對象屬性的語句是()。
A.對象名(屬性名)B.對象名一>屬性名C.對象名屬性名D.對象名.屬性名
66.
下面程序的功能是輸出以下形式的金字塔圖案:main
{inti,j;*
for(i=l;i<-4;i++)***
{for(j=1;j<=4-i;j++)printf("");
*****
for(j=1;j<=____;j++)printf("
*");*******
printf("\n");
}
}
在下劃線處應(yīng)填入的是()。
A.iB.2*i一1C.n=2*i+1D.i+2
67.有以下程序:
程序運行后的輸出結(jié)果是()。
A.-2,3,B.-1,-2,C.-2,-3,D.-2,1
68.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序運行后輸出的結(jié)果是
A.5B.6
C.7D.8
69.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。
A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后
B.將字符串str1連接到字符串str2之后再復(fù)制到字符串str3之后
C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后
D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中
70.有如下程序:main(){intn[5]={0,0,0},i,k=2;for(i=0;i&printf("%d\n",n[k]););}該程序的輸出結(jié)果是()。A.不確定的值B.2C.1D.0
71.
有以下程序
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
72.有以下程序:
執(zhí)行后輸出結(jié)果是()。
A.58B.56C.45D.24
73.軟件生命周期中所花費用最多的階段是()。
A.詳細(xì)設(shè)計B.軟件編碼C.軟件測試D.軟件維護
74.已知
則以下敘述正確的是()。
A.循環(huán)控制表達(dá)式不合法B.循環(huán)控制表達(dá)式的值為0C.循環(huán)控制表達(dá)式的值為lD.以上說法都不對
75.若有說明,double*m,n;則能通過sCanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。
A.*m=&n;scanf("%lf",m);
B.m=(double*)malloc(10);scanf("%f",m);
C.m=&n;scanf("%lf",n);
D.m=&n;scanf("%le",m);
76.設(shè)有下列二叉樹:對此二叉樹前序遍歷的結(jié)果為()
A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY
77.閱讀下面程序,則執(zhí)行后的結(jié)果為
#include"stdio.h"
fun1()
{intk=20;
returnk;
}
fun2()
{inta=15;
returna;}
fun3(inta,intb)
{intk;
k=(a-b)*(a+b);
printf("%d\n",k);}
main()
{un3(fun1(),fun2());}
A.0B.184
C.175D.編譯不通過
78.
79.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表
80.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。
A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個邊長(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回l;若不能,則返回0。
例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<math.h>
intproc(inta,intb,intc)
{
if(a+b>c&&b-c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return1;
elseif(a==b||b==C||a==c)
return2;
//****found****
elsereturn3;
}
elsereturn0;
}
voidmain
{
inta,b,c,shape;
printf("\nInputa,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d.b=%d,c=%d\n",a,b,c);
shape=proc(a,b.c):
printf("\n\nTheshape:%d\n",shape);
}
六、程序設(shè)計題(1題)82.編寫一個函數(shù),輸入n個字符串,串與串之間以Enter鍵分隔,找出最短字符串中第一個字符串,傳回該串地址(用一個新串“*”作為結(jié)束輸入的標(biāo)志)。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B
2.D解析:本題考查兩個知識點:①C語言用'\\n'這個字符常量表示換行;②函數(shù)getchar()的作用是從終端輸入一個字符,當(dāng)遇到換行時結(jié)束輸入。
3.B
4.D
5.A
6.A
7.A
8.Asub函數(shù)接收兩個參數(shù):double類型變量a,double指針變量pb。首先將a與pb指向的變量值相減,結(jié)果存放在a中;然后再將pb指向的變量值與a的新值相減,結(jié)果存放在pb指向的內(nèi)存空間中。sub函數(shù)不會修改實參x的值,但會修改實參y的值。當(dāng)輸入10.23.5時,實參x的值為10.2,y的值為3.5,執(zhí)行sub函數(shù)后,x的值不變,y的值變成-3.2。故本題答案為A選項。
9.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項;由若干數(shù)據(jù)項組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計算機識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運算。故正確答案為選項C)。
10.DC語言的算術(shù)運算符是有優(yōu)先級的。圓括號可以改變算術(shù)表達(dá)式中某些算術(shù)運算符的優(yōu)先級,選項A正確;算術(shù)運算符中,乘除運算符的優(yōu)先級比加減運算符的優(yōu)先級高,C語言采用的是四則運算規(guī)則,選項B正確;算術(shù)表達(dá)式中,運算符兩側(cè)運算對象的數(shù)據(jù)類型不同時,將進(jìn)行隱式類型轉(zhuǎn)換,選項C正確;C語言中基本的算術(shù)運算符除了“+”“-”“*”“/”之外,還有“%”,即求余運算符,選項D錯誤。故本題答案為D選項。
11.D
12.B
13.C第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個printf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%0”分別表示以十六進(jìn)制和八進(jìn)制無符合型輸出整型數(shù)據(jù)(不帶前導(dǎo)ox或0);②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數(shù),也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。
14.B
15.A【答案】:A
【知識點】:黑盒測試
【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。
16.C在ifelse語句中else,總是與離它最近的配對。本題目中x勸1所以!x為0,所以執(zhí)行else齬句中的內(nèi)容,判斷(x==0)是否成立,因為x為1所以條件不成立,所以else部分的近.else語句不再執(zhí)行,所以y的值還是初始值0。
17.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進(jìn)行插入排序。
18.D解析:在C語言中,將一個字符常量放到一個字符變量中,實際并不是把該字符本身放到內(nèi)存單元中,而是將與該字符相對應(yīng)的ASCII碼放到存儲單元中。
19.B
\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
\n
20.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a(chǎn)’<‘z’)=1&&1=1,故選擇B選項。
21.134122312isthe4thnumber.
22.5.04c=35.0,4,c=3解析:scanf(掐式控制,地址列表),如果在“格式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與這些字符相同的字符。所以此題中輸入數(shù)據(jù)的形式是5.04,c=3。
23.重復(fù)(或循環(huán))重復(fù)(或循環(huán))
24.8141
25.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。
26.D
27.裝配程序裝配程序
28.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計算逗號表達(dá)式時,從左到右計算由逗號分隔各表達(dá)式的值,整個逗號表達(dá)式的值等于其中最后一個表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
29.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。
30.585858585858解析:在程序中,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個訂語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>4O,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。
31.return0return1return0,return1解析:如果a能被i整除,則a是素數(shù),返回值為0。如果a不能被i整除,則a不是素數(shù),返回值為1。
32.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
33.軟件開發(fā)
34.int*pp=array+1p=numberint*p\r\np=array+1\r\np=number解析:函數(shù)max_min_value()中用到了指針變量p,顯然應(yīng)在第一個空格處填int*p。函數(shù)max_min_value()中的for循環(huán)逐一把數(shù)組中的元素與max和min的當(dāng)前值進(jìn)行比較。max和rain的初值是數(shù)組的第1個元素值,第1次比較應(yīng)與第2個元素比較,即array+1。第二個空格處應(yīng)填p=array+1。主函數(shù)main()中的指針變量p首先指向數(shù)組number的第1個元素,當(dāng)?shù)?個for循環(huán)結(jié)束時,它指向數(shù)組的最后一個元素。若這時將p作為實參傳給被調(diào)用函數(shù),形參array[]數(shù)組的首址將是number口數(shù)組的最后元素的地址,而number[]數(shù)組的前n-1個元素不能參加比較,這將引起計算出錯。因此,在調(diào)用max_min_value()函數(shù)之前,應(yīng)將指針p指向number[]數(shù)組首址,即在第三個空格應(yīng)填寫p=umber。
35.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(A)的值是2+2+2+4=10。
36.1011
37.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。
38.90
39.7
40.數(shù)據(jù)字典或DD數(shù)據(jù)字典或DD解析:數(shù)據(jù)流圖用來對系統(tǒng)的功能需求進(jìn)行建模,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)詞典(DataDictionary,DD)用于對數(shù)據(jù)流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和數(shù)據(jù)存儲名字具有確切的解釋。
41.A解析:switch語句的條件是“a%3=15%3=0”,所以執(zhí)行case0后面的語句,m++;m=1,然后就執(zhí)行break,跳出switch語句,所以最后輸出的m的值為1。注意:switch嵌套語句的使用。
42.B解析:雙目運算中兩邊運算量類型轉(zhuǎn)換規(guī)律:
運算數(shù)1運算數(shù)2轉(zhuǎn)換結(jié)果類型
短整型長整型短整型->長整型
整型長整型整型->長整型
字符型整型字符型->整型
有符號整型無符號整型有符號整型->無符號整型
整型浮點型整型->浮點型
在a/b的時候,a、b的類型不一致,根據(jù)類型轉(zhuǎn)換規(guī)則,把整型轉(zhuǎn)換成double類型,之后的加、減類似。轉(zhuǎn)化規(guī)則為char,short->int->unsigned->long->double←float。
43.C答案C
解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。
44.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。
45.A解析:p指向a[0],則p+9指向a[9],*(p+9)=a[9]=0。
46.B解析:do-while語句的一般格式為:
do{循環(huán)體語句}while(表達(dá)式);
先執(zhí)行循環(huán)體語句一次,再判斷表達(dá)式的值,若值為真,則繼續(xù)執(zhí)行循環(huán),否則終止循環(huán)。本題中,先執(zhí)行printf('%d\\n',x-=2),值為x=x-2,即為1。然后判斷表達(dá)式的值,!(--x)為真,x=0,繼續(xù)循環(huán)。再次執(zhí)行循環(huán)體語句后,x=-2,此時表達(dá)式!(--x)的值為0,結(jié)束循環(huán)。
47.D解析:選項A應(yīng)為多分支語句中的switch,選項B應(yīng)為定義字符類型的char,選項C應(yīng)為多分支語句中的分支關(guān)鍵詞case(小寫)。因此,選項A、B、C都有書寫上的錯誤,只有選項D正確。
48.B解析:本題考查變量的定義方法。如果要一次進(jìn)行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,故選項C)錯誤。
49.BB)【解析】T就是關(guān)系R中插入關(guān)系S,合并為T,即并運算(∪)。
50.DD)【解析】需求分析是軟件定義時期的最后一個階
\n段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。
51.C解析:本題中char*p=a+5;即相當(dāng)于p;&a[5],而-p,是先要減1,則printf語句要輸出的值就是a[4]。
52.C解析:strcat(s1,s2)是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復(fù)制給s1字符串,要保證s1能容納下連接或復(fù)制后的字符串。
53.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項A敘述錯誤。數(shù)據(jù)的物理獨立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),故選項B敘述錯誤。關(guān)系中的行稱為元組,對應(yīng)存儲文件中的記錄,關(guān)系中的列稱為屬性,對應(yīng)存儲文件中的字段,故選項C敘述錯誤。所以本題選D。
54.C解析:可以通過強制類型轉(zhuǎn)換(structa*)完成指針賦值。選項A)中&data.n取的是結(jié)構(gòu)體中成員的地址而不是結(jié)構(gòu)的地址,盡管這兩個地址的值是相同的,但仍然不允許進(jìn)行相互賦值;選項B)中的指針p還沒有指向一個具體的空間,給其賦值沒有意義;選項D)把一個整型變量強制轉(zhuǎn)化為結(jié)構(gòu)類型的指針沒有任何實在意義。
55.C解析:函數(shù)調(diào)用的一般形式為:
函數(shù)名(實參列表)
首先調(diào)用函數(shù)funcl(0),輸出st[0]=h。i值變?yōu)?,并調(diào)用函數(shù)func2(2),輸出st[2]=l。i值此時變?yōu)?,又調(diào)用函數(shù)funcl(4),輸出st[4]=0。此時i值大于等于3,執(zhí)行完畢。因此,輸出結(jié)果為hlo。注意:函數(shù)調(diào)用的一般格式以及函數(shù)的返回值。
56.B解析:C語言規(guī)定,可以在定義變量的同時給變量賦初值,稱為變量初始化。在選項A)中在給n1和n2進(jìn)行賦初值,但變量02沒有定義;在選項C)中定義變量f時,不能在賦值表達(dá)式的右邊出現(xiàn)變量f自身,所以選項C)錯誤:在選項D)用指數(shù)表達(dá)式的常量中,字母E后面的數(shù)應(yīng)該為整數(shù),而不應(yīng)該為小數(shù)形式。因此,選項B)正確。
57.D
58.A解析:C語言中的函數(shù)可以進(jìn)行遞歸調(diào)用,但不能在函數(shù)中定義函數(shù),即函數(shù)不能嵌套定義。函數(shù)可以沒有返回值,若有返回值,則返回值類型必須確定。
59.D解析:選項A)在C語言中是一個合法的關(guān)系表達(dá)式,但它并不代表數(shù)學(xué)式o<=x<100。計算0<=x<100時,從左到右結(jié)合,先計算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。根據(jù)運算符的優(yōu)先級,選項B)先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項C)中,(char)(65+3)為類型強制轉(zhuǎn)換,將整數(shù)型數(shù)據(jù)轉(zhuǎn)換為字符型。選項D)是將一個數(shù)據(jù)賦給一個表達(dá)式,等號左邊不合要求,所以錯誤。
60.B
61.B
\n本題主要考查結(jié)構(gòu)指針:P=&data,訪問結(jié)構(gòu)體的成員。它可以通過結(jié)構(gòu)變量訪問,即data,可以用等價的指針形式:(*p).a(chǎn)和P->a來訪問結(jié)構(gòu)體變量中的成員。
\n
62.B
\n本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
\n
63.B
64.B本題是對基本知識點的理解,預(yù)處理命令行的位置沒有規(guī)定,只是習(xí)慣寫在起始位置而已,當(dāng)需要時才用#include<stdio.h>頭文件,預(yù)處理的作用就是實現(xiàn)宏定義和條件編譯。
65.D
66.B
\n對于第i行,程序先輸出4-i個空格,然后輸出2×i-1個'*',所以答案是B。
\n
67.Afun()函數(shù)使用了靜態(tài)變量,靜態(tài)變量只在聲明時初始化一次。首先實參的數(shù)值是一12,if判斷后輸出負(fù)號,并將n=12,計算k+=n%10一k+=2—2,因此輸出2,后將數(shù)值除以10,結(jié)果為1,遞歸調(diào)用fun()函數(shù),第二次調(diào)用fun(),此時n=1,k=2,計算k+=n%10-÷k+=1——*3,因此打印3。故最后打印結(jié)果為一2,3,。故答案為A選項。
68.B本題中,程序首先定義一個結(jié)構(gòu)體,該結(jié)構(gòu)體定義了四個整型變量。在主函數(shù)中,首先定義了一個該結(jié)構(gòu)體的大小為2的結(jié)構(gòu)體數(shù)組,并給該數(shù)組進(jìn)行了初始化,從初始化語句我們可以看出,初始化時缺少了一個結(jié)構(gòu)體成員的值,在這種情況下,系統(tǒng)會自動為缺省的成員補0,本題中就是給結(jié)構(gòu)體成員變量b賦初值為0。
然后定義了一個整型變量t,接著運行t=s[0].a+s[1].b;語句,即t=1+5=6。因此,程序的最后輸
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能廁所施工一體化工程合同范本2篇
- 2024軟件項目協(xié)作開發(fā)居間協(xié)議模板版B版
- 2024年鋁合金門窗制作安裝合同
- 2024年版的軟件開發(fā)與技術(shù)支持合同
- 2025年國際貿(mào)易貨物質(zhì)量認(rèn)證服務(wù)合同3篇
- 2024年管理咨詢服務(wù)及其財務(wù)條款
- 2024砂礫石供應(yīng)與礦山環(huán)境恢復(fù)治理合同3篇
- 2024年金融科技擔(dān)保合作協(xié)議范本3篇
- 2024年美洲國際航空貨運保險單
- 2024年財產(chǎn)管理與監(jiān)護合同
- 【薦】八旗制度-課件(精心整理)
- 器樂專業(yè)課教學(xué)大綱(古箏)
- (完整版)EORTC生命質(zhì)量測定量表QLQ-C30(V3.0)
- 超級充電綜合站及配套設(shè)施建設(shè)項目可行性研究報告
- 2023年核心素養(yǎng)下的初中歷史教學(xué)有效性策略
- 眼科學(xué) 眼外傷(課件)
- 索具螺旋扣規(guī)格花籃螺絲
- GB/T 9364.4-2016小型熔斷器第4部分:通用模件熔斷體(UMF)穿孔式和表面貼裝式
- GB/T 21709.1-2008針灸技術(shù)操作規(guī)范第1部分:艾灸
- GB/T 16288-2008塑料制品的標(biāo)志
- 住院醫(yī)師規(guī)范化培訓(xùn)臨床實踐能力結(jié)業(yè)考核??萍寄懿僮髟u分表(耳鼻咽喉科)氣管切開術(shù)
評論
0/150
提交評論