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