版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年山西省運(yùn)城市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下面程序運(yùn)行后的輸出結(jié)果是______。structabc{inta,b,c;}main(){structabcs[2]={{1,2,3},{4,5,6}};intt=s[0].a+s[1].b;printf("%d\n",t);}
A.5B.6C.7D.8
2.設(shè)線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點(diǎn)p的直接后繼,則應(yīng)執(zhí)行下列()操作。
A.p->next=p->next->next;
B.p=p->nextp->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
3.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.13442B.13431C.01234D.02431
4.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說明書C.用戶手冊(cè)D.軟件需求規(guī)格說明書
5.有以下程序:#include<stdio.h>main(){chara[5][10]={“China”,“beijing”,“very”,“welcome”,“you”};char*p[5];inti;for(i=3;i<5;i++){p[i]=*(a+i);printf(“%s”,p[i]);printf(“%c”,*p[i]);}}程序運(yùn)行后的輸出結(jié)果是()。
A.wwyyB.ChinaCbeijingbC.veryvwelcomewD.welcomewyouy
6.快速排序在_____情況下最易發(fā)揮其長處。
A.被排序數(shù)據(jù)中含有多個(gè)相同排序碼
B.被排序數(shù)據(jù)已基本有序
C.被排序數(shù)據(jù)完全無序
D.被排序數(shù)據(jù)中最大值和最小值相差懸殊
7.下列語句組中正確的是()。
A.char*s;s={“BOOK!”};
B.char*s;s=“BOOK!”;
C.chars[10];s=“BOOK!”;
D.chars[];s=“BOOK!”;
8.
9.
10.選出任何情況下都不引起二義性的宏定義()。
A.#definePOWER(x)x*x
B.#definePOWER(x)((x)*(x))
C.#definePOWER(x)(x*x)
D.#definePOWER(x)(x)*(x)
11.下面不屬于需求分析階段任務(wù)的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.制定軟件集成測(cè)試計(jì)劃D.需求規(guī)格說明書評(píng)審
12.一個(gè)順序表的第一個(gè)元素的存儲(chǔ)地址是100,每個(gè)元素的長度為5,則第7個(gè)元素的地址是()。
A.130B.125C.120D.135
13.設(shè)"char**s;",以下正確的表達(dá)式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
14.下列代碼的復(fù)雜度是多少?如果多于1個(gè)答案正確,選擇最小的那個(gè)。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)
15.下面關(guān)于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
16.假設(shè)下圖中每個(gè)正方形的邊長為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14
17.下列選項(xiàng)中,當(dāng)X為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。
A.x%2==0B.x/2C.x%2!=0D.x%2==1
18.設(shè)有定義:intx=2.以下表達(dá)式中,值不為6的是()。A.2*x,x+=2B.x++.2*xC.x*=(1+x)D.x*=x+1
19.
20.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.AaB.AbC.abD.Ba
二、2.填空題(20題)21.下面程序的運(yùn)行結(jié)果是【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
22.注釋一般分為序言性注釋和______注釋。
23.將以下程序?qū)懗扇窟\(yùn)算表達(dá)式是【】。
if(a>b)max=a;
elsemax=b;
24.下述函數(shù)用于統(tǒng)計(jì)—行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。
word_num(str)
charstr[];
{int,num=O,word=O;
for(i=0;str[i]!=【】;i++)
if(【】=")wprd=0
elseif(word=O)
{
word=1:
【】;
}
return(num);
}
25.以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}
26.若有以下程序
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出結(jié)果是【】。
27.常用的黑箱測(cè)試有等價(jià)分類法、【】、因果圖法和錯(cuò)誤推測(cè)法4種。
28.下列程序段的輸出結(jié)果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
29.以下程序的輸出結(jié)果是______。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
30.當(dāng)循環(huán)隊(duì)列非空且隊(duì)尾指針等于隊(duì)頭指針時(shí),說明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算。這種情況稱為【】。
31.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
32.以下說明語句中,【】是結(jié)構(gòu)體類型名。
typedefstruct
{intn;
charch[8];
}PER;
33.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
34.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
35.函數(shù)compare的功能是比較兩個(gè)字符串是否相等,若相等則函數(shù)返回1,否則返回o,請(qǐng)?zhí)羁铡?/p>
compare(chars[],chart[])
{
inti=0
while(s[i]==t[i]&&【】)i++;
return(【】?1:0);
}
36.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
37.若輸入字符串:(圖片),則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
38.沒有chara,b;,,若要通過a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和第8位(右起為第1位),則b的二進(jìn)制是【】。
39.設(shè)有以下定義和語句,則*(*(P+2)+1)的值為【】。
int[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
40.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
三、1.選擇題(20題)41.請(qǐng)選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}sub(s,y)int*s,y;{staticintt=3;y=s[t];t--;}
A.1234B.4321C.0D.4444
42.有以下程序:#include<string.h>voidf(charp[][10],intn)/*字符串從小到大排序*/{chart[10];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[5][10]={"abc","aabdog","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果是()。
A.2B.4C.6D.3
43.有以下程序:main(){charstr[][10]={"China","Beijing"),*p=str;printf("%s\n",p+10);}程序運(yùn)行后的輸出結(jié)果是()。
A.ChinaB.BeijngC.ngD.ing
44.設(shè)有下列二叉樹:
對(duì)此二叉樹中序遍歷的結(jié)果為
A.ABCDEFB.DAECFC.BDAECFD.DBEFCA
45.若有說明語句:double*P,a;則能通過scanf語句正確給輸入項(xiàng)讀入數(shù)據(jù)的程序段是()。
A.*p=&a;scanf("%lf",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%lf",*p);
D.p=&a;scanf("%lf",p);
46.下面程序輸出的結(jié)果是
main()
{inti;
inta[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf("%d",a[2-i][i]);}
A.159B.753C.357D.591
47.若主函數(shù)中有以下定義和語句:main(){doublea[3][4];……fun(a);}則正確的fun函數(shù)的首部是()
A.voidfun(double*s)
B.fun(double*s[4])
C.fun(double(*s)[3])
D.voidfun(double(*s)[4])
48.X、Y、2被定義為int型變量,若從鍵盤給X、Y、Z輸入數(shù)據(jù),正確的輸入語句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
49.對(duì)長度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為
A.10g2nB.n/2C.nD.n+1
50.字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲(chǔ)形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
51.以下合法的字符型常量是
A.′\x13′B.′\081′C.′65′D.\n
52.運(yùn)行下面程序時(shí),從鍵盤輸入字母H,則輸出結(jié)果是main(){charch;ch=getchar();swimh(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmoming!Bye_ye!
D.Hello!Bye_ye!
53.結(jié)構(gòu)化程序設(shè)計(jì)方法的3種基本控制結(jié)構(gòu)中不包括
A.循環(huán)結(jié)構(gòu)B.遞歸結(jié)構(gòu)C.順序結(jié)構(gòu)D.選擇結(jié)構(gòu)
54.以下程序段的while循環(huán)執(zhí)行的次數(shù)是______。intk=0;while(k=1)k++;
A.無限次B.有語法錯(cuò),不能執(zhí)行C.一次也不執(zhí)行D.執(zhí)行1次
55.下面敘述不正確的是
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)
B.算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間
C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止
D.算法的時(shí)間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的時(shí)間
56.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出的結(jié)果是()。#include<Stdlib.h>main(){charss[]="1,2,3,4,5";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}
A.ABC6789B.ABDC67C.123ABC678D.ABC456789
57.有如下程序
main()
{charch[2][5]={"6937","8254"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
58.設(shè)x=2.5、a=7、y=4.7,算術(shù)表達(dá)式x+a%3*(int)(x+y)%2/4的值為______。
A.2.5B.7C.4.7D.2.75
59.當(dāng)執(zhí)行以下程序段時(shí),______。x=-1;do{x=x*x;}while(!x);
A.循環(huán)體將執(zhí)行1次B.循環(huán)體將執(zhí)行2次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯(cuò)誤
60.假定int類型變量占用兩個(gè)字節(jié),若有定義:intx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是______。
A.3B.6C.10D.20
四、選擇題(20題)61.
62.要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。
A.while((ch—getchar)!=N)printf("%c",ch);
B.while(oh=getchar!=N)printf("%c",ch);
C.while(ch=getchar==N)printf("%c",ch);
D.while((ch—getchar)==N)printf("%c",ch);
63.
64.
65.
66.
下列程序的輸出結(jié)果是()。
voidfun(int*X,inty)
{printf("%d%d",*x,*y);*x=3;*y=1;}
main
{intx=1,y=2;
fun(&y,&x);
printf("%d%d",x,y);
}
A.2143B.1212C.1234D.2112
67.(30)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()
A.排序、索引、統(tǒng)計(jì)
B.選擇、投影、連接
C.關(guān)聯(lián)、更新、排序
D.顯示、打印、制表
68.下述程序執(zhí)行的輸出結(jié)果是()。
#include<stdio.h>
main()
{chara[2][4];,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=&;
printf("%s\n",a);
}
A.are&you
B.you
C.are
D.&
69.下列敘述中正確的是()。
A.循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
B.循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu)
C.循環(huán)隊(duì)列是非線性結(jié)構(gòu)
D.循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)
70.
71.在下列選項(xiàng)中,哪個(gè)不是一個(gè)算法一般應(yīng)該具有的基本特征()。
A.無窮性B.可行性C.確定性D.有窮性
72.
73.有以下程序
74.
下列程序的輸出結(jié)果是()。
char*point(char*pt):
main
{charb[4]={a,c,s,f),*pt=b;
pt=point(pt);
printf("%c\n",*pt);
}
point(char*p)
{p+=3;
returnp;
}
A.sB.cC.fD.a
75.設(shè)有宏定義:
76.
77.在滿足實(shí)體完整性約束的條件下()。
A.一個(gè)關(guān)系中廊該有一個(gè)或多個(gè)候選關(guān)鍵字
B.一個(gè)關(guān)系中只能有一個(gè)候選關(guān)鍵字
C.一個(gè)關(guān)系中必須有多個(gè)候選關(guān)鍵字
D.一個(gè)關(guān)系中可以沒有候選關(guān)鍵字
78.
79.
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。例如,當(dāng)s中的數(shù)為l23456789時(shí),t中的數(shù)為2468。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是在一組得分中,去掉一個(gè)最高分和一個(gè)最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個(gè)數(shù)(n>2)。例如,若輸入9.98.57.68.59.39.58.97.88.68.4共10個(gè)得分,則輸出結(jié)果為8.687500。注意:部分源程序存放在文件prog1.c中,請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入所編寫的若干語句。試題程序:
參考答案
1.B解析:在main函數(shù)中定義了一個(gè)structabc類型的數(shù)組,同時(shí)分別利用{1,2,3}及{4,5,6}對(duì)數(shù)組中兩個(gè)元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對(duì)其中的a,b,c三個(gè)變量進(jìn)行初始化。故s[0].a=1,s[1].b=5,所以本題輸出為6。
2.A
3.Bmain函數(shù)中定義包含5個(gè)元素的數(shù)組m,每個(gè)元素都是NODE類型。指針p指向數(shù)組第1個(gè)元素,指針q指向數(shù)組最后一個(gè)元素。while循環(huán)使用p、q從首尾向中間遍歷,遍歷的同時(shí)為各個(gè)元素賦值。所以第1輪循環(huán),i的值為0,先執(zhí)行的值為++i,后執(zhí)行i++的值也為1,m[0].k和m[4].k的值都為1;接著第2輪循環(huán),i的值為2,先執(zhí)行的值為3,后執(zhí)行i++的值也為3,m[l].k和m[3].k的值都為3;第3輪循環(huán),p和q指向的都是m[2]元素,指針相同,循環(huán)結(jié)束,此時(shí)i的值為4,即m[2].k賦值為4。綜上,程序輸出:13431。本題答案為B選項(xiàng)。
4.D需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評(píng)審四個(gè)方面。所以選擇D。
5.Dmain函數(shù)定義一個(gè)二維字符數(shù)組a,它包含5個(gè)字符串,每個(gè)字符串存放在一個(gè)長度為10的一維數(shù)組中。指針數(shù)組P包含5個(gè)字符指針元素。for循環(huán)中,每次將*(a+i)賦給P[i],再輸出P[i]和*P[i]。由于*(a+i)等價(jià)于a[i],因此每次都是將下標(biāo)為i的字符串首地址賦給p[i],再輸出該字符串和該字符串的首字符。i=3時(shí),輸出字符串“welcome”和首字符“w”;i=4時(shí),輸出字符串“you”和首字符“y”。綜上,輸出結(jié)果為welcomewyouy。故本題答案為D選項(xiàng)。
6.C
7.BA選項(xiàng)去掉花括號(hào)后,賦值正確;C選項(xiàng)和D選項(xiàng)應(yīng)在定義時(shí)賦初值,因?yàn)閿?shù)組名相當(dāng)于常量,不能重新賦值。故本題答案為B選項(xiàng)。
8.C
9.C
10.B解析:引起帶參數(shù)宏的二義性主要有兩個(gè)方面:一是,參數(shù)之間因運(yùn)算符優(yōu)先級(jí)不確定而帶來的二義性。例如本題的選項(xiàng)A),若程序中使用POWER(a+b),會(huì)展開為a+b*a+b,這樣就會(huì)先計(jì)算b*a的值,然后再加一個(gè)a和一個(gè)b,產(chǎn)生二義性。杜絕這種二義性的方法是在宏定義的每個(gè)參數(shù)外加上圓括號(hào)以保證總是先計(jì)算每個(gè)參數(shù)的值,就好像本題的選項(xiàng)D)那樣。另一個(gè)是,整個(gè)宏所代表的表達(dá)式因運(yùn)算符優(yōu)先級(jí)不確定而帶來的二義性。例如本題的選項(xiàng)D),若程序中使用a/POWER(b),會(huì)展開為a/(b)*(b),這樣就會(huì)先計(jì)算a/b的值,然后再乘以b,產(chǎn)生二義性。杜絕這種二義性的方法是對(duì)整個(gè)宏定義加一個(gè)圓括號(hào),就好像本題的選項(xiàng)B)那樣。故選項(xiàng)B)在任何情況下都不會(huì)引起二義性,應(yīng)該選B。
11.C【答案】:C
【知識(shí)點(diǎn)】:需求分析階段的任務(wù)
【解析】:需求分析階段的任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求,借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題??煞譃樾枨筇岢?、需求描述及需求評(píng)審三個(gè)階段。從此可以看出需求分析的任務(wù)不包括制定軟件集成測(cè)試計(jì)劃,故選C。
12.A
13.B
14.D
15.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲(chǔ)空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時(shí)應(yīng)保持相同的值。
\n
16.C
17.A算術(shù)運(yùn)算符的優(yōu)先級(jí)高于關(guān)系運(yùn)算符的優(yōu)先級(jí)。所以當(dāng)x為大于1的奇數(shù)時(shí),A選項(xiàng)的值為假,即0。B選項(xiàng)的值為不定值,但絕對(duì)不是0。C選項(xiàng)的值為真,即1。0選項(xiàng)的值為真,即1。故本題答案為A選項(xiàng)。
18.A[解析]A)選項(xiàng)中逗號(hào)表達(dá)式先計(jì)算第一表達(dá)式2*x,然后計(jì)算表達(dá)式x+=2的值,即x=x+2即4.整個(gè)逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值4.所以選A)。B)選項(xiàng)中首先計(jì)算逗號(hào)表達(dá)式中第一個(gè)表達(dá)式x++,此時(shí)x為3.再執(zhí)行第二個(gè)表達(dá)式2*x=2*3=6.所以逗號(hào)表達(dá)式為第二個(gè)表達(dá)式的值6.C)選項(xiàng)的賦值表達(dá)式可以表示為x==x*(1+x)=2*(1+2)=6.D)選項(xiàng)中的表達(dá)式可以表示為x=x*(x+1)=2*3=6.
19.A
20.B函數(shù)fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對(duì)該地址的值執(zhí)行自增1;main函數(shù)中p1指向ch1,p2指向ch2。通過fun函數(shù)的調(diào)用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項(xiàng)。
21.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學(xué)表達(dá)式如下:
本題中定義了一個(gè)長度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學(xué)表達(dá)式以計(jì)算其返回值s=1+2+3=6,所以空格處應(yīng)該填6。
22.功能性功能性解析:注釋一般分為序言性注釋和功能性注釋。序言性注釋通常位于每個(gè)程序的開頭部分,給出程序的整體說明;功能性注釋一般嵌在源程序體之中,主要描述其后的語句或程序做什么,
23.max=(a>b)?a:b;max=(a>b)?a:b;解析:本題考查三目運(yùn)算符的用法,條件運(yùn)算符要求有三個(gè)操作對(duì)象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3所以,我們可以寫成(a,b)?a:b,它是一個(gè)“條件表達(dá)式”。執(zhí)行順序是:如果(a>b)條件為真,則條件表達(dá)式取值a,否則取值b。注意:逗號(hào)表達(dá)式的執(zhí)行原理。
24.\0'或0或NULLstr[i]num++或num=num+1或mum+=l\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或mum+=l解析:觀察題目要求,可以知道以下幾點(diǎn):
①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個(gè)字符;
②str[i]代表字符串str中的第i+1個(gè)字符;
③整型變量num的值是要記錄的單詞的個(gè)數(shù)。
C語言中規(guī)定字和會(huì)串的最后一個(gè)字和會(huì)是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第一個(gè)空中應(yīng)填寫“\\0”;題中第二個(gè)空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫“num++”,通地變量num的加1累加到字符串中的單詞個(gè)數(shù)。
25.1020010200解析:本題考查的是混合運(yùn)算?!?a/b<1)&&(a%b<1)”的運(yùn)算順序?yàn)椋豪ㄌ?hào)>算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個(gè)表達(dá)式的結(jié)果為0,所以輸出的a,b,c的值為10200。
26.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個(gè)元素;若不是則判斷a[i][j]的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a(bǔ)[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。
27.邊值分析法邊值分析法解析:本題考查了黑箱測(cè)試的方法。黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)分類法、邊值分析法、因果圖法和錯(cuò)誤推測(cè)法。
28.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時(shí)候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。
29.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
30.上溢上溢解析:入隊(duì)運(yùn)算是指在循環(huán)隊(duì)列的隊(duì)尾加入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將隊(duì)尾指針進(jìn)一(即rear=rear+1),并當(dāng)rear=m+1時(shí)置rear=1;然后將新元素插入隊(duì)尾指針指向的位置。當(dāng)循環(huán)隊(duì)列非空(s=1)時(shí)且隊(duì)尾指針等于隊(duì)頭指針時(shí),說明循環(huán)隊(duì)列已滿,不能進(jìn)行入隊(duì)運(yùn)算,這種情況稱為“上溢”。
31.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
32.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個(gè)結(jié)構(gòu)體類型,此時(shí),也可以用PER來定義變量。
33.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲(chǔ)結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
34.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個(gè)字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動(dòng)可以引用到字符串中的每一個(gè)字符。題中的*(ptr1+k)是使指針ptr1向后移動(dòng)k個(gè)位置,然后取出指向的字符。
35.s[i]&&t[i]或s[i]!='\0'&&t[i]!='\0'!(s[i]-t[i])s[i]&&t[i]或s[i]!='\\0'&&t[i]!='\\0'\r\n!(s[i]-t[i])解析:while后括號(hào)中的判斷條件為兩個(gè)字符串相同位置上的字符相等,且兩個(gè)字符串都沒有結(jié)束,則循環(huán)。故第一空應(yīng)該填s[i]&&t[i]或其他等價(jià)表達(dá)式。如果兩個(gè)字符串完全相等,則while循環(huán)退出時(shí)s[i]和t[i]的值同時(shí)為0,否則s[i]和t[i]不相等。故表達(dá)式s[i]-t[i]在字符串相等時(shí)為0,不相等時(shí)為非0,所以第二空應(yīng)該填!(s[i]-t[i])就滿足題意了。
36.k=p;k=p;解析:為尋找數(shù)組中最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查通常從首元素開始順序向后繼元素考查。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時(shí)最大元素s[k]更大時(shí),應(yīng)該用p更新k,所以在空框處應(yīng)填入代碼'k=p;'。
37.00解析:函數(shù)getchar()是從鍵盤得到用戶輸入的一個(gè)字符。用戶輸入的第1個(gè)字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個(gè)循環(huán)不會(huì)被執(zhí)行。
38.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個(gè)相應(yīng)的二進(jìn)制位都為1時(shí),該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。
39.6060解析:本題定義了一個(gè)3行2列的二維數(shù)組a,并定義了一個(gè)指向兩個(gè)元素的一維數(shù)組指針p,讓p指向二維數(shù)組a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。
40.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
41.C解析:若指針s指向數(shù)組a,則s[t]可以引用數(shù)組a中下標(biāo)為t的元素。注意:通過數(shù)組的首地址引用數(shù)組元素。
42.C解析:題目中已告知函數(shù)f()的作用是將字符串從小到大排序,因此主函數(shù)中調(diào)用完f(p,5);后,二維數(shù)組p中的內(nèi)容為('aabdfg','abbd','abc','cd','dcdbc'}。輸出的結(jié)果是strlen(p[0]),即p中第1個(gè)字符串的長度,所以結(jié)果是6。故本題應(yīng)該選擇C。
43.B解析:本題中首先定義了一個(gè)字符串?dāng)?shù)組并初始化,初始化后使得str[0]='China',str[1]='Beijng',然后定義一個(gè)指針變量p并讓其指向str,而在該二維數(shù)組中定義每個(gè)字符串的長度為10,所以p+10將指向str[1],因此最后輸出*(p+10)的值為Beijng。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
44.C解析:叉樹的遍歷分為先序、中序、后序三種不同方式。本題要求中序遍歷,其遍歷順序應(yīng)該為:中序遍歷左子樹->,訪問根結(jié)點(diǎn)->中序遍歷右子樹.按照定義,中序遍歷序列是BDAECF,故答案為B。
45.D解析:*p間接引用指針指向的變量,因此“(*p)=&a”不對(duì)。scanf()的輸入變量必須為地址,因此C是錯(cuò)誤的。
46.B解析:本題用循環(huán)的方法考查對(duì)數(shù)組概念的掌握。首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[2][0]=7,當(dāng)然,如果用排除法,就不用考慮后面的循環(huán),因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為7的選項(xiàng)只有B)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則printf函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。
47.D
48.B解析:C語言中沒有輸入輸出語句,它是通過C語言提供的函數(shù)來實(shí)現(xiàn)的,本題C中,應(yīng)為變量地址。
49.C解析:對(duì)于長度為n的有序線性表,在最壞情況下,二分查找只需要比較logn2次,而順序查找需要比較n次。
50.D解析:將—個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。
51.A解析:C語言的字符常量是用單引號(hào)(即撇號(hào))括起來的一個(gè)字符。除此之外,在C語言中還允許用一個(gè)'\\'開頭的字符序列來表示字符常量。其中,形式'\\ddd'表示1到3位8進(jìn)制數(shù)所代表的字符;形式'\\xhh'表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中,\'\\x13\'表示回車符,是一個(gè)字符常量;\'\\081\'用8進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)?進(jìn)制數(shù)所代表的字符中不會(huì)出現(xiàn)數(shù)字'8';\'65\'不是一個(gè)字符,而是一個(gè)十進(jìn)制數(shù)字;'\\n'是用雙引號(hào)括起來的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。
52.C解析:本題主要對(duì)switch語句進(jìn)行了考查。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時(shí),則執(zhí)行de-fault后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'C'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行
53.B解析:本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個(gè)大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)順序的構(gòu)成了一個(gè)結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
54.A
55.D解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,故D選項(xiàng)不正確。
56.A解析:本題程序一開始定義了一個(gè)字符數(shù)組ss,并用一個(gè)字符串常量初始化之。然后使用gets()函數(shù)從鍵盤緩沖區(qū)讀入一個(gè)字符串'ABC',此時(shí)gets()將改變數(shù)組的前4個(gè)元素為{\'A\',\'B\',\'C\',\'\\0\'}。接下來的strcat()函數(shù)將一個(gè)字符串連接到字符串ss之后,因?yàn)閟s[3]被gets()設(shè)置為\'\\0\'(字符串結(jié)束標(biāo)志),故strcat()從ss[3]開始將'6789'依次寫入ss[3]、ss[4]、ss[5]、ss[6],并將一個(gè)\'\\0\'寫入ss[7]。所以輸出結(jié)果是ABC6789,故應(yīng)該選擇A。
57.C解析:該題稍微難一點(diǎn)。主要要搞清楚以下幾點(diǎn):①定義了一個(gè)指針數(shù)組char*p[2]后,程序中第一個(gè)循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個(gè)指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對(duì)應(yīng)關(guān)系,以后對(duì)二維數(shù)組ch的某個(gè)元素的引用就有兩種等價(jià)的形式:ch[i][j]或p[i][j]。②對(duì)二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個(gè)循環(huán)中的循環(huán)體s=s*10+p[i][j]-\'0\';的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動(dòng)一位,并在空出來的個(gè)位上添一個(gè)0),再將當(dāng)前p[i][j]中的字符量轉(zhuǎn)換為相應(yīng)的數(shù)字,然后把這個(gè)數(shù)字加到s的個(gè)位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i]\ue009[j]>\'\\0\'是指p[i][j]中的字符只要不是字符串結(jié)束標(biāo)志\'\\0\'就繼續(xù)循環(huán),語句j+=2;是使下標(biāo)j每次增加2,也即一個(gè)隔一個(gè)地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個(gè)隔一個(gè)地取出字符,分別是\'6\'和\'3\',然后從p[1]所指向的字符串'8254'中一個(gè)隔一個(gè)地取出字
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版美容院會(huì)員積分體系合作協(xié)議4篇
- 2025年度教育培訓(xùn)機(jī)構(gòu)課程開發(fā)及師資培訓(xùn)合同4篇
- 2025年成都美食研發(fā)上灶師父招聘與新品開發(fā)合同2篇
- 三方產(chǎn)品銷售合同范本(2024版)
- 二零二五年度商業(yè)地產(chǎn)租賃收益權(quán)轉(zhuǎn)讓合同3篇
- 2025年度智慧農(nóng)業(yè)項(xiàng)目采購合同解除協(xié)議2篇
- 二零二五年度鋼管車輛運(yùn)輸合同車輛保險(xiǎn)理賠與費(fèi)用結(jié)算合同3篇
- 2025版動(dòng)漫主題咖啡廳經(jīng)營管理協(xié)議3篇
- 二零二五年度車輛抵押抵押權(quán)轉(zhuǎn)讓合同范本3篇
- 2025年生態(tài)園區(qū)委托物業(yè)管理合同范本3篇
- 《天潤乳業(yè)營運(yùn)能力及風(fēng)險(xiǎn)管理問題及完善對(duì)策(7900字論文)》
- 醫(yī)院醫(yī)學(xué)倫理委員會(huì)章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 農(nóng)民專業(yè)合作社財(cái)務(wù)報(bào)表(三張報(bào)表)
- 動(dòng)土作業(yè)專項(xiàng)安全培訓(xùn)考試試題(帶答案)
- 大學(xué)生就業(yè)指導(dǎo)(高職就業(yè)指導(dǎo)課程 )全套教學(xué)課件
- 死亡病例討論總結(jié)分析
- 第二章 會(huì)展的產(chǎn)生與發(fā)展
- 空域規(guī)劃與管理V2.0
- JGT266-2011 泡沫混凝土標(biāo)準(zhǔn)規(guī)范
- 商戶用電申請(qǐng)表
評(píng)論
0/150
提交評(píng)論