




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年貴州省畢節(jié)地區(qū)全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用快速排序(以中間元素518為基準(zhǔn))的第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
3.
4.對于int*pa[5];的描述,()是正確的。
A.pa是一個指向數(shù)組的指針,所指向的數(shù)組是5個int型元素
B.pa是一個指向某數(shù)組中第5個元素的指針,該元素是int型變量
C.pa是一個具有5個元素的指針數(shù)組,每個元素是一個int型指針
D.pa[5]表示某數(shù)組的第5個元素的值
5.以下程序段中,與語句“k=a>b?(b>c?1:0):0;”功能相同的是()。
A.if((a>b)||(b>c))k=1;elsek=0;
B.if((a>b)&&(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b<=c)k=1;
D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;
6.一個算法的語句執(zhí)行次數(shù)為(2n2+2nlog2n+4n-7),則其時間復(fù)雜度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
7.程序運行后的輸出結(jié)果是()。A.3B.4C.5D.6
8.有以下程序:#include<stdio,h>main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;printf("%d\n",n);}程序運行后的輸出結(jié)果是()。
A.0B.4C.6D.7
9.有以下程序#include<stdio.h>voidfun(intx){if(x/2>1)fun(x/2);printf("%d",x);}main{fun(7);printf("\n");}程序運行后的輸出結(jié)果是()。A.137B.731C.73D.37
10.十進(jìn)制數(shù)124轉(zhuǎn)換成二進(jìn)制數(shù)是()
A.111l010B.1111100C.1011111D.1111011
11.以下涉及字符串?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”;
12.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。
A.定義語句中的*號是一個間址運算符
B.定義語句中的*號只是一個說明符
C.定義語句中的P只能存放double類型變量的地址
D.定義語句中,*p=&n把變量a的地址作為初值賦給指針變量P
13.字符串”a+b=12\n”的長度為()。
A.6B.7C.8D.9
14.當(dāng)輸入為"hello?"時,下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main{charc;c=getchar;while(c!=?){putehar(e);break;}}A.RvfsuB.hC.?D.hello
15.由兩個棧共享一個向量空間的好處是______。
A.減少存取時間,降低下溢發(fā)生的機(jī)率
B.節(jié)省存儲空間,降低上溢發(fā)生的機(jī)率
C.減少存取時間,降低上溢發(fā)生的機(jī)率
D.節(jié)省存儲空間,降低下溢發(fā)生的機(jī)率
16.在堆棧中存取數(shù)據(jù)的原則是。A.先進(jìn)先出B.后進(jìn)先出C.先進(jìn)后出D.隨意進(jìn)出
17.以下程序的輸出結(jié)果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6
18.
19.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}執(zhí)行后輸出結(jié)果是
A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,5,4,3,2,
20.在C語言中,退格符是
A.\nB.\tC.\fD.\b
二、2.填空題(20題)21.下面的程序可對指定字符串中的字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
22.函數(shù)sub的功能是根據(jù)下面近似分式求π的值。
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
現(xiàn)在請在下面的函數(shù)中填空,完成求π值的功能。
#include"math.h"
doublesub(longm)
{doublesum=0.0,t;longn;
for(n=1;n<=m;n++)sum+=【】;
t=sqrt(6*sum);
return(t);
}
23.若x為int類型,請寫出與!x等價的C語言表達(dá)式______。
24.寫出下列程序的輸出結(jié)果______。
main()
{intn=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
25.以下程序中函數(shù)fun()的功能是構(gòu)成一個如圖所示的帶頭結(jié)點的單向鏈表,在結(jié)點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單向鏈表中所有結(jié)點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。
#include<atdio.h>
typedefstructnode/*鏈表結(jié)點結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node
Node~un(chars)/*建立鏈表*/
{......}
voiddisp(Node*h)
{Node*Ps
p=h->next;
while(【】)
{printf("%s\n",p->suh);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);prinff("\n");
26.以下程序運行后的輸出結(jié)果是______。
structNODE
{inthum;structNODE*next;
};
main()
{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;
intsum=0;
s[0].next=s+1;s[1].next=s+2;s[2].next=s;
p=S;q=p->next;r=q->next;
sum+=q=>next->num;sum+=r->next->next->num;
27.以下定義的結(jié)構(gòu)體類型里包含兩個成員,其中成員變量info用來存放整型數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。
structnode
{intinfo;
【】link;
};
28.設(shè)a、b、c為int型變量,且a=10、b=5、c=1,則執(zhí)行完以下語句,a的值變?yōu)椤尽俊?/p>
a/=10-(++b)-(c--);
29.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。
30.下列程序的輸出結(jié)果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
31.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
32.以下程序中給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{dOuble*p;
p=(double*)malloc();
p[0]=1.5;p[1]=2.5;p[2]=3.5
printf("%f%f%f\n",p[0],p[1],p[2]);
}
33.下列程序的運行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
primtf("%d,%d",POWER(i++),i);
}
34.閱讀程序:
#include<string.h>
#include<strdio.h>
strle(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!='0')num++;
while(b[n])
{*(a+num)=b[n];num++;n++;}
return(num);
}
main()
{charstrl[81],str2[81],*p1=strl,*p2=str2;
gets(p1);gets(p2);
prinf("%d\n",strle(p1,p2));
}
運行上面的程序,如果從鍵盤上輸入字符串qwerty和字符串a(chǎn)bcd,則程序的輸出結(jié)果是【】。
35.有以下程序:
#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é)果是【】。
36.以下程序運行后輸入:3,abcde<回車>,則輸出結(jié)果是【】。
#include<string.h>
move(char*str,intn)
{chartempinti;
temp=str[n-1);
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp
}
main()
{chars[50];ihtn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
37.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結(jié)果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
38.定義inta=5,b;,則執(zhí)行表達(dá)式b=++a*--a之后,變量b的值為【】。
39.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c,n;
a=2;b=0;c=1;n=1;
while(n<=3)
{c=c*a;b=b+c;++n;}
printf("b=%d",B);
}
40.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。例如,輸入字符串:abcl23edf456gh,執(zhí)行程序后輸出:123456。請?zhí)羁铡?/p>
#include<stdioo.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;}
d[j]='\0';
puts(d);
三、1.選擇題(20題)41.執(zhí)行下列程序時輸入456<空格>789<空格>123<回車>,輸出結(jié)果是()。#include<stdio.h>main(){charm[80];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",&m);printf("%c,%d,%s\n",c,i,m);}
A.4.56789e+008B.4.78912e+006C.4,56,789,123D.4,56.789
42.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char為指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的*號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
43.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進(jìn)后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
44.下面函數(shù)的功能是將指針t2所指向的線性鏈表,鏈接到t1所指向的鏈表的末端。假定t1所指向的鏈表非空structnode{floatx;structnode*next;};connect(structnode*t1,structnode*t2){if(t1->next==NULL)t1->next=t2;elseconnect(______,t2);}要實現(xiàn)此功能則應(yīng)該填入的選項是
A.t1.nextB.++t1.nextC.t1->nextD.++t1->next
45.下面程序輸出的結(jié)果是______。main(){inti=5,j=9,z;x=(i==j?i:(j=7));printf(:\n%d,%d",i,j);}
A.5,7B.5,5C.語法錯誤D.7,5
46.有三個關(guān)系R、s和T如下:
由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡爾積D.交
47.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式
C.數(shù)據(jù)在計算機(jī)中的順序存儲方式
D.存儲在計算機(jī)外存中的數(shù)據(jù)
48.在設(shè)計程序時,應(yīng)采納的原則之一是()。
A.不限制goto語句的使用B.減少或取消注解行C.程序越短越好D.程序結(jié)構(gòu)應(yīng)有助于讀者理解
49.下列敘述中,不屬于測試的特征的是
A.測試的挑剔性B.完全測試的不可能性C.測試的可靠性D.測試的經(jīng)濟(jì)性
50.八進(jìn)制數(shù)253.74轉(zhuǎn)換成二進(jìn)制數(shù)是()
A.10101011.1111
B.10111011.0101
C.11001011.1001
D.10101111.1011
51.在C語言中,要求運算數(shù)必須是整型的運算符是()
A.%B./C.<D.!
52.有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序執(zhí)行后的輸出結(jié)果是
A.x=4B.x=8C.x=6D.x=12
53.已知字符'A'的ASCII碼值是65,字符變量c1的值是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是
A.A,BB.A,68C.65,66D.65,68
54.下列敘述中j下確的是()。
A.程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)
B.程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)
C.程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量
D.以上3種說法都不對
55.設(shè)有:inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值是
A.1B.2C.3D.4
56.有以下程序:#include<stdio.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入;abcdef<回車>,則輸出結(jié)果是______。
A.defdefB.abcdefC.abedD.dd
57.以下程序段的輸出結(jié)果是()。inta=1234;printf("%2d\n",a);
A.12B.34C.1234D.提示出錯,無結(jié)果
58.以下敘述中不正確的是
A.C語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
B.C語言中對二進(jìn)制位的防問速度比文本文件快
C.C語言中,隨機(jī)讀寫方式不使用于文本文件
D.C語言中,順序讀寫方式不使用于二進(jìn)制文件
59.以下能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.300.5;
60.請讀程序:#include<srdio.h>main(){intn[2],i,j,k;{for(i=0,i<2;i++)n[i]=0;k=2;for(i=0;i<k;i++){for(j=0;j<k;j++)n[j]=n[i]+l;print{("%d\n",n[k]);}上面程序片段輸出結(jié)果是()
A.不確定的值B.3C.23D.1
四、選擇題(20題)61.假定已建立以下鏈表結(jié)構(gòu),且指針p和q已指向如圖所示的結(jié)點:
62.
63.
64.下列描述中正確的是
A.軟件指的就是程序B.軟件開發(fā)不受任何計算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
65.
66.
67.
68.以下選項中正確的定義語句是()。
A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;
69.有以下程序:
程序運行后的輸出結(jié)果是()。
A.0B.4C.6D.7
70.
71.有如下程序段
#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
72.
73.不能實現(xiàn)函數(shù)之間數(shù)據(jù)傳遞的是()。
A.全局變量B.局部變量C.函數(shù)接口D.函數(shù)返回值
74.有以下程序:
I程序運行后的輸出結(jié)果是()。
A.0B.3C.7D.8
75.有以下程序:
程序運行后的輸出結(jié)果是()。
A.12B.14C.1234D.123456
76.整型變量X和Y的值相等,且為非0值,則以下選項中結(jié)果為0的表達(dá)式是()。
A.X‖YB.X|YC.X&YD.X^Y
77.
78.當(dāng)用“#defineF37.5f”定義后,下列敘述正確的是()。
A.F是float型數(shù)B.F是Char型數(shù)C.F無類型D.F是字符串
79.下列數(shù)據(jù)結(jié)構(gòu)中屬于非線性結(jié)構(gòu)的是()。
A.隊列
B.線性表
C.二叉樹
D.棧
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:輸出M行M列整數(shù)方陣,然后求兩條對角線上的各元素之和并將其返回。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.
參考答案
1.B
2.B
3.A
4.A
5.B條件表達(dá)式的含義是:如果表達(dá)式1成立,結(jié)果為表達(dá)式2的值,如果不成立,則為表達(dá)式3的值。在題干中,如果“a>b”且“b>c”,則k值為1;如果“a>b”且“b<c”,則k值為0;如果“a<b”,則k值為0。條件“a>b”與“b>c”中只要有一個條件不成立,k的值就為0。故本題答案為B選項。
6.A
7.B[解析]&按位與,如果兩個相應(yīng)的二進(jìn)制位都為1.則該位的結(jié)果值為1.否則為0.按位或兩個相應(yīng)的二進(jìn)制位中只要有一個為1.該位的結(jié)果值為1.2的二進(jìn)制為0000010.4的二進(jìn)制為000000所以做或運算結(jié)果為0000110.該數(shù)與5即00000101做與操作結(jié)果為0000100.即4.
8.D解析:在程序中,當(dāng)L的值為5和4時,case都沒有與其匹配的值,所以執(zhí)行default語句;當(dāng)k=3時,執(zhí)行n+=k;得n=3;當(dāng)L=2時,執(zhí)行case2:然后順序執(zhí)行case3:n+=k;得n=5;當(dāng)k=1時,執(zhí)行case1:n+=k;得n=6,然后順序執(zhí)行case2:和case3:n+=k;使得n=7。
9.D本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因為(7/2)>1,所以執(zhí)行f(3),依此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時X值為3,然后退出f(1.5),返回f(3),打印x值即7。所以選D。
10.B
11.AC語言中,字符指針變量可以直接使用字符串賦值,而字符數(shù)組不能直接使用字符串或字符數(shù)組賦值,選項B、C、D錯誤,選項A正確。故本題答案為A選項。
12.Cdoublea,*p=&a語句的意思是將a的值存放到指針變量P中,P是指針可以隨意指向任何地址,所以答案C錯誤。
13.B
14.A本題考查getchar函數(shù)與putchar函數(shù),通過9etchar函數(shù)讀入字符,并通過putchar函數(shù)將字符逐個輸出,當(dāng)用戶輸入“?”時停止輸出,且c是一個字符變量只占一個字節(jié)。
15.B
16.C
17.B當(dāng)b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當(dāng)b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當(dāng)b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當(dāng)b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。
18.D
19.A解析:在C語言中所謂函數(shù)的遞歸是在指在調(diào)用一個函數(shù)的過程中,又出現(xiàn)了直接或間接地調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用.由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是i
20.D解析:在C++語言中退格符表示為\\b退格。注意:其他轉(zhuǎn)義字符的意義:\\n表示回車換行,\\t表示橫向跳到下一制表位置,\\v表示豎向跳格,\\r表示回車,\\f表示走紙換頁,\\\\表示反斜線符,\\a表示鳴鈴,\\ddd1~3位表示八進(jìn)制數(shù)所代表的字符,\\xhh1~2位表示十六進(jìn)制數(shù)所代表的字符。
21.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進(jìn)行比較,如果當(dāng)前字符小于下—個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
22.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果寫為1/(n*n),則會因為1和n都為整型,結(jié)果則為實型,將1變?yōu)?.0,結(jié)果則為實型。
23.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
24.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。
25.p!=NULL或P或p!=0或p!='0'p->next或(*p).nextp!=NULL或P或p!=0或p!='0'\r\np->next或(*p).next解析:程序中定義了一個結(jié)構(gòu)體類型名Node,其中定義了一個指向結(jié)點類型的指針next。接下來用Node定義了頭結(jié)點指針變量h和指向第一個結(jié)點的指針變量p,在滿足p未指向最后一個結(jié)點的空指針時(即為NULL),輸出p所指向結(jié)點的字符串,所以第一處應(yīng)填p!=NULL,然后將p指向下一個非空結(jié)點,所以第二處應(yīng)填P->next或與其等效的形式,反復(fù)執(zhí)行直到所有的結(jié)點都輸出。
26.解析:程序通過語句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”將結(jié)構(gòu)體變量s中各結(jié)點連接成了一個循環(huán)鏈表,即最后一個結(jié)點的指針域指向了頭結(jié)點,整個鏈表形成了一個環(huán),并通過語句“p=s;q=p->next;r=q->next;”將結(jié)構(gòu)體指針變量p、q、r指向了各結(jié)點。
27.structnode*
28.3
29.非線性結(jié)構(gòu)非線性結(jié)構(gòu)
30.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時,調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時,調(diào)用PRINT(4),P(4)輸出4,theend。
31.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。
32.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本題考核的知識點是malloc()函數(shù).該函數(shù)的調(diào)用格式是“malloc(n)”,作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址.所以在此空格處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價的表達(dá)式。
33.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
34.10
35.運行后報錯運行后報錯解析:指針q沒有指向確定的存儲單元,故不能賦值。
36.cdeabcdeab解析:本題中函數(shù)move的實參到形參是按地址傳遞,故形參的改變會影響實參。根據(jù)題目可知在main函數(shù)中,n=3、s[0]=\'a\'、s[1]=\'b\'、s[2]=\'c\'、s[3]=\'d\'、s[4]=\'e\',數(shù)組元素s[5]~s[49]全部為\'\\0\',故z=strlen(s)=5。
第1次調(diào)用函數(shù)move時,形參str='abcd'、n=5,執(zhí)行完函數(shù)move后str[4]=str[3]=\'d\'、str[3]=str[2]=\'c\'、str[2]=str[1]=\'b\'、str[1]=str[0]=\'a\'、str[0]=str[4]=\'e\'。即s[0]=\'e\'、s[1]=\'a\'s[2]、s[2]=\'b\'、s[3]=\'c\'、s[4]=\'d\'。
第2次調(diào)用函數(shù)move時,形參str='eabcd、n=5,執(zhí)行完函數(shù)move后str[4]=str[3]=\'c\'、str[3]=str[2]=\'b\'、str[2]=str[1]=\'a\'、str[1]=str[0]=\'e\'、str[0]=str[4]=\'d\'。即s[0]=\'d\'、s[1]c\'e\'、s[2]=\'a\'、s[3]=\'b\'、s[4]=\'c\'。
第3次調(diào)用函數(shù)move時,形參str='deabc'、n=5,執(zhí)行完函數(shù)move后str[4]=str[3]=\'b\'、str[3]=str[2]=\'a\'、str[2]=str[1]=\'e\'、str[1]=str[0]=\'d\'、str[0]=str[4]=\'c\'。即s[0]=\'c\'、s[1]=\'d\'、s[2]=\'e\'、s[3]=\'a\'、s[4]=\'b\'。
所以printf函數(shù)的輸出結(jié)果為:cdeab。
37.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進(jìn)制輸出的。
38.2525解析:#NAME?
39.b=14b=14解析:分析程序可知,n的初始值為1,因此,while(n<=3)循環(huán)3次。第1次:c=c*a=2:b=b+c=2;n=2。第2次:c=c*a=4;b=-b+c=6;n=3。第3次;c=c*a=8:b=b+c=14。當(dāng)n=4時,判斷條件不滿足,退出循環(huán)。
40.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:“chars[80],d[80];”定義了兩個字符型數(shù)組,可以放入80個字符。gets函數(shù)是C語言提供的一個專門用于讀字符串的函數(shù),它讀入全部字符(包括空格),直到遇到回車為止。本題中,讀入字符串s后,開始比較s中的每個字符是否為數(shù)字字符,因為字符數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,所以只需比較相應(yīng)的字符是否在'0'到'9'之間,或使用庫函數(shù)isdigit(),來判斷是否為數(shù)字字符。如果是數(shù)字字符則將此字符存入d數(shù)組中,不是則繼續(xù)進(jìn)行下一字符的比較,直至s結(jié)束(即'0'的出現(xiàn))。將'\\0'字符作為字符串d結(jié)束標(biāo)志,最后調(diào)用puts函數(shù)輸出d。所以空白處應(yīng)填入比較語句s[i]>>='0'&&s[i]<='9'或isdigit(s[i])以及其他任何等價表達(dá)式。
41.D
42.A解析:C語言中[]比*優(yōu)先級高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個元素,然后再與line前面的'*'結(jié)合,表示此數(shù)組是一個指針數(shù)組,每個數(shù)組元素都是一個基類型為char的指針變量。
43.B棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點是先進(jìn)后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈?zhǔn)酱鎯Α?/p>
44.C解析:成員next中存放的是下一個結(jié)點的地址。
45.A解析:條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3;先求解表達(dá)式1,若為真則求解表達(dá)式2;若表達(dá)式1的值為假,則求解表達(dá)式3。本題中先判斷i==j,不等,執(zhí)行j=7;然后執(zhí)行x=7。故本題為A。
46.D關(guān)系R與s經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
47.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈?zhǔn)浇Y(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
48.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應(yīng)減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,選項C)也不選。
49.C解析:軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。它有3個方面的重要特征,即測試的挑剔性、完全測試的不可能性及測試的經(jīng)濟(jì)性。其中沒有測試的可靠性這一說法。注意:軟件測試與軟件調(diào)試的概念,以及相應(yīng)的方法。
50.A
51.A解析:題目的四個選項中,B、C、D都不要求運算數(shù)必須為整數(shù),參與模運算(%)的運算數(shù)必須是整型數(shù)據(jù)。
52.B解析:此程序考察了for循環(huán)和x++。對于大循環(huán),有兩個x++,其中循環(huán)3次,對于小循環(huán),循環(huán)三次,但是運行了兩次x++,所以最后結(jié)果是6+2=8。
53.C解析:在C語言中,字符型數(shù)據(jù)在內(nèi)存中的存儲形式是ASCII碼值。當(dāng)需要以整型格式輸出字符時,輸出的也是ASCII碼值。字符“A”和“D”的ASCII碼值分別為65和68。
54.A解析:程序執(zhí)行的實際計算工作量與不僅與程序的控制結(jié)構(gòu)有一定的關(guān)系,與處理的數(shù)據(jù)量有關(guān),而民還與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。所以,選項A正確,選項B和選項C錯誤。
55.B解析:本題考查邏輯與運算的運算規(guī)則。其規(guī)則是:當(dāng)運算符前后兩個條件表達(dá)式都滿足時,其最終結(jié)果才為真。當(dāng)發(fā)現(xiàn)第一個表達(dá)式的值為假后,計算機(jī)將不再執(zhí)行后面表達(dá)式的運算。
本題中,由于前一個表達(dá)式的值為“假”,所以,后面的表達(dá)式不再進(jìn)行運算,因而n的值保持不變,仍為2。
56.A解析:本題考查%s控制符在scanf函數(shù)中的應(yīng)用。scanf函數(shù)中%s控制符的作用是將鍵盤輸入的字符串送到內(nèi)存,輸入的字符串從第一個非空格字符算起,遇到空格或回車就認(rèn)為是輸入結(jié)束。本題中執(zhí)行語句scanf('%s%s',p,q)時,從鍵盤輸入abcdef<回車>后,指針變量p指向字符串'abc\\0',q指向字符串'def\\0',但是由于p和q指向同一個存儲單元,所以存儲單元中存放的是'def\\0',printf函數(shù)的輸出結(jié)果為defdef。
57.C解析:在C語言中,對于不同類型的數(shù)據(jù)用不同的格式字符,其中,“%d”是按整型數(shù)據(jù)的實際長度輸出,“%md”中,m為指定的輸出字段的寬度,如果數(shù)據(jù)的位數(shù)小于m,則左端補以空格,若大于m,則按實際位數(shù)輸出。注意:格式輸入函數(shù)scanf的使用。
58.D解析:本題考核的知識點是文件的讀寫方式。在C語言中文本文件是以ASCII碼形式存放的,每個字符占一個字節(jié)。由于數(shù)據(jù)在計算機(jī)中是以;進(jìn)制形式存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把ASCH碼轉(zhuǎn)換成二進(jìn)制,因此速度較快。在文本文件中,數(shù)據(jù)以ASCII碼形式存放的,用戶很難判定一個數(shù)據(jù)到底占幾個字節(jié),所以不適合使用隨機(jī)讀寫方式。數(shù)據(jù)以二進(jìn)制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進(jìn)行隨機(jī)讀寫,當(dāng)然也可以順序讀寫。所以,D選項為所選。
59.B
60.A
61.A本題考查的是在鏈表中刪除結(jié)點的操作。在本題中指針p指向結(jié)點a,q指向結(jié)點b。要把結(jié)點b刪除,就應(yīng)該首先讓結(jié)點a的指針域指向結(jié)點C,即p—next=q—next,也可以寫成(*p).next=(Pq).next,然后釋放結(jié)點b,
free(q):所以,4個選項中,只有A)滿足題意。
62.C
63.D
64.D軟件并不只是包括可以在計算機(jī)上運行的程序,與這些程序相關(guān)的文檔一般也被認(rèn)為是軟件的一部分,即軟件是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。其中,程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文材料。
軟件具有如下特點:軟件是一種邏輯實體,而不是具體的物理實體;軟件的生產(chǎn)與硬件不同,它沒有明顯的制造過程;在軟件的運行和使用期間,沒有硬件那樣的機(jī)械磨損和老化問題;軟件的開發(fā)和運行常常受到計算機(jī)系統(tǒng)的限制,對計算機(jī)系統(tǒng)有著不同程度的依賴性;軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式;軟件本身是復(fù)雜的;軟件成本相當(dāng)昂貴;相當(dāng)多的軟件工作涉及社會因素。
65.C
66.D
67.A
68.DA選項中變量類型符double后面不能有逗號。B選項中變量b不能先使用再定義,應(yīng)該寫成選項D中的格式。C選項中變量a后面應(yīng)該是逗號而不是分號。
69.D本題考查的是
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貨物運輸代理授權(quán)委托合同
- VR技術(shù)在教育培訓(xùn)行業(yè)的創(chuàng)新應(yīng)用
- 客戶往來商務(wù)信函管理規(guī)范
- 《歷史經(jīng)典著作〈紅樓夢〉閱讀教學(xué)設(shè)計》
- 產(chǎn)品采購及供應(yīng)協(xié)議規(guī)范內(nèi)容
- 高考語文復(fù)習(xí):文言文專題訓(xùn)練《莊子》
- 人才培訓(xùn)與招聘服務(wù)協(xié)議
- 健康生活咨詢服務(wù)協(xié)議條款
- 補簽購銷合同
- 高考語文新增分大一輪人教版講義專題八文言文閱讀Ⅲ核心突破五
- 《高科技服裝與面料》課件
- 《馬克思生平故事》課件
- 2024-2025學(xué)年四川省成都市高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測英語試題(解析版)
- HRBP工作總結(jié)與計劃
- 八大危險作業(yè)安全培訓(xùn)考試試題及答案
- 2025中國船舶集團(tuán)限公司招聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年上半年中電科太力通信科技限公司招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年沙洲職業(yè)工學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 【化學(xué)】常見的鹽(第1課時)-2024-2025學(xué)年九年級化學(xué)下冊(人教版2024)
- 2024甘肅省公務(wù)員(省考)行測真題
評論
0/150
提交評論