2022年甘肅省慶陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第1頁
2022年甘肅省慶陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第2頁
2022年甘肅省慶陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第3頁
2022年甘肅省慶陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第4頁
2022年甘肅省慶陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

2022年甘肅省慶陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

有以下程序:

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ù)組右上半三角

1234

678

1112

16

則在程序下劃線處應(yīng)填入的是()。

A.i-1B.iC.i+1D.4一i

2.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。

A.'a'<=c1<='Z'

B.(c1>=A)‖c1<=z)

C.('a'=>c1‖("z"<=c1)

D.(c1>='a')&&(c1<='z')

3.

4.有以下程序:

運(yùn)行時(shí),若輸入123450<;回車>;,則輸出結(jié)果是()。

A.66656B.6566456C.66666D.6666656

5.以下不正確的敘述是()。

A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低

B.在C程序中,APH和aph是兩個(gè)不同的變量

C.若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放人a中,而b中的值不變

D.當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)整型變量只能輸入整型數(shù)值,對(duì)實(shí)型變量只能輸入實(shí)型數(shù)值

6.若有定義“intx=10;”,則表達(dá)式“x-=x+x”的值為()。

A.0B.-20C.-10D.10

7.在下列定義語句中,編譯時(shí)會(huì)出現(xiàn)編譯錯(cuò)誤的是()。

A.chara=‘\x2d’;B.chara=‘\n’;C.chara=‘a(chǎn)’;D.chara=“aa”;

8.將兩個(gè)字符串連接起來組成一個(gè)字符串時(shí),選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()

9.下列程序的輸出結(jié)果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

10.有以下程序

#include<stdio.h>

main()

{charc1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序運(yùn)行后,若從鍵盤輸入(從第1列開始)

123<回車>

45678<回車>

則輸出結(jié)果是A.A.1267B.1256C.1278D.1245

11.有以下程序:main(){inta[][3]={{1,2,3),{4,5,0)),(*pa)[3],i;pa=a;for(i=0;i<3;i++)if(i<2)pa[1][i]=pa[1][i]-1;elsepa[1][i]=1;printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}執(zhí)行后輸出結(jié)果是()。

A.7B.6C.8D.無確定值

12.若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。

main()

{inti,j=50,a[]={7,4,10,5,8};

for()

j+=a[i];

primf("%d,j-40);

}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

13.有以下程序:#include<string.h>inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t++=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。

A.24B.28C.32D.36

14.運(yùn)行下列程序時(shí),若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。main{floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a<b){t=a;a=b.b=t;)if(a<c){t=a;a=c;c=t;)it(b<c){t=b;b=C;c—=;)printf("%f\n%f\n%f\n",a,b,c);}A.1.002.003.00B.1.003.002.00C.132D.3.000002.000001.00000

15.

16.以下關(guān)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)說法錯(cuò)誤的是()

A.比順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)密度小

B.每個(gè)節(jié)點(diǎn)是由數(shù)據(jù)域和指針域組成

C.查找結(jié)點(diǎn)時(shí)鏈?zhǔn)酱鎯?chǔ)比順序存儲(chǔ)快

D.邏輯上不相鄰的節(jié)點(diǎn)物理上可能相鄰

17.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。

A.多態(tài)性B.繼承C.封裝性D.模塊化

18.遞歸式的先序遍歷一個(gè)n節(jié)點(diǎn),深度為d的二叉樹,則需要??臻g的大小為()

A.O(logn)B.O(nlogn)C.O(n)D.O(d)

19.用鄰接矩陣A表示有向圖G的存儲(chǔ)結(jié)構(gòu),則有向圖G中頂點(diǎn)i的出度為()。

A.第i行非0元素的個(gè)數(shù)之和B.第i列非0元素的個(gè)數(shù)之和C.第i行0元素的個(gè)數(shù)之和D.第i列0元素的個(gè)數(shù)之和

20.軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于()。

A.定義階段B.開發(fā)階段C.維護(hù)階段D.上述三個(gè)階段

二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對(duì)象。

22.下列程序的功能是對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(C))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

23.數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

24.數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理和控制。

25.以下程序的功能是根據(jù)輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."??瞻滋幮枰钊氲膬?nèi)容是

#include<stdio.h>

voidYesNo(charch)

{switch(ch)

{case′y′:

case′Y′:printf("\nThisisYES.\n");

case′n′:

case′N′:printf("\nThisisNO.\n");}

main()

{charch;

printf("\nEnterachary,Yorn,N:");

ch=【】;

printf("ch;%c",ch);

YesNo(ch);}

26.以下說明語句中,【】是結(jié)構(gòu)體類型名。

typedefstruct

{intn;

charch[8];

}PER;

27.類是一個(gè)支持集成的抽象數(shù)據(jù)類型,而對(duì)象是類的【】。

28.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。

29.以下程序的運(yùn)行結(jié)果是()。

intk=0;

voidfun(intm)

{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}

main()

{inti=4;

fun(i++);printf("i=%dk=%d\n",i,k);

}

30.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時(shí),確定a、b、c能構(gòu)成三角形的條件是需同時(shí)滿足三個(gè)條件:a+b>c,a+c>b,b+c>a。請(qǐng)?zhí)羁铡?/p>

main()

{floata,b,c;

scanf("%f%f%f",&a,&b,&c);

if(【】)printf("YES\n");/*abc能構(gòu)成三角形*/

elseprintf("NO\n");/*abc不能構(gòu)成三角形*/

}

31.當(dāng)運(yùn)行以下程序時(shí),從鍵盤輸入abcdabcdef<CR>

cde<CR>

(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是【】。

#include<stdio.h>

main()

{inta;chars[80],t[80];

gets(s);gets(t);

a=fun(s,t);

printf("a=%d\n",a);}

fun(char*p,char*q)

{inti;

char*p1=p;

char*q1;

for(i=0;*p!='\0';p++,i++)

{p=p1+i;

if(*p!=*q)continue;

for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)

if(*p!=*q1)break;

if(*q1=='\0')returni;}

return(-1);}

32.以下程序中函數(shù)fun的功能是:構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單詞鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請(qǐng)?zhí)羁胀瓿珊瘮?shù)disp。[*]

#include<stdio.h>

typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立鏈表*/

{…}

voiddisp(Node*h)

{Node*

33.以下程序的輸出是【】。

main()

{

charstrl[]]="Howdoyoudo",*p1=strl;

strcpy(strl+strlen(strl)/2,"esshe");

printf("%s\n",p1);

}

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.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

36.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。

c=(a-=(b-5));

c=(a%11)+(b=3);

37.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)—管理與控制。

38.數(shù)據(jù)庫設(shè)計(jì)分為以下六個(gè)設(shè)計(jì)階段:需求分析階段、【】、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。

39.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲(chǔ)空間是______的。

40.下列程序運(yùn)行后的輸出結(jié)果是______。

#include<stdio.h>

main()

{chars[20];

scanf("%s",s);

printf("%s",s);

}

運(yùn)行程序,輸入HOWAREYOU。

三、1.選擇題(20題)41.若有代數(shù)式“ex+y2+y/x”,則正確的C語言表達(dá)式是()

A.ex+y*y+y/x

B.expx+pow(y,2)+y/x

C.exp(x)+pow(y,2)+y/x

D.ex+y2+y/x

42.下列關(guān)于棧的描述正確的是()。

A.在棧中只能插入元素而不能刪除元素

B.在棧中只能刪除元素而不能插入元素

C.棧是特殊的線性表,只能在一端插入或刪除元素

D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素

43.下列敘述中正確的是______。

A.C程序中注釋部分可以出現(xiàn)在程序中任何合適的地方

B.花括號(hào)“{”和“}”只能作為函數(shù)體的定界符

C.構(gòu)成C程療的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號(hào)是C語句之間的分隔符,不是語句的一部分

44.有以下程序main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序運(yùn)行后輸出結(jié)果是

A.44B.33C.34D.43

45.當(dāng)執(zhí)行下面的語句定義一維數(shù)組a后,此數(shù)組的所有元素為()inta[10];

A.a[1],a[2],a[3],a[4],a[5],a[6],a[8],a[9],a[10],a[10]

B.a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]

C.a[0],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]

D.a[1],a[2],a[3],a[4],a[5],a[9],a[7],a[8],a[9],a[10],a[11]

46.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是______。

A.程序的規(guī)模B.程序的易讀性C.程序的執(zhí)行效率D.程序的可移植性

47.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性

48.設(shè)已定義i和k為int類型變量,則以下for循環(huán)語句______。for(i=0;k=-1,k=1,i++,k++)printf("****\n");

A.判斷循環(huán)結(jié)束的條件不合法B.是無限循環(huán)C.循環(huán)—次也不執(zhí)行D.循環(huán)只執(zhí)行一次

49.在下列關(guān)于邏輯表達(dá)式a&&b的敘述中,錯(cuò)誤的一條是()

A.若a為真、b為真,則a&&b為真

B.若a為真、b為假,則a&&b為假

C.若a為假、b為真,則a&&b為真

D.若a為假、b為真,則a&&b為假

50.下面的程序輸出結(jié)果是()。#defineU5#defineVU+1#defineWV*V/2main(){printf("%d",W);printf("%d",5*W);}

A.1872B.10.552.5C.10.525.5D.1030

51.若有以下結(jié)構(gòu)體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;

A.example.x=10

B.examplev2.x=10

C.structv2;v2.x=10

D.structexamplev2={10};

52.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。

A.詳細(xì)設(shè)計(jì)B.需求分析C.總體設(shè)計(jì)D.編程調(diào)試

53.下列說法不正確的是()。

A.C語言程序是以函數(shù)為基本單位的,整個(gè)程序由函數(shù)組成

B.C語言程序的一條語句可以寫在不同的行上

C.C語言程序的注釋行對(duì)程序的運(yùn)行功能不起任何作用,所以注釋應(yīng)該盡可能少寫

D.C語言程序的每個(gè)語句都以分號(hào)結(jié)束

54.閱讀下面程序,則程序段的功能是

#include"stdio.h"

main()

{intc[]={23,1,56,234,7,0,34},i,j,t;

for(i=1;i<7;i++)

{t=c[i];j=i-1;

while(j>=0&&t>c[j])

{c[j+1]=c[j];j--;}

c[j+1]=t;}

for(i=0;i<7;i++)

printf("%d",c[i]);

putchar(′\n′);}

A.對(duì)數(shù)組元素的升序排列B.對(duì)數(shù)組元素的降序排列C.對(duì)數(shù)組元素的倒序排列D.對(duì)數(shù)組元素的隨機(jī)排列

55.下列關(guān)于棧的敘述中正確的是

A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧足先進(jìn)先出的線性表D.棧是先進(jìn)后出的線性表

56.下面程序的運(yùn)行結(jié)果是

#include<stdio.h>

main()

{staticchara[]="Languagef",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));}

A.gaeB.gaC.LanguageD.有語法錯(cuò)

57.下面程序的功能是把316表示為兩個(gè)加數(shù)的和,使兩個(gè)加數(shù)分別能被13和11整除,請(qǐng)選擇填空。#include<stdio.h>main(){inti=0,j,k;do{i++;k=316-13*i}while(______);j=k/11;printf("316=13*%d+11,%d”,i,j);}

A.k/11B.k%11C.k/11==0D.k%11==0

58.有下列二叉樹,對(duì)此二叉樹中序遍歷的結(jié)果為()。

A.ABCDEFB.BDAECFC.ABDCEFD.ABCDFE

59.下面程序段中c的二進(jìn)制值是______。chara=3,b=6,c;c=ab<<1;

A.1011B.1111C.11110D.11100

60.以下選項(xiàng)中非法的表達(dá)式是()。

A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1

四、選擇題(20題)61.有如下程序: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

62.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.1.1.3B.2,2,3C.1,2,3D.3,3,3

63.

64.下面敘述中正確的是(

)。A.全局變量的作用域一定比局部變量的作用域范圍大B.靜態(tài)類型變量的生存期貫穿于整個(gè)程序的運(yùn)行期間C.函數(shù)的形參都屬于全局變量D.未在定義語句中賦值的auto變量和static變量的初值都是隨機(jī)值

65.

66.

67.

68.有以下程序:

voidfunl(char*p)

{char*q;

q=P;

while(*q!='\O')

{(*q)++;q++;}

}

main

{chara[]={"Program"),*P;

p=&a[3];funl(p);

printf("%s\n",a);

}

程序執(zhí)行后的輸出結(jié)果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program

69.設(shè)有以下函數(shù):

voidfun(intn,char}s){……}

則下面對(duì)函數(shù)指針的定義和賦值均正確的是()。

A.void(*pf)(int,char);pf=&fun;

B.void+pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char*);pf=fun;

70.有以下程序

main()

{inti=10,j=1;

printf("%d,%d\n",i--,++j);

}

執(zhí)行后的輸出結(jié)果是

A.9,2B.10,2

C.9,1D.10,1

71.有以下程序:

程序運(yùn)行后的輸出結(jié)果是()。

A.22B.76C.72D.62

72.有下列二叉樹.對(duì)此二叉樹前序遍歷的結(jié)果為()。

A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ

73.有如下程序

#include"stdio.h"

fun(inta,intb)

{ints;

s=a*(b/4);

printf("%d\n",s);}

main()

{inta=16,b=10;

fun(a,b);

}

該程序的輸出結(jié)果是

A.16B.32

C.40D.80

74.

75.

76.以下程序的運(yùn)行結(jié)果是()。

A.17B.16C.15D.14

77.

78.以理對(duì)枚舉類型名的定義中正確的是______。

A.enuma={one,two,three);

B.enuma{one=9,two=1three};

C.enuma={"one","two","three"};

D.enuma{"one","two"."three"};

79.數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對(duì)各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()

A.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)B.計(jì)算方法C.數(shù)據(jù)映像D.邏輯存儲(chǔ)

80.下列敘述中正確的是()。

A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上3種說法都不對(duì)

五、程序改錯(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.M名學(xué)生的成績已在主函數(shù)中放入一個(gè)帶頭結(jié)點(diǎn)的鏈表結(jié)構(gòu)中,h指向鏈表的帶頭結(jié)點(diǎn)。請(qǐng)編寫函數(shù)proc(),它的功能是:找出學(xué)生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.B

\n本題中要求輸出右上半角的數(shù),對(duì)角線上的數(shù)的下標(biāo)相同,所以j=i。

\n

2.D解析:C語言規(guī)定,字符常量在程序中要用單引號(hào)括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項(xiàng)的這種形式在C語言中沒有,所以選項(xiàng)D)正確.

3.D

4.Bswitch語句的執(zhí)行流程是:首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號(hào)中表達(dá)式的值與某個(gè)e·*后面的常量表達(dá)式的值相等,就執(zhí)行此ca*后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓括號(hào)中表達(dá)式的值與所有ca$e后面的常量表達(dá)式都不等,則執(zhí)行default后面前語句。然后退出。所以輸入l時(shí)打印65,輸入2時(shí)打印6,輸入3時(shí)打印64,輸入4時(shí)打印5,輸入5時(shí)打印6。

5.D

6.C算術(shù)運(yùn)算符“+”的優(yōu)先級(jí)高于,且“-=”的結(jié)合方向?yàn)樽杂蚁蜃?。所以表達(dá)式“x-=x+x”可以表示成“x=x-(x+x)=10-(10+10)=-10”。故本題答案為C選項(xiàng)。

7.DD選項(xiàng)中將字符串常量“aa”賦給字符變量a是錯(cuò)誤的。故本題答案為D選項(xiàng)。

8.C將兩個(gè)字符串連接起來組成一個(gè)字符串,選用strcat函數(shù)來連接。

9.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時(shí),a就會(huì)增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。

10.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf(“%c%c\\n”,c5,c6)輸出45。

11.A解析:本題定義了一個(gè)指向由3個(gè)元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時(shí)用指針變量pa,表示數(shù)組元素a[i][j]的形式是pa[i][j]。for循環(huán)執(zhí)行了3次;第一次i值為0,執(zhí)行pa[1][0]=pa[1][0]-1,執(zhí)行后a[1][0]的值變?yōu)?;第二次i值為1,執(zhí)行pa[1][1]=pa[1)[1]-1,執(zhí)行后a[1][1]的值為4;第三次i值為2,執(zhí)行pa[1][2]=1,執(zhí)行后a[1][2]的值變?yōu)?。故printf語句輸入的值為2+4+1=7。所以,A選項(xiàng)為所選。

12.D解析:要想使程序輸出是25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)中的語句,使引用的數(shù)組元素累加為65-50=15即可。

13.B解析:本題考查的是外部變量的應(yīng)用。因?yàn)槌绦虻某跏糹nta=4;語句定義了外部變量a,在以后的執(zhí)行過程中,當(dāng)i=0時(shí),調(diào)用f(0)函數(shù),執(zhí)行的語句是else{inta=7;t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=7,返回值語句returnt+a++;處,外部變量a起作用,返回值為7+5=12:當(dāng)i=1時(shí),調(diào)用f(1)函數(shù),執(zhí)行的是語句else{inta=6:t+=a++;},此處程序中又定義了變量a,所以原來定義的外部變量在此不起作用,得到t=6,返回值語句

14.D本題考查if語句。第1個(gè)if語句,如果a<b,則a與b交換;第2個(gè)if語句,如果a<c,則a與c交換;第3個(gè)if語句,如果b<2t,則b與c交換。3個(gè)if語句結(jié)合起來實(shí)現(xiàn)的功能就是將a、b、C按從大到小排序。

15.D

16.C

17.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。

18.D

19.A

20.B解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)三個(gè)階段組成。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開發(fā)階段由5個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測(cè)試和確認(rèn)測(cè)試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。選項(xiàng)B正確。

21.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似屬性與操作的一組對(duì)象。

22.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。

23.概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫概念設(shè)計(jì)階段)

24.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實(shí)現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

25.getchargetchar解析:考查了字符可以作為整型變量來對(duì)待,參與操作。題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個(gè)字符是y(Y)還是n(N),主要用了一個(gè)switch多分支結(jié)構(gòu)來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實(shí)現(xiàn)的。

26.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個(gè)結(jié)構(gòu)體類型,此時(shí),也可以用PER來定義變量。

27.實(shí)例將屬性、操作相似的對(duì)象歸為類,也就是說,類是具有共同屬性、共同方法的對(duì)象的集合。所以,類是對(duì)象的抽象,對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例。

28.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è)。

29.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個(gè)變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時(shí)全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。

30.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的條件是兩邊之和大于第三邊。要用'&&'指令連接三個(gè)條件,表示三個(gè)條件都要滿足。

31.a=6a=6解析:字符指針p++使指針向后移動(dòng)一個(gè)字符的位置,而*p則是取得指針p所在位置的字符元素。

32.

33.HowdoessheHowdoesshe解析:strcpy(strl,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測(cè)試字符串str的長度,函數(shù)的值為字符串中實(shí)際長度,不包括\'\\0\'在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe。

34.gae

35.str[i]或str+iistr[i]或str+i\r\ni

36.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時(shí)b的值并未被改變。在第2個(gè)表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。

37.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)—管理與控制。

38.概念設(shè)計(jì)階段概念設(shè)計(jì)階段解析:數(shù)據(jù)庫設(shè)計(jì)分為以下六個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段及數(shù)據(jù)庫運(yùn)行和維護(hù)階段。

39.連續(xù)連續(xù)解析:順序存儲(chǔ)結(jié)構(gòu)具有兩個(gè)特點(diǎn):1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。

40.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。

41.C

42.C解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)對(duì)棧的定義及其特點(diǎn)可知:棧是限定只在表尾進(jìn)行插入或刪除操作的線性表,因此棧是先進(jìn)后出的線性表,對(duì)棧的插入與刪除操作,不需要改變棧底元素。棧是限定只在表尾進(jìn)行插入或刪除操作的線性表。

43.A解析:C程序中注釋部分用“/*”和“*/”括起來,可以出現(xiàn)在程序中任何合適的地方;花括號(hào)“{”和“}”不僅可作為函數(shù)體的定界符,也可作為復(fù)合語句的定界符;構(gòu)成C程序的基本單位是函數(shù);一個(gè)語句必須在最后出現(xiàn)分號(hào),分號(hào)是C語句中不可缺少的部分。

44.C解析:本題考查的是字符數(shù)組的初始化。字符數(shù)組即可以用{初始化列裹}來初始化,也可以用一個(gè)字符串常量來初始化。但字符串常量系統(tǒng)會(huì)自動(dòng)為其添加結(jié)束標(biāo)記'\\0',故比實(shí)際長度要多一位,所以本題輸出為34,應(yīng)該選擇C。

45.B

46.B解析:采用結(jié)構(gòu)化編程方法的好處主要在于:一是便于控制、降低程序的復(fù)雜性,因此便于編寫程序。二是程序清晰易讀,可理解性好。因此,結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是程序的易讀性,而不是程序的規(guī)模、程序的執(zhí)行效率和程序的可移植性。

47.B解析:一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)特性:有窮性;確定性;可行性;有零個(gè)或多個(gè)輸入;由一個(gè)或多個(gè)輸出.簡潔性不屬于這5個(gè)特性,所以本題應(yīng)該選擇B。

48.B解析:本題定義了一個(gè)for循環(huán),循環(huán)變量是i,但由于本題并沒有設(shè)置循環(huán)條件,所以循環(huán)的條件永遠(yuǎn)默認(rèn)為真,即無限次執(zhí)行循環(huán)。

49.C

50.D解析:宏W展開后為V*V/2,繼續(xù)展開為U+1*U+1/2,再繼續(xù)展開得5+1*5+1/2=5+5+0=10。而5*W展開后為5*5+1*5+1/2=25+5+0=30。故應(yīng)該選擇D。

51.D解析:在定義結(jié)構(gòu)體變量時(shí),不能只用結(jié)構(gòu)體名example或關(guān)鍵字struct進(jìn)行定義,必需要用結(jié)構(gòu)缽類型名structexample定義,在引用結(jié)構(gòu)體成員變量時(shí),需要用結(jié)構(gòu)體變量名進(jìn)行引用,所以選D。

52.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個(gè)模塊的功能、建立與已確定的軟件需求的對(duì)應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評(píng)估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計(jì)的任務(wù)是:在使用程序設(shè)計(jì)語言編制程序以前,對(duì)所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。需求分析是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進(jìn)度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯(cuò)誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計(jì)階段。

53.C解析:本題涉及C語言的3個(gè)基本知識(shí)點(diǎn):①C語言的源程序是由函數(shù)構(gòu)成的,函數(shù)是其基本單位,每一個(gè)函數(shù)完成相對(duì)獨(dú)立的功能,其中只能包括一個(gè)主函數(shù);②C語言規(guī)定每個(gè)語句以分號(hào)結(jié)束,其書寫格式是自由的,一條語句可以寫在不同的行上,或者一行也可以寫多條語句;⑧注釋行雖然對(duì)程序的運(yùn)行不起作用,但是它可以方便程序員閱讀,提高程序的可讀性和可移植性,所以書寫注釋行還是很有必要的。

54.B解析:讀懂兩個(gè)循環(huán)的關(guān)系,是解這個(gè)題目的關(guān)鍵,本題的第一個(gè)for循環(huán)的作用是實(shí)現(xiàn)對(duì)數(shù)組元素的遍歷,第二個(gè)循環(huán)的作用是排序。while(j>=0&&t>c[j]),這個(gè)語句是控制排序的關(guān)鍵語句,它即實(shí)現(xiàn)了比較兩個(gè)元素大小的作用,又實(shí)現(xiàn)了元素向后移動(dòng)的作用,不斷地把大的數(shù)據(jù)向前移動(dòng),直到找到一個(gè)比它小的,或到數(shù)據(jù)的上界為止。

55.D解析:對(duì)??蛇M(jìn)行插入和刪除數(shù)據(jù)的操作,但必須牢記插入和刪除數(shù)據(jù)都只能在棧頂,是一種特殊的線性表.所以棧是先進(jìn)后出的線性表。

56.A解析:考查用指針來引用字符數(shù)組元素的方法。指針p1+k相當(dāng)于指針p1向后移動(dòng)了k個(gè)字符的位置,指針p2同理。

57.B解析:本題的關(guān)鍵是兩個(gè)加數(shù)分別能被13和11整除。當(dāng)k%11的值為0時(shí),則退出循環(huán),將執(zhí)行j=k/11;語句,輸出結(jié)果,所以該表達(dá)式合理的條件是k%11。

58.B解析:對(duì)二又樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。在遍歷左,右子樹時(shí),注意依舊按照“左子樹—根結(jié)點(diǎn)—右于樹”的順序。

59.B解析:C語言提供六種位運(yùn)算符,按優(yōu)先級(jí)由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達(dá)式c=ab<<1先運(yùn)算b<<1得二進(jìn)制值為00001100,再運(yùn)算a∧00001100,最后得二進(jìn)制值00001111。

60.D解析:選項(xiàng)A)在C語言中是一個(gè)合法的關(guān)系表達(dá)式,但它并不代表數(shù)學(xué)式o<=x<100。計(jì)算0<=x<100時(shí),從左到右結(jié)合,先計(jì)算0<=x,其結(jié)果只能是0或1,然后再比較0<100或1<100。根據(jù)運(yùn)算符的優(yōu)先級(jí),選項(xiàng)B)先判斷j==0是否成立,其結(jié)果只能是0或1,然后再將0或1賦給i。選項(xiàng)C)中,(char)(65+3)為類型強(qiáng)制轉(zhuǎn)換,將整數(shù)型數(shù)據(jù)轉(zhuǎn)換為字符型。選項(xiàng)D)是將一個(gè)數(shù)據(jù)賦給一個(gè)表達(dá)式,等號(hào)左邊不合要求,所以錯(cuò)誤。

61.AC語言規(guī)定case后面跟的必須是整型常量表達(dá)式。進(jìn)入case后,如果沒有遇到break語句就會(huì)一直往下執(zhí)行,后面其他case或default分支的語句也會(huì)被執(zhí)行到,直到遇到break,或者執(zhí)行到整個(gè)switch語句塊的末尾。題目中給出了三個(gè)case語句:case0、case1、case2。當(dāng)x為1時(shí),從case1語句開始執(zhí)行,因?yàn)闆]有break語句,將一直執(zhí)行到函數(shù)末尾結(jié)束,即執(zhí)行case1、case2兩條語句。執(zhí)行完case1時(shí),a=1,b=0;執(zhí)行完case2時(shí),a=2,b=1。

62.DmaUoc函數(shù)動(dòng)態(tài)分配一個(gè)整型的內(nèi)存空間,然后把函數(shù)返回的地址用(int{)強(qiáng)制類型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請(qǐng)的內(nèi)存空間。所以只有最后一個(gè)賦值語句+C=3的值保留在了該空間內(nèi),因?yàn)閍、b、C三個(gè)指針變量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3。

63.C

64.B

65.C

66.C

67.B

68.A本題中使用了函數(shù)的調(diào)用,由{unl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加l,而從主函數(shù)傳到函數(shù)時(shí)是從下標(biāo)為3開始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過去的字符串為'hsbn',前面不變。

69.D函數(shù)的參數(shù)可以是指針類型。它的作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中。函數(shù)名代表函數(shù)的人口地址,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論