版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年山西省朔州市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.已知一個(gè)長(zhǎng)度為32的有序表,若采用二分查找一個(gè)不存在的元素,則比較次數(shù)最多是()
A.4B.5C.6D.7
2.設(shè)x和y均為int型變量,且x=10,y=3,則以下語(yǔ)句的輸出結(jié)果是()printf("%d,%d\n",x--,--y);
A.10,3B.9,3C.9,2D.10,2
3.有以下程序:voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);print("%d\n",aa[0]);}程序運(yùn)行后的輸出結(jié)果是______。
A.4B.3C.2D.1
4.當(dāng)變量c的值不為2、4、6時(shí),值為“真”的表達(dá)式是()。
A.(c>=2&&c<=6)&&(c%2!=1)
B.(c==2)||(c==4)||(c==6)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)||(c!=3)||(c!=5)
5.判定一個(gè)順序棧st(最多元素為MaxSize)為空的條件是()。
A.st->top!B.st->top!C.top==-1D.top==MaxSize
6.
7.在目標(biāo)串T[0,n-1]=”xwxxyxy”中,對(duì)模式串p[0,m-1]=”xy”進(jìn)行子串定位操作的結(jié)果_______
A.0B.2C.3D.5
8.以下程序的輸出結(jié)果是
#include<stdio.h>
voidprt(int*x,int*y,int*z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{inta=10,b=40,c=20;
prt(&a,&b,&c);prt(&a,&b,&c);}
A.11,42,3112,22,41
B.11,41,2012,42,20
C.11,21,4011,21,21
D.11,41,2112,42,22
9.設(shè)有定義“intx,y,z;”,且各變量已經(jīng)賦正整數(shù)值,則以下能正確表示代數(shù)式“”的C語(yǔ)言表達(dá)式是()。
A.1.0/x/y/zB.1/x*y*zC.1/(x*y*z)D.1/x/y/(double)z
10.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.abc+abc=defdef
B.abc+ABC=DEFdef
C.abcABCDEFdef
D.abcabcdefdef
11.設(shè)inta=12,則執(zhí)行完語(yǔ)句a+=a-=a*a后,a的值是()。
A.552B.264C.144D.-264
12.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運(yùn)行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6
13.在定義inta[5][6];后,數(shù)組a中的第10個(gè)元素是()。(設(shè)a[0][0]為第一個(gè)元素)
A.a[2][5]B.a[2][4]C.a[1][3]D.a[1][5]
14.已知一算術(shù)表達(dá)式的中綴表達(dá)式為a-(b+c/d)*e,其后綴形式為()
A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-
15.在嵌套使用if語(yǔ)句時(shí),C語(yǔ)言規(guī)定else總是A.和之前與其具有相同縮進(jìn)位置的if配對(duì)
B.和之前與其最近的if配對(duì)
C.和之前與其最近的且不帶else的if配對(duì)
D.和之前的第一個(gè)if配對(duì)
16.有三個(gè)關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為()。A.選擇B.投影C.交D.并
17.以下敘述中正確的是()。
A.宏替換不占用程序的運(yùn)行時(shí)間
B.預(yù)處理命令行必須位于源文件的開頭
C.在源文件的一行上可以有多條預(yù)處理命令
D.宏名必須用大寫字母表示
18.已知一個(gè)大小為n的整型數(shù)組,現(xiàn)求該數(shù)組的全部連續(xù)子數(shù)組的元素之和的最大值,最優(yōu)算法的時(shí)間復(fù)雜度是()如:a[4]={2,-1,3,-4},它的全部連續(xù)子數(shù)組為{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它們的元素之和為{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值為4。
A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)
19.設(shè)有下列二叉樹:
對(duì)此二叉樹后序遍歷的結(jié)果為
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
20.健壯的算法不會(huì)因非法的輸入數(shù)據(jù)而出現(xiàn)莫名其妙的狀態(tài)()
A.對(duì)B.錯(cuò)
二、2.填空題(20題)21.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
22.若a=10,b=20,則表達(dá)式!(a<b)的值是【】。
23.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語(yǔ)言表達(dá)式是______。
24.設(shè)有以下定義
struetss
{intinfo;struetss*link;}x,y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請(qǐng)寫出刪除結(jié)點(diǎn)y的賦值語(yǔ)句【】。
25.以下程序的輸出結(jié)果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
26.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。
27.為了便于對(duì)照檢查,測(cè)試用例應(yīng)由輸入數(shù)據(jù)和預(yù)期的【】?jī)刹糠纸M成。
28.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
29.有以下程序:
voidf(intv,intw)
{intt;
t=v;v=w;w=t;
}
main()
{intx=1,y=3,z=2
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(x,z);
printf("%d,%d,%d\n",x,y,z);
}
執(zhí)行后的輸出結(jié)果是【】。
30.有以下程序:
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結(jié)果是【】。
31.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。
32.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
33.實(shí)現(xiàn)程序可將磁盤中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
n=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
34.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{chara[]="Language",b[]="Programe";
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c,*(p1+k));
}
35.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
36.下列程序可以判斷輸入的年份是不是閏年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是閏年",year);
else
printf("%d年不是閏年\n",year);
}
37.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
38.二叉樹按某順序線索化后,其結(jié)點(diǎn)均有指向其前趨和后繼的線索,該說(shuō)法是【】的。
39.以下程序運(yùn)行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
40.下列程序的輸出結(jié)果是【】。
main()
{charb[]="Helloyou";
b[5]=0;
printf("%s\n",b);
}
三、1.選擇題(20題)41.利用E-R模型進(jìn)行數(shù)據(jù)庫(kù)的概念設(shè)計(jì),可以分成3步:首先設(shè)計(jì)局部E-R模型,然后把各個(gè)局部E-R模型綜合成一個(gè)全局的模型,最后對(duì)全局E-R模型進(jìn)行(),得到最終的E-R模型。
A.簡(jiǎn)化B.結(jié)構(gòu)化C.最小化D.優(yōu)化
42.算法的時(shí)間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)
43.定義下列結(jié)構(gòu)體(聯(lián)合)數(shù)組:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};執(zhí)行語(yǔ)句printf["%d,%c",a[2].age,*(a[3].name+2))的輸出結(jié)果為()。
A.15,AB.16,HC.16,AD.17,H
44.若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單元,則正確的語(yǔ)句是()。
A.p=2*(int*)malloc(sixeof(int))
B.p=(int*)calloc(2*sixeof(int))
C.p=(int*)malloc(2*sizeof(int))
D.p=2*(int*)calloc(sizeof(int))
45.以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是_______。
A.typedefstructaa{intn;floatm;}aa;aatd1;
B.#defineaastructaaaa{intn;floatm;}td1;
C.struct{intn;floatm;}aa;structaatd1;
D.struct{intn;floatm;}td1;
46.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)和相關(guān)文檔的集合
47.以下程序的輸出結(jié)果是main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf(“%d\n”,d;}
A.1B.0C.非0的數(shù)D.-1
48.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);}
A.2500B.2050C.4D.0
49.當(dāng)把4個(gè)表達(dá)式用做if語(yǔ)句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)與其他3個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是()。
A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1
50.下面語(yǔ)句的輸出結(jié)果是______。printf("/od\n",strlen("\t\"\065\xff\n"))
A.14B.8C.5D.輸出項(xiàng)不合法,無(wú)正常輸出
51.有如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a%d,b=%d\n",a,B);}該程序的輸出結(jié)果是______。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
52.若要求定義具有10個(gè)血型元素的一維數(shù)組a,則以下定義語(yǔ)句中錯(cuò)誤的是()。
A.#definmeN10inta[N];
B.#definen5inta[2*n];
C.inta[5+5];
D.intn=10,a[n];
53.下列說(shuō)法不正確的是()。
A.C語(yǔ)言程序是以函數(shù)為基本單位的,整個(gè)程序由函數(shù)組成
B.C語(yǔ)言程序的一條語(yǔ)句可以寫在不同的行上
C.C語(yǔ)言程序的注釋行對(duì)程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫
D.C語(yǔ)言程序的每個(gè)語(yǔ)句都以分號(hào)結(jié)束
54.有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)的功能的敘述正確的是A.求字符串s的長(zhǎng)度B.比較兩個(gè)串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)
55.在C語(yǔ)言中,運(yùn)算對(duì)象必須是整型數(shù)的運(yùn)算符是()。
A.%B.\C.%和\D.**
56.以下能正確定義整型變量a,b和c,并為其賦初值1的語(yǔ)句是______。
A.inta=b=c=1;B.inta,b,c=1;C.a=b=c=1;D.inta=1,b=1,c=1;
57.下面不屬于軟件設(shè)計(jì)原則的是()。
A.抽象B.模塊化C.自底向上D.信息隱蔽
58.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
59.下列敘述中正確的是()。
A.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間具有密切的關(guān)系
B.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象都是公用的
C.在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,各個(gè)對(duì)象之間相對(duì)獨(dú)立,相互依賴性小
D.上述3種說(shuō)法都不對(duì)
60.有以下程序:#include<stdio.h>main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++)}for(j=0;j<2;j++)prinff("%2d",a[i][j]);prinff("\n");}}若運(yùn)行時(shí)輸入:123<回車>,則輸出結(jié)果是()。
A.產(chǎn)生錯(cuò)誤信息B.102000C.123000D.102030
四、選擇題(20題)61.有以下程序:
#include<stdio.h>
main
{inty=10;
while(y--);
printf("y=%d\n",y);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.y=0B.y=-1C.y=lD.while構(gòu)成無(wú)限循環(huán)
62.有以下程序程序運(yùn)行后的輸出結(jié)果是()
A.1,3,3B.1,3.2C.1,2,3D.3,2,1.
63.
64.
65.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
66.
67.C語(yǔ)言源程序名的后綴是()。A.CB.exeC.obiD.ep
68.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.2B.4C.6D.8
69.以下選項(xiàng)中正確的定義語(yǔ)句是()。
70.非空循環(huán)鏈表所表示的數(shù)據(jù)結(jié)構(gòu)()。
A.有根結(jié)點(diǎn)也有葉子結(jié)點(diǎn)B.沒(méi)有根結(jié)點(diǎn)但有葉子結(jié)點(diǎn)C.有根結(jié)點(diǎn)但沒(méi)有葉子結(jié)點(diǎn)D.沒(méi)有根結(jié)點(diǎn)也沒(méi)有葉子結(jié)點(diǎn)
71.
A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;
72.設(shè)有定義
73.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。
A.存儲(chǔ)在外存中的數(shù)據(jù)
B.數(shù)據(jù)所占的存儲(chǔ)空間
C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式
D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
74.
75.設(shè)有定義:intx=3;,以下表達(dá)式中,值不為l2的是()。
A.x*=x+1B.x++,3*xC.x*=(1+x)D.2*x.x+=6
76.
A.P=8;B.P=k;C.P=s[0];D.k=s;
77.有定義語(yǔ)句:chars[10];,若要從終端給s輸入5個(gè)字符,錯(cuò)誤的輸入語(yǔ)句是()。
A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
A.存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的
B.存儲(chǔ)空間不一定連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
C.存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面
D.存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的
78.以下不合法的字符常量是()。
A."、、"B.’\”’C.’\018’D.\xcc"
79.有以下程序:
程序輸出結(jié)果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯(cuò)
80.若有以下程序段:
輸出結(jié)果是()。
A.2B.4C.8D.16
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:先將字符串s中的字符按順序存放到t中,然后把S中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時(shí),則t中的字符串應(yīng)為WXYZWXYZ。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>voidproc(char*s,char*t){inti,s1;s1=strlen(s);for(i=0;i<s1;i++)//****found****t[i]=s[s1];for(i=0;i<s1;i++)t[s1+i]一s[i];t[2*s1]=\O0;}voidmain{chars[100],t[100];system("CLS");print{("\nPleaseenterstrings:");scanf("%s",s);proc(s,t);printf("Theresultis:%s\n",t);}
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)intproc(int*s,intt,int*k),用來(lái)求出數(shù)組的最大元素在數(shù)組中的下標(biāo)并存放在k所指的存儲(chǔ)單元中。例如,輸入如下整數(shù):876675896101999401980431451777則輸出結(jié)果為4,999。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:
參考答案
1.C
2.D
3.D解析:C語(yǔ)言覿定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實(shí)參傳給形參,而不能由形參傳回來(lái)給實(shí)參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。
4.D邏輯或運(yùn)算中只要有一個(gè)運(yùn)算量為真,結(jié)果就為真。當(dāng)“c>=2&&c<=6”條件不成立時(shí),c的值肯定不是2、3、4、5、6,“c!=3”與“c!=5”均成立,所以D選項(xiàng)的結(jié)果一定為真。故本題答案為D選項(xiàng)。
5.B
6.D
7.C
8.B解析:考查指針作為參數(shù)的函數(shù)調(diào)用。盡管C語(yǔ)言以傳值方式進(jìn)行函數(shù)調(diào)用,但也可以通過(guò)傳遞指針的值(變量的地址)來(lái)達(dá)到修改實(shí)參變量值的目的,這是此題主要說(shuō)明的問(wèn)題。另外,應(yīng)注意表達(dá)式\ue008*(z++)\ue009的值是*z,其后的z++在程序中無(wú)實(shí)際作用。函數(shù)調(diào)用時(shí),由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次調(diào)用函數(shù)時(shí),*x=a=10,*y=b=40,*z=c=20輸出結(jié)果為11,41,20,至此,已經(jīng)可以肯定選項(xiàng)B)是正確的。在第一次輸出后,a=11,b=41,c=20,第二次輸出為:12,42,20。
9.A代數(shù)式“”的結(jié)果為小數(shù),轉(zhuǎn)為C語(yǔ)言的表達(dá)式必須是浮點(diǎn)數(shù)。A選項(xiàng)由于1.0為浮點(diǎn)數(shù),計(jì)算結(jié)果自動(dòng)轉(zhuǎn)換為浮點(diǎn)數(shù)。選項(xiàng)B、C、D的表達(dá)式均為0,因此只有選項(xiàng)A正確。故本題答案為A選項(xiàng)。
10.A題干中,函數(shù)fun的功能是:判斷形參ch是否為大寫字母,若是大寫字母則改寫成小寫字母,其他字符不變。main函數(shù)中,通過(guò)while循環(huán),調(diào)用fun函數(shù),將字符數(shù)組s中的各個(gè)字符傳入,將s中的大寫字母改成小寫字母,程序輸出:abc+abc=defdef。本題答案為A選項(xiàng)。
11.D
12.B解析:p指向x的第一個(gè)元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個(gè)元素,所以p->next->n為4。
13.C
14.D
15.C解析:C語(yǔ)言的語(yǔ)法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合,與書寫格式無(wú)關(guān)。所以選項(xiàng)C)為正確答案。
16.D
17.A宏替換是在編譯階段前的預(yù)處理階段,對(duì)程序中的宏完成文本替換,因此宏替換不占用運(yùn)行時(shí)間,選項(xiàng)A正確;預(yù)處理命令行無(wú)須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項(xiàng)B錯(cuò)誤;在源文件的一行上至多只能有一條預(yù)處理命令,選項(xiàng)C錯(cuò)誤;宏名通常使用大寫字母表示,這并不是語(yǔ)法規(guī)定,只是一種習(xí)慣,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。
18.B
19.D解析:二叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷,其遍歷順序應(yīng)該為:后序遍歷左子樹->,后序遍歷右子樹->,訪問(wèn)根結(jié)點(diǎn)。按照定義,后序遍歷序列是DEBFCA,故答案為D。
20.A
21.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說(shuō)明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。
22.00解析:已知a=10,b=20,所以邏輯表達(dá)式a<b的值為true,即為1,在這個(gè)表達(dá)式前面有一個(gè)邏輯運(yùn)算符!,表示反操作,所以整個(gè)語(yǔ)句的值應(yīng)當(dāng)為false,即為0。
23.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語(yǔ)言表達(dá)式為:(x>-5)&&(x<5)。
24.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:鏈表中結(jié)點(diǎn)的刪除,要?jiǎng)h除結(jié)點(diǎn)y,只需要讓結(jié)點(diǎn)x的指針域指向y結(jié)點(diǎn)的指針域所指向的后續(xù)結(jié)點(diǎn)就可,因此只需把結(jié)點(diǎn)z的地址賦給x的指針域就可以了,即讓結(jié)點(diǎn)x的指針域指向結(jié)點(diǎn)z。而結(jié)點(diǎn)z的地址保存在結(jié)點(diǎn)y的指針域中,因此只需把結(jié)點(diǎn)y的指針域賦值給結(jié)點(diǎn)x的指針域即可。
25.77解析:在C語(yǔ)言中,宏定義是直接替換的,所以在劉表達(dá)式MAX(a+b,c+d)*10進(jìn)行替換后,表達(dá)式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。
26.
解析:冒泡排序法是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長(zhǎng)度為n,則在最壞的情況下,冒泡排序需要經(jīng)過(guò)遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
27.輸出結(jié)果輸出結(jié)果解析:注意:測(cè)試的基本方法和步驟。
28.物理獨(dú)立性數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩級(jí)。
29.1321,3,2解析:函數(shù)f的形參是簡(jiǎn)單變量,形參的改變不能影響實(shí)參,所以正確答案為1,3,2。
30.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。
31.封裝封裝
32.str[i]或str+iistr[i]或str+i\r\ni
33.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時(shí)至少要指定兩個(gè)參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語(yǔ)句fputc(fgetc(f1),(f2);的目的是將f1中的字符依次讀出并寫入到f2對(duì)應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
34.gae
35.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。
36.yearleap=1leap
37.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)
38.錯(cuò)誤錯(cuò)誤解析:線索二叉樹是利用二叉鏈表存儲(chǔ)結(jié)構(gòu)中的空鏈域來(lái)存放其前趨或后繼。由于二叉樹度為2的非終端結(jié)點(diǎn)無(wú)空鏈域,因此它沒(méi)有空鏈域用來(lái)存放前趨和后繼。
39.1343113431解析:初始化時(shí),指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語(yǔ)句,得到m[0].k=1,m[4].k=1,此時(shí)i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語(yǔ)句,得到m[1].k=3,k=3,此時(shí)i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。
40.HelloHello解析:執(zhí)行b[5]=0;是給數(shù)組的第6個(gè)元素賦值為0,即將Hello后的空格變?yōu)?。當(dāng)輸出字符串時(shí)遇到0終止輸出。
41.D解析:在概念設(shè)計(jì)中按照模塊的劃分畫出每個(gè)模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應(yīng)該對(duì)全局E-R圖進(jìn)行優(yōu)化,看看是否有重復(fù)和不合理的地方。不能只是進(jìn)行簡(jiǎn)單的合并。
42.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉懙某绦蜷L(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。
43.C解析:本題主要考查結(jié)構(gòu)體數(shù)組。a[2].age為結(jié)構(gòu)體a[2]的age成員,即16。a[3].name為指向結(jié)構(gòu)體a[3]的name成員的第一個(gè)元素的指針,即指向“Z”,(a[3].name+2)將指針后移兩位指向第三個(gè)元素“A”,*(a[3].name+2))是取指針?biāo)赶虻刂返膬?nèi)容。
44.C解析:malloc函數(shù)的調(diào)用形式:malloc(size)。malloc函數(shù)用來(lái)分配size個(gè)字節(jié)的存儲(chǔ)區(qū),返回一個(gè)指向存儲(chǔ)區(qū)首地址基類型為void的地址,可以利用強(qiáng)制類型轉(zhuǎn)換將其換成所需的類型,這里需轉(zhuǎn)換為整型(int*)。若不能確定數(shù)據(jù)類型所占的字節(jié)數(shù),可使用sizeof運(yùn)算符來(lái)求得,這里要求兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單元即2*sizeof(int)。4個(gè)選項(xiàng)中只有C符合題意。
45.C解析:本題的考查點(diǎn)是結(jié)構(gòu)體類型變量的定義。在選項(xiàng)C中,aa是—個(gè)結(jié)構(gòu)體變量,而不是結(jié)構(gòu)體名,所以structaatd1;是非法的。
46.D解析:軟件是運(yùn)行在計(jì)算機(jī)硬件之上的邏輯實(shí)體,包括程序、數(shù)據(jù)和相關(guān)的文檔,軟件的開發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴性,受計(jì)算機(jī)系統(tǒng)的限制。
47.A解析:由于單目運(yùn)算符優(yōu)先級(jí)高于“&&”和“||”運(yùn)算,所以先計(jì)算!a、!b和!c分別為“假”、“假”、“真”,然后是&&運(yùn)算和“||”運(yùn)算,原表達(dá)式就等價(jià)于“假”&&“假”||“真”又由于“&&”的優(yōu)先級(jí)高于“||”運(yùn)算符,所以先計(jì)算“假”&&“假”,還是為假,最后是“假”||“真”為真。因此最后d被賦值為1,故最后輸出為1。
48.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過(guò)這一次循環(huán),執(zhí)行下—次循環(huán),否則求和和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。
49.A整數(shù)k對(duì)2求余數(shù)的兩個(gè)結(jié)果只能是0和1,所以選項(xiàng)A)表示k除以2的余數(shù),其結(jié)果是0或1。在選項(xiàng)B)、c)和D)中包括算術(shù)求余運(yùn)算符“%”,關(guān)系等于運(yùn)算符“-”和關(guān)系不等于運(yùn)算符“!=”以及邏輯非運(yùn)算符“!”。而邏輯運(yùn)算符與賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符之間從高到低的運(yùn)算優(yōu)先次序是:!(邏輯“非”)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、(邏輯“與”)、?(邏輯“或”)、賦值運(yùn)算符。選項(xiàng)B)含義是判斷表達(dá)式k%2的結(jié)果是否等于1、選項(xiàng)C)的含義是判斷表達(dá)式k%2的結(jié)果是否不等于0,選項(xiàng)D)含義是判斷表達(dá)式!k%2的結(jié)果是否等于1,所以選項(xiàng)B)、C)和D)的禽義相同。
50.C解析:在C語(yǔ)言中,以“\\”開頭的字符均為轉(zhuǎn)義字符,其中“\\”后可跟1~3位八進(jìn)制數(shù)或在“\\”后跟字母x及1~2位十六進(jìn)制數(shù),以此來(lái)代表一個(gè)特定的字符。
51.A解析:在這個(gè)switch語(yǔ)句中,因?yàn)閤的值為1,所以執(zhí)行case1:后面的a++,這樣a=1。但又由于其下沒(méi)有break語(yǔ)句,所以其后面的語(yǔ)句“a++;b++”也將被執(zhí)行,這樣一來(lái),a=2,b=1。
52.D解析:C語(yǔ)言規(guī)定,在定義數(shù)組時(shí)數(shù)組名后的方括號(hào)中必須是常量表達(dá)式,不能包含變量。因此,選項(xiàng)D中用變量n來(lái)定義數(shù)組的大小是錯(cuò)誤的。故應(yīng)該選擇D。
53.C解析:本題涉及C語(yǔ)言的3個(gè)基本知識(shí)點(diǎn):①C語(yǔ)言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個(gè)函數(shù)完成相對(duì)獨(dú)立的功能,其中只能包括一個(gè)主函數(shù);②C語(yǔ)言規(guī)定每個(gè)語(yǔ)句以分號(hào)結(jié)束,其書寫格式是自由的,一條語(yǔ)句可以寫在不同的行上,或者一行也可以寫多條語(yǔ)句;⑧注釋行雖然對(duì)程序的運(yùn)行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。
54.A解析:aaa()函數(shù)中,首先定義了一個(gè)字符指針t指向形參s,然后通過(guò)一個(gè)while循環(huán)讓指針\u3000t不斷遞增,直到t指向字符串結(jié)束標(biāo)志處。當(dāng)t指向結(jié)束標(biāo)志處時(shí),由于后綴++運(yùn)算符的原因,它還會(huì)被再遞增1,所以接卜來(lái)的t--;語(yǔ)句讓它回到結(jié)束標(biāo)志處。最后返回t-s,因此s還是指向字符串第1個(gè)字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長(zhǎng)度值。
55.A解析:在C語(yǔ)言中,“%”運(yùn)算符兩側(cè)的運(yùn)算數(shù)必須是整型。
56.D解析:選項(xiàng)A中,變量b、c未定義;選項(xiàng)B中,a、b未賦值;選項(xiàng)C中a、b、c均未定義。
57.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來(lái)而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語(yǔ)言中的過(guò)程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過(guò)程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來(lái)說(shuō)是不能訪問(wèn)的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。
58.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標(biāo)識(shí)符(*指針變量名)()。其中,“類型標(biāo)識(shí)符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
59.C本題考查對(duì)面向?qū)ο蟮睦斫?。面向?qū)ο蟮某绦蛟O(shè)計(jì)是對(duì)象模擬問(wèn)題領(lǐng)域中的實(shí)體,各對(duì)象之間相對(duì)獨(dú)立,相互依賴性小,通過(guò)消息來(lái)實(shí)現(xiàn)對(duì)象之間的相互聯(lián)系。
60.B解析:程序中a[3)[2]={0}將數(shù)組元素全部初始化為0,指針變量ptr指向包含2個(gè)元素的一維數(shù)組。在第一個(gè)for語(yǔ)句的循環(huán)體中ptr=a+i;語(yǔ)句用于將指針變量ptr指向第i行的數(shù)組元素,通過(guò)兩次循環(huán),分別給二維數(shù)組a的第。行的第1個(gè)元素和第1行的第1個(gè)元素賦了值1和2,即a[0][0]=1,a[1][0]=2。
61.B\ny--的作用是先取其值作
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣西南寧市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版質(zhì)量測(cè)試(上學(xué)期)試卷及答案
- 2024年燈籠制作與社區(qū)文化發(fā)展
- 《接觸網(wǎng)施工》課件 6.2.1 送電開通
- 《習(xí)作他了》課件引領(lǐng)學(xué)生2024年創(chuàng)造力大爆發(fā)
- 融入人工智能的《語(yǔ)言學(xué)概論》教案設(shè)計(jì)
- 《認(rèn)識(shí)鐘表》教案設(shè)計(jì)
- 第47屆世界技能大賽江蘇省選拔賽瓷磚貼面項(xiàng)目技術(shù)工作文件
- 2023年度淄博市職業(yè)技能大賽競(jìng)賽方案(CAD機(jī)械設(shè)計(jì) 世賽選拔)
- 2024年鳥類生態(tài)課件:5搭船的鳥教學(xué)方法
- 2024年遠(yuǎn)程教育:《六國(guó)論》課件的在線傳播
- 2024年消防宣傳月知識(shí)競(jìng)賽考試題庫(kù)500題(含答案)
- 2024年典型事故案例警示教育手冊(cè)15例
- 高一歷史(中外歷史綱要上冊(cè))期中測(cè)試卷及答案
- 20K607 防排煙及暖通防火設(shè)計(jì)審查與安裝
- 干細(xì)胞文獻(xiàn)綜述
- 專利申請(qǐng)著錄項(xiàng)目變更書
- 全文《以史為鑒持續(xù)推動(dòng)美麗中國(guó)建設(shè)》PPT
- 《2021國(guó)標(biāo)結(jié)構(gòu)專業(yè)圖集資料》04G410-2 1.5mX6.0m預(yù)應(yīng)力混凝土屋面板(鋼筋混凝土部分)
- 設(shè)計(jì)方案——噴漆烘干房
- Humpty兒童跌倒評(píng)估量表
- 金山江天寺規(guī)約
評(píng)論
0/150
提交評(píng)論