2021年安徽省池州市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第1頁
2021年安徽省池州市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第2頁
2021年安徽省池州市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第3頁
2021年安徽省池州市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第4頁
2021年安徽省池州市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

2021年安徽省池州市全國計算機等級考試C語言程序設計知識點匯總卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.有以下程序:

#include<stdio.h>,

main()

{intS;

scanf("%d",&s);

while(s>O)

{switch(s)

{casel:printf("%d",s+5);

case2:printf("%d",s+4);break;

case3:printf("%d",s+3);

default:("%d",s+1);break;

}

scanf("%d",&s);

}

}

運行時,若輸入123450<回車>,由輸出結果是()。

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

2.

3.設有一組關鍵字序列{5,8,14,20,31,55,78,81,93,97,111},使用二分(折半)法查找關鍵字93最少需要進行多少次比較()A.2B.3C.4D.5

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

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

則下面對函數(shù)指針的定義和賦值均正確的是A.void(*pf)();pf=fun;

B.void*Pf();pf=fun;

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

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

5.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項中正確的是()。

A.typedefChar*s;

B.typedefChar*STP;

C.typedefSTP*Char;

D.typedef*CharSTP;

6.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構采用順序存儲結C.元素按值有序且采用順序存儲結構D.元素按值有序且采用鏈式存儲結構

7.有以下程序:

程序運行后的輸出結果是()。

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

8.將數(shù)據(jù)和操作置于對象統(tǒng)一體中的實現(xiàn)方式是()。

A.隱藏B.抽象C.封裝D.結合

9.設線性鏈表中結點的結構為(data,next)。已知指針q所指結點是指針結點p的直接前驅,若在*q與*p之間插入結點*s,則應執(zhí)行下列()操作。

A.s->next=p->next;p->next=s;

B.q->next=s;s->next=p;

C.p->next=s->next;s->next=p;

D.p->next=s;s->next=q;

10.若有定義;intw[3][5];,則以下不能正確表示該數(shù)組元素的表達式是()。A.*(*w+3)B.*(w+1)[4]C.*(*(w+1))D.*(&w[0][0]+1)

11.

12.有以下程序: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]);}程序運行后的輸出結果是______。

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

13.如有inta=11;則表達式(a++*1/3)的值是()。

A.0B.3C.4D.12

14.需要分配較大空間,插入和刪除不需要移動元素的線性表,其存儲結構是()。A.單鏈表B.靜態(tài)鏈表C.線性鏈表D.順序存儲結構

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

A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值

16.若已定義x和y是整型變量,x=2;,則表達式y(tǒng)=2.75+x/2的值是()。

A.5.5B.5C.3D.4.0

17.下列程序的輸出結果是()structabc{inta,b,c;};main(){structabcs[2]={{1,2,3},{4,5,6}};intt;t=s[0].a+s[1].b;printf("%d\n",t);}

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

18.以下敘述中錯誤的是()。

A.C程序中的#include和#define行均不是C語句

B.除逗號運算符外,賦值運算符的優(yōu)先級最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術運算符,可用于整型和實型數(shù)的運算

19.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序運行后輸出結查是

A.16B.10C.8D.6

20.有以下程序:#include<stdio.h>voidfunl(char*p){char*q;q=p;while(*q!='\0')}(*q)++;q++;}mains(){chara[]={"Program"},*p;p=&a[3];fun1(p);printf("%s\n",a);}程序執(zhí)行后的輸出結果是()。

A.ProhsbnB.PrphsbnC.ProgsbnD.Program

二、2.填空題(20題)21.以下程序中給指針p分配3個double型動態(tài)內存單元,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{double*p;

p=(double*)malloc((【】);

p[0]=1.5;p[1]=2.5;p[2]=3.5;

printf("%f%f%f\n",p[0],p[1],p[2]);

}

22.fseek函數(shù)的正確調用形式是【】。

23.下面程序的運行結果是______。

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);

}

24.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。

25.若有以下定義和語句,則使指針p指向值為36的數(shù)組元素的表達式是【】。

inta[10]={19,23,44,17,37,28,49,36},*p;

p=a;

26.在關系運算中,查找滿足一定條件的元組的運算稱之為【】。

27.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。

28.使用結構體處理數(shù)據(jù)的場合是【】。

29.設有以下程序,為使之正確運行,請在下劃線中填入應包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)

【】

main()

{printf("\n");

try_me();

printf("\n");}

30.以下條件表達式可計算:1+|a|的值,請?zhí)羁?。a>=0?【】:【】

31.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運行后的輸出結果是()。

32.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。

33.以下函數(shù)inverse的功能是使一個字符串按逆序存放,請?zhí)羁铡?/p>

inverse(charstr[])

{charm;

inti,j;

for(i=0,j=strlen(str);i<strlen(str)/2;【】,j--)

{m=str[i];

str[i]=【】;

【】;

}

}

34.多媒體計算機所用的CD-ROM是【】。

35.以下程序運行后的輸出結果是【】。

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));

}

36.以下程序的輸出結果是【】。

#include<stdio.h>

main()

{inta=1234;

floatb=123.456;

doublec=12345.54321;

printf("\n%2d,%2.1f,%2.11f",a,b,C);

}

37.下面程序的功能是:將字符數(shù)組a中下標值為偶數(shù)的元素從小到大排列,其他元素不變。

#include<stdio.h>

#include<string.h>

main()

{chara[]="clanguage",t;

inti,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

for(j=i+2;j<=k;【】)

if(【】)

{t=a[i];a[i]=a[j];a[j]=t;}

puts(a);

printf("\n");

}

38.設有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是

39.以下程序的輸出結果是_______。

main()

{char*p[]={"BOOL","OPK","H","SP:,};

for(i=3;i>0;i--,i--)printf("%c",*p[i]);

printf("\n");}

40.設二進制數(shù)A是00101101,若想通過異或運算ab使A的高4位取反,低4位不變,則二進制數(shù)B應是【】。

三、1.選擇題(20題)41.有以下程序: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í)行后輸出結果是()。

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

42.關于結構化程序設計原則和方法的描述錯誤的是()。

A.選用的結構只準許有一個入口和一個出口

B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬

43.以下數(shù)組定義中錯誤的是A.intx[][3]={0};

B.intx[2][3]={{l,2},{3,4},{5,6}};

C.intx[][3]={{l,2,3},{4,5,6}};

D.intx[2][3]={l,2,3,4,5,6};

44.下列程序的運行結果是()。main(){inta=-5,b=1,c=1;intx=0,y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>O)if(c<=0)y=x-y;}elseif(c>0)y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}

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

45.關系代數(shù)運算是以______為基礎的運算。

A.關系運算B.謂詞運算C.集合運算D.代數(shù)運算

46.下列敘述中,不符合良好程序設計風格要求的是

A.程序的效率第一,清晰第B.程序的可讀性好C.程序中要有必要的注釋D.輸入數(shù)據(jù)前要有提示信息

47.以下程序運行后,輸出結果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)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

48.以下程序的輸出結果是

intf()

{staticinti=0;

ints=1;

s+=i;i++;

returns;}

main()

{inti,a=0;

for(i=0;i<5;i++)a+=f();

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

A.20B.24C.25D.15

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

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

50.若有定義:inta[2][3];,以下選項中對a數(shù)組元素正確引用的是

A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]

51.C語言提供的合法關鍵字是______。

A.swicthB.chanC.CaseD.default

52.若有定義inta[2][3];,則對a數(shù)組的第i行第j列(假調i,j已正確說明并賦值)元素值的正確引用為

A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j

53.下列特征中不是面向對象方法的主要特征的是()。

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

54.以下能正確定義的數(shù)組并正確賦初值的語句是

A.intN=5,b[N][N];

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

C.intc[2][]={{1,2},{3,4}};

D.intd[3][2]={{1,2},{3,4}};

55.下列正確的實型常量是()。

A.E3.4B.-12345C.2.2e0.8D.4

56.有如下程序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);}該程序的輸出結果是

A.69825B.63825C.6385D.693825

57.以下4個程序中,完全正確的是()。

A.#include<stdio.h>main();{/*programming*/printf("programming!\n");}

B.#include<stdio.h>main(){/*/programming/*/printf("programming!\n");}

C.#include<stdio.h>main(){/*/*programming*/*/printf("programming!\n");}

D.#include<stdio.h>main(){/*programming*/printf("programming!\n");}

58.以下敘述中正確的是______。

A.C語言比其他語言高級

B.C語言可以刁;用編譯就能被計算機識別執(zhí)行

C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D.C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點

59.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5

60.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結果是()。

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

四、選擇題(20題)61.有如下程序

voidf(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

main()

{inta[6]={1,2,4,6,8,10},i,*p,*q;

p=a;q=&a[5];

while(p<q)

{f(p,q);p++;q--;}

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

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

}

該程序的輸出結果是

A.1,2,4,6,8,10B.10,8,4,6,2,1

C.10,8,6,4,2,1D.10,2,4,6,8,1

62.

63.在一個C源程序文件中所定義的全局變量,其作用域為()。

A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍

64.

65.軟件按其功能進行分類,可分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是

A.文字編輯軟件B.網(wǎng)頁瀏覽器C.數(shù)據(jù)庫管理系統(tǒng)D.視頻播放軟件

66.下列敘述中錯誤的是()。A.A.在C語言中,函數(shù)中的自動變量可以賦初值,每調用一次賦一次初值B.在C語言中,在調用函數(shù)時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

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

67.

68.

69.對于算法的每一步,指令必須是可執(zhí)行的。算法的()要求算法在有限步驟之后能夠達到預期的目的。

A.可行性B.有窮性C.正確性D.確定性

70.設變量a是int型,f是float型,i是double型,則表達式10+′a′+i*f值的數(shù)據(jù)類型為

A.intB.floatC.doubleD.不確定

71.設有以下說明語句:

則下面的敘述中不正確的是()。

A.struct結構體類型的關鍵字

B.example是結構體類型名

C.x,y,z都是結構體成員名

D.struetex是結構體類型名

72.為了使模塊盡可能獨立,要求()。A.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強

B.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱

C.模塊的內聚程度要盡量低,且各模塊間的偶合程度要盡量弱

D.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強

73.交換兩個變量的值,不允許用臨時變量,應該使用下列()位運算符。

A.&B.^C.D.E.F.~

74.x,y,z被定義為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.);

75.

下列程序的運行結果是()。

#include<stdio.h>

main

{staticchara[]="Languagef",b[]="programe":

char*p1,*p2;intk;

p1=a;p2=b;

for(k=0;k<=8;k++)

if(*(p1+k)==*(p2+k))

printf("%c",*(p1+k)):

}

A.gaeB.angC.programD.有語法錯

76.

77.在E—R圖中,用來表示實體聯(lián)系的圖形是()。

A.橢圓形B.矩形C.菱形D.三角形

78.(36)下列工具中屬于需求分析常用工具的是()

A.PAD

B.PFD

C.N-S

D.DFD

79.層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫的劃分原則是()

A.數(shù)據(jù)之間的聯(lián)系方式B.記錄長度C.聯(lián)系的復雜程度D.文件的大小

80.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉換為對應小寫字母的語句是()。

A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'

五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的n個元素按從大到小的順序進行排序。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc(),該函數(shù)的功能是:實現(xiàn)B=A+A',即把矩陣A加上A的轉置,存放在矩陣B中。計算結果在main()函數(shù)中輸出。

注意:部分源程序給出如下。

請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。

試題程序:

參考答案

1.A\n根據(jù)題意,當s=1時,輸出65;當s=2時,輸出6;當S=3時,則輸出64;當S=4時,輸出5;當s=5時,輸出6;當s=0時,程序直接退出。所以最后答案為6566456,A選項正確。

\n

2.B

3.A

4.A解析:函數(shù)指針的定義形式是:數(shù)據(jù)類型標識符(*指針變量名)()。void(*pf)()定義了一個沒有返回值的函數(shù)指針pf,在給函數(shù)指針變量賦值時,只需給出函數(shù)名而不必給出參數(shù)。所以給pf賦值時,只把函數(shù)名fun賦給pf即可。所以正確答案為選項A)。

5.B用關鍵字typedef聲明一種新的類型的形式為typedef類型名標識符。本題中的類型為char*。

6.C

7.B第一次執(zhí)行外循環(huán)i的值為1,滿足條件,判斷第一次內循環(huán),j的值為3,不滿足條件,跳出內循環(huán)。第二次執(zhí)行外循環(huán)i的值為2,同理也不滿足內循環(huán)條件,跳出內循環(huán)。第三次執(zhí)行外循環(huán)i的值為3,此時進入內循環(huán)判斷條件時,條件成立,執(zhí)行m=m%j,m的值為1,跳出內循環(huán),跳出外循環(huán)打印m的值。

8.C對象具有封裝性,從外面看只能看到對象的外部特性,對象的內部對外是封閉的。即封裝實現(xiàn)了將數(shù)據(jù)和操作置于對象統(tǒng)一體中。本題答案為C選項。

9.B

10.B通過—維數(shù)組名或指向維數(shù)組元素的指針來引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價的。這是一種運算符之間的等價轉換,就好像a-(b-C)等價于a-b+c一樣。知道了這種轉換,我們可以將之擴展到二維數(shù)組甚至任意維數(shù)組上來。因為[]運算符的結合性是從左至右的,所以w[i][j]等價于(w[i][j],此時可以先將任意一個[]運算符轉換為指針形式為:(*(w+i)[j]或*(w[i]+j),或者同時轉換:*(*(w+i)+j)。上述幾種形式都完全等價于w[i][j]。選項A中,*(*w+3)可以看成*(*(w+0)+3),即w[0][3],是正確的。選項B小,因為[]運算符的優(yōu)先級高于*運算符,所以*(w+1)[4]等價于*((w+1)[4]等價于*(*((w+1)+4)),即*(*(w+5)+0),它等價于w[5][0],很明顯它超過數(shù)組的范圍了,故不正確。選項C等價于w[1][0],是下確的。選項D中,&w[0][0]是數(shù)組w第1個元素的地址,它等價于&*(*(w+0)+0),外面的&和*可以抵消,就好像先乘以個數(shù),然后再除以這個數(shù)一樣。所以,&w[0][0]等價于*(w+0)+0。即*w。所以原式就變?yōu)?(*w+1)等價于w[0][1],這個也是合法的。綜上所述,本題應該選擇B。

11.D

12.D解析:C語言覿定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實參傳給形參,而不能由形參傳回來給實參。函數(shù)調用結束后,形參單元被釋放,實參單元仍保留并維持原值。本題要求輸出aa[0]的值,結果應為1。

13.B

14.B

15.B解析:p本身就是一個字符型指針變量,返回p也就是返回變量p中存放的地址值。

16.C

17.D

18.D解析:“%”是求余運算符,其兩側的數(shù)值只能為整型,不能用于實型數(shù)據(jù)的運算。

19.B解析:本題考查的是指針的簡單應用。題目中首先定義了一個int型數(shù)組a并初始化了,然后定義了兩個指針變量p和q,并分別初始化p為指向數(shù)組元素a[3]、q指向p后面的第2個元素即指向a[5]。所以最終輸出的值為a[3]+a[5]的值10。應該選B。

20.A解析:在main函數(shù)中,p=&a[3]說明指針p指向a數(shù)組的第4個字符(即字符\'g\');fun1中的q=p意味著指針q也指向了a數(shù)組的第4個字符。執(zhí)行while語句,表達式(*q)++使\'g\'+1,使\'g\'變成了\'h\';表達式q++使q指向a[4]的起始地址。繼續(xù)執(zhí)行while語句,直到遇到\'\\0\'結束循環(huán),返回形參。最終得到的結果是從字符串'Program\'的第4個字符開始,每個字符加1。

21.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:該函數(shù)的調用格式是malloc(n),作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調用的時候可在前面加上“(類型說明符*)”,以轉換成需要的類型的地址。所以在此空白處應該填寫3*sizeof(double)或size(double)*3或其他等價的表達式。

22.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調用形式為:

fseek(文件指針,位移量,起始點)

“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當文件的長度大于64k時不致出現(xiàn)問題。ANSIC標準規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。

23.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學表達式如下:

f(&a,n)=a[0]+f(&a[1],n-1)n>1

f(&a,n)=a[0]n=1

本題中定義了一個長度為3的數(shù)組aa并初始化。接著調用遞歸函數(shù)f,由上面的數(shù)學表達式以計算其返回值s=1+2+3=6,所以空格處應該填6。

24.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。

25.p=p+7或p+=7p=p+7或p+=7解析:本題考查通過指針引用數(shù)組元素。值為36的數(shù)組元素在a數(shù)組中是第8個元素,即a[7]。在程序中,p=a;語句將數(shù)組a的首地址賦給了指針變量p,則可以用*(p+i)來表示數(shù)組元素,*(p+i)與a[i]等價,a[7]可表示為*(p+7)。要使指針p指向a[7],可以用p=p+7移動指針,故填寫p=p+7或p+=7。

26.選擇選擇解析:在關系數(shù)據(jù)庫中,選擇運算也是一個元運算,關系R通過選擇運算(并由該運算給出所選擇的邏輯條件)后仍為一個關系。這個關系是由R中的那些滿足邏輯條件的元組所組成。

27.概念概念

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

29.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結尾,如果其他文件想使用這個函數(shù),需要用#include文件包含命令將定義函數(shù)的文件包含進來。

30.1+a1-a1+a,1-a解析:考查條件運算符的使用。因為題目中求的是1+|a|的值,即1和a的絕對值之和,所以根據(jù)數(shù)學中求絕對值的規(guī)則;當a>=0時,絕對值取本身,當a<0時,絕對值取相反數(shù),再結合條件運算符的計算規(guī)則,可得到本題的答案為a>=0。

31.98

32.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。

33.i++或++istr[j-1]str[j-1]=mi++或++i\r\nstr[j-1]\r\nstr[j-1]=m解析:字符中逆序存放的算法是:將字符串中的第i個字符和第strlen(str)-i個字符交換。然后交換字符串中第i+1個字符和第(strlen(str)-i)-1個字符,故循環(huán)變量i的值應改變,且步長為1,所以[18]處應填i++;讀程序可知,循環(huán)中通過中間變量m交換字符串中的第i個字符和第strlen(str)-i個字符,所以題中第一、二處應分別填寫str[j-1]、str[j-1]=m。

34.只讀光盤只讀光盤

35.gaegae解析:本題定義了兩個字符串數(shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串數(shù)組a和b,抽打for循環(huán),當if(*(p1+k)==*(p2+k))條件為真,執(zhí)行輸出*(p1+k)對應的字符。即當k=0時,*(p1+k)對應的字符串數(shù)組a中的字符L,*(p2+k)對應的字符串數(shù)組b中字符P,因此if(*(p1+k)==*(p2+k))條件為假,不執(zhí)行printf語句,依此類推,將字符串數(shù)組a和b中對應位置上的字符——比較,如果對應位置上的字符相同,則輸出該字符。

36.1234123.512345.51234,123.5,12345.5解析:在primf()函數(shù)的格式控制符中:'%2d'表示輸出一個有符號整數(shù),如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的a按原樣輸出為1234:'%2.1尸表示輸出一個單精度實數(shù),只輸出小數(shù)點后1位,后面若有小數(shù)則四舍五入,如果輸出長度小于2,則左端補以空格,否則按實際長度輸出。所以本題中的b四舍五入到小數(shù)點后1位再輸出為123.5;'%2.11f'除了表示輸出一個雙精度實數(shù)外,其余參數(shù)和'%2.1f'一樣。所以本題中的c四舍五入到小數(shù)點后1位再輸出為12345.5。故輸出結果是:1234,123.5,12345.5。

37.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]

38.D

39.

40.1111000011110000解析:按位異或運算的一個重要應用是讓某個整型變量的二進制位取反,0變成1,而1變成0。這只要設計這樣一個位串信息,讓要變反的位為1,不要改變的位為0,用這個位串信息與整型變量按位加就能得到希望的結果。要使字節(jié)的高4位取反,低4位不變,則需要位串信息是11110000。

41.A解析:本題定義了一個指向由3個元素組成的一維數(shù)組的指針變量pa,通過賦值讓它指向具有2行3列的數(shù)組a,此時用指針變量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選項為所選。

42.C解析:限制使用GOTO語句是結構化程序設計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結構化程序設計的原則。

43.B(16)B)解析:二維數(shù)組的初始化有以下幾種形式:①分行進行初始化。②不分行的初始化。③部分數(shù)組元素初始化。④省略第一維的定義,不省略第二維的定義。選項B)等號右邊分了3行,大于等號左邊數(shù)組的行數(shù)2。

44.A解析:本題考查ifelse語句的使用。先判斷第1個if語句,因為c=1>0,所以x=x+y=0+2=2。第1個if語句,因為a=-5<0,所以進入下列的復合語句。經(jīng)判斷發(fā)現(xiàn),復合語句中第2個if語句的條件均不滿足,不執(zhí)行任何語句退出,在這個過程中y和z的值沒有發(fā)生變化。

45.C解析:關系代數(shù)是以集合代數(shù)為基礎女發(fā)展起來的,它是以關系代數(shù)作為運算對象的一組高級運算的集合。它的基本操作是并、交、差、笛卡爾積,另外還包括針對數(shù)據(jù)庫環(huán)境專門設計的操作,包括對關系進行垂直分割(投影)、水平分割(選擇)、關系的結合(連接)等。

46.A解析:當今主導的程序設計風格是“清晰第一,效率第二”的觀點。結構化程序設計思想提出之前,在程序設計中曾強調程序的效率,而在實際應用中,人們更注重程序的可理解性。

47.A

48.D解析:函數(shù)的靜態(tài)局部變量在編譯時就賦初值,即只賦初值一次,在程序運行時它已有初值,以后每次調用函數(shù)時不再重新賦值,而只是保留上次函數(shù)調用結束時的值。

49.B

50.D解析:C語言中數(shù)組下標是從0開始的,所以二維數(shù)組a[2][3]的第一維下標取值為0、1;第二維的下標取值為0、1、2,因而選項A)、B)、C)都是錯誤的,選項D)表示數(shù)組元素a[0][0]。

51.D

52.A解析:本題考查了二維數(shù)組元素的引用方法。選項A中a+i指向了數(shù)組a的第i+1行,*(a+i)則是第i+1行第0列的地址值,*(a+i)+j指向了數(shù)組a第i+1行,j+1列,*(*(a+i)+j)取到的是數(shù)組a的a[i][j]元素。

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

54.D解析:本題考核的知識點是二維數(shù)組的定義以及數(shù)組元素初始化。選項A中,數(shù)組的長度使用了變量N,而在c中是不能用變量來定義數(shù)組的的長度的,故選項A錯誤。在c語言中,給二維數(shù)組賦初值時,行數(shù)不能超過定義的行數(shù),每行的初值個數(shù)不能超過定義時的列數(shù),故選項B錯誤。選項C數(shù)組的第二維下標缺省,而在C中,數(shù)組的第二維下標不能缺省,故選項C錯誤。所以,D選項為所選。

55.B解析:實型常量有兩種書寫形式。①小數(shù)形式,它由符號、整數(shù)部分、小數(shù)點及小數(shù)部分組成;②指數(shù)形式,由十進制小數(shù)形式加上指數(shù)部分組成,其形式為:十進制小數(shù)e指數(shù)或十進制小數(shù)E指數(shù)。

注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項A)中E的前面沒有數(shù)字,因此錯誤。選項C)中0.8不是整數(shù),因此錯誤。選項D)中4是整型常量而不是實型常量。

56.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應關系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當前p[i][j]中的字符量轉換為相應的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結束標志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是‘8’和‘5’,同時經(jīng)過轉換和相加運算后,結果s中的值應該是6385,所以,正確答案是C)。

57.B解析:選項A在定義main()函數(shù)時,函數(shù)頭后面多了一個分號,故選項A不正確;C語言中的注釋是不能嵌套的,故選項C不正確:選項D在使用預編譯指令#include時漏掉了#號,所以也是錯誤的。故應該選擇B。

58.C解析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須譯成能被計算機識別的二進制數(shù)才能執(zhí)行,選項B錯誤;C語言出現(xiàn)從1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D也是錯誤的。

59.C解析:這是一個逗號表達式,它的值應為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉換的情況下,3/2的值為1,所以x+3/2的值應為2.0。

60.C解析:C語言.中以,'\\0'作為字符串的結束符,且strlen函數(shù)計算的是,'\\0',字符前的所有字符的個數(shù),故本題中strlen(a)應為2。數(shù)組定義以后系統(tǒng)就為其分配相應大小的內存空間,而不論其中有沒有內容。sizeof運算符是計算變量或數(shù)組所分配到的內存空間的大小,所以本題的sizeof(a)為7。

61.C題目中給出的程序分為兩個部分:主函數(shù)main和函數(shù)f。在主函數(shù)中初始化定義了一個整型數(shù)組a,大小為6,并定義了兩個數(shù)組指針p,q。指針p指向數(shù)組第一個元素的地址,指針q指向數(shù)組最后一個元素的地址。主函數(shù)包含一個while語句,循環(huán)條件為p<q,while語句內部先調用了f函數(shù),p、q指針為該函數(shù)的實參,隨后進行了p++操作和q--,即使p指針指向下一個元素的地址,q指針指向前一個元素的地址。由于是數(shù)組存儲,必然存在初始時,有p<q,當p>=q時,while語句結束。while語句后面是for語句,該語句的作用是輸出數(shù)組a[]中所有的數(shù)據(jù)。

f函數(shù)的形參為整型指針,函數(shù)的功能是使得輸入的指針變量所指向的數(shù)據(jù)進行交換,由于使用的是指針變量,故在f函數(shù)中對指針的操作結果會影響調用函數(shù)中(main)實參所指數(shù)據(jù)的改變,題目中f函數(shù)的調用實質是將main函數(shù)中的p、q指針所指的數(shù)據(jù)進行交換,也將導致數(shù)組a中相應的數(shù)據(jù)進行交換。結合while語句,也就是將數(shù)組a中的第1個數(shù)據(jù)與第6個數(shù)據(jù)進行交換,第2個數(shù)據(jù)與第5個數(shù)據(jù)進行交換,以此類推,得到結果10,8,6,4,2,1。

62.Afun函數(shù)將字符串中的小寫字符轉換為大寫字母,所以答案選擇A)。

63.A全局變量的作用域是從聲明處到文件的結束。所以選擇A)。

64.A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論