




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年山西省晉中市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下面程序的時(shí)間復(fù)雜為()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)
2.設(shè)二維數(shù)組A[1...m,1...n]按行存儲(chǔ)在數(shù)組B中,則二維數(shù)組元素A[i,j]在一維數(shù)組B中的下標(biāo)為()。A.A.n*(i-1)+jB.n*(i-1)+j-1C.i*(j-1)D.j*m+i-1
3.以下說法正確的是()。
A.數(shù)據(jù)項(xiàng)是數(shù)據(jù)的基本單位
B.數(shù)據(jù)元素是數(shù)據(jù)的最小單位
C.數(shù)據(jù)結(jié)構(gòu)是帶結(jié)構(gòu)的數(shù)據(jù)項(xiàng)的集合
D.一些表面上很不相同的數(shù)據(jù)可以有相同的邏輯結(jié)構(gòu)
4.有如下程序段
#include"stdio.h"
#include"string.h"
#defineN10
#defineM10
char*find(char(*a)[M],intn)
{char*q;inti;
q=a[0];
for(i=0;i<n;i++)
if(strcmp(a[i],q)<0)q=a[i];
returnq;}
main()
{chars[N][M]={"tomeetme","you","and","he","china"};
char*p;
intn=5;
p=find(s,n);
puts(p);}
則執(zhí)行后輸出的結(jié)果為A.A.heB.andC.youD.tomeetme
5.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)()。
A.getcharB.getcC.getsD.scanf
6.設(shè)有定義:floata=2,b=4,h=3;以下c語言表達(dá)式中與代數(shù)式(a+B)h計(jì)算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
7.以下選項(xiàng)中與“if(a==l)a=b;elsea++;”語句功能不同的switch語句是()。
A.switch(a){casel:a=b;break;default:a++;}
B.switch(a==l){case0:a=b;break;casel:a++;}
C.switch(a){default:a++;break;casel:a=b;}
D.switch(a==l){casel:a=b;break;case0:a++;}
8.程序設(shè)計(jì)的任務(wù)包括()。
A.編寫程序代碼并上機(jī)調(diào)試B.確定所用數(shù)據(jù)結(jié)構(gòu)C.確定所用算法D.以上選項(xiàng)均正確
9.在下列給出的表達(dá)式中,與while(E)中的(E)不等價(jià)的表達(dá)式是()。A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)
10.下列關(guān)于棧的描述中錯(cuò)誤的是()。A.棧是先進(jìn)后出的線性表B.棧只能順序存儲(chǔ)C.棧具有記憶作用D.對(duì)棧的插入與刪除操作中,不需要改變棧底指針
11.A[N][N]是對(duì)稱矩陣,將下面三角(包括對(duì)角線)以行序存儲(chǔ)到一維數(shù)組T[N(N+1)/2]中,則對(duì)任一上三角元素a[i][j]對(duì)應(yīng)T[k]的下標(biāo)k是()。
A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1
12.有如下嵌套的if語句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下選項(xiàng)中與上述if語句等價(jià)的語句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
13.下列敘述中正確的是()。
A.數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是一一對(duì)應(yīng)的
B.由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)
C.程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線性結(jié)構(gòu)
D.以上三種說法都不對(duì)
14.程序運(yùn)行后的輸出結(jié)果是()。A.3B.4C.5D.6
15.遞歸式的先序遍歷一個(gè)n節(jié)點(diǎn),深度為d的二叉樹,則需要??臻g的大小為()
A.O(logn)B.O(nlogn)C.O(n)D.O(d)
16.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
17.關(guān)于排序算法的以下說法,錯(cuò)誤的是()
A.歸并排序的平均時(shí)間復(fù)雜度O(nlogn),最壞時(shí)間復(fù)雜度O(n^2)
B.堆排序平均時(shí)間復(fù)雜度O(nlogn),最壞時(shí)間復(fù)雜度O(nlogn)
C.冒泡排序平均時(shí)間復(fù)雜度O(n^2),最壞時(shí)間復(fù)雜度O(n^2)
D.快速排序的平均時(shí)間復(fù)雜度O(nlogn),最壞時(shí)間復(fù)雜度O(n^2)
18.若串S=,software,其子串的數(shù)目是()。
A.8B.37C.36D.9
19.如下程序的時(shí)間復(fù)雜度為(其中m>1,e>0)A.logmB.m的平方C.m的1/2方D.m的1/3方
20.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績.,則表SC的關(guān)鍵字(鍵或碼)為()
A.課號(hào),成績B.學(xué)號(hào),成績C.學(xué)號(hào),課號(hào)D.學(xué)號(hào),姓名,成績
二、2.填空題(20題)21.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體"項(xiàng)目主管"與實(shí)體"項(xiàng)目"的聯(lián)系屬于【】的聯(lián)系。
22.有以下程序
main()
{intx=1,y=1,z=1;
y=y+z;x=x+y;
printf("%d",x<y?y:x);
printf("%d",x<y?x++:y++);
printf("%d",x);
printf("%d",y);
}
運(yùn)行結(jié)果是【】
23.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請(qǐng)?zhí)羁?,以完成?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。
【】t[20]
24.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是()。
25.實(shí)體之間的聯(lián)系可以歸結(jié)為一對(duì)一聯(lián)系、一對(duì)多(或多對(duì)多)的聯(lián)系與多對(duì)多聯(lián)系。如果一個(gè)學(xué)校有許多教師,而一個(gè)教師只歸屬于一個(gè)學(xué)校,則實(shí)體集學(xué)校與實(shí)體集教師之間的聯(lián)系屬于______的聯(lián)系。
26.下列程序的輸出結(jié)果是______。
#include<stdio.h>
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=1,b=8,c=7,d=9;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
27.隊(duì)列是限定在表的一端進(jìn)行插入和在另一端進(jìn)行刪除操作的線性表。允許插入的一端稱作______。
28.以下程序的輸出結(jié)果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
29.下面程序的輸出是【】。
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);
}
30.數(shù)據(jù)的獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,這稱為______。
31.四條語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
32.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
33.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
34.下列循環(huán)的循環(huán)次數(shù)是______。
ihtk=2;
while(k=0)
printf("%d",k);
k--;
printf("\n");
35.若線性表的長度經(jīng)常發(fā)生變化,那么該線性表應(yīng)采用的存儲(chǔ)結(jié)構(gòu)是【】。
36.與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是【】方法。
37.想通過以下輸入語句給x賦值2,給y賦值3,則輸入數(shù)據(jù)的形式應(yīng)該是______。
intx,y;
scanf("x=%d,y=%d",&x,&y);
38.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的______的集合。
39.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
40.度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。
三、1.選擇題(20題)41.有以下程序main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}執(zhí)行后輸出結(jié)果是
A.456B.258C.369D.789
42.若有“doublea;”,則正確的輸入語句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%lf",&a)
D.scanf("%le",&a);
43.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。
A.b=double(b);B.++b;C.a=a++=5;D.a=double(b);
44.執(zhí)行下面程序的結(jié)果是______。main(){intx=2;printf("%d\n",(x--,x<<1,x&&5));}
A.0B.1C.2D.編譯時(shí)有語法錯(cuò)誤,不能執(zhí)行
45.若執(zhí)行下列的程序時(shí),從鍵盤上輸入1和2,則輸出結(jié)果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
46.執(zhí)行以下程序后輸出的結(jié)果是______。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}
A.-1B.1C.8D.0
47.擁有PC機(jī)并以撥號(hào)方式接入網(wǎng)絡(luò)的用戶需要配置()
A.CD-ROMB.ModemC.電話機(jī)D.鼠標(biāo)
48.現(xiàn)代計(jì)算機(jī)之所以能自動(dòng)地連續(xù)進(jìn)行數(shù)據(jù)處理,主要是因?yàn)?)
A.采用了開關(guān)電路B.采用了半導(dǎo)體器件C.具有存儲(chǔ)程序的功能D.采用了二進(jìn)制
49.以下選項(xiàng)中合法的用戶標(biāo)識(shí)符是A.longB._2TestC.3DmaxD.A.dat
50.下面函數(shù)調(diào)用語句含有實(shí)參的個(gè)數(shù)為()。func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.3D.5
51.以下4組用戶定義標(biāo)識(shí)符中,全部合法的一組是()A._mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.intk_2_001
52.在下列選項(xiàng)中,沒有構(gòu)成死循環(huán)的是()。
A.inti=100;while(1){i=i%100+1;if(i>100)break;}
B.for(;;);
C.intk=10000;do{k++;}while(k>10000);
D.ints=36;while(s)--s;
53.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若運(yùn)行時(shí)從鍵盤上輸入:6,5,65,66<回車>。則輸出結(jié)果是
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
54.軟件調(diào)試的目的是______。
A.發(fā)現(xiàn)錯(cuò)誤B.改正錯(cuò)誤C.改善軟件的性能D.挖掘軟件的潛能
55.設(shè)p1和p2是指向同一個(gè)int型一維數(shù)組的指針變量,k為int型變量,則下列不能正確執(zhí)行的語句是_______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
56.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。
A.存儲(chǔ)在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲(chǔ)空間量C.數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示
57.設(shè)有變量說明int(*p)[m],其中的標(biāo)識(shí)符p是()。
A.m個(gè)指向整型變量的指針
B.指向m個(gè)整型變量的指針
C.一個(gè)指向具有m個(gè)整型元素的一維數(shù)組的指針
D.具有m個(gè)指針元素的一維指針數(shù)組,每個(gè)元素都指向整型變量
58.下列程序的輸出結(jié)果為______。main(){intp,y=0,x=0;p=x<<8|~y>>8;printf("%d",p);p+=(p+=2);printf("%d\n",p);}
A.-10B.00C.04D.-12
59.在說明語句int*f();中,標(biāo)識(shí)符f代表的是______。
A.一個(gè)用于指向整型數(shù)據(jù)的指針變量
B.—個(gè)用于指向—維數(shù)組的行指針
C.—個(gè)用于指向函數(shù)的指針變量
D.一個(gè)返回值為指針型的函數(shù)名
60.已知學(xué)生記錄描述為:structstudent{intno;charname[20],sex;struct{intyear,month,day;}birth;};structstudents;設(shè)變量s中的“生日”是“1984年11月12日”,對(duì)“birth”正確賦值的程序段是()。
A.year=1984;month=11;day=12;
B.s.year=1984;s.month=11;s.day=12;
C.birth.year=1984;birth.month=11;birth.day=12;
D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;
四、選擇題(20題)61.
有以下結(jié)構(gòu)說明和變量定義,指針p、q、r分別指向鏈表中的3個(gè)連續(xù)結(jié)點(diǎn)。
structnode
{intdata;structnode*next;)*p,*q,*r;
現(xiàn)要將q所指結(jié)點(diǎn)從鏈表中刪除,同時(shí)要保持鏈表的連續(xù),以下不能按要求完成操作的語句是()。
A.p->next=q->next;
B.P-next=P->next->next;
C.p->next=r;
D.p=q->next;
62.設(shè)在C語言中,float類型數(shù)據(jù)占4個(gè)字節(jié),則double類型數(shù)據(jù)占()個(gè)字節(jié)。
A.1B.2C.8D.4
63.
有以下程序:
main
{union
{charch[2];
intd;
}s;
d=0x4321;
printf("%x,%x\n",S.ch[0],S.ch[l]);
}
在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是()
A.21,43B.43,21C.43,00D.21,00
64.有如下程序:
則b的值是()。
A.15B.16C.18D.19
65.有以下程序:
voidmain()
{inta=1,b=2,m=0,n=0,k;
k=((n=b>a)+b)‖(m=a<b);
printf("%d,%d\n",k,m);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.0,0B.0,1C.1,0D.1,1
66.對(duì)字符數(shù)組s賦值,不合法的一個(gè)是()。
A.chars[]="Beijing"
B.chars[20]={"Beijing"}
C.chars[20];s="Beijing"
D.chars[20]={’B,’e’,’i’,’j’,’i’,’n’,’g’}
67.
68.以下對(duì)二維數(shù)組a進(jìn)行正確初始化的是()
A.inta[2][3]={{1,2},{3,4},{5,6}};
B.inta[][3]={1,2,3,4,5,6};
C.inta[2][]={1,2,3,4,5,6};
D.inta[2][]={{1,2},{3,4}};
69.
70.以下敘述中錯(cuò)誤的是()。
A.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個(gè)整數(shù)作為地址值.
D.當(dāng)在程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL
71.下列程序段的輸出結(jié)果是
inta=1234;
floatb=123.456;
doublec=12345.54321;
printf("%2d,%2.1f,%2.1f",a,b,c);
A.無輸出B.12,123.5,12345.5
C.1234,123.5,12345.5D.1234,123.4,12345.5
72.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。、
A.ABEFB.CDEFC.ABCDD.CDAB
73.以下結(jié)構(gòu)體類型說明和變量定義中正確的是()。
74.樹是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是()。
A.有且只有1B.1或多于1C.0或1D.至少2
75.
76.若k是int類型變量,且有以下for語句:
for(k=-1;k<O;k++)printf("****\n");
下面關(guān)于語句執(zhí)行情況的敘述中正確的是()。、
A.循環(huán)體執(zhí)行一次
B.循環(huán)體執(zhí)行兩次
C.循環(huán)體一次也不執(zhí)行
D.構(gòu)成無限循環(huán)‘
77.
78.有兩個(gè)關(guān)系R和T如下:
則由關(guān)系R得到關(guān)系T的操作是()。A.選擇B.投影C.交D.并
79.
80.在執(zhí)行完下列的c語句段之后,則B的值是()。chara=A;intb;B=((34&&56)&&(a<b));A.0B.1C.TRUED.FALSE
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:將s所指字符串的正序和反序進(jìn)行連接,形成的新串放在t所指的數(shù)組中。例如,當(dāng)S所指字符串為“ABCD”時(shí),t所指字符串中的內(nèi)容應(yīng)為“ABCDDCBA”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)proc(),它的功能是:比較2個(gè)字符串的長度(不得調(diào)用C語言中求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若2個(gè)字符串長度相等,則返回第1個(gè)字符串。例如,若輸入jiangxi<;Enter>;beijing<;Enter>;則函數(shù)返回jiangxi。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:
參考答案
1.B
2.A
3.D
4.B在本題中,首先定義了兩個(gè)宏N和M,大小都為10,然后定義了一個(gè)返回指針的函數(shù)find,該函數(shù)帶有兩個(gè)形參,第一個(gè)為字符型的指針數(shù)組,第二個(gè)為整型變量,在函數(shù)體中,首先定義了一個(gè)指針變量q,并將形參中指針數(shù)組的第一個(gè)元素賦值給q,然后執(zhí)行for循環(huán),在循環(huán)體中,首先執(zhí)行條件判斷語句,其條件為strcmp(a[i],q)<0(strcmp函數(shù)的作用是比較兩字符串的大小,如果相等,則返回0值,如果參數(shù)中的第一個(gè)字符串大,則返回正值,否則返回負(fù)值),如果結(jié)果為真,說明指針數(shù)組當(dāng)前元素所指向的字符串比q所指向的字符串小,此時(shí),程序執(zhí)行將當(dāng)前指針數(shù)組元素賦值給p,最后返回p,通過上面的分析我們可以看出,find函數(shù)的作用是找出指針數(shù)組中各元素所指向字符串的最小字符串。
在主函數(shù)中,定義了一個(gè)二維數(shù)組s,并賦了初值,然后定義一個(gè)指針變量p,用來存放函數(shù)find的返回值。調(diào)用函數(shù)find的參數(shù)分別為s和5,結(jié)合形參看find函數(shù),不難知道調(diào)用find函數(shù)就是找出二維數(shù)組s中各字符串中最小的字符串,那么應(yīng)該為and。此時(shí),指針變量p指向字符串“and”的首地址,然后執(zhí)行puts(p),完成該字符串的輸出。因此,本題正確的答案是B。
5.C當(dāng)輸入字符串時(shí),函數(shù)scanf用“空格”間隔不同的字符串,scanf函數(shù)不能輸入空格。getchar函數(shù)用于輸入字符,其調(diào)用形式為ch=getchar(),getehar函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶按<Enter>鍵時(shí),讀入才開始執(zhí)行。gets函數(shù)的調(diào)用形式為getS(Str_adr),其中“str_adr”是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc函數(shù)的調(diào)用形式為ch=getc(Pf),其中“pf”是文件指針,函數(shù)的功能是從“pf”指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。故本題答案為C選項(xiàng)。
6.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
7.B題中當(dāng)a的值為l時(shí),關(guān)系表達(dá)式a==l的值為真,即1,因此程序?qū)⑻D(zhuǎn)到easel執(zhí)行a++操作,與題干程序剛好相反。
8.D程序設(shè)計(jì)是一門技術(shù),需要相應(yīng)的理論、技術(shù)、方法和工具來支持。程序設(shè)計(jì)的任務(wù)包括選項(xiàng)A)、B)、c)等方面。
9.B在while(E)中,表達(dá)式E可以是C語言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項(xiàng)8中表達(dá)式E>0||E<0是一個(gè)邏輯表達(dá)式。
10.B棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點(diǎn)是先進(jìn)后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)。
11.B
12.C條件運(yùn)算符(?:)是C語言中唯一的一個(gè)三目運(yùn)算符,它是對(duì)第一個(gè)表達(dá)式做真/假檢測(cè),然后根據(jù)結(jié)果返回兩個(gè)表達(dá)式中的一個(gè)作為運(yùn)算的結(jié)果。<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>。在運(yùn)算中,首先對(duì)第一個(gè)表達(dá)式進(jìn)行檢驗(yàn),如果為真,則返回表達(dá)式2的值;如果為假,則返回表達(dá)式3的值。
13.D解析:一般來說,一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)不一定是一一對(duì)應(yīng)的。選項(xiàng)A中的說法是錯(cuò)誤的。雖然計(jì)算機(jī)的存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),但由于一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),例如,線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。一般來說,性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的。因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不一定是線性結(jié)構(gòu)。選項(xiàng)B中的說法也是錯(cuò)誤的。雖然程序設(shè)計(jì)語言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),但是,利用數(shù)組也能處理非線性結(jié)構(gòu)。例如,滿二叉樹與完全二叉樹是非線性結(jié)構(gòu),但對(duì)于滿二叉樹與完全二叉樹來說,根據(jù)完全二叉樹的性質(zhì)6,可以按層序進(jìn)行順序存儲(chǔ),即利用程序設(shè)計(jì)語言中的數(shù)組來存儲(chǔ),這樣,不僅節(jié)省了存儲(chǔ)空間,又能方便地確定每一個(gè)結(jié)點(diǎn)的父結(jié)點(diǎn)與左右子結(jié)點(diǎn)的位置。對(duì)于一般的二叉樹來說,也可以將二叉樹中每一個(gè)結(jié)點(diǎn)的左指針、右指針以及數(shù)據(jù)域分別用三個(gè)數(shù)組中的對(duì)應(yīng)元素來存儲(chǔ),即實(shí)際上也是利用了程序設(shè)計(jì)語言中的數(shù)組來處理二叉樹這樣的非線性結(jié)構(gòu)。選項(xiàng)C中的說法也是錯(cuò)誤的。綜上所述,選項(xiàng)A、B與C中的說法都是錯(cuò)誤的。
14.B[解析]&按位與,如果兩個(gè)相應(yīng)的二進(jìn)制位都為1.則該位的結(jié)果值為1.否則為0.按位或兩個(gè)相應(yīng)的二進(jìn)制位中只要有一個(gè)為1.該位的結(jié)果值為1.2的二進(jìn)制為0000010.4的二進(jìn)制為000000所以做或運(yùn)算結(jié)果為0000110.該數(shù)與5即00000101做與操作結(jié)果為0000100.即4.
15.D
16.C程序首先定義整型變量a和b,a的初值為123456。接著通過while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過switch語句判斷b的值執(zhí)行對(duì)應(yīng)分支語句。所以對(duì)應(yīng)a的每個(gè)個(gè)位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時(shí),執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時(shí),執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時(shí),執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時(shí),執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時(shí),執(zhí)行case2輸出2,通過break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。
17.A
18.B
19.A
20.C學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C項(xiàng)。
21.一對(duì)多(或1∶N)一對(duì)多(或1∶N)解析:兩個(gè)實(shí)體集間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有3種,即一對(duì)一(1∶1)的聯(lián)系、一對(duì)多(1∶N)或多對(duì)一(N∶1)的聯(lián)系和多對(duì)多(N∶N)的聯(lián)系。
22.3233
23.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項(xiàng)表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
24.層次模型層次模型解析:層次模型是最早發(fā)展起來的數(shù)據(jù)庫模型。層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu)。
25.一對(duì)多或1:N。一對(duì)多或1:N。
26.7979解析:因?yàn)樵谡{(diào)用子函數(shù)時(shí)進(jìn)行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實(shí)參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。
27.隊(duì)尾隊(duì)尾解析:在隊(duì)列中,允許插入的一端叫做“隊(duì)尾”,允許刪除的一端叫做“隊(duì)頭”。
28.2222解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個(gè)成員進(jìn)行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]...b[9]的值相加,結(jié)果為22。
29.1212解析:本題首先通過第一個(gè)for語句把0~9(包含0和9)間的整數(shù)依次賦值給數(shù)組arr,第二個(gè)for語句用于實(shí)現(xiàn)將滿足條件的數(shù)組元素與對(duì)應(yīng)的下標(biāo)值求和并累加,并用變量k保存。
30.物理獨(dú)立性物理獨(dú)立性解析:數(shù)據(jù)的獨(dú)立性是指數(shù)據(jù)和應(yīng)用程序相互獨(dú)立,分為物理獨(dú)立性和邏輯獨(dú)立性。其中物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)、存取方式)改變時(shí),不需要修改應(yīng)用程序。而邏輯獨(dú)立性是指當(dāng)邏輯結(jié)構(gòu)改變時(shí),不需要修改應(yīng)用程序。
31.x+=1;x+=1;解析:題面中的四條語句的作用是使x的值加1,在C中有多種方法可以對(duì)變量進(jìn)行加1操作,這里可以利用C的復(fù)合賦值運(yùn)算符+=實(shí)現(xiàn),本題答案為x+=1;。
32.3131解析:在函數(shù)調(diào)用時(shí),形參值和改變,不會(huì)改變實(shí)參的值。
33.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒有特別說明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。
34.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會(huì)使k為0,所以不能進(jìn)入循環(huán)。
35.鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
36.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是結(jié)構(gòu)化設(shè)計(jì)方法。結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分以及各個(gè)成分之間的內(nèi)部聯(lián)系的技術(shù)。
37.x=2y=3。x=2,y=3。解析:使用scanf函數(shù)輸入數(shù)據(jù),普通字符必須原樣輸入,本題的普通字符為'x'、'='、','、'y'正確的輸入格式是x=2,y=3。
38.軟件工具軟件工具解析:軟件開發(fā)環(huán)境是各類軟件開發(fā)工具的集合體。
39.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。
40.4545解析:對(duì)于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
41.C解析:本題考核的知識(shí)點(diǎn)是二維數(shù)組的定義,賦值及數(shù)組元素的引用。變量k的初值為2,循環(huán)執(zhí)行了3次,分別輸出m[2][0]、m[2][1]和m[2][2],其值分別為3,6,9。所以,C選項(xiàng)為所選。
42.D解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,例如變量a的地址為“&a”。
43.B解析:要解答此題只要知道兩個(gè)知識(shí)點(diǎn):①在C語言中規(guī)定進(jìn)行強(qiáng)制類型轉(zhuǎn)換的格式是:(double)變量名;②在C語言中不允許給表達(dá)式賦值。
44.B解析:逗號(hào)表達(dá)式x--,x<<1,x&&5先執(zhí)行x--,x的值為1,再執(zhí)行x<<1,表達(dá)式的值為2,但x的值仍是1(不是移位賦值表達(dá)式),最后執(zhí)行x&&5,二者均不為0,邏輯與的結(jié)果是1。
45.B解析:本題考查if語句。scanf函數(shù)通過鍵盤讀入a、b的值,a=1,b=2。第一個(gè)if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則s=b=2,s=s*s=4。
46.D解析:do-while語句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立,當(dāng)循環(huán)條件的值為0時(shí)循環(huán)結(jié)束。當(dāng)y=0時(shí)循環(huán)結(jié)束,printf('%d\\n',y-)語句是先輸出y再自減,所以輸出結(jié)果為0。
47.B
48.C
49.B解析:本題考查C語言標(biāo)識(shí)符的命名.在C語言中,合法的標(biāo)識(shí)符由字母,數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或者下劃線,long為C語言的保留字,不能作為用戶標(biāo)識(shí)符,故選頃A錯(cuò)誤.3Draax開頭的第一個(gè)為數(shù)字,而C語言規(guī)定,第一個(gè)字符必須為字母或者下劃線,故選項(xiàng)C錯(cuò)誤;A.dat中的字符“.”不符合C語言中用戶標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成的規(guī)定,故選項(xiàng)D錯(cuò)誤.只有迭項(xiàng)B正確。
50.B
51.A解析:標(biāo)識(shí)符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列(例如,-max含非法字符-),并且用戶標(biāo)識(shí)符不能與C語言中的32個(gè)關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識(shí)符)。選項(xiàng)B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項(xiàng)B不正確;選項(xiàng)C中3COM不是由字母或下劃線開頭,故選項(xiàng)C不正確;選項(xiàng)D中int為C語言中的關(guān)鍵字,故選項(xiàng)D不正確;選項(xiàng)A中全部為合法的標(biāo)識(shí)符,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
52.D解析:選項(xiàng)A)的循環(huán)表達(dá)式條件永久為1,由于小于100的數(shù)與100取余不超過99,所以在循環(huán)體內(nèi)表達(dá)式i%100+1的值永遠(yuǎn)不大于100,break語句永遠(yuǎn)不會(huì)被執(zhí)行,所以是死循環(huán);選項(xiàng)B)的括號(hào)內(nèi)沒有能使循環(huán)終止的條件,是死循環(huán);選項(xiàng)C)中先執(zhí)行k++,使k=10001,陷入死循環(huán);選項(xiàng)D)中的s從36開始,每循環(huán)一次就減小1,直到s為0,循環(huán)結(jié)束,不會(huì)構(gòu)成死循環(huán)。
53.A解析:主函數(shù)中首先定義了4個(gè)字符變量a、b、cd,然后通過scanf()函數(shù)輸入a、b、c、d輸入中a和b是按字符格式c輸入的,c和d是按整型符號(hào)d輸入的。在看下面的printf()函數(shù)中,要求a、b、c、d都按字符輸出,故a和b原樣輸出為6、5,c和d將把與其ASCII碼對(duì)應(yīng)的字符輸出,65和66的ASCII碼對(duì)應(yīng)字符A和B,故最后的輸出為6,5,A,B。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合愿意。
54.B解析:在對(duì)程序進(jìn)行測(cè)試時(shí)會(huì)發(fā)現(xiàn)錯(cuò)誤,這就要進(jìn)行程序調(diào)試(排錯(cuò))。程序調(diào)試活動(dòng)由三部分組成:一是錯(cuò)誤定位,根據(jù)錯(cuò)誤的外部表現(xiàn)形式,確定程序中出錯(cuò)的位置,找出錯(cuò)誤的內(nèi)在原因;二是對(duì)程序進(jìn)行修改,排除這個(gè)錯(cuò)誤;三是進(jìn)行回歸測(cè)試,防止引進(jìn)新的錯(cuò)誤。所以程序調(diào)試的目的就是診斷和改正程序中的錯(cuò)誤。軟件調(diào)試不能改善軟件的性能,也不能挖掘軟件的潛能。
55.B解析:指針變量中只存放地址(指針),不要將—個(gè)整型量(或任何其他非地址類型的數(shù)據(jù))賦給—個(gè)指針變量,所以B是不正確的。
56.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的物理實(shí)現(xiàn),有時(shí)也稱作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學(xué)關(guān)系。存儲(chǔ)結(jié)構(gòu)則涉及到如何在計(jì)算機(jī)中通過對(duì)數(shù)據(jù)的物理存儲(chǔ)進(jìn)行組織來表達(dá)數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲(chǔ)中是利用物理存儲(chǔ)空間上的連續(xù)性來表達(dá)線性表中數(shù)據(jù)的前后件關(guān)系;在線性表的鏈?zhǔn)酱鎯?chǔ)中是通過指針域構(gòu)成的邏輯鏈條來表達(dá)數(shù)據(jù)的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對(duì)應(yīng)的物理實(shí)現(xiàn),即數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不止一種。因此選項(xiàng)D正確。
57.C解析:本題考查指向數(shù)組的指針變量的聲明。這里的p表示一個(gè)指向數(shù)組的指針;*p表示指針p指向地址的內(nèi)容。
58.D
59.D解析:帶回指針值的函數(shù),其—般定義形式為:
類型標(biāo)識(shí)符*函數(shù)名(參數(shù)表);
例如,int*f(x,y);
其中,f是函數(shù)名,調(diào)用它以后能得到—個(gè)指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運(yùn)算符和()預(yù)算符,而()優(yōu)先級(jí)高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個(gè)函數(shù)前面有一個(gè)*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。
60.D解析:本題考查結(jié)構(gòu)體變量的基本概念。引用結(jié)構(gòu)體成員的方式為:
結(jié)構(gòu)體變量名.成員名
“.”是“成員運(yùn)算符”(分量運(yùn)算符),如果成員本身又是一個(gè)結(jié)構(gòu)體類型,則要用若干個(gè)成員運(yùn)算符,一級(jí)一級(jí)地找到最低一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中歷史課時(shí)訓(xùn)練3近代中國對(duì)民主的理論探索人民版選修2
- 監(jiān)理細(xì)則解讀與實(shí)踐經(jīng)驗(yàn)總結(jié)
- 北京市律師聘用合同(32篇)
- 新郎婚禮的致辭400字(28篇)
- 2025年中國儲(chǔ)能電池系統(tǒng)行業(yè)市場(chǎng)深度研究及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 關(guān)于禁毒的發(fā)言稿(3篇)
- 師德建設(shè)主題活動(dòng)方案(3篇)
- 福州自動(dòng)化立體倉庫生產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2025年度物流園區(qū)運(yùn)營管理服務(wù)合同
- 2020-2025年中國廣西酒店行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 巴西介紹課件
- 四年級(jí)上冊(cè)語文教學(xué)工作總結(jié)
- 非車險(xiǎn)-企財(cái)險(xiǎn)
- 智慧車站方案提供智能化的車站管理和服務(wù)
- 酬金制物業(yè)管理簡介
- 路面彎沉溫度修正系數(shù)
- 2023年汽車修理工(高級(jí))考試試題庫附答案
- 甲狀腺功能減退癥健康宣教
- 高清精美中國地圖(英文版)
- 預(yù)付卡盈利模式淺析
- 委托辦理公證委托書(6篇)
評(píng)論
0/150
提交評(píng)論