版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年河南省平頂山市全國計算機(jī)等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.在供應(yīng)關(guān)系中,實體供應(yīng)商和實體零件之間的聯(lián)系是()。
A.多對多B.一對一C.多對一D.一對多
2.設(shè)有定義的語句:“charc1=92,c2=92;”,則以下表達(dá)式中的值為零的是()。
A.c1^c2B.c1&c2C.~c2D.c1|c2
3.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
4.若有以下定義和語句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
則輸出結(jié)果是A.A.55B.105C.107D.58
5.下列程序的輸出結(jié)果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}
A.3B.4C.5D.6
6.
7.根據(jù)二叉樹的定義可知道二叉樹共有種不同形態(tài)的二叉樹()。
A.3B.4C.5D.7
8.
9.對線性表進(jìn)行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯Γ搓P(guān)鍵碼的檢索頻率排好序
10.以下關(guān)于簡單程序設(shè)計的步驟和順序的說法中正確的是()。
A.確定算法后,整理并寫出文檔,最后進(jìn)行編碼和上機(jī)調(diào)試
B.首先確定數(shù)據(jù)結(jié)構(gòu),然后確定算法,再編碼,并上機(jī)調(diào)試,最后整理文檔
C.先編碼和上機(jī)調(diào)試,在編碼過程中確定算法和數(shù)據(jù)結(jié)構(gòu),最后整理文檔
D.先寫好文檔,再根據(jù)文檔進(jìn)行編碼和上機(jī)調(diào)試,最后確定算法和數(shù)據(jù)結(jié)構(gòu)
11.下列描述中不正確的是()。
A.字符型數(shù)組中可能存放字符串。
B.可以對字符型數(shù)組進(jìn)行整體輸入、輸出。
C.可以對整型數(shù)組進(jìn)行整體輸入、輸出。
D.不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進(jìn)行整體賦值。
12.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個位置。
A.3B.5C.7D.9
13.下列判斷正確的是()。
A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
14.第
17
題
若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價于表達(dá)式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
15.有以下程序:#include<stdio.h>structS{inta,b;}data[2]=110,100,20,200};main(){structSp=data[1];printf(“%d\n”,++(p.a));}程序的運行結(jié)果是()。
A.10B.11C.20D.21
16.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()
A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值
17.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的輸出結(jié)果是()。A.xyyxB.yyyyC.yyxxD.yxyx
18.設(shè)有以下語句
charx=3,y=6,z;
z=x^y<<2;
則z的二進(jìn)制值是
A.00010100B.00011011C.00011100D.00011000
19.
20.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64
二、2.填空題(20題)21.以下程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fp;inta[10]={1,2,3,0,0},i;
fp=fopen("d2.dat","wb");
fwtite(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++)printf("%d",a[i]);
}
22.在E-R圖中,矩形表示【】。
23.以下程序的輸出結(jié)果是()。
#include<stdio.h>
fun()
{inta=0;
a+=3;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)
fun();
printf("\n");
}
24.結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。
25.當(dāng)運行以下程序時,輸入abcd,程序的輸出結(jié)果是:()。
insert(charstr[])
{inti;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",str);insert(str);
}
26.一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,則實體“宿舍”與實體“學(xué)生”的聯(lián)系屬于()的聯(lián)系。
27.媒體在計算機(jī)領(lǐng)域中的含義,是指存儲信息的實體和【】。
28.子程序通常分為兩類:【】和函數(shù),前者是命令的抽象,后者是為了求值。
29.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。
【】t[20]
30.以下程序的功能是從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。請?zhí)羁铡?/p>
main()
{charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;
}
str[i]=【】;
sptr=str1
while(*sptr)putchar(*sptr【】);
}
31.軟件的【】設(shè)計又稱為總體結(jié)構(gòu)設(shè)計,其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
32.以下程序中函數(shù)f的功能是在數(shù)組x的n個數(shù)(假定n個數(shù)互不相同)中找出最大最小數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。請?zhí)羁铡?/p>
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
33.以下程序給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;P[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
34.在一棵二叉樹上第6層的結(jié)點個數(shù)最多是【】。
35.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
36.下列程序的輸出結(jié)果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
37.數(shù)據(jù)庫設(shè)計分為以下6個設(shè)計階段:需求分析階段、______、邏輯設(shè)計階段、物理設(shè)計階段、實施階段、運行和維護(hù)階段。
38.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
39.以下程序運行后的輸出結(jié)果是【】。
main()
{intX=10,y=20,t=0;
if(X==y)t=x;x=y;y=t;
printf("%d,%d\n",x,y);
}
40.對于長度為n的順序存儲的線性表,當(dāng)隨機(jī)插入和刪除一個元素時,需平均移動元素的個數(shù)為【】。
三、1.選擇題(20題)41.下列條件語句中,功能與其他語句不同的是
A.if(a)printf("%d\n",x);elseprinff("%d\n",y);
B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C.fi(a!=0)prinff("%d\n"x);elseprintf("%d\n",y);
D.if(a==0)prinff("%d\n",x);elseprintf("%d\n",y);
42.以下不是面向?qū)ο笏枷胫械闹饕卣鞯氖?/p>
A.多態(tài)B.繼承C.封裝D.垃圾回收
43.下列程序段的輸出結(jié)果為()。#include<stdio.h>main(){staticchara[]="language";char*p;p=a;for(p=a;p<a+8;p+=2)putchar(*p);}
A.languageB.lnugC.有語法錯誤D.lang
44.下列程序的輸出結(jié)果是_____。main(){inti;for(i='A';i<'I';i++)printf("%c",i+32);printf("\n");}
A.編譯不通過,無輸出B.acegC.acegiD.abcdefghi
45.為了提高測試的效率,應(yīng)該()。
A.隨機(jī)選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.集中對付那些錯誤群集的程序
46.請選擇以下語句的輸出結(jié)果()。printf("%d\n",strlen("\t\"\065\xff\n"));
A.5B.14C.8D.輸出項不合法,無正常輸出
47.在結(jié)構(gòu)化方法中,軟件功能分解屬于軟件開發(fā)中的______階段。
A.詳細(xì)設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試
48.設(shè)有以下定義和語句:inta[3][2]={1,2,3,4,5,6},*p[3];p[0]=a[1];則.(P[0]+1)所代表的數(shù)組元素是()。
A.a[0][1]B.a[1][0]C.s[1][1]D.a[1][2]
49.下列程序的運行結(jié)果為______。#defineMSDOS#ifdefMSDOS#defineINTEGERSIZE32#else#defineINTEGERSIZE16#endifmain(){printf("integer_size=%d\n",INTEGER_SIZE);}
A.integersize=32
B.integer_size=16
C.integersize=32,integer_size=16
D.錯誤
50.有以下程序段
charch;intk;
ch=′a′;k=12;
printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
51.下面不屬于軟件設(shè)計原則的是()。
A.抽象B.模塊化C.自底向上D.信息隱蔽
52.下面這個程序段的時間復(fù)雜度是()。for(i=1;i<n;i++){y=y+3;for(j=0;j<=(2*n);j++)x++;}
A.O(log2n)
B.O(n)
C.O(nlog2n)
D.O(n2)
53.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有下列if語句
if(a<B)
if(c==D)y=0;
elsey=1;
該語句所表示的含義是()。
A.
B.
C.
D.
54.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));
A.0B.1C.真D.假
55.以下正確的程序段是
A.cgarstr[20];scanf("%s",&str);
B.char*p;scanf("%s",p);
C.charstr[20];scanf("%s",&str[2])
D.charstr[20],*p=str;scanf("%s",p[2]);
56.設(shè)有如下說明typedefstruct{intn;charc;doubleX;}STD;則以下選項中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是
A.STDtt[2]={{1,'A',62},{2,'B',75}};
B.STDtt[2]={1,"A",62,2,"B",75};
C.structtt[2]={{1,'A'),{2,'B'}};
D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};
57.下列程序執(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);}}
main()
{inti=0;func1(i);printf("\n");}
A.helloB.helC.hloD.m
58.下列敘述錯誤的是()。
A.函數(shù)名是屬于用戶標(biāo)識符,需符合C語言對標(biāo)識符的規(guī)定
B.形參只能是變最
C.為保證程序的正常運行,函數(shù)中定義的變量不能與其他函數(shù)中的變量同名
D.函數(shù)中定義的變量可以與其他函數(shù)中的變量同名
59.在16位編譯系統(tǒng)上,若有定義inta[]={10,20,30},*p=&a;,當(dāng)執(zhí)行p++;后,下列說法錯誤的是A.p向高地址移了一個字節(jié)B.p向高地址移了一個存儲單元C.p向高地址移了兩個字節(jié)D.p與a+1等價
60.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
四、選擇題(20題)61.有以下程序:
voidmain()
{
inti=10,j=1;
printf("%d,%d\n",2*i--,++j*2);
}
執(zhí)行后輸出的結(jié)果是()。
A)20,4B)10,2
C)20,1D)10,4
62.
63.C語言源程序名的后綴是()。A.CB.exeC.obiD.ep
64.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}
A.11B.12C.13D.15
65.
66.設(shè)有charstr[10],下列語句正確的是
A.scanf("%s",&str);B.printf("%c",str);
C.printf("%s",str[0]);D.printf("%s",str);
67.以下敘述中正確的是()。
A.c語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行
B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束
D.main作為用戶標(biāo)識符,用以命名任意一個函數(shù)作為主函數(shù)
68.某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是A.10B.8C.6D.4
69.以下程序的輸出結(jié)果是()。
main()
{inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);
}
A.18
B.19
C.20
D.21
70.不能實現(xiàn)函數(shù)之間數(shù)據(jù)傳遞的是()。
A.全局變量B.局部變量C.函數(shù)接口D.函數(shù)返回值
71.有以下程序
72.
73.
74.有以下程序
main()
{chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’\0’};
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\b",i,j);
}
程序運行后的輸出結(jié)果是
A.9,9B.8,9C.1,8D.9,8
75.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1127B.1212C.1111D.117
76.(58)在數(shù)據(jù)流圖(DFD)中,帶有名字的箭頭表示______。
A.制程序的執(zhí)行順序
B.模塊之間的調(diào)用關(guān)系
C.數(shù)據(jù)的流向
D.程序的組成成分
77.
有以下程序段
intj;floaty;charname[50]:
scanf("%2d%f%s",&i,&.y,name):
當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。
A.55566.0B.566.0C.7777.0D.566777.0
78.有以下程序:
#include<stdio.h>,
main()
{intS;
scanf("%d",&s);
while(s>O)
{switch(s)
{casel:printf("%d",s+5);
case2:printf("%d",s+4);break;
case3:printf("%d",s+3);
default:("%d",s+1);break;
}
scanf("%d",&s);
}
}
運行時,若輸入123450<回車>,由輸出結(jié)果是()。
A.6566456B.66656C.66666D.6666656
79.(75)下列不屬于結(jié)構(gòu)化分析的常用工具的是()
A.數(shù)據(jù)流圖
B.數(shù)據(jù)字典
C.判定樹
D.PAD圖
80.有以下程序#include<stdi0.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(”%d\n”,m);}intf(intx){returnx*2;}程序運行后的輸出結(jié)果是()A.8B.2C.4D.1
五、程序改錯題(1題)81.在主函數(shù)中從鍵盤輸入若干個數(shù)放人數(shù)組中,用0結(jié)束輸入并放在最后一個元素中。下列給定程序中,函數(shù)proc()的功能是計算數(shù)組元素中值為負(fù)數(shù)的平均值(不包括0)。例如,數(shù)組中元素的值為78、-65、-15、35、-45、0,則程序的運行結(jié)果為-41.666667。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫fun()函數(shù),其功能是:計算并輸出3~m所有素數(shù)的平方根之和。例如,若主函數(shù)從鍵盤給m輸入50后,則輸出為s=63.665791。注意:m的值要大于2但不大于l00。部分源程序給出如下。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.A一家供應(yīng)商可提供多種零件,一種零件也可被多家供應(yīng)商提供。所以實體供應(yīng)商和實體零件之間的聯(lián)系是多對多。本題答案為A選項。
2.A當(dāng)值相同時按位異或,則為0,按位或與按位與時仍不變,負(fù)數(shù)也為非0。
3.BC語言是一種結(jié)構(gòu)化程序設(shè)計語言。結(jié)構(gòu)化程序設(shè)計是以模塊化設(shè)計為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨立,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護(hù)性。
4.A
5.B解析:若有以下定義:inta[3][4],i,j;且當(dāng)0<=i<3,0<=j<4,則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。
6.D
7.B
8.B
9.A解析:對線性表進(jìn)行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
10.B\n選項C和D可直接排除,程序是數(shù)據(jù)結(jié)構(gòu)和算法的組合體,所以是先選擇數(shù)據(jù)結(jié)構(gòu),然后繼而選擇相對應(yīng)的算法,編碼并上機(jī)調(diào)試,最后整理文檔。
\n
11.C
12.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
13.Da=“ABCD”書寫錯誤,因為“=”左邊不能出現(xiàn)常量;數(shù)組名S是代表S數(shù)組首地址常量,而不是變量;字符串只有在定義時維數(shù)可以省略。
14.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時表達(dá)式2的值就作為整個條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個條件表達(dá)式的值。并且注意++、--的用法。
15.D聲明data是結(jié)構(gòu)體S的數(shù)組,初始化data[0].a=10,data[0].b=100,data[l].a=20,data[1].b=200。主函數(shù)中“p=data[1];”,即p.a=data[1].a,p.b=data[1].b,執(zhí)行語句“printf(“%d\\n”,++(p.a));”。輸出時,p.a先增1再輸出,p.a=data[1].a=20,先增1等于21。故本題答案為D選項。
16.A
17.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結(jié)束循環(huán)。所以B正確。
18.B本題主要考查位運算?!鞍次划惢颉边\算(^)是雙目運算符,其功能是把參與運算的兩數(shù)各對應(yīng)的二進(jìn)制位相異或,它在操作時,兩對應(yīng)位相同結(jié)果為0,不同則為1?!白笠啤边\算(<<)的功能是把“<<”左邊的運算數(shù)的各二進(jìn)制位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補(bǔ)0。左移時,若左端移出的部分不包含有效二進(jìn)制數(shù)1,則每左移一位,相當(dāng)于移位對象乘以2。
本題中,有三個字符型的變量x,y,z,其中x和y的值分別為3和6。先轉(zhuǎn)換為二進(jìn)制數(shù)分別為00000011和00000110。本題中需要注意的是邏輯左移運算符的優(yōu)先級比按位異或運算符的優(yōu)先級高,因此,先將y進(jìn)行運算邏輯左移2位操作,得到的結(jié)果為00011000,然后進(jìn)行按位異或運算,得到最后的結(jié)果是00011011。本題正確的答案選B。
19.C
20.C當(dāng)if執(zhí)行到第一個滿足(i*i>=20)(i*i<=100)這個條件的i出現(xiàn)時,通過break語句跳出循環(huán),執(zhí)行下面的prinlf語句。
21.12300123001,2,3,0,0,1,2,3,0,0,解析:本題考查文件讀寫函數(shù)fread和fwrite的用法。fwrite函數(shù)將數(shù)組a的前5個元素輸出到文件fp中兩次,共10個字節(jié),再調(diào)用fread函數(shù)從文件fp中讀取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)閧1,2,3,0,0,1,2,3,0,0},最后的輸出結(jié)果為'1,2,3,0,0,1,2,3,0,0,'。
22.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。
23.33333333解析:本題考查for循環(huán),for(cc=1;cc<=4;cc++)表示循環(huán)4次,a+=3表示每次a的值增加3,但是子函數(shù)中沒有將變量a定義為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都不能保存,這樣在下一次調(diào)用子函數(shù)時,a的初值仍是0,所以不管調(diào)用多少次,子函數(shù)輸出始終是3。
24.模塊化模塊化
25.a*b*c*d*a*b*c*d*解析:字符處理函數(shù)strlen()測試字符串常量的長度,不包括‘\\0’在內(nèi)。因此,函數(shù)insert()實現(xiàn)了將字符數(shù)組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結(jié)果是a*b*c*d*。
26.一對多一對多解析:在現(xiàn)實世界中事物間的關(guān)聯(lián)稱為聯(lián)系。在概念世界中聯(lián)系反映了實體集間的一定關(guān)系。兩個實體集間的聯(lián)系實際上是實體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,分別是一對一,一對多和多對多,依據(jù)題意,一名學(xué)生只能住一間宿舍,一間宿舍可住多名學(xué)生,所以實體“宿舍”與實體“學(xué)生”的聯(lián)系屬于一對多的聯(lián)系。
27.載體載體
28.過程過程
29.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
30.\0'++
31.概要概要
32.x[0]x[0]x[0],x[0]解析:函數(shù)f()通過for循環(huán)逐個比較數(shù)組x中的元素,循環(huán)結(jié)束后,p0和p1分別表示最大值和最小值在數(shù)組中的下標(biāo)位置,然后按照題意將最大值x[p0]和數(shù)組的最后一個元素x[n-1]交換位置,再將最小值x[p1]和第一個元素(x[0])進(jìn)行交換,所以空白處應(yīng)該填入x[0]。
33.3*sizeof(double)或243*sizeof(double)或24解析:觀察程序可知,本題要求用malloc函數(shù)分配三個double型的動態(tài)內(nèi)存單元。
34.3232解析:根據(jù)二叉樹的性質(zhì),在二叉樹的第k層上,最多有2的k-1次方個結(jié)點。所以,第6層的結(jié)點數(shù)最多為32。
35.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。
解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a(bǔ)、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進(jìn)行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
37.概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)概念設(shè)計階段(數(shù)據(jù)庫概念設(shè)計階段)
38.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
39.20020,0解析:在主函數(shù)中首先定義了3個整型變量x、y、t,并分別給它們賦初值為10、20、0,接著執(zhí)行汀語句,在if后面括號內(nèi)的條件表達(dá)式中,條件x==y即10==20不成立,則不執(zhí)行其后的語句t=x,然后退出if語句,順序執(zhí)行語句x=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x、y的值為20和0。
40.n/2n/2解析:刪除一個元素,平均移動的元素個數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動元素個數(shù)為n/2。
41.D解析:本題考核的知識點是if語句的用法。選項A、選項B和選項C都是在a的值為。的時候輸出y,a不為。的時候輸出x,而選項D是在a為0的時候輸出x,a不為0的時候輸出y,所以,4個選項中選項D符合題意。
42.D解析:面向?qū)ο笏枷胫械娜齻€主要特征是:封裝性、繼承性和多態(tài)性。
43.B解析:本程序首先定義了靜態(tài)字符數(shù)組a,然后將指針p指向數(shù)組a的首地址。
第1次for循環(huán),p=a,p指向數(shù)組的第1個元素,*p是取指針p所指地址的內(nèi)容,輸出1;第2次for循環(huán),p=p+2,則p指向數(shù)組的第3個元素,*p是取指針p所指地址的內(nèi)容,輸出n;第3次for循環(huán),p=p+2,則p指向數(shù)組的第5個元素,*p是取指針p所指地址的內(nèi)容,輸出u;第4次for循環(huán),p=p+2,則p指向數(shù)組的第7個元素,*p是取指針p所指地址的內(nèi)容,輸出g,結(jié)束循環(huán)。
44.B
45.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。
(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細(xì)的測試計劃,了解測試項目的業(yè)務(wù)需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機(jī)選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。
46.A解析:本題考查用strlen函數(shù)計算字符串長度的方法。該字符串中包含的字符是:'\\t'(跳格符)、'\\''(雙引號)、'\\065'(ASCII值為八進(jìn)制065,也即十進(jìn)制為53的字符)、'\\xff'(ASCII值為十六進(jìn)制ff,也即十進(jìn)制為255的字符)、'\\n'(換行符)。
47.C解析:總體設(shè)計過程通常由兩個主要階段組成:系統(tǒng)設(shè)計,確定系統(tǒng)的具體實現(xiàn)方案;結(jié)構(gòu)設(shè)計,確定軟件,結(jié)構(gòu)。為確定軟件結(jié)構(gòu),首先需要從實現(xiàn)角度把復(fù)雜的功能進(jìn)一步分解。分析員結(jié)合算法描述仔細(xì)分析數(shù)據(jù)流圖中的每個處理,如果一個處理的功能過分復(fù)雜,必須把它的功能適當(dāng)?shù)胤纸獬梢幌盗斜容^簡單的功能。
48.C解析:*p[3]是指針數(shù)組,它由3個指向整型數(shù)據(jù)的指針元素組成,p[0]=a[1]是將a數(shù)組第一行的首地址賦給第0個指針元素,p[0]+1表示a[1]+1即a[1][1]的地址,所以*(p[0]+1)表示a[1][1]。
49.A
50.D解析:考查printf函數(shù)的相關(guān)知識。如果要一次進(jìn)行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和C)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號的十進(jìn)制整型數(shù)輸出,所以第一個輸出語句輸出的結(jié)果為a,97;第二個輸出語句輸出的結(jié)果為k=12。所以選項D)為正確答案。
51.C解析:軟件設(shè)計遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計中應(yīng)該遵循的基本原理和與軟件設(shè)計有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。
52.D解析:語句的頻度指的是該語句重復(fù)執(zhí)行的次數(shù)。一個算法中所有語句的頻度之和構(gòu)成了該算法的運行時間。在本例算法中,語句①的頻度是n-1,語句②的頻度是(n-1)(2n+1)-2n2-n-1。則該程序段的時間復(fù)雜度是T(n)=n-1+2n2-n-1=O(n2)。
53.C解析:語句if(c==d)y=0;elsey=1;是if(a<b)語句的一個子句。所以整個C語句表達(dá)式的意思是:在a<b的情況下,如果c=d則y=0,否則y=1。所以,選項C)為正確答案。
54.B解析:本題考查C語言3個知識點:①將一個字符賦給一個字符變量時,并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中:②大寫字母的ASCII碼值小于其對應(yīng)小寫字母的ASCII碼值:⑧只要邏輯與運算符&&的兩個運算對象都為非零,返回值就是1。
55.C解析:scanf輸入字符串有一點要注意的是,格式控制串必須用%s。注意:gets函數(shù)和puts函數(shù)的作用。
56.A解析:本題定義了一個結(jié)構(gòu)體類型并自定義類型名為STD,用戶自定義類型后,就可以利用它進(jìn)行變量與數(shù)組的定義。定義的方法,與c語言中其他類型的定義完全一樣,定義結(jié)構(gòu)型數(shù)組并賦初值時,每個元素用一對“{”和“}”括起來,字符型元素用“'”括起來,選項A,B、C、D中只有選項A符合條件。所以,A選項為所選。
57.C解析:考查函數(shù)的調(diào)用。函數(shù)調(diào)用的一般形式為:
函數(shù)名(實參列表)
首先調(diào)用函數(shù)func1(0),輸出st[0]=h。i值變?yōu)?,并調(diào)用函數(shù)func2(2),輸出st[2]=l。i值此時變?yōu)?,又調(diào)用函數(shù)func1(4),輸出st[4]=0。此時i值大于等于3,執(zhí)行完畢,因此,輸出結(jié)果為hlo。函數(shù)調(diào)用的一般格式以及函數(shù)的返回值。
58.C解析:本題考查函數(shù)調(diào)用時參數(shù)的作用域。在函數(shù)調(diào)用時,函數(shù)體內(nèi)定義的變量的作用域連函數(shù)體內(nèi),因而在不同函數(shù)體內(nèi)定義的變量可以相同,不影響各個變量的使用。
59.A解析:在16位編譯系統(tǒng)下,一個int型變量是用16位來存儲的,其占用兩個字節(jié),當(dāng)執(zhí)行p++之后,相當(dāng)于p向高位移動了一個存儲單元,也就是兩個字節(jié)。因此,本題的答案為選項A)。
60.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設(shè)計階段完成的任務(wù);選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務(wù):選項C)軟件開發(fā)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保定電力職業(yè)技術(shù)學(xué)院《國畫(工筆重彩)》2023-2024學(xué)年第一學(xué)期期末試卷
- 寶雞職業(yè)技術(shù)學(xué)院《土木工程材料》2023-2024學(xué)年第一學(xué)期期末試卷
- 蚌埠醫(yī)學(xué)院《過程設(shè)備設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年二零二四年度債務(wù)重組與供應(yīng)鏈金融整合服務(wù)合同3篇
- 2024年版:房屋買賣合同及相關(guān)裝修改造協(xié)議
- 2025年度安徽省社會保障基金管理服務(wù)合同2篇
- 2024年機(jī)關(guān)文件打印復(fù)印合同2篇
- 安陽幼兒師范高等專科學(xué)?!睹褡褰ㄖ耪摗?023-2024學(xué)年第一學(xué)期期末試卷
- 2024年高層公寓樓吊籃式私人會所裝修合同3篇帶眉腳
- 2024廣告代理合同協(xié)議書(一億美元標(biāo)的)
- 2023年7月中央電大行政管理本科《行政法與行政訴訟法》期末考試
- 礦井軌道質(zhì)量標(biāo)準(zhǔn)及架線維護(hù)規(guī)程
- 打字測試評分標(biāo)準(zhǔn)
- VBOXTools軟件操作手冊
- 外研版(三年級起點)五年級上冊重點知識點復(fù)習(xí)
- 2023-2024學(xué)年四川省涼山州小學(xué)數(shù)學(xué)六年級上冊期末自測試卷
- 2023年報告文學(xué)研究(自考)(重點)題庫(帶答案)
- GB/T 18691.5-2021農(nóng)業(yè)灌溉設(shè)備灌溉閥第5部分:控制閥
- 安全帶管理登記臺帳
- 第26課《詩詞五首-漁家傲》課件【教材精講精研】部編版語文八年級上冊
- 湖南省高等教育自學(xué)考試 畢業(yè)生登記表
評論
0/150
提交評論