2021-2022年內蒙古自治區(qū)包頭市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第1頁
2021-2022年內蒙古自治區(qū)包頭市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第2頁
2021-2022年內蒙古自治區(qū)包頭市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第3頁
2021-2022年內蒙古自治區(qū)包頭市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第4頁
2021-2022年內蒙古自治區(qū)包頭市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021-2022年內蒙古自治區(qū)包頭市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.向堆中插入一個元素的時間復雜度為________。

A.O(log2n)B.O(n)C.O(1)D.O(nlog2n)

2.要解決散列引起的沖突問題,最常用的方法是()

A.數字分析法、除留余數法、平方取中法

B.除留余數法、線性探測法、平方取中法

C.線性探測法、二次探測法、鏈地址法

D.除留余數法、線性探測法、二次探測法

3.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl

4.有以下程序:

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

A.1,3

B.2,3

C.1,4

D.1,2

5.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時編譯器提示錯誤信息,你認為出錯的語句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;

6.深度為5的二叉樹至多有C個結點。

A.16B.32C.31D.10

7.以下程序的輸出結果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020

8.以下正確的字符串常量是()。

A.\\\B.'abc'C.OlympicGames

9.軟件設計中劃分模塊的一個準則是()。A.低內聚低耦合B.高內聚低耦合C.低內聚高耦合D.高內聚高耦合

10.在ASC算法team日常開發(fā)中,常常面臨一些數據結構的抉擇,令人糾結。目前大家在策劃一個FBI項目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請在下面幾個數據結構中選擇一個使檢索速度最快的()

A.二叉搜索樹,比較函數開銷:1次運算/每字符

B.哈希表,hash算法開銷:10次運算/每字符

C.鏈表,比較函數開銷:1次運算/每字符

D.TRIE樹,尋找子節(jié)點開銷:1次運算/每字符

11.設有定義:floata=2,b=4,h=3;以下c語言表達式中與代數式(a+B)h計算結果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

12.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運行后的輸出結果是()。A.10,64B.10,10C.64,10D.64,64

13.下列關于棧的描述中錯誤的是()。

A.棧是先進先出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入刪除操作中,不需要改變棧底指針

14.

15.有以下程序

#include<stdio.h>

main()

{ints;

scanf(“%d”,&s);

while(s>0)

{switch(s)

{case1;printf(“%d”,s+5);

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

case3:printf(“%d”。s+3);

default:printf(“%d”,s+1);break;

}

seanf(“%d”,&s);

}

}

運行時,若輸入12345O<回車>,則輸出結果是A.6566456B.66656C.66666D.6666656

16.if語句的基本形式是:if(表達式)語句,以下關于“表達式”值的敘述中正確的是A.必須是邏輯值B.必須是整數值C.必須是正數D.可以是任意合法的數值

17.(7-6-3-5-4-1-2)堆排序,升序排列,3的位置改變幾次()

A.1B.2C.3D.4E.5F.6

18.有以下程序:main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf("%d\n",x);}程序運行后的輸出結果是______。

A.3B.5C.-1D.-216

19.以下程序的輸出結果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}

A.16B.2C.9D.1

20.設有如下定義:intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結果是()。

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

二、2.填空題(20題)21.不改變關系表中的屬性個數但能減少元組個數的是()。

22.下列程序的輸出結果是______。

#defineP(A)printf("%d,",(int)(A))

#definePRINT(A)P(A);printf("theend")

main()

{inti,a=0;

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

PRINT(a+i);

printf("\n");

}

23.若x為int類型,請寫出與!x等價的C語言表達式______。

24.對于長度為n的線性表,若進行順序查找,時間復雜性為【】;若進行二分查找,則時間復雜性為【】。

25.若采用直接插入法對字母序列(W,S,E,L,X,G,I)進行排序,使字母按升序排列,那么第一次排序的結果為【】。

26.以下程序運行后的輸出結果是______。

main()

{

intx=10,y=20,t=0

if(x==y)t=x;x=y;y=t;

printf("%d,%d/n",x,y);

}

27.【】(黑箱或白箱)測試方法完全不考慮程序的內部結構和內部特征。

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

voidreverse(inta[],intn)

{inti,t;

for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

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

}

29.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若運行時輸入:1234<回車>,程序的輸出結果是【】。

30.下列程序中的數組a包括10個整數元素,分別將前項和后項之和存入數組b,并按每行4個元素輸出數組bo請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4==0)printf("\n");

printf("%3d",b[i]);

}

}

31.用樹形結構表示實體之間聯(lián)系的模型是()。

32.下列語句能循環(huán)______次。

ints=12;

while(s);

--s;

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

main()

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

inti;

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

printf("\n");}

34.以下isprime函數的功能是判斷形參a是否為素數,是素數,函數返回1,

否則返回0。請?zhí)羁铡?/p>

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

36.軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。

37.若有以下程序:

main()

{int,p,a=5;

if(P=a!=0)

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

else

printf("%d\n",p+2);

}

執(zhí)行后輸出結果是【】。

38.在對文件進行操作的過程中,若要求文件的位置指針重新指向文件的開頭,應當調用的函數是【】函數。

39.下列程序的輸出結果是______。

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

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

fun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(6,3,a)

printf("%d,a)

}

三、1.選擇題(20題)41.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y);}程序的運行結果是

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

42.下面程序的輸出結果是_______。unionun{inta[4];longb;charc[6];}main(){unionunu;printf("%d%d",sizeof(u),sizeof(uA));}

A.82B.88C.188D.182

43.在C語言中,函數中變量的隱含存儲類別是______。

A.autoB.staticC.externD.無存儲類別

44.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case0:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}程序運行后的輸出結果是______。

A.22111B.21021C.122D.12

45.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是()。

A.a,point,*&a

B.&*a,&a,*point

C.*&point,*point,&a

D.&a,&*point,point

46.數據存儲和數據流都是______,僅僅是所處的狀態(tài)不同。

A.分析結果B.事件C.動作D.數據

47.有以下程序: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.無確定值

48.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是

A.kk>=′A′&&kk<=′Z′

B.!(kk>=′A′||kk<=′Z′)

C.(kk+32)>=′a′&&(kk+32)<=′Z′

D.isalpha(kk)&&(kk<91)

49.設變量x和y均已正確定義并賦值。下列if語句中,在編譯時將產生錯誤信息的是()。

A.if(x++);

B.if(x>y&&y!=0);

C.if(x>0)x--elsey++;

D.if(y<0){;}elsex++;

50.下列選項中正確的語句組是()。

A.chars[8];s={"Beijing"};

B.char*s;s={"Beijing"};

C.chars[8];s="Beijing";

D.char*s;s="Beijing";

51.下列是用戶自定義標識符的是

A._w1B.3_xyC.intD.LINE-3

52.數據結構作為計算機的一門學科,主要研究數據的邏輯結構、對各種數據結構進行的運算,以及()。A.A.數據的存儲結構B.計算方法C.數據映象D.邏輯存儲

53.關系數據庫管理系統(tǒng)能實現(xiàn)的專門關系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關聯(lián)、更新、排序D.顯示、打印、制表

54.控制鍵^C的功能為()

A.終止當前操作B.系統(tǒng)復位C.暫停標準輸出設備的輸出D.結束命令行

55.下面敘述正確的是______。A.算法的執(zhí)行效率與數據的存儲結構無關

B.算法的空間復雜度是指算法程序中指令(或語句)的條數

C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D.以上三種描述都不對

56.設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次

57.以下程序的輸出結果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

58.設有以下語句

charx=3,y=6,z;

z=x^y<<2;

則z的二進制值是

A.00010100B.00011011C.00011100D.00011000

59.已知p、p1為指針變量,a為數組名,i為整型變量,下列語句中,不正確的是______。

A.p=&i;B.p=a;C.p=&a[i];D.p=10;

60.若運行時給變量x輸入12,則以下程序的運行結果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}

A.0B.22C.12D.10

四、選擇題(20題)61.

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

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

63.下面各選項中,均是C語言中合法標識符的選項組是

A.forchinatoB.long_123short56_do

C.voidunion_342D.text_023_3ew

64.用數據流圖(DFD.作為描述工具的軟件開發(fā)階段是()。

A.可行性分析B.需求分析C.概要設計D.詳細設計

65.下面結構體的定義語句中,錯誤的是()。

A.

B.

C.

D.

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

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++;}

67.應用數據庫的主要目的是A.A.解決數據保密問題

B.解決數據完整性問題

C.解決數據共享問題

D.解決數據量大的問題

68.有以下程序:

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

A.1,1,2,0B.0,0,0,3C.編譯有錯D.0,1,2,0

69.以下程序的功能是進行位運算

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

A.43B.73C.70D.40

70.

71.數據庫系統(tǒng)的三級模式不包括()。

A.概念模式B.內模式C.外模式D.數據模式

72.假設a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8

73.有以下程序運行時,‘若輸入l23450<回車>,則輸出結果是()。

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

74.

75.

76.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8

77.

78.

79.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序執(zhí)行后的輸出結果是()。A.45B.50C.60D.55

80.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.5B.24C.32D.40

五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數組中,過長的剩余字符接在str所指數組的尾部。例如,當str1所指字符串中的內容為ABCDEFG,str2所指字符串中的內容為1234時,str所指數組中的內容應該為A483C2D1EFG;而當str1所指字符串中的內容為1234,str2所指字符串中的內容為ABCEDFG時,str所指數組中的內容應該為1G2F31:4DCBA。

請修改程序中的錯誤,使它能得出正確的結果。

注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。

試題程序:

#include<stdlib.h>

#include<conio.h>

#include<stdio。h>

#include<string.h>

voidproc(char*strl,char*str2,char*str){

inti,j;charch;

i=0;j=strleu(str2)-1;

//****found****

while(i>j)

{

ch=str2[i];str2[i]=str2[j];str2[j]=ch;

i++;j--;

}

while(*str1||*str2)

{

if(*str1){*str=*str1;str++;str1++;)

if(*str2){*str=*str2;str++;str2++;)

}

//****found****

*str=0:

}

voidmain

{

chars1[100],s2[100],t[200];

system("CLS");

printf("\nEnters1string:");

scanf("%s",sl);

printf("\nEnters2string:");

scanf("%s",s2);

proc(s1,s2,t);

printf("\nTheresultis:%s\n",t);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數fun(),它的功能是求出能整除x且不是偶數的整數,并將這些整數按從小到大的順序放在PP所指的數組中,總個數通過形參n返回。如x中的值為30,則有4個數符合要求,它們是1、3、5、15。注意:部分源程序在文件prog1.c中。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.A

2.C

3.D

4.Af函數功能使第二個指針指向的元素增1,第一個指針指向的元素不變,所以答案選擇A)。

5.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對指針進行賦值時沒有錯誤。a=/*p+m賦值,在c語言中"/*"表示的注釋,所以答案選擇A。

6.C

7.B從題目中可知,\O、\t、\\分別為一個字符,而sizeof是求字節(jié)個數的函數,其中包括\O占的字節(jié),strlen函數是求數組長度的函數;其以\0結束,因此strlen的值為5,sizeof的值為20。

8.D解析:在C語言中,字符串常量是以雙引號括起來的字符序列。故選項B和C不正確。字符序列中可包含一些轉義字符,轉義字符都是以“\\”開頭的。選項A中包含了三個“\\”,前兩個(\\\\)代表了一個“\\”字符,后面一個和“'”一起(\\”)被看作一個……,所以該字符串缺少一個結束的“'”,故不正確。選項D的兩個……之間沒有任何字符,代表的是一個空串,是合法的字符串常量,故應該選擇D。

9.B一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。

10.D

11.B解析:選項B中由于1和2都是整型,其1/2的運算結果為0,故整個表達式的值為0,所以它的結果和題目中要求的代數式的討算結果不相符,所以,4個選項中選項B符合題意。

12.A本題考查帶參數的宏定義。第一次函數調用求S的值,x=a+1,所以X*X*X應寫成a+1*a+1*a+1,沒有括號優(yōu)先級,結果為l0,第二次函數調用x*X*X可寫成(a+1)*(a+1)*(a+1),所以結果為43=64。

13.B

\n棧是線性表的一種,它的特點是先進后出,并且只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,因此具有記憶作用,??梢圆捎庙樞虼鎯Γ部梢圆捎面準酱鎯?。

\n

14.D

15.A

16.D

17.B

18.D解析:本題主要考查++執(zhí)行的次序。執(zhí)行過x=-m++;后,x=-3,m=4;執(zhí)行x=x+8/++n;時8/++n=1;因此最后x=-216。

19.D解析:本題考查帶參數的宏調用。a/=SQR(k+m)/SQR(k+m)進行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。

20.D

21.選擇選擇解析:關系數據庫的專門關系運算包括選擇、投影和連接3種,其中選擇不改變關系表中的屬性個數但能減少元組個數。

22.1234theend1,2,3,4,theend解析:本題考查帶參數的宏的定義。第1次循環(huán),i=1時,調用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調用PRINT(2),P(2)輸出2;第3次循環(huán),i=3時,調用PRINT(3),P(3)輸出3;第4次循環(huán),i=4時,調用PRINT(4),P(4)輸出4,theend。

23.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。

24.O(n)O(log2n)

25.SWELXGI

26.20020,0解析:本題考查的知識點是if語句的基本概念。在主函數中首先定義了三個整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內的條件表達式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。

27.黑箱黑箱解析:本題考查了軟件測試中的黑箱測試。黑箱測試是根據程序規(guī)格說明所規(guī)定的功能來設計測試用例,它不考慮程序的內部結構和處理過程。常用的黑箱測試技術分為等價類劃分、邊界分析、錯誤猜測以及因果圖等。

28.2222解析:在main函數中,調用reverse函數將b數組中的前8個成員進行互置,執(zhí)行完畢后,b數組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結構,將b[6],b[7]...b[9]的值相加,結果為22。

29.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

30.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數組a中元素a[i]與a[i+1]值相加后的值賦予數組b中元素b[i],即可實現(xiàn)將一個數組的前項和后項之和存入另一數組。

31.層次模型層次模型解析:層次模型是最早發(fā)展起來的數據庫模型。層次模型的基本結構是樹形結構。

32.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。

33.SOSO解析:考查用指針引用字符串數組中元素的方法。題中需要注意兩個問題:一是for循環(huán)的修正表達式共執(zhí)行兩次'i--'操作;二是*p[i]是對某個字符的引用。

34.return0return1return0,return1解析:如果a能被i整除,則a是素數,返回值為0。如果a不能被i整除,則a不是素數,返回值為1。

35.1010解析:整型指針最初被賦的值是數組arr的頭指針,即指向數組的第一個元素30,p++后,指針指向數組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。

36.結構結構解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結構進行測試。

37.11解析:首先計算if語句后面的表達式,根據運算符的優(yōu)先級可知,先算“a!=0”,該值為1,再把1賦值給p,結果為1(真),執(zhí)行其后的printf語句,輸出的值為1。

38.rewind或fseekrewind或fseek解析:本題考查文件的定位。在對文件進行操作的過程中,若要求文件的位置指針回到文件的開頭,可以調用rewind函數或fseek函數來完成。其中,rewind函數的作用是將位置指針重新返回文件的開頭;而fseek函數也可以實現(xiàn)文件指針的定位。

39.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結束。在這個程序中a、b、c的值沒做任何改變。

40.3131解析:在函數調用時,形參值和改變,不會改變實參的值。

41.D解析:在程序中指針變量P初始指向a[3],執(zhí)行p減1后,P指向a[2],語句y=*p的作用是把a[2]的值賦給變量y,所以輸出為y=3。

42.B解析:sizeof函數計算已知類型所占的字節(jié)數。共用體變量所占的內存長度等于最長的成員的長度。

43.A解析:函數中變量的存儲類別包括auto,static,extern,其中auto為隱含存儲類別,static為靜態(tài)存儲類別,register是寄存器存儲類別。

44.C解析:程序中for循環(huán)了三次,第一次i=0,執(zhí)行switch語句中case0:分支,直到遇到default語句,退出switch,這里共執(zhí)行了三個輸出語句分別輸出0,0,0,第二次循環(huán)i=1,switch語句中沒有匹配的分支,故只執(zhí)行default語句輸出1,退出switch語句;第三次循環(huán)i=2,從switch語句中的case2:開始執(zhí)行,共執(zhí)行了兩個輸出語句輸出2、2。最后輸出的結果為000122。

45.D本題主要考查指針變量對數值的引用。在題目中,首先定義了整型指針變量point和一個整型變量a,變量a的初值為4,然后是指針變量指向a,或者說將變量a所在存儲單元的地址值賦給指針變量。

在選項A中,很顯然,不全是地址,只有point表示地址,而*&a等價于*(&a),表示取一個數值。

在選項B中,也不都表示地址,其中*point表示數值,其他兩個表示地址。

在選項C中,與選項B類似,其中的*point表示數值。

在選項D中,都表示地址,是題目的選擇答案。

46.D解析:數據流圖有4種成分:源點或終點、處理、數據存儲和哦數據流。數據存儲是處于靜止狀態(tài)的數據,數據流是處于運動中的數據。

47.A解析:本題定義了一個指向由3個元素組成的一維數組的指針變量pa,通過賦值讓它指向具有2行3列的數組a,此時用指針變量pa,表示數組元素a[i][j]的形式是pa[im][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)?。故prinff語句輸入的值為2+4+1=7。所以,A選項為所選。

48.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項A)和C)符合要求。函數isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。

49.C解析:選項A)和選項B)在條件判斷語句的后面是空語句,什么都不做;在選項D)if后面是一個復合空語句;而在選項C)中,在x--后面少了一個分號,所以程序段在編譯時,會出現(xiàn)語法錯誤。

50.D解析:字符數組初始化可以有兩種方式:方式一,按單個字符的方式賦初值。方式二,把一個字符串作為初值賦給字符數組。選項A定義的字符數組長度為8,由于最后還要加一個“、0”做結束標志,所以賦給他的字符串長度應小于等于7;在給字符數組賦初值的時候,應該用花括號“{”和“}“將字符串括起來。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時就給其賦初值,比如:char*p=“student”;二是給指針變量賦值,比如:p=“student”;(p已經被定義為字符型指針變量;)。

51.A本題主要考查標識符的定義。對標識符的定義是考試中??嫉膬热葜弧俗R符主要由數字、下畫線和字母組成,其中數字不能放在首位,另外,用戶自定義標識符時,不能將標識符定義為C語言中已定義的關鍵字,如int、while等。

根據上面對標識符的分析,我們不難看出本題的正確答案是A。在選項B中,3_xy以數字開頭,不符合標識符定義的規(guī)定;在選項C中,int是C語言系統(tǒng)中已經定義了的關鍵字;在選項D中,LINE-3使用的數字、下畫線和字母以外的字符,因此不正確。

52.A解析:數據結構作為計算機的一門學科,主要研究和討論以下三個方面的問題:①數據集合中各數據元素之間所固有的邏輯關系,即數據的邏輯結構;②在對數據進行處理時,各數據元素在計算機中的存儲關系,即數據的存儲結構;③對各種數據結構進行的運算。

53.B解析:此題為數據庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學生關系(學號,姓名,出生年月,性別),學號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學生關系(學號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學號,姓名,系號,系名,主任)。

54.A

55.C解析:算法的執(zhí)行效率與數據的邏輯結構和存儲結構都有很緊密的關系。算法的空間復雜度是指執(zhí)行該算法需要的內存空間,并非算法程序中指令的條數。算法一般應該具有以下4個特征:可行性、確定性、有窮性和擁有足夠情報。其中,有窮性是指算法必須能在執(zhí)行有限個步驟之后終止,否則可能失去實際意義。

56.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。

57.C解析:#define宏名的有效范圍為定義命令之后到本源文件結束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。

58.B本題主要考查位運算?!鞍次划惢颉边\算(^)是雙目運算符,其功能是把參與運算的兩數各對應的二進制位相異或,它在操作時,兩對應位相同結果為0,不同則為1。“左移”運算(<<)的功能是把“<<”左邊的運算數的各二進制位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。左移時,若左端移出的部分不包含有效二進制數1,則每左移一位,相當于移位對象乘以2。

本題中,有三個字符型的變量x,y,z,其中x和y的值分別為3和6。先轉換為二進制數分別為00000011和00000110。本題中需要注意的是邏輯左移運算符的優(yōu)先級比按位異或運算符的優(yōu)先級高,因此,先將y進行運算邏輯左移2位操作,得到的結果為00011000,然后進行按位異或運算,得到最后的結果是00011011。本題正確的答案選B。

59.D

60.A解析:本題考查的是三目運算符的用法,三目運算符的形式為(表達式1)?(表達式2):(表達式3)。當(表達式1)的值為真時,求(表達式2)的值為整個表達式的值;如果(表達式1)的值為假,則求(表達式3)的值為整個表達式的值。題中,表達式x>12的結果為假,所以執(zhí)行的語句是x-12,最終y的值應該是0。

61.D

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

63.D本題主要考查標識符的定義。對標識符的定義是歷次考試中常考的內容之一。標識符主要由數字、下畫線和字母組成,其中數字不能放在首位,另外,用戶自定義標識符時,不能將標識符定義為C語言

溫馨提示

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

評論

0/150

提交評論