![2021-2022年湖北省黃石市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁](http://file4.renrendoc.com/view/de63c6dd4f180db0b0c14124edbf6d79/de63c6dd4f180db0b0c14124edbf6d791.gif)
![2021-2022年湖北省黃石市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁](http://file4.renrendoc.com/view/de63c6dd4f180db0b0c14124edbf6d79/de63c6dd4f180db0b0c14124edbf6d792.gif)
![2021-2022年湖北省黃石市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁](http://file4.renrendoc.com/view/de63c6dd4f180db0b0c14124edbf6d79/de63c6dd4f180db0b0c14124edbf6d793.gif)
![2021-2022年湖北省黃石市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁](http://file4.renrendoc.com/view/de63c6dd4f180db0b0c14124edbf6d79/de63c6dd4f180db0b0c14124edbf6d794.gif)
![2021-2022年湖北省黃石市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁](http://file4.renrendoc.com/view/de63c6dd4f180db0b0c14124edbf6d79/de63c6dd4f180db0b0c14124edbf6d795.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年湖北省黃石市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.數(shù)字字符0的ASCII值為48,運行下列程序的輸出結(jié)果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}
A.3,2B.50,2C.2,2D.2,50
2.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
3.
4.下列敘述中正確的是()。
A.可以用關(guān)系運算符比較字符串的大小
B.空字符串不占用內(nèi)存,其內(nèi)存空間大小是0
C.兩個連續(xù)的單引號是合法的字符常量
D.兩個連續(xù)的雙引號是合法的字符串常量
5.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0
6.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結(jié)果是()。
A.4B.3C.2D.1
7.在定義inta[3][2]以后,對a的引用正確的是()
A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]
8.下列標識符不是關(guān)鍵字的是()。
A.breakB.charC.SwithchD.return
9.下面算法的時間復雜度為()A.O(1)B.O(n)C.O(n*n)D.O(n!)
10.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b='b';
C.noata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
11.軟件調(diào)試的目的是A.發(fā)現(xiàn)錯誤B.改正錯誤C.改善軟件的性能D.驗證軟件的正確性
12.對關(guān)系S和關(guān)系R進行集合運算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運算稱為()
A.并運算B.交運算C.差運算D.除運算
13.
14.設(shè)變量a是int型,f是float型,i是double型,則表達式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
15.關(guān)于排序算法的以下說法,錯誤的是()
A.歸并排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)
B.堆排序平均時間復雜度O(nlogn),最壞時間復雜度O(nlogn)
C.冒泡排序平均時間復雜度O(n^2),最壞時間復雜度O(n^2)
D.快速排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)
16.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序運行后的輸出結(jié)果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
17.有以下程序:#include<stdi0.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.9,18B.8,11C.7,11D.10,14
18.下列程序的執(zhí)行結(jié)果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-1;printf("%d,0Ad",a,c);c+=-a+++(++b);printf("%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1
19.最壞情況下時間復雜度不是n(n-1)/2的排序算法是()
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
20.若輸入“abcdef”、“abdef”,以下程序的輸出結(jié)果為()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}
A.-1B.0C.abcdefD.abdef
二、2.填空題(20題)21.【】是從二維表列的方向進行的運算。
22.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【】操作實現(xiàn)窗口的移動。
23.下列程序的輸出結(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");
}
24.設(shè)x和y均為int型變量,且x=1,y=2,則表達式2.0+x/y的值為_______。
25.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
prinff("%d\n",S(i+j));
}
26.下列程序運行時輸入1234567<CR>,則輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
27.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
28.程序的運行結(jié)果為【】。
main()
{intx,y,z;
x=24;
y=024;
z=0x24;
printf("%d,%d,%d\n",x,y,z);
}
29.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
30.下列語句的輸出結(jié)果是【】。
chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);
31.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
32.下列程序的輸出結(jié)果是______。
longfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
33.下列程序的運行結(jié)果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
34.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點的單詞鏈表,在結(jié)點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。[*]
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{…}
voiddisp(Node*h)
{Node*
35.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。
36.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。
37.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結(jié)果形式為:x/y=11。
38.Windows的空口分為兩類,一類是應用程序窗口,另一類是【】窗口。
39.以下程序運行后的輸出結(jié)果是【】。
fun(ihtx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
40.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
三、1.選擇題(20題)41.在C語言中______。
A.函數(shù)定義可以嵌套,但函數(shù)調(diào)用不能嵌套
B.函數(shù)定義不可以嵌套,但函數(shù)調(diào)用可以嵌套
C.函數(shù)定義和調(diào)用均不能嵌套
D.函數(shù)定義和調(diào)用均可以嵌套
42.若有定義:intx=0,*p=&x;則語句printf("%d\n",*p);的輸出結(jié)果是()。
A.隨機值B.0C.x的地址D.p的地址
43.下面程序段的運行結(jié)果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
44.按照“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
45.以下敘述正確的是
A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用goto語句
46.設(shè)x=015,則x=x017的值是()。
A.1111B.11111101C.10D.11000000
47.為了使模塊盡可能獨立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強
48.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;執(zhí)行該程序段后,k的值是()。
A.3B.2C.1D.0
49.下列敘述中正確的是()。
A.C程序由函數(shù)組成
B.C程序由主函數(shù)構(gòu)成
C.C程序由函數(shù)和過程構(gòu)成
D.在C程序中無論是整數(shù)還是實數(shù),都可以正確無誤的表示出來
50.下列定義變量的語句中錯誤的是______。A.int_int;B.doubleint_;C.charFor;D.floatUS$;
51.軟件設(shè)計中,有利于提高模塊獨立性的一個準則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合
52.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL
53.對下述程序,正確的判斷是()main(){inta,b,seanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++printf("%d,%d",a,b);}
A.有語法錯誤不能通過編譯B.若輸入4,5則輸出5,6C.若輸入5,4則輸出4,5D.若輸入5,4則輸出5,5
54.已有定義:Mtx=3,y=4,z=5;,則表達式!(x/y)+z-1&&y+z/2的值是()。
A.6B.OC.2D.1
55.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率
56.若有如下程序:main(){intx[]={14,32,65,69,78,59},*t;t=x+5;printf("%d\n",*-t);}則程序執(zhí)行后的輸出結(jié)果是()。
A.78B.65C.32D.14
57.有以下程序:matin(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[o]);}執(zhí)行后的輸出結(jié)果是______。
A.n,twoB.t,oneC.w,oneD.o,two
58.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}
A.3,14,1B.3,14,2C.2,04,1D.2,14,1
59.對于基本類型機同的兩個指針變量之間,不能進行的動算是()
A.<B.=C.+D.-
60.讀程序:#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的輸出結(jié)果是()。
A.720B.120C.24D.6
四、選擇題(20題)61.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:
該語句所表示的含義是()。
A.
B.
C.
D.
62.
63.若變量x,y已正確定義并賦值,以下符號C語言語法的表達式是()。
A)++x,y=x--B)x+1=y
C)x=x+10=x+yD)double(x)/10
64.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。
A.將字符串str1復制到字符串str2中后再連接到字符串str3之后
B.將字符串str1連接到字符串str2之后再復制到字符串str3之后
C.將字符串str2復制到字符串str1之后再將字符串str3連接到字符串str1之后
D.將字符串str2連接到字符串str1之后再將字符串strl復制到字符串str3中
65.下列函數(shù)的功能是()
66.下列關(guān)于數(shù)據(jù)流圖的描述正確的是()。
A.數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具
B.數(shù)據(jù)流圖間接支持系統(tǒng)的功能建模
C.數(shù)據(jù)流圖中帶箭頭的線段表示控制流
D.數(shù)據(jù)流圖是軟件詳細設(shè)計的工具
67.有以下程序:
程序的運行結(jié)果是()。
A.10,1B.20,1C.10,2D.20,2
68.
69.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。
A.A.A,BB.A,68C.65,66D.65,68
70.
71.軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()。
A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序
72.
73.
74.某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是A.10B.8C.6D.4
75.設(shè)以下變量均為int類型,表達式的值不為7的是A.(x=y=6,x+y,x+1)
B.(x=6,x+1,y=6,x+y)
C.(x=y=6,x+y,y+1)
D.(y=6,y+1,x=y,x+1)
76.
77.用數(shù)據(jù)流圖(DFD.作為描述工具的軟件開發(fā)階段是()。
A.可行性分析B.需求分析C.概要設(shè)計D.詳細設(shè)計
78.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
79.
80.
五、程序改錯題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長的剩余字符接在C所指的數(shù)組的尾部。例如,當a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時,c所指數(shù)組中的內(nèi)容應“a4b3c2dlef9”;而當a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時,c所指數(shù)組中的內(nèi)容應該為“l(fā)g2f3e4dcba”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.M名學生的成績已在主函數(shù)中放入一個帶頭結(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的帶頭結(jié)點。請編寫函數(shù)proc(),它的功能是:找出學生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C解析:自增運算符“++”,出現(xiàn)在變量之前,表示先使變量的值加1,再使用變量的值進行運算;出現(xiàn)在變量之后,表示先使用變量的值進行運算,冉使變量的值加1。例如題中的“b++”,題中第一條語句先輸出字符b的值,此時變量b='2',因此輸出值為2;再使b的值加1,b='3',因此第二條語句輸出:b-a='3'-'1'=2。
2.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:
類型名數(shù)組名[常量表達式];
一維數(shù)組的引用形式為:數(shù)組名[下標表達式]。count表示能被2整除或被5整除的個數(shù),i則計算有多少個數(shù)組元素。
3.A
4.D比較兩個字符串大小用函數(shù)strcomp(S,t),空字符串有結(jié)束符,所以也要占用字節(jié),兩個雙引號表示的是空字符串。
5.B變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。
6.B解析:通過分析不難寫出,f()函數(shù)的數(shù)學表達式為:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到j(luò)中,j的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j(luò)中,j的值為3。所以最后輸出,i的值為3。
7.D
8.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。
9.B
10.B解析:本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,故選項C)錯誤。
11.B本題考查軟件工程調(diào)試。調(diào)試與測試是兩個不同的過程,有著根本的區(qū)別:調(diào)試是一個隨機的、不可重復的過程,它用于隔離和確認問題發(fā)生的原因,然后修改軟件來糾正問題;測試是一個有計劃的,可以重復的過程,它的目的是為了發(fā)現(xiàn)軟件中的問題。因此,軟件調(diào)試的目的是為了改正軟什中的錯誤。本題的正確答案是選項\u3000B。
12.AA)【解析】關(guān)系的并運算是指,由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,其中包含兩個關(guān)系中的所有元組。
13.A
14.C解析:根據(jù)混合運算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運算的結(jié)果最終也是double型。
15.A
16.A本題考查了函數(shù)的調(diào)用。首先主函數(shù)定義了兩個字符型數(shù)據(jù)b和a,給b賦值為字母a.a(chǎn)賦值為字母A,調(diào)用fun(&.b,a)函數(shù),*C=*c十1,a的ASCIl碼值加1后為b,A的ASCIl碼值加1后為B。輸出第一組值,排除C、D選項。B選項的值此時為小b,排除B選項,所以本題答案為A。
17.D第一次執(zhí)行循環(huán)前,a=1,滿足a<8,執(zhí)行循環(huán)后,b=3,a=3。執(zhí)行完a++操作后,a=4。由于a<8,執(zhí)行第二次循環(huán)后,b=7,a=6,執(zhí)行完a++操作后,a=7。由于a<8,執(zhí)行第三次循環(huán)后,b=14,a=9,執(zhí)行完a++操作后a=10。此時不滿足a<8,跳出循環(huán)。
18.A本題主要考查自加減運算符(++,--)的使用。①如果作為前綴變量“++a,--a”,在使用a之前,先使a的值加1或者減1,再使用表達式的值參與運算;②后綴變量“a++,a--”,先使用表達式的值參與運算,在使用a之后,再使i的值加1或者減1。在本題中計算表達式c=(a++)-1時先使用a的值進行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此句后l3-的值是3;表達式c+=-a+++(++b)也可寫成C=c+(一a++)+(++b),c=1+(一3)+3=1,此時a=4,b=3。
19.D
20.A
21.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運算,如投影、選擇、連接等。投影是從二維表的列方向上進行的運算。
22.拖動拖動
23.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。
24.2.0。2.0。解析:x和y為整數(shù),運算符“/”在這里是整型除,整除后值為0。
25.8181解析:帶參數(shù)的宏定義是按#define命令行中指定的字符串從左到右進行替換。本題替換后得到:4*i+j*i+j+1,代入i,j的值得81。
26.本題考查的重點是scanf函數(shù)的調(diào)用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上場寬,本題中兩個變量的場寬都為2,所以輸入1234567<CR>后,變量a的值為12。變址b的值為34,從而輸出為1234。\r\n\r\n
27.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
28.242036
29.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。
30.31371f3131,37,1f,31解析:此題考查了printf函數(shù)的格式字符,題中d是以十進制形式輸出,o是以八進制形式輸出,x是以十六進制形式輸出,u以不帶符號的十進制數(shù)輸出。
31.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
32.考查ifelse語句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。\r\n\r\n
33.22132,2,1,3解析:本題考查++,--運算符和條件運算符的使用。
“表達式1?表達式2:表達式3”的功能是:表達式1的值若非0,則計算表達式2的值,且表達式2的值為最終結(jié)果;若表達式1的值為0,則計算表達式3的值,且為最終結(jié)果。
本題中,x=1,y=2時,x<y成立,輸出y的值2;y=2,z=3時,z<y不成立,執(zhí)行y++,輸出2后y值增1,所以最后一個輸出x的值不變?yōu)?,y的值為增加后的3。
34.
35.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。
36.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
37.x/y=%dx/y=%d解析:本題考查prinff語句的輸出格式。printf()函數(shù)是格式化輸出函數(shù),一般用于向標準輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時經(jīng)常會用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:printf('<格式化字符串>”,<參最表>)其中,格式化字符串包括兩部分內(nèi)容。一部分足正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一
38.文檔文檔
39.136136解析:本題考查函數(shù)的遞歸調(diào)用。函數(shù)fun是遞歸函數(shù),語句fun(6)的調(diào)用過程如下:
第1次:調(diào)用fun(6),6/2=3>0成立,調(diào)用fun(3);
第2次:調(diào)用fun(3),3/2=1>0成立,調(diào)用fun(1);
第3次:調(diào)用fun(1),1/2=0>0不成立,執(zhí)行語句printf('%d',x);,輸出1。
推出fun(3)輸出3,fun(6)輸出為6。
40.測試實例測試實例解析:進行軟件測試時,應精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
41.B解析:函數(shù)可以實現(xiàn)嵌套調(diào)用,但它的定義不可以嵌套。
42.B解析:本題考查的是指針的運用。語句intx=O,*p=&x;定義7一個int型變量x并初始化為0,同時還定義了一個int型指針p指向變量x。語句ptintf('%d\\n',*p);是按十進制整數(shù)格式輸出指針p所指向的內(nèi)容,即x的值0。故本題應該選擇B。
43.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復制到目的地址字符串的后面。
strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結(jié)果是4。因此本題正確的答案是C。
44.BB.【解析】棧是一種特殊的線性表,其插入和刪除運算都只在線性表的一端進行,而另一端是封閉的。進行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元索是最后被插入的元素,也是最后被刪除的元素。棧是按先進后出的原則組織數(shù)據(jù)的。
【知識拓展】“?!钡男问饺缡謽尩膹椣?,最后壓入的子彈總是最先被彈出,而最先壓人的子彈最后才被彈出,也就是“先進后出”。
45.B
46.C解析:本題主要考查按位異或運算,x=015(二進制00001101),017的二進制為000001111,兩者異或結(jié)果為00000010。
47.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。
48.B解析:因為a<b成立,所以條件表達式a<b?b:a的值等于b的值等于2,因此變量k的值等于2。又因為k=2>c=3不成立,所以條件表達式k>c?c:k的值等于k的值等于2。把條件表達式k>c?c:k的值賦給變量k,因而變量k的值等于2。因此,選項B)為正確答案。
49.A解析:本題涉及C語言最基本的兩個知識點:①C程序是由函數(shù)構(gòu)成的,有且僅有一個主函數(shù),也可以有其他的函數(shù);②整數(shù)在允許的范圍內(nèi)可以準確無誤的表示出來,但計算機的存儲能力有限,不能表示無限精度的實數(shù)。
50.DC語言規(guī)定,變量名必須符合標識符的命名規(guī)則。D選項中包含非法字符“$”,所以錯誤。標識符由字母、數(shù)字、下劃線組成,且第1個字符必須是字母或者下劃線,而不能是數(shù)字。大寫字母與小寫字母被認為是兩個不同的字符,所以“For”不是關(guān)鍵字“for”。故本題答案為D選項。
51.C耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量,耦合度越高,則模塊的獨立性越差。內(nèi)聚反映一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度。高內(nèi)聚是指一個軟件模塊是由相關(guān)性很強的代碼組成,只負責一項任務(wù),也就是常說的單一責任原則。低耦合是指不同軟件模塊之間通過穩(wěn)定的接口交互,而不需要關(guān)心模塊內(nèi)部的實現(xiàn)。
52.D解析:當k=1時,引用的是二維數(shù)組元素w[1][1],值為字符串“FGH”;當k=2時,引用的是數(shù)組元素w[2][2],即字符串“KL”;當k=3時,結(jié)束程序的執(zhí)行。注意:字符串數(shù)組的定義。
53.A
54.D解析:本題中,&&左邊的表達式!(x+y)為!(3+7),結(jié)果為假,即為0。再加上2,然后減一,相當于0+5-1=4。左邊等于4,&&右邊的表達式y(tǒng)+z/2相當于4+5/2為6,所以整個表達式相當于4&&6為真,即為1,所以選項D正確。
55.D解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是對數(shù)據(jù)元素之間的邏輯關(guān)系的描述,它可以用一個數(shù)據(jù)元素的集合和在此集合中定義的若干關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有順序、鏈接等存儲結(jié)構(gòu)。但是不同的存儲結(jié)構(gòu)的數(shù)據(jù)的處理效率不同。
56.A解析:執(zhí)行t=x+5:使指針指向數(shù)組元素59,運算符*和--的優(yōu)先級相同,結(jié)合性為自右向左,先計算--t,對t減1,使t指向數(shù)組元素78,再計算*t,取該地址單元的值78。
57.C解析:程序定義了一個指針數(shù)組s和一個字符型指針變量p。s有3個元素,其中s[0]指向字符串'one,s[1]指向字符串'two',s[2]指向字符串'three',執(zhí)行p=s[1]后p指向字符串'two',所以*(p+1)=w。
58.A解析:本題主要考查自加運算符(++、--)的使用。①前綴變量“++i、--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與運算;②后綴變量“i++、i--”,先使用此時的表達式的值參與運算,在使用i之后,再使i的值加1或者減1。本題中計算表達式c=(a++)-1時先使用a的值進行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此語句后a的值是3;表達式c+=-a+++(++b)等價于c=c+(-a++)+(++b),c=1+(-3)+3=1,此時a=4,b=3。
59.C
60.B解析:本題考查函數(shù)的調(diào)用。函數(shù)f的功能是將b[]小的第1到n+1個數(shù)組元素的值進行相乘運算,然后返回其結(jié)果。由于實參3傳給形參n,所以f的返回值為x=2*3*4=5=120。
61.C考查if語句的使用。整個語句都是以a<b為假設(shè)的,在a<b的情況下,如果c=d,則y=0;否則y=1。所以答案為選項C)。
62.A
63.A賦值號的左邊不能為常量或表達式,所以B,C錯誤,D項不能進行這樣的操作。
64.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制到s1字符串,要保證sl的容量。
65.A將a數(shù)組里元素賦值給b數(shù)組,直到數(shù)組a的末尾,所以選擇A)。
66.A\n數(shù)據(jù)流圖是結(jié)構(gòu)化方法的需求分析工具,是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖中帶箭頭的線段表示數(shù)據(jù)流。
\n
67.C數(shù)組名的值即為數(shù)組首地址,所以P->y可得第一個元素的y值,(++P)→x可得第二個元素的X值。
68.D
69.C在C語言中,用整型格式輸出字符時,輸出的是其ASCII碼值。
70.A
71.C解析:軟件按功能可以分為:應用軟件,系統(tǒng)軟件、支撐軟件(或工具軟件)。應用軟件是為解決特定領(lǐng)域的應用而開發(fā)的軟件。例如,事務(wù)處理軟件、工程與科學計算軟件,實時處理軟件,嵌入式軟件,人工智能軟件等應用性質(zhì)不同的軟件。因此選項C教務(wù)管理系統(tǒng)屬于應用軟件。系統(tǒng)軟件是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務(wù)的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡(luò)軟件,數(shù)據(jù)庫管理系統(tǒng)等。因此選項A、B、D都屬于系統(tǒng)軟件。
72.C
73.B
74.C根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。
75.B本題考查逗號表達式的用法。C語言中逗號“,”也是一種運算符,稱為逗號運算符,其功能是把兩個表達式連接起來組成一個表達式,稱為逗號表達式。其一般形式為:表達式1,表達式2。其求值過程是分別求兩個表達式的值,并以表達式2的值作為整個逗號表達式的值。逗號表達式的一般形式可以擴展為:表達式1,表達式2,表達式3,…,表達式n。它的值為表達式n的值。
76.D
77.B\n結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計理論在軟件需求分析階段的運用。而結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖、數(shù)據(jù)字典、結(jié)構(gòu)化語言、判定樹和判定表等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標文檔。
\n
78.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
79.D
80.A
81.
82.
【解析】要得到學生的最高分,需要將每一個學生的成績進行比較。學生的成績存儲在鏈表中,其結(jié)束標志為最后一個結(jié)點的next指針即NULL。比較每一個學生的成績,將最高分返回給主函數(shù)。
2021-2022年湖北省黃石市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.數(shù)字字符0的ASCII值為48,運行下列程序的輸出結(jié)果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}
A.3,2B.50,2C.2,2D.2,50
2.現(xiàn)有如下程序段#include"stdio.h"main(){intk[30]={12,324,45,6,768,98,21,34,453,456};intcount=0,i=0;while(k[i]){if(k[i]%2==0||k[i]%5==0)count++;i++;}printf("%d,%d\n",count,i);}則程序段的輸出結(jié)果為
A.7,8B.8,8C.7,10D.8,10
3.
4.下列敘述中正確的是()。
A.可以用關(guān)系運算符比較字符串的大小
B.空字符串不占用內(nèi)存,其內(nèi)存空間大小是0
C.兩個連續(xù)的單引號是合法的字符常量
D.兩個連續(xù)的雙引號是合法的字符串常量
5.有以下程序段intj;floaty;charname[50];scanf("%2d%f%s",&i,&y,name);當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0
6.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結(jié)果是()。
A.4B.3C.2D.1
7.在定義inta[3][2]以后,對a的引用正確的是()
A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]
8.下列標識符不是關(guān)鍵字的是()。
A.breakB.charC.SwithchD.return
9.下面算法的時間復雜度為()A.O(1)B.O(n)C.O(n*n)D.O(n!)
10.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b='b';
C.noata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
11.軟件調(diào)試的目的是A.發(fā)現(xiàn)錯誤B.改正錯誤C.改善軟件的性能D.驗證軟件的正確性
12.對關(guān)系S和關(guān)系R進行集合運算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運算稱為()
A.并運算B.交運算C.差運算D.除運算
13.
14.設(shè)變量a是int型,f是float型,i是double型,則表達式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
15.關(guān)于排序算法的以下說法,錯誤的是()
A.歸并排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)
B.堆排序平均時間復雜度O(nlogn),最壞時間復雜度O(nlogn)
C.冒泡排序平均時間復雜度O(n^2),最壞時間復雜度O(n^2)
D.快速排序的平均時間復雜度O(nlogn),最壞時間復雜度O(n^2)
16.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序運行后的輸出結(jié)果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
17.有以下程序:#include<stdi0.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序運行后的輸出結(jié)果是()。A.9,18B.8,11C.7,11D.10,14
18.下列程序的執(zhí)行結(jié)果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-1;printf("%d,0Ad",a,c);c+=-a+++(++b);printf("%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1
19.最壞情況下時間復雜度不是n(n-1)/2的排序算法是()
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
20.若輸入“abcdef”、“abdef”,以下程序的輸出結(jié)果為()。#include<stdio.h>#lnclude<string.h>main(){intn;chars1[20],s2[20],p1,*p2;scanf("%s",s1);scanf("%s",s2);P1=s1;p2=s2;n=strcmp(p1,p2);printf("%d\n",n);}
A.-1B.0C.abcdefD.abdef
二、2.填空題(20題)21.【】是從二維表列的方向進行的運算。
22.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標操作之一的【】操作實現(xiàn)窗口的移動。
23.下列程序的輸出結(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");
}
24.設(shè)x和y均為int型變量,且x=1,y=2,則表達式2.0+x/y的值為_______。
25.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
prinff("%d\n",S(i+j));
}
26.下列程序運行時輸入1234567<CR>,則輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
27.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
28.程序的運行結(jié)果為【】。
main()
{intx,y,z;
x=24;
y=024;
z=0x24;
printf("%d,%d,%d\n",x,y,z);
}
29.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是【】。
30.下列語句的輸出結(jié)果是【】。
chara=3;printf("%d,%o,%x,%u\n",a,a,a,a);
31.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
32.下列程序的輸出結(jié)果是______。
longfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
33.下列程序的運行結(jié)果是______。
main()
{intx=1,y=2,z=3;
printf("%d,",x<y?y:x);
printf("%d,",z<y?x++:y++);
printf("%d,%d",x,y);
}
34.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點的單詞鏈表,在結(jié)點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。[*]
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{…}
voiddisp(Node*h)
{Node*
35.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。
36.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。
37.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結(jié)果形式為:x/y=11。
38.Windows的空口分為兩類,一類是應用程序窗口,另一類是【】窗口。
39.以下程序運行后的輸出結(jié)果是【】。
fun(ihtx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
40.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
三、1.選擇題(20題)41.在C語言中______。
A.函數(shù)定義可以嵌套,但函數(shù)調(diào)用不能嵌套
B.函數(shù)定義不可以嵌套,但函數(shù)調(diào)用可以嵌套
C.函數(shù)定義和調(diào)用均不能嵌套
D.函數(shù)定義和調(diào)用均可以嵌套
42.若有定義:intx=0,*p=&x;則語句printf("%d\n",*p);的輸出結(jié)果是()。
A.隨機值B.0C.x的地址D.p的地址
43.下面程序段的運行結(jié)果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
44.按照“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
45.以下敘述正確的是
A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用goto語句
46.設(shè)x=015,則x=x017的值是()。
A.1111B.11111101C.10D.11000000
47.為了使模塊盡可能獨立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強
48.有下列程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;執(zhí)行該程序段后,k的值是()。
A.3B.2C.1D.0
49.下列敘述中正確的是()。
A.C程序由函數(shù)組成
B.C程序由主函數(shù)構(gòu)成
C.C程序由函數(shù)和過程構(gòu)成
D.在C程序中無論是整數(shù)還是實數(shù),都可以正確無誤的表示出來
50.下列定義變量的語句中錯誤的是______。A.int_int;B.doubleint_;C.charFor;D.floatUS$;
51.軟件設(shè)計中,有利于提高模塊獨立性的一個準則是______。A.低內(nèi)聚低耦合B.低內(nèi)聚高耦合C.高內(nèi)聚低耦合D.高內(nèi)聚高耦合
52.以下程序輸出的結(jié)果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}
A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL
53.對下述程序,正確的判斷是()main(){inta,b,seanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++printf("%d,%d",a,b);}
A.有語法錯誤不能通過編譯B.若輸入4,5則輸出5,6C.若輸入5,4則輸出4,5D.若輸入5,4則輸出5,5
54.已有定義:Mtx=3,y=4,z=5;,則表達式!(x/y)+z-1&&y+z/2的值是()。
A.6B.OC.2D.1
55.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲結(jié)構(gòu)
B.數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲結(jié)構(gòu)屬于非線性結(jié)構(gòu)
C.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲結(jié)構(gòu),且各種存儲結(jié)構(gòu)影響數(shù)據(jù)處理的效率
56.若有如下程序:main(){intx[]={14,32,65,69,78,59},*t;t=x+5;printf("%d\n",*-t);}則程序執(zhí)行后的輸出結(jié)果是()。
A.78B.65C.32D.14
57.有以下程序:matin(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[o]);}執(zhí)行后的輸出結(jié)果是______。
A.n,twoB.t,oneC.w,oneD.o,two
58.下列程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a+++(++b);printf("%d,%d",a,c);}
A.3,14,1B.3,14,2C.2,04,1D.2,14,1
59.對于基本類型機同的兩個指針變量之間,不能進行的動算是()
A.<B.=C.+D.-
60.讀程序:#include<stdio.h>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++)r=r*b[i];returnr;}main(){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}上面程序的輸出結(jié)果是()。
A.720B.120C.24D.6
四、選擇題(20題)61.設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:
該語句所表示的含義是()。
A.
B.
C.
D.
62.
63.若變量x,y已正確定義并賦值,以下符號C語言語法的表達式是()。
A)++x,y=x--B)x+1=y
C)x=x+10=x+yD)double(x)/10
64.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。
A.將字符串str1復制到字符串str2中后再連接到字符串str3之后
B.將字符串str1連接到字符串str2之后再復制到字符串str3之后
C.將字符串str2復制到字符串str1之后再將字符串str3連接到字符串str1之后
D.將字符串str2連接到字符串str1之后再將字符串strl復制到字符串str3中
65.下列函數(shù)的功能是()
66.下列關(guān)于數(shù)據(jù)流圖的描述正確的是()。
A.數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具
B.數(shù)據(jù)流圖間接支持系統(tǒng)的功能建模
C.數(shù)據(jù)流圖中帶箭頭的線段表示控制流
D.數(shù)據(jù)流圖是軟件詳細設(shè)計的工具
67.有以下程序:
程序的運行結(jié)果是()。
A.10,1B.20,1C.10,2D.20,2
68.
69.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。
A.A.A,BB.A,68C.65,66D.65,68
70.
71.軟件按功能可以分為:應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()。
A.編譯程序B.操作系統(tǒng)C.教務(wù)管理系統(tǒng)D.匯編程序
72.
73.
74.某二叉樹有5個度為2的結(jié)點,則該二叉樹中的葉子結(jié)點數(shù)是A.10B.8C.6D.4
75.設(shè)以下變量均為int類型,表達式的值不為7的是A.(x=y=6,x+y,x+1)
B.(x=6,x+1,y=6,x+y)
C.(x=y=6,x+y,y+1)
D.(y=6,y+1,x=y,x+1)
76.
77.用數(shù)據(jù)流圖(DFD.作為描述工具的軟件開發(fā)階段是()。
A.可行性分析B.需求分析C.概要設(shè)計D.詳細設(shè)計
78.若有定義:“inta[2][3];”,則對a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
79.
80.
五、程序改錯題(1題)81.給定程序中,函數(shù)fun的功能是:首先把b所指字符串中的字符按逆序存放,然后將a所指字符串中的字符和b所指字符串中的字符:按排列的順序交叉合并到C所指數(shù)組中,過長的剩余字符接在C所指的數(shù)組的尾部。例如,當a.所指字符串中的內(nèi)容為“abcdef9”,b所指字符串中的內(nèi)容為“1234”時,c所指數(shù)組中的內(nèi)容應“a4b3c2dlef9”;而當a所指字符串中的內(nèi)容為“1234”,b所指字符串的內(nèi)容為“abcdef9”時,c所指數(shù)組中的內(nèi)容應該為“l(fā)g2f3e4dcba”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.M名學生的成績已在主函數(shù)中放入一個帶頭結(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的帶頭結(jié)點。請編寫函數(shù)proc(),它的功能是:找出學生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C解析:自增運算符“++”,出現(xiàn)在變量之前,表示先使變量的值加1,再使用變量的值進行運算;出現(xiàn)在變量之后,表示先使用變量的值進行運算,冉使變量的值加1。例如題中的“b++”,題中第一條語句先輸出字符b的值,此時變量b='2',因此輸出值為2;再使b的值加1,b='3',因此第二條語句輸出:b-a='3'-'1'=2。
2.D解析:在C語言中,定義一維數(shù)組的語句一般形式如下:
類型名數(shù)組名[常量表達式];
一維數(shù)組的引用形式為:數(shù)組名[下標表達式]。count表示能被2整除或被5整除的個數(shù),i則計算有多少個數(shù)組元素。
3.A
4.D比較兩個字符串大小用函數(shù)strcomp(S,t),空字符串有結(jié)束符,所以也要占用字節(jié),兩個雙引號表示的是空字符串。
5.B變量J只接收輸入數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入整數(shù)都會被保存到浮點型變量Y中。
6.B解析:通過分析不難寫出,f()函數(shù)的數(shù)學表達式為:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調(diào)用f(i)。第一次:i為1,調(diào)用f(1)得到返回值1,并把它加到j(luò)中,j的值為1。第二次i為2,調(diào)用f(n),根據(jù)遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j(luò)中,j的值為3。所以最后輸出,i的值為3。
7.D
8.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關(guān)鍵字,而Swithch不是。
9.B
10.B解析:本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,故選項C)錯誤。
11.B本題考查軟件工程調(diào)試。調(diào)試與測試是兩個不同的過程,有著根本的區(qū)別:調(diào)試是一個隨機的、不可重復的過程,它用于隔離和確認問題發(fā)生的原因,然后修改軟件來糾正問題;測試是一個有計劃的,可以重復的過程,它的目的是為了發(fā)現(xiàn)軟件中的問題。因此,軟件調(diào)試的目的是為了改正軟什中的錯誤。本題的正確答案是選項\u3000B。
12.AA)【解析】關(guān)系的并運算是指,由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,其中包含兩個關(guān)系中的所有元組。
13.A
14.C解析:根據(jù)混合運算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運算的結(jié)果最終也是double型。
15.A
16.A本題考查了函數(shù)的調(diào)用。首先主函數(shù)定義了兩個字符型數(shù)據(jù)b和a,給b賦值為字母a.a(chǎn)賦值為字母A,調(diào)用fun(&.b,a)函數(shù),*C=*c十1,a的ASCIl碼值加1后為b,A的ASCIl碼值加1后為B。輸出第一組值,排除C、D選項。B選項的值此時為小b,排除B選項,所以本題答案為A。
17.D第一次執(zhí)行循環(huán)前,a=1,滿足a<8,執(zhí)行循環(huán)后,b=3,a=3。執(zhí)行完a++操作后,a=4。由于a<8,執(zhí)行第二次循環(huán)后,b=7,a=6,執(zhí)行完a++操作后,a=7。由于a<8,執(zhí)行第三次循環(huán)后,b=14,a=9,執(zhí)行完a++操作后a=10。此時不滿足a<8,跳出循環(huán)。
18.A本題主要考查自加減運算符(++,--)的使用。①如果作為前綴變量“++a,--a”,在使用a之前,先使a的值加1或者減1,再使用表達式的值參與運算;②后綴變量“a++,a--”,先使用表達式的值參與運算,在使用a之后,再使i的值加1或者減1。在本題中計算表達式c=(a++)-1時先使用a的值進行計算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此句后l3-的值是3;表達式c+=-a+++(++b)也可寫成C=c+(一a++)+(++b),c=1+(一3)+3=1,此時a=4,b=3。
19.D
20.A
21.投影投影解析:在關(guān)系模型的數(shù)據(jù)語言中,一般除了運用常規(guī)的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關(guān)系運算,如投影、選擇、連接等。投影是從二維表的列方向上進行的運算。
22.拖動拖動
23.86518651解析:主程序中,第一次循環(huán)時,i=0,調(diào)用sb(s,x)子函數(shù),此時n=3,x=s[n]=s[3]=8,然后將n減1變?yōu)?;第二次循環(huán)時,i=1,調(diào)用sb(s,x)子函數(shù),因為將n定義為了靜態(tài)變量,所以此時n=2,返回x=s[n]=s[2]=6;第三次循環(huán)時,i=2,調(diào)用sb(s,x)子函數(shù),此時n=1,返回x=s[n]=s[1]=5;第四次循環(huán)時,i=3,調(diào)用sb(s,x)子函數(shù),此時n=0,返回x=s[n]=s[0]=1。此程序?qū)嶋H上是將數(shù)組s逆序輸出。
24.2.0。2.0。解析:x和y為整數(shù),運算符“/”在這里是整型除,整除后值為0。
25.8181解析:帶參數(shù)的宏定義是按#define命令行中指定的字符串從左到右進行替換。本題替換后得到:4*i+j*i+j+1,代入i,j的值得81。
26.本題考查的重點是scanf函數(shù)的調(diào)用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上場寬,本題中兩個變量的場寬都為2,所以輸入1234567<CR>后,變量a的值為12。變址b的值為34,從而輸出為1234。\r\n\r\n
27.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
28.242036
29.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結(jié)點,其數(shù)據(jù)域為任意或根據(jù)需要來設(shè)置,指針域指向線性表的第一個元素的結(jié)點。循環(huán)鏈表的頭指針指向表頭結(jié)點。②循環(huán)鏈表中最后一個結(jié)點的指針不是空,而是指向表頭結(jié)點。
30.31371f3131,37,1f,31解析:此題考查了printf函數(shù)的格式字符,題中d是以十進制形式輸出,o是以八進制形式輸出,x是以十六進制形式輸出,u以不帶符號的十進制數(shù)輸出。
31.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
32.考查ifelse語句,n=4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年景德鎮(zhèn)駕駛員貨運從業(yè)資格證模擬考試
- 2025年度紅磚品牌授權(quán)與合作合同電子版
- 2025年度貸款房屋買賣合同電子版稅收籌劃
- 2025年度酒吧租賃合同(含年度品牌形象更新)
- 二零二五年度旅游景區(qū)管理費與服務(wù)保障合同
- 2025年度車險人傷案件調(diào)解與賠償合同
- 2025年度涉外勞務(wù)合同履行進度監(jiān)控與報告要求
- 2025年度貨車司機勞動合同(含安全培訓及績效考核)
- 小兒高熱治療中的跨學科合作模式探討
- 二零二五年度租賃房屋合同轉(zhuǎn)讓及租后房屋檢查及維修責任合同
- 銷售與銷售目標管理制度
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- 對口升學語文模擬試卷(9)-江西省(解析版)
- 糖尿病高滲昏迷指南
- 信息科技大單元教學設(shè)計之七年級第三單元便捷的互聯(lián)網(wǎng)服務(wù)
- 壁壘加筑未來可期:2024年短保面包行業(yè)白皮書
- 2024年四川省廣元市中考物理試題(含解析)
- 環(huán)保局社會管理創(chuàng)新方案市環(huán)保局督察環(huán)保工作方案
- 2024至2030年中國水質(zhì)監(jiān)測系統(tǒng)行業(yè)市場調(diào)查分析及產(chǎn)業(yè)前景規(guī)劃報告
- 運動技能學習
評論
0/150
提交評論