版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年廣東省惠州市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.
3.是哈希查找的沖突處理方法()。
A.求余法B.平均取中法C.二分法D.開放地址法
4.若程序中有宏定義行“#defineN100”,則下列敘述中正確的是()。
A.宏定義行中定義了標(biāo)識符N的值為整數(shù)100
B.在編譯程序?qū)語言源程序進(jìn)行預(yù)處理時用100替換標(biāo)識符N
C.上述宏定義行實現(xiàn)將100賦給標(biāo)識符N
D.在運(yùn)行時用100替換標(biāo)識符N
5.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動給a賦初值0B.這時a中的值是和隨機(jī)數(shù)C.系統(tǒng)將自動給a賦初值-1D.這a中無任何值
6.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
7.下列4個關(guān)于C語言的結(jié)論中錯誤的是()。
A.可以用do…while語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)
B.可以用for語句實現(xiàn)的循環(huán)一定可以用while語句實現(xiàn)
C.可以用while語句實現(xiàn)的循環(huán)一定可以用for語句實現(xiàn)
D.do…while語句與while語句的區(qū)別僅是關(guān)鍵字“while”出現(xiàn)的位置不同
8.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
9.
10.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
11.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
12.下列敘述中正確的是()。
A.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
B.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
D.break語句只能用于switch語句體中
13.一個順序表的第一個元素的存儲地址是100,每個元素的長度為5,則第7個元素的地址是()。
A.130B.125C.120D.135
14.堆是一種有用的數(shù)據(jù)結(jié)構(gòu)。下列關(guān)鍵碼序列()是一個堆。
A.94,31,53,23,16,72
B.94,53,31,72,16,23
C.16,53,23,94,31,72
D.16,31,23,94,53,72
15.以下是一個對數(shù)組A(含有n個數(shù)值元素)進(jìn)行排序的算法偽代碼,請問它的平均時間復(fù)雜度是多少()
A.O(n)B.O(n^2)C.O(1)D.O(log(n))
16.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
17.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
18.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);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
19.下列程序的運(yùn)行結(jié)果是()。main{intx=1,y=3,a=0;while(x++!=(y-=l)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}A.2,3,2B.2,3,1C.1,3,3D.3,1,2
20.若有如下程序:#definePI3.1415926#defineA(r)2*PI*rmain(){floata,1;a=3.0;1=A(a);printf("r=%.2f,1=%.2f\n",a,1);}則程序運(yùn)行后的輸出結(jié)果是()
A.r=3.001=18.85
B.3.00,18.85
C.r=3.0000001=18.8495555
D.r=3.01=18.8495555
二、2.填空題(20題)21.數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu)、()和數(shù)據(jù)條件。
22.下面程序的功能是:計算1~10之間奇數(shù)和及偶數(shù)之和。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=O;
for(i=O;i<=10;i+=2)
{a+=i;
【】;
c+=b;
}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);
}
23.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運(yùn)行后的輸出結(jié)果是()。
24.下面程序的輸出結(jié)果是()。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
25.以下程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{intfun();fun();}
fun()
{staticinta[3]={0,1,2};
inti;
for(i=0;i<3;i++)a[i]+=a[i];
for(i=0;i<3;i++)printf("%d,",a[i]);
pfintf("\n",);}
26.以下程序的輸出結(jié)果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
27.以下程序運(yùn)行時若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
28.若有以下程序:
main()
{
inta=4,b=3,c==5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,C);
}
執(zhí)行后輸出結(jié)果是【】。
29.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
30.一個模塊直接調(diào)用的其他模塊的模塊個數(shù)稱為______。
31.深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。
32.設(shè)有以下定義和語句,sizeof(a)的值是【】,sizeof(b)的值是【】。
struct{intday;Charmonth;intyear;}a,*b;
b=&a;
33.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
34.若輸入12、3、2、5、7,則以下程序的運(yùn)行結(jié)果為【】。
intmax,min;
voidmax_min_value();
main()
{inti,number[5];
printf("輸入5個整數(shù);\n");
for(i=0;i<5;i++)scanf("%d",&number[i]);
maxminvalue(number,5);
printf("max=%d,min=%d\n",max,min);
getch();
}
voidmax_min_value(array,n)
intarray[],n;
{int*p;
max=min=*array;
for(p=array+1;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
35.若有語句doublex=17;inty;,當(dāng)執(zhí)行y=(int)(x/5)%2;之后y的值為()。
36.以下程序的輸出結(jié)果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
37.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
38.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。
39.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[10],b[10],i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
______;
for(i=0;i<9;i++)
{if(i%4==0)printf("\n");
printf("%3d",b[i]);
}
}
40.以下程序輸出的結(jié)果是______。
mazn()
{inta=5,b=4,c=3,d;
d=(a>b>C);
printf("%d\n",D);
}
三、1.選擇題(20題)41.以下不能正確計算代數(shù)式的值的C語言表達(dá)式是()。
A.1/3*sin(1/2)*sin(1/2)
B.SlH(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
42.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與實體間的聯(lián)系可以表示成()。
A.屬性B.關(guān)系C.鍵D.域
43.在調(diào)用函數(shù)時,如果實參是簡單變量,它與對應(yīng)形參之間的數(shù)據(jù)傳遞方式是_______。
A.地址傳遞B.單向值傳遞C.由實參傳給形,再由形參傳回實參D.傳遞方式由用戶指定
44.下列用于printf函數(shù)的控制字符常量中,代表“豎向跳格”的轉(zhuǎn)義字符常量是()。
A.\bB.\tC.\vD.\f
45.下列能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
46.下面程序中有錯誤的行是(每行程序前面的數(shù)字表示行號)1main()2{3inta[3]={1};4inti;5scanf("%d",&a);6for(i-1;i<3;i++)a[0]=a[0]+a[i];7printf("a[0]=%d\n,"a[0]);8}
A.3B.6C.7D.5
47.下列選項中C語言中不合法的字符串常量的是
A.\121B.′y′C.\n\nD.ABCD\x6d
48.已知字母a的ASCII碼為十進(jìn)制數(shù)97,下面程序的輸出結(jié)果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.輸出無定值B.d,eC.e,fD.g,d
49.軟件設(shè)計中,有利于提高模塊獨立性的一個準(zhǔn)則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合
50.可以在C語言中用做用戶標(biāo)識符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
51.關(guān)系代數(shù)運(yùn)算是以______為基礎(chǔ)的運(yùn)算。
A.關(guān)系運(yùn)算B.謂詞運(yùn)算C.集合運(yùn)算D.代數(shù)運(yùn)算
52.有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>A)||(m=a<B);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是
A.0,0B.0,1C.1,0D.1,1
53.要求以下程序的功能是計算main(){intn;floats;s=1.0;for(n=10;n>1;n--)s=s+1/n;pfintf("%6.4f\n",s);}程序運(yùn)行后輸出結(jié)果錯誤,導(dǎo)致錯誤結(jié)果的程序行是
A.s=1.0;
B.for(n=10;n>1;n--)
C.s=s+1/n;
D.printf("%6.4f\n",8);
54.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指針變量p的地址
B.*p表示的是變量a的值,而不是變量a的地址
C.*p表示的是指針變量p的值
D.*p只能用來說明p是一個指針變量
55.有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,B);}程序運(yùn)行后的輸出結(jié)果是()
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
56.在進(jìn)行單元測試時,常用的方法是
A.采用白盒測試,輔之以黑盒測試B.采用黑盒測試,輔之以白盒測試C.只使用白盒測試D.只使用黑盒測試
57.若有以下定義:
structlink
{intdata;
structlink*next;
}a,b,c,*p,*q;
且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):
指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:
A.a.next=c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p->next;
D.(*p).next=q;(*q).next=&b;
58.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。
A.b=double(b);B.++b;C.a=a++=5;D.a=double(b);
59.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結(jié)果是()。structst{chara[15];intb;doublec;};printf("%d",sizcof(structst));
A.15B.8C.25D.2
60.在表示C語言的整型變量時,表示“無符號整型”的符號是()
A.unsignedintB.unsignedshortC.longintD.unsignedlong
四、選擇題(20題)61.在下述程序中,判斷條件“i>j”共執(zhí)行的次數(shù)是
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d",s);
break;
}s+=i;
}
}
A.4B.7
C.5D.6
62.
有以下程序
#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]);
}
程序的運(yùn)行結(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,
63.設(shè)a=l,b=2,c=3,d=4,則表達(dá)式:“a<b?a:b<b?a:c<d?a:d”的結(jié)果為()。A.4B.3C.2D.1
64.有以下程序:
程序輸出結(jié)果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯
65.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
66.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
67.
68.表達(dá)式a+=a-=a=9的值是()。
A.0B.-9C.18D.9
69.有兩個關(guān)系R和T如下:
則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并
70.有以下程序(注:字符a的ASCIl碼值為97)
#include<stdio.h>
main()
{char*s={"abc")
do
{printf("%d",*S%10");++S;}
while(*s);
}
隉序運(yùn)行后的輸出結(jié)果是()。
A.abcB.789C.7890D.979899
71.以下定義數(shù)組的語句中錯誤的是()。
A.intnum[][3]={{1,2},3,4,5,6};
B.intnUITI[2][4]={{1,2},{3,4},{5,6}};
C.intnum[]={1,2,3,4,5,6};
D.intnum[][4]={1,2,3,4,5,6’};
72.下列函數(shù)的功能是
set(s,t)
{char*s,*t;
while((*s)&&(*t)&&(*t++==*s++));
return(*s-*t);
}A.A.求字符串的長度
B.比較兩字符串的大小
C.將字符串s復(fù)制到字符串t中
D.將字符串s連接到字符串t后
73.
74.已知inta=15,執(zhí)行語句a=a<<2以后,變量a的值是()。
A)20B)40
C)60D)80
75.
76.以下程序的運(yùn)行結(jié)果是()。
#include<stdio.h>
main{inta=1,b=2,c=3,x;
x=(a^b)&c;printf("%d\n",x);}
A.0B.1C.2D.3
77.以下選項中,合法的是()。
A.charstr3[]={d,e,b,u,g,\0};
B.charstr4;str4="helloworld";
C.charname[10];name="china";
D.charstrl[5]="pass",str2[6];str2=strl;
78.
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m
各位上數(shù)字的平方和。例如,輸入498,則輸出應(yīng)該是161。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}
六、程序設(shè)計題(1題)82.M名學(xué)生的成績已在主函數(shù)中放入一個帶頭結(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的帶頭結(jié)點。請編寫函數(shù)proc(),它的功能是:找出學(xué)生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.D
2.B
3.D
4.B宏定義在編譯程序時做了一個簡單的替換,所以B選項正確。故本題答案為B選項。
5.B本題考查變量賦值基本概念。在聲明一個變量后,如果未顯式的對其進(jìn)行賦值,則它的值是一個隨機(jī)值。
6.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。
7.D解析:本題考查幾個循環(huán)語句的關(guān)系。①do…while語句、while語句、for語句所實現(xiàn)的循環(huán)可以相互替代;②do…while語句和while語句的區(qū)別是do…while語句至少執(zhí)行一次。
8.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應(yīng)該是加上'a',選項A和C左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。
9.B
10.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
11.D程序定義數(shù)組a,使用6個元素對其初始化,接著以寫二進(jìn)制方式打開文件d.dat。調(diào)用fwrite函數(shù)將a的6個元素逆序(654321)寫入文件,接著調(diào)用rewind函數(shù),將文件指針移動到文件開始位置。調(diào)用fread函數(shù)讀入3個整數(shù),逐個存放到a開始下標(biāo)為3的3個位置,即a[3]=6,a[4]=5,a[5]=4,關(guān)閉文件。再次調(diào)用for循環(huán)輸出a,結(jié)果為:1,2,3,6,5,4,。本題答案為D選項。
12.Bcontinue語句的作用是跳過循環(huán)體中剩余的語句而進(jìn)行下一次循環(huán),所以A選項錯誤。break語句的作用是終止正在執(zhí)行的switch語句體,跳出switch語句體或者強(qiáng)制終止當(dāng)前循環(huán),從當(dāng)前執(zhí)行的循環(huán)中跳出,所以C、D選項錯誤。故本題答案為B選項。
13.A
14.D
15.B
16.Dfun函數(shù)的功能是對數(shù)組a[]的元素從大到小進(jìn)行排序。
17.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進(jìn)行賦值后,然后返回變量a。
18.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達(dá)式(x+y)/2的值,即:(5+6)/2,因為參數(shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時8和5也不相等,所以返回值為6,因此,選項B是正確的。
19.D本題考查"drhile循環(huán)。第一次循環(huán),y=y-1,y=2,循環(huán)條件成立,x=1,X++后值為1,x自加變成2,進(jìn)入循環(huán),a=a+1=1,判斷if語句條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),x=2,y-1=1,循環(huán)條件成立,進(jìn)入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<X成立,執(zhí)行break語句,退出循環(huán)。結(jié)果為D。
20.A
21.數(shù)據(jù)操作數(shù)據(jù)操作解析:數(shù)據(jù)模型就是現(xiàn)實世界的反映,數(shù)據(jù)模型所描述的內(nèi)容有3個部分,它們是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作與數(shù)據(jù)約束。
22.b=i+1
23.98
24.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值.若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值.若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句;i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
25.本題主要考查for循環(huán)語句的使用以及靜態(tài)局部變量的特點。
26.2424解析:本題程序定義了一維數(shù)組p,有七個數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2=1)的值為真時,執(zhí)行語句j+=p[i++];,如:當(dāng)i=0時,i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2=1)的值為真,所以接個表達(dá)式(i<7&&p[i]%2=1的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類推可以得出答案24。
27.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個十進(jìn)制整數(shù),但只接受第一和第三個到函數(shù)的第二和第三個參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。
28.503503解析:先判斷表達(dá)式a<b為假,不執(zhí)行t=a,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。再判斷表達(dá)式a<C,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。
29.1a61a6解析:對于指針變量的運(yùn)算,就是對地址的運(yùn)算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進(jìn)制輸出的。
30.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個給定模塊的模塊個數(shù)稱為扇入,一個模塊直接調(diào)用的其他模塊個數(shù)稱為扇出。
31.1616解析:滿二叉樹的葉子結(jié)點都在最后一層,即第4層,且第4層的結(jié)點達(dá)到最大數(shù),即25-1=16。
32.52
33.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為\'a\',執(zhí)行一次循環(huán)后變?yōu)閈'c\',之后再變成\'e\',當(dāng)其變?yōu)閈'g\'時,循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個字符。表達(dá)式'i-\'a\'+\ue008\'A\'\ue009'即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。
34.max=12min=2
35.11解析:(int)(x/5)=3,3%2=1。
36.261261解析:在控制格式符中“o”代表的是將數(shù)據(jù)按八進(jìn)制數(shù)輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261。
37.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(*指針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。
38.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。
39.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。
40.00解析:關(guān)系運(yùn)算符“>”的結(jié)合方式是從左向右的,所以在本題中的表達(dá)式a>b>c;從左向右開始計算,a>b的結(jié)果為“1”,接著1和c比較假,該空格處應(yīng)該填0。
41.A解析:在有“/”運(yùn)算符的表達(dá)式中,要避免兩個操作數(shù)都是整數(shù)的情況。本題選項A)中的'1/3'和'1/2'的值都為0,使選項A)的表達(dá)式值為0,但事實上代數(shù)式的值并不為0,所以選項A)錯誤。
42.B解析:將E-R圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式是數(shù)據(jù)庫邏輯設(shè)計的主要工作。從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體和聯(lián)系都可以表示成關(guān)系。
43.B解析:C語言函數(shù)中的參數(shù)傳遞方式有傳值與傳址兩種方式,傳值方式是指將實參的值復(fù)制一份傳遞給形參,而傳址方式是指將實參的變量地址傳遞給形參,也就是實參的引用。
44.C本題考查C語言轉(zhuǎn)義字符的含義。我們歸類了常用的轉(zhuǎn)義字符及其含義,如下,根據(jù)這些不難選出正確答案
轉(zhuǎn)義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進(jìn)制數(shù)所代表的字符、\xhh1~2位十六進(jìn)制數(shù)所代表的字符。
45.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)正確。
46.D
47.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是合法的字符串常量,而選B)是一個字符常量。
48.D解析:C語言規(guī)定,所有字符常量都可以化為整型常量來處理,因而字符常量也可以參與算術(shù)運(yùn)算。注:字符常量參與算術(shù)運(yùn)算時,其實是使用其對應(yīng)的ASCII碼值進(jìn)行計算。本題中,'a'對應(yīng)的ASCII碼值是97。題中雖然沒有給'6'和'0'的ASCII碼值,但應(yīng)該知道'6'-'0'是將字符'6'轉(zhuǎn)換成整數(shù)6的表達(dá)式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型輸出分別是g和d。
49.C耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量,耦合度越高,則模塊的獨立性越差。內(nèi)聚反映一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度。高內(nèi)聚是指一個軟件模塊是由相關(guān)性很強(qiáng)的代碼組成,只負(fù)責(zé)一項任務(wù),也就是常說的單一責(zé)任原則。低耦合是指不同軟件模塊之間通過穩(wěn)定的接口交互,而不需要關(guān)心模塊內(nèi)部的實現(xiàn)。
50.B解析:C語言規(guī)定,標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識符。選項A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。
51.C解析:關(guān)系代數(shù)是以集合代數(shù)為基礎(chǔ)女發(fā)展起來的,它是以關(guān)系代數(shù)作為運(yùn)算對象的一組高級運(yùn)算的集合。它的基本操作是并、交、差、笛卡爾積,另外還包括針對數(shù)據(jù)庫環(huán)境專門設(shè)計的操作,包括對關(guān)系進(jìn)行垂直分割(投影)、水平分割(選擇)、關(guān)系的結(jié)合(連接)等。
52.C解析:本題考查“邏輯或”運(yùn)算的特例。本題中執(zhí)行語句k=(n=b>a)||(m=a<b)時,首先計算表達(dá)式(n=b>a)||(m=a<b)的值,因b=2,a=1,所以b>a成立,即得n=1,故表達(dá)式(n=b>a)||(m=a<b)的值為真,不再執(zhí)行表達(dá)式m=a<b,故執(zhí)行完表達(dá)式k=(n=b2>a)||(m=a<b)后,n=1、m=0、k=1。
53.C解析:程序中由于n為整型,所以1/n的結(jié)果始終為0,故程序最后輸出的結(jié)果為0,其結(jié)果錯誤,原因為在表達(dá)式1/n中1和n均為整型,所以應(yīng)該將1改為1.0,這樣表達(dá)式1.0/n的值不為0,為該數(shù)學(xué)表達(dá)式的值,因此我們可以知道導(dǎo)致程序運(yùn)行后輸出結(jié)果錯誤的行為s=s+1/n。
54.B在本題中,題目告訴我們程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,要求我們找出其錯誤的原因,這是一類錯誤原因分析題。
在本題程序中,首先定義兩個整型指針變量p和q,然后定義兩個整型變量a和b,讓指針變量p執(zhí)行變量a,接著輸出提示語句“請輸入a”,執(zhí)行格式輸入語句scanf,由于輸入語句的輸入列表中給出的應(yīng)該是輸入的地址,即存放輸入數(shù)據(jù)的存儲地址,但在本題的輸入語句中給出的是*p,這表示一個數(shù)值,而非地址。因此,無法完成數(shù)據(jù)的輸入,若要完成輸入,可以將*p改為p。
根據(jù)上面的分析,我們可以知道本題程序出錯的原因是*p表示的是變量a的值,而不是變量a的地址。因此本題正確答案選B。
55.A
56.A解析:單元測試的步驟如下:
①理解需求和設(shè)計。清楚被測試模塊在整個軟件中所處的位置。一個原則是:好的設(shè)計,各模塊只負(fù)責(zé)完成自己的事情,層次與分工明確。單元測試時,可以不測試不屬于被測模塊所負(fù)責(zé)的功能,以減少測試用例的冗余。
②概覽源代碼。瀏覽源代碼,初步檢查源代碼的編碼風(fēng)格與規(guī)范,大致估算測試工作量,確定模塊的復(fù)雜程度,初步制定測試的優(yōu)先級等。
③精讀源代碼。認(rèn)真閱讀和分析代碼,理解代碼的業(yè)務(wù)邏輯,檢查代碼與設(shè)計是否相符,仔細(xì)研究邏輯復(fù)雜的模塊,可采用一些檢查列表來檢查程序可能會出現(xiàn)的問題。
④設(shè)計測試用例。綜合運(yùn)用白盒測試方法(并結(jié)合黑盒測試方法)設(shè)計測試用例,包括功能測試、性能測試等,要達(dá)到一定的測試覆蓋率。本題正確答案為選項A。
⑤搭建單元測試環(huán)境。這個階段主要就是寫樁模塊和驅(qū)動模塊,然后驅(qū)動模塊想辦法獲取被測試模塊對數(shù)據(jù)的處理結(jié)果,并判定返回的實際結(jié)果與測試用例的預(yù)
期結(jié)果是否一致,通過測試框架來記錄執(zhí)行的結(jié)果,對于出現(xiàn)的錯誤,還需統(tǒng)計錯誤的信息,供執(zhí)行完之后分析。
⑥執(zhí)行測試。運(yùn)行寫好的驅(qū)動模塊完成對被測試模塊的測試。
⑦補(bǔ)充和完善測試用例。在測試過程中不斷補(bǔ)充測試用例,直到滿足要求為止。
⑧分析結(jié)果,給出評價。根據(jù)測試的結(jié)果分析、查找錯誤的原因,并找到解決的辦法。測試結(jié)束之后,根據(jù)測試過程的數(shù)據(jù)統(tǒng)計,給出被測試對象評價。
57.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實現(xiàn),即一個結(jié)點中應(yīng)包含一個指針變量,用它存放下一結(jié)點的地址。
58.B解析:要解答此題只要知道兩個知識點:①在C語言中規(guī)定進(jìn)行強(qiáng)制類型轉(zhuǎn)換的格式是:(double)變量名;②在C語言中不允許給表達(dá)式賦值。
59.C解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個成員相互獨立。題中intb占2個字節(jié),chara[15]占15個字節(jié),doublec占8個字節(jié),所以共25個字節(jié)。
60.A
61.D本題主要要求我們求判斷條件“i>j”執(zhí)行的次數(shù)。在本題的程序中,首先定義了四個整型變量,并分別賦初值,然后執(zhí)行for循環(huán)結(jié)構(gòu),該循環(huán)結(jié)構(gòu)中都是缺省語句,那么如果循環(huán)體中沒有break語句,程序?qū)⒚媾R死循環(huán),從后面的程序中我們可以看出,程序中存在一條break語句。
第一次循環(huán)時,變量k的值為2,變量i的值被改變?yōu)?,而此時變量j的值為10,執(zhí)行if(i>j)語句,結(jié)果為假,不執(zhí)行break語句,然后改變變量s的值,一次循環(huán)結(jié)束。
通過對這次循環(huán)的分析,我們發(fā)現(xiàn)變量k的值一直沒被改變,而變量i值的改變與變量k有關(guān),且每循環(huán)一次增加2,那么變量i的改變軌跡
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度兒童科學(xué)樂園陳列館設(shè)計及施工合同8篇
- 2025年短視頻營銷合作宣傳合同范本2篇
- 2025年度金融科技產(chǎn)品代理銷售合同范本4篇
- 二零二五版科技研發(fā)合伙研究合同3篇
- 2025年度催款函編制規(guī)范合同參考范本3篇
- 2025年度房產(chǎn)證電子證照轉(zhuǎn)換及打印服務(wù)合同3篇
- 2025年度豪華旅游巴士租賃及維護(hù)管理合同4篇
- 二零二五年康師傅飲料產(chǎn)品倉儲調(diào)撥與庫存共享合同3篇
- 2025版事業(yè)單位聘用合同糾紛調(diào)解處理辦法及協(xié)議3篇
- 二零二五年度生物制藥存貨質(zhì)押擔(dān)保與臨床試驗合同4篇
- 《機(jī)器人驅(qū)動與運(yùn)動控制》全套教學(xué)課件
- 電子商務(wù)平臺技術(shù)服務(wù)合同范本1
- 期末 (試題) -2024-2025學(xué)年川教版(三起)英語四年級上冊
- 2024年國家公務(wù)員考試公共基礎(chǔ)知識復(fù)習(xí)題庫及答案(共三套)
- 《社會工作實務(wù)》全冊配套完整課件3
- 單位違反會風(fēng)會書檢討書
- 2024年4月自考00832英語詞匯學(xué)試題
- 《哪吒之魔童降世》中的哪吒形象分析
- 信息化運(yùn)維服務(wù)信息化運(yùn)維方案
- 汽車修理廠員工守則
- 公安交通管理行政處罰決定書式樣
評論
0/150
提交評論