




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年遼寧省撫順市全國計算機等級考試C語言程序設(shè)計預測試題(含答案)學校:________班級:________姓名:________考號:________一、單選題(20題)1.有以下程序#include<stdio.h>main(){char*s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII碼值為65。程序運行后的輸出結(jié)果是A.5670B.656667C.567D.ABC
2.有三個關(guān)系R、S和T如下:由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.交C.除D.并
3.以下關(guān)于注釋的敘述中錯誤的是()。
A.注釋的邊界符號“/”和“*”之間不允許加入空格
B.C語言允許注釋出現(xiàn)在程序中任意合適的地方
C.注釋的內(nèi)容僅用于閱讀,對程序的運行不起作用
D.注釋的邊界符號“/*”和“*/”必須成對出現(xiàn)且可以嵌套
4.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈式存儲結(jié)構(gòu)
5.健壯的算法不會因非法的輸入數(shù)據(jù)而出現(xiàn)莫名其妙的狀態(tài)()
A.對B.錯
6.
7.
8.在一個單鏈表HL中,若要在指針q所指結(jié)點的后面插入一個由指針p所指向的結(jié)點,則執(zhí)行____。
A.q一>next=p一>next;p一>next=q;
B.q一>next=p一>next;p一>next=q;
C.p一>next=q一>next;q=p;
D.p一>next=q一>next;q一>next=p;
9.
10.算法能正確地實現(xiàn)預定功能的特性稱為算法的()。
A.正確性B.易讀性C.健壯性D.高效率
11.如果樹的的結(jié)點A有4個兄弟,而且B為A的雙親,則B的度為()。
A.3B.4C.5D.1
12.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
13.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序的運行結(jié)果是()。
A.1,1,2,0B.0,0,0,3C.編譯有錯D.0,1,2,0
14.下面哪種排序的平均比較次數(shù)最少()
A.插入排序B.選擇排序C.堆排序D.快速排序
15.若有以下說明和定義:則對函數(shù)fun的正確調(diào)用語句是()。A.(*a)(&c);B.a=a(x);C.b=*b(x);D.fun(b);
16.
17.下列能正確定義且賦初值的語句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
18.有以下程序
prt(int*m,intn)
{
inti;
for(i=0;i<n;i++)
m[i]++;
}
main()
{
inta[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序運行后的輸出結(jié)果是A.A.1,2,3,4,5,
B.3,4,5,6,7,
C.2,3,4,5,6,
D.2,3,4,5,1,
19.設(shè)變量P是指針變量,語句P=NULL;是給指針變量賦NULL值,它等價于()。A.A.p="";
B.p="0";
C.p=0;
D.p="";
20.一棵完全二叉樹中根結(jié)點的編號為1,而且23號結(jié)點有左孩子但沒有右孩子,則完全二叉樹總共有____個結(jié)點。
A.24B.45C.46D.47
二、2.填空題(20題)21.以下程序的輸出結(jié)果是______。
main()
{inta=0;
a+-(a=8);
printf("%d\n",a);
}
22.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。
23.若有如下程序:
sub(int*y)
{while(--(*y));
printf("%d",(*y)--);}
main()
{intx=10;
sub(&x);
}
則程序運行后的輸出結(jié)果是【】。
24.下列程序段的輸出結(jié)果是______。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':printf("good");break;
case'c':printf("morning");
case'd':printf("class");
}
25.設(shè)有以下程序:
main()
{inta,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1=&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
執(zhí)行該程序后,a值為【】,b值為【】。
26.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
27.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整型數(shù)據(jù),成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
structnode
}intinfo;
【】link;
};
28.在一棵二叉樹上第6層的結(jié)點個數(shù)最多是______個。
29.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
30.在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。
31.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。
32.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
33.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
34.以下程序的功能是:將輸入的正整數(shù)按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
35.執(zhí)行以下程序后的輸出結(jié)果是()。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",A);
36.下面程序的運行結(jié)果是()。
#defineEXCH(a,B){intt;t=a;a=b;b=t;}
main()
{intx=1,y=2;
EXCH(x,y);
printf("x=%d,y=%d\n",x,y);
}
37.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
38.下列程序的輸出結(jié)果是______。
main()
{inta=1,b=2,c=3,t=0;
if(a<B){t=a;a=b;b=t;}
if(a<C){t=a;a=c;c=t;}
printf("%d,%d,%d\n",a,b,C);
}
39.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。
40.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
42.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運行后的輸出結(jié)果是
A.錯誤信息B.666C.888D.666,888
43.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N-SD.DFD
44.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。
A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯
45.以下程序的輸出結(jié)果是()structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60&dt[0],60,&dt[0]};main(){p=aa;printf("%d\n",++(p->x));}
A.10B.11C.51D.60
46.若k是int型變量,且有下面程序片段:k=-3;if(k<=0)printf("####")elseprintf("&&&&")上面程序片段的輸出結(jié)果是()
A.####
B.&&&&
C.###&&&&
D.有語法錯誤,無輸出結(jié)果
47.若變量c為char類型,能正確判斷出c為小寫字母的表達式是______。
A.'a'<=c<='z'
B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)
D.(c>='a')&&(c<='z')
48.設(shè)有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是
A.struct結(jié)構(gòu)體類型的關(guān)鍵字
B.example是結(jié)構(gòu)體類型名
C.x,y,z都是結(jié)構(gòu)體成員名
D.structex是結(jié)構(gòu)體類型名
49.有以下程序
#include<stdio.h>
main()
{FILE*fp;intk,n,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w");
fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);
fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);
fclose(fp);
fp=fopen("d2.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);
fclose(fp);
}
程序運行后的輸出結(jié)果是
A.12B.14C.1234D.123456
50.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運行后的輸出結(jié)果是______。
A.運行后報錯B.66C.611D.510
51.下列說法錯誤的是()。
A.下列結(jié)構(gòu)體定義時,占據(jù)了5個字節(jié)的空間structstudent{intnum;intage;charsex;}
B.結(jié)構(gòu)體的成員名可以與程序中的變量名相同
C.對結(jié)構(gòu)體中的成員可以單獨使用,它的作用相當于普通變量
D.結(jié)構(gòu)體可以嵌套定義
52.軟件需求分析一般應(yīng)確定的是用戶對軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
53.數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是()
A.概念設(shè)計和邏輯設(shè)計B.模式設(shè)計和內(nèi)模式設(shè)計C.內(nèi)模式設(shè)計和物理設(shè)計D.結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計
54.下列程序的輸出結(jié)果是______。main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}
A.-11B.01C.10D.0
55.下列敘述中,正確的是______。
A.軟件就是程序清單B.軟件就是存放在計算機中的文件C.軟件應(yīng)包括程序清單及運行結(jié)果D.軟件包括程序和文檔
56.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
57.下列關(guān)于棧的敘述中正確的是
A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧足先進先出的線性表D.棧是先進后出的線性表
58.有以下程序:#include<stdio,h>#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);
A.64,28B.4,4C.4,3D.64,64
59.設(shè)有定義:inta=2,b=3,c=4;,則下列選項中值為0的表達式是()。
A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)
60.有以下程序main(){inta=i,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",B);}程序運行后的輸出結(jié)果是
A.3B.4C.5D.6
四、選擇題(20題)61.以下敘述中錯誤的是()。A.c程序在運行過程中所有計算都以十進制方式進行
B.c程序在運行過程中所有計算都以二進制方式進行
C.所有C程序都需要編譯鏈接無誤后才能運行
D.c程序中字符變量存放的是字符的ASCIl值
62.耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標準。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
C.耦合性是指-個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
63.
64.若要求從鍵盤讀人含有空格字符的字符串,應(yīng)使用函數(shù)()。
A.getc()B.gets()C.getchar()D.scanf()
65.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。
A.廣播電視是一種雙向的、點到多點的信息交互系自
B.網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的系統(tǒng)
C.電話是一種雙向的、點對點的、以信息交互為主要的的系統(tǒng)
D.雷達是一種以感測和識別為主要目的的系統(tǒng)
66.以下說法錯誤的是A.A.高級語言都是用接近人們習慣的自然語言和數(shù)學語言作為語言的表達形式
B.計算機只能處理由0和1的代碼構(gòu)成的二進制指令或數(shù)據(jù)
C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.EXE的二進制文件
D.每一種高級語言都有它對應(yīng)的編譯程序
67.
有下列程序:
#include<stdio.h>
main
{intx=0;
inty=0;
while(x<7&&++v)
{y--;
x++;}
printf("%d,%d",y,x);
}
程序的輸出結(jié)果是()。
A.0,7B.7,7C.0,6D.1,6
68.下列定義數(shù)組的語句中,正確的是()。
A.intN=10;intx[N]:
B.#defineNl0;intx[N];
C.intx[0..10];
D.intx[];
69.設(shè)有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項中,表達式的值為6的是()。
A.*(k+2)B.k+2C.*k+2D.*k+=2
70.棧和隊列的共同特點是()。
A.都是先進先出B.都是先進后出C.只允許在端點處插入和刪除元素D.沒有共同點
71.有以下程序:
程序運行后的輸出結(jié)果是()。
A.12B.14C.1234D.123456
72.以下敘述中正確的是()。A.在c語言中,預處理命令行都以‘‘#”開頭
B.預處理命令必須位于c源程序的起始位置
C.#include必須放在c程序的開頭
D.C語言的預處理不能實現(xiàn)宏定義和條件編譯的功能
73.有以下程序:
#include<stdio.h>
inta=1,b=2:
voidfunl(inta,intb)
{printf("%d%d",a,b);}
voidfun2()
{a=3;b=4;}
main()
{funl(5,6);fun2();
printf("%d%d\n",a,b);
}
程序運行后的輸出結(jié)果是()。
A.1256
B.5634
C.5612
D.3456
74.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是
A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)
75.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的
B.算法的時間復雜度與空間復雜度一定相關(guān)
C.算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
D.算法的時間復雜度是指執(zhí)行算法所需要的計算工作量
76.冒泡排序的時間復雜度為
A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
77.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEFGCHI和DBFEGACIH,則該二叉樹的后序遍歷為
A.DFGEBHICAB.DGEBHFCAIC.DFGEBIHCAD.DGEBFIHCA
78.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值
D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL
79.
對下述程序的判斷中,正確的是()。
#include<stdio.h>
main()
{char*p,s[256];
p=s;
while(strcmp(s,"theend"))
{printf("Inputthestrin9:");
gets(s);
while(*p)
putchar(*p++);
}}
A.此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止
B.此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終止
C.此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因為代碼有錯誤,程序不能正常工作
D.此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”為止,輸出連接在一起的字符串
80.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
五、程序改錯題(1題)81.下列給定程序中函數(shù)proc的功能是:取出長整型變量s中偶數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。例如,當s中的數(shù)為l23456789時,t中的數(shù)為2468。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,已知學生的記錄由學號和學習成績構(gòu)成,N名學生的記錄已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun(),該函數(shù)的功能是找出成績最高的學生記錄,通過形參將其返回主函數(shù)(規(guī)定只有一個最髙分)。已給出函數(shù)的首部,請完成該函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10typedefstructss/*定義結(jié)構(gòu)體*/{charnum[10];ints;}STU;fun(STUa[],STU*s){}voidmain(){STUa[N]={{“A01”,81},{“A02”,89},{“A03”,66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,80},{“A10”,71}},m;inti;system(“CLS”);printf(“****Theoriginaldata****”);for(i=0;i<N;i++)printf(“No=%sMark=%d\n”,a[i].num,a[i].s);fun(a,&m);printf(“****THERESULT****\n”);printf(“Thetop:%s,%d\n”,m.num,m.s);}
參考答案
1.C
2.C由圖所知,其中,C中只有一個屬性,是除操作。
3.D在編寫程序時可以在程序中加入注釋。在添加注釋時,注釋內(nèi)容必須放在符號“/*”和“*/”之間,“/*”和“*/”必須成對出現(xiàn),“/*”與“*/”之間不可以有空格,選項A正確;注釋可以用英文,可以用中文,可以出現(xiàn)在程序中任意合適的地方,選項B正確;注釋部分只適用于閱讀,對程序的運行不起作用,選項C正確;使用“/*”和“*/”的注釋之間不可再嵌套“/*”和“*/”,選項D錯誤。故本題答案為D選項。
4.C
5.A
6.D
7.C
8.D
9.D
10.A
11.C
12.A解析:定義數(shù)組時,沒有對s[1]進行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。
13.C本題中“if(a=1)b=1”與“elsed=3;”之間多了語句“c=2;”,所以會出現(xiàn)else語句的位置錯誤的編譯失敗提示。故本題答案為C選項。
14.D
15.A題干中,函數(shù)fun接收一個整型指針參數(shù),返回值為int類型。main函數(shù)首先定義一個函數(shù)指針a,將函數(shù)fun的地址賦給a,所以a是指向函數(shù)fun的指針,可以通過a調(diào)用函數(shù)fun。選項A中,通過a調(diào)用函數(shù)fun,可以使用(*a),接收的參數(shù)是整型變量c的地址,正確;選項B中,參數(shù)x是一個數(shù)組,錯誤;選項C中,調(diào)用b函數(shù),由于程序沒有給出函數(shù)b的定義,因此這里調(diào)用b是錯誤的,而且函數(shù)b是沒有參數(shù)的,這里調(diào)用b的時候傳入了參數(shù),所以C錯誤;選項D中,由于b是一個函數(shù),不能作為整型指針變量傳給fun函數(shù),因此D錯誤。本題答案為A選項。
16.A
17.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應(yīng)該為整數(shù),所以不對。
18.C用數(shù)組名作為函數(shù)實參時,不是把數(shù)組的值傳遞給形參,而是把實參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個數(shù)組就共同占用同一段內(nèi)存單元。本題通過“prt(a,5);”將數(shù)組a的首地址傳遞給了指針變量m,使指針變量m指向數(shù)組a的首地址,那么,對指針變量所指向的存儲單元的內(nèi)容的改變就是對數(shù)組a中的元素的改變。題中函數(shù)prt的作用是將指針變量m所指向的存儲單元中的元素值各加上1,故數(shù)組a中的值也隨之變化,所以。輸出的數(shù)組元素的值為2,3,4,5,6,。
19.C在C語言中null等價于數(shù)字0。
20.C
21.1616解析:在程序中首先將8賦值給變量a,然后在進行復合賦值運算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
22.log2n
23.00解析:while循環(huán)的條件為即當*y非零時執(zhí)行循環(huán),-(*y)先對*y的值減1,再使用*y的值,不再執(zhí)行while循環(huán)時最后*y的值為0,輸出函數(shù)中的(*y)--,是先使用*y的值再對*y減1,就是先輸出0。
24.morningclassmorningclass解析:本題考查了兩個知識點:①“++,--”運算后綴形式是先使用變量原來的值,使用完后再使其增1或減1;②在switch語句中,當n='c'時,執(zhí)行“case'c'”,輸出morning;因為此句中沒有break語句,因此接著執(zhí)行“case'd':”,輸出class,最終輸出結(jié)果為morningclass。
25.07
26.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。
27.struetnode*struetnode*解析:本題中的結(jié)構(gòu)類型名為struetnode,所以空白處應(yīng)填:structnode*,即定義一個指向自身的結(jié)構(gòu)體指針。
28.3232解析:根據(jù)二叉樹的性質(zhì),在二叉樹的第K層上,最多有2k-1個結(jié)點。所以,第6層的結(jié)點數(shù)最多為32。
29.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。
30.3131解析:設(shè)隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
31.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。
32.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
33.1212解析:本題的第—個for循環(huán)用于紿數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
34.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
35.a=14a=14解析:在“逗號表達式(表達式1,表達式2)”中,其運算方法是先求表達式1的值,然后求表達式2的值,整個逗號表達式的值是表達式2的值。首先3*5=15,a=10,a+4=14,最后輸出的運算結(jié)果為14。
36.x=2y=1
37.x+=1;
38.3123,1,2解析:分析程序,第一個if語句,a=1,b=2,控制條件a<b成立,則交換a、b的值,此時a=2,b=1。第二個if語句,a=2,c=3,控制條件a<c成立,則交換a、c的值,此時a=3,c=2。
39.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
40.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術(shù)運算的時候是用其相應(yīng)的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
41.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。
42.B解析:程序中的printf()函數(shù)的輸出格式部分只說明了一個%d,而輸出成員列表卻有兩個成員a和b,在這里將只輸出第一個成員a值為666,所以,4個選項中選項B符合題意。
43.D解析:需求分析常用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N-S(盒式圖)都是詳細設(shè)計的常用工具,不是需求分析的工具。
44.D解析:因為字符數(shù)組s1)中的數(shù)組名s表示的是一個地址常量。所以語句“s+=2;”不能將指針在當前位置的基礎(chǔ)上再向后移動兩位,因而程序編譯時出錯。
45.C
46.D
47.D解析:字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的,大寫字母A到Z是從65到90,小寫字母a到z是97到122,所以只要變量c大于a并且小于z就能保證其為小寫字母。
48.B解析:本題中,structex是結(jié)構(gòu)體類型名,ex-ample是結(jié)構(gòu)體變量名。
49.D解析:將有6個元素的整型數(shù)組分兩行輸出到一個文件中,因為輸出的都是數(shù)字并且每行都沒有分隔符,所以當再對其進行讀取操作時,每一行都會被認為是一個完整的數(shù),而換行符則作為它們的分隔符。
50.A解析:本題考核的知識點是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個一維數(shù)組a并初始化,由于定義該數(shù)組的時候省略了長度,因此該數(shù)組的長度為初始化時候賦初值的個數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個元素,而在程序中定義了一個指針q并讓它指向空,實際上程序并沒有在內(nèi)存中為指針q開辟存儲空間,這樣給q賦值不允許的,故該程序運行后報錯。所以,4個選項中選項A符合題意。
51.A解析:本題主要考查定義結(jié)構(gòu)體的幾個特點:①結(jié)構(gòu)的定義明確了結(jié)構(gòu)的組成形式,定義了一種C語言中沒有而用戶需要的新的數(shù)據(jù)類型。與其他的數(shù)據(jù)類型不同,在程序編譯的時候結(jié)構(gòu)的定義并不會使系統(tǒng)為該結(jié)構(gòu)分配內(nèi)存空間,只有在說明結(jié)構(gòu)變量時才分配內(nèi)存空間;②結(jié)構(gòu)體的成員名可以與程序中的變量名相同;⑧結(jié)構(gòu)體中的成員可以單獨使用,它的作用相當于普通變量;④結(jié)構(gòu)體可以嵌套定義。
52.DD?!窘馕觥寇浖枨蠓治鲋行枰獦?gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。
53.A解析:模式設(shè)計和內(nèi)模式設(shè)計是概念設(shè)計的兩種方法。物理設(shè)計是根據(jù)特定的計算機系統(tǒng),對數(shù)據(jù)的存儲結(jié)構(gòu)和存取方法進行設(shè)計,從而實現(xiàn)從邏輯結(jié)構(gòu)到物理結(jié)構(gòu)的轉(zhuǎn)換。從系統(tǒng)開發(fā)的角度來看,結(jié)構(gòu)特性設(shè)計和行為特性-設(shè)計是數(shù)據(jù)庫應(yīng)用系統(tǒng)所具有的兩個特性。結(jié)構(gòu)特性的設(shè)計,設(shè)計各級數(shù)據(jù)庫模式(靜態(tài)特性):行為特性的設(shè)計,改變實體及其特性,決定數(shù)據(jù)庫系統(tǒng)的功能(動態(tài)特性)。
54.C
55.D解析:軟件(software)是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。
56.A解析:在本題中k=n++,為后綴運算。根據(jù)其運算規(guī)則,首先n先加一,但n++表達式的值依然n原來的值,即k的值沒有改變。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達式和本題中表達式等價:選項B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達式和本題中表達式不等價:選項C中先計算表達式左邊的表達式++=N的值,執(zhí)行++n后,左邊的表達式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達式和本題中的表達式不等價;選項D中表達式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達式和本題中的表達式不等價。所以4個選項中A正確。
57.D解析:對??蛇M行插入和刪除數(shù)據(jù)的操作,但必須牢記插入和刪除數(shù)據(jù)都只能在棧頂,是一種特殊的線性表.所以棧是先進后出的線性表。
58.C解析:程序中i1=f(8)/f(4)宏替換后得到i1=(8*8)/(4*4),結(jié)果為4;i2=f(4+4)/f(2+2)宏替換后得到i2=(4+4*4+4)/(2+2*2+2),其結(jié)果為3。故本題輸出的值為4,3。
59.D解析:因為變量t的初始值等于1,經(jīng)過第一次dowhile循環(huán)中,執(zhí)行t=t-2這條語句一次,所以變量t的值為-1,判斷關(guān)系表達式t!=n是否成立,如果關(guān)系表達式成立,則執(zhí)行第二次循環(huán),再執(zhí)行t=t-2這條語句一次,所以變量t的值為-3,接著再判斷關(guān)系表達式t!=n是否成立,如果關(guān)系表達式成立,執(zhí)行第三次循環(huán),否則退出循環(huán)。由此可知,所以只要輸入變量n的值為負奇數(shù),則一定會使t==n成立,則退出dowhile循環(huán)。
60.B解析:在一個循環(huán)體中,若執(zhí)行到break則跳出循環(huán)體,執(zhí)行循環(huán)體后面第一條語句;若執(zhí)行到continue則開始下一次循環(huán)體的執(zhí)行。本題中a的初始值為1,在循環(huán)體中首先判斷a,如果>=8就用break跳出循環(huán),接下來的判斷語句a%2==1,是判斷a除以2的余數(shù)是否為1,即a是否為奇數(shù),是的話給a累加一個5,然后用continue開始下一次循環(huán).若兩個條件都不滿足就讓a自減一個3.因此第1次循環(huán)開始a為1不大于8,且是奇數(shù),所以a被累加5開始下一次循環(huán);第2次循環(huán)開始a為6不大于8,不是奇數(shù),所以a被減去3;第3次循環(huán)開始a為3不大于8,是奇數(shù),所以a被加上一個5;第4次開始a為8,滿足第一個條件跳出循環(huán)。b在第1次循環(huán)時等于1,以后每次累加1,所以最后輸出為4,選項B正確.
61.AC程序在運行過程中所有計算都以二進制方式進行,所以本題答案為A)。
62.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錯誤。
63.B
64.Bscanf語句用”空格”區(qū)別不同的字符串,遇到空格結(jié)束,所以不能讀人空格;getc與getchar語句不能用于字符串的讀入。
65.A廣播/電視是一種單向的、點對多點(面)的以信息傳遞為主要目的的系統(tǒng)。
66.C本題主要考查我們對C語言一些基礎(chǔ)知識的掌握情況。下面分別分析本題的四個選項。
由于高級程序設(shè)計語言具有可讀寫、可理解性好等特點,這就要求高級程序設(shè)計語言用接近人們習慣的自然語言和數(shù)學語言作為語言的表達形式,選項A的說法正確。
在計算機中,機器可以接受和處理的只能是由0和1組成的二進制代碼,用高級語言編寫的程序都需要經(jīng)過編譯和連接,使其轉(zhuǎn)化為二進制代碼才能被機器執(zhí)行。因此,選項B的說法正確。
C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個后綴為.EXE的可執(zhí)行文件。因此,選項C的說法不正確。
由于高級語言編寫的程序都需要經(jīng)過編譯和連接,才能被計算機執(zhí)行,因此,每一種高級語言都有它對應(yīng)的編譯程序,D選項的說法正確。
67.A
\n本題考查while循環(huán)。在while循環(huán)中,y自加每次循環(huán)都加l,在循環(huán)體內(nèi)y--每次減1,所以總的y值不變,當x自加到7時,不滿足循環(huán)條件,循環(huán)結(jié)束。
\n
68.D選項A、B中n為變量,C語言中不允許動態(tài)定義數(shù)組維數(shù),即維數(shù)不能是變量。選項C無此語法。
69.A本題考查數(shù)組和指針,*k指針是指向rn數(shù)組的首地址,所以要使表達武的值為6,只需要指針指向第m[2],所以答案選擇A。-
70.C解析:考查棧和隊列概念的掌握。棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進行插入或刪除操作,是一種'后進先出'的線性表;而隊列只允許在表的一端進行插入操作,在另一端進行刪除操作,是一種'先進先出'的線性表。模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。
71.D本題考查的是文件的綜合應(yīng)用。本題首先以創(chuàng)建方式打開文件”d2.dat”,兩次調(diào)用fprintf函數(shù)把a[O],a[1],a[2],a[3],a[4],a[5]的值寫到文件”d2.d8t”中,文件”d2.dat”的內(nèi)容為:1,2,3<回車>4,5,6。然后把該文件關(guān)閉再以只讀方式打開,文件位置指針指向文件頭,再通過fs-canf函數(shù)從中讀取兩個整數(shù)到k和n中,由于格式符之間無間隔,因此輸入數(shù)據(jù)可以用回車隔開,故輸入的k的值為123,n的值為456。
72.A預處理命令是以“#”號開頭的命令,它們不是c語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,因此B)、c)選項錯
73.B\nFunl是輸出局部變量的值,fun2是把全局變量的值改成3和4,所以輸出的結(jié)果是5634。
\n
74.D解析:本題考查的是do…while循環(huán)結(jié)構(gòu).do…while循環(huán)與while循環(huán)的區(qū)別就是,前者是先執(zhí)行
溫馨提示
- 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年度綠色環(huán)保型門面出租管理合同
- 二零二五年度房產(chǎn)過戶房地產(chǎn)廣告宣傳代理協(xié)議
- 2025年度焊工加工人才培養(yǎng)合同
- 二零二五年度事業(yè)單位合同模板:知識產(chǎn)權(quán)保護合作合同
- 酒店對客住宿2025年度免責協(xié)議書:尊享品質(zhì)與安全保障
- 二零二五年度廠房裝修工程監(jiān)理服務(wù)協(xié)議
- 客戶忠誠度計劃合同
- 出版協(xié)議履約金的支付
- 健身服務(wù)中介協(xié)議
- 2024年廣東深圳市龍崗坂田街道招考綜合網(wǎng)格員招聘筆試沖刺題(帶答案解析)
- 人力資源外包投標方案
- 利那洛肽治療便秘病例
- 部編版小學語文四年級下冊第二單元教材分析
- 2024年OTC焊接機器人基本操作培訓
- 參考消息電子版在線閱讀(角度區(qū))
- 小學五年級《美術(shù)》上冊知識點匯總
- 2024年湖南高速鐵路職業(yè)技術(shù)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 2016-2023年湖南鐵路科技職業(yè)技術(shù)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 2023南頭古城項目簡介招商手冊
- 機修知識培訓教材課件
評論
0/150
提交評論