![2021年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/f3d79055e2bfd6e8dc925dbd62c87557/f3d79055e2bfd6e8dc925dbd62c875571.gif)
![2021年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/f3d79055e2bfd6e8dc925dbd62c87557/f3d79055e2bfd6e8dc925dbd62c875572.gif)
![2021年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/f3d79055e2bfd6e8dc925dbd62c87557/f3d79055e2bfd6e8dc925dbd62c875573.gif)
![2021年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/f3d79055e2bfd6e8dc925dbd62c87557/f3d79055e2bfd6e8dc925dbd62c875574.gif)
![2021年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/f3d79055e2bfd6e8dc925dbd62c87557/f3d79055e2bfd6e8dc925dbd62c875575.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.對(duì)n個(gè)關(guān)鍵字的序列進(jìn)行快速排序,平均情況下的空間復(fù)雜度為_(kāi)______
A.O(1)B.O(logn)C.O(n)D.O(nlogn)
3.
4.參加百年阿里培訓(xùn)的n位同學(xué)結(jié)伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學(xué)一組,請(qǐng)給出一個(gè)算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時(shí)間復(fù)雜度為?(假設(shè)體重均為整數(shù))()
A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)
5.如果只想得到1024個(gè)元素組成的序列中第5個(gè)最小元素之前的部分排序的序列,用()方法最快
A.冒泡排序B.快速排序C.簡(jiǎn)單選擇排序D.堆排序
6.以下敘述中錯(cuò)誤的是()。
A.通過(guò)指針變量存取某個(gè)變量值的方式稱(chēng)為“直接存取”方式
B.在程序的開(kāi)頭包含頭文件stdio.h后,可以給指針變量賦NULL值
C.將一個(gè)指針變量中的值賦給另一個(gè)指針變量,則這兩個(gè)指針變量指向同一地址
D.C語(yǔ)言中函數(shù)返回值的類(lèi)型可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,也可以是指針類(lèi)型
7.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
8.若有定義:“inta[2][3];”,則對(duì)a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
9.以下是if語(yǔ)句的基本形式:
if(表達(dá)式.語(yǔ)句
其中“表達(dá)式”()。
A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式
10.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
11.設(shè)有二維數(shù)組A7×8,每個(gè)數(shù)據(jù)元素占8個(gè)字節(jié)存儲(chǔ)單元,順序存放,A第一個(gè)元素A0,0的存儲(chǔ)地址為1000,數(shù)組A的最后一個(gè)元素A6,7的存儲(chǔ)地址為()。
A.1024B.1440C.1448D.1432
12.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是
A.12B.123C.234D.345
13.
14.設(shè)有一個(gè)棧,元素依次進(jìn)棧的順序?yàn)锳、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
15.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-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,
16.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。
A.0B.2C.3D.5
17.線(xiàn)性表是具有n個(gè)()的有限序列。
A.表元素B.字符C.數(shù)據(jù)元素D.數(shù)據(jù)項(xiàng)
18.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
19.以下選項(xiàng)中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
20.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。
A.&t[3][2]B.t[3]C.t[l]D.t[2][2]
二、2.填空題(20題)21.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對(duì)象有外部特征,而不知道也無(wú)須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱(chēng)為對(duì)象的______。
22.棧中允許進(jìn)行插入和刪除的一端叫做______。
23.閱讀下面語(yǔ)句,則執(zhí)行后的輸出結(jié)果為【】。
#include"stdio.h"
main()
{chara,b;
for(a='0',b='9';a<b;a++,b--)
printf("%c%c",a,b);
printf("\n");}
24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
25.在計(jì)算機(jī)軟件系統(tǒng)的體系結(jié)構(gòu)中,數(shù)據(jù)庫(kù)管理系統(tǒng)位于用戶(hù)和【】之間。
26.若有定義:intk;,以下程序段的輸出結(jié)果是______。for(k=2;k<6;k++,k++)printf("##%d",k);
27.以下程序的輸出結(jié)果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
28.設(shè)有以下結(jié)構(gòu)體類(lèi)型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫(xiě)到硬盤(pán)文件fp中,請(qǐng)將以下fwrite語(yǔ)句補(bǔ)充完整:
fwrite(student,【】,1,fp);
29.下列語(yǔ)句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
30.下列程序輸出的結(jié)果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
31.以下程序的輸出結(jié)果是()。
#inciude<stdio.h>
main()
{chars[]="ABCabc";
s[5]='\0';
printf("%s\n",s);
}
32.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
33.某二叉樹(shù)中度為2的結(jié)點(diǎn)有n個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
34.以下程序的功能是輸出字符串。請(qǐng)?zhí)羁铡?/p>
main()
{char*a[]={"Pascal","Clanguage","dbase","Cobol"};
char【】;
intj=0;
p=a;
for(;j<4;j++)
print{("%s\n",*【】);
}
35.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。
36.下列的for語(yǔ)句的循環(huán)次數(shù)為_(kāi)_____。
for(x=1,y=0;(y!=19)&&(x<7);x++);
37.十進(jìn)制數(shù)111用八位二進(jìn)制數(shù)表示為【】。
38.當(dāng)線(xiàn)性表的元素總數(shù)基本穩(wěn)定,且很少進(jìn)行插入和刪除操作,并要求以很快的速度存取線(xiàn)性表中的數(shù)據(jù)元素時(shí),應(yīng)采用【】存儲(chǔ)結(jié)構(gòu)。
39.下面能正確進(jìn)行字符串賦值操作的是
40.在面向?qū)ο蠓椒ㄖ?,?lèi)的實(shí)例稱(chēng)為_(kāi)_____。
三、1.選擇題(20題)41.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
42.設(shè)已定義i和k為int類(lèi)型變量,則以下for循環(huán)語(yǔ)句______。for(i=0;k=-1,k=1,i++,k++)printf("****\n");
A.判斷循環(huán)結(jié)束的條件不合法B.是無(wú)限循環(huán)C.循環(huán)—次也不執(zhí)行D.循環(huán)只執(zhí)行一次
43.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
44.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
45.若有說(shuō)明:int*p1,*p2,n=8,m;下列均是正確賦值語(yǔ)句的選項(xiàng)是()。
A.p1:&n;p2=&pl;
B.p1=n;
C.p1=&n;*p2=p1;
D.p1=&n;p2=p1;
46.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++;printf("%d\n",C);}
A.0B.2C.1D.3
47.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序運(yùn)行后的輸出結(jié)果是
A.b,bB.b,cC.a,bD.a,c
48.數(shù)據(jù)庫(kù)管理系統(tǒng)提供給用戶(hù)的接口是()
A.過(guò)程化語(yǔ)言B.數(shù)據(jù)庫(kù)語(yǔ)言C.宿主語(yǔ)言D.面向?qū)ο笳Z(yǔ)言
49.在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是()。
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.為發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序
50.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}
A.8B.7C.12D.9
51.請(qǐng)選出以下語(yǔ)句的輸出結(jié)果()printf("%d\n,strlen("\t\"065\xff\n"));
A.5B.14C.8D.輸出項(xiàng)不合法,無(wú)正常輸出
52.下列選項(xiàng)中,不能用作標(biāo)識(shí)符的是A._1234_B._1_2C.int_2_D.2_int_
53.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
54.下面的for語(yǔ)句的循環(huán)次數(shù)為()。
A.是無(wú)限循環(huán)B.循環(huán)次數(shù)不定C.最多執(zhí)行6次D.最多執(zhí)行5次
55.下列程序語(yǔ)句中,不正確的是______。
A.maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}intadd(floatx,floaty){……}
B.main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
C.floatadd()maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
D.floatadd(floatx,floaty){……}main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}
56.請(qǐng)選出下面正確的程序段()。
A.int*s;scanf("%d",s);┆
B.int*s,k;*s=100;┆
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';┆
D.int*s,k;char*p,c;s=&k;p=&c;s=p;*s=1;┆
57.以下敘述中正確的是()。
A.局部變量說(shuō)明為static存儲(chǔ)類(lèi),其生存期將得到延長(zhǎng)
B.全局變量說(shuō)明為static存儲(chǔ)類(lèi),其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類(lèi)的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類(lèi)說(shuō)明符與局部變量完全相同
58.設(shè)x,y均是int類(lèi)型變量,則以下不正確的函數(shù)調(diào)用為_(kāi)_____。
A.getchar();
B.putchar('\108');
C.scanf("%d%*2d%d",&x,&y);
D.putchar('\'');
59.在C程序中,判邏輯值時(shí),用“非0”表示邏輯值“真”,又用“0”表示邏輯值“假”。在求邏輯值時(shí),邏輯真和邏輯假可分別表示為
A.10B.01C.非0非0D.11
60.在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用<>(尖括號(hào))括起時(shí),尋找被包含文件的方式是()。
A.僅僅搜索當(dāng)前目錄
B.僅僅搜索源程序所在目錄
C.在標(biāo)準(zhǔn)目錄下查找指定的文件
D.先在源程序所在目錄搜索,如查找不到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄查找
四、選擇題(20題)61.
62.
63.以下選項(xiàng)中正確的定義語(yǔ)句是()。
A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;
64.一些重要的程序設(shè)計(jì)語(yǔ)言(inC語(yǔ)言和Pascal語(yǔ)言)允許過(guò)程的遞歸調(diào)用,而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
65.
66.下列敘述中正確的是()。A.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的
B.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)
C.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)
D.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)在存儲(chǔ)空間的需求上沒(méi)有可比性
67.
68.
69.
70.
71.有以下程序
main()
{
intn[3],i,j;
for(i=0;i<3;i++)
n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
}
程序運(yùn)行后的輸出結(jié)果是A.A.2
B.1
C.0
D.3
72.有以下程序:
#includc<stdio.h>
voidfun(int*p)
{printf("%d\n",p[5]);}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10};
fun(&a[3]);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.5B.6C.8D.9
73.
74.有以下程序:
#include<stdio.h>
main()
{FILE*fp;charstr[10];
fp=fopen("myfile,dat","");
{puts("abe",ip);fclose(fp);
fp=fopen("myfile.dat","a*");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%S",str);puts(str);
fclose(fp);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.abcB.28cC.abc28D.內(nèi)類(lèi)型不一致而出錯(cuò)
75.
76.下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。A.文件睦數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
D.文件由字符序列組成,其類(lèi)型只能是文本文件
77.
78.軟件工程出現(xiàn)的原因是
A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
79.設(shè)有定義:,以下不能計(jì)算出一"/Pchar型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:求兩個(gè)非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若num1和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸出的最大公約數(shù)為27。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫(xiě)函數(shù)fun(),其功能是根據(jù)以下公式計(jì)算S,并將計(jì)算結(jié)果作為函數(shù)值返回,通過(guò)形參傳入。例如,若n的值為11時(shí),函數(shù)的值為1.833333。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}
參考答案
1.D
2.D
3.D
4.B
5.D解析:從平均時(shí)間性能而言,快速排序最佳,其所需時(shí)間最少,但快速排序在最壞情況下的時(shí)間性能不如堆排序和歸并排序。當(dāng)序列中的記錄基本有序或元素個(gè)數(shù)較少時(shí),冒泡排序和簡(jiǎn)單選擇排序?yàn)樽罴雅判蚍椒ǎ时绢}答案應(yīng)該為選項(xiàng)D。
6.A通過(guò)指針變量存取某個(gè)變量值的方式稱(chēng)為“間接存取”方式,選項(xiàng)A錯(cuò)誤;頭文件stdio.h中定義了NULL,在程序的開(kāi)頭包含stdio.h后,可以給指針變量賦NULL值,表示一個(gè)空指針,選項(xiàng)B正確;將一個(gè)指針變量中的值賦給另一個(gè)指針變量,這兩個(gè)指針變量指向同一地址,選項(xiàng)C正確;C語(yǔ)言中函數(shù)返回值的類(lèi)型可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,也可以是指針類(lèi)型,選項(xiàng)D正確。故本題答案為A選項(xiàng)。
7.C程序首先定義整型變量a和b,a的初值為123456。接著通過(guò)while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過(guò)switch語(yǔ)句判斷b的值執(zhí)行對(duì)應(yīng)分支語(yǔ)句。所以對(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,通過(guò)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,通過(guò)break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。
8.A解析:本題考查如何通過(guò)地址來(lái)引用數(shù)組元素。通過(guò)地址來(lái)引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
9.D解析:本題主要考查關(guān)于if語(yǔ)句的說(shuō)明,if后面圓括號(hào)中的表達(dá)式,可是任意合法的C語(yǔ)言表達(dá)式(如:邏輯表達(dá)式、關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等),也可以是任意類(lèi)型的數(shù)據(jù)(如:整型、實(shí)型、字符型、指針型等。)
10.C選項(xiàng)A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項(xiàng)中由于c的值不為0,在將c的值賦給變量a后,表達(dá)式a=c的值為1,不再對(duì)表達(dá)式b=c計(jì)算;對(duì)于c選項(xiàng),表達(dá)式a=c的值為1,再求表達(dá)式b=c的值為1,然后進(jìn)行邏輯與運(yùn)算;D選項(xiàng)將b的值賦給c后再賦給e,故選擇C選項(xiàng)。
11.B
12.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來(lái)看不是線(xiàn)性的,但是在C語(yǔ)言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線(xiàn)性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個(gè)元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個(gè)指針p指向數(shù)組a的第1個(gè)元素a[0][0]。在第一個(gè)for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序?yàn)槠湓刭x從0~8九個(gè)值,然后用第二個(gè)for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個(gè)元素的值。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
13.A
14.C
15.A解析:在C語(yǔ)言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱(chēng)為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱(chēng)為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時(shí),將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見(jiàn)該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個(gè)長(zhǎng)度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
16.B程序首先給字符數(shù)組s賦值為“012xy”。for循環(huán)語(yǔ)句的功能是遍歷字符串,通過(guò)if條件語(yǔ)句對(duì)字符串中的小寫(xiě)字母進(jìn)行計(jì)數(shù),字符串中小寫(xiě)字母?jìng)€(gè)數(shù)為2,即n=2。故本題答案為B選項(xiàng)。
17.A
18.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s?!?*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運(yùn)算符“*”,故選項(xiàng)A、C不能表示“a[3]”;選項(xiàng)D的“*s+3”等于“a[0]+3”。故本題答案為B選項(xiàng)。
19.D在選項(xiàng)中,\\019,以0開(kāi)頭的數(shù)都為八進(jìn)制數(shù),而八進(jìn)制的表示數(shù)字是0~7,所以答案選擇D。
20.C數(shù)組的下標(biāo)是從0開(kāi)始的,A中越界,行下標(biāo)和列下標(biāo)都不能越界;B中,雖然是個(gè)地址,但是也同樣越界了;選項(xiàng)C中表示的是第一個(gè)的首地址;選項(xiàng)D表示的為其元素的值,并不是地址。
21.封裝性封裝性解析:對(duì)象具有下列5個(gè)基本特點(diǎn):①標(biāo)識(shí)惟一性;②分類(lèi)性:③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對(duì)象的外部特征,對(duì)象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見(jiàn)的,對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。
22.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線(xiàn)性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
23.918273645918273645解析:for是C語(yǔ)言的關(guān)鍵字,其后的一對(duì)圓括號(hào)中通常含有3個(gè)表達(dá)式,各個(gè)表達(dá)式之間用分號(hào)隔開(kāi),這3個(gè)表達(dá)式可以是任意形式的表達(dá)式,通常主要用于for循環(huán)控制。
24.軟件開(kāi)發(fā)
25.操作系統(tǒng)或OS操作系統(tǒng)或OS解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)。位于用戶(hù)和操作系統(tǒng)之間。
26.本題主要考查for循環(huán)語(yǔ)句。for循環(huán)的增量表達(dá)式為逗號(hào)表達(dá)式,相當(dāng)于k+=2;,即每次循環(huán)后k增加2。第一次循環(huán)時(shí),k=2,因此輸出##2;第二次循環(huán)時(shí)k=4,輸出##4。此后k=6,不滿(mǎn)足循環(huán)條件。\r\n\r\n
27.2424解析:本題程序定義了一維數(shù)組p,有七個(gè)數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2=1)的值為真時(shí),執(zhí)行語(yǔ)句j+=p[i++];,如:當(dāng)i=0時(shí),i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2=1)的值為真,所以接個(gè)表達(dá)式(i<7&&p[i]%2=1的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類(lèi)推可以得出答案24。
28.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個(gè)指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫(xiě)的字節(jié)數(shù);count是要寫(xiě)多少個(gè)size字節(jié)的數(shù)據(jù)項(xiàng);fp是文件指針。
29.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動(dòng)覆蓋字符數(shù)組sp末尾的\'\\0\'。
30.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級(jí)和塊級(jí)的變量,全局變量是指作用域在程序級(jí)和文件級(jí)的變量。本程序首先定義了一個(gè)全局變量m=17,m=17的作用域在整個(gè)程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個(gè)局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過(guò)fun函數(shù)返回兩個(gè)形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。
31.ABCabABCab解析:本題中字符數(shù)組的初值是“ABCabc”,s[5]='c',然后通過(guò)s[5]='\\0'重新給s[5]賦值,在C語(yǔ)言中'\\0'是字符串結(jié)束標(biāo)志,執(zhí)行s[5]='\\0',其實(shí)是將s[5]的值去掉只保留前面的字符。
32.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
33.n+1n+1解析:在任意一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個(gè)。
34.**p(p+i)
35.88解析:fabs函數(shù)功能是求x的絕對(duì)值,計(jì)算結(jié)果為double型。pow功能是計(jì)算x的y次方的值,計(jì)算結(jié)果同樣為double型。所以本題表達(dá)式相當(dāng)于2.0的3.0次方,結(jié)果為8.000000。
36.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測(cè)循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿(mǎn)足x<7時(shí)循環(huán)6次。
37.11011111101111解析:本題通過(guò)除2取余法即可求出十進(jìn)制數(shù)111所對(duì)應(yīng)的二進(jìn)制數(shù)1101111。
38.順序順序
39.C
40.對(duì)象對(duì)象解析:類(lèi)描述的是具有相似性質(zhì)的一組對(duì)象。例如,每本具體的書(shū)是一個(gè)對(duì)象,而這些具體的書(shū)都有共同的性質(zhì),它們都屬于更一般的概念“書(shū)”這一類(lèi)對(duì)象。一個(gè)具體對(duì)象稱(chēng)為類(lèi)的實(shí)例。
41.A答案A
解析:一個(gè)C程序可以有一個(gè)或多個(gè)程序文件,也可以有一個(gè)或多個(gè)函數(shù),所以一個(gè)C語(yǔ)言程序可以實(shí)現(xiàn)多種算法。
42.B解析:本題定義了一個(gè)for循環(huán),循環(huán)變量是i,但由于本題并沒(méi)有設(shè)置循環(huán)條件,所以循環(huán)的條件永遠(yuǎn)默認(rèn)為真,即無(wú)限次執(zhí)行循環(huán)。
43.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向?yàn)橛捎蚁蜃?,即將:右?cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計(jì)算再賦值。選項(xiàng)A中運(yùn)算符%的運(yùn)算對(duì)象必須為整數(shù),而選項(xiàng)A中26.8不為整數(shù),故選項(xiàng)A不正確;選項(xiàng)B將一個(gè)變量賦值給一個(gè)常量,這在C語(yǔ)言中是不允許的,故選項(xiàng)B不正確;選項(xiàng)D中也是將一個(gè)常量3賦值給一個(gè)常量,故選項(xiàng)D不正確;所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
44.C解析:A、D選項(xiàng)是關(guān)系運(yùn)算表達(dá)式,在C語(yǔ)言中,只要關(guān)系運(yùn)算符兩邊是合法的表達(dá)式就可以了。C選項(xiàng)中,%只能對(duì)整型進(jìn)行運(yùn)算,其中對(duì)f進(jìn)行了強(qiáng)制類(lèi)型轉(zhuǎn)換,但是轉(zhuǎn)換的表達(dá)式錯(cuò)了,應(yīng)為:(int)(f)。
45.D解析:本題考查指針變量的賦值。選項(xiàng)A)中,p1、p2本身都是地址變量,不能再將p1取地址賦給p2;選項(xiàng)B)中,不能將整型數(shù)據(jù)直接賦值給指針型數(shù)據(jù);選項(xiàng)C)中,*p2代表了一個(gè)整型變量,而*p2=p1這個(gè)語(yǔ)句試圖把一個(gè)地址值放入一個(gè)整型變量中是錯(cuò)誤的;選項(xiàng)D)中指針間的賦值是正確的。
46.C解析:本題考查if語(yǔ)句。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b不成立,不再執(zhí)行下列的語(yǔ)句,直接執(zhí)行最后的printf輸出語(yǔ)句,然后結(jié)束程序,整個(gè)過(guò)程c的值沒(méi)有發(fā)生變化。
47.A解析:程序中的第一個(gè)輸出語(yǔ)句輸出表達(dá)式++a的值,該++a是在使用a之前,先使a的值加1,即為a加1為字符b,此時(shí)a的值為b,所以第一個(gè)輸出語(yǔ)句輸出的值為b,第二個(gè)輸出語(yǔ)句中輸出的b的值,這時(shí)b的值為表達(dá)式a++的值,a++是在使用a之后(此時(shí)a的值為b,所以賦給b的值為B),使a的值加一因此第二個(gè)輸出的值也為b.所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
48.C
49.D解析:使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿(mǎn)足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。
50.B解析:第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]-1=3:第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4:第3次執(zhí)行for循環(huán),p[1][2]=1,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。
51.A
52.D解析:本題考核的知識(shí)點(diǎn)是用戶(hù)的標(biāo)識(shí)符。在C語(yǔ)言中,合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線(xiàn)組成,并且第一個(gè)字符必須為字母或者下劃線(xiàn),如:acd,d_ad、_adf124,_124等都是合法的標(biāo)識(shí)符號(hào).而2asdf、_sd/=都不是合法的標(biāo)識(shí)符.在C語(yǔ)言中大寫(xiě)字母和小寫(xiě)字母被認(rèn)為是兩個(gè)不同的字符,如:ACD和acd是兩個(gè)不同的標(biāo)識(shí)符號(hào)。選項(xiàng)D中用下劃線(xiàn)作為第一個(gè)字符,這是不合法的,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
53.A解析:通過(guò)地址來(lái)引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來(lái)引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
54.D
55.B
56.C解析:本題的選項(xiàng)A)和B)犯了一個(gè)同樣的錯(cuò)誤,即指針變量s定義后并沒(méi)有指向具體的變量。也就是說(shuō),s中沒(méi)有確定的地址值,它的值是不可預(yù)見(jiàn)的,所指向的單元也是不可預(yù)見(jiàn)的,因此不能進(jìn)行賦值操作。另外,在選項(xiàng)D)中,s是int型指針變量,p是char型指針變量,指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
57.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲(chǔ)類(lèi)別,故全局變量說(shuō)明為static存儲(chǔ)類(lèi),和沒(méi)有說(shuō)明為static存儲(chǔ)類(lèi)其生存期都是一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲(chǔ)類(lèi)說(shuō)明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
58.B解析:八進(jìn)制中的基本數(shù)為0~7,不可能出現(xiàn)8。
59.A解析:在C程序中,判斷邏輯值時(shí),用非0表示真,用0表示假。邏輯表達(dá)式計(jì)算時(shí),邏輯表達(dá)式值為真是用1表示的,若邏輯表達(dá)式的值為假,則用0表示。
60.C解析:本題考查文件包含的知識(shí)點(diǎn):格式1:#include(文件名),預(yù)處理程序在標(biāo)準(zhǔn)目錄下查找指定的文件;格式2:#include“文件名”,預(yù)處理程序首先在引用被包含文件的源文件所在的目錄中尋找指定的文件,如查找不到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄查找。
61.D
62.B
63.DA選項(xiàng)中變量類(lèi)型符double后面不能有逗號(hào)。B選項(xiàng)中變量b不能先使用再定義,應(yīng)該寫(xiě)成選項(xiàng)D中的格式。C選項(xiàng)中變量a后面應(yīng)該是逗號(hào)而不是分號(hào)。
64.A在允許過(guò)程的遞歸調(diào)用的程序設(shè)計(jì)語(yǔ)言中,由于C語(yǔ)言中棧的特性為先進(jìn)后出,因此用棧來(lái)實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配。
65.A
66.B線(xiàn)性鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中每個(gè)結(jié)點(diǎn)都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲(chǔ)空間,所以一般要多于順序存儲(chǔ)結(jié)構(gòu)。
67.D
68.C
69.A
70.D
71.D初始時(shí)定義一個(gè)大小為3個(gè)一維整型數(shù)組,第一個(gè)for語(yǔ)句是對(duì)數(shù)組賦初值,每個(gè)值都為0。后面是一個(gè)for語(yǔ)句的嵌套調(diào)用,外層的循環(huán)變量i的取值為[0,2],內(nèi)層循環(huán)變量的取值范圍為[0,2]。最初外層的循環(huán)變量i=0,內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[0]+1,得到n[0]=1,n[1]=1,n[2]=1。外層for語(yǔ)句的循環(huán)變量為1時(shí),內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[1]+1,得到n[0]=2,n[1]=2,n[2]=2。外層for語(yǔ)句的循環(huán)變量為2時(shí),內(nèi)層的循環(huán)變量j取值從0到2,計(jì)算n[j]=n[2]+1,得到n[0]=3,n[1]=3,n[2]=3。最后的輸出結(jié)果為3。
72.B\n由題可知,fun(&a[3])是將&a[3]作為參數(shù),而fun(int*p)后執(zhí)行的語(yǔ)句為p[5],由數(shù)組a可知輸出的為6。
\n
73.C
74.C\n本題考查文件的操作,首先打開(kāi)文件,進(jìn)行寫(xiě)操作,把“abc”寫(xiě)入“myfile”文件,再打開(kāi)“myfile.data'文件,輸入28,在鍵盤(pán)上接收字符,輸出并關(guān)閉文件。本題結(jié)果為abc28。
\n
75.A
76.A文件有二進(jìn)制文件和文本文件,里面的數(shù)據(jù)與類(lèi)型無(wú)關(guān),所以選擇A)。
77.C
78.C軟件工程這個(gè)概念正式出現(xiàn)在1968年NATO軟件工程會(huì)議上。
自20世紀(jì)40年代計(jì)算機(jī)問(wèn)世以來(lái),如何編制符合要求的程序一直是人們追求的目標(biāo)。并且,隨著計(jì)算機(jī)應(yīng)用領(lǐng)域的擴(kuò)大,人們對(duì)軟件的需求量劇增,對(duì)軟件的正確性提出了更高的要求,并迫切地需要縮短軟件生產(chǎn)周期。但是,當(dāng)時(shí)的軟件編制還只是一種手工活動(dòng),過(guò)多地依賴(lài)于程序員的個(gè)人能力和技巧,這就導(dǎo)致了軟件的生產(chǎn)周期長(zhǎng)、可靠性及可維護(hù)性也很差。軟件開(kāi)發(fā)遠(yuǎn)遠(yuǎn)落后于硬件發(fā)展,遠(yuǎn)遠(yuǎn)滿(mǎn)足不了社會(huì)的需求,從而爆發(fā)了一場(chǎng)“軟件危機(jī)”。
為了克服這種危機(jī),結(jié)構(gòu)化程序設(shè)計(jì)及軟件工程應(yīng)運(yùn)而生,以期提高軟件生產(chǎn)率,改善軟件質(zhì)量。
軟件工程作為一門(mén)學(xué)科的出現(xiàn)給軟件界帶來(lái)了一場(chǎng)變革,眾多的研究者和實(shí)踐者投身于軟件工程領(lǐng)域,并取得了豐碩成果。雖然離預(yù)期目標(biāo)仍有很大距離,并未能從根本上克服軟件危機(jī),但是軟件工程的思想畢竟給人們帶來(lái)希望的曙光。
79.A根據(jù)題目中的定義可以知道sizeof(p),計(jì)算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占字節(jié)數(shù)。
80.D
81.
【解析】本題是考查常用的求最大公約數(shù)的算法,其過(guò)程是設(shè)兩數(shù)為a、b,若a大于b.則用a除以b,否則用b除以a,用除得的余數(shù)再去除以除數(shù),再得到一個(gè)余數(shù),一直除下去,直到余數(shù)為0,即可求出最大公約數(shù)。要實(shí)現(xiàn)變量a、b互換,應(yīng)該使用t=a;a=b;b=t;,此處t為中問(wèn)變量;返回值為最大公約數(shù),因此應(yīng)返回除數(shù)b,而不是a。
82.floatfun(intn){ inti,s1=0; floats=0.0; for(i=1;i<=n;i++) { s1=s1+i; /*求每一項(xiàng)的分母*/ s=s+1.0/s1; /*求多項(xiàng)式的值*/ } returns;}首先需要根據(jù)題意分析表達(dá)式的規(guī)律,得出通項(xiàng),然后再完成程序語(yǔ)句。本題中公式的規(guī)律類(lèi)似于求1+2+…+n的倒數(shù)之和??梢酝ㄟ^(guò)for循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)第1項(xiàng)到第n項(xiàng)的變化。先根據(jù)題目要求定義變量,注意該變量的數(shù)據(jù)類(lèi)型。然后對(duì)其進(jìn)行初始化操作,因?yàn)樵撟兞肯喈?dāng)于累加器,所以初值應(yīng)為0(或0.0,根據(jù)變量數(shù)據(jù)類(lèi)型來(lái)確定),再通過(guò)for循環(huán)語(yǔ)句來(lái)完成累加過(guò)程。本題中s1用來(lái)表示每一項(xiàng)的分母,每一項(xiàng)的分母都是由前一項(xiàng)分母加項(xiàng)數(shù)得到的。注意,由于s1定義成一個(gè)整型,因此在s=s+1.0/s1語(yǔ)句中不能把1.0寫(xiě)成1。2021年河北省唐山市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.對(duì)n個(gè)關(guān)鍵字的序列進(jìn)行快速排序,平均情況下的空間復(fù)雜度為_(kāi)______
A.O(1)B.O(logn)C.O(n)D.O(nlogn)
3.
4.參加百年阿里培訓(xùn)的n位同學(xué)結(jié)伴去西湖旁邊為游人指路,兩人一組,他們打算先讓體重之和恰好為102公斤的同學(xué)一組,請(qǐng)給出一個(gè)算法找到這樣的組合,或者確定他們中不存在這樣的組合,其中最優(yōu)的算法時(shí)間復(fù)雜度為?(假設(shè)體重均為整數(shù))()
A.O(log(n))B.O(n)C.O(nlog(n))D.O(n^2)
5.如果只想得到1024個(gè)元素組成的序列中第5個(gè)最小元素之前的部分排序的序列,用()方法最快
A.冒泡排序B.快速排序C.簡(jiǎn)單選擇排序D.堆排序
6.以下敘述中錯(cuò)誤的是()。
A.通過(guò)指針變量存取某個(gè)變量值的方式稱(chēng)為“直接存取”方式
B.在程序的開(kāi)頭包含頭文件stdio.h后,可以給指針變量賦NULL值
C.將一個(gè)指針變量中的值賦給另一個(gè)指針變量,則這兩個(gè)指針變量指向同一地址
D.C語(yǔ)言中函數(shù)返回值的類(lèi)型可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,也可以是指針類(lèi)型
7.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
8.若有定義:“inta[2][3];”,則對(duì)a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
9.以下是if語(yǔ)句的基本形式:
if(表達(dá)式.語(yǔ)句
其中“表達(dá)式”()。
A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式
10.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;
11.設(shè)有二維數(shù)組A7×8,每個(gè)數(shù)據(jù)元素占8個(gè)字節(jié)存儲(chǔ)單元,順序存放,A第一個(gè)元素A0,0的存儲(chǔ)地址為1000,數(shù)組A的最后一個(gè)元素A6,7的存儲(chǔ)地址為()。
A.1024B.1440C.1448D.1432
12.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是
A.12B.123C.234D.345
13.
14.設(shè)有一個(gè)棧,元素依次進(jìn)棧的順序?yàn)锳、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
15.有以下程序:voidf(inta[],inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,j-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,
16.有以下程序:#include<stdio.h>main(){chars[]={“012xy”;inti,n=0;for(i=0;s[i]|=0;i++)if(s[i]>=‘a(chǎn)’&&s[i]<=‘z’)n++;printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。
A.0B.2C.3D.5
17.線(xiàn)性表是具有n個(gè)()的有限序列。
A.表元素B.字符C.數(shù)據(jù)元素D.數(shù)據(jù)項(xiàng)
18.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
19.以下選項(xiàng)中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
20.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。
A.&t[3][2]B.t[3]C.t[l]D.t[2][2]
二、2.填空題(20題)21.在面向?qū)ο蟪绦蛟O(shè)計(jì)中,從外面看只能看到對(duì)象有外部特征,而不知道也無(wú)須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法,這稱(chēng)為對(duì)象的______。
22.棧中允許進(jìn)行插入和刪除的一端叫做______。
23.閱讀下面語(yǔ)句,則執(zhí)行后的輸出結(jié)果為【】。
#include"stdio.h"
main()
{chara,b;
for(a='0',b='9';a<b;a++,b--)
printf("%c%c",a,b);
printf("\n");}
24.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
25.在計(jì)算機(jī)軟件系統(tǒng)的體系結(jié)構(gòu)中,數(shù)據(jù)庫(kù)管理系統(tǒng)位于用戶(hù)和【】之間。
26.若有定義:intk;,以下程序段的輸出結(jié)果是______。for(k=2;k<6;k++,k++)printf("##%d",k);
27.以下程序的輸出結(jié)果是【】。
main()
{
intp[7]=(11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
28.設(shè)有以下結(jié)構(gòu)體類(lèi)型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫(xiě)到硬盤(pán)文件fp中,請(qǐng)將以下fwrite語(yǔ)句補(bǔ)充完整:
fwrite(student,【】,1,fp);
29.下列語(yǔ)句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
30.下列程序輸出的結(jié)果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
31.以下程序的輸出結(jié)果是()。
#inciude<stdio.h>
main()
{chars[]="ABCabc";
s[5]='\0';
printf("%s\n",s);
}
32.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
33.某二叉樹(shù)中度為2的結(jié)點(diǎn)有n個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
34.以下程序的功能是輸出字符串。請(qǐng)?zhí)羁铡?/p>
main()
{char*a[]={"Pascal","Clanguage","dbase","Cobol"};
char【】;
intj=0;
p=a;
for(;j<4;j++)
print{("%s\n",*【】);
}
35.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為【】。
36.下列的for語(yǔ)句的循環(huán)次數(shù)為_(kāi)_____。
for(x=1,y=0;(y!=19)&&(x<7);x++);
37.十進(jìn)制數(shù)111用八位二進(jìn)制數(shù)表示為【】。
38.當(dāng)線(xiàn)性表的元素總數(shù)基本穩(wěn)定,且很少進(jìn)行插入和刪除操作,并要求以很快的速度存取線(xiàn)性表中的數(shù)據(jù)元素時(shí),應(yīng)采用【】存儲(chǔ)結(jié)構(gòu)。
39.下面能正確進(jìn)行字符串賦值操作的是
40.在面向?qū)ο蠓椒ㄖ?,?lèi)的實(shí)例稱(chēng)為_(kāi)_____。
三、1.選擇題(20題)41.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
42.設(shè)已定義i和k為int類(lèi)型變量,則以下for循環(huán)語(yǔ)句______。for(i=0;k=-1,k=1,i++,k++)printf("****\n");
A.判斷循環(huán)結(jié)束的條件不合法B.是無(wú)限循環(huán)C.循環(huán)—次也不執(zhí)行D.循環(huán)只執(zhí)行一次
43.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語(yǔ)句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
44.設(shè)有定義:intk=1,m=2;floatf=7;則以下選項(xiàng)中錯(cuò)誤的表達(dá)式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
45.若有說(shuō)明:int*p1,*p2,n=8,m;下列均是正確賦值語(yǔ)句的選項(xiàng)是()。
A.p1:&n;p2=&pl;
B.p1=n;
C.p1=&n;*p2=p1;
D.p1=&n;p2=p1;
46.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++;printf("%d\n",C);}
A.0B.2C.1D.3
47.有以下程序main(){chara='a',b;printf("%c,",++A);printf("%c\n"。b=a++);}程序運(yùn)行后的輸出結(jié)果是
A.b,bB.b,cC.a,bD.a,c
48.數(shù)據(jù)庫(kù)管理系統(tǒng)提供給用戶(hù)的接口是()
A.過(guò)程化語(yǔ)言B.數(shù)據(jù)庫(kù)語(yǔ)言C.宿主語(yǔ)言D.面向?qū)ο笳Z(yǔ)言
49.在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是()。
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.為發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序
50.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta[2][3]={{1,2,3},{4,5,6}},(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[0][1]+a[1][1]+a[1][2]);}
A.8B.7C.12D.9
51.請(qǐng)選出以下語(yǔ)句的輸出結(jié)果()printf("%d\n,strlen("\t\"065\xff\n"));
A.5B.14C.8D.輸出項(xiàng)不合法,無(wú)正常輸出
52.下列選項(xiàng)中,不能用作標(biāo)識(shí)符的是A._1234_B._1_2C.int_2_D.2_int_
53.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
54.下面的for語(yǔ)句的循環(huán)次數(shù)為()。
A.是無(wú)限循環(huán)B.循環(huán)次數(shù)不定C.最多執(zhí)行6次D.最多執(zhí)行5次
55.下列程序語(yǔ)句中,不正確的是______。
A.maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}intadd(floatx,floaty){……}
B.main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
C.floatadd()maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
D.floatadd(floatx,floaty){……}main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}
56.請(qǐng)選出下面正確的程序段()。
A.int*s;scanf("%d",s);┆
B.int*s,k;*s=100;┆
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';┆
D.int*s,k;char*p,c;s=&k;p=&c;s=p;*s=1;┆
57.以下敘述中正確的是()。
A.局部變量說(shuō)明為static存儲(chǔ)類(lèi),其生存期將得到延長(zhǎng)
B.全局變量說(shuō)明為static存儲(chǔ)類(lèi),其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類(lèi)的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類(lèi)說(shuō)明符與局部變量完全相同
58.設(shè)x,y均是int類(lèi)型變量,則以下不正確的函數(shù)調(diào)用為_(kāi)_____。
A.getchar();
B.putchar('\108');
C.scanf("%d%*2d%d",&x,&y);
D.putchar('\'');
59.在C程序中,判邏輯值時(shí),用“非0”表示邏輯值“真”,又用“0”表示邏輯值“假”。在求邏輯值時(shí),邏輯真和邏輯假可分別表示為
A.10B.01C.非0非0D.11
60.在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用<>(尖括號(hào))括起時(shí),尋找被包含文件的方式是()。
A.僅僅搜索當(dāng)前目錄
B.僅僅搜索源程序所在目錄
C.在標(biāo)準(zhǔn)目錄下查找指定的文件
D.先在源程序所在目錄搜索,如查找不到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄查找
四、選擇題(20題)61.
62.
63.以下選項(xiàng)中正確的定義語(yǔ)句是()。
A.double,a,b;B.doublea=b=7;C.doublea;b;D.doublea=7,b=7;
64.一些重要的程序設(shè)計(jì)語(yǔ)言(inC語(yǔ)言和Pascal語(yǔ)言)允許過(guò)程的遞歸調(diào)用,而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
65.
66.下列敘述中正確的是()。A.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的
B.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)
C.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)
D.線(xiàn)性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)在存儲(chǔ)空間的需求上沒(méi)有可比性
67.
68.
69.
70.
71.有以下程序
main()
{
intn[3],i,j;
for(i=0;i<3;i++)
n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
n[j]=n[i]+1;
printf("%d\n",n[1]);
}
程序運(yùn)行后的輸出結(jié)果是A.A.2
B.1
C.0
D.3
72.有以下程序:
#includc<stdio.h>
voidfun(int*p)
{printf("%d\n",p[5]);}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10};
fun(&a[3]);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.5B.6C.8D.9
73.
74.有以下程序:
#include<stdio.h>
main()
{FILE*fp;charstr[10];
fp=fopen("myfile,dat","");
{puts("abe",ip);fclose(fp);
fp=fopen("myfile.dat","a*");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%S",str);puts(str);
fclose(fp);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.abcB.28cC.abc28D.內(nèi)類(lèi)型不一致而出錯(cuò)
75.
76.下列關(guān)于C語(yǔ)言文件的敘述中正確的是()。A.文件睦數(shù)據(jù)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
B.文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進(jìn)制文件或文本文件
C.文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進(jìn)制文件
D.文件由字符序列組成,其類(lèi)型只能是文本文件
77.
78.軟件工程出現(xiàn)的原因是
A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
79.設(shè)有定義:,以下不能計(jì)算出一"/Pchar型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:求兩個(gè)非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若num1和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸出的最大公約數(shù)為27。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫(xiě)函數(shù)fun(),其功能是根據(jù)以下公式計(jì)算S,并將計(jì)算結(jié)果作為函數(shù)值返回,通過(guò)形參傳入。例如,若n的值為11時(shí),函數(shù)的值為1.833333。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}
參考答案
1.D
2.D
3.D
4.B
5.D解析:從平均時(shí)間性能而言,快速排序最佳,其所需時(shí)間最少,但快速排序在最壞情況下的時(shí)間性能不如堆排序和歸并排序。當(dāng)序列中的記錄基本有序或元素個(gè)數(shù)較少時(shí),冒泡排序和簡(jiǎn)單選擇排序?yàn)樽罴雅判蚍椒?,故本題答案應(yīng)該為選項(xiàng)D。
6.A通過(guò)指針變量存取某個(gè)變量值的方式稱(chēng)為“間接存取”方式,選項(xiàng)A錯(cuò)誤;頭文件stdio.h中定義了NULL,在程序的開(kāi)頭包含stdio.h后,可以給指針變量賦NULL值,表示一個(gè)空指針,選項(xiàng)B正確;將一個(gè)指針變量中的值賦給另一個(gè)指針變量,這兩個(gè)指針變量指向同一地址,選項(xiàng)C正確;C語(yǔ)言中函數(shù)返回值的類(lèi)型可以是簡(jiǎn)單的數(shù)據(jù)類(lèi)型,也可以是指針類(lèi)型,選項(xiàng)D正確。故本題答案為A選項(xiàng)。
7.C程序首先定義整型變量a和b,a的初值為123456。接著通過(guò)while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過(guò)switch語(yǔ)句判斷b的值執(zhí)行對(duì)應(yīng)分支語(yǔ)句。所以對(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,通過(guò)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,通過(guò)break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。
8.A解析:本題考查如何通過(guò)地址來(lái)引用數(shù)組元素。通過(guò)地址來(lái)引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
9.D解析:本題主要考查關(guān)于if語(yǔ)句的說(shuō)明,if后面圓括號(hào)中的表達(dá)式,可是任意合法的C語(yǔ)言表達(dá)式(如:邏輯表達(dá)式、關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等),也可以是任意類(lèi)型的數(shù)據(jù)(如:整型、實(shí)型、字符型、指針型等。)
10.C選項(xiàng)A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項(xiàng)中由于c的值不為0,在將c的值賦給變量a后,表達(dá)式a=c的值為1,不再對(duì)表達(dá)式b=c計(jì)算;對(duì)于c選項(xiàng),表達(dá)式a=c的值為1,再求表達(dá)式b=c的值為1,然后進(jìn)行邏輯與運(yùn)算;D選項(xiàng)將b的值賦給c后再賦給e,故選擇C選項(xiàng)。
11.B
12.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來(lái)看不是線(xiàn)性的,但是在C語(yǔ)言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線(xiàn)性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個(gè)元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個(gè)指針p指向數(shù)組a的第1個(gè)元素a[0][0]。在第一個(gè)for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序?yàn)槠湓刭x從0~8九個(gè)值,然后用第二個(gè)for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個(gè)元素的值。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
13.A
14.C
15.A解析:在C語(yǔ)言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱(chēng)為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱(chēng)為函數(shù)的間接遞歸調(diào)用。由程序可以看出函數(shù)f(a,i,j)為一遞歸函數(shù),其功能是當(dāng)i<j時(shí),將數(shù)組中的元素a[i]和a[j]交換,然后再調(diào)用函數(shù)f(a,i+1,j-1),將數(shù)組中a[i+1]和a[j--]交換,這樣一直遞歸到數(shù)組下標(biāo)i=j,可見(jiàn)該遞歸函數(shù)的作用是使數(shù)組中首尾元素依次互換。主函數(shù)中定義了一個(gè)長(zhǎng)度為5的數(shù)組aa并初始化,然后調(diào)用f(a,0,4),將數(shù)組a中的元素依次互換,故最后for循環(huán)輸出的數(shù)組aa中各元素的值為5、4、3、2、1,所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
16.B程序首先給字符數(shù)組s賦值為“012xy”。for循環(huán)語(yǔ)句的功能是遍歷字符串,通過(guò)if條件語(yǔ)句對(duì)字符串中的小寫(xiě)字母進(jìn)行計(jì)數(shù),字符串中小寫(xiě)字母?jìng)€(gè)數(shù)為2,即n=2。故本題答案為B選項(xiàng)。
17.A
18.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s。“(*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運(yùn)算符“*”,故選項(xiàng)A、C不能表示“a[3]”;選項(xiàng)D的“*s+3”等于“a[0]+3”。故本題答案為B選項(xiàng)。
19.D在選項(xiàng)中,\\019,以0開(kāi)頭的數(shù)都為八進(jìn)制數(shù),而八進(jìn)制的表示數(shù)字是0~7,所以答案選擇D。
20.C數(shù)組的下標(biāo)是從0開(kāi)始的,A中越界,行下標(biāo)和列下標(biāo)都不能越界;B中,雖然是個(gè)地址,但是也同樣越界了;選項(xiàng)C中表示的是第一個(gè)的首地址;選項(xiàng)D表示的為其元素的值,并不是地址。
21.封裝性封裝性解析:對(duì)象具有下列5個(gè)基本特點(diǎn):①標(biāo)識(shí)惟一性;②分類(lèi)性:③多態(tài)性;④封裝性;⑤模塊獨(dú)立性好。其中,封裝性是指從外面看只能看到對(duì)象的外部特征,對(duì)象的內(nèi)部特征即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見(jiàn)的,對(duì)象的內(nèi)部狀態(tài)只能由其自身改變。
22.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線(xiàn)性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
23.918273645918273645解析:for是C語(yǔ)言的關(guān)鍵字,其后的一對(duì)圓括號(hào)中通常含有3個(gè)表達(dá)式,各個(gè)表達(dá)式之間用分號(hào)隔開(kāi),這3個(gè)表達(dá)式可以是任意形式的表達(dá)式,通常主要用于for循環(huán)控制。
24.軟件開(kāi)發(fā)
25.操作系統(tǒng)或OS操作系統(tǒng)或OS解析:數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)。位于用戶(hù)和操作系統(tǒng)之間。
26.本題主要考查for循環(huán)語(yǔ)句。for循環(huán)的增量表達(dá)式為逗號(hào)表達(dá)式,相當(dāng)于k+=2;,即每次循環(huán)后k增加2。第一次循環(huán)時(shí),k=2,因此輸出##2;第二次循環(huán)時(shí)k=4,輸出##4。此后k=6,不滿(mǎn)足循環(huán)條件。\r\n\r\n
27.2424解析:本題程序定義了一維數(shù)組p,有七個(gè)數(shù)組元素,整型變量i,j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2=1)的值為真時(shí),執(zhí)行語(yǔ)句j+=p[i++];,如:當(dāng)i=0時(shí),i<7為真,p[i]%2=11%2=1,表達(dá)式(p[i]%2=1)的值為真,所以接個(gè)表達(dá)式(i<7&&p[i]%2=1的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=1;,依此類(lèi)推可以得出答案24。
28.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度家庭園藝植物租賃與養(yǎng)護(hù)合同
- 2025年度企業(yè)并購(gòu)重組經(jīng)濟(jì)咨詢(xún)服務(wù)合同
- 2025年度大型油田供油合同(設(shè)備維護(hù)升級(jí)版)
- 2025年度交通設(shè)施施工材料質(zhì)量檢測(cè)合同
- 2025年度樁基工程綠色施工合同
- 2025年度建筑保溫材料研發(fā)與施工環(huán)保合同
- 2025年度建筑勞務(wù)派遣與用工管理合同
- 2025年城市地下空間開(kāi)發(fā)利用服務(wù)合同
- 2025年度城市綜合體項(xiàng)目開(kāi)發(fā)建設(shè)與物業(yè)管理合同
- 2025年度城市軌道交通工程分包合同
- 【重慶長(zhǎng)安汽車(chē)公司績(jī)效管理現(xiàn)狀、問(wèn)題及優(yōu)化對(duì)策(7600字論文)】
- 計(jì)算機(jī)網(wǎng)絡(luò)畢業(yè)論文3000字
- 2023年大學(xué)物理化學(xué)實(shí)驗(yàn)報(bào)告化學(xué)電池溫度系數(shù)的測(cè)定
- 農(nóng)村公共基礎(chǔ)知識(shí)
- 腦出血的護(hù)理課件腦出血護(hù)理查房PPT
- 煤礦機(jī)電運(yùn)輸安全培訓(xùn)課件
- 扣繳個(gè)人所得稅報(bào)告表-(Excel版)
- Unit+4+History+and+Traditions單元整體教學(xué)設(shè)計(jì)課件 高中英語(yǔ)人教版(2019)必修第二冊(cè)單元整體教學(xué)設(shè)計(jì)
- 提高預(yù)埋螺栓安裝一次驗(yàn)收合格率五項(xiàng)qc2012地腳
- 2023年全國(guó)自學(xué)考試00054管理學(xué)原理試題答案
- 六年級(jí)譯林版小學(xué)英語(yǔ)閱讀理解訓(xùn)練經(jīng)典題目(附答案)
評(píng)論
0/150
提交評(píng)論