2022-2023年河北省廊坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第1頁
2022-2023年河北省廊坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第2頁
2022-2023年河北省廊坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第3頁
2022-2023年河北省廊坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第4頁
2022-2023年河北省廊坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2022-2023年河北省廊坊市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.合法的數(shù)組定義是()

A.inta[]="string";

B.inta[5]={0,1,2,3,4,5};

C.chara="string";

D.chara={0,1,2,3,4,5};

2.字符串通常采用的兩種存儲(chǔ)方式是()A.散列存儲(chǔ)和索引存儲(chǔ)B.索引存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)C.順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)D.散列存儲(chǔ)和順序存儲(chǔ)

3.

4.有以下程序:voidsum(inta[]){a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",a[2]);}程序運(yùn)行后的輸出結(jié)果是()。

A.6B.7C.5D.8

5.按照“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是()。

A.隊(duì)列B.棧C.雙向鏈表D.二叉樹

6.一個(gè)n條邊的連通無向圖,其頂點(diǎn)的個(gè)數(shù)至多為()。

A.n-1B.nC.n+1D.nlogn

7.有以下程序:#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}程序的運(yùn)行結(jié)果是()。

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

8.用不帶頭結(jié)點(diǎn)的單鏈表存儲(chǔ)隊(duì)列,其頭指針指向隊(duì)頭結(jié)點(diǎn),尾指針指向隊(duì)尾結(jié)點(diǎn),則在進(jìn)行出隊(duì)操作時(shí)()。

A.僅修改隊(duì)頭指針B.僅修改隊(duì)尾指針C.隊(duì)頭、隊(duì)尾指針都可能要修改D.隊(duì)頭、隊(duì)尾指針都要修改

9.二維數(shù)組M的元素是4個(gè)字符(每個(gè)字符占一個(gè)存儲(chǔ)單元)組成的串,行下標(biāo)i的范圍從0到4,列下標(biāo)j的范圍從0到5,M按行存儲(chǔ)時(shí)元素M[3][5]的起始地址與M按列存儲(chǔ)時(shí)元素()的起始地址相同。

A.M[2][4]B.M[3][4]C.M[3][5]D.M[4][4]

10.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運(yùn)行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab

11.

12.以下敘述中錯(cuò)誤的是()。

A.一個(gè)C程序中可以包含多個(gè)不同名的函數(shù)

B.一個(gè)C程序只能有一個(gè)主函數(shù)

C.C程序在書寫時(shí),有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過

D.C程序的主函數(shù)必須用main作為函數(shù)名

13.程序中已構(gòu)成如下不帶頭節(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表節(jié)點(diǎn),指針變量s總是作為指針指向鏈表的第1個(gè)節(jié)點(diǎn)。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實(shí)現(xiàn)的功能是()。

A.刪除尾節(jié)點(diǎn)B.使尾節(jié)點(diǎn)成為首節(jié)點(diǎn)C.刪除首節(jié)點(diǎn)D.使首節(jié)點(diǎn)成為尾節(jié)點(diǎn)

14.

15.

16.

17.若變量已正確定義,有以下程序段

A.0,0B.0,1C.1,1D.程序進(jìn)入無限循環(huán)

18.

19.設(shè)有兩個(gè)串p和q,其中q是p的子串,求q在p中首次出現(xiàn)的位置的算法稱為()。

A.求子串B.聯(lián)接C.匹配D.求串長

20.設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達(dá)式與代數(shù)式計(jì)算結(jié)果不相符的是()。

A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)

二、2.填空題(20題)21.軟件設(shè)計(jì)模塊化的目的是______。

22.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

23.在關(guān)系模型中,把數(shù)據(jù)看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)______。

24.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar();

n1=ch1-'()';n2=n1*10+(ch2-'()');

printf("%d\n",n2);

}

程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后輸出結(jié)果是【】。

25.下列程序的輸出結(jié)果是______。

#include<stdio.h>

sb(ints[],intb)

{staticintn=3;

b=s[n];

n--;

return(b);

}

main()

{ints[]={1,5,6,8};

inti,x=0;

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

{x=sb(s,x);

printf("%d",x);

}

printf("\n");

}

26.程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中【】是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

27.下面程序的功能是:對(duì)字符串從小到大進(jìn)行排序并輸出,請(qǐng)?zhí)羁铡?/p>

#include"string.h"

#include"stdio.h"

sort(char*a[],intn)

{inti,j;

char*p;

for(j=1;j<=n-1;j++)

for(i=0;i<n-j;i++)

if(())>0)

{p=a[i];

a[i]=a[i+1];

a[i+1]=p;}

}

main()

{inti;

char*book[]={"itisme","itisyou","howareyou","fine","goodnight","goodbye"};

sort(());

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

printf("%s\n",book[i]);

}

28.以下函數(shù)sstrcat的功能是實(shí)現(xiàn)字符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:,所指字符串為abed,t所指字符串為efgh,調(diào)用函數(shù)sstrcat后s所指字符串為abcdefgh。請(qǐng)?zhí)羁铡?/p>

#inehde<stdio.h>

#include<string.h>

voidsstuat(char*9,char*t)

{intn;

n=strlen(s);

while(*(s+n)=【】){s++;t++;}

29.以下程序的作用是:從名為filea.dat的文本文件中逐個(gè)讀入字符并顯示在屏幕上。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

main()

{FILE*fp;charch;

fp=fopen(【】);

ch=fgetc(fp);

while(!feof(fp)){putchar(ch);ch=fgetc(fp);}

putchar('\n');fclose(fp);

}

30.下面能正確進(jìn)行字符串賦值操作的是

31.下面程序的輸出結(jié)果是()。#include<stdio.h>main(){staticchara[]="zhao",b[]="juan";char*ptr1=a,*ptr2=b;intk;for(k=0;k<4;k++)if(*(ptr1+k)==*(ptr2+k))printf("%c",*(ptr1+k));}

32.軟件生命周期包括2今階段。為了使各時(shí)期的任務(wù)更明確,又可分為3個(gè)時(shí)期:軟件定義期、軟件開發(fā)期、軟件維護(hù)期。編碼和測(cè)試屬于【】期。

33.軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。

34.下述函數(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【】}

35.在面向?qū)ο蠓椒ㄖ?,類的?shí)例稱為______。

36.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。

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

38.下列程序段的輸出結(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");

}

39.選擇程序中的輸入輸出語句,以滿足題目給定的輸入輸出數(shù)據(jù)形式。

main()

{inta;floatb;

【】

【】}

輸入形式:3.52<空格>6<回車>

輸出形式:a*b=21.12

40.下面程序的輸出結(jié)果是【】。

#defineMAX3

inta[MAX];

main()

{fun1();{un2(A);printf("\n");}

funl()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

三、1.選擇題(20題)41.有以下程序:main(){chara[]="abcdefg",b[10]="abedefg";printf("%d%d\n",sizeof(A),sizeof(B));}執(zhí)行后輸出結(jié)果是()。

A.77B.88C.810D.1010

42.以下正確的函數(shù)定義是______。

A.doublef1(intx,inty)

B.doublef1(intx;inty)

C.doublef1(intx;floaty)

D.doublef1(intx,y)

43.下面程序中有錯(cuò)誤的行是(每行程序前面的數(shù)字表示行號(hào))1main()2{3inta[3]={1};4inti;5scanf("%d",&a);6for(i-1;i<3;i++)a[0]=a[0]+a[i];7printf("a[0]=%d\n,"a[0]);8}

A.3B.6C.7D.5

44.下面程序的輸出結(jié)果是#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz";strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}

A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC

45.下列程序中函數(shù)sort()的功能是對(duì)數(shù)組a中的數(shù)據(jù)進(jìn)行由大到小的排序。#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){inta[10]={1,2;3,4,5,6,7,8,9,10},i;sort(&a[1],7);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是()。

A.1,2,3,4,5,6,7,8,9,10,

B.10,9,8,7,6,5,4,3,2,1,

C.1,8,7,6,5,4,3,2,9,10,

D.1,2,10,9,8,7,6,5,4,3,

46.有以下程序:#include<stdio.h>voidfun(int*s,intnl,intn2){inti,j,t;i=nl;j=n2;while(i<j){t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3);fun(a,4,9);fun(a,0,9);for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");}程序運(yùn)行的結(jié)果是()。

A.9.87654e+008B.4.3211e+009C.5.6789e+009D.9.87651e+008

47.有定義語句:chars[10];,若要從終端給s輸入5個(gè)字符,錯(cuò)誤的輸入語句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

48.有以下程序:main(){intm,n,P;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,則王確的輸入是()。

A.m=123n=456p=789

B.m=123n=456p=789

C.m=123,n=456,P=789

D.123456789

49.有以下程序

#include<stdio.h>

main()

{intc;

while((c=getchar())!=′\n)

{switch(c-′2′)

{case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

case4:putchar(c+3);break;}}

printf("\n")}

從第一列開始輸入以下數(shù)據(jù)<CR>代表一個(gè)回車符。

2743<CR>

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

A.66877B.668966C.6677877D.6688766

50.若有如下程序;main(){chara[]="china\0name\0";printf("%d,",strlen(A));printf("%d\n",sizeof(A));}則程序運(yùn)行后的輸出結(jié)果是()

A.5,11B.5,12C.11,11D.12,12

51.下列程序運(yùn)行后,輸出結(jié)果是______。main(){charch[2][5]={"693","825"),*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'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.6385B.22C.33D.693825

52.有以下程序:floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運(yùn)行后的輸出結(jié)果是______。

A.編譯錯(cuò)誤B.9C.21D.9

53.有以下程序:main(){charstr[]="xyz",*ps=str;while(*ps)ps++;for(ps--;ps-str>=O;ps--)puts(ps);}執(zhí)行后的輸出結(jié)果是()。

A.yzxyzB.zyzC.zyzxyzD.xxyxyz

54.請(qǐng)讀程序:#include<stdio.h>#defineSUB(X,Y)(X)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}上面程序的輸出結(jié)果是()。

A.12B.15C.16D.20

55.在執(zhí)行下述程序時(shí),若從鍵盤輸入6和8,則結(jié)果為

main()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a

if(a<b)

s=b;

s*=s;

printf("%d",s);}

A.36B.64C.48D.以上都不對(duì)

56.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。

A.無確切的值B.形參p中存放的地址值C.一個(gè)臨時(shí)存儲(chǔ)單元的地址D.形參p自身的地址值

57.若有以下定義和語句:char*s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));則輸出結(jié)果是______。

A.4B.5C.9D.10

58.若有以下程序段:structst{intn;int*m:};inta=2,b=3,c=5;structsts[3]=({101,&a},{102,&c},{103,&B)};main(){structst*p;p=s;}則以下表達(dá)式中值為5的是()。

A.(*p).mB.*(p+1)->mC.*(p++)->nD.(p++)(*m)

59.下列描述中,正確的是()

A.線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B.棧與隊(duì)列是非線性結(jié)構(gòu)C.雙向鏈表是非線性結(jié)構(gòu)D.只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)

60.若有說明語句:inta,b,c,*d=&c;,則能正確從鍵盤讀入三個(gè)整數(shù)分別賦給變量a、b、d的語句是()

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

四、選擇題(20題)61.以下程序的輸出結(jié)果是()。

#include<stdio.h>

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

A.6,1B.2,1C.6,0D.2,0

62.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.24B.28C.32D.36

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

A.break語句只能用于switch語句體中

B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

64.有如下程序

#defineN2

#defineMN+1

#defineNUM2*M+1

main()

{

inti;

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

printf("%d\n",i);

}

該程序中for循環(huán)執(zhí)行的次數(shù)是

A.5B.6

C.7D.8

65.若有定義語句“inta,b;doubleX;”,則下列選項(xiàng)中沒有錯(cuò)誤的是()。

A.switch(X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

B.switch((int)x/2.O){case0:a++;break;casel:b++;break;default:a++;b++;}

C.switch((int)X%2){case0:a++;break;casel:b++;break;default:a++;b++;}

D.switch((int)(x)%2){case0.0:a++;break;casel.0:b++;break;default:a++;b++;}

66.以下敘述中錯(cuò)誤的是()。

A)對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出

B)數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變

C)當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界的出錯(cuò)信息”

D)可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)

67.

以下程序的輸出結(jié)果是()。

main

{inti,k,a[10],p[3];

k=5;

for(i=0:i<10;i++)a[i]=i;

for(i=0;i<3;i++)p[i]=a[i*(i+1)];

for(i=0;i<3;i++)k+=p[i]*2;

printf("%d\n",k、;

}

A.20B.21C.22D.23

68.以下不能正確定義二維數(shù)組的選項(xiàng)是()。

A.

B.

C.

D.

69.以下不能輸出字符A的語句是()(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)。

70.有以下程序:

若從鍵盤輸入:ijkxyz<回車>,則輸出結(jié)果是()。

A.ijkk

B.ijkxyz

C.xyzxyz

D.jj

71.有以下程序:

#include<stdio.h>

main()

{inta=12,C;

c=(a<<2)<<1;

printf("%d\n",c);

}

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

A.3B.50C.2D.96

72.下列選項(xiàng)中,能夠滿足“只要字符串sl等于字符串s2,則執(zhí)行sT”要求的是()。程序執(zhí)行后的輸出結(jié)果是()。

A.2B.1C.3D.0

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

A.a+1=a+1

B.a=b==0

C.(Char.(100+100.

D.7<=X<60

74.改變某個(gè)元素的文本顏色的CSS屬性是()。

A.text—colorB.FgcoiorC.colorD.text—color

75.以下程序段完全正確的是()。

76.下列程序的輸出結(jié)果是()。

main

{

doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

printf("%d\n",d*y);

}

A.3B.3.2C.0D.3.07

77.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。

A.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為0時(shí),結(jié)束程序運(yùn)行

B.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為4時(shí),結(jié)束循環(huán)操作

C.當(dāng)產(chǎn)生的隨機(jī)數(shù)n為l和2時(shí),不做任何操作

D.細(xì)循環(huán)語句固定執(zhí)行8次

78.

79.以下定義語句中正確的是()。

A.inta=b=0;

B.charA=65+1,b=’b’;

C.floata=1,*b=*a,*C=&b;

D.doublea=0.0;b=1.1;

80.在Internet中,域名服務(wù)器的主要功能是實(shí)現(xiàn)()的轉(zhuǎn)換。

A.IP地址到域名(主機(jī)名字)B.域名到IP地址C.主機(jī)IP地址和路由器IP地址之間D.路由器IP地址之問

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型形參n,計(jì)算如下公式的值。

例如,若n=12,則應(yīng)輸出0.618026。

請(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(),其功能是統(tǒng)計(jì)s所指字符串中的數(shù)字字符個(gè)數(shù),并將其作為函數(shù)值返回。例如,s所指字符串中的內(nèi)容是2def35adh253kjsdf7/kj8655x,函數(shù)fun()返回值為11注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:

參考答案

1.D

2.C

3.A

4.A解析:在主函數(shù)main()中,語句“sum(&a[2]);”把數(shù)組元素a[0]的地址傳遞給了sun函數(shù)的形參a[],使得sum函數(shù)中的“(a+0)”為主函數(shù)中a[2]的地址,所以a[-1]的值為主函數(shù)中a[1]的值;a[1]的值為主函數(shù)中a[3]的伉,故函數(shù)sum中a[0]=2+4=6,由于此函數(shù)中的a是指向主函數(shù)中的a[2],所以a[2]的值為6。

5.B棧是線性表的一種,其插入和刪除運(yùn)算都只在表的一端進(jìn)行。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的元素,是按先進(jìn)后出的原則組織數(shù)據(jù)的。

6.C

7.D執(zhí)行語句“intm=1,n=2,*p=&m,*q=&n,*r;”,即指針變量p指向m,指針變量q指向n。執(zhí)行語句“r=p;p=q;q=r;”,即通過指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。故本題答案為D選項(xiàng)。

8.C

9.B

10.C解析:主函數(shù)main()定義了指向字符串的指針和一個(gè)字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實(shí)參向形參傳遞,函數(shù)fun()第一個(gè)while語句判斷*a中的值為“*”時(shí)繼續(xù)掃描,當(dāng)遇到不是“*”時(shí)結(jié)束,接著第二個(gè)while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運(yùn)行結(jié)果為選項(xiàng)C)。

11.A

12.C【答案】C

【知識(shí)點(diǎn)】C程序的函數(shù)

【解析】C程序必須有且只有一個(gè)主函數(shù)main()。一個(gè)C程序可以包含多個(gè)不重名的子函數(shù)。C程序在書寫時(shí)沒有嚴(yán)格的縮進(jìn)要求,語句前的縮進(jìn)隨意。

13.D程序中,指針s指向了它的下一個(gè)節(jié)點(diǎn)。題目中說明了s總是指向鏈表的第1個(gè)節(jié)點(diǎn)。然后while循環(huán)找到鏈表的最后一個(gè)元素,最后一個(gè)元素指向了之前鏈表的頭節(jié)點(diǎn),之前頭節(jié)點(diǎn)指向了空節(jié)點(diǎn)。所以本題實(shí)現(xiàn)的是使首節(jié)點(diǎn)成為尾節(jié)點(diǎn)。故本題答案為D選項(xiàng)。

14.C

15.A

16.C

17.Bdo…while循環(huán)的執(zhí)行過程如下:①執(zhí)行do后面的循環(huán)體中的語句。②計(jì)算while后一對(duì)圓括號(hào)中表達(dá)式的值。當(dāng)值為非0時(shí),轉(zhuǎn)去執(zhí)行步驟①;當(dāng)值為0時(shí),執(zhí)行步驟③。③退出do…while循環(huán)。對(duì)于本題變量i的初始值等于“0”,接著執(zhí)行do后面的循環(huán)體中的語句,輸出變量i的值0。再判斷while后面括號(hào)中表達(dá)式i十的值,其值為0,所以循環(huán)結(jié)束。.此時(shí)變量i的值經(jīng)過自加已經(jīng)變?yōu)?,所以再次輸出i的值“1”。

18.D

19.C

20.B

21.降低復(fù)雜性降低復(fù)雜性

22.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。

23.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個(gè);維表代表一種關(guān)系。

24.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價(jià)為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運(yùn)算。在本題中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。

25.86518651解析:主程序中,第一次循環(huán)時(shí),i=0,調(diào)用sb(s,x)子函數(shù),此時(shí)n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時(shí),i=1,調(diào)用sb(s,x)子函數(shù),因?yàn)閷定義為了靜態(tài)變量,所以此時(shí)n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時(shí),i=2,調(diào)用sb(s,x)子函數(shù),此時(shí)n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時(shí),i=3,調(diào)用sb(s,x)子函數(shù),此時(shí)n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。

26.靜態(tài)分析靜態(tài)分析解析:程序測(cè)試分為靜態(tài)分析和動(dòng)態(tài)測(cè)試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對(duì)程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。

27.strcmp(a[i]a[i+1])book6strcmp(a[i],a[i+1])book,6解析:此程序段的功能是使字符串從大到小進(jìn)行排列。顯然,第一空白處,是利用strcmp函數(shù)比較字符串a(chǎn)[i]和a[i+1]的大小,若不符合題意,就進(jìn)行調(diào)換;main函數(shù)中,sort函數(shù)是對(duì)數(shù)組book中的字符串按從小到大進(jìn)行排序,所以第二空白處填入“book,6”(6是指book所指向的字符串的個(gè)數(shù))。

28.*t*t解析:程序中,(a+n)代表字符串s最后一個(gè)字符后的,'\\0',根據(jù)題意,'\\0'所在位置應(yīng)該賦值為字符串t的第一個(gè)字符,字符中t的其他字符根據(jù)循環(huán),依次賦值到,所指字符串的尾部,所以[14]應(yīng)填:*t。

29.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。

30.C

31.aa解析:本程序先將指針ptr1和ptr2分別指向字符數(shù)組a和b,然后通過指針的移動(dòng)比較a和b中是否有相同的字符。若有相同的字符則將其輸出。

32.軟件開發(fā)軟件開發(fā)解析:軟件生命周期包括8個(gè)階段:問題定義、可行性研究、需求分析、系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、運(yùn)行維護(hù)。為了使各時(shí)期的任務(wù)更明確,又可以分為3個(gè)時(shí)期:軟件定義期,包括問題定義、可行性研究和需求分析3個(gè)階段;軟件開發(fā)期,包括系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試4個(gè)階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段??芍?,編碼和測(cè)試屬于軟件開發(fā)階段。

33.完善性軟件維護(hù)活動(dòng)包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對(duì)軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。

34.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1)='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。

35.對(duì)象對(duì)象解析:類描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書是一個(gè)對(duì)象,而這些具體的書都有共同的性質(zhì),它們都屬于更一般的概念“書”這一類對(duì)象。一個(gè)具體對(duì)象稱為類的實(shí)例。

36.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現(xiàn)在循環(huán)體之前,只有當(dāng)while后面的表達(dá)式的值為非零時(shí),才可能執(zhí)行循環(huán)體;在do…while構(gòu)成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達(dá)式的值,因此無論表達(dá)式的值是否為零,循環(huán)體至少要被執(zhí)行一次。

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

38.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時(shí)候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是passwarn。

39.scanf("%f<空格>%d"&b&a);printf("ab=%5.2f"a*b);scanf('%f<空格>%d',&b,&a);\r\nprintf('a,b=%5.2f',a*b);

40.24

41.C解析:本題中定義兩個(gè)字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdefg”。所以a的長度為賦值給它的字符串的字符個(gè)數(shù)7加上一個(gè)結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8。定義時(shí)b的長度定義為10,故b的長度為lo,因此最后通過函數(shù)sizeom求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個(gè)選項(xiàng)中選項(xiàng)c符合題意。

42.A

43.D

44.C解析:本題考查的重點(diǎn)是拷貝字符串——使用strcpy()函數(shù),該函數(shù)的調(diào)用方式是:strcpy(字符數(shù)組,字符串)其中“字符串”可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將“字符串”完整地復(fù)制到“字符數(shù)組”中,字符數(shù)組中原有內(nèi)容被覆蓋。

使用該函數(shù)時(shí)注意:①字符數(shù)組必須定義得足夠大,以便容納復(fù)制過來的字符串。復(fù)制時(shí),連同結(jié)束標(biāo)志‘\\0’一起復(fù)制。②不能用賦值運(yùn)算符“=”將一個(gè)字符串直接賦值給一個(gè)字符數(shù)組,只能用strcpy()函數(shù)來處理。

另外,本題還考查連接字符串的strcat()函數(shù),其調(diào)用方式是:strcat(字符數(shù)組,字符串)

功能是把“字符串”連接到“字符數(shù)組”中的字符串尾端,并存儲(chǔ)于“字符數(shù)組”中?!白址麛?shù)組”中原來的結(jié)束標(biāo)志,被“字符串”的第一個(gè)字符覆蓋,而“字符串”在操作中未被修改。

使用該函數(shù)時(shí)注意:①由于沒有邊界檢查,編程者要注意保證“字符數(shù)組”定義得足夠大,以便容納連接后的目標(biāo)字符串;否則,會(huì)因長度不夠而產(chǎn)生問題。③連接前兩個(gè)字符串都有結(jié)束標(biāo)志‘\\0’,連接后“字符數(shù)組”中存儲(chǔ)的字符串的結(jié)束標(biāo)志‘\\0’被舍棄,只在目標(biāo)串的最后保留一個(gè)‘\\0’。

45.C解析:本程序中的函數(shù)sort(inta[],intn)實(shí)現(xiàn)的功能是將數(shù)組a中的前n個(gè)數(shù)進(jìn)行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]到a[7]這7個(gè)數(shù)進(jìn)行從大到小排序,其他數(shù)不變。

46.C解析:函數(shù)fun的功能是:將數(shù)組s中從n1至n2的元素首尾互換,然后將第2個(gè)和倒數(shù)第2個(gè)元素互換,依次類推,其實(shí)也就是將原來的元素倒置。執(zhí)行fun(a,0,3);將數(shù)組a中的第0~3個(gè)元素互換,結(jié)果為4321;執(zhí)行fun(a,4,9);將數(shù)組a中的第4~9個(gè)元素互換,結(jié)果為098765。此時(shí)a中的元素依次為4321098765,執(zhí)行fun(a,0,9);再次將這10個(gè)元素倒置,結(jié)果為5678901234。

47.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個(gè)值的表達(dá)式。

48.A解析:本題的考點(diǎn)是關(guān)于C語言的輸入語句scanf的通配符。C語言規(guī)定:scanf中的雙引號(hào)中的輸入格式(就是俗稱的通配符)決定了輸入的格式。要輸入123給m,456給n,789給p,由scanf的輸入格式:“m=%dn=%dp=%d”決定了輸入必須的格式是:m=123n=456p=789。

49.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準(zhǔn)輸入設(shè)備上讀入一個(gè)字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。

50.B

51.A

52.B解析:函數(shù)fun的功能是求兩個(gè)數(shù)之和,其形參數(shù)據(jù)類型為int型,函數(shù)的返回值類型是float型。fun((int)fun(a+c,b),a-c)中有兩層函數(shù)調(diào)用,其中內(nèi)層調(diào)用是fun(a+c,b),因a+c+b=2+8+5=15,而返回類型是float型,所以fun(a+c,b)的值為15.0,將該值強(qiáng)制變換為int型后作為外層函數(shù)調(diào)用的參數(shù),即fun(15,a-c)=15+a-c=15+2-8=9.0。因printf語句的輸出格式為'%3.0f',即小數(shù)點(diǎn)后0位小數(shù),故程序的輸出為9。

53.C解析:執(zhí)行while循環(huán),使指針變量ps指向字符串“xyz”的字符串結(jié)束標(biāo)志,然后執(zhí)行for循環(huán),先執(zhí)行ps--,使ps指向字符‘z’,故puts(ps)輸出結(jié)果為z;再次執(zhí)行ps--,使ps指向字符‘y’,故puts(ps)輸出結(jié)果為yz;再次執(zhí)行ps--,使ps指向字符‘x’,故puts(ps)輸出結(jié)果為xyz,退出循環(huán)。所以,C選項(xiàng)為所選。

54.A解析:本題的考查點(diǎn)是宏定義。a++的形式應(yīng)當(dāng)先使用a值,然后a才進(jìn)行自加1運(yùn)算,所以程序在進(jìn)行SUB()乘法運(yùn)算的時(shí)候,仍取a,b的原值,最后輸出的結(jié)果是12。

55.B解析:本題中a的值為6,b的值為8,最后s的值為8,s*=s等價(jià)于s=s*s。

56.B

57.A解析:函數(shù)strcpy(s1,s2)的返回結(jié)果是指針s1的新值'1234',因此求串長函數(shù)的結(jié)果為4。

58.B

59.AA)【解析】根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:①有且只有一個(gè)根結(jié)點(diǎn);②每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二:叉樹是非線性結(jié)構(gòu)。

60.A

61.B241/100=2,2%9=2,所以a=2,b為兩個(gè)非零的值的邏輯與,結(jié)果為1,。

62.A第一次循環(huán)返回l2,第二次循環(huán)返回l2,累加結(jié)果為24。

63.C解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。當(dāng)break出現(xiàn)在循環(huán)體的switch語句體內(nèi)時(shí),其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強(qiáng)行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設(shè)置break語句,滿足某種條件,則跳出本層循環(huán)體。

64.B分別將N、M的宏定義代入NUM的表達(dá)式中,可以得到NUM=2*2+1+1=6,所以當(dāng)常數(shù)NUM作為for循環(huán)的終止條件時(shí),應(yīng)當(dāng)循環(huán)6次。

65.CC語言中,switch語句中的表達(dá)式和case表達(dá)式都不能是浮點(diǎn)類型。所以選C。

66.C在C語言中,當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)不會(huì)有提示。

67.B

\n第一個(gè)循環(huán)的作用是把從0

溫馨提示

  • 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)論