2021-2022年山西省陽泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第1頁
2021-2022年山西省陽泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第2頁
2021-2022年山西省陽泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第3頁
2021-2022年山西省陽泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第4頁
2021-2022年山西省陽泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2021-2022年山西省陽泉市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.表達(dá)式a*(b+c)-d的后綴表達(dá)式是()。

A.abcdd+-B.abc+*d-C.abc*+d-D.-+*abcd

3.下列算法中,()算法用來求圖中某頂點(diǎn)到其他頂點(diǎn)所有頂點(diǎn)之間的最短路徑。

A.DijkstraB.FloyedC.PrimD.Kruskal

4.以下選項(xiàng)中表示空函數(shù)的是()。

A.intfun(){return0;}

B.intfun();

C.intfun(){}

D.intfun(inta,intB){return1;}

5.

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

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

7.下列敘述中錯(cuò)誤的是()。

A.一個(gè)C語言程序只能實(shí)現(xiàn)一種算法

B.c程序可以由多個(gè)程序文件組成

C.C程序可以由一個(gè)或多個(gè)函數(shù)組成

D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在

8.若有定義語句:“inta=3,b=2,c=1;”,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是()。

A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);

9.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。

A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭

10.若以下變量均是整型,且num=sum=7;則執(zhí)行表達(dá)式sum=num++,sum++,++num后sum的值為()。

A.7B.8C.9D.10

11.設(shè)有以下程序段:structbook{floatprice;charlanguage;chartitle[20];}rec,*ptr;ptr=&rec;要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯(cuò)誤的輸入語句是()。

A.scanf(“%s”,ptr.title);

B.scanf(“%s”,rec.title);

C.scanf(“%s”,(*ptr).title);

D.scanf(“%s”,ptr->title);

12.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。

A.數(shù)據(jù)所占的存儲(chǔ)空間

B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式

C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式

D.存儲(chǔ)在計(jì)算機(jī)外存中的數(shù)據(jù)

13.在帶頭結(jié)點(diǎn)的單鏈表head為空的判定條件是()。

A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL

14.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語言是

A.匯編語言B.自然語言C.機(jī)器語言D.高級(jí)語言

15.有以下程序:

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

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

16.設(shè)一組初始記錄關(guān)鍵字序列(5,2,6,3,8),以第一個(gè)記錄關(guān)鍵字5為基準(zhǔn)進(jìn)行一趟快速排序的結(jié)果為()。

A.2,3,5,8,6B.3,2,5,8,6C.3,2,5,6,8D.2,3,6,5,8

17.以下非法的賦值語句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

18.有三個(gè)關(guān)系R,S和T如下:

其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為()。

A.選擇B.交C.投影D.并

19.有以下定義:structperson{charname[10];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};能輸出字母M的語句是()。

A.printf(“%c\n”,class[2].name[0]);

B.printf(“%c\n”,class[3].name[0]);

C.printf(“%c\n”,class[3].name[1]);

D.printf(“%c\n”,class[2].name[1]);

20.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體間聯(lián)系的是()。

A.網(wǎng)狀結(jié)構(gòu)B.樹狀結(jié)構(gòu)C.屬性D.二維表

二、2.填空題(20題)21.以下程序的輸出結(jié)果是______。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

}

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\n",*p,*q);

22.下面程序有兩個(gè)printf語句,如果第一個(gè)printf語句輸出的是194,則第二個(gè)printf語句的輸出結(jié)果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%x\n",p);

printf("%\n",p+9);

}

23.數(shù)據(jù)的【】結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。

24.已知head指向一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,鏈表中每個(gè)結(jié)點(diǎn)包含數(shù)據(jù)域(data)和指針域(next),數(shù)據(jù)域?yàn)檎汀R韵潞瘮?shù)求出鏈表中所有鏈結(jié)點(diǎn)數(shù)據(jù)域的和值,作為函數(shù)值返回。請(qǐng)?jiān)谙聞澗€內(nèi)填入正確內(nèi)容。

{intdata;structlink*next;}

main()

{structlink*head;

sum(head);

┆}

sum(【】);

{structlink*p;ints=0;

p=head->next;

while(p){s+=p->data;p=p->next;}

return(s);}

25.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。

inta[10]={14,27,47,29,35,21,49,71},*p;

26.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

27.若變量n的值為24,則print函數(shù)共輸出【】行,最后一行有【】個(gè)數(shù)。

voidprint(intn,intaa[])

{inti;

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

{printf("%6d",aa[i]);

if(!(i%5))printf("\n");

}

printf("\n");

}

28.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為______。

29.閱讀程序:

#include<string.h>

#include<strdio.h>

strle(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!='0')num++;

while(b[n])

{*(a+num)=b[n];num++;n++;}

return(num);

}

main()

{charstrl[81],str2[81],*p1=strl,*p2=str2;

gets(p1);gets(p2);

prinf("%d\n",strle(p1,p2));

}

運(yùn)行上面的程序,如果從鍵盤上輸入字符串qwerty和字符串a(chǎn)bcd,則程序的輸出結(jié)果是【】。

30.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。

31.使用結(jié)構(gòu)體處理數(shù)據(jù)的場(chǎng)合是【】。

32.對(duì)存儲(chǔ)器按字節(jié)進(jìn)行編址,若某存儲(chǔ)器芯片共有8根地址線,則該存儲(chǔ)器芯片的存儲(chǔ)容量為【】字節(jié)。

33.以下程序運(yùn)行后的輸出結(jié)果是【】。

main()

{intm=011,n=11;

printf("%d%d\n",++m,n++);

}

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

#include<string.h>

voidfun(char*s,intp,intk)

{inti;

for(i=p;i<k-1;i++)s[i]=s[i+2];

}

main()

{chars[]="abcdefg";

fun(s,3,strlen(s));puts(s);

}

35.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來實(shí)現(xiàn)。

36.在計(jì)算機(jī)領(lǐng)域中,通常用英文單詞“Byte'’表示【】。

37.有以下程序:

prt(int*m,intn)

{inti;

for(i=0;i<n;i++)m[i]++;

}

main()

{inta[]={1,2,3,4,5},i;

prt(a,5);

for(i=0;i<5;i++)printf("%d,",a[i];

}

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

38.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

39.以下程序的作用是:從名為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);

}

40.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)羁?。st=(char*)【】;

三、1.選擇題(20題)41.設(shè)有定義:intn1=0,n2,*p=&n2,*q=&n1;,下列賦值語句中與n2=n1;語句等價(jià)的是()。

A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;

42.下列敘述中錯(cuò)誤的是()。

A.在C語言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值

B.在C語言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別

D.在C語言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量

43.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。

A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系

B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念

C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題

D.鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考

44.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。

A.a==1B.++i;C.a=int(i);D.a=a++=5;

45.請(qǐng)選出正確的程序段______。

A.int*p

B.int*s,k;scanf(""%d"",p);*s=100;………

C.int*s,k;

D.int*s,k;char*p,c;char*p,e;s=&k;p=&c;p=&c;*p='a';s=p;……*s=1;……

46.設(shè)有定義:intk=0;,以下選項(xiàng)的四個(gè)表達(dá)式中與其他三個(gè)表達(dá)式的值不相同的是()。

A.k++B.k+=1C.#NAME?D.k+1

47.以下程序輸出正確的是______。amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);arnovep(p,a,3);printf("%d%d\n",p[2],p[5];free(p);}

A.56B.25C.34D.程序錯(cuò)誤

48.以下程序的輸出結(jié)果是______。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);}

A.18B.19C.20D.21

49.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}該程序的輸出結(jié)果是______。

A.2B.4C.6D.8

50.以下敘述中錯(cuò)誤的是A.C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言

B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成

C.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問題

D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法

51.下列選項(xiàng)可以正確表示字符型常量的是

A.'\r'B.aC.\897D.296

52.在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是()

A.%B./C.<D.!

53.有定義語句:intb;charc[10];,則正確的輸入語句是

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

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

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

54.下面不屬于軟件設(shè)計(jì)原則的是()。

A.抽象B.模塊化C.自底向上D.信息隱蔽

55.若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)字符型變量的動(dòng)態(tài)存儲(chǔ)單元,則應(yīng)填入;char*p;p=()malloc(sizeof(char));

A.charB.char*C.(*char)D.(char*)

56.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是

A.data的每個(gè)成員起始地址都相同

B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

C.程序段:data.a=5;printf("%f\n",data.c);輸出結(jié)果為5.000000

D.data可以作為函數(shù)的實(shí)參

57.以下選項(xiàng)中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0

58.有以下函數(shù):fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是()。

A.計(jì)算a和b所指字符串的長(zhǎng)度之差

B.將b所指字符串復(fù)制到a所指字符串中

C.將b所指字符串連接到a所指字符串后面

D.比較a和b所指字符串的大小

59.設(shè)有定義:structsk{inta;floatb;}data,*p;若有p=&data;,則對(duì)data中的a域的正確引用是()

A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a

60.當(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]

四、選擇題(20題)61.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)果是()。

#include<stdio.h>

#include<string.h>

voidmain()

{charss[10]="12345",

gets(ss);strcat(ss,"6789");

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

}

A.ABC6789B.ABC67C.12345ABC6D.ABC456789

62.下列合法的聲明語句是()。

A.intabc=50;

B.doubleint=3+5e2.5;

C.longdo=1L;

D.float3asd=3e一3;

63.有如下程序段

#include"stdio.h"

main()

{intk[10];

intj;

for(j=0;j<10;j++)

scanf("%d",&k[j]);

for(j=9;j>=0;j--)

printf("%d",k[j]);}

則程序段實(shí)現(xiàn)的功能是

A.輸入10個(gè)數(shù)據(jù)的順序輸入并輸出

B.輸入10個(gè)數(shù)據(jù)的逆序存放

C.輸入10個(gè)數(shù)據(jù)的逆序輸出

D.以上敘述均錯(cuò)誤

64.

65.有以下程序:

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

A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

66.

設(shè)變量已正確定義,則以下能正確計(jì)算f=n!的程序是()。

A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=l;i<2n;i++)f*=i:

C.f=l:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

67.有以下程序

#include<stdio.h>

main()

{

intnum=0;

while(num<=2)

{

num++;

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

}

}

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

68.

有以下程序

#include<stdio.h>

inta=1;

intf(intc)

{staticinta=2:

c=c+1:

return(a++)+C;

}

main

(inti,k=0;

for(i=0;i<2;i++){inta=3;k+=f(a);}

k+=a:

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

}

程序運(yùn)行結(jié)果是()。

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

69.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp),的返回值為()。

A.0B.\0C.非0值D.NULL

70.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是()。

A.115LB.0118C.1.5el.5D.0115

71.在數(shù)據(jù)庫管理系統(tǒng)DBMS中,用來定義內(nèi)模式和外模式等一些數(shù)據(jù)庫管理系統(tǒng)中其他結(jié)構(gòu)的語言為

A.CB.BasicC.DDLD.DML

72.

73.有以下程序當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第l列開始,<CR>代表回車,注意;回車也是--+qz符)12<CR>34<CR>則輸出結(jié)果是()。

A.123B.12C.1234D.1234

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

75.表達(dá)式“~0x11”的值是()。

A.0xFFEEB.0x71C.0x0071D.0xFFF1

76.

77.

設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。

A.876和543.000000

B.87和6.000000

C.87和543.000000

D.76和543.000000

78.(27)程序流程圖(PFD)中的箭頭代表的是()

A.數(shù)據(jù)流

B.控制流

C.調(diào)用關(guān)系

D.組成關(guān)系

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

A.循環(huán)鏈表是非線性結(jié)構(gòu)

B.雙向鏈表是非線性結(jié)構(gòu)

C.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)

D.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)

80.有以下語句:Charb[B];intC;,則正確的輸入語句是()。

A.

B.

C.

D.

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:用冒泡法對(duì)6個(gè)字符串按由小到大的順序進(jìn)行排序。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度不超過N).按順序合并組成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為:ABCDBCDEFGCDEFGHI則合并后的字符串內(nèi)容應(yīng)該是:ABCDBCDEFGCDEFGH1。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:

參考答案

1.B

2.B

3.A

4.C空函數(shù)是函數(shù)體沒有執(zhí)行語句的函數(shù)。選項(xiàng)A、D不是空函數(shù);選項(xiàng)B是函數(shù)的聲明;只有選項(xiàng)C是空函數(shù)。故本題答案為C選項(xiàng)。

5.A

6.B解析:return中返回的是指針p的值,也就是形參p中存放的地址值。

7.A答案A

解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語言程序可以實(shí)現(xiàn)多種算法。

8.A由等式的規(guī)則可知,A選項(xiàng)錯(cuò)誤。先對(duì)括號(hào)的b進(jìn)行等式運(yùn)算,得出b=4,然后計(jì)算得出a=4=3,所以會(huì)導(dǎo)致錯(cuò)誤。答案選擇A。

9.A解析:數(shù)據(jù)流圖包括四個(gè)方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲(chǔ)文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體),不包括選項(xiàng)中的控制流。

10.A

11.A運(yùn)算符“->”適用指針訪問成員變量,運(yùn)算符“.”適用普通變量訪問成員變量。ptr是指針,只能用“->”,因此選項(xiàng)A錯(cuò)誤。選項(xiàng)B中,rec.title代表數(shù)組title,選項(xiàng)B正確,同理選項(xiàng)C正確?!?ptr”是結(jié)構(gòu)體變量rec,可以使用運(yùn)算,因此選項(xiàng)D正確。故本題答案為A選項(xiàng)。

12.B解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存放形式,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。

13.B

14.C

15.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。

16.C

17.C解析:本題考查的知識(shí)點(diǎn)是賦值語句的基本知識(shí)。在表達(dá)式的運(yùn)算中,雙目賦值運(yùn)算符的格式為“變量二表達(dá)式”,單目運(yùn)算符一般形式為“運(yùn)算符表達(dá)式”或“表達(dá)式運(yùn)算符”。常量和表達(dá)式是不能被賦值的。選項(xiàng)A為復(fù)合表達(dá)式,首先計(jì)算(i=2,++i)的值,然后賦值給n,故選項(xiàng)A正確;選項(xiàng)B為簡(jiǎn)單自加運(yùn)算,故選項(xiàng)B正確;選項(xiàng)C在表達(dá)式++(i+1);中,(i+1)不是變量,該表達(dá)式的值為常量,而在++運(yùn)算中,其運(yùn)算對(duì)象必須為變量,故選項(xiàng)C錯(cuò)誤;選項(xiàng)D中為復(fù)合賦值表達(dá)式,正確.所以應(yīng)當(dāng)選擇C。

18.D\n兩個(gè)相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個(gè)關(guān)系的元組組成的集合。

\n

19.AC語言規(guī)定數(shù)組的下標(biāo)從0開始,結(jié)構(gòu)體數(shù)組class初始化了前4個(gè)元素。第3個(gè)元素的name=“Marry”,則class[2].name[0]=‘M’。故本題答案為A選項(xiàng)。

20.D單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種關(guān)系。

21.

22.1a61a6解析:對(duì)于指針變量的運(yùn)算,就是對(duì)地址的運(yùn)算。本題中由于指針指向的是整型變量,所以,使指針變量移動(dòng)9個(gè)位置也就是移動(dòng)18個(gè)字節(jié)。注意,本題是以十六進(jìn)制輸出的。

23.邏輯邏輯解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)。

24.structlink*headstructlink*head解析:因?yàn)楸绢}中是用結(jié)構(gòu)體變量構(gòu)成了鏈表,所以要從鏈表頭節(jié)點(diǎn)逐個(gè)節(jié)點(diǎn)的引用結(jié)構(gòu)體的數(shù)據(jù)域,需要有個(gè)指向結(jié)構(gòu)體變量的指針依次指向各個(gè)節(jié)點(diǎn),即p=p->next,而用指針引用結(jié)構(gòu)體成員數(shù)據(jù)的方法為:p->data。注意:結(jié)構(gòu)體變量和共用體變量之間的區(qū)別為聯(lián)系。

25.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接將數(shù)組元素a[4]的地址(即&a[4])賦給指針變量p,也可以用數(shù)組名加偏移量的形式(即a+4)表示數(shù)組元素a[4]的地址,并賦給指針變量p。

26.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。

27.5454解析:語句if(!(i%5))printf('\\n');實(shí)現(xiàn)每5個(gè)數(shù)輸出一行,因?yàn)閚的值為24,所以共輸出5行,最后一行有4個(gè)數(shù)。

28.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。

29.10

30.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。

31.把不同類型的數(shù)據(jù)作為整體處理

32.256256解析:本題考查對(duì)存儲(chǔ)器按字節(jié)進(jìn)行編址的規(guī)則及其尋址范圍(2n),其中n為存儲(chǔ)器芯片中地址線的條數(shù)。

33.10111011解析:前綴自增運(yùn)算時(shí),表達(dá)式的值和變量自增之后的值相同;后綴自增運(yùn)算時(shí),表達(dá)式的值為變量自增之前的值。所以,本題程序輸出的兩個(gè)結(jié)果分別是m+1和n的值。而m在初始化時(shí)使用的是八進(jìn)制常量011,轉(zhuǎn)換為十進(jìn)制為9。故輸出結(jié)果是1011。

34.abcfgabcfg解析:本題考查的是字符數(shù)組用作函數(shù)參數(shù)。C語言中數(shù)組名可以看作該數(shù)組首地址的常量指針、因此可以直接傳遞給指針類型的參數(shù)。本題的主函數(shù)調(diào)用fun(s,3,strlen(s));后,函數(shù)中for循環(huán)就是for(i=3;i<strlen(s)-1;i++),即i從3遞增到字符數(shù)組s的長(zhǎng)度-2位置,循環(huán)中讓s[i]=s[i+2],所以函數(shù)fun()實(shí)現(xiàn)的功能簡(jiǎn)單來說就是將字符串s下標(biāo)為p+2~k范圍的字符整體復(fù)制到字符串s下標(biāo)為p~k-2的位置上。在本題中strlen(s)返回s的長(zhǎng)度7,所以復(fù)制的字符為s[5]~s[7],即'f'、'g','\\0'三個(gè)字符,復(fù)制到s[3]~s[5],故最終輸出的字符串為abcfg(因?yàn)閟[5]為'\\0',所以后面的字符不會(huì)輸出)。

35.測(cè)試實(shí)例測(cè)試實(shí)例解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。

36.字節(jié)字節(jié)

37.234562,3,4,5,6解析:函數(shù)prt(a,5)的功能是使得a數(shù)組中,從a[0]~a[4]中元素均增1。

38.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

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

40.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲(chǔ)區(qū),此題要分配11字節(jié)的單元,把11代入即可。

41.A解析:在定義指針變量p和q時(shí),分別把變量n2和n1的地址賦給了指針變量p和q,所以*p和*q中內(nèi)容就分別是變量n2和n1的值,所以語句*p=*q與語句n2=n1等價(jià)。因此選項(xiàng)A)正確。

42.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。

43.C解析:面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同。它的基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去思考。

44.B解析:C語言中的語句都以“;”結(jié)尾,因此選項(xiàng)A不是合法語句。強(qiáng)制類型轉(zhuǎn)換運(yùn)算符應(yīng)為“(類型名)”,選項(xiàng)C中的int(i)不符合規(guī)定;如將int(i)看成函數(shù)調(diào)用也是不正確的,int是C語言的關(guān)鍵字,不能作為用戶定義的標(biāo)識(shí)符當(dāng)函數(shù)名使用。賦值表達(dá)式的左側(cè)應(yīng)為變量名,而選項(xiàng)D中的a++=5不符合規(guī)定。

45.C解析:本題的A和B犯了一個(gè)同樣的錯(cuò)誤,即指針變量p定義后并沒有指向具體的變量,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D中,s是int指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。

46.A解析:凡是表達(dá)式都有一個(gè)值,即運(yùn)算結(jié)果。k++的表達(dá)式值為0,k再進(jìn)行增1運(yùn)算;k+=1是賦值表達(dá)式,其作用是取k中的值加1后再放到k變量中,即表達(dá)式的值為1;++k是先進(jìn)行k增1運(yùn)算,表達(dá)式的值為1;k+1=0+1,其運(yùn)算的結(jié)果為1。所以選項(xiàng)A中表達(dá)式的值與其他三個(gè)表達(dá)式不同。

47.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲(chǔ)單元中,a的各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過mailoc()函數(shù)給指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實(shí)參p與形參p,實(shí)參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲(chǔ)空間。最后輸出p[2],p[5]為56。

48.A解析:本題首先定義了一個(gè)數(shù)組并附初值,然后通過兩個(gè)for循環(huán)計(jì)算3、4、5、6的累加值,并用s保存。

49.B解析:函數(shù)fib內(nèi)部有兩個(gè)遞歸調(diào)用,當(dāng)n=3時(shí),fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值為4。

50.C解析:結(jié)構(gòu)化程序設(shè)計(jì)是指在程序的構(gòu)成上只使用順序、選擇(即分支)和循環(huán)3種結(jié)構(gòu)組成的編程方式。它強(qiáng)調(diào)程序設(shè)計(jì)風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思路,是把一個(gè)復(fù)雜問題的求解過程分階段進(jìn)行,每個(gè)階段處理的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法。

51.A解析:C語言中,一個(gè)字符常量代表ASCII字符集中的一個(gè)字符,在程序中用單引號(hào)括起來作為字符常量,字符常量的范圍是0~127。由于字符常量用單引號(hào)括起來,所以選項(xiàng)B),C)錯(cuò)誤,選項(xiàng)D)超過了字符常量的表示范圍。

52.A解析:題目的四個(gè)選項(xiàng)中,B、C、D都不要求運(yùn)算數(shù)必須為整數(shù),參與模運(yùn)算(%)的運(yùn)算數(shù)必須是整型數(shù)據(jù)。

53.B解析:scanf函數(shù)的第一個(gè)參數(shù)是格式控制字符串,該字符串中所出現(xiàn)的格式控制符必須與scanf函數(shù)的笫二個(gè)及其后面的參數(shù)一一對(duì)應(yīng).本題中四個(gè)選項(xiàng)的格式控制字符串都是'%d%s',其中包括兩個(gè)格式控制符%d和%s,它們分別表示輸入一個(gè)十進(jìn)制整數(shù)和輸入一個(gè)字符串,其對(duì)應(yīng)的參數(shù)應(yīng)該分別為一個(gè)整型變量的地址和一個(gè)字符型數(shù)組的首地址。變量的地址可以通過對(duì)變量做取地址(&)運(yùn)算來得到,而宇符型數(shù)組的首地址則可以直接通過數(shù)組名來得到。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

54.C解析:軟件設(shè)計(jì)遵循軟件工程的基本目標(biāo)和原則,建立了適用于在軟件設(shè)計(jì)中應(yīng)該遵循的基本原理和與軟件設(shè)計(jì)有關(guān)的概念。①抽象是一種思維工具,就是把事物本質(zhì)的共同特性抽出來而不考慮其他細(xì)節(jié)。②模塊是指可以單獨(dú)命名且可編址的元素。如高級(jí)語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。因此,本題的正確答案是C。

55.D

56.D解析:選項(xiàng)A),共用體的每個(gè)成員的起始地址都相同;選項(xiàng)B),共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度;選項(xiàng)C)因?yàn)槊總€(gè)成員的起始地址相同,所以整型數(shù)5以浮點(diǎn)型輸出時(shí)為5.000000;選項(xiàng)D)C語言規(guī)定,不能把共用體變量作為函數(shù)的參數(shù)。

57.B解析:本題考查的是C語言中實(shí)型常量的指數(shù)表示法。實(shí)型常量的指數(shù)表示法是用字母e(或E)將一個(gè)實(shí)數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項(xiàng)B不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。

58.D解析:本題要求閱讀的代碼是一個(gè)函數(shù),閱讀之前先要看清函數(shù)的定義,該函數(shù)有兩個(gè)參數(shù),都是字符指針,這說明它接收的是兩個(gè)字符串.該函數(shù)沒有定義返回類型,C語言規(guī)定函數(shù)的返回類型為int時(shí)可以省略,所以切不可將其看成是無返回類型的void型函數(shù),它是int型函數(shù)。函數(shù)體中除了返回語句外,只有一條while循環(huán)語句,該循環(huán)的循環(huán)條件為(*a!='\\'0}&&(*b!='\\0')&&(*a==*B),即當(dāng)a和b所指處都不是字符結(jié)束符'\\0'并且a和b所指處的內(nèi)容相等時(shí)執(zhí)行循環(huán)。而循環(huán)體中只是簡(jiǎn)單地將指針a和b同時(shí)往后移動(dòng)1位。循環(huán)結(jié)束后返回a所指內(nèi)容減去b所指內(nèi)容的差。換個(gè)角度去考慮,也就是說當(dāng)字符串a(chǎn)或b中有一個(gè)結(jié)束了或者是它們的相同位置中有一個(gè)字符不同時(shí),則返回該位置兩個(gè)字符之差。若兩者長(zhǎng)度相同而且所有對(duì)應(yīng)字符都相同的話,最后返回的是'\\0\\-'\\0'=0,否則的話就返回兩個(gè)字符串第一對(duì)不相同的字符之差.這時(shí)應(yīng)該可以看出來,這個(gè)函數(shù)實(shí)現(xiàn)的是對(duì)兩個(gè)字符串的比較。所以,4個(gè)選項(xiàng)中D正確。

59.B

60.B

61.Astrcat函數(shù),gets函數(shù);首先將輸入的字符串賦給ss,然后將字符串“6789”連接到ss得后面

62.A標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。B選項(xiàng)int不是表達(dá)變量類型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名。C選項(xiàng)do是C語言的一個(gè)關(guān)鍵字。D選項(xiàng)標(biāo)識(shí)符只能以字母或下劃線開始。

63.C在本題中,從給出的選項(xiàng)可以知道,本題程序的作用是對(duì)數(shù)組的十個(gè)元素按照一個(gè)規(guī)則進(jìn)行輸出。

在程序中,首先定義了一個(gè)大小為10的數(shù)字用來存放需要處理的十個(gè)數(shù),然后通過循環(huán)從鍵盤輸入需要被處理的十個(gè)數(shù),又通過一個(gè)循環(huán)完成對(duì)數(shù)組元素的輸出。在該循環(huán)中,當(dāng)循環(huán)變量j=9時(shí),輸出的是a[9],即數(shù)組中的最后一個(gè)元素,當(dāng)j=8時(shí),輸出的是a[8],即數(shù)組中的倒數(shù)第二個(gè)元素,以此類推,當(dāng)j=0時(shí),輸出的是a[0],即數(shù)組的第一個(gè)元素。由此我們可以看出,最后是將數(shù)組逆序輸出。與選項(xiàng)C完全一致,因此,本題的正確答案是C。

64.C

65.A本題重點(diǎn)考察函數(shù)的調(diào)用,首先要了解字母對(duì)應(yīng)的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個(gè)字母。-其次是函數(shù)形參和實(shí)參的問題,運(yùn)行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因?yàn)橹羔榗指向地址的值為b,此時(shí)b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項(xiàng)正確。

66.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項(xiàng)A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計(jì)算得到f=n!一0,所以選項(xiàng)A不正確。在選項(xiàng)B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計(jì)算得到f=(n-1)!,所以選項(xiàng)B不正確。在選項(xiàng)C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項(xiàng)c不正確。在選項(xiàng)D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計(jì)算得到f=n!,所以選項(xiàng)D正確。

67.C本題考查while()語句。程序中使用的是while循環(huán),為“當(dāng)型”循環(huán)結(jié)構(gòu),即當(dāng)條件為真時(shí)循環(huán),將值代入循環(huán),當(dāng)num為3時(shí),循環(huán)的條件已經(jīng)為假,將不再循環(huán)。故本題答案為C。

68.A

\n在主函數(shù)中,k的初值為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)論