![2021-2022年四川省內(nèi)江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/f7248ed1f247aae14d8faf4c66bde8bf/f7248ed1f247aae14d8faf4c66bde8bf1.gif)
![2021-2022年四川省內(nèi)江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/f7248ed1f247aae14d8faf4c66bde8bf/f7248ed1f247aae14d8faf4c66bde8bf2.gif)
![2021-2022年四川省內(nèi)江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/f7248ed1f247aae14d8faf4c66bde8bf/f7248ed1f247aae14d8faf4c66bde8bf3.gif)
![2021-2022年四川省內(nèi)江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/f7248ed1f247aae14d8faf4c66bde8bf/f7248ed1f247aae14d8faf4c66bde8bf4.gif)
![2021-2022年四川省內(nèi)江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/f7248ed1f247aae14d8faf4c66bde8bf/f7248ed1f247aae14d8faf4c66bde8bf5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年四川省內(nèi)江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
2.有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i);)main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.1313B.2234C.3234D.1234
3.設(shè)變量a是整型,f是實(shí)型,i是雙精度型,則表達(dá)式10+'a'+i*f值的數(shù)據(jù)類型為()。
A.intB.floatC.doubleD.不確定
4.以下敘述中正確的是()。
A.在switch語(yǔ)句中,不一定使用break語(yǔ)句
B.break語(yǔ)句只能用于switch語(yǔ)句
C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用
D.在switch語(yǔ)句中必須使用default
5.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
6.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,
7.下列程序的輸出結(jié)果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8
8.以下關(guān)于指針的說(shuō)法錯(cuò)誤的是()。
A.可以向指針中寫(xiě)入任意數(shù)據(jù)
B.可以向指針?biāo)竷?nèi)存單元中寫(xiě)入數(shù)據(jù)
C.指針可以指向與其基類型相同的普通變量
D.可以通過(guò)加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元
9.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。
A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭
10.鏈表不具有的特點(diǎn)是()。
A.插入、刪除不需要移動(dòng)元素B.可隨機(jī)訪問(wèn)任一元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與線性長(zhǎng)度成正比
11.
12.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()
A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值
13.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為_(kāi)_____。
A.10101001B.10101000C.11111101D.1010101
14.按照“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹(shù)
15.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序輸出為()。
A.編譯有錯(cuò)B.0,0,0,3C.1,1,2,0D.0,1,2,0
16.程序設(shè)計(jì)方法要求在程序設(shè)計(jì)過(guò)程中,()。
A.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再畫(huà)出程序的流程圖
B.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
C.先畫(huà)出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
D.以上3種說(shuō)法都不對(duì)
17.設(shè)有函數(shù)說(shuō)明語(yǔ)句:intfun(int,int);以及函數(shù)指針定義語(yǔ)句:int(*f)(int,int);若要使函數(shù)指針指向函數(shù)fun的入口地址,以下選項(xiàng)中正確的是()。
A.f=fun();B.*f=fun;C.f=fun;D.*f=fun();
18.
19.下列關(guān)于線性表、棧和隊(duì)列的敘述,錯(cuò)誤的是()。
A.線性表是給定的n(n必須大于零)個(gè)元素組成的序列
B.線性表允許在表的任何位置進(jìn)行插入和刪除操作
C.棧只允許在一端進(jìn)行插入和刪除操作
D.隊(duì)列允許在一端進(jìn)行插入在另一端進(jìn)行刪除
20.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
二、2.填空題(20題)21.設(shè)有定義:intn,*k=&n;以下語(yǔ)句將利用指針變量k讀寫(xiě)變量n中的內(nèi)容,請(qǐng)將語(yǔ)句補(bǔ)充完整。
scanf(“%d”,______);
printf(“%d\n”,______);
22.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。
#include<stdio.h>
main()
{inti;
inta[5]={1,3,5,7,9};
int*num[5];
int【】;
for(i=0;i<5;i++)
num[i]=【】;
p=num+0;
for(i=0;i<5;i++)
{printf("%d%d\n",【】);
p++;
}
}
23.實(shí)現(xiàn)程序可將磁盤(pán)中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
24.有下面的程序:
#include<stdio,h>
main()
{enumteam{my,your=4,his,her=his+10};
prinff("%d%d%d%d\n",my,your,his,her);
此程序的輸出結(jié)果是【】。
A)0123B)04010C)04515D)14515
25.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
26.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
2223445666677899101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:
2345678910。
請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1][
27.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個(gè)最大值作為函數(shù)值返回,并通過(guò)形參傳回此最大值所在的行下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#defineN3
#defineM3
select{inta[N][M],int*n;
{inti,j,row=l,eolum=l;
for(i=0;i<N;i++
forj=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj
max=select(a,&n);
printf("max=%d,line=%d\n",max.n;
}
28.關(guān)鍵字ASC和DESC分別表示【】的含義。
29.沒(méi)有chara,b;,若要通過(guò)a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進(jìn)制是【】。
30.設(shè)有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語(yǔ)句;t=B*2;t為int型變量后的值是______。
31.若有以下函數(shù)定義,函數(shù)返回值的類型是【】。
fun(doubleA)
{returna*a*a;}
32.下列程序中的函數(shù)stropy2()實(shí)現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個(gè)新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
33.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。
34.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
35.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
36.用指針?lè)ㄇ蟪鰯?shù)組元素中最大者和最小者。
intmax,min;
voidmax_min_value(array,n)
intarray[],n;
{【】;
max=min=*array;
for(【】;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
main()
{inti,number[20],*p;
p=number;
printf("輸入20個(gè)數(shù)據(jù):\n");
for(i=0;i<20;i++,p++)scanf("%d",p);
【】;
max_min_value(p,10);
printf("max=%-10dmin=%d\n",max,rain);
}
37.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
38.以下程序的輸出結(jié)果是【】。
main()
{chars[]=“abcdef”;
s[3]='\0';
printf(“%s\n”,s);
}
39.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
40.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
三、1.選擇題(20題)41.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}
A.4B.7C.5D.6
42.下列程序執(zhí)行后的輸出結(jié)果是______。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}
A.456B.258C.369D.789
43.執(zhí)行下列程序的輸出結(jié)果是()。main(){union{intb;charc[2];}y;y.b=0x4142;printf("%c,%c",y.c[1],y.c[0]);}
A.65,66B.a,bC.B,AD.A,B
44.下列程序的運(yùn)行結(jié)果是()。main(){inta=-5,b=1,c=1;intx=0,Y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>0)if(c<=0)y=x-y;}elseif(c>0)Y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}
A.2,2,0B.2,2,2C.0,2,0D.2,0,2
45.應(yīng)用數(shù)據(jù)庫(kù)的主要目的是A.A.解決數(shù)據(jù)保密問(wèn)題
B.解決數(shù)據(jù)完整性問(wèn)題
C.解決數(shù)據(jù)共享問(wèn)題
D.解決數(shù)據(jù)量大的問(wèn)題
46.若有下面的說(shuō)明和定義,則sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
47.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p=h;printf("%d%d\n"h[0].p)->x,(h[1].p)->y);}
A.12B.23C.14D.32
48.以下程序的輸出結(jié)果為()。inta,b,C;a=10;b=50;C=30;if(a<b)a=b;b=C;c=a;printf("a=%d,b=%d,c=%d",a,b,C);
A.a=50,b=30,c=30
B.a=10,b=30,c=10
C.a=50,b=30,c=10
D.a=50,b=30,c=50
49.已知大寫(xiě)字母A的ASCII碼值是65,小寫(xiě)字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量
50.下列敘述中不正確的是()。
A.在C語(yǔ)言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量
51.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流圖(DFD)作為描述工具的軟件開(kāi)發(fā)階段是()。
A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼
52.為了提高軟件模塊的獨(dú)立性,模塊之間最好是()。
A.控制耦合B.公共耦合C.內(nèi)容耦合D.數(shù)據(jù)耦合
53.有以下程序段:intn,t=1,s=0;scanf("%",&n);do{s=s+t;t=t-2;}while(t!=n);為使此程序段不陷入死循環(huán),從鍵盤(pán)輸入的數(shù)據(jù)應(yīng)該是()。
A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
54.軟件生命周期中花費(fèi)時(shí)間最多的階段是()
A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)
55.X、Y、Z被定義為int型變量,若從鍵盤(pán)給X、Y、Z輸入數(shù)據(jù),正確的輸入語(yǔ)句是______。
A.INPUTX,Y,Z;
B.scanf("%d%d%d",&X,&Y,&Z);
C.scanf("%d%d%d",X,Y,Z);
D.read("%d%d%d",&X,&Y,&Z);
56.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返回值為_(kāi)_____。A.EOFB.非0值C.0D.NULL
57.在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤
58.以下敘述中錯(cuò)誤的是()。
A.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個(gè)整數(shù)作為地址值.
D.當(dāng)在程序的開(kāi)頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL
59.有以下程序:#include<stdio.h>#include<string.h>main(){charp[]={'a','b','c'],q[10]={'a','h','c'}prinff("%d%d\n",strlen(p),strlen(q));以下敘述中正確的是()。
A.在給p和q數(shù)組賦初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故輸出的長(zhǎng)度都為3
B.由于P數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定;q數(shù)組中字符串長(zhǎng)度為3
C.由于q數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定;p數(shù)組中字符長(zhǎng)度為3
D.由于p和q數(shù)組中沒(méi)有字符串結(jié)束符,故長(zhǎng)度都不能確定
60.有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序運(yùn)行后的輸出結(jié)果是______。
A.15B.16C.12D.59
四、選擇題(20題)61.
下列程序執(zhí)行后的輸出結(jié)果是()。
main
{charx=0xFFFF;printf("%d\n",x--);}
A.-32767B.FFFEC.1D.32768
62.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序運(yùn)行后輸出的結(jié)果是
A.5B.6
C.7D.8
63.若x,i,j和k都是int型變量,則計(jì)算表達(dá)式x=(i=4,j=16,k=32)后,x的值為()。
A.4B.16C.32D.52
64.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫(xiě)字母的表達(dá)式是()。A.A.isupper(c)B.'A'<=c<='Z'
C.'A'<=c&&c<='Z'
D.c<=('z'-32)&&('a'-32)<=c
65.
66.以下敘述中正確的是()。
A.簡(jiǎn)單c語(yǔ)句必須以分號(hào)結(jié)束
B.C程序中的每—行只能寫(xiě)—條i{}句
C.c語(yǔ)言程序中的注釋必須與語(yǔ)句寫(xiě)在同一行
D.C語(yǔ)句必須在一行內(nèi)寫(xiě)完
67.數(shù)據(jù)庫(kù)設(shè)計(jì)包含四個(gè)階段,它們是需求分析、()、邏輯設(shè)計(jì)和物理設(shè)計(jì)。
A.編碼設(shè)計(jì)B.測(cè)試階段C.運(yùn)行階段D.概念設(shè)計(jì)
68.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
69.設(shè)x為int型變量,則執(zhí)行以下語(yǔ)句后,x的值為()。x=10;x=x-=x-x;
A.10B.20C.40D.30
70.設(shè)以下變量均為int類型,則值不等于7的表達(dá)式是()。
A.(x=y=6,x+y,x+1)
B.(x=y=6,x+y,y+1)
C.(x=6,x+1,y=6,x+y)
D.(y=6,y+1,x=y,x+1)
71.有以下程序函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運(yùn)行后的輸出結(jié)果是()。A.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,
72.下面屬于黑盒測(cè)試方法的是()。
A.邊界值分析B.路徑覆蓋C.語(yǔ)句覆蓋D.邏輯覆蓋
73.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)的劃分原則是()
A.數(shù)據(jù)之間的聯(lián)系方式B.記錄長(zhǎng)度C.聯(lián)系的復(fù)雜程度D.文件的大小
74.
75.
76.有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:printf("%d",i);
case2:printf("%d",i);
default:printf("%d",i);
}
}
程序執(zhí)行后的輸出結(jié)果是
A.011122B.012
C.012020D.120
77.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。.
A.3,3B.1,1C.2,3D.1,2
78.下列數(shù)據(jù)模型中,具有堅(jiān)實(shí)理論基礎(chǔ)的是()。A.層次模型B.網(wǎng)狀模型C.關(guān)系模型D.以上三個(gè)都是
79.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是A.數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程
B.數(shù)據(jù)的物理獨(dú)立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時(shí),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)不變
C.關(guān)系中的每一列稱為元組,一個(gè)元組就是一個(gè)字段
D.如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,fun()函數(shù)的功能是:從整數(shù)1~50中,選出能被3整除且有一位上的數(shù)是5的數(shù),并把這些數(shù)放b所指的數(shù)組中,這些數(shù)的個(gè)數(shù)作為函數(shù)值返回。規(guī)定,函數(shù)中a1放個(gè)位數(shù),a2放十位數(shù)。
請(qǐng)修改函數(shù)中的錯(cuò)誤,得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不能增行或減行,也不能更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:將字符串尾部的*號(hào)全部刪除,前面和中間的*號(hào)不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g。***,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是****a*bc*def*g。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.D解析:快速排序的基本思想是,通過(guò)一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部
分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對(duì)這兩部分記錄繼
續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序;插入排序的基本操作是指將無(wú)序序列中的各元素依
次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排序的基本思想是:掃描整
個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對(duì)剩
下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個(gè)或兩個(gè)以上的有序表組合
成一個(gè)新的有序表。
注意:各種排序方法實(shí)現(xiàn)過(guò)程及實(shí)現(xiàn)機(jī)制。
2.C本題考查了宏定義與局部變量的區(qū)別,宏定義的作用范圍為整個(gè)程序,而變量的作用范圍只在定義它的函數(shù)體的部分,因此,主函數(shù)中定義的i與fun中的i互不相干。
3.C
4.Aswitch語(yǔ)句中不一定使用break語(yǔ)句,選項(xiàng)A正確;break語(yǔ)句除了用于switch語(yǔ)句,還可以用于循環(huán)語(yǔ)句中,選項(xiàng)B、C錯(cuò)誤;switch語(yǔ)句不一定需要使用default語(yǔ)句,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。
5.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個(gè)存儲(chǔ)單元,且此存儲(chǔ)單元為2個(gè)字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。
6.Astatic靜態(tài)變量只在聲明時(shí)初始化一次。mul()累乘,第一次init=1,init}=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五層init=24,val=5,因此結(jié)果為l,2,6,24,120。故答案為A選項(xiàng)。
7.A本題考查switch語(yǔ)句。當(dāng)i=1時(shí),執(zhí)行case1,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=2,a=a+3=5;當(dāng)i=2時(shí),執(zhí)行case2,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=7,a=a+3=10;當(dāng)i=3時(shí),執(zhí)行case3,a=a+1=11,因?yàn)闆](méi)有遇到break語(yǔ)句,所以依次往下運(yùn)行,a=a+2=13,a=a+3=16;當(dāng)i=4時(shí),執(zhí)行default,a=a+3=19,結(jié)束循環(huán)。
8.A指針變量必須區(qū)分基類型,可以向指針?biāo)竷?nèi)存單元寫(xiě)入與基類型相同的數(shù)據(jù),而不能寫(xiě)入任意數(shù)據(jù),選項(xiàng)A錯(cuò)誤,選項(xiàng)B正確;指針可以指向與其基類型相同的普通變量,選項(xiàng)C正確;指針是一個(gè)內(nèi)存地址,它是一個(gè)整數(shù),可以通過(guò)加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元,選項(xiàng)D正確。故本題答案為A選項(xiàng)。
9.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭。
10.BB選項(xiàng)的特點(diǎn)是順序存儲(chǔ)結(jié)構(gòu)的特點(diǎn),即數(shù)組的特點(diǎn)。
11.A
12.A
13.D解析:異或運(yùn)算符(^)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個(gè)相應(yīng)位同號(hào),則結(jié)果為0(假);異號(hào)則為1(真)。取反運(yùn)算符(-)的運(yùn)算規(guī)則是:對(duì)一個(gè)二進(jìn)制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對(duì)3(二進(jìn)制形式為00000011)按位取反即11111100。表達(dá)式(2+x)(-3)的值就等價(jià)于(00000010+10100111)^11111100,結(jié)果為01010101。
14.B棧是線性表的一種,其插入和刪除運(yùn)算都只在表的一端進(jìn)行。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素是最后被插入的元素,不是最后被刪除的元素,是按先進(jìn)后出的原則組織數(shù)據(jù)的。
15.AC語(yǔ)言中規(guī)定else總是和之前與其最近的且不帶else的if配對(duì)。題目中,“if(a=1)b=1;c=2;”默認(rèn)省略了else,導(dǎo)致下一句else沒(méi)有匹配語(yǔ)句。故本題答案為A選項(xiàng)。
16.D解析:程序設(shè)計(jì)的過(guò)程應(yīng)是先畫(huà)出流程圖,然后根據(jù)流程圖編制出程序,所以選項(xiàng)A錯(cuò)誤。程序中的注釋是為了提高程序的可讀性,注釋必須在編制程序的同時(shí)加入,所以,選項(xiàng)B和選項(xiàng)C錯(cuò)誤。綜上所述,本題的正確答案為選項(xiàng)D。
17.CC語(yǔ)言中,函數(shù)名也是一個(gè)指針,是函數(shù)的人口地址。使函數(shù)指針f指向函數(shù)fun的入口地址,直接將函數(shù)名fun賦給指針f即可。故本題答案為C選項(xiàng)。
18.C
19.A解析:線性表的插入和刪除允許在任何位置進(jìn)行,所以B選項(xiàng)的說(shuō)法是正確的;棧的操作只允許在棧頂進(jìn)行,因此,棧稱為先進(jìn)后出表(FILO,FirstInLastOut),或“后進(jìn)先出”表(LIFO,LastInFirstOut),所以C選項(xiàng)說(shuō)法也是正確的;隊(duì)列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭(front),允許插入的一端叫做隊(duì)尾(rear),因此隊(duì)列亦稱作先進(jìn)先出(FIFO,FirstInFirstOut)的線性表,或后進(jìn)后出(LILO,LastInLastOut)的線性表。所以D選項(xiàng)說(shuō)法也是正確的。
20.B本題考查for循環(huán)的使用。對(duì)于第1個(gè)for循環(huán),任何一個(gè)i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時(shí)不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時(shí)退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語(yǔ)句執(zhí)行6次,第二條for語(yǔ)句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
21.k*kk*k解析:本題考查的知識(shí)點(diǎn)是scarf()函數(shù)和printf()函數(shù)的用法。scanf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號(hào)和格式字符組成)第二個(gè)參數(shù)是一地址列表(地址列表是由多個(gè)地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個(gè)空格處位于scanf()函數(shù)的第二個(gè)參數(shù)處,所以,第一個(gè)空應(yīng)該填地址k。printf()函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時(shí)原樣輸出)第二個(gè)參數(shù)為一輸出表達(dá)式表(輸出表達(dá)式表是由若干個(gè)需要計(jì)算和輸出的表達(dá)式組成的,表達(dá)式之間用逗號(hào)分隔開(kāi))。而第;個(gè)空位于printf()函數(shù)的第二個(gè)參數(shù)處,所以應(yīng)該填*K。
22.**pa+I**p*p
23.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時(shí)至少要指定兩個(gè)參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語(yǔ)句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫(xiě)入到f2對(duì)應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
24.CC解析:枚舉的語(yǔ)法規(guī)定,當(dāng)枚舉元素沒(méi)有賦值時(shí),如果前面沒(méi)有其他枚舉元素,其值為0;如果前面有其他枚舉元素,其值為前一個(gè)元素的值加1,所以his的值為5,her的值為15。
25.132132解析:在程序中,i從9開(kāi)始循環(huán),當(dāng)i=9時(shí),執(zhí)行case0后的語(yǔ)句m++;n++;此時(shí)m=1,n=1,然后執(zhí)行break,跳出循環(huán);當(dāng)i=10時(shí),執(zhí)行detault后的語(yǔ)句k++;n++;此時(shí)k=1,n=2;當(dāng)i=11時(shí),再執(zhí)行default后的語(yǔ)句,k=2,n=3。此時(shí),m=1,n=3,k=2。輸出結(jié)果為132。
26.本題程序的流程是:讓i;j都從1開(kāi)始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值,所以s[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開(kāi)始,該算法只能用于數(shù)組已排序的題目中。\r\n\r\n
27.rowa[row][colum]row\r\na[row][colum]解析:通過(guò)對(duì)題意的分析,在select()函數(shù)中,變量row的作用是用來(lái)記錄最大元素的行下標(biāo),column的作用是用來(lái)記錄最大元素的列下標(biāo)。程序中通過(guò)一個(gè)循環(huán)求得數(shù)組元素中最大值的行列下標(biāo),分別存放在變量row和colmnn中,根據(jù)題意,應(yīng)該把行下標(biāo)賦值給形參指針變量n指向的變量,把最大值a[row][columa]作為函數(shù)值返回。
28.升序排列和降序排列升序排列和降序排列解析:ASC表示升序排列,DESC表示降序排列,多用在索引定義和SELECT語(yǔ)句中的ORDER子句中。
29.1000001010000010解析:運(yùn)算“&”的規(guī)則是只有當(dāng)兩個(gè)相應(yīng)的二進(jìn)制位都為1時(shí),該位的結(jié)果才為1。要保留第2、8位,只要將其與二進(jìn)制數(shù)10000010相與。
30.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算.運(yùn)算過(guò)程為:t=B*2=A+3*2=2+3*2=8。
31.int類型int類型
32.s-1或--s或s--*s++s-1或--s或s--\r\n*s++解析:在函數(shù)。strcpy2()中,首先將指針t保存到指針p中,然后進(jìn)入第1個(gè)while()循環(huán),其循環(huán)條件為*s++=*t++,其中“*”和“++”運(yùn)算符的優(yōu)先級(jí)相同,但他們的結(jié)合性為從右至左,而“=”運(yùn)算符優(yōu)先級(jí)比較低,所以原表達(dá)式等價(jià)于(*s++)=(*(t++)),即將t當(dāng)前所指內(nèi)容復(fù)制到s當(dāng)前所指地址中,然后讓s和t同時(shí)往后移動(dòng)一位,整個(gè)表達(dá)式返回的是復(fù)制給s的值。所以,當(dāng)t所指內(nèi)容是字符串結(jié)束符'\\0',時(shí),while循環(huán)結(jié)束,原先t所指的整個(gè)字符串也就復(fù)制到s所指的地址中去了。但是,while循環(huán)最后一次判斷也會(huì)讓s和t往后移動(dòng)一位,即此時(shí)s指向了字符串結(jié)束符'\\0'的后一位。所以第2次復(fù)制字符串之前,應(yīng)先將s指針往回移動(dòng)一位,故前一空應(yīng)該填入s-1或其他等價(jià)形式。接下來(lái)的while循環(huán)實(shí)現(xiàn)第二次復(fù)制,照抄第1次的while循環(huán)就行,故后一空應(yīng)填入*s++。
33.1212解析:x=(表達(dá)式1,表達(dá)式2,…)的形式,結(jié)果為最后一個(gè)表達(dá)式的值:x=(a=4,6*2)=2*6=12。
34.物理獨(dú)立性物理獨(dú)立性
35.fopenfopen解析:函數(shù)fopen的原型為FILE*fopen(char*filename,char*mode),功能為以mode指定的方式打開(kāi)名為filename的文件;函數(shù)fseek的原型為intfseek(FILE*fp,longoffset,intbase),功能為將fp所指向的文件的位置指針移到以base所指出的位置為基準(zhǔn),offset為位移量的位置;函數(shù)ftell的原型為longftell(FILE*fp),功能為返回fp所指向的文件中當(dāng)前的讀寫(xiě)位置;函數(shù)fclose的原型為intfclose(FILE*fp),功能為關(guān)閉fp所指的文件,釋放文件緩沖區(qū)。
36.int*pp=array+1p=numberint*p\r\np=array+1\r\np=number解析:函數(shù)max_min_value()中用到了指針變量p,顯然應(yīng)在第一個(gè)空格處填int*p。函數(shù)max_min_value()中的for循環(huán)逐一把數(shù)組中的元素與max和min的當(dāng)前值進(jìn)行比較。max和rain的初值是數(shù)組的第1個(gè)元素值,第1次比較應(yīng)與第2個(gè)元素比較,即array+1。第二個(gè)空格處應(yīng)填p=array+1。主函數(shù)main()中的指針變量p首先指向數(shù)組number的第1個(gè)元素,當(dāng)?shù)?個(gè)for循環(huán)結(jié)束時(shí),它指向數(shù)組的最后一個(gè)元素。若這時(shí)將p作為實(shí)參傳給被調(diào)用函數(shù),形參array[]數(shù)組的首址將是number口數(shù)組的最后元素的地址,而number[]數(shù)組的前n-1個(gè)元素不能參加比較,這將引起計(jì)算出錯(cuò)。因此,在調(diào)用max_min_value()函數(shù)之前,應(yīng)將指針p指向number[]數(shù)組首址,即在第三個(gè)空格應(yīng)填寫(xiě)p=umber。
37.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。
38.abcabc解析:字符串的結(jié)束標(biāo)記'\\0',當(dāng)輸出一個(gè)存放在字符數(shù)組中的字符串時(shí),只需輸出到'\\0'為止,而不管其后有什么數(shù)據(jù)。本題給字符數(shù)組s的元素s[3]賦值為'\\0',故只能輸出3個(gè)字符“abc”。
39.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組st1l和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)sstrcpy(str1,str2),將字符串str2的值賦給str1.在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后指針s和指針t都下移到下一個(gè)元素。所以空格處應(yīng)該填*t++或*(t++)。
40.1919解析:根據(jù)二叉樹(shù)的性質(zhì):在任意一棵二叉樹(shù)中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
41.D
42.C解析:根據(jù)二維數(shù)組的定義得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本題的輸出是第3行的值m[2][0],m[2][1],m[2][2],即369。
43.D解析:共用體中的成員是共享同一內(nèi)存區(qū)域的,另外,整數(shù)在內(nèi)存中的表示是低字節(jié)在前高字節(jié)在后,所以給y.b賦值0x4142,等價(jià)于給y.c[0]賦值0x42(字符B),y.c[1]賦值Ox41(字符A)。所以本題輸出的結(jié)果是A,B。故應(yīng)該選擇D。
44.A解析:本題考查ifelse語(yǔ)句的使用。先判斷第1個(gè)if語(yǔ)句,因?yàn)閏=1>0,所以x=x+y=0+2=2。第1個(gè)if語(yǔ)句,因?yàn)閍=-5<0,所以進(jìn)入下列的復(fù)合語(yǔ)句。經(jīng)判斷發(fā)現(xiàn),復(fù)合語(yǔ)句中第2個(gè)if語(yǔ)句的條件均不滿足,不執(zhí)行任何語(yǔ)句退出,在這個(gè)過(guò)程中y和z的值沒(méi)有發(fā)生變化。
45.C數(shù)據(jù)庫(kù)是對(duì)數(shù)據(jù)進(jìn)行操作和管理的,可以看成是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)可以被直觀地理解為存放數(shù)據(jù)的倉(cāng)庫(kù),數(shù)據(jù)庫(kù)可以對(duì)大量數(shù)據(jù)進(jìn)行管理和應(yīng)用。一個(gè)應(yīng)用數(shù)據(jù)庫(kù)的主要目的就是要實(shí)現(xiàn)數(shù)據(jù)的共享,能使應(yīng)用數(shù)據(jù)庫(kù)的數(shù)據(jù)被大量用戶使用。
46.D解析:結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占的內(nèi)存長(zhǎng)度之和,每個(gè)成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。結(jié)構(gòu)體變量aa中,成員r1占2個(gè)字節(jié),r2占8個(gè)字節(jié),r3占4個(gè)字節(jié),共用體ua占8個(gè)字節(jié),所以共占用2+8+4+8=22個(gè)字節(jié)。
47.D解析:本題中是一個(gè)含有兩個(gè)結(jié)點(diǎn)的循環(huán)鏈表。
C語(yǔ)言中結(jié)構(gòu)體的定義為:
struct結(jié)構(gòu)題類型名
{
成員項(xiàng)表;
};
48.D解析:a的初值為10,b的初值為50,a<b為真,執(zhí)行a=b,則a的值為50。繼續(xù)執(zhí)行b=c;和c=a;,則b=30,c=50。所以選項(xiàng)D正確。
49.A本題考查的知識(shí)點(diǎn)是轉(zhuǎn)義字符。題目中的關(guān)鍵是八進(jìn)制101的十進(jìn)制是多少.八進(jìn)制的101轉(zhuǎn)換為十進(jìn)制為65,也就是字符A的ASCII。
50.B解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。
51.B解析:軟件開(kāi)發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。
52.D解析:耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),是互相關(guān)聯(lián)的。在程序設(shè)計(jì)中,各模塊間的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,有利于提高模塊的獨(dú)立性。
53.D解析:要使程序段不陷入死循環(huán),必須存在終止循環(huán)的條件“t=n”,由于t的初始值為1,且每執(zhí)行一次循環(huán)都會(huì)使t的值減2,故執(zhí)行本程序后t有可能的最大值為-1,然后,每循環(huán)一次就減2,所以鍵盤(pán)輸入的n的值必須是t的值之一,即為任意負(fù)奇數(shù)。
54.D解析:軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)3個(gè)所段。本題中,詳細(xì)設(shè)計(jì)、軟什編碼和軟件測(cè)試都屬于軟件開(kāi)發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段,也是持續(xù)時(shí)間最長(zhǎng),花費(fèi)代價(jià)最大的一個(gè)階段,軟件工程學(xué)的一個(gè)目的就是提高軟件的可維護(hù)性.降低維護(hù)的代價(jià)。
55.B解析:scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址。選項(xiàng)A不是C語(yǔ)言中的輸入語(yǔ)句,故選項(xiàng)A不正確;選項(xiàng)C中輸入的是變量字符串而不是地址字符串,不滿足scanf()函數(shù)要求將輸入的數(shù)據(jù)存入變量所在的地址,故選項(xiàng)C不正確;選項(xiàng)D不是C語(yǔ)言中的輸入語(yǔ)句,故選項(xiàng)D不正確:所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
56.B(27)B)解析:函數(shù)feof的功能是:測(cè)試fp所指的文件的位置是否已達(dá)到文件尾,如果達(dá)到文件尾,則函數(shù)返回非0值,否則返回0,表示文件尚未結(jié)束。
57.D解析:使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。
58.C解析:函數(shù)形參和實(shí)參分別占用不同的內(nèi)存單元,改變形參的值不會(huì)影響對(duì)應(yīng)實(shí)參的值,選項(xiàng)A)正確。指針類型的函數(shù)可以返回地址值,選項(xiàng)B)正確。在文件stdio.h中,NULL被定義為void型的指針,選項(xiàng)D)也正確。指針變量的值只能是存儲(chǔ)單元地址,而不能是一個(gè)整數(shù),選項(xiàng)C)錯(cuò)誤。
59.B解析:strlen函數(shù)用于計(jì)算以,'\\0'結(jié)束的字符串的長(zhǎng)度,函數(shù)值為字符串的實(shí)際長(zhǎng)度,長(zhǎng)度中不包括,'\\0'。q數(shù)組定義的數(shù)組大小為10,而初始化時(shí)字符串只占用了前3個(gè)存儲(chǔ)單元,其余存儲(chǔ)單元系統(tǒng)自動(dòng)加'\\0',故數(shù)組q的長(zhǎng)度為3;而p數(shù)組定義時(shí)沒(méi)有指定大小,其大小根據(jù)初始化所賦值確定為3,沒(méi)有字符串結(jié)束符,故字符串的長(zhǎng)度不能確定。
60.A解析:自增運(yùn)算符“++”放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。語(yǔ)句p=s;使指針p指向字符串s的首地址,第一次輸出語(yǔ)句先輸出字符'1',指針p再往后移一位,指向字符'5'的地址,第二個(gè)輸出語(yǔ)句,同樣先輸出字符'5',指針p再往后移一位,指向字符'9'的地址。
61.C
\n因?yàn)閤=0xFFFF=11111111,因此當(dāng)以整型形式輸出時(shí)對(duì)應(yīng)的數(shù)為一1。
\n
62.B本題中,程序首先定義一個(gè)結(jié)構(gòu)體,該結(jié)構(gòu)體定義了四個(gè)整型變量。在主函數(shù)中,首先定義了一個(gè)該結(jié)構(gòu)體的大小為2的結(jié)構(gòu)體數(shù)組,并給該數(shù)組進(jìn)行了初始化,從初始化語(yǔ)句我們可以看出,初始化時(shí)缺少了一個(gè)結(jié)構(gòu)體成員的值,在這種情況下,系統(tǒng)會(huì)自動(dòng)為缺省的成員補(bǔ)0,本題中就是給結(jié)構(gòu)體成員變量b賦初值為0。
然后定義了一個(gè)整型變量t,接著運(yùn)行t=s[0].a+s[1].b;語(yǔ)句,即t=1+5=6。因此,程序的最后輸出結(jié)果為6,本題正確答案選B。
63.C本題主要考查逗號(hào)表達(dá)式。逗號(hào)是一個(gè)特殊的運(yùn)算符,它具有所有運(yùn)算符中最低的優(yōu)先級(jí)。在C語(yǔ)言中,用它可以將兩個(gè)表達(dá)式連接起來(lái),逗號(hào)表達(dá)式的一般表現(xiàn)形式為:
表達(dá)式1,表達(dá)式2,…,表達(dá)式n
逗號(hào)表達(dá)式的求解過(guò)程是:先求解表達(dá)式1,再求解表達(dá)式2,依次往后計(jì)算,整個(gè)逗號(hào)表達(dá)式的值是最后一個(gè)表達(dá)式的值,如“3+5,5+6”的值是11。
在本題中,逗號(hào)表達(dá)式為i=4,j=16,k=32,根據(jù)上面的分析,計(jì)算逗號(hào)表達(dá)式得到的結(jié)果為k=32,最后將逗號(hào)表達(dá)式的結(jié)果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。
64.B選項(xiàng)B先計(jì)算關(guān)系表達(dá)式“'A'<=c”的值是0還是l,再比較該值與字符'z'之間的大小關(guān)系,不能實(shí)現(xiàn)題目所要求的功能。
65.C
66.A語(yǔ)句必須以分號(hào)結(jié)束,所以A)正確,c語(yǔ)言中書(shū)寫(xiě)格式自由,所以B)、C)、D)錯(cuò)誤
67.D數(shù)據(jù)庫(kù)設(shè)計(jì)目前一般采用生命周期法,即將整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)分解成目標(biāo)獨(dú)立的若干階段。它們是需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段和進(jìn)一步修改階段。數(shù)據(jù)庫(kù)設(shè)計(jì)中采用前四個(gè)階段,并重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)與模型為設(shè)計(jì)主線。
68.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度,所以C與D錯(cuò)誤。故答案為B選項(xiàng)。
69.A執(zhí)行x=x-=x-x語(yǔ)句可寫(xiě)成x=x-(x-x),可看出結(jié)果為10,故八選項(xiàng)正確。
70.C逗號(hào)表達(dá)式,其值為最后一個(gè)表達(dá)式的值。如A,值為x+1,x=6,所以結(jié)果為7,而C,x+y,x=6,y=6,x+y=12.
71.A由函數(shù)fun(int*a,intn)中語(yǔ)句if(a[j]>a[k])k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對(duì)數(shù)組a中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序,即對(duì)a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。
72.A黑盒測(cè)試方法主要有等價(jià)類劃分、邊界值分析、因果圖、錯(cuò)誤推測(cè)等。白盒測(cè)試的主要方法有邏輯驅(qū)動(dòng)、路徑測(cè)試等,主要用于軟件驗(yàn)證。
73.A\n數(shù)據(jù)庫(kù)按數(shù)據(jù)模型分為層次型數(shù)據(jù)庫(kù)、網(wǎng)狀型數(shù)據(jù)庫(kù)、關(guān)系型數(shù)據(jù)庫(kù),數(shù)據(jù)模型即數(shù)據(jù)之間的聯(lián)系方式,因此正確選項(xiàng)為A)。
\n
74.B
75.D
76.A在本題中,程序首先定義了一個(gè)循環(huán)變量i,然后執(zhí)行for循環(huán),從循環(huán)變量的初始值及循環(huán)的結(jié)束條件可以判斷出循環(huán)執(zhí)行3次。
第一次循環(huán)時(shí),i=0,然后執(zhí)行switch語(yǔ)句,由于i=0,無(wú)法找到匹配的case結(jié)構(gòu),執(zhí)行default結(jié)構(gòu),此時(shí)輸出變量i的值0。本次循環(huán)結(jié)束。
第二次循環(huán)時(shí),i=1,然后執(zhí)行switch語(yǔ)句,由于i=1,首先執(zhí)行case1結(jié)構(gòu),輸出1,由于沒(méi)有break,程序接著執(zhí)行case1結(jié)構(gòu),又輸出1,接著又執(zhí)行default結(jié)構(gòu),又輸出一個(gè)1。在本次循環(huán)中,總共輸出3個(gè)1。
第三次循環(huán)時(shí),i=2,然后執(zhí)行switch語(yǔ)句,由于i=2,首先執(zhí)行case2結(jié)構(gòu),輸出2,由于沒(méi)有break,程序接著執(zhí)行default結(jié)構(gòu),又輸出一個(gè)2。在本次循環(huán)中,總共輸出2個(gè)2。三次循環(huán)后循環(huán)結(jié)束,主函數(shù)結(jié)束。
從上面對(duì)程序的分析我們可以知道,程序最后的輸出結(jié)果是011122。因此本題的正確答案選A。
77.D該題目中首先區(qū)別++n和n++,第一次調(diào)用f函數(shù)時(shí),將++n(n自增l后再參與運(yùn)算)作為參數(shù)進(jìn)行傳遞,此時(shí)變量m的值為1,執(zhí)行n+=m;后,n=1,將l返回主函數(shù),并輸出。第二次調(diào)用f函數(shù)時(shí),將n++(n參與運(yùn)算后再自增1)作為參數(shù)進(jìn)行傳遞,此時(shí)變量m的值為1,執(zhí)行語(yǔ)句n+=m;,由于n是靜態(tài)存儲(chǔ)變量,因此n=2,將2返回主函數(shù)并輸出。因此D選項(xiàng)正確。
78.C解析:在層次模型和網(wǎng)狀模型的系統(tǒng)研究和數(shù)據(jù)庫(kù)設(shè)計(jì)中,其性能和質(zhì)量主要決定于設(shè)計(jì)者的經(jīng)驗(yàn)和技術(shù)水平,而缺乏一定的理論指導(dǎo)。因此,系統(tǒng)的研制和數(shù)據(jù)庫(kù)的設(shè)計(jì)都比較盲目,即使是同一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),相同的應(yīng)用,不同設(shè)計(jì)者設(shè)計(jì)出來(lái)的系統(tǒng)其性能可以差別很大。關(guān)系模型是以數(shù)學(xué)理論為基礎(chǔ),從而避免了層次模型和網(wǎng)狀模型系統(tǒng)中存在的問(wèn)題。本題的正確答案是C。
79.D數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,故選項(xiàng)A敘述錯(cuò)誤。數(shù)據(jù)的物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),故選項(xiàng)B敘述錯(cuò)誤。關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故選項(xiàng)C敘述錯(cuò)誤。所以本題選D。
80.B
81.
【解析】(1)根據(jù)題目中要求,第一個(gè)標(biāo)識(shí)下fun()函數(shù)的定義為“intfun(int*b);”。在C語(yǔ)言中規(guī)定,函數(shù)的定義格式,不應(yīng)以分號(hào)結(jié)束,所以應(yīng)把末尾分號(hào)去掉。
(2)題干中要求在1~50之間選出符合條件的整數(shù),循環(huán)條件表達(dá)式的起始應(yīng)當(dāng)是j=1,而不是j=10,所以第二個(gè)標(biāo)識(shí)下應(yīng)改為“for(j=1;j<=50;j++)”。
(3)變量i是標(biāo)識(shí)數(shù)組b的下標(biāo),也就是數(shù)組的個(gè)數(shù)。題目“returnj”返回的是循環(huán)條件表達(dá)式中的變量,所以這里應(yīng)改為“returni”。
82.
【解析】要?jiǎng)h除字符串尾部的所有*,只要將尾部所有*中的第一個(gè)改為字符串結(jié)束符即可。首先,將字符串指針移動(dòng)到字符串最后一個(gè)位置,檢查最后一個(gè)字符,是*則將指針前移,否則將指針后移一個(gè)位置賦值作為結(jié)束符。
2021-2022年四川省內(nèi)江市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
2.有以下程序:#include<stdio.h>#defineN8voidfun(int*x,inti){*x=*(x+i);)main(){inta[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.1313B.2234C.3234D.1234
3.設(shè)變量a是整型,f是實(shí)型,i是雙精度型,則表達(dá)式10+'a'+i*f值的數(shù)據(jù)類型為()。
A.intB.floatC.doubleD.不確定
4.以下敘述中正確的是()。
A.在switch語(yǔ)句中,不一定使用break語(yǔ)句
B.break語(yǔ)句只能用于switch語(yǔ)句
C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用
D.在switch語(yǔ)句中必須使用default
5.下列程序的執(zhí)行結(jié)果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}
A.266B.11C.265D.138
6.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,
7.下列程序的輸出結(jié)果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8
8.以下關(guān)于指針的說(shuō)法錯(cuò)誤的是()。
A.可以向指針中寫(xiě)入任意數(shù)據(jù)
B.可以向指針?biāo)竷?nèi)存單元中寫(xiě)入數(shù)據(jù)
C.指針可以指向與其基類型相同的普通變量
D.可以通過(guò)加法運(yùn)算,使指針指向下一個(gè)內(nèi)存單元
9.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。
A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭
10.鏈表不具有的特點(diǎn)是()。
A.插入、刪除不需要移動(dòng)元素B.可隨機(jī)訪問(wèn)任一元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與線性長(zhǎng)度成正比
11.
12.若x和y都是int型變量,x=100,y=200,且有程序片段:printf("%d",(x,y));上面程序片段的輸出結(jié)果()
A.200B.100C.100200D.輸出格式符不夠,輸出不確定的值
13.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為_(kāi)_____。
A.10101001B.10101000C.11111101D.1010101
14.按照“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹(shù)
15.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf(“%d,%d,%d,%d\n”,a,b,c,d);}程序輸出為()。
A.編譯有錯(cuò)B.0,0,0,3C.1,1,2,0D.0,1,2,0
16.程序設(shè)計(jì)方法要求在程序設(shè)計(jì)過(guò)程中,()。
A.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再畫(huà)出程序的流程圖
B.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
C.先畫(huà)出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
D.以上3種說(shuō)法都不對(duì)
17.設(shè)有函數(shù)說(shuō)明語(yǔ)句:intfun(int,int);以及函數(shù)指針定義語(yǔ)句:int(*f)(int,int);若要使函數(shù)指針指向函數(shù)fun的入口地址,以下選項(xiàng)中正確的是()。
A.f=fun();B.*f=fun;C.f=fun;D.*f=fun();
18.
19.下列關(guān)于線性表、棧和隊(duì)列的敘述,錯(cuò)誤的是()。
A.線性表是給定的n(n必須大于零)個(gè)元素組成的序列
B.線性表允許在表的任何位置進(jìn)行插入和刪除操作
C.棧只允許在一端進(jìn)行插入和刪除操作
D.隊(duì)列允許在一端進(jìn)行插入在另一端進(jìn)行刪除
20.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
二、2.填空題(20題)21.設(shè)有定義:intn,*k=&n;以下語(yǔ)句將利用指針變量k讀寫(xiě)變量n中的內(nèi)容,請(qǐng)將語(yǔ)句補(bǔ)充完整。
scanf(“%d”,______);
printf(“%d\n”,______);
22.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。
#include<stdio.h>
main()
{inti;
inta[5]={1,3,5,7,9};
int*num[5];
int【】;
for(i=0;i<5;i++)
num[i]=【】;
p=num+0;
for(i=0;i<5;i++)
{printf("%d%d\n",【】);
p++;
}
}
23.實(shí)現(xiàn)程序可將磁盤(pán)中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
24.有下面的程序:
#include<stdio,h>
main()
{enumteam{my,your=4,his,her=his+10};
prinff("%d%d%d%d\n",my,your,his,her);
此程序的輸出結(jié)果是【】。
A)0123B)04010C)04515D)14515
25.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
26.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
2223445666677899101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:
2345678910。
請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1][
27.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個(gè)最大值作為函數(shù)值返回,并通過(guò)形參傳回此最大值所在的行下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#defineN3
#defineM3
select{inta[N][M],int*n;
{inti,j,row=l,eolum=l;
for(i=0;i<N;i++
forj=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj
max=select(a,&n);
printf("max=%d,line=%d\n",max.n;
}
28.關(guān)鍵字ASC和DESC分別表示【】的含義。
29.沒(méi)有chara,b;,若要通過(guò)a&b運(yùn)算屏蔽掉a中的其他位,只保留第2位和笫8位(右起為第1位),則b的二進(jìn)制是【】。
30.設(shè)有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語(yǔ)句;t=B*2;t為int型變量后的值是______。
31.若有以下函數(shù)定義,函數(shù)返回值的類型是【】。
fun(doubleA)
{returna*a*a;}
32.下列程序中的函數(shù)stropy2()實(shí)現(xiàn)字符串兩次復(fù)制,即將t所指字符串復(fù)制兩次到s所指內(nèi)存空間中,合并形成一個(gè)新字符串。例如,若t所指字符串為:efgh,調(diào)用strcpy2后,s所指字符串為:efghefgh。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<string.h>
voidstrcpy2(char*s,char*t)
{char*p=t;
while(*s++=*t++);
s=【】;
while(【】=*p++);
}
main()
{charstr1[100]="abed",str2[]="efgh";
strcpy2(str1,str2);printf("%s\n",str1);
}
33.若x和a均是int型變量,則計(jì)算完x=(a=4,6*2)后的x值為_(kāi)_____。
34.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu)、存取方式等)改變時(shí),不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
35.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度。請(qǐng)?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
36.用指針?lè)ㄇ蟪鰯?shù)組元素中最大者和最小者。
intmax,min;
voidmax_min_value(array,n)
intarray[],n;
{【】;
max=min=*array;
for(【】;p<array+n;p++)
if(*p>max)max=*p;
elseif(*p<min)min=*p;
}
main()
{inti,number[20],*p;
p=number;
printf("輸入20個(gè)數(shù)據(jù):\n");
for(i=0;i<20;i++,p++)scanf("%d",p);
【】;
max_min_value(p,10);
printf("max=%-10dmin=%d\n",max,rain);
}
37.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
38.以下程序的輸出結(jié)果是【】。
main()
{chars[]=“abcdef”;
s[3]='\0';
printf(“%s\n”,s);
}
39.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。請(qǐng)?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
40.某二叉樹(shù)中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹(shù)中有【】個(gè)葉子結(jié)點(diǎn)。
三、1.選擇題(20題)41.在下述程序中,判斷i>j共執(zhí)行的次數(shù)是()。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}
A.4B.7C.5D.6
42.下列程序執(zhí)行后的輸出結(jié)果是______。main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}
A.456B.258C.369D.789
43.執(zhí)行下列程序的輸出結(jié)果是()。main(){union{intb;charc[2];}y;y.b=0x4142;printf("%c,%c",y.c[1],y.c[0]);}
A.65,66B.a,bC.B,AD.A,B
44.下列程序的運(yùn)行結(jié)果是()。main(){inta=-5,b=1,c=1;intx=0,Y=2,z=0;if(c>0)x=x+y;if(a<=0){if(b>0)if(c<=0)y=x-y;}elseif(c>0)Y=x-y;elsez=y;printf("%d,%d,%d\n",x,y,z);}
A.2,2,0B.2,2,2C.0,2,0D.2,0,2
45.應(yīng)用數(shù)據(jù)庫(kù)的主要目的是A.A.解決數(shù)據(jù)保密問(wèn)題
B.解決數(shù)據(jù)完整性問(wèn)題
C.解決數(shù)據(jù)共享問(wèn)題
D.解決數(shù)據(jù)量大的問(wèn)題
46.若有下面的說(shuō)明和定義,則sizeof(structaa)的值是structaa{intrl;doubler2;floatr3;unionuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
47.以下程序的輸出結(jié)果是()structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程質(zhì)量保修服務(wù)合同
- 2025年度專業(yè)小時(shí)工家政服務(wù)合同規(guī)范文本
- 2025年度跨境電商共同擔(dān)保合同范本
- 漯河2024年河南漯河市民政局事業(yè)單位引進(jìn)高層次人才1人筆試歷年參考題庫(kù)附帶答案詳解
- 昆明云南昆明市五華區(qū)人民政府護(hù)國(guó)街道辦事處招聘6名公益性崗位人員筆試歷年參考題庫(kù)附帶答案詳解
- 2025年中國(guó)雙格電熱鍋市場(chǎng)調(diào)查研究報(bào)告
- 2025年酸性藍(lán)染料項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)錦棉閃光鍛行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年美容按摩床項(xiàng)目可行性研究報(bào)告
- 2025年鹽漬半干海參項(xiàng)目可行性研究報(bào)告
- 2024年能源電力行業(yè)數(shù)字化轉(zhuǎn)型解決方案
- (2024年)房地產(chǎn)銷(xiāo)售人員心態(tài)培訓(xùn)
- 康復(fù)科院感年度工作計(jì)劃
- T-BJCC 1003-2024 首店、首發(fā)活動(dòng)、首發(fā)中心界定標(biāo)準(zhǔn)
- 《海洋自然保護(hù)區(qū)》課件
- 2024年云南機(jī)場(chǎng)集團(tuán)飛機(jī)維修服務(wù)分公司招聘筆試參考題庫(kù)含答案解析
- 外科手術(shù)及護(hù)理常規(guī)
- 蘇少版小學(xué)一年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)單元備課
- 學(xué)校開(kāi)學(xué)教師安全培訓(xùn)
- 出口潛力分析報(bào)告
- 晉升的述職報(bào)告
評(píng)論
0/150
提交評(píng)論