




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年寧夏回族自治區(qū)吳忠市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義“doublea=22;inti=0,k=18;”,則不符合C語言規(guī)定的賦值語句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
2.指針可以用來表示數(shù)組元素,若已知語句:inta[3][7];則下列表示中正確的是()。
A.*(a+1)[5]B.*(*a+3)C.*(*(a+1))D.*(&a[0][0]+2)
3.若有定義“intw[3][5];”,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。
A.*(&w[0][0]+1)B.*(*w+3)C.*(*(w+1))D.*(w+1)[4]
4.設(shè)變量P是指針變量,語句P=NULL;是給指針變量賦NULL值,它等價于()。A.A.p="";
B.p="0";
C.p=0;
D.p="";
5.算法的時間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
6.以下涉及字符串?dāng)?shù)組、字符指針的程序段中,沒有編譯錯誤的是()。A.char*str,name[1];str=“Hello”;
B.char*str,name[1];name=“Hello”;
C.charstrl[10]=“ex1.c”,str2[6];str2=str1;
D.charhead_line[];head_line=“\\0”;
7.有一個有序表為{1,3,9,12,32,41,45,62,75,77,82,95,100},當(dāng)折半查找值為82的結(jié)點時,()次比較后查找成功。
A.11B.5C.4D.8
8.下列函數(shù)的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
9.若執(zhí)行以下程序時從鍵盤上輸入9,則輸出結(jié)果是()。main(){intn;scanf(”%d”,&n);if(n++<10)printf(”/%d\n”,n);elseprintf(”%d\n”,n--);}A.11B.10C.9D.8
10.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
11.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
12.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
13.
14.定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號、姓名、課程號、課程名、成績、學(xué)分)則對主屬性部分依賴的是()。
A.C#→CnB.(S#,C#)→GC.(S#,C#)→S#D.(S#,C#)→C#
15.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十進制代碼為97,則執(zhí)行上述程序段后輸出結(jié)果是()。A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
16.以下不正確的定義語句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
17.下面的哪一個保留字不能作為函數(shù)的返回類型()。
A.voidB.intC.newD.long
18.帶有頭節(jié)點的單向鏈表head,其3個數(shù)據(jù)節(jié)點A、B、C的連接關(guān)系如下圖所示:節(jié)點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節(jié)點,在不改變P指向的前提下,以下選項中不能訪問C節(jié)點數(shù)據(jù)成員dt的表達(dá)式是()。A.*(*p).next->next->dt
B.p->next->next->dt
C.(*(*(*p).next).next).dt
D.(*(p->next->next)).dt
19.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()
A.2和4B.1和5C.4和2D.5和1
20.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()
A.雙向鏈表B.帶鏈的棧C.二叉鏈表D.循環(huán)鏈表
二、2.填空題(20題)21.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);
}
22.以下程序的功能是【】。
main()
{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
intsum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf("sum=%6d",sum);
}
23.如果一個工人可管理多個設(shè)施,而一個設(shè)施只可被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在【】聯(lián)系。
24.以下程序的輸出結(jié)果是【】。
main()
{unsignedshorta=65536;intb;
printf("%d\n",b=A);
}
25.【】是數(shù)據(jù)庫設(shè)計的核心。
26.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。
27.以下程序用于判斷a、b、c能否構(gòu)成三角形,若能,輸出YES,否則輸出NO。當(dāng)給a、b、c輸入三角形三條邊長時,確定a、b、c能構(gòu)成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*abc能構(gòu)成三角形*/
elseprintf("NO\n");/*abc不能構(gòu)成三角形*/
}
28.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i=i;]
for(1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);}
29.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達(dá)式______。
30.下列程序的運行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
31.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
32.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。
c=(a-=(b-5));
c=(a%11)+(b=3);
33.以下程序中函數(shù)huiwen.的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出,所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁铡?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*P2;inti,t=0;
P1=str;p2=【】;
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(【】)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",【】);
}
34.在結(jié)構(gòu)化設(shè)計方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個______實際上對應(yīng)一個處理模塊。
35.數(shù)據(jù)字典是各類數(shù)據(jù)描述的集合,它通常包括5個部分,即數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、______和處理過程。
36.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算S,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請補全程序。
S=1-1/3+1/5-1/7+…+1/(2n+1)
voidfun(float*sn,intn)
{floats=0.0,w,f=-1.0;
inti=0;
for(i=0;i<=n;i++)
{f=【】*f;
w=f/(2*i+1);
s+=w;
}
【】=s;
}
37.若線性表的長度經(jīng)常發(fā)生變化,那么該線性表應(yīng)采用的存儲結(jié)構(gòu)是【】。
38.下列程序的運行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
39.下列程序的輸出結(jié)果是【】。
intt(intx,inty,intcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
40.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
三、1.選擇題(20題)41.以下4個選項中,不能被看作是一條語句的是______。
A.{;}B.a=0,b=0,c=0;C.if(a>O);D.if(b==0)m=1;n=2;
42.以下定義語句中正確的是
A.inta=b=0;
B.charA=65+1,b=′b′;
C.floata=1,*b=&a,*c=&b;
D.doublea=00;b=1.1;
43.數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進行的運算,以及()。A.A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計算方法C.數(shù)據(jù)映象D.邏輯存儲
44.若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價于表達(dá)式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
45.有以下程序:fun(inta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序運行后的輸出結(jié)果是
A.3B.6C.8D.12
46.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
47.字符(char)型數(shù)據(jù)在微機內(nèi)存中的存儲形式是______。
A.反碼B.補碼C.EBCDIC碼D.ASCII碼
48.以下程序的輸出結(jié)果是unionmyun{struct{intx,y,z;}u;intk;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d\n",a.u.x);}
A.4B.5C.6D.0
49.設(shè)有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。
A.輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出
B.運行時產(chǎn)生出錯信息
C.輸出值為2002
D.輸出值為2003
50.有以下程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運行后的輸出結(jié)果是()。
A.24B.28C.32D.36
51.以下程序段中,能夠通過調(diào)用函數(shù)fun,使main函數(shù)中的指針變量p指向一個合法的整型單元的是
A.main(){int*p;fun(p);┇}intfun(int*p){ints;p=&s;}
B.main(){int*p;fun(&p);┇}intfun(int**p){ints;*p=&s;}
C.#include<stdlib.h>main(){int*p;fun(&p);┇}intfun(int**p){*p=(int*)malloc(2);}
D.#include<stdlib.h>main(){int*P;fun(p);┇}intfun(int*p){p=(int*)malloc(sizeof(int));}
52.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法
A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標(biāo)
53.以下數(shù)據(jù)結(jié)構(gòu)中屬于線性數(shù)據(jù)結(jié)構(gòu)的是
A.集合B.線性表C.二叉樹D.圖
54.有下列函數(shù)定義:intfun(doublea,doubleb){returna*b;}若下列選項中所用變量都已正確定義并賦值,錯誤的函數(shù)調(diào)用是()。
A.if(fun(x,y)){……}
B.z=fun(fun(x,y),fun(x,y));
C.z=fun(fun(x,y)x,y);
D.fun(x,y);
55.關(guān)于指針概念,下列說法中,不正確的是______。
A.一個指針變量只能指向同一類型的變量
B.一個變量的地址稱為該變量的指針
C.只有同一類型變量的地址才能放到指向該類型變量的指針變量之中
D.指針變量可以由整數(shù)賦值,不能用浮點數(shù)賦值
56.下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是______。
A.max(intx,inty,int*z)
B.intmax(intx,y){*z=x>y?x:y;}{intz;z=x>y?X:y;returnz;}
C.max(intx,inty)
D.intmax(intx,inty){intz;{returnx>y?x:y;}z=x>y?x:y;return(z);}
57.下面四個選項中,均是不合法的用戶標(biāo)識符的選項是()。
A.AP_0doB.floatla0_AC.b-agotointD._123tempint
58.設(shè)有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則
A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達(dá)式是非法的D.程序段執(zhí)行無限次
59.以下關(guān)于邏輯運算符兩側(cè)運算對象的敘述中正確的是______。A.只能是整數(shù)0或1B.只能是整數(shù)0或非0整數(shù)C.可以是結(jié)構(gòu)體類型的數(shù)據(jù)D.可以是任意合法的表達(dá)式
60.請選出可用作C語言用戶標(biāo)識符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
四、選擇題(20題)61.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當(dāng)運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
62.
63.
64.閱讀下面程序,則執(zhí)行后的結(jié)果是()。
A.tomeetme
B.tmem
C.oete
D.tome
65.
則以下選項中錯誤的表達(dá)式是()。
A.
B.
C.
D.
66.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
67.
68.
69.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
70.以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯誤的,其錯誤原因是main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);}
A.*p表示的是指針變量p的地址
B.*p表示的是變量a的值,而不是變量a的地址
C.*p表示的是指針變量p的值
D.*p只能用來說明p是一個指針變量
71.
有以下結(jié)構(gòu)說明和變量定義,指針p、q、r分別指向鏈表中的3個連續(xù)結(jié)點。
structnode
{intdata;structnode*next;)*p,*q,*r;
現(xiàn)要將q所指結(jié)點從鏈表中刪除,同時要保持鏈表的連續(xù),以下不能按要求完成操作的語句是()。
A.p->next=q->next;
B.P-next=P->next->next;
C.p->next=r;
D.p=q->next;
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.AfternoonB.ftemoonC.MorningD.oming
73.
74.有如下程序段:inta=14,b=15,x;charc=A;x=(a&&b)&&(c<B):執(zhí)行該程序后,x的值為()。A.trueB.falseC.0D.1
75.有以下程序:main{inti,n=0:for(i=2;i<5;i++){do{if(i%3)continue:n++:}while(!i);n++:}printf("n=%d\n",n);}程序執(zhí)行后輸出結(jié)果是()。A.n=5B.n=2C.n=3D.n=4
76.
77.
78.
79.
80.
五、程序改錯題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參n。計算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若輸入6,則應(yīng)輸出0.616667。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.N名學(xué)生的成績已在主函數(shù)中放人一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。
例如,若學(xué)生的成績是:8576698591726487,則平均分應(yīng)當(dāng)是:78.625。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.B運算符“%”為二元運算符,具有左結(jié)合性,參與運算的量均為整型。B選項中的變量a是double型,不符合規(guī)定。故本題答案為B選項。
2.D
3.DA選項中,“*(&w[0][0]+1)”表示“w[0][1]”;B選項中,“*(*w+3)”表示“w[0][3]”;C選項中,“*(*(w+1))”表示“w[1][0]”;D選項中,“*(w+1)[4]”的正確寫法是“(*(w+1))[4]”,表示“w[1][4]”。故本題答案為D選項。
4.C在C語言中null等價于數(shù)字0。
5.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。
6.AC語言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項B、C、D錯誤,選項A正確。故本題答案為A選項。
7.C
8.A本題考查函數(shù)值的類型。在函數(shù)調(diào)用時,盡管Y的類型是float.x的類型是double,但是因為函數(shù)定義時沒有指定類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計算后Y的類型是int型。
9.B當(dāng)n為9時,此時if語句成立,執(zhí)行n++后,n為10,因此輸出n的值為10,故選擇B選項。
10.C\n只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。
\n
11.B棧是限定只能在表的一端進行插入和刪除操作的線性表,入棧和出棧都是在棧頂進行,它們的操作特點是先進后出,因此具有記憶作用。棧可以采用順序存儲,也可以采用鏈?zhǔn)酱鎯Α?/p>
12.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。
13.A
14.A關(guān)系SC中的主鍵是(S#,C#),但C#(課程號)單獨就可以決定Cn(課程名),存在著對主鍵的部分依賴。本題答案為A選項。
15.D解析:在用基本輸出函數(shù)printf時,格式說明與輸出項的個數(shù)應(yīng)該相同。如果格式說明的個數(shù)少于輸出項的個數(shù),多余的輸出項不予輸出;如果格式說明個數(shù)多于輸出項個數(shù),則對于多余的格式項輸出不定值或0。
16.B
17.C
18.Alink結(jié)構(gòu)體中的next是鏈表中下一個節(jié)點的地址。由于p當(dāng)前指向節(jié)點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節(jié)點數(shù)據(jù)成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確?;蛘呤褂媒庖谩?”運算符:(*p)表示節(jié)點A,(*p).next表示B的地址,*((*p).next)表示節(jié)點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節(jié)點C,所以C的數(shù)據(jù)成員dt可以表示為(*((*(*p).next).next)).dt,因為“.”運算符優(yōu)先級高于“*”運算符,所以也可以寫為(*(*(*p).next).next).dt,選項C正確。同理,也可以既使用指針運算符,又使用解引用運算符來訪問C的節(jié)點數(shù)據(jù)成員dt,即(*(p->next->next)).dt,選項D正確。選項A中,*p表示A節(jié)點,(*p).next表示節(jié)點B的地址,由于“->”運算符的優(yōu)先級高于“*”運算符,因此先執(zhí)行“->”,即表達(dá)式(*p).next->next->dt引用了C節(jié)點的數(shù)據(jù)成員dt,然后再執(zhí)行解引用運算“*”,這是錯誤的。故本題答案為A選項。
19.A
20.C數(shù)據(jù)的邏輯結(jié)構(gòu)是描述數(shù)據(jù)之間的關(guān)系,分兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)是n個數(shù)據(jù)元素的有序(次序)集合,指的是數(shù)據(jù)元素之間存在著“一對一”的線性關(guān)系的數(shù)據(jù)結(jié)構(gòu)。常用的線性結(jié)構(gòu)有:線性表,棧,隊列,雙隊列,數(shù)組,串。非線性結(jié)構(gòu)的邏輯特征是一個結(jié)點元素可能對應(yīng)多個直接前驅(qū)和多個后驅(qū)。常見的非線性結(jié)構(gòu)有:樹(二叉樹等),圖(網(wǎng)等),廣義表。
21.k=p;k=p;解析:要找數(shù)組中最大元素的下標(biāo),首先預(yù)設(shè)數(shù)組首元素下標(biāo)為臨時最大元素的下標(biāo),從首元素開始順序向后繼元素逐一比較,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時最大元素更大時,就用當(dāng)前元素的下標(biāo)更新臨時最大元素下標(biāo),直至比較了數(shù)組的全部元素后,臨時最大元素下標(biāo)就是數(shù)組中最大元素的下標(biāo)。程序中,變量k用于存儲臨時最大元素下標(biāo),變量p控制順序比較的循環(huán)變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時最大元素s[k]更大時,用p更新k。所以在下劃線處應(yīng)填入代碼“k=p;”。
22.計算數(shù)組num中大于零的數(shù)據(jù)之和計算數(shù)組num中大于零的數(shù)據(jù)之和
23.一對多或1:N實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應(yīng)相關(guān)聯(lián);一對多聯(lián)系表現(xiàn)為某一實體與相關(guān)多個實體相關(guān)聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關(guān)多個實體相關(guān)聯(lián)。
24.00解析:對于一個unsignedshort來說,它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實際為0。
25.數(shù)據(jù)模型數(shù)據(jù)模型
26.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。
27.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:三角形形式的條件是兩邊之和大于第三邊。要用'&&'指令連接三個條件,表示三個條件都要滿足。
28.1212解析:本題通過第—個for循環(huán)將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,
具體分析如下:
i+1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
29.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達(dá)式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關(guān)系。
30.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
31.3131解析:在函數(shù)調(diào)用時,形參值和改變,不會改變實參的值。
32.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。
33.str+strlen(str)-1i>strlen(str)/2huiwen(str)str+strlen(str)-1\r\ni>strlen(str)/2\r\nhuiwen(str)解析:首先使指針p1指向字符串的首地址,指針p2指向字符串的尾地址(不包括字符串結(jié)束標(biāo)記'\\0'),然后指針p1從前往后,指針p2從后往前,直到移至字符串的中間元素,若兩者所指的元素不相等,則跳出循環(huán),此時i<=strlen(str)/2,若兩者所指的元素均相等,則此時i>strlen(str)/2。
通過if語句判斷,如果i>strlen(str)/2,則返回“yes!”,否則返回“no!”。
主函數(shù)中要求輸出函數(shù)huiwen(str)的返回值。
34.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應(yīng)一個處理模塊。
35.數(shù)據(jù)存儲數(shù)據(jù)存儲
36.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對S求和時,相鄰兩項的符號剛好相反,而在函數(shù)fun中沒有對數(shù)據(jù)進行取反的操作,故第—空的目的是對數(shù)據(jù)進行取反,以保證序列中相鄰兩項的符號不同。故第—個應(yīng)填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結(jié)果通過指針參數(shù)的形式傳遞紿調(diào)用fun的函數(shù),故第二空應(yīng)填*sn。
37.鏈?zhǔn)酱鎯Y(jié)構(gòu)鏈?zhǔn)酱鎯Y(jié)構(gòu)
38.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
39.5656解析:本題中a,b,c,d足實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
40.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個長度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。
41.D解析:選項D中有兩條語句。
42.B解析:本題考查變量的定義方法。如果要一次進行多個變量的定義,則在它們之間要用逗號隔開,因此選項A)和D)錯誤。在選項C)中,變量c是一個浮點型指針,它只能指向一個浮點型數(shù)據(jù),不能指向指針變量b,故選項C)錯誤。
43.A解析:數(shù)據(jù)結(jié)構(gòu)作為計算機的一門學(xué)科,主要研究和討論以下三個方面的問題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);②在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu);③對各種數(shù)據(jù)結(jié)構(gòu)進行的運算。
44.B解析:條件運算符要求有3個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時表達(dá)式2的值就作為整個條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個條件表達(dá)式的值。并且注意++、--的用法。
45.D解析:本題考核的知識點是函數(shù)的返回值作為函數(shù)參數(shù)的應(yīng)用。主函數(shù)中首先定義了4個整型變量x、y、z和r,并分別給x、y、z賦初值為3、8、6,接著調(diào)用一個fun()函數(shù),并將返回值賦給變量r。其中將fun(x,y)函數(shù)的返回值和2*z作為fun()函數(shù)的兩個參數(shù)。在內(nèi)層fun(x,y)函數(shù)中,將x的值和y的值傳給形參a和b,此時a和b的值分別為3和8,執(zhí)行if語句,由于if后面判斷條件表達(dá)式“a>b”為假,所以執(zhí)行else后面的語句,返回值為8。此時,外層fun(x,y)函數(shù)兩個參數(shù)為8和2*z=12,所以r的賦值語句相當(dāng)于r=fun(8,12),同上分析可知fun(8,12)返回值為12,因此最后r的值為12。所以,4個選項中選項D符合題意。
46.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
47.D解析:將—個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
48.D解析:本題考查共用體變量起作用的范圍。共用體變量中起作用的成員是最后一次存放的成員,在存入一個新的成員后原有的成員就失去作用,在本題中,當(dāng)對a.u.y成員賦值時,a.u.x的值就不存在了,當(dāng)對a.u.2賦值時,a.u.y的值就不存在了。
49.D解析:本題考查逗號表達(dá)式。逗號表達(dá)式的形式為:表達(dá)式1,表達(dá)式2,其求解過程為:先求解表達(dá)式1,再求解表達(dá)式2。整個逗號表達(dá)式的值是表達(dá)式2的值。
50.B解析:題目中第1行聲明了一個全局變量a,在函數(shù)f()中,也聲明了一個靜態(tài)變量a,這時全局變量被屏蔽,即在f()函數(shù)中用到的a是其內(nèi)部定義的這個靜態(tài)變量a,而不是全局變量。但f()函數(shù)的if子句和else子句又分別了局部變量a,這時靜態(tài)變量a又被屏蔽,即在if子句中使用的是if子句自己定義的a,else子句也是這樣。在主函數(shù)中,通過for語句連續(xù)執(zhí)行了2次f()函數(shù),并將返回值累加到s中,且s被全局變量a初始化,即初始值是4。第1次調(diào)用f(),參數(shù)值為0,0能被2整除,執(zhí)行if子句,t被自增6,a增1不會影響外面的變量a。函數(shù)返回t和靜態(tài)變量a的和,即11,此時,靜態(tài)變量a被增1,這次對a的改變會帶入到下一次f()函數(shù)的調(diào)用小去。第2次調(diào)用f(),參數(shù)值為1,1不能被2整除,執(zhí)行else子句,t被自增7,a增1不會影響外面的變量a。函數(shù)返回t和靜態(tài)變量a的和,此時a的值為上次調(diào)用f()時增1后的值6,即返回7+6=13。所以,主函數(shù)中s現(xiàn)在的值為4+11+13=28。故應(yīng)該選擇B。
51.C解析:在選項A中,main()函數(shù)中定義了一個指針變量P,調(diào)用fun()函數(shù)時把p傳給形參P,在函數(shù)中讓p指向局部變量s,由于函數(shù)調(diào)用返回后,局部變量s將被釋放,因此無法實現(xiàn)讓實參p指向一個整型單元。選項B中實現(xiàn)的也是讓實參p指向一個在函數(shù)fun()定義的局部變量s;選項C在函數(shù)fun()中分配了兩個字節(jié)的內(nèi)存單元并把首地址賦值給形參p指向的變量,即main()函數(shù)的指針變量p中,由于整型變量占兩個字節(jié);選項D在主函數(shù)中定義了一個指針地址變量p,并把指針變量的值傳給形參變量p,在fun()函數(shù)分配了一個整型單元并把首地址賦值給形參指針變量P,由于C語言中變量作為參數(shù)是傳值的,所以并沒有改變對應(yīng)實參指針變量的值。
52.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
53.B解析:所謂的線性結(jié)構(gòu):如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件,即
1)有且只有一個根結(jié)點;
2)每一個結(jié)點最多有一個前件,也最多有一個后件。同時滿足兩個條件的只有線性表,而其他三種數(shù)據(jù)結(jié)構(gòu)的結(jié)點可能存在多個前件或后件,所以不是線性結(jié)構(gòu)。
54.C解析:本題考查函數(shù)調(diào)用時的參數(shù)傳遞。選項C)中第一個參數(shù)的表達(dá)式不正確,因此不能得到正確的結(jié)果。
55.D
56.B解析:在C語言中,不可以在函數(shù)的參數(shù)聲明列表中用一個類型名指定多個參數(shù)。故選項B是錯誤的。其正確的表示方式應(yīng)為:
intmax(intx,inty){……}
或
intmax(x,y)
intx,y;
{……}
57.C解析:C語言規(guī)定的標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關(guān)鍵字作為標(biāo)識符。選項C)中g(shù)oto和int是關(guān)鍵字,b-a中'-'不是組成標(biāo)識符的3種字符之一;選項D)中int是關(guān)鍵字,所以,均是不合法用戶標(biāo)識符的選項是C)。
58.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。
59.D只要是合法的表達(dá)式,都可以作為邏輯運算符的運算對象。因此可知選項A、B、C錯誤。故本題答案為D選項。
60.B解析:C語言規(guī)定用戶標(biāo)識符由字母、數(shù)字和下畫線組成,且第一個字符必須是字母或下畫線,可見選項C),D)是錯誤的;此外,C語言不允許用戶將關(guān)鍵字作為標(biāo)識符,而選項A)中的void正是C語言的關(guān)鍵字。
61.A在本題中,程序首先定義一個返回類型為整型的函數(shù)fun,該函數(shù)帶有一個指針型的形參變量str,從主函數(shù)中對其調(diào)用時傳遞的參數(shù)我們可以知道,該指針指向的是一個數(shù)組,在該函數(shù)體中,首先定義兩個整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識,即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結(jié)果為真,說明取到的當(dāng)前字符不是空字符,這時執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結(jié)束后執(zhí)行str[j]
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國PE袋膜行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告(2024-2030)
- 2025至2030中國熱試驗箱行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國海外工程建設(shè)行業(yè)市場深度分析及競爭格局及有效策略與實施路徑評估報告
- 2025至2030中國沙灘越野車行業(yè)現(xiàn)狀規(guī)模與投資發(fā)展策略分析報告
- 2025至2030中國水港沖擊背心行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國氣體報警控制器行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國每水療香腸(水療)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國橢圓形舷窗行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國棉質(zhì)枕頭行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國桐木行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 聲樂課說課課件
- 學(xué)生托管班管理制度
- 2024年山東夏季高中學(xué)業(yè)水平合格考生物試卷真題(含答案)
- 統(tǒng)編版小學(xué)語文小升初專題訓(xùn)練:根據(jù)課文內(nèi)容填空(含答案)
- (2025)入黨積極分子培訓(xùn)考試試題及答案
- 2025年天津市河西區(qū)中考二模語文試題
- 2025屆高考化學(xué)復(fù)習(xí):必背化學(xué)方程式-有機化學(xué)
- 餐飲行業(yè)服務(wù)質(zhì)量保證措施
- 2024年交通系統(tǒng)建模與仿真技術(shù)試題及答案
- 2025年中考《道德與法治》非選擇題答題要點匯編(全)
- 放射科質(zhì)控培訓(xùn)課件
評論
0/150
提交評論