版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.衡量顯示器的主要技術指標是()
A.波特率B.分辨率C.主頻D.顯示速度
2.在數據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數據庫系統(tǒng)階段。其中數據獨立性最高的階段是()。
A.數據庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數據項管理
3.有以下程序(注:字符a的ASCIl碼值為97)#include<stdio.h>main(){char*s={"abc")do{printf("%d",*S%10");++S;}while(*s);}隉序運行后的輸出結果是()。A.abcB.789C.7890D.979899
4.已定義以下函數“intfun(int*p){return*p;}”,fun函數的返回值是()。
A.—個整數B.不確定的值C.形參p中存放的值D.形參p的地址值
5.一個算法的語句執(zhí)行次數為(2n2+2nlog2n+4n-7),則其時間復雜度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
6.以下程序的輸出結果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
7.若一棵二叉樹具有10個度為2的結點,5個度為1的結點,則度為0的結點的個數是()。
A.9B.11C.15D.不能確定
8.用二進制來編碼字符串“abcdabaa”,需要能夠根據編碼,解碼回原來的字符串,最少需要()長的二進制字符串
A.12B.14C.18D.24
9.下列程序段輸出的字符串長度為()。printf("\\aaa\'ccc\bddd\'");
A.11B.12C.13D.17
10.在C語言中,函數返回值的類型最終取決于()。
A.函數定義時在函數首部所說明的函數類型
B.return語句中表達式值的類型
C.調用函數時主調函數所傳遞的實參類型
D.函數定義時形參的類型
11.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的一個出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
12.下面程序的輸出結果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
13.
14.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf(“%d\n,”,S(k+j));}程序的運行結果是()。
A.33B.197C.143D.28
15.該程序試圖通過指針p為變量n讀入數據并輸出,但程序有多處錯誤,以下語句正確的是()A.intn,*p=NULL;
B.*p=&n;.
C.scanf("%d",&p)
D.printf("%d\n",p);
16.串的長度是指()。
A.串中所含不同字母的個數B.串中所含字符的個數C.串中所含不同字符的個數D.串中所含非空格字符的個數
17.x>0||y==5的相反表達式為()。
A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==5
18.有以下程序: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");}}若要按以下形式輸出數組右上半三角1234678111216則在程序下劃線處應填入的是()。A.i-1B.iC.i+1D.4一i
19.有以下程序:#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
20.同一個關系模型的任意兩個元組值()。
A.可以全相同B.不能全相同C.必須全相同D.以上都不對
二、2.填空題(20題)21.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為【】。
22.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
pfintf("%d%d%d\n",a,b,c);
}
執(zhí)行后輸出結果是【】。
23.以下程序的功能是計算。補足所缺語句。
longf(intn)
{inti;longs;
s=【】;
for(i=1;i<=n;i++)s=【】;
returns;
}
main()
{longs;intk,n;
scanf("%d",&n);
s=【】;
for(k=0;k<=n,k++)s=s+【】;
printf("%1d\n",s);
}
24.若a是int型變量,則表達式(a=2*3,a*2),a+6的值為______。
25.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
26.有以下程序:
#include<stdio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序運行時,如果從鍵盤輸入Y?N?<回車>,則輸出結果為【】。
27.下列程序的運行結果是______。
#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);
}
28.有以下程序
main()
{intn=0,m=l,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后輸出的結果是______。
29.下面定義的結構體類型包含3個成員,其中成員變量x用來存入整型數據,成員變量y用來存入實型數據,成員變量next是指向自身結構體的指針。請將定義補充完整。
structstu
{intx;
【】
【】next;}
30.下列程序的功能:對輸入的一行字符中的數字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(c))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
31.下面程序中函數creat用于建立一個帶頭結點的單向鏈表,新產生的結點總是插在鏈表的末尾,單向鏈表的頭指針作為函數值返回。將程序補充完整。
#include<stdiao.h>
structlist
{chardata;structlist*next;};
structlist*creat()
{
structlist*h,*p,*q;charch;
h=【】malloc(sizeof(structlist));
p=q=h;ch=getchar();
while(ch!='?')
{
p=【】malloc(sizeof(structlist));
p->data=ch;q->next=p;q=p;ch=getchar();
}
p->next='\0';
【】;
}
32.以下程序的功能是:通過函數func輸入字符并統(tǒng)計輸入字符的個數。輸入時用字符作為輸入結束標志。請?zhí)羁铡?include<stdio.h>long();/*函數說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}
33.以下程序的輸出結果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
34.在C語言中,字符的比較就是對它們的【】碼進行比較。
35.以下程序的輸出結果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
36.將經過確認測試的軟件與外設、網絡等連接在一次運行的測試叫【】
37.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
38.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
39.下面程序把從終端讀入的文本(用#作為文本結束標志)復制到一個名為file.txt的新文件中。補足所缺語句。
main()
{charch;
FILE*fp;
if((fp=fopen(______))=NULL)exit(0);
while((ch=getchar())!='#')
fputc(ch,fp);
______;
}
40.需求分析的最終結果是產生【】。
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){intaa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][2];printf("%d",s);}程序運行后的輸出結果是()。
A.26B.19C.10D.20
42.以下正確的函數定義是______。
A.doublef1(intx,inty)
B.doublef1(intx;inty)
C.doublef1(intx;floaty)
D.doublef1(intx,y)
43.以下敘述中錯誤的是()。
A.C程序中的#include和#define行均不是C語句
B.除逗號運算符外,賦值運算符的優(yōu)先級最低
C.C程序中,j++;是賦值語句
D.C程序中,+、-、*、/、%是算術運算符,可用于整型和實型數的運算
44.以下說法中,不正確的是
A.C程序中必須有一個main()函數,從main()函數的第一條語句開始執(zhí)行
B.非主函數都是在執(zhí)行主函數時,通過函數調用或嵌套調用而執(zhí)行
C.C程序中的main()函數必須放在程序的開始位置
D.C程序中的main()函數位置可以任意指定
45.下列不正確的轉義字符是()。
A.'\\'B.'\t'C.'\n'D.'088'
46.以下選項中,不能作為合法常量的是
A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0
47.以下程序段給數組所有的元素輸入數據,請選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);::}
A.a+(i++)B.&5[i+1]C.a+iD.&a[++i]
48.若有定義:inta[5],*p=a;,則對a數組元素地址的正確引用是______。
A.p+5B.*a+1C.&a+1D.&a[0]
49.數據流圖用于抽象描述一下軟件的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是______。
A.控制流B.加工C.數據存儲D.源和潭
50.關系數據庫管理系統(tǒng)能實現的專門關系運算包括()。
A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關聯、更新、排序D.顯示、打印、制表
51.在嵌套使用if語句時,C語言規(guī)定else總是()。
A.和之前與其具有相同縮進位置的if配對
B.和之前與其最近的if配對
C.和之前與其最近不帶else的if配對
D.和之前的第一個if配對
52.有以下程序
main()
{inti,s=1;
for(i=1;i<50;i++)
if(!(i%5)&&!(i%3))s+=i;
printf("%d\n",s);}
程序的輸出結果是
A.409B.277C.1D.91
53.下列數據結構中,能用二分法進行查找的是()。
A.順序存儲的有序線性表B.結性鏈表C.二叉鏈表D.有序線性鏈表
54.已知、棵二叉樹的后序遍歷序列是dabec,中序遍歷序列是debac,則它的前序遍歷序列是()。
A.acbedB.decabC.deabcD.cedba
55.請讀程序:#include<stdio.h>#defineSUB(X,Y)(X)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}上面程序的輸出結果是()。
A.12B.15C.16D.20
56.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為()。
A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG
57.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結果是()。
A.隨機值B.0C.5D.6
58.下列程序運行后,輸出結果是______。main(){charch[2][5]={"693","825"),*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'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.6385B.22C.33D.693825
59.下述關于數據庫系統(tǒng)的敘述中,正確的是()。
A.數據庫系統(tǒng)減少了數據冗余
B.數據庫系統(tǒng)避免了一切冗余
C.數據庫系統(tǒng)中數據的一致性是指數據類型一致
D.數據庫系統(tǒng)比文件系統(tǒng)能管理更多的數據
60.有以下程序:#include<stdio.h>#defineX5+6main(){inta=2,c;C=X*2:printf("%d",C);}程序運行后的輸出結果是()。
A.17B.22C.16D.11
四、選擇題(20題)61.視圖設計一般有3種設計次序,下列不屬于視圖設計次序的是()。
A.自頂而下B.由內向外C.由外向內D.自底向上
62.設有以下定義:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
則下列能夠正確表示數組元素a【1】【2】的表達式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
63.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關,而與數據的存儲結構無關
B.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
C.數據的邏輯結構與存儲結構是一一對應的
D.算法的時間復雜度與空間復雜度一定相關
64.若有以下定義和語句:
chars[10]="abcd!",*s2="\nl23\\";
Drintf("%d%d\n",strlen(sl),strlen(s2));
則輸出結果是()。
A.55B.105C.107D.58
65.
66.(47)在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是()
A.詳細設計
B.需求分析
C.總體設計
D.編程調試
67.
有下列程序:
intfun(intn)
{if(n==1)}return1;
else
return(n+fun(n-1));
}
main
{intx;
scanf("%d",&x);x=fun(x);printf("%d\n",x);
)
執(zhí)行程序時,給變量x輸入10,程序的輸出結果是()。
A.55B.54C.65D.45
68.有以下程序段:
以下關于程序段執(zhí)行情況的敘述,正確的是()。
A.for循環(huán)語句固定執(zhí)行8次
B.當產生的隨機數n為4時結束循環(huán)操作
C.當產生的隨機數n為1和2時不做任何操作
D.當產生的隨機數n為0時結束程序運行
69.
70.已有定義intx=3,y=4,z=5;則表達式“!(x+y)+z-1y+z/2”的值是________。
A.6B.0C.2D.1
71.下列敘述中錯誤的是()。
A.列表框和組合框都有List屬性
B.列表框有Selected屬性,而組合框沒有
C.列表框和組合框都有Style屬性
D.組合框有Text屬性,而列表框沒有
72.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。
A.提高耦合性降低內聚性有利于提高模塊的獨立性
B.降低耦合性提高內聚性有利于提高模塊的獨立性
C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度
D.內聚性是指模塊間互相連接的緊密程度
73.
74.下列敘述中正確的是()。
A.break語句只能用于switch語句體中
B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語句只能用在循環(huán)體內和switch語句體內
D.在循環(huán)體內使用break語句和continue語句的作用相同
75.
76.有以下程序
77.
78.若變量已正確說明為int類型,要通過語句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
79.
80.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結果是()。A.1B.30C.1-2D.死循環(huán)
五、程序改錯題(1題)81.寫出下列程序的運行結果。
#include“stdio.h”
Main
{inta[]={1,2,3,-4,5};
intm,n,*p;p=&a[0];m=*(p+1);n=*(p+4);
printf(“%d%d%d”,*p,m,n);}
六、程序設計題(1題)82.請編寫一個函數proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數放在數組a中,通過n返回這些數的個數。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請勿改動main函數和其他函數中的任何內容,僅在函數proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個數
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.B
2.A在數據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數據庫系統(tǒng)階段。其中數據獨立性最高的階段是數據庫系統(tǒng)這一階段。數據庫系統(tǒng)階段用數據模型來表示復雜的數據,有較高的數據獨立性。數據庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數據庫,也可以用程序方式來操作。數據庫管理系統(tǒng)提供了數據控制功能。
3.B程序中的*s%10是求余運算,分別是a、b、C的ASCIl碼值對10進行求余運算然后輸出,所以輸出的答案為789。r
4.A函數返回值為指針變量指向的數據,該數據已被定義為整型。故本題答案為A選項。
5.A
6.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。
7.B
8.B
9.C解析:轉義字符有1個\\\\、2個\\'、1個\\b,普通字符有3個a、3個c、3個d,共13個字符。
10.A解析:在C語言中,應當在定義函數時指定函數值的類型。凡不加類型說明的函數,默認按整型處理。在定義函數時對函數值說明的類型一般應該和return語句中的表達式類型一致。如果函數值的類型和return語句中的表達式類型不一致,則以函數值的類型為準,由系統(tǒng)自動進行轉換,即函數類型決定返回值的類型。
11.C解析:棧是一種后進先出表,選項C中,先出棧的是3,說明此時棧內必然有1,2,由于1先于2進淺,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。
12.B解析:本題考查函數的調用。函數fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數內有效;在主函數中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。
13.D
14.CS為帶參數的宏定義,運行“S(k+j)”為4*(k+j)*k+j+1=143。故本題答案為C選項。
15.A[解析]選項B)的正確寫法應為p=&n;選項C)的正確寫法應為scanf("%d",p);選項D)的正確寫法應為printf("%d\\n",*p)。
16.B解析::串的長度定義為串中字符的數目。所以B)為正確答案。C)答案不正確,因為串中可以含有相同的字符;A)答案不正確,因為串中可能含有相同的字母,而且也可能含有數字等其他非字母字符;D)答案不正確,因為空格也是一種字符,在計算長度時理應將其計算在內。
17.B
18.B本題中要求輸出右上半角的數,對角線上的數的下標相同,所以j=i。
19.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。
20.B關系具有以下7個性質。①元組個數有限性:二維表中元組的個數是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數據項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質的。滿足以上7個性質的二維表稱為關系,以二維表為基本結構所建立的模型稱為關系模型。本題答案為B選項。
21.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數為E=1/(n+1)(n-i+1)=n/2。
22.503503解析:如果if后面的條件為真,只執(zhí)行其后的一條語句或一條復合語句,如果if后面的條件為假,只執(zhí)行else后面的一條語句或一條復合語句。先判斷表達式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。在判斷表達式“a<c”,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結果a的值為5,c的值為3,所以最后輸出的結果為5、0和3。
23.1s*i0f(k)
24.1212解析:本題考查逗號表達式的運算規(guī)則。逗號表達式的基本格式為:“表達式1,表達式2,…”,其整個表達式的結果取最后一個子表達式的值。本題中首先計算逗號表達式中的第1個表達式a=2*3=6,然后計算第2個表達式a*2,這時整個表達式的值為12,但要注意,因為第2個表達式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達式a+6=12,所以整個表達式最后的值為12。
25.88解析:fabs函數功能是求x的絕對值,計算結果為double型。pow功能是計算x的y次方的值,計算結果同樣為double型。所以本題表達式相當于2.0的3.0次方,結果為8.000000。
26.XX解析:程序是從鍵盤緩沖區(qū)循環(huán)接收字符,并輸出接收到的字符在ASCII碼表中的前一個字符,直到接收到‘?’為止。
27.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結果為5。
28.-4-4解析:本題考核的知識點是if...else結構的應用。if…else構造了一種二路分支選擇,是一種最基本的選擇結構,if(條件)S1(if分結構)elseS2(else分結構),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執(zhí)行if分結構(S1);否則(不成立,值為0),就執(zhí)行else分結構(S2)。本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1;進而可以判斷(x)為真,執(zhí)行x=x-3=-l-3=4。所以,最后輸出為叫
29.floaty;structstu*floaty;\r\nstructstu*解析:float定義變量y為實型變量。要求變量next是指向自身結構體的指針,因此變量next應該是結構體stu的指針型變量。
30.分析題目可知,程序中運用函數c=getchar()從標準輸入設備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。\r\n\r\n
31.(structlist*)(structlist*)return(h)
32.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數在主函數之后定義,就要對其進行說明,說明的形式為:“函數類型名函數名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個數,所以每輸入一個字符,變量m的值就加1。所以此處填寫m++。
33.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語句。
34.ASCⅡ
35.77解析:在C語言中,宏定義是直接替換的,所以在劉表達式MAX(a+b,c+d)*10進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+d)*10的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。
36.系統(tǒng)測試系統(tǒng)測試
37.44解析:在主函數中,語句p=a;p++使用指針p指向數組a[1],所以輸出結果為4。
38.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關系,年號能被400整除即y%400==0,與前兩項是或的關系。
39.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫數據,并且該文件是新文件,應當使用文件打開方式'w',文件操作結束時要用函數fclose關閉文件,以防數據丟失。
40.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。
41.B解析:本題考查二維數組元素的引用。二維數組可以看成是一個矩陣,aa[i][2]其實就是第i行的第3個元素,for循環(huán)內的s+=aa[i][2]其實就是將矩陣第3列的數相加,即s=3+1+10+5=19。
42.A
43.D解析:“%”是求余運算符,其兩側的數值只能為整型,不能用于實型數據的運算。
44.C解析:main()函數的作用,以及main()函數在程序中出現的位置。一個完整的C語言程序有且僅有一個主函數(main()函數)。程序總從main()函數的第一條語句開始執(zhí)行,到main()函數的最后—條語句結束,其他函數都是在執(zhí)行main()函數時,通過函數調用或嵌套調用而得以執(zhí)行的。C語言規(guī)定,main()函數在程序中的位置是任意的。
45.D解析:'\\\\'是反斜線轉義字符:'\\t'是水平跳格轉義字符:'\\n'是換行轉義字符;C語言中沒有規(guī)定'088'為轉義字符。
46.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數字,且e(E)后面的指數必須是整數,而選項B)中,e(E)后面的指數是小數,所以不合法。
47.A解析:a就是數組a的首地址,而a+x是數組中第x個元素的地址,所以在四個選項中,選項B和C只能輸入一個數據,選項D不能給a[0]輸入數據,只有A可以完成給數組所有的元素輸入數據的任務。
48.D解析:本題首先使指針指向數組a的首地址。選項A越界;選項B中,a并非指針變量;選項C使數組a的地址加1;選項D取數組元素a[0]的地址。
49.A解析:數據流圖從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。數據流圖中的主要圖形元素有:加工(轉換)、數據流、存儲文件(數據源)、源和潭。
50.B解析:此題為數據庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學生關系(學號,姓名,出生年月,性別),學號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學生關系(學號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學號,姓名,系號,系名,主任)。
51.C
52.D解析:本題是計算50之內的自然數相加之和,題中if語句括號中的條件表達式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數才符合相加的條件,1~49之間滿足這個條件的只有,15、30和45,因為s的初始值為1,所以s=1+15+30+45=91。
53.A\nA。【解析】二分法查找只適用于順序存儲的有序線性表,對于順序存儲的非有序線性表和線性鏈表,都只能采用順序查找。
\n
54.D解析:依據后序遍歷序列可確定根結點為c,由中序遍歷序列可知其左子樹由deba構成,右子樹為空;又由左子樹的后序遍歷序列可知其根結點為e,由中序遍歷序列可知其左子樹為d,右子樹由ba構成,如圖所示。由此可知該二叉樹的前序遍歷序列為選項D)。
55.A解析:本題的考查點是宏定義。a++的形式應當先使用a值,然后a才進行自加1運算,所以程序在進行SUB()乘法運算的時候,仍取a,b的原值,最后輸出的結果是12。
56.B遍歷是按照一定規(guī)則對樹中全部結點逐一訪問的方法。二叉樹可由根結點、左子樹和右子樹三個部分組成。根據對根結點訪問的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問根結點,再先序遍歷左子樹,最后先序遍歷右子樹,可見遍歷是一個遞歸的過程。求樹的遍歷這種問題的關鍵在于認清每棵子樹的根結點的訪問順序。題目給出了一棵樹的先序遍歷和中序遍歷的結點順序,先序遍歷的第一個結點為整棵樹的根結點,即根結點為A,而在中序遍歷的順序中,結點A的前面還有DBGE四個結點,表示這四個結點構成以A為結點的二叉樹的左子樹,同理,中序遍歷中A結點后面的CHF三個結點構成以A為結點的二叉樹的右子樹。于是原來的對一棵二叉樹的分析變?yōu)閷υ摱鏄涞淖笥易訕涞姆治觥R宰笞訕錇槔?,左子樹結點的先序遍歷為BDEG,中序遍歷為DBGE,該子樹的根結點為B,B結點的左子樹為一個結點D,右子樹為以E為根結點,結點G是E的左孩子。同理,可對CHF三個結點進行分析。
最后得到整棵樹的結構后,按照后序遍歷寫出所有結點的順序:DGEBHFCA。
57.B解析:通過賦值語句“s=x+3”,使指針變量s指向數組元素x[3],輸出語句中的spl等價于*(s+2),即x[5]值為0。所以,B選項為所選。
58.A
59.A解析:數據庫是一個通用化的、綜合性的數據集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數據與程序的獨立性,而且能并發(fā)地為多個應用服務,同時具有安全性和完整性。即數據庫系統(tǒng)減少了數據冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數據庫管理階段中,數據是結構化的,面向系統(tǒng),數據冗余度小,從而節(jié)省了數據的存儲空間,也減少了對數據的存取時間,提高了訪問效率,避免了數據的不一致性。數據的不一致性,是指對數據的存取方式,選項C錯誤。數據庫系統(tǒng)比文件系統(tǒng)能管理更多的數據,并非是數據庫系統(tǒng)的特點,選項D錯誤。本題正確答案是A。
60.A
61.C視圖設計的設計次序分3種:自頂向下、自底向上和由內向外。它們?yōu)橐晥D設計提供了具體的操作方法,設計者可根據實際情況靈活掌握。
62.Da[1][2]的值為6.*ptr的值為1,*ptr+1=2是一個數組,所以(*ptr+1)[2]表示不正確。P=a,指向1,p+5是指針向后移動5個單元,即指向6,*(p+5)即是6,C項解釋同A,
63.B解析:本題考查數據結構中有關算法的基本知識和概念。數據的結構,直接影響算法的選擇和效率。而數據結構包括兩方面,即數據的邏輯結構和數據的存儲結構。因此,數據的邏輯結構和存儲結構都影響算法的效率。選項A的說法是錯誤的。算法的時間復雜度是指算法在計算機內執(zhí)行時所需時間的度量;與時間復雜度類似,空間復雜度是指算法在計算機內執(zhí)行時所需存儲空間的度量。因此,選項B的說法是正確的。
數據之間的相互關系稱為邏輯結構。通常分為四類基本邏輯結構,即集合、線性結構、樹型結構、圖狀結構或網狀結構。存儲結構是邏輯結構在存儲器中的映象,它包含數據元素的映象和關系的映象。存儲結構在計算機中有兩種,即順序存儲結構和鏈式存儲結構??梢?,邏輯結構和存儲結構不是一一對應的。因此,選項C的說法是錯誤的。
有時人們?yōu)榱颂岣咚惴ǖ臅r間復雜度,而以犧牲空間復雜度為代價。但是,這兩者之間沒有必然的聯系。因此,選項D的說法是錯誤的。
64.A\n\\n和\\\\分別為轉義字符,各占據一個字符的位置。
\n
65.B
66.C注:總體設計也就是概要設計
67.A
\n本題在函數intfun(intn)的定義中又出現了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量x時,遞歸調用的過程為
\nfun(10)=10…fun(9)=104-94-fun(8)=104-9+84-fun(7)
\n=10+9++8++7++fun(6)=10+9++8+7+6+fun(6)
\n=10+9++8+7+6+5+fun(4)
\n=10+9++8+7+6+5+4+fun(3)
\n=10+9++8+7+6+5+4+3+fun(2)
\n=10+9++8+7+6+5+4+3+2+fun(1)
\n=10+9++8+7+6+5+4+3+2=55
\n
68.DCase常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執(zhí)行switch語句時,根據switch的表達式,找到與之匹配的ease語句,就從此cafle子旬執(zhí)行下去,不再進行判斷,直到碰到break或函數結束為止。簡單的說break是結束整個循環(huán)體,而continue是結束單次循環(huán)。B選項中當產生的隨機數n為4時要執(zhí)行打印操作。C選項中當產生的隨機數為l和2時分別執(zhí)行cage3與case4后面語句的內容。由于存在break語句所以for循環(huán)不是固定執(zhí)行8次,執(zhí)行次數與產生的隨機數n有關系。
69.C
70.D
71.BB?!窘馕觥拷M合框和列表框都沒有selected屬性。
72.B模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯系最少且接口簡單。一般較優(yōu)秀的軟件設計,應盡量做到高內聚,低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內聚性是指一個模塊內部各個元素間彼此結合的緊密程度,所以C與D錯誤。故答案為B選項。
73.C
74.C解析:只能在循環(huán)體內和switch語句體內使用break語句。當break出現在循環(huán)體的switch語句體內時,其作用只是跳出該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想強行中止循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并不在switch語句中設置break語句,滿足某種條件,則跳出本層循環(huán)體。
75.D
76.A函數‰的功能是將字符串倒序,所以結果選擇A)。
77.A
78.B本題中,“%d%d%d”表示按整型數形式輸入數據,輸入數據時,在兩個數據之間以一個或多個空格間隔,也可以用回車鍵或Tab鍵。選項B中不應該使用逗號。
79.B
80.C本題考查do-while循環(huán),先執(zhí)行d0輸出的x的值為1,接著執(zhí)行while語句,此時--x的值為0,x也為0,而非0為1,循環(huán)成立,接著執(zhí)行do輸出X值為-2,執(zhí)行--x后,表達式為-2,而!(--x)為0,退出循環(huán)。
81.
82.\n\tvoidproc(intm,int*a,int*n)
\n{
\ninti,j=0;
\nfor(i=1;i<=m;i++)//進行m次循環(huán)
\nif(i%7==0||i%11==0)//能被7或11整除的所有整數
\na[j++]=i;//符合條件的數放在數組a中
\n*n=j;//返回這些數的個數
\n}
\n【解析】本題需要先判斷1~m每一個整數能否被7或11整除,然后將符合條件的整數放在數組a中,最后將符合條件的數的個數通過形參n返回主函數。\n2022年貴州省畢節(jié)地區(qū)全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.衡量顯示器的主要技術指標是()
A.波特率B.分辨率C.主頻D.顯示速度
2.在數據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數據庫系統(tǒng)階段。其中數據獨立性最高的階段是()。
A.數據庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數據項管理
3.有以下程序(注:字符a的ASCIl碼值為97)#include<stdio.h>main(){char*s={"abc")do{printf("%d",*S%10");++S;}while(*s);}隉序運行后的輸出結果是()。A.abcB.789C.7890D.979899
4.已定義以下函數“intfun(int*p){return*p;}”,fun函數的返回值是()。
A.—個整數B.不確定的值C.形參p中存放的值D.形參p的地址值
5.一個算法的語句執(zhí)行次數為(2n2+2nlog2n+4n-7),則其時間復雜度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
6.以下程序的輸出結果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
7.若一棵二叉樹具有10個度為2的結點,5個度為1的結點,則度為0的結點的個數是()。
A.9B.11C.15D.不能確定
8.用二進制來編碼字符串“abcdabaa”,需要能夠根據編碼,解碼回原來的字符串,最少需要()長的二進制字符串
A.12B.14C.18D.24
9.下列程序段輸出的字符串長度為()。printf("\\aaa\'ccc\bddd\'");
A.11B.12C.13D.17
10.在C語言中,函數返回值的類型最終取決于()。
A.函數定義時在函數首部所說明的函數類型
B.return語句中表達式值的類型
C.調用函數時主調函數所傳遞的實參類型
D.函數定義時形參的類型
11.若進棧序列為1,2,3,4,進棧過程中可以出棧,則下列不可能的一個出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
12.下面程序的輸出結果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
13.
14.有以下程序:#include<stdio.h>#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf(“%d\n,”,S(k+j));}程序的運行結果是()。
A.33B.197C.143D.28
15.該程序試圖通過指針p為變量n讀入數據并輸出,但程序有多處錯誤,以下語句正確的是()A.intn,*p=NULL;
B.*p=&n;.
C.scanf("%d",&p)
D.printf("%d\n",p);
16.串的長度是指()。
A.串中所含不同字母的個數B.串中所含字符的個數C.串中所含不同字符的個數D.串中所含非空格字符的個數
17.x>0||y==5的相反表達式為()。
A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==5
18.有以下程序: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");}}若要按以下形式輸出數組右上半三角1234678111216則在程序下劃線處應填入的是()。A.i-1B.iC.i+1D.4一i
19.有以下程序:#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
20.同一個關系模型的任意兩個元組值()。
A.可以全相同B.不能全相同C.必須全相同D.以上都不對
二、2.填空題(20題)21.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數為【】。
22.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
pfintf("%d%d%d\n",a,b,c);
}
執(zhí)行后輸出結果是【】。
23.以下程序的功能是計算。補足所缺語句。
longf(intn)
{inti;longs;
s=【】;
for(i=1;i<=n;i++)s=【】;
returns;
}
main()
{longs;intk,n;
scanf("%d",&n);
s=【】;
for(k=0;k<=n,k++)s=s+【】;
printf("%1d\n",s);
}
24.若a是int型變量,則表達式(a=2*3,a*2),a+6的值為______。
25.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
26.有以下程序:
#include<stdio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序運行時,如果從鍵盤輸入Y?N?<回車>,則輸出結果為【】。
27.下列程序的運行結果是______。
#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);
}
28.有以下程序
main()
{intn=0,m=l,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后輸出的結果是______。
29.下面定義的結構體類型包含3個成員,其中成員變量x用來存入整型數據,成員變量y用來存入實型數據,成員變量next是指向自身結構體的指針。請將定義補充完整。
structstu
{intx;
【】
【】next;}
30.下列程序的功能:對輸入的一行字符中的數字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(c))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
31.下面程序中函數creat用于建立一個帶頭結點的單向鏈表,新產生的結點總是插在鏈表的末尾,單向鏈表的頭指針作為函數值返回。將程序補充完整。
#include<stdiao.h>
structlist
{chardata;structlist*next;};
structlist*creat()
{
structlist*h,*p,*q;charch;
h=【】malloc(sizeof(structlist));
p=q=h;ch=getchar();
while(ch!='?')
{
p=【】malloc(sizeof(structlist));
p->data=ch;q->next=p;q=p;ch=getchar();
}
p->next='\0';
【】;
}
32.以下程序的功能是:通過函數func輸入字符并統(tǒng)計輸入字符的個數。輸入時用字符作為輸入結束標志。請?zhí)羁铡?include<stdio.h>long();/*函數說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}
33.以下程序的輸出結果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
34.在C語言中,字符的比較就是對它們的【】碼進行比較。
35.以下程序的輸出結果是【】。
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}
36.將經過確認測試的軟件與外設、網絡等連接在一次運行的測試叫【】
37.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
38.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
39.下面程序把從終端讀入的文本(用#作為文本結束標志)復制到一個名為file.txt的新文件中。補足所缺語句。
main()
{charch;
FILE*fp;
if((fp=fopen(______))=NULL)exit(0);
while((ch=getchar())!='#')
fputc(ch,fp);
______;
}
40.需求分析的最終結果是產生【】。
三、1.選擇題(20題)41.有以下程序:#include<stdio.h>main(){intaa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][2];printf("%d",s);}程序運行后的輸出結果是()。
A.26B.19C.10D.20
42.以下正確的函數定義是______。
A.doublef1(intx,inty)
B.doublef1(intx;inty)
C.doublef1(intx;floaty)
D.doublef1(intx,y)
43.以下敘述中錯誤的是()。
A.C程序中的#include和#define行均不是C語句
B.除逗號運算符外,賦值運算符的優(yōu)先級最低
C.C程序中,j++;是賦值語句
D.C程序中,+、-、*、/、%是算術運算符,可用于整型和實型數的運算
44.以下說法中,不正確的是
A.C程序中必須有一個main()函數,從main()函數的第一條語句開始執(zhí)行
B.非主函數都是在執(zhí)行主函數時,通過函數調用或嵌套調用而執(zhí)行
C.C程序中的main()函數必須放在程序的開始位置
D.C程序中的main()函數位置可以任意指定
45.下列不正確的轉義字符是()。
A.'\\'B.'\t'C.'\n'D.'088'
46.以下選項中,不能作為合法常量的是
A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0
47.以下程序段給數組所有的元素輸入數據,請選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);::}
A.a+(i++)B.&5[i+1]C.a+iD.&a[++i]
48.若有定義:inta[5],*p=a;,則對a數組元素地址的正確引用是______。
A.p+5B.*a+1C.&a+1D.&a[0]
49.數據流圖用于抽象描述一下軟件的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是______。
A.控制流B.加工C.數據存儲D.源和潭
50.關系數據庫管理系統(tǒng)能實現的專門關系運算包括()。
A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關聯、更新、排序D.顯示、打印、制表
51.在嵌套使用if語句時,C語言規(guī)定else總是()。
A.和之前與其具有相同縮進位置的if配對
B.和之前與其最近的if配對
C.和之前與其最近不帶else的if配對
D.和之前的第一個if配對
52.有以下程序
main()
{inti,s=1;
for(i=1;i<50;i++)
if(!(i%5)&&!(i%3))s+=i;
printf("%d\n",s);}
程序的輸出結果是
A.409B.277C.1D.91
53.下列數據結構中,能用二分法進行查找的是()。
A.順序存儲的有序線性表B.結性鏈表C.二叉鏈表D.有序線性鏈表
54.已知、棵二叉樹的后序遍歷序列是dabec,中序遍歷序列是debac,則它的前序遍歷序列是()。
A.acbedB.decabC.deabcD.cedba
55.請讀程序:#include<stdio.h>#defineSUB(X,Y)(X)*Ymain(){inta=3,b=4;printf("%d\n",SUB(a++,b++));}上面程序的輸出結果是()。
A.12B.15C.16D.20
56.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為()。
A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG
57.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結果是()。
A.隨機值B.0C.5D.6
58.下列程序運行后,輸出結果是______。main(){charch[2][5]={"693","825"),*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'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.6385B.22C.33D.693825
59.下述關于數據庫系統(tǒng)的敘述中,正確的是()。
A.數據庫系統(tǒng)減少了數據冗余
B.數據庫系統(tǒng)避免了一切冗余
C.數據庫系統(tǒng)中數據的一致性是指數據類型一致
D.數據庫系統(tǒng)比文件系統(tǒng)能管理更多的數據
60.有以下程序:#include<stdio.h>#defineX5+6main(){inta=2,c;C=X*2:printf("%d",C);}程序運行后的輸出結果是()。
A.17B.22C.16D.11
四、選擇題(20題)61.視圖設計一般有3種設計次序,下列不屬于視圖設計次序的是()。
A.自頂而下B.由內向外C.由外向內D.自底向上
62.設有以下定義:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
則下列能夠正確表示數組元素a【1】【2】的表達式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
63.下列敘述中正確的是()。A.算法的效率只與問題的規(guī)模有關,而與數據的存儲結構無關
B.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
C.數據的邏輯結構與存儲結構是一一對應的
D.算法的時間復雜度與空間復雜度一定相關
64.若有以下定義和語句:
chars[10]="abcd!",*s2="\nl23\\";
Drintf("%d%d\n",strlen(sl),strlen(s2));
則輸出結果是()。
A.55B.105C.107D.58
65.
66.(47)在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是()
A.詳細設計
B.需求分析
C.總體設計
D.編程調試
67.
有下列程序:
intfun(intn)
{if(n==1)}return1;
else
return(n+fun(n-1));
}
main
{intx;
scanf("%d",&x);x=fun(x);printf("%d\n",x);
)
執(zhí)行程序時,給變量x輸入10,程序的輸出結果是()。
A.55B.54C.65D.45
68.有以下程序段:
以下關于程序段執(zhí)行情況的敘述,正確的是()。
A.for循環(huán)語句固定執(zhí)行8次
B.當產生的隨機數n為4時結束循環(huán)操作
C.當產生的隨機數n為1和2時不做任何操作
D.當產生的隨機數n為0時結束程序運行
69.
70.已有定義intx=3,y=4,z=5;則表達式“!(x+y)+z-1y+z/2”的值是________。
A.6B.0C.2D.1
71.下列敘述中錯誤的是()。
A.列表框和組合框都有List屬性
B.列表框有Selected屬性,而組合框沒有
C.列表框和組合框都有Style屬性
D.組合框有Text屬性,而列表框沒有
72.耦合性和內聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。
A.提高耦合性降低內聚性有利于提高模塊的獨立性
B.降低耦合性提高內聚性有利于提高模塊的獨立性
C.耦合性是指一個模塊內部各個元素間彼此結合的緊密程度
D.內聚性是指模塊間互相連接的緊密程度
73.
74.下列敘述中正確的是()。
A.break語句只能用于switch語句體中
B.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
C.break語句只能用在循環(huán)體內和switch語句體內
D.在循環(huán)體內使用break語句和continue語句的作用相同
75.
76.有以下程序
77.
78.若變量已正確說明為int類型,要通過語句scanf("%d%d%d",&a,&b,&c);給a賦值3,b賦值5,c賦值8,不正確的輸入形式是
79.
80.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結果是()。A.1B.30C.1-2D.死循環(huán)
五、程序改錯題(1題)81.寫出下列程序的運行結果。
#include“stdio.h”
Main
{inta[]={1,2,3,-4,5};
intm,n,*p;p=&a[0];m=*(p+1);n=*(p+4);
printf(“%d%d%d”,*p,m,n);}
六、程序設計題(1題)82.請編寫一個函數proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數放在數組a中,通過n返回這些數的個數。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請勿改動main函數和其他函數中的任何內容,僅在函數proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個數
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.B
2.A在數據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數據庫系統(tǒng)階段。其中數據獨立性最高的階段是數據庫系統(tǒng)這一階段。數據庫系統(tǒng)階段用數據模型來表示復雜的數據,有較高的數據獨立性。數據庫系統(tǒng)為用戶提供了方便的用戶接口,用戶既可使用查詢語言或終端命令操作數據庫,也可以用程序方式來操作。數據庫管理系統(tǒng)提供了數據控制功能。
3.B程序中的*s%10是求余運算,分別是a、b、C的ASCIl碼值對10進行求余運算然后輸出,所以輸出的答案為789。r
4.A函數返回值為指針變量指向的數據,該數據已被定義為整型。故本題答案為A選項。
5.A
6.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。
7.B
8.B
9.C解析:轉義字符有1個\\\\、2個\\'、1個\\b,普通字符有3個a、3個c、3個d,共13個字符。
10.A解析:在C語言中,應當在定義函數時指定函數值的類型。凡不加類型說明的函數,默認按整型處理。在定義函數時對函數值說明的類型一般應該和return語句中的表達式類型一致。如果函數值的類型和return語句中的表達式類型不一致,則以函數值的類型為準,由系統(tǒng)自動進行轉換,即函數類型決定返回值的類型。
11.C解析:棧是一種后進先出表,選項C中,先出棧的是3,說明此時棧內必然有1,2,由于1先于2進淺,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。
12.B解析:本題考查函數的調用。函數fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數內有效;在主函數中的m指的是全局變量,其值為13,所以fun2(a,b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度產學研合作項目研發(fā)成果轉化與知識產權保護協議4篇
- 2024版軟件源碼授權保密協議范本
- 二手房私人交易協議模板2024版B版
- 2025年度新能源電池研發(fā)與采購安裝合同范本3篇
- 2025年度廠房修建與綠色建筑節(jié)能檢測服務合同4篇
- 2025年度智慧城市建設規(guī)劃與實施合同4篇
- 2025年度地理信息數據庫建設測繪合同4篇
- 2025年度企業(yè)培訓中心場地租賃及課程開發(fā)服務合同3篇
- 二零二五年度傳統(tǒng)煙酒品牌傳承保護協議
- 二零二五年度研學旅行安全保障及責任劃分合同
- 銀行2025年紀檢工作計劃
- 2024-2024年上海市高考英語試題及答案
- 注射泵管理規(guī)范及工作原理
- 山東省濟南市2023-2024學年高二上學期期末考試化學試題 附答案
- 大唐電廠采購合同范例
- 國潮風中國風2025蛇年大吉蛇年模板
- GB/T 18724-2024印刷技術印刷品與印刷油墨耐各種試劑性的測定
- IEC 62368-1標準解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- 2024年中考語文名句名篇默寫分類匯編(解析版全國)
- 新煤礦防治水細則解讀
評論
0/150
提交評論