




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年四川省綿陽市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.利用E-R模型進行數據庫的概念設計,可以分成3步:首先設計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行(),得到最終的E-R模型。
A.簡化B.結構化C.最小化D.優化
2.
3.由兩個棧共享一個存儲空間的好處是______。
A.減少存取時間,降低下溢發生的幾率
B.節省存儲空間,降低上溢發生的幾率
C.減少存取時間,降低上溢發生的幾率
D.節省存儲空間,降低下溢發生的幾率
4.樹是結點的集合,它的根結點數目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
5.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運行后的輸出結果是()。
A.7B.0C.3D.8
6.
有以下程序:
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");}}
若要按以下形式輸出數組右上半三角
1234
678
1112
16
則在程序下劃線處應填入的是()。
A.i-1B.iC.i+1D.4一i
7.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)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
8.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序對預處理命令行的處理是在程序執行的過程中進行的
9.程序運行后的輸出結果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3
10.數據庫的故障恢復一般是由()來執行恢復
A.電腦用戶B.數據庫恢復機制C.數據庫管理員D.系統普通用戶
11.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序運行后輸出的結果是()。A.246810B.13579C.12345D.678910
12.“商品”與“顧客”兩個實體集之間的聯系一般是
A.一對一B.一對多C.多對一D.多對多
13.下列4個關于C語言的結論中錯誤的是()。
A.可以用do…while語句實現的循環一定可以用while語句實現
B.可以用for語句實現的循環一定可以用while語句實現
C.可以用while語句實現的循環一定可以用for語句實現
D.do…while語句與while語句的區別僅是關鍵字“while”出現的位置不同
14.
15.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執行其結果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
16.設”inta=15,b=26;”,則”printf(“%d,%d”,a,b);”的輸出結果是()。
A.15B.26,15C.15,26D.26
17.某線性表中最常用的操作是在最后一個元素之后插入一個元素和刪除第一個元素,則采用()存儲方式最節省運算時間。
A.單鏈表B.僅有頭指針的單循環鏈表C.雙鏈表D.僅有尾指針的單循環鏈表
18.下列敘述中正確的是()。
A.測試工作必須由程序編制者自己完成
B.測試用例和調試用例必須一致
C.一個程序經調試改正錯誤后,一般不必再進行測試
D.上述三種說法都不對
19.有下列程序:main(){char*P[]={"3697","2584");inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!=\0){if((p[i][j]-t\0)%2)num=10*num+p[j][j]-0;j+=2;}}printf("%d\n",num);}程序執行后的輸出結果是()。A.35B.37C.39D.3975
20.下面程序的輸出結果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
二、2.填空題(20題)21.由25人圍坐成圓圈,先從任意一人出發用1到25順時針依次編號,然后從1號開始順時針報數(1、2、3…),凡報5的倍數者出圈,剩下者繼續報數,求出最后出圈者的編號。
#include<stdio.h>
【】
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
22.在C語言中,可以利用【】,將一個表達式的值轉換成指定的類型。
23.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
24.下列程序的輸出結果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
25.下列程序的運行結果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
26.Windows的空口分為兩類,一類是應用程序窗口,另一類是【】窗口。
27.設有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結果為
28.以下isprime函數的功能是判斷形參a是否為素數,是素數,函數返回1,
否則返回0。請填空。
intisprime(inta)
{inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
29.下列程序的輸出結果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
30.數據庫保護分為:安全性控制、______、并發性控制和數據的恢復。
31.軟件測試是保證軟件質量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數據和【】的設計來實現。
32.能把計算機處理好的結果轉換成為文本、圖形、圖像或聲音等形式并輸送出來的設備稱為【】設備。
33.在運算過程中,能夠使空表與非空表的運算統一的結構是【】。
34.在樹形結構中,樹根結點沒有______。
35.棧中允許進行插入和刪除的一端叫做______。
36.以下程序段用于構成一個簡單的單向鏈表。請填空。
struetSTRU
{intx,y;
floatrate;
【】p;
}a,b;
a.x=0;a.y=0;a.rate=0;a.p=&b;
b.x=0;b.y=0;b.rate=0;b.p=NULL;
37.樹中度為零的結點稱為______。
38.下面程序的運行結果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
39.有以下程序:
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
程序運行后的輸出結果是【】。
40.下列語句的輸出結果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
三、1.選擇題(20題)41.下面程序的輸出結果是()
main()
{intx,y,z;
x=0,y=z=-1;
x+=-z---y;
pritnf("x=%d\n",x);
}
A.x=4B.x=0C.x=2D.x=3
42.若在以下定義和賦值語句,則才s數組的第i行第j列(假設i,j已正確說明并賦值)元素地址的合法引用為ints[2][3]={0},(*p)[3];p=s;
A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]
43.有定義語句:chars[10];,若要從終端給s輸入5個字符,錯誤的輸入語句是
A.gets(&s[0]);
B.scanf("%s",s+1);
C.gets(s);
D.scanf("%s",s[1]);
44.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
45.以下選項中可作為C語言合法常量的是______。
A.-80B.-80C.-8e1.0D.-80.0e
46.微機顯示器一般有兩組引線,它們是()
A.電源線與信號線B.電源線與控制線C.電源線與地線D.控制線與地線
47.有以下程序:#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);}程序運行后,若從鍵盤輸入(從第1列開始)123<回車>45678<回車>則輸出結果是()。
A.1267B.1256C.1278D.1245
48.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x--);}
A.4和2B.4和1C.4和0D.3和1
49.下列敘述中正確的是A.線性表是線性結構B.棧與隊列是非線性結構C.線性鏈表是非線性結構D.二叉樹是線性結構
50.有以下程序:#include<stdio.h>main(){unsignedinta;intb=-1;a=b;printf("%u",a);程序運行后的輸出結果是()。
A.-1B.65535C.32767D.-32768
51.有以下程序:voidswapl(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2{intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(A);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其輸出結果是
A.5353B.5335C.3535D.3553
52.下列字符數組初始化語句中,不正確的是()。
A.charc[]='goodmorning';
B.char,c[20]="goodmoming";
C.charc[]={'a','b','c','d'};
D.charc[]={"goodmoming"};
53.若變量已正確定義,有以下程序段:i=0;doprinntf("%d,i");while(i++);printf("%d\n",i);其輸出結果是()。
A.0,0B.0,1C.1,1D.程序進入無限循環
54.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。
A.不確定B.編譯錯誤C.gD.輸出null字符
55.下面程序段的執行結果可能為()。main(){intb[]={1,2,3),i;for(i=1;i<=4;++i)printf("%u\t",b[i]);}
A.12365516B.0123C.2365516285D.程序不能通過編譯
56.某一微機的地址總線為20位,其可訪問的最大空間地址為()
A.220
B.219
C.2(20+1)
D.2(20-1)
57.關于結構化程序設計原則和方法的描述錯誤的是()。
A.選用的結構只準許有一個入口和一個出口
B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現
C.不允許使用GOTO語句
D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬
58.下列程序的執行結果是______。in(f(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf("%d\n",f("goodbye!"));}
A.3B.6C.8D.0
59.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
60.以下只有在使用時才為該類型變量分配存儲單元的存儲類說明是______。
A.auto和static
B.auto和register
C.register和static
D.extern和register
四、選擇題(20題)61.若已包括頭文件<string.h>且已有定義charsl[18],s2={"ABCDE")和inti,現要將字符串”ABCDE”賦給sl,下列語句錯誤的是()。A.A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
62.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數C.算法程序所占的存儲空間D.執行算法需要的內存空間
63.有以下程序:
程序運行后的輸出結果是()。
A.Beijing!
B.toBeijing]
C.WelcomeyoutoBeijingI
D.youtoBeijingI
64.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。
A.提高耦合性降低內聚性有利于提高模塊的獨立性
B.降低耦合性提高內聚性有利于提高模塊的獨立性
C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度
D.內聚性是指模塊間互相連接的緊密程度
65.(58)在數據流圖(DFD)中,帶有名字的箭頭表示______。
A.制程序的執行順序
B.模塊之間的調用關系
C.數據的流向
D.程序的組成成分
66.以下能正確定義一維數組的選項是A.intnum[];
B.#defineN100intnum[N];
C.intnum[0..100];
D.intN=100;intnum[N];
67.以下定義數組的語句中錯誤的是()。
68.執行語句“for(i=1;i++<;4;);”后,變量i的值是()。
A.3B.4C.5D.不定
69.
70.有以下程序:
程序運行后的結果是()。
A.有運行錯誤B.輸出ll.10C.輸出l2.10D.輸出21.10
71.有以下程序:
從第一列開始輸入以下數據(<CR>代表一個回車符.:
2743<CR>
程序的輸出結果是()。
A.66877B.668966C.6677877D.6688766
72.
73.有以下程序程序的運行結果是()。
A.3B.1C.2D.0
74.在關系數據庫中,用來表示實體之間聯系的是()。
A.二維表B.E—R圖C.元組D.文件
75.
76.設有棧S和隊列Q,其狀態為空,元素a1,a2,a3,a4,a5,a6依次入棧,出棧的元素則進入隊列Q,若6個元素出隊列的順序是a2,a3,a4,a6,a5,a1,則棧的容量至少是
A.6B.4C.3D.2
77.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是()。
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
78.在數據庫管理系統DBMS中,用來定義內模式和外模式等一些數據庫管理系統中其他結構的語言為
A.CB.BasicC.DDLD.DML
79.若有以下程序
#include<stdio.h>
inta[]={2,4,6,8};
main()
{inti;
int*p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序的輸出結果是
A.6B.8
C.4D.2
80.以下是正確C語言實型常量的是()。
A..e—1B.e一1C.一1eD.1e一1
五、程序改錯題(1題)81.下列給定程序中函數proc的功能是:取出長整型變量s中偶數位上的數,依次構成一個新數放在t中。例如,當s中的數為l23456789時,t中的數為2468。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數fun(),其功能是將一個數字字符串轉換成與其面值相同的長整型整數??烧{用strlen函數求字符串的長度。例如,在鍵盤輸入字符串2345210,函數返回長整型整數2345210。注意:部分源程序存放在文件prog1.c中,請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()指定的部位填入所編寫的若干語句。試題程序:
參考答案
1.D解析:在概念設計中按照模塊的劃分畫出每個模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應該對全局E-R圖進行優化,看看是否有重復和不合理的地方。不能只是進行簡單的合并。
2.B
3.B解析:常常一個程序中要用到多個棧,為了不發生上溢錯誤,就必須給每個棧分配一個足夠大的存儲空間。但實際中,很難準確地估計,若每個棧都分配過大的存儲空間,勢必造成系統空間緊張;若讓多個棧共用一個足夠大的連續存儲空間,則可利用棧的動態特性使他們的存儲空間互補。
4.A樹形結構是一類重要的非線性數據結構。樹是n(n≥0)個結點的集合,對應任意一棵非空樹,它具有以下幾點重要的性質。
①有且僅有一個特定的稱為根的結點。
②當n>1時,其余結點可分為m(m>0)個互不相交的有限集T1,T2,…,TM,其中每一個集合本身又是一棵樹,稱為子樹。
因此,本題的正確答案有且只有一個。
5.C根據題意,要求統計字符數組s中阿拉伯數字的個數?!癱hars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計算出‘\\0’之前阿拉伯數字的個數,由字符數組s可知,有3個阿拉伯數字。故本題答案為C選項。
6.B
\n本題中要求輸出右上半角的數,對角線上的數的下標相同,所以j=i。
\n
7.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數組char*p[2]后,程序中第一個循環for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數組的p[0]元素(它本身是一個指針)指向了二維數組ch的第一行字符串,并使指針數組的p[1]元素指向二維數組ch的第二行字符串,這樣,就使指針數組p和二維數組ch建立起了一種對應關系,以后對二維數組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數組ch的初始化,使其第一行ch[0]中存入了字符串“693
8.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結束,以區別于C語句、定義和說明語句。選項C中的宏定義為不帶參數的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預處理是在編譯程序對C源程序進行編譯前執行的.當然也在程序執行之前執行,因此選項D是錯誤的。
9.D
10.CC)【解析】數據庫一旦發生故障,需要及時進行故障恢復,并由數據庫管理員負責執行故障恢復。
11.D本題中exch函數是用數組中的第6個元素對第1個元素進行賦值,所以數組的值應該為678910。
12.D解析:兩個實體間的聯系可以歸納為3種類型:一對一聯系:一對一的聯系表現為主表中的每一條記錄只與相關表中的一條記錄相關聯。一對多聯系,一對多的聯系表現為主表中的每一條記錄與相關表中的多條記錄相關聯。多對多聯系:多對多的聯系表現為二個表中的多個記錄在相關表中同樣有多個記錄其匹配。本題中一個顧客可以購買多種商品,同一種商品可以有多個顧客購買,所以商品和顧客之間是多對多的聯系。
13.D解析:本題考查幾個循環語句的關系。①do…while語句、while語句、for語句所實現的循環可以相互替代;②do…while語句和while語句的區別是do…while語句至少執行一次。
14.C
15.D
16.C
17.D
18.D解析:測試不是為了證明程序是正確的,而是在設想程序有錯誤的前提下進行的,其目的是設法暴露程序中的錯誤和缺陷,一般應當避免由開發者測試自己的程序,因此,選項A錯誤;測試是為了發現程序錯誤,不能證明程序的正確性,調試主要是推斷錯誤的原因,從而進一步改正錯誤,調試用例與測試用例可以一致,也可以不一致,選項B錯誤;測試發現錯誤后,可進行調試并改正錯誤:經過調試后的程序還需進行回歸測試,以檢查調試的效果,同時也可防止在調試過程中引進新的錯誤,選項C錯誤。
19.D執行第一次for循環時,用表達式p[i][J]!=\o來判斷字符串數組指針P是否到達字符串的結尾,如果沒有到達,繼續執行while中的語句。if語句表示(p[i][j]-\o)除2的余數不為0時,即字符串所有奇數,執行后面的語句。所以退出第1次for的循環體時,輸出為397,執行第2次循環體。對字符串“2584”進行處理,輸出結果為5,因而最后輸出結果為3975。
20.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語句中輸出的*p[i]表示p[i]字符串的第—個字符。在for循環中,i的初值為3,那么輸出的第—個字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
21.main()0a[j]=0count<25
22.強制類型轉換強制類型轉換
23.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
24.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執行,之后執行第一個switch語句,switch(x)=switch(1),所以執行case1,case1語句中包含一個復合switch語句:這時執行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復合語句執行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。
25.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執行后面的語句,直接執行“printf('%d\\n',c);”語句,輸出c的值,輸出結果為5。
26.文檔文檔
27.89218921
28.return0return1return0,return1解析:如果a能被i整除,則a是素數,返回值為0。如果a不能被i整除,則a不是素數,返回值為1。
29.101091101091解析:for(表達式1;表達式2:表達式3)語句的功能是:首先計算表達式1的值,然后檢測表達式2的值,若其值為真,則執行循環體語句,執行完畢后,再計算表達式3的值。然后再檢測表達式2的值是否為真,若為真,繼續執行循環體語句,若為假,則退出循環:第1次循環x>8成立,輸出x=10,y=10后,x的值減1,i=1,執行y=++i操作,y的值變為1;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環條件不成立,則退出循環。
30.完整性控制完整性控制
31.測試實例測試實例解析:進行軟件測試時,應精心設計測試實例和選擇測試數據,以對系統進行全面測試。
32.輸出輸出
33.循環鏈表循環鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環鏈表的結構把空表與非空表的運算統一起來。循環鏈表具有兩個特點:①在循環鏈表中增加了一個表頭結點,其數據域為任意或根據需要來設置,指針域指向線性表的第一個元素的結點。循環鏈表的頭指針指向表頭結點。②循環鏈表中最后一個結點的指針不是空,而是指向表頭結點。
34.前件前件
35.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
36.structSTRU*
37.葉子結點葉子結點解析:樹中度為零的結點,也就是沒有后件的結點,稱為葉子結點。
38.x=11x=11解析:在對無符號數的右移是高位補0。
39.66解析:本題定義了二維數組a和指針變量p,p指向數組的首地址,for循環語句的功能是給數組元素賦值,結果為a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[2][0]=7、a[2][1]=8、a[2][2]=9,故printf函數的輸出結果為6。
40.aaaaAAAAAaaaaAAAAA解析:函數strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數組sp末尾的\'\\0\'。
41.C
42.A解析:p+i是數組s的第i+1行的首地址,而*(p+i)則是數組第i+1行第1列的元素的地址,*(p+i)+j則是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是數組元素s[i][j]的值。注意:通過建立一個指針數組來引用二維數組元素。
43.D解析:在格式輸入中,要求給出的是編譯的地址,而D)答案中給出的s[1]是一個值的表達式。
44.D解析:本題考查兩個知識點:①C語言用'\\n'這個字符常量表示換行;②函數getchar()的作用是從終端輸入一個字符,當遇到換行時結束輸入。
45.A解析:選項B中,以0開頭表示是一個八進制數,而八進制數的取值范圍是0~7,所以-080是不合法的;選項C和D中,e后面的指數必須是整數,所以也不合法。
46.A
47.D解析:在題目中,程序執行到scanf()函數時,會暫停等待用戶輸入4個字符,按題意輸入123<回車>后,字符1~3被分別輸入到c1~c3中,而c4會得到一個換行符'\\n'。然后執行第1個getchar()函數,由于前面的scanf()函數讀完了緩沖區中的所有字符,所以此時程序會又暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區第1個字符'4'被讀入并賦給c5,第2個getchar()函數會讀入緩沖區第2個字符'5'。所以最后依次輸出c1、c2、c5、c6的值后,屏幕上的結果是1245。故應該選擇D。
48.A解析:本題考查ifelse語句。首先scanf函數通過鍵盤讀入x的值。當x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發現條件成立,執行下列的printf語句,輸出x的值4。當x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變為2),發現條件不成立,執行下列的else語句,先輸出x的值2,再將x的值減1。
49.A根據數據結構中各數據元素之間前后件關系的復雜程度,一般將數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件:1,有且只有一根節結點,2,每一個結點最多有一個前件,也最多有一個后件,則稱該數據結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。
50.B解析:不同類型的對象進行混合運算時,需要進行數據的類型轉換,其轉換方向為int→unsigned→long→double。本題程序中的變量b為int型,需要轉換為unsigned型。int型變量的數值范圍為-32768~32767,最高位為符號位,而unsigned所表示的數的范圍為0~65535,它的最高位為數值位。由于內存中是以補碼形式存儲數據的,所以整型數-1在內存中表示為16個1,最高位的1表示符號為負,將它轉換為unsigned類型,即將原符號位的1看成數值,所以得到16個數值1,即65535。
51.B解析:本題考核的知識點是函數調用中值傳遞和地址傳遞。函數間的參數的傳遞有兩種情況,第1種情況變量作為形參時的參數傳遞,變量作為形參時,要求對應的實參應為變量或表達式,變量作為函數的參數其傳遞方式是“值傳遞”,該種情況下,形參被賦值為實參的值,然后實參與形參再無聯系。也就是說對行參的改變將不再影響實參:第2種情況是地址或數組名作為形參時的參數傳遞,該種情況下對形參的改變將對實參產生影響。本題中函數swap1()是傳遞的地址。所以對該形參c的改變將影響實參,分析可知該函數的作用,是使數組c的第一個元素和第二個元素的值互換。主函數中調用該函數將a作為實參傳遞給形參c,故執行該函數后a的第一個元素和第二個元素的值將交換。分別為5和2.函數swap2()是值傳遞的,所以該函數執行后對數組b將沒有任何改變,此時該數組的第一個和第二個元素依然為3和5,因此最后的輸出為5、3,3和5,所以,4個選項中選項B符合題意。
52.A解析:本題考查兩個概念:①用單引號括起來的一個字符常量只能存放一個字符;②C語言中沒有字符串變量,只能用字符數組來存儲字符串。
選項A)中一個單引號內放了若干個字符是錯誤的;選項B)和選項D)中將一個字符串賦值給一個字符數組是允許的。
53.B解析:本題考查的重點是do-while用法。do-while循環先執行循環體中的語句,然后再判斷while中的條件是否為真,如果為真(非零)則繼續循環;如果為假,則終止循環。因此,do-while循環至少要執行一次循環語句。
54.A解析:由于s[2][6]表示字符串已超出了數組s的表示范圍,在C中不會劉數組越界進行檢查,當數組越界時,會得到一個不確定的值。
55.C解析:本題使用了一個for循環輸出b[1]~b[4]的值,由于數組b定義時初始化列表只有3個值,所以數組b的長度為3,下標范圍是0~2,故輸出的前面兩個數一定是2和3,后面的數就不能確定了,因為已經超出數組b的范圍。故正確答案為C。
56.A
57.C解析:限制使用GOTO語句是結構化程序設計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結構化程序設計的原則。
58.C解析:字符在內存中占一個字節的存儲空間,按字符的存儲順序,其地址依次遞增,在函數f中循環過后,p指向字符串的結束位置,s指向字符串首地址,p-s即為字符串長度。
59.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數為7,但其中出現'9',','是字符逗號;選項D中,'\n'表示的是換行。
60.B解析:auto變量和register變量在使用時,系統自動為其分配存儲單元;退出時自動釋放這些存儲單元另做它用。
61.C數組名sl是代表sl數組首地址的地址常量,因為“=”左邊不能出現常量,所以s1="ABCDE"的方法是錯誤的。
62.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執行算法所需要的計算工作量;算法的空間復雜度一般是指執行這個算法所需要的內存空間。
63.Afor循環的作用是每次遇到空格,將空格后面的移動到數組的最前面。因此數組最后的狀態是“Bei-jing!、Og!\0ng!、neijing!、O”,但是pfinff(“%s”)打印遇到、0自動結束。因此,打印Beijing!。故答案為A選項。
64.B模塊獨立性是指每個模塊只完成系統要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。一般較優秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內聚性是指一個模塊內部各個元素間彼此結合的緊密程度,所以C與D錯誤。故答案為B選項。
65.C
66.B解析:選項A定義數組時省略了長度,而C語言中規定,只有在定義并同時進行初始化時,數組的長度才可以省略,數組的長度為初始化時候的成員個數,故選項A錯誤;在C語言中規定,數組的長度必須是一個整數或整型常量表達式,故選項C不正確:定義時數組的長度不能使用變量表示,故選項D不正確,所以,4個選項中選項B符合題意。
67.AA)選項中定義的數組為2行4列,而賦值時賦成了3行,因此出錯。
68.Cfor循環結束時,i++的值應為4,i自加后此時應為5,故選擇C選項。
69.B
70.Acalloe(n,sizeof(type))在內存的動態存儲區中分配n個長度為size的連續空間,函數返回一個指向分配起始地址的指針,如果分配不成功,返回NULL。s在函數fun()申請了內存空間,但是在調用fun()函數后會釋放掉,因此,最后q指向NULL,因此運行是打印出錯。答案為A選項。
71.A本題主要考查了字符輸入輸出函數get—char和putchar的使用。getchar函數用來從標準輸入設備上讀人一個字符,putchar(C)函數是將字符變量c中的字符輸出到標準輸出設備上,并且字符可以看作整數參與運算。
72.B
73.Aa‘b后值為3,3&c值為3,所以選擇A)。
74.A\n關系數據庫系統采用關系模型作為數據的組織形式。在關系模型中用二維表來表示實體及實體問的聯系。
\n
75.D
76.C本題主要考查棧和隊列的基本特性。棧是限定僅在表尾進行插入和刪除操作的線性表,而隊列則只允許在隊尾進行插入操作,在隊頭進行刪除操作。棧對數據元素的操作具有先進后出的特點,而隊列對數據元素的操作具有先進先出的特點。
本題要求對棧和隊列一起操作,將出棧S的元素進入隊列Q,元素出隊的順序是a2,a3,a4,a6,a5,a1,根據隊列的特性,那么元素入隊的順序也應該為a2,a3,a4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件測試類型題目及答案
- 8 1 直線和圓-高考數學真題分類 十年高考
- 《經濟與社會》選擇題100題(原卷版)
- 2023-2024學年河南省南陽市六校高二下學期期末考試數學試題(解析版)
- 2025年秋三年級上冊語文同步教案 語文園地
- 碳中和行業研究報告
- 自貢統計年鑒-2009-環境保護主要統計指標解釋
- 佳能公司人員管理制度
- 供水搶修應急管理制度
- 供水設備檢修管理制度
- 小學生勞動教育評價細則
- 民法典案例解讀PPT
- 安全生產知識應知應會
- 質 量 管 理 體 系 認 證審核報告(模板)
- 腫瘤科新護士入科培訓和護理常規
- 第4章 頜位(雙語)
- 二手車鑒定評估報告書最終
- 電影場記表(雙機位)
- 塔吊負荷試驗方案
- 電子商務專業“產教融合、五雙并行”人才培養 模式的實踐研究課題論文開題結題中期研究報告(經驗交流)
- 購買社區基本公共養老、青少年活動服務實施方案
評論
0/150
提交評論