版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年湖南省岳陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.以下程序運(yùn)行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
2.
3.
4.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
5.輸入序列為(A,B,C,D),不可能得到的輸出序列是______.
A.(A,B,C,D)B.(D,C,B,A)C.(A,C,D,B)D.(C,A,B,D)
6.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是()。A.i-1B.iC.i+1D.4一i
7.有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3);此處do-while循環(huán)的結(jié)束條件是
A.P的值不等于12345并且n的值小于3
B.P的值等于12345并且n的值大于等于3
C.P的值不等于12345或者n的值小于3
D.P的值等于12345或者n的值大于等于3
8.有以下程序:#include<stdio.h>main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);}程序的運(yùn)行結(jié)果是()。
A.357B.753C.369D.751
9.若果要求一個(gè)線性表既能較快查找,又能適應(yīng)動(dòng)態(tài)變化的要求,可以采用()查找方法。
A.分塊B.順序C.二分D.散列
10.下列敘述中正確的是()。
A.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C.循環(huán)鏈表是非線性結(jié)構(gòu)
D.雙向鏈表是非線性結(jié)構(gòu)
11.
12.有兩個(gè)關(guān)系R和T如下:
則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并
13.下述哪一條是順序存儲(chǔ)結(jié)構(gòu)的優(yōu)點(diǎn)()。
A.插入運(yùn)算方便B.可方便地用于各種邏輯結(jié)構(gòu)的存儲(chǔ)表示C.存儲(chǔ)密度大D.刪除運(yùn)算方便
14.以下程序的輸出結(jié)果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
15.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關(guān)系B.數(shù)據(jù)流C.控制流D.調(diào)用關(guān)系
16.設(shè)a,b,c,d,m和n均為int型變量,且a=5,b=6,c=7,d=m=2,n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為()
A.0B.1C.2D.3
17.有以下函數(shù):intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數(shù)的功能是()。
A.將y所指字符串賦給x所指存儲(chǔ)空間
B.查找x和y所指字符串中是否有‘\0’
C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
D.統(tǒng)計(jì)x和y所指字符串中相同的字符個(gè)數(shù)
18.在位運(yùn)算中,操作數(shù)左移一位,其結(jié)果相當(dāng)于A.A.操作數(shù)乘以2
B.操作數(shù)除以2
C.操作數(shù)除以4
D.操作數(shù)乘以4
19.一個(gè)棧的輸入序列為123…n,若輸出序列的第一個(gè)元素是n,輸出第i(1<=i<=n)個(gè)元素是()
A.不確定B.n-i+1C.iD.n-i
20.有以下程序#include<stdio.h>voidfun(int*a,int*B){int*c;c=a;a=b;b=c;}main(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。A.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,3
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
inta=1234;
printf("%2d\n",a);
22.對(duì)下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。
23.常用的黑箱測(cè)試有等價(jià)類劃分法、【】和錯(cuò)誤推測(cè)法3種。
24."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語句的輸出結(jié)果是______。
25.以下程序的輸出結(jié)果是【】。
#defineMCNA(m)2*m
#defineMCNB(n,m)2*MCRA(n)+m
#definef(x)(x*x)
main()
{inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
26.面向?qū)ο蟮哪P椭?,最基本的概念是?duì)象和______。
27.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
28.實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少和算法的工作量大小分別稱為算法的【】。
29.在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,【】負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。
30.以下程序的運(yùn)行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
31.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為______。
32.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。
strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;
return(num);
}
33.常用的黑箱測(cè)試有等價(jià)分類法、【】、因果圖法和錯(cuò)誤推測(cè)法4種。
34.下列程序段的輸出結(jié)果是______。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("morning");
case'd':printf("class");
}
35.以下程序的輸出結(jié)果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
36.以下程序運(yùn)行后的輸出結(jié)果是【】。
mam()
{
chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{
if(i%2=0)
*p='*';
p++;i++;
}
puts(A);
}
37.數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于[]。
38.沒有chara,b;,若要通過a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進(jìn)制是【】。
39.若有以下定義語句,則不移動(dòng)指針p,并且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
40.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do{k*=n%10*r;n/=10;r++;}while(n);
三、1.選擇題(20題)41.下面程序段的輸出為()。
#include"stdio.h"
main
{
printf("%d\n",12<<2);
}
A.0B.47C.48D.24
42.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數(shù)strcat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新為defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
43.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中,值為0的表達(dá)式是
A.x&&y
B.x<=y
C.x||++y&&y-z
D.!(x<y&&!z||1)
44.閱讀下列程序段,則程序的輸出結(jié)果為
#include"stdio.h"
#defineM(X,Y)(X)*(Y)
#defineN(X,Y)(X)/(Y)
main()
{inta=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);
A.3B.5C.6D.8
45.下列程序的輸出結(jié)果是()。#include<stdio.h>f(intA){intb=0;staticintc=4;a=c++;b++;return(A);}main(){inta=2,i,c;for(i=0;i<2;i++)c=f(a++);printf("%d\n",C);}
A.4B.7C.6D.5
46.若一個(gè)外部變量的定義形式為staticintx;,那么,其中static的作用應(yīng)該是______。
A.將變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)B.使變量x可以由系統(tǒng)自動(dòng)初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留
47.若有定義:inta=8,b=5,執(zhí)行語句c=a/b+0.4;后,c的值為()
A.1.4B.1C.2D.2
48.設(shè)有語句“chara='72';”則變量a()。
A.包含一個(gè)字符B.包含二個(gè)字符C.包含三個(gè)字符D.說明不合法
49.以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是
A.mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.int12_001
50.若有以下定義: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;
51.以下程序的輸出結(jié)果是main(){charch[3][5];{“AAAA”,“BBB”,“CC”};printf(“\”%s“n”,ch[1]);}
A.“AAAA”B.“BBB”C.“BBBCC”D.“CC”
52.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
53.若已包括頭文件<stdio.h>和<string.h>,運(yùn)行下列程序段時(shí)輸出結(jié)果是()。inti=0;chars1[10]="ABCD",s2[10]="EFG";strcat(s1,s2);while(s2[i++]!='\0')s2[i]=s1[i];puts(s2);
A.ABCB.ABCDEFC.EBCDEFGD.CBD
54.下列不屬于軟件調(diào)試技術(shù)的是______。A.強(qiáng)行排錯(cuò)法B.集成測(cè)試法C.回溯法D.原因排除法
55.有以下程序main(){inta=i,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",B);}程序運(yùn)行后的輸出結(jié)果是
A.3B.4C.5D.6
56.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是
A.樹結(jié)構(gòu)B.網(wǎng)結(jié)構(gòu)C.線性表D.二維表
57.若執(zhí)行下面的程序時(shí),從鍵盤上輸入5和2,則輸出結(jié)果是main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}
A.5B.3C.2D.0
58.有如下程序: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);}該程序的輸出結(jié)果是_____。
A.18B.19C.20D.21
59.對(duì)長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
60.在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
四、選擇題(20題)61.計(jì)算機(jī)高級(jí)語言程序的運(yùn)行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的是A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對(duì)
62.
63.設(shè)有定義:
doublea[10],*s=a;
以下能夠代表數(shù)組元素a[3]的是()。
A.($s)[3]B.}(s+3)C.*s[3]D.}s+3
64.在面向?qū)ο蠓椒ㄖ?,一個(gè)對(duì)象請(qǐng)求另一對(duì)象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
65.
66.如果intC=3,d=4,k=0,下列描述正確的是()。A.c>d!=k和c>(d!=k)的執(zhí)行順序是一樣的
B.c&&d>k的結(jié)果為假
C.c||(d=k)執(zhí)行后d的值為0
D.!c!=(d!=k)表達(dá)式的值為1
67.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為了節(jié)省時(shí)間,應(yīng)采用的算法是()。
A.堆排序B.直接插入排序C.快速排序D.直接選擇排序
68.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
69.
70.
71.有以下程序段:
當(dāng)執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
72.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-lC.非零值D.0
73.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
74.設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是()。
A.f=0;for(i=1;i<=n;i++)f*=i;
B.f=1;for(i=1;i<n;i++)f*=i;
C.f=1;for(i=n;i>1;i++)f*=i;
D.f=1;for(i=n;i>=2;i--)f*=i;
75.若有以下定義和語句:
chars[10]="abcd!",*s2="\nl23\\";
Drintf("%d%d\n",strlen(sl),strlen(s2));
則輸出結(jié)果是()。
A.55B.105C.107D.58
76.
77.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。
A.枚舉型B.共用型C.結(jié)構(gòu)型D.數(shù)組型
78.(75)下列不屬于結(jié)構(gòu)化分析的常用工具的是()
A.數(shù)據(jù)流圖
B.數(shù)據(jù)字典
C.判定樹
D.PAD圖
79.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個(gè)字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。
例如,輸入opdye,則應(yīng)輸出deopy。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include%string.h>
#include%stdlib.h>
#include<conio.h>
#include<stdio.h>
//****found****
intproc(charstr[])
{
charC;
unsignedi,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j4-+)
if(str[i]>str[j])
{
c=str[j]:
//****found****
str[j]=str[i++];
str[i]=C;
}
}
voidmain
{
charst/[81];
system("CLS");
printf("\nPleaseenteracharacter
string:");
gets(str);
printf("\nknBeforesorting:\n%s",str);
proc(str);
printf("\nAftersortingdecendingly:\n
%S",str);
}
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include2#include3#include4#defineM45#defineN56intfun(inta[m][n])7{89}10voidmain()11{12FILE*wf;13intaa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8},{1,3,5,7,0}};14inti,j,y;15system("CLS");16printf("Theoriginaldatais:\n");17for(i=0;i<m;i++)18{for(j=0;j<n;j++)19printf("%6d",aa[i][j]);20printf("\n");21}22y=fun(aa);23printf("\nThesum:%d\nM,y);24printf("\n");25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%d",y);28fclose(wf)29/******************/30}
參考答案
1.C
2.B
3.C
4.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進(jìn)行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。
5.D
6.B本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。
7.D解析:本題考查的知識(shí)點(diǎn)是do-while循環(huán)結(jié)構(gòu)循環(huán)執(zhí)行條件的判斷.使用do-while語句必須注意以下幾點(diǎn):
先執(zhí)行語句,后判斷表達(dá)式。所以,無論一開始表達(dá)式的值為“真”還是“假”,循環(huán)體中的語句至少執(zhí)行一次,這一點(diǎn)與while不同,
如果do-while語句循環(huán)體部分是由多個(gè)語句組成,則必須用花括號(hào)括起來,使其形成復(fù)合語句。
C語言中的do—while語句是在表達(dá)式“真”時(shí)重復(fù)執(zhí)行循環(huán)體。
在本題中,循環(huán)執(zhí)行判斷條件為while后面括號(hào)里的表達(dá)式即p!=12345&&n<3(意思為p不等于12345且n小于3)是否為“真”,由此可得循環(huán)結(jié)束的條件為:p大于12345或者p小于12345又或者n大于等于3。選項(xiàng)A的意思是:p的值不等于12345并且n的小于3和while后面括號(hào)里的表達(dá)式等價(jià)是循環(huán)執(zhí)行的條件而不是循環(huán)結(jié)束的條件,所以選項(xiàng)A不正確;選項(xiàng)B的意思是:p的值等于12345并且n的值大于3,不是循環(huán)結(jié)束的條件一個(gè)子集,所以選項(xiàng)B不正確;選項(xiàng)C的意思是:p的值不等于12345或者n的值小于3前一半是結(jié)束條件的子集,后一部分不是結(jié)束條件,所以選項(xiàng)C不正確;選項(xiàng)D描述的意思是:p的值等于12345或者你的大于等于3是結(jié)束條件的子集,所以選項(xiàng)D滿足題意。所以4個(gè)選項(xiàng)中D正確。
8.A二維數(shù)組t[][3]即t[3][3]={{9,8,7},{6,5,4},{3,2,1}}。執(zhí)行循環(huán)for語句,當(dāng)i=0時(shí),t[2][0]=3;當(dāng)i=1時(shí),t[l][1]=5;當(dāng)i=2時(shí),t[0][2]=7;當(dāng)i=3時(shí),循環(huán)結(jié)束,即t[2][0]=3、t[1][1]=5、t[0][2]=7。故本題答案為A選項(xiàng)。
9.A
10.B解析:如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足以下兩個(gè)條件:(l)有且只有一個(gè)根結(jié)點(diǎn);(2)每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。如果一個(gè)數(shù)據(jù)結(jié)構(gòu)不是線性結(jié)構(gòu),則稱之為非線性結(jié)構(gòu),故A項(xiàng)錯(cuò)誤。有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu),如二叉樹,B項(xiàng)說法正確。循環(huán)鏈表和雙向鏈表都屬于線性鏈表。故C、D項(xiàng)錯(cuò)誤。
11.D
12.A
13.C
14.B
15.C解析:程序流程圖是人們對(duì)解決問題的方法、思路或算法的一種描述。其中,圖框表示各種操作的類型,圖框中的文字和符號(hào)表示操作的內(nèi)容,流程線表示操作的先后次序。帶箭頭的線段在數(shù)據(jù)流程圖中表示數(shù)據(jù)流。帶箭頭的線段在程序流程圖中表示控制流。題中給出的選項(xiàng)中,在圖元之間用帶有箭頭的線段表示圖元關(guān)系。在模塊之間用帶有箭頭的線段表示調(diào)用關(guān)系。構(gòu)成程序流程圖的基本圖符及含義:→或↓表示控制流;□表示加工步驟;
表示邏輯條件。
16.C
17.C本題中由循環(huán)條件可知,遇到‘\\0’或x與y所指的字符不相等時(shí)循環(huán)結(jié)束。所以函數(shù)的功能是統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)。故本題答案為C選項(xiàng)。
18.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)。
19.B
20.B解析:本題主要考查的是函數(shù)的實(shí)參和形參之間的傳遞關(guān)系,C語言中實(shí)參變量和形參變量之間的數(shù)據(jù)傳遞是單向的“值傳遞”方式。指針變量作函數(shù)參數(shù)也要遵循這一規(guī)則。調(diào)用函數(shù)不可能改變實(shí)參指針變量的值。所以x和y的地址并沒有改變,即p和q也沒有改變,因此,選項(xiàng)B是正確的。
21.12341234解析:在%與格式符之間插入一個(gè)整形數(shù)來指這輸出寬度,并不影響數(shù)據(jù)的完整性,當(dāng)插入的寬度小于實(shí)際的寬度時(shí),則實(shí)際的寬度輸出。
22.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:①按中序遍歷左子樹。②訪問根結(jié)點(diǎn)。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點(diǎn)A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點(diǎn)B,然后訪問結(jié)點(diǎn)D,因?yàn)榻Y(jié)點(diǎn)D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點(diǎn)F的左子樹。然后訪問根結(jié)點(diǎn)F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點(diǎn)E,然后訪問結(jié)點(diǎn)E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點(diǎn)G,最后訪問G的右子樹P。以上就把整個(gè)二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。
23.邊界值分析法邊界值分析法解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測(cè)法3種。
24.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。
\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號(hào):\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長度是6。
25.1616解析:本題定義了兩個(gè)宏MCRA(m)和MCRB(n,m),展開宏MCRB(n,m),得到:MCRB(j,MCRA(i)=2*MCRA(j)+MCRA(i)=2×2×j+2×i=4×3+2×2=12+4=16,因此printf函數(shù)的輸出結(jié)果為16。
26.類類
27.BB解析:因?yàn)閏是字符類型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
28.空間復(fù)雜度和時(shí)間復(fù)雜度算法的復(fù)雜性是指對(duì)一個(gè)在有限步驟內(nèi)終止算法和所需存儲(chǔ)空間大小的估計(jì)。算法所需存儲(chǔ)空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。
29.數(shù)據(jù)定義語言數(shù)據(jù)定義語言解析:在數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)定義語言,數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,數(shù)據(jù)定義語言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建,數(shù)據(jù)操縱語言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作,數(shù)據(jù)控制語言負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、恢復(fù)等功能。
30.#&#&解析:剛開始時(shí),switch后面的表達(dá)式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語句,表達(dá)式b<0值為0,沒有與其匹配的語句,返回外層,因?yàn)橥鈱記]有break語句,順序執(zhí)行case0后面的switch語句,表達(dá)式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因?yàn)橥鈱記]有break語句,順序執(zhí)行default后的語句,輸出&。
31.繼承繼承
32.\0'n++\\0'\r\nn++解析:第1個(gè)循環(huán)是求字符串a(chǎn)的長度,并存儲(chǔ)在變量num中,循環(huán)條件要控制是否取到字符串末尾的'\\0'。第2個(gè)循環(huán)通過兩個(gè)變量num和n的改變,將b字符串連接到a字符串后面,并將新的字符串長度記錄到num中。
33.邊值分析法邊值分析法解析:本題考查了黑箱測(cè)試的方法。黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)分類法、邊值分析法、因果圖法和錯(cuò)誤推測(cè)法。
34.morningclassmorningclass解析:本題考查了兩個(gè)知識(shí)點(diǎn):①“++,--”運(yùn)算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當(dāng)n='c'時(shí),執(zhí)行“case'c'”,輸出morning;因?yàn)榇司渲袥]有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。
35.246
36.*2*4*6*8**2*4*6*8*解析:程序中定義了一個(gè)字符數(shù)組a,并初始化為123456789,接著定義了一個(gè)指針p并讓它指向數(shù)組a,緊接著執(zhí)行了一個(gè)while循環(huán),此循環(huán)的作用是:當(dāng)i為偶數(shù)時(shí),將“*”賦給a[i],p指向數(shù)組末尾,循環(huán)結(jié)束,此時(shí)數(shù)組中a[0]、a[2]、a[4]、a[6]和a[8]的值都為“*”,所以最后調(diào)用puts()函數(shù)輸出的a的值為*2*4*6*8*
37.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:與棧類似,隊(duì)列也是線性表,也町以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
38.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個(gè)相應(yīng)的二進(jìn)制位都為1時(shí),該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。
39.*(p+5)
40.00解析:本題考查的是do厀hile循環(huán)。第一次執(zhí)行循環(huán)體,因?yàn)閗=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值為0。
41.C解析:考查位運(yùn)算的運(yùn)算原理。<<為左移運(yùn)算符,運(yùn)算符的左邊是移位對(duì)象;右邊是整型表達(dá)式,代表左移的位數(shù),左移時(shí),右端(低位)補(bǔ)0;左端(高位)移出的部分舍棄。
42.D解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。
43.D解析:該題考查邏輯與'&&'和邏輯或'||'以及邏輯非'!'符號(hào)的用法。選項(xiàng)A)即3&&4為真;選項(xiàng)B)即3<=4為真;選項(xiàng)C)是一個(gè)邏輯或與邏輯與的混合運(yùn)算,只要執(zhí)行了邏輯或左半部分,程序?qū)⒅苯油V箞?zhí)行邏輯或右半部分程序,因?yàn)閤的值為真;此時(shí)選項(xiàng)C)變?yōu)?&&-1為真。選項(xiàng)D)不用計(jì)算,括號(hào)內(nèi)邏輯或右邊的值為1,因而括號(hào)內(nèi)的值為1,再進(jìn)行邏輯非運(yùn)算得0。
44.A解析:帶參數(shù)的宏定義命令行形式如下:#define宏名(形參表)替換文本。首先進(jìn)行M的宏替換,之后再進(jìn)行N的宏替換,替換后的表達(dá)式為(a)*(b)/(c)。
45.D解析:本題考查靜態(tài)變量的使用方法和for循環(huán)。在函數(shù)調(diào)用時(shí),static變量在函數(shù)調(diào)用結(jié)束后所作的所有變化均不保持,所以當(dāng)i=1時(shí),第2次進(jìn)入f函數(shù)時(shí)c=5,所以最終main函數(shù)中c的值為5。
46.C解析:事實(shí)上,無論有無static修飾,外部變量都具有A、B和C三種特性。作為一種修飾,static僅是限制此類型外部變量韻引用范圍:只能在定義它的文件范圍內(nèi)使用。
47.B
48.D解析:字符變量的值為單個(gè)字符,并用單引號(hào)包含,而本題中的單引號(hào)中是兩個(gè)字符,不是合法說明。
49.A解析:標(biāo)識(shí)符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列{例如,-max含非法字符-),并且用戶標(biāo)識(shí)符不能與C語言中的32個(gè)關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識(shí)符)。選項(xiàng)B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項(xiàng)B不正確;選項(xiàng)C中3COM不是由字母或下劃線開頭,故選項(xiàng)C不正確;選項(xiàng)D中int為C語言中的關(guān)鍵字,故選項(xiàng)D不正確;選項(xiàng)A中全部為合法的標(biāo)識(shí)符,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
50.D解析:在本題中指針p指向變量a,q指向變量c。要把c插入到變量a和變量b之間,就應(yīng)該首先讓變量a的指針域指向變量c,即(*p).next=q,然后讓變量c的指針域指向變量b,即(*q).next=&b。
51.B解析:二維字符數(shù)組可以看成由若干個(gè)一維字符數(shù)組組成,每行是一個(gè)一維字符數(shù)組。本題首先定義了一個(gè)數(shù)組ch[3][5],并給它們按行賦初值,即相當(dāng)于給ch[0]賦值“AAAA”,給ch[1]賦值“BBB”,給ch[2]賦值“BBB”,最后輸出轉(zhuǎn)義字符“'\\'”、ch[1]和轉(zhuǎn)義字符“\\”,因此輸出為“BBB”。
52.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲(chǔ)的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。
53.C解析:strcat(s1,s2)把s2連接到s1的后面,s1=ABCDEFG,執(zhí)行while(s2[i++]!='\\0')后i的值變?yōu)?,往后執(zhí)行s2[i]=s1[i]時(shí)是從把s1的第二位給s2的第二位開始,把s1賦給s2。
54.B解析:我們嚴(yán)格區(qū)分調(diào)試與測(cè)試,調(diào)試是已知有錯(cuò)誤而來找錯(cuò)誤,是被動(dòng)的;測(cè)試有很多種,比如未發(fā)現(xiàn)錯(cuò)誤但不能保證程序沒錯(cuò)而來找BUG,還比如我們運(yùn)行測(cè)試程序是否符合用戶的要求,是主動(dòng)的。所以答案是選項(xiàng)B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測(cè)試方法。測(cè)試有單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試。比如我們?cè)谶M(jìn)行單元測(cè)試時(shí),發(fā)現(xiàn)程序有錯(cuò)誤,我們?cè)倏梢愿鶕?jù)A、C、D的方法來找錯(cuò)誤。
55.B解析:在一個(gè)循環(huán)體中,若執(zhí)行到break則跳出循環(huán)體,執(zhí)行循環(huán)體后面第一條語句;若執(zhí)行到continue則開始下一次循環(huán)體的執(zhí)行。本題中a的初始值為1,在循環(huán)體中首先判斷a,如果>=8就用break跳出循環(huán),接下來的判斷語句a%2==1,是判斷a除以2的余數(shù)是否為1,即a是否為奇數(shù),是的話給a累加一個(gè)5,然后用continue開始下一次循環(huán).若兩個(gè)條件都不滿足就讓a自減一個(gè)3.因此第1次循環(huán)開始a為1不大于8,且是奇數(shù),所以a被累加5開始下一次循環(huán);第2次循環(huán)開始a為6不大于8,不是奇數(shù),所以a被減去3;第3次循環(huán)開始a為3不大于8,是奇數(shù),所以a被加上一個(gè)5;第4次開始a為8,滿足第一個(gè)條件跳出循環(huán)。b在第1次循環(huán)時(shí)等于1,以后每次累加1,所以最后輸出為4,選項(xiàng)B正確.
56.D解析:在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系。即關(guān)系模型是用表格數(shù)據(jù)來表示實(shí)體本身及其相互之間的聯(lián)系。本題的正確答案是D。
57.C解析:本題考查簡(jiǎn)單的if...else語句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語句。
58.A解析:題中的外循環(huán)只執(zhí)行了2次:
第1次:a[1][0]=3,a[1][1]=4,所以s=7;
第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
59.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡(jiǎn)單插入排序n(n-1)/2、希爾排序0(n1.5)、簡(jiǎn)單選擇排序n(n-1)/2、堆排序O(nlog2n)
60.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對(duì)象與對(duì)象間彼此的相互合作來推動(dòng)的,對(duì)象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
61.A\n解釋程序是將源程序(如BASIC)作為輸入,解釋一句后就提交計(jì)算機(jī)執(zhí)行一句,并不形成目標(biāo)程序。編譯程序是把高級(jí)語言(如FORTRAN、COBOL、Pascal、C等)源程序作為輸入,進(jìn)行翻譯轉(zhuǎn)換,產(chǎn)生出機(jī)器語言的目標(biāo)程序,然后再讓計(jì)算機(jī)執(zhí)行這個(gè)目標(biāo)程序,得到計(jì)算結(jié)果。
\n
62.A
63.B語句·s=a;表示指針變量s指向一維數(shù)
組a的首地址。a[3]表示引用數(shù)組a的第4個(gè)元素,+(s+i)表示引用指針8所指數(shù)組a的第i+1個(gè)元素,選項(xiàng)A、C、D的表示方法錯(cuò)誤,只有B選項(xiàng)正確。
64.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對(duì)象與對(duì)象間彼此的相互合作來推動(dòng)的,對(duì)象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息。消息是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 樂山師范學(xué)院《人類與醫(yī)學(xué)遺傳學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江漢大學(xué)《工程經(jīng)濟(jì)與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 華北電力大學(xué)《航空材料雙語》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南環(huán)境生物職業(yè)技術(shù)學(xué)院《碳纖維材料》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北財(cái)稅職業(yè)學(xué)院《應(yīng)用隨機(jī)過程》2023-2024學(xué)年第一學(xué)期期末試卷
- 自貢職業(yè)技術(shù)學(xué)院《化工原理(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 周口師范學(xué)院《行政倫理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江師范大學(xué)行知學(xué)院《口譯實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州衛(wèi)生健康職業(yè)學(xué)院《數(shù)控車床實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 玉溪職業(yè)技術(shù)學(xué)院《云南少數(shù)民族題材電影賞析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023年小學(xué)科學(xué)教研組教研工作總結(jié)(5篇)
- 三年級(jí)上冊(cè)遞等式計(jì)算練習(xí)300題及答案
- 政治畫像品德操守自我評(píng)價(jià)3篇
- 奶茶督導(dǎo)述職報(bào)告
- 山東萊陽核電項(xiàng)目一期工程水土保持方案
- 白熊效應(yīng)(修訂版)
- 視頻監(jiān)控維保項(xiàng)目投標(biāo)方案(技術(shù)標(biāo))
- 社會(huì)組織能力建設(shè)培訓(xùn)
- 立項(xiàng)報(bào)告蓋章要求
- 2022年睪丸腫瘤診斷治療指南
- 被執(zhí)行人給法院執(zhí)行局寫申請(qǐng)范本
評(píng)論
0/150
提交評(píng)論