




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年江西省鷹潭市全國計算機(jī)等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義“doublex,y,*px,*py;”,執(zhí)行了“px=&x;py=&y;”之后,正確的輸入語句是()。
A.scanf(“%lf%le”,px,py);
B.scanf(“%f%f”,&x,&y);
C.scanf(“%f%f”,x,y);
D.scanf(“%lf%lf”,x,y);
2.以下程序的輸出結(jié)果是()。unionmyun{struct{intx,y,z;)u;intk:}a;main{a.u.x=4;a.u.y=5;a.u.z=6;k=0;printf(%d\n",a.u.x);}A.4B.5C.6D.0
3.有以下程序
#include<stdio.h>
voidfun(intP)
{intd=2;
P=d++;printf(“%d”,P);}
main()
{inta=1;
fun(A);prinff(“%.d\n”,A);}
程序運行后的輸出結(jié)果是A.32B.12C.21D.22
4.設(shè)變量n為f1oat類型,m為int類型,則以下能實現(xiàn)將n中的數(shù)值保留小數(shù)點后兩位,第三位進(jìn)行四舍五人運算的表達(dá)式是()。
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
5.在說明語句:int*f();中,標(biāo)識符f代表的是
A.一個用于指向整型數(shù)據(jù)的指針變量
B.一個用于指向一維數(shù)組的行指針
C.一個用于指向函數(shù)的指針變量
D.一個返回值為指針型的函數(shù)名
6.有以下程序(函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作):#include<stdio.h>voidfun(int*a。intn){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運行后的輸出結(jié)果是()。A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
7.以下程序段中,輸出信息不能正確反映變量大小關(guān)系的是()。
A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);
B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);
C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);
D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);
8.帶頭結(jié)點的單鏈表head為空的判定條件是()。
A.head=NULLB.head→next=NULLC.head→next=headD.head!=NULL
9.若用一個大小為6的數(shù)組來實現(xiàn)循環(huán)隊列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為多少()。
A.1和5B.2和4C.4和2D.5和1
10.一個C語言程序總是從()開始執(zhí)行:
A.主程序B.子程序C.主函數(shù)D.第一個函數(shù)
11.
12.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}
A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3
13.
14.
15.以下選項中,不能作為合法常量的是
A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0
16.第
27
題
有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2個零件;若分成7個零件一組,則多3個零件;若分成9個零件一組,則多5個零件。下面程序是求這堆零件總數(shù),請選擇填空。
#include<stdio.h>
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if(_______)
printf("%d",i);
}
A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0
17.下列程序段的時間復(fù)雜度為()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)
18.以下關(guān)于字符串的敘述中正確的是()。
A.C語言中有字符串類型的常量和變量
B.兩個字符串中的字符個數(shù)相同時才能進(jìn)行串符串大小的比較
C.可以用關(guān)系運算符對字符串的大小進(jìn)行比較
D.空串一定比空格打頭的字符串小
19.C語言可執(zhí)行程序的開始執(zhí)行點是()。
A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
20.
二、2.填空題(20題)21.以下程序的功能是找出三個字符串中的最大串。
【】
#include<stdio.h>
main()
{inti;
charstring[20],str[3][20];
(i=0;i<3;i++)gets(【】);
if(strcmp(str,str[0],str[1]>0)strcpy(string,str[0]);
elsestrcpy(string,str[1]);
if(strcmp(str[2],string)>【】)srtcpy(string,str[2]);
printf("Thelargeststringis\n%s\n",string);
}
22.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
23.面向?qū)ο蟮哪P椭校罨镜母拍钍菍ο蠛蚠_____。
24.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{inti;
for(i=1;i<K;i++){......}
25.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
prinff("%d\n",j);
26.對于長度為n的順序存儲的線性表,當(dāng)隨機(jī)插入和刪除一個元素時,需平均移動元素的個數(shù)為【】。
27.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
28.寫出下列程序的輸出結(jié)果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
29.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
30.語句“int(*ptr)();”的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
31.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
32.要求使下列程序輸出5個整數(shù),請?zhí)羁铡?/p>
for(i=0;i<=______;printf("%d\n",i+=2));
33.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
34.以下程序運行后的輸出結(jié)果是【】。
main()
{charc;intn=100;
floatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
35.若有如下程序:
main()
{intx=20;
if(x>10)printf("%d",x-=5);
if(x>15)printf("%d",x);
}
則程序運行后的輸出結(jié)果是【】。
36.關(guān)系操作的特點是______操作。
37.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do}k*=n%10*r;n/=10;r++;}while(n);
38.以下程序是求矩陣a,b的和,結(jié)果存入矩陣c中,并按矩陣形式輸出,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
inti,j,c[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=【】;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%3d",c[i][j]);
printf("\n");}}
39.以下程序運行后輸出結(jié)果是【】。
#include<stdio,h>
main()
{inta,b,c;
a=10;b:20;c=(a%b<1)‖(a/b>1);
printf("%d%d%d\n",a,b,c);
}
40.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4);
inti:
for(i:0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf("\n");
}
三、1.選擇題(20題)41.若進(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
42.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。
A.快速排序B.冒泡排序C.直接插入排序D.堆排序
43.下列的程序用來輸出兩個字符串前7個字符中對應(yīng)相等的字符及其位置號,程序空白處應(yīng)該填寫的是()。#include<stdio.h>main(){chars1[]="chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]==s2[i]&&i<7)__________________;}
A.putchar(s2[i]);putchar(i)
B.puts(s1[i],i)
C.printf("%c%d\n",s2[i],i)
D.printf("%c",s1[i]);printf("%d\n",i)
44.C語言中規(guī)定,程序中各函數(shù)之間()
A.既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用
B.不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用
C.允許直接遞歸調(diào)用,不允許間接遞歸調(diào)用
D.不允許直接遞歸調(diào)用,允許間接遞歸調(diào)用
45.在下列四條敘述中,錯誤的一條是()
A.內(nèi)存是主機(jī)的組成部分
B.對于種類不同的計算機(jī),其機(jī)器指令系統(tǒng)都是相同的
C.CPU由運算器和控制器組成
D.十六進(jìn)制微型機(jī)的含義是:這種機(jī)器能同時處理十六位二進(jìn)制數(shù)
46.編碼是指______。
A.總體設(shè)計到詳細(xì)設(shè)計的過程B.用0、1代碼改寫詳細(xì)設(shè)計的結(jié)果C.用編程語言改寫詳細(xì)設(shè)計的結(jié)果D.上述都不對
47.對于基本類型機(jī)同的兩個指針變量之間,不能進(jìn)行的動算是()
A.<B.=C.+D.-
48.若有定義和語句()chars[10];s="abcd";printf("%s\n",s);則結(jié)果是(以下μ代表空格)
A.輸出abcdB.輸出aC.abcdμμμμμD.編譯不通過
49.設(shè)有語句:“inta=1,b=2,*p1=&a,*p2=&b;”,則使指針p1指向變量b的賦值語句是______。
A.p1=*p2B.*p1=p2C.p1=p2D.*p1=*p2
50.下列程序段中,不能正確賦值的是()。
A.char*p,ch;p=&ch;scanf("%c",&p);
B.char*p;p=(char*)malloc(1);scabf("%c",p);
C.char*p;*p=getchar();
D.char*p,ch;p=&ch;*p=getchar();
51.下列關(guān)于棧的描述正確的是()。
A.在棧中只能插入元素而不能刪除元素
B.在棧中只能刪除元素而不能插入元素
C.棧是特殊的線性表,只能在一端插入或刪除元素
D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
52.模塊獨立性是軟件模塊化所提出的要求,衡量模塊獨立性的度量標(biāo)準(zhǔn)則是模塊的
A.抽象和信息隱蔽B.局部化和封裝化C.內(nèi)聚性和耦合性D.激活機(jī)制和控制方法
53.以下敘述中正確的是
A.程序應(yīng)盡可能短
B.為了編程的方便,應(yīng)當(dāng)根據(jù)編程人員的意圖使程序的流程隨意轉(zhuǎn)移
C.雖然注釋會占用較大篇幅,但程序中還是應(yīng)有盡可能詳細(xì)的注釋
D.在TURBOC環(huán)境下,運行的程序就是源程序
54.若有說明:int*p,m=5,n;,以下正確的程序段是()。
A.p=&m;scanf("%d",&p)
B.p=&n;scanf("%d",&p)
C.scsnf("%d",&p)p=&n;
D.p=&n;p=&m;
55.十進(jìn)制數(shù)1385轉(zhuǎn)換成十六進(jìn)制數(shù)為()
A.568B.569C.D85D.D55
56.設(shè)int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。
A.0~65535B.-32769~32767C.1~65536D.0~32767
57.下面程序的輸出結(jié)果是()。main(){structm1{inta;intb;}en[2]={1,3,2,7);printf("%d\n",en[0].b/en[0].a*en[1].a);
A.6B.0C.1D.3
58.設(shè)有如下程序段:intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是()。
A.輸出語句中格式說明符的個數(shù)少于輸出項的個數(shù),不能正確輸出
B.運行時產(chǎn)生出錯信息
C.輸出值為2002
D.輸出值為2003
59.有以下程序段:intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c:k;執(zhí)行該程序段后,k的值是______。A.3B.2C.1D.0
60.有下列二叉樹,
對此二叉樹前序遍歷的結(jié)果為()。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI
四、選擇題(20題)61.
62.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是
A.插入排序B.冒泡排序C.直接插入排序D.堆排序
63.若有以下說明和語句,請選出哪個是對C數(shù)組元素的正確引用()。
A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)
64.設(shè)有定義:char*C;以下選項中能夠使C正確指向一個字符串的是()。
A.charstr()=”string”;C=str;
B.scanf(”%s”,C.;
C.c=getchar();
D.*c=”strin9”;
65.軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的過程設(shè)計是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
66.
67.兩個或兩個以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
68.
69.
70.有以下程序
#include<stdio.h>
voidfun(ints[])
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{
intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
程序的運行結(jié)果是
A.34756B.23445
C.35745D.12345
71.
72.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機(jī)結(jié)果*/}程序運行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯
73.以下敘述中錯誤的是()。
A.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
C.C語言是-種結(jié)構(gòu)化程序設(shè)計語言
D.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
74.(53)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是()
A.cedba
B.acbed
C.decab
D.deabc
75.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inti,S=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3))s+=i;
printf("%d\n",s);
}
A.4B.39C.45D.6
76.在HTML文檔中,應(yīng)該在下列哪個部分引用外部樣式表?()A.A.文檔的末尾
B.<title>部分
C.<body>部分
D.<head>部分
77.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。
A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯
78.
79.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合
80.以下語句的輸出結(jié)果是()。
inta=-1,b=4,k;
k=(++a<0)!(b--<=0);
printf("%d,%d,%d\n",k,a,b);
A.1,0,4B.1,0,3C.0,0,3D.0,0,4
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.編寫函數(shù)fun,其功能是:實現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到
pl所指的字符串的后面。
例如,分別輸入下面兩個字符串:
程序輸出:
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
參考答案
1.A因為x和y都是double型數(shù)據(jù),輸入時的格式字符應(yīng)為%lf,B、C選項錯誤。D選項中的“scanf(“%lf%lf”,x,y);”應(yīng)為“scanf(“%lf%lf”,&x,&y);”。故本題答案為A選項。
2.D因為a是結(jié)構(gòu)體變量,最后一次輸入的值為結(jié)構(gòu)體中的值,即a中的任何一個值都為0。
3.C程序運行后,首先輸出的是p的值,然后再輸出a的值。p=d++,得到p的值為d的初始值2;a的值不變,仍為1。
4.B
5.D解析:帶回指針值的函數(shù),其一般定義形式為:
類型標(biāo)識符*函數(shù)名(參數(shù)表);
例如;int*f(x,y);
其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運算符和()運算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。
6.A對下標(biāo)為偶數(shù)的元素進(jìn)行降序排序,下標(biāo)為奇數(shù)元素保持不變。
7.A選項A中,若條件“x>y”為真,輸出“x>y”;若條件“x<y”為真,輸出“x<y”;若條件“x>=y”為真,輸出“x=y”。選項A錯誤,其他選項都正確。故本題答案為A選項。
8.B
9.B
10.C
11.C
12.D
13.B
14.A
15.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。
16.D
17.C
18.D解析:C語言中只有字符串常量而沒有字符串變量,故選項A不正確:字符串比較大小是以第1個不相同字符的大小為標(biāo)準(zhǔn)的,跟長度沒有關(guān)系,故選項B不正確:字符串比較大小除了使用庫函數(shù)stremp()以外,就只能靠自己寫代碼來實現(xiàn)了,而不能通過關(guān)系運算符來比較大小,因為字符串在表達(dá)式中相當(dāng)于coostchar*,即常字符指針,代表的是字符串的首地址,關(guān)系運算符會將兩個字符串的首地址值比較大小,這是毫無意義的。所以選項C也不正確??沾拈L度為0,而以空格打頭的字符串的長度至少為1,故選項D正確,本題應(yīng)該選擇D。
19.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。
20.A
21.#include<string.h>str[i]0
22.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
23.類類
24.44解析:本題考查宏定義。預(yù)編譯時,首先將M的宏定義帶入K,得到N+1+1*N+1/2;再將N的宏定義帶人,得到2+1+1*2+1/2=3+2+0=5,所以循環(huán)4次。
25.2424解析:本題關(guān)鍵是while循環(huán)。
當(dāng)i=0時,滿足條件:i<7&&11%2==1,執(zhí)行j=0+11=11,i++,i為1;
當(dāng)i=1時,滿足條件:i<7&&13%2=1,執(zhí)行j=11+13=24,i++,i為2;
當(dāng)i=2時,不滿足條件:i<7&&14%2==1,循環(huán)結(jié)束。輸出j的值24。
26.n/2n/2解析:刪除一個元素,平均移動的元素個數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個元素,平均移動元素個數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動元素個數(shù)為n/2。
27.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
28.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做:n++是先取n的當(dāng)前值和1做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=<1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3.退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加l,即程序結(jié)束后得到n=4,但輸出的是3。
29.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
30.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(*指針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。
31.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個元素,判斷是否為結(jié)束標(biāo)志,如果不是,I=I+1,繼續(xù)取下一個元素進(jìn)行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+I)相當(dāng)于str[I]。
32.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數(shù)則需要的條件是i<=8。
33.隊列隊列解析:隊列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊尾”,刪除元素的一端叫做“隊頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。
34.220.000000220.000000解析:注意區(qū)分運算符的優(yōu)先級。先是給c賦值,然后計算x=f*=n/=50,得x=f*=2,最后有x=20。x輸出是按浮點數(shù)的形式輸出的,小數(shù)點后的0不能少。
35.1515解析:本題首先定義了一個變量x并初始化為20。然后第一個if語句判斷x是否>10,結(jié)果為真,則執(zhí)行后面的輸出語句,輸出結(jié)果是賦值表達(dá)式X-=5的值,所以輸出15,同時x的值也變成15。第二個if語句再判斷x是否>15時條件為假,結(jié)束程序。所以程序運行后的輸出結(jié)果是15。
36.集合集合
37.00解析:本題考查的是do…while循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20;所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4。所以k的值為0。
38.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此題是雙重for循環(huán)結(jié)構(gòu)應(yīng)用在了二維數(shù)組中。外層for循環(huán)用來控制二維數(shù)組的行,內(nèi)層for循環(huán)控制二維數(shù)組的列。
39.1020010200解析:程序中(a%b<1)||(a/b>1)的運算順序為先算括號→算術(shù)運算符→關(guān)系運算符→邏輯運算符。首先計算a%b=10,a/b=0,因為a%b<1為假(0),a/b>1也為假(0),所以整個表達(dá)式的結(jié)果為假(0),最后輸出a,b,c的值為10200。
40.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實就是將數(shù)組a的每個元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。
41.C解析:棧是—種后進(jìn)先出表,選項C中,先出棧的是3,說明此時棧內(nèi)必然有1,2,由于1先于2進(jìn)棧,所以1不可能在2之前出棧,故選項C這種出棧序列是不可能的。
42.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)
43.C解析:putchar(s)的功能是把字符s輸出到標(biāo)準(zhǔn)輸出設(shè)備;puts(s1)是把s1指向的字符串輸出到標(biāo)準(zhǔn)輸出設(shè)備。
44.A解析:本題考查函數(shù)調(diào)用的基本概念。在函數(shù)調(diào)用時,只要符合函數(shù)的使用,程序中的各個函數(shù)間既可以直接調(diào)用其他函數(shù),也可以遞歸調(diào)用其自身。
45.B
46.C解析:所謂“編碼”,是指把軟件設(shè)計的結(jié)果用計算機(jī)系統(tǒng)可以理解的形式表示出來。用于編碼的程序設(shè)計語言可以是計算機(jī)系統(tǒng)能夠直接理解的機(jī)器語言,也可以是必須通過匯編、編譯(或解釋)才能為計算機(jī)系統(tǒng)所理解的匯編語言或高級語言。
47.C
48.D
49.D解析:對于定義int*p,*q;,可以通過賦值語句p=q;,把指針變量q中的地址值賦給指針變量p,從而使這兩個指針變量指向同一地址。
50.C解析:地址變量p指向的存儲空間一定要明確,否則可能影響程序的正確性。
51.C解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)對棧的定義及其特點可知:棧是限定只在表尾進(jìn)行插入或刪除操作的線性表,因此棧是先進(jìn)后出的線性表,對棧的插入與刪除操作,不需要改變棧底元素。棧是限定只在表尾進(jìn)行插入或刪除操作的線性表。
52.C解析:模塊的獨立程序是評價設(shè)計好壞的重要度量標(biāo)準(zhǔn)。衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性這兩個定性的度量標(biāo)準(zhǔn)。
53.C解析:本題主要考查了C程序編譯、運行等基本概念。選項A)、C)程序的長度沒有什么限制,所以不正確;選項B)程序應(yīng)該遵循結(jié)構(gòu)化程序設(shè)計的理念,不能使程序流程任意的轉(zhuǎn)移,這樣不利于程序的理解和執(zhí)行;選項D)運行的程序是經(jīng)過編譯后的二進(jìn)制文件,而不是源程序。
54.D解析:p為指針型變量,在輸入函數(shù)的地址列表中不用&,當(dāng)給指針變量賦值時是取變量的地址賦給指針變量,&為取地址運算符,因此只有選項D正確。
55.B
56.A解析:本題int型占2個字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(2(上標(biāo))16-1),即0~65535。
57.A解析:en[2]是結(jié)構(gòu)體類型的數(shù)組,en[0].b/en[0].a*en[1].a=3/1*2=6。
58.D解析:本題考查逗號表達(dá)式。逗號表達(dá)式的形式為:表達(dá)式1,表達(dá)式2,其求解過程為:先求解表達(dá)式1,再求解表達(dá)式2。整個逗號表達(dá)式的值是表達(dá)式2的值。
59.B解析:本題考查的知識點是條件表達(dá)式.條件運算符?:是C語言中唯一的三目運算符,它的規(guī)則是先計算左邊運算分量,如果為“真”(非0),則返回中間運算分量的值,否則返回右邊運算分量的值。本題中因為a<b為“真”,所以第1個條件表達(dá)式的值為b的值2,所以k=2。然后又因為k>c為“假’,所以第2個表達(dá)式的值為k的值2。所以本題應(yīng)該選擇B。
60.C解析:對二叉樹的前序遍歷是指先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左、右子樹。
61.C
62.D在最壞情況下,快速排序、冒泡排序和直接插入排序需要的比較次數(shù)都為n(n-1)/2,堆排序需要的比較次數(shù)為nlog2n。因此本題正確的答案選D。
63.B本題的考查點是數(shù)組元素的引用。cp=c這個語句是將數(shù)組c的首行元素地址賦給了指針數(shù)組cp。選項A,cp+1是指將數(shù)組c的首行地址加l,即為第二行地址;選項B,*(cp+3)是地址,等于數(shù)組C的首地址加3的那個內(nèi)存單元的內(nèi)容,不是對數(shù)組元素的引用;選項C,*(cp+1)+3是地址,等于數(shù)組C的首地址加1的那個內(nèi)存單元中存放的值加3,不是對數(shù)組
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級歷史與社會上冊教學(xué)設(shè)計(圖片版)綜合探究一 從地圖上獲取信息
- hrbp年終述職報告
- DB 1401T 23-2024居住區(qū)綠地種植設(shè)計規(guī)范
- 人事部年終工作總結(jié)
- 醫(yī)院實習(xí)總結(jié)報告
- 房屋精裝修改造施工合同
- 2025年上海市國內(nèi)旅游合同協(xié)議(合同范本)
- 2025預(yù)制構(gòu)件銷售合同
- 2025關(guān)于簡易租房合同的
- 代辦就業(yè)合同標(biāo)準(zhǔn)文本
- GB∕T 40974-2021 核酸樣本質(zhì)量評價方法
- 鋼管樁沉樁兩種工藝方法
- 亞馬遜品牌授權(quán)書(英文模板)
- 光伏項目工程清單報價(最新)
- 入院患者護(hù)理評估單[1]
- 鄂科版心理健康七年級 3.新學(xué)段 新學(xué)習(xí) 課件(11ppt)
- 房產(chǎn)繼承遺囑書——模板
- 省高標(biāo)準(zhǔn)基本農(nóng)田建設(shè)項目測繪技術(shù)規(guī)范
- 結(jié)業(yè)證書模版(共1頁)
- 過程審核檢查表(根據(jù)大眾FORMEL-Q要求)
- 項目施工合理化建議
評論
0/150
提交評論