版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年山東省濱州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
2.有如下程序段
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
程序運(yùn)行后輸出的結(jié)果是A.A.63
B.36
C.編譯出錯(cuò)
D.00
3.有以下程序#include<stdio.h>main(){chara[3O],b[30];scanf("%S",a);gets(b);printf("%s\n%s\\n",a,b);}程序運(yùn)行時(shí)若輸入:howareyou?Iamfine<回車>則輸出結(jié)果是()。A.howareyou?Iamfine
B.howareyou?Iamfine
C.howareyou?Iamfine
D.howareyou?
4.以下符號(hào)中不能作為標(biāo)識(shí)符的是()。A._256B.voidC.scanfD.Struct
5.第
27
題
有一堆零件(100到200之間),如果分成4個(gè)零件一組的若干組,則多2個(gè)零件;若分成7個(gè)零件一組,則多3個(gè)零件;若分成9個(gè)零件一組,則多5個(gè)零件。下面程序是求這堆零件總數(shù),請(qǐng)選擇填空。
#include<stdio.h>
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if(_______)
printf("%d",i);
}
A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0
6.有以下程序(函數(shù)fun只對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行操作):#include<stdio.h>voidfun(int*n){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運(yùn)行后的輸出結(jié)果是()。A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
7.以下不能將s所指字符串正確復(fù)制到所指存儲(chǔ)空間的是()A.do{*t++=*s++;}while(*s);.
B.for(i=0;t[i]=s[i];i++);
C.while(*t=*s){t++;s++}
D.for(i=0,j=0;t[i++]=s[j++];);
8.排序方法中,將整個(gè)無序序列分割成若干小的子序列并分別進(jìn)行插入排序的方法,稱______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
9.在瀏覽WWW時(shí),如果連接到一個(gè)安全的站點(diǎn),應(yīng)當(dāng)以()開頭來書寫統(tǒng)一資源定位器。
A.shttp://B.http:s//C.http://D.https//
10.計(jì)算機(jī)識(shí)別.存儲(chǔ)和加工處理的對(duì)象被統(tǒng)稱為_________
A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)結(jié)構(gòu)D.數(shù)據(jù)類型
11.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
12.有3個(gè)關(guān)系R、S和T如下.
則由關(guān)系R和S得到關(guān)系T的操作是()。A.自然連接B.差C.交D.并
13.
14.設(shè)有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯(cuò)誤的是()。
A.a++;B.b++;C.c++;D.d++;
15.當(dāng)一個(gè)函數(shù)無返回值時(shí),定義它的函數(shù)類型應(yīng)是()。
A.voidB.intC.任意D.無
16.
17.有下列二叉樹.對(duì)此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
18.下面程序段的輸出結(jié)果是______。char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果
19.下面關(guān)于圖的存儲(chǔ)的敘述中正確的是()。
A.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無關(guān)
B.用鄰接表法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中邊數(shù)和頂點(diǎn)個(gè)數(shù)都有關(guān)
C.用鄰接矩陣法存儲(chǔ)圖,占用的存儲(chǔ)空間大小與圖中頂點(diǎn)個(gè)數(shù)和邊數(shù)無關(guān)
D.用鄰接矩陣存儲(chǔ)圖,占用的存儲(chǔ)空間大小只與圖中邊數(shù)有關(guān),而與頂點(diǎn)個(gè)數(shù)無關(guān)
20.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
二、2.填空題(20題)21.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
22.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
23.測試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
24.Windows的空口分為兩類,一類是應(yīng)用程序窗口,另一類是【】窗口。
25.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
26.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法。詳細(xì)設(shè)計(jì)階段所采用的是【】方法。
27.以下程序的輸出結(jié)果是______。
intfun(int*x,int*y)
{staticintm=4;
m=*X+*y;*x-=m;*y+=m;
returnm;
}
main()
{inta=2,b=6,n;
n=fun(&a,&B);printf("%d,",n);
n=fun(&a,&B);printf("%d\n",n);
}
28.以下程序的輸出結(jié)果是【】。
fun(intx,inty,intz)
{z=x*x+y*y;}
main()
{inta=31;
fun(6,3,a)
printf("%d,a)
}
29.若用0至9之間不同的三個(gè)數(shù)構(gòu)成一個(gè)三位數(shù),下面程序?qū)⒔y(tǒng)計(jì)出共有多少種方法。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,j,k,count=0;
for(i=0;i<=9;i++)
for(j=0;i<=9;j++)
if(【】)continue;
elsefor(k=0;k<=9;k++)
if(【】)count++;
printf("%d",count);}
30.以下程序運(yùn)行后輸入:3,abcde<回車>,則輸出結(jié)果是______。
#include<string.h>
move(char*str,intn)
{charcemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1);
str[0]=temp;}
main()
{chars[50];intn,i,z;
scanf(“%d,%s”,&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf(“%s\n”,s);
}
31.以下程序運(yùn)行后輸入: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);
}
32.以下程序的輸出結(jié)果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
33.若x和n均是int型變量,且x=12,n=5,則執(zhí)行y=x%=(n%=2)表達(dá)式后y的值為()。
34.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個(gè)具有structnode類型的動(dòng)態(tài)存儲(chǔ)空間。請(qǐng)?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
35.函數(shù)compare的功能是比較兩個(gè)字符串是否相等,若相等則函數(shù)返回值0,否則返回值1,請(qǐng)?zhí)羁铡?/p>
compare(chars[],chart[])
{inti=0;
while(s[i]==t[i]||【】)i++;
return(【】?1:0);
}
36.下面函數(shù)用來求兩個(gè)單精度數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?/p>
Voidsub(floatx,noaty,【】z)
{【】=x+y;}
37.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
38.通常將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到不再使用的過程稱為【】。
39.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請(qǐng)?zhí)羁铡?/p>
main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",(【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=(【】);
}
}
printf("sum=%d,count=%dhn",sum,count);
}
40.下面程序的輸出結(jié)果是【】。
#defineMAX3
inta[MAX];
main()
{fun1();fun2(a);printf("\n");}
fun1()
{intk,t=0;
for(k=0;k<MAX;k++,t++)a[k]=t+t;
}
fun2(intb[])
{intk;
for(k=0;k<MAX;k++)printf("%d",*(b+k));
}
三、1.選擇題(20題)41.關(guān)系代數(shù)運(yùn)算是以______為基礎(chǔ)的運(yùn)算。
A.關(guān)系運(yùn)算B.謂詞運(yùn)算C.集合運(yùn)算D.代數(shù)運(yùn)算
42.有以下程序#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i++)len+=strlen(argv[i]);printf("%d\n",len);}程序編譯連接后生成的可執(zhí)行文件是exl.exe,若運(yùn)行時(shí)輸入帶參數(shù)的命令行是:exlabcdefg10<回車>則運(yùn)行的結(jié)果是:
A.22B.17C.12D.9
43.設(shè)有如下關(guān)系表:
則下列操作中,正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
44.下列程序的輸出結(jié)果是______。main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
45.設(shè)有定義語句:charc1=92,c2=92;,則以下表達(dá)式中值為零的是
A.c1c2
B.c1&c2C.c1~c2D.c1|c2
46.下列程序中c的二進(jìn)制值是()。
chara=2,b=4,C;
c=a^b>>2;
A.00000011B.00010100C.00011100D.00011000
47.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請(qǐng)選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);}
A.a+(i++)B.&a[i+1]C.a+iD.&a[++i]
48.微型機(jī)系統(tǒng)中,對(duì)輸入設(shè)備趕進(jìn)行管理的基本程序模塊(BIOS)存放在()
A.RAM中B.ROM中C.硬盤中D.寄存器中
49.算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性
50.若有下列定義和語句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);則輸出結(jié)果是()。
A.9,17,11B.9,11,11C.11,11,11D.11,17,11
51.下列描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是
A.不便于插入和刪除B.需要連續(xù)的存儲(chǔ)空間C.可隨機(jī)訪問D.需另外開辟空間來保存元素之間的關(guān)系
52.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。
A.存儲(chǔ)問題B.共享問題C.安全問題D.保護(hù)問題
53.設(shè)有下列的程序段:charstr[]="HelloWorld";char*ptr;ptr=str;執(zhí)行上面的程序段后,*(ptr+10)的值為()。
A.'\0'B.'0'C.不確定的值D.'0'的地址
54.有以下程序:floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運(yùn)行后的輸出結(jié)果是______。
A.編譯錯(cuò)誤B.9C.21D.9
55.若有說明語句:charc=′\72′;則變量c
A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說明不合法,c的值不確定
56.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
57.以下程序的輸出結(jié)果是intf(){staticinti=0;ints=1;s+=i;i++;retumS;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);}
A.20B.24C.25D.15
58.以下程序的輸出結(jié)果是______。main(){charc1='6',c2='0';printf("%d,%d,%d\n",c1,c2,c1-c2);}
A.因輸出格式不合法,輸出出錯(cuò)信息B.54,48,6C.6,0,7D.6,0,6
59.以下程序運(yùn)行時(shí)若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對(duì)值,應(yīng)在程序空缺處填入的正確選項(xiàng)是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
60.若有以下定義和語句:ints[4][5],(*ps)[5];ps=s;則對(duì)s數(shù)組元數(shù)的正確引用形式是
A.ps+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3
四、選擇題(20題)61.表達(dá)式:的值是()。
A.3B.0C.4D.5
62.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4,5,6,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,1,2,3,
D.6,5,4,3,2,1,
63.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。
A.實(shí)現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫D.以上答案均正確
64.鏈表不具有的特點(diǎn)是A.A.不必事先估計(jì)存儲(chǔ)空間
B.可隨機(jī)訪問任一元素
C.插入和刪除不需要移動(dòng)元素
D.所需空間與線性表長度成正比
65.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。
A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯(cuò)
66.
67.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運(yùn)行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
68.下面的函數(shù)調(diào)用語句中func函數(shù)的實(shí)參個(gè)數(shù)是
func(f2(A1,A2),(A3,A4,A5),(A6,max(A7,A8)));
A.3B.4C.5D.8
69.
70.
以下程序的輸出結(jié)果是()。
#defineM(x,y,z)x*y+z
main()
{inta=l,b=2,c=3;
printf("%d\n",m(a+b.b+c,c+a));
}
A.19B.17C.15D.12
71.
72.
73.在數(shù)據(jù)庫設(shè)計(jì)的各階段中,負(fù)責(zé)將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的階段是
A.需求分析階段B.邏輯設(shè)計(jì)階段C.概念設(shè)計(jì)階段D.物理設(shè)計(jì)階段
74.有兩個(gè)關(guān)系R、S如下:
由關(guān)系R通過運(yùn)算得到關(guān)系s,則所使用的運(yùn)算為()。
A.選擇B.投影C.插入D.連接
75.以下敘述不正確的是
A.分號(hào)是C語言的必要組成部分B.C程序的注釋可以寫在語句的后面
C.函數(shù)是C程序的基本組成單位D.程序中可以有一個(gè)或多個(gè)main函數(shù)
76.有以下程序:
#include<stdio.h>
main()
{chars[]="012xy\O8s34f4w2‘;
inti;n=0;,
for(i=0;s[i]!=0;i++)
if(s[i]>=0s[i]<=9)n++;
printf("%d\n",n);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.3C.7D.8
77.一名工作人員可以使用多臺(tái)計(jì)算機(jī),而一臺(tái)計(jì)算機(jī)可被多名工作人員使用,則實(shí)體工作人員與實(shí)體計(jì)算機(jī)之間的聯(lián)系是()。
A.—對(duì)一B.—對(duì)多C.多對(duì)多D.多對(duì)一
78.
79.
80.若有定義語句:intX=10;,則表達(dá)式x-=x+x的值為()。
A.0B.-20C.-10D.10
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有大寫字母'F'。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù),用來刪除字符串中的所有*。例如,輸入abc*de*f*gh,則輸出為abcdefgh。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:
參考答案
1.A在本題中,程序首先定義一個(gè)返回類型為整型的函數(shù)fun,該函數(shù)帶有一個(gè)指針型的形參變量str,從主函數(shù)中對(duì)其調(diào)用時(shí)傳遞的參數(shù)我們可以知道,該指針指向的是一個(gè)數(shù)組,在該函數(shù)體中,首先定義兩個(gè)整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識(shí),即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結(jié)果為真,說明取到的當(dāng)前字符不是空字符,這時(shí)執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時(shí)不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結(jié)束后執(zhí)行str[j]=’\\0’;,即保存字符結(jié)束標(biāo)識(shí)符,用來標(biāo)識(shí)字符串結(jié)束。通過上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。
在主函數(shù)中,首先定義了一個(gè)大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語句,執(zhí)行g(shù)ets(str);語句,該語句的作用是從鍵盤輸入一個(gè)字符串到str數(shù)組,碰到換行符結(jié)束。然后調(diào)用函數(shù)fun,其實(shí)參為str。通過上面對(duì)函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。
程序最后執(zhí)行輸出語句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結(jié)果是asdafaaz67,本題答案選A。
2.B在本題中,程序首先定義了一個(gè)無返回值的函數(shù)fun,該函數(shù)帶有兩個(gè)整型的指針形參變量,在函數(shù)體中,首先定義一個(gè)整型指針變量k,然后試圖利用k來交換a和b的結(jié)果。但處理語句k=a;很明顯是對(duì)地址進(jìn)行賦值操作。在C語言中,指針變量作為函數(shù)參數(shù)時(shí),可以改變被指向的變量的值,但不能改變指針變量本身的值,即我們可以改變實(shí)參指向的變量的值,不能使實(shí)參指向其他的變量。因此,本函數(shù)并不能交換形參所指向變量的結(jié)果。
在主函數(shù)中,首先定義了兩個(gè)整型變量a和b,并分別被初始化為3和6,然后定義兩個(gè)指針變量x和y,分別指向a和b,接著調(diào)用fun函數(shù),傳遞的實(shí)參為指針變量x和y,根據(jù)前面對(duì)fun函數(shù)的分析可知,調(diào)用該函數(shù)后并不能實(shí)現(xiàn)a和b數(shù)組的交換,因此,執(zhí)行輸出語句后,輸出的結(jié)果是36。本題正確答案選B。
3.B此題主要考查scanf函數(shù)和gets函數(shù)的區(qū)別。答案為B。
4.B
5.D
6.A對(duì)下標(biāo)為偶數(shù)的元素進(jìn)行降序排序,下標(biāo)為奇數(shù)元素保持不變。
7.Ado{*t++=*s++;}while(*s);不能因?yàn)楫?dāng)*s=‘\\0'時(shí),while(*s)跳出循環(huán),這樣字符串結(jié)束標(biāo)志’0\\沒有復(fù)制給*t,造成*t不完整。注意,*t++=*s++是先執(zhí)行t=*s,然后才進(jìn)行t=t+1,s=s+1。B),C),D)三項(xiàng)都能將“\\0’復(fù)制過去。
8.A解析:希爾排序法的基本思想是:將整個(gè)無序列分割成若干小的子序列分別進(jìn)行插入排序。
9.C
10.A
11.C解析:解答本題,首先要明白在對(duì)指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長度,而1個(gè)存儲(chǔ)單元長度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移2個(gè)字節(jié),如果基本類型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。
12.B關(guān)系之間的操作分為自然連接、投影、交、并、差等,由圖可知此操作為差操作。
13.A
\r\n
14.D解析:本題考核的知識(shí)點(diǎn)是在自加運(yùn)算符的運(yùn)算對(duì)象。自加運(yùn)算對(duì)象可以是整型變量也可以是實(shí)型變量,但不能是表達(dá)式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對(duì)d進(jìn)行自加運(yùn)算.故選項(xiàng)D是個(gè)不正確的語句,所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
15.A
16.D
17.D
\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點(diǎn),訪問左子樹,最后訪問右子樹,本題中序?yàn)镈YBEAFCZX,后序?yàn)閅DEBFZXCA。
\n
18.C解析:語句s+=2;使指針指向字符'c',此時(shí)s中保存的便是字符'c'的地址。
19.B
20.C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。
21.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
22.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
23.調(diào)試調(diào)試
24.文檔文檔
25.隊(duì)列隊(duì)列解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。
26.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法。詳細(xì)設(shè)計(jì)階段所采用的是結(jié)構(gòu)化設(shè)計(jì)方法。
27.88。8,8。解析:本題考查靜態(tài)局部變量值的特點(diǎn),請(qǐng)參考第10章有關(guān)習(xí)題的解析。
28.3131解析:在函數(shù)調(diào)用時(shí),形參值和改變,不會(huì)改變實(shí)參的值。
29.i==jk!i&&k!ji==j\r\nk!i&&k!j解析:本題用雙重for循環(huán)寫了一段0~9之間不同的3個(gè)數(shù)構(gòu)成一個(gè)三位數(shù)的程序,因?yàn)橐笕粩?shù)各個(gè)位數(shù)的數(shù)不能相同,所以第一個(gè)空if語句的條件應(yīng)為i==j,即當(dāng)兩個(gè)位數(shù)上的數(shù)相同的時(shí)候,不再執(zhí)行下面的操作,轉(zhuǎn)去執(zhí)行for循環(huán)的下一次循環(huán)。第二個(gè)空,需要判斷第三位上的數(shù)不能與其他兩位的數(shù)相同。
30.cdeabcdeab解析:本題考核的知識(shí)點(diǎn)是基本算法的應(yīng)用和程序的綜合分析。從分析知道m(xù)ove()函數(shù)的作用,是將形參str所指的數(shù)組依次向后左移一位,即讓該數(shù)組第一個(gè)元素的值等于第二個(gè)元素的值,接著讓第二個(gè)元素的值等于第三個(gè)元素的值,直到該數(shù)組最后第二個(gè)元素的值等于最后一個(gè)元素的值,然后讓第一個(gè)元素等于最后一個(gè)元素的值。主函數(shù)中用了一個(gè)for循環(huán)調(diào)用move()函數(shù),共循環(huán)三次。當(dāng)i=1時(shí),第一次調(diào)用move()函數(shù),使輸入到數(shù)組的s的字符串“abcde”變?yōu)椤癳abcd”,當(dāng)i=2時(shí),第二次調(diào)用move()函數(shù),使字符串“eabcd”變?yōu)椤癲eabc”,當(dāng)i=3時(shí),第三次調(diào)用move()函數(shù),使字符串“deabc”變?yōu)椤癱deab”,故最后輸出的值為“cdeab”,故該空格處應(yīng)該填“cdeab”。
31.cdeabcdeab解析:本題中函數(shù)move的實(shí)參到形參是按地址傳遞,故形參的改變會(huì)影響實(shí)參。根據(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時(shí),形參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時(shí),形參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時(shí),形參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。
32.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運(yùn)算方法。指針變量p首先指向字符串中的第一個(gè)字符A,執(zhí)行p=s+1后,p指向字符串中的第二個(gè)字符B,然后輸出值'BCD'并換行,依次執(zhí)行循環(huán)語句。
33.00解析:n%=2等價(jià)于n=n%2,結(jié)果為1:x%=1等價(jià)于x=x%1,結(jié)果為0。
34.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個(gè)長度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。
35.s[i]!='\0'||t[i]!='\0's[i]=='\0'&&t[i]=='\0's[i]!='\\0'||t[i]!='\\0'\r\ns[i]=='\\0'&&t[i]=='\\0'
36.float*z
37.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。
38.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不再使用為止的整個(gè)時(shí)期都屬于軟件生命周期,一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用以及維護(hù)等。
39.&a[i]或a+Ia[i]或*(a+i)&a[i]或a+I\r\na[i]或*(a+i)解析:主函數(shù)中一開始定義了一個(gè)長度為20的整形數(shù)組,然后通過一個(gè)循環(huán),循環(huán)20次給它的每個(gè)元素賦初值,所以在第一個(gè)空格處應(yīng)填各個(gè)元素的地址,即填&a[i]或a+i,然后再通過一個(gè)循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于0將其累加到變量sum中,所以第二個(gè)空格處應(yīng)該填入數(shù)組元素,即應(yīng)該填a[i]或*(a+i)。
40.024
41.C解析:關(guān)系代數(shù)是以集合代數(shù)為基礎(chǔ)女發(fā)展起來的,它是以關(guān)系代數(shù)作為運(yùn)算對(duì)象的一組高級(jí)運(yùn)算的集合。它的基本操作是并、交、差、笛卡爾積,另外還包括針對(duì)數(shù)據(jù)庫環(huán)境專門設(shè)計(jì)的操作,包括對(duì)關(guān)系進(jìn)行垂直分割(投影)、水平分割(選擇)、關(guān)系的結(jié)合(連接)等。
42.D解析:main()函數(shù)可以帶參數(shù),并且參數(shù)只能有兩個(gè),第一個(gè)參數(shù)(argc)類型為整型用來記下命令行的參數(shù)個(gè)數(shù),第二個(gè)參數(shù)(argv)為一個(gè)字符型指針數(shù)組,其各個(gè)元素用來記下命令行各參數(shù)字符串的首地址。本題執(zhí)行時(shí),argc的值為4,在循環(huán)中依次求出argv[1]、argv[2]和argv[3]指向的字符串('abcd'、'efg'和'10')的長度,并把它們加到變量len中,得到len的值9。所以最后輸出的len值為9,所以4個(gè)選項(xiàng)中D正確。
43.B解析:T是R∪S的結(jié)果,關(guān)系T由屬于關(guān)系R的或者屬于關(guān)系S的元組組成。
44.A
45.A解析:選項(xiàng)A為異或運(yùn)算符,如果參加運(yùn)算的兩個(gè)位相同,結(jié)果為0,否則為1。顯然選項(xiàng)A中參加運(yùn)算c1和c2相同,故其值位0;選項(xiàng)B為位與運(yùn)算,如果參加運(yùn)算的兩位都為1,則結(jié)果為1,否則結(jié)果為0,選項(xiàng)B中參加運(yùn)算的c1和c2都為真,所以結(jié)果為1;選項(xiàng)C為取反運(yùn)算,用來對(duì)一個(gè)二進(jìn)制取反,顯然c2取反后不為0,選項(xiàng)D為異或運(yùn)算,參加運(yùn)算的兩位只要有一個(gè)為1,那么運(yùn)算結(jié)果為1,顯然參加運(yùn)算的c1和c2都不為0,故運(yùn)算結(jié)果不為0。
46.A解析:本題主要考查按位異或和右移運(yùn)算。b=4的二進(jìn)制為00000100,b>>2后為00000001,a=2的二進(jìn)制為00000010,兩者異或?yàn)?0000011。
47.A解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個(gè)元素的地址,所以在四個(gè)選項(xiàng)中,選項(xiàng)B和C只能輸入一個(gè)數(shù)據(jù),選項(xiàng)D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。
48.B
49.B解析:一個(gè)算法應(yīng)當(dāng)具有以下5個(gè)特性:有窮性;確定性;可行性;有零個(gè)或多個(gè)輸入;由一個(gè)或多個(gè)輸出.簡潔性不屬于這5個(gè)特性,所以本題應(yīng)該選擇B。
50.C解析:在C語言中,“%d”表示輸出帶符號(hào)的十進(jìn)制整型數(shù);“%x”表示以十六進(jìn)制無符號(hào)型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0x或0x);“%o”表示以八進(jìn)制無符號(hào)型輸出整型數(shù)據(jù)(即不帶前導(dǎo)0)。
51.D解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關(guān)系。
52.B解析:數(shù)據(jù)庫產(chǎn)生的背景就是計(jì)算機(jī)的應(yīng)用范圍越來越廣泛,數(shù)據(jù)量急劇增加,對(duì)數(shù)據(jù)共享的要求越來越高。共享的含義是多個(gè)用戶、多種語言、多個(gè)應(yīng)用程序相互覆蓋的使用一些公用的數(shù)據(jù)集合。在這樣的背景下,為了滿足多用戶、多應(yīng)用共,享數(shù)據(jù)的要求,就出現(xiàn)了數(shù)據(jù)庫技術(shù),以便對(duì)數(shù)據(jù)庫進(jìn)行管理。因此,數(shù)據(jù)庫技術(shù)的根本目標(biāo)就是解決數(shù)據(jù)的共享問題。故選項(xiàng)B正確。
53.A解析:本題涉及字符數(shù)組和指針兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上'\\0',所以題中數(shù)組str有11個(gè)元素;②ptr指向數(shù)組str的首地址,ptr+10是指向str[10],*(ptr+10)是引用str[10]的值。
54.B解析:函數(shù)fun的功能是求兩個(gè)數(shù)之和,其形參數(shù)據(jù)類型為int型,函數(shù)的返回值類型是float型。fun((int)fun(a+c,b),a-c)中有兩層函數(shù)調(diào)用,其中內(nèi)層調(diào)用是fun(a+c,b),因a+c+b=2+8+5=15,而返回類型是float型,所以fun(a+c,b)的值為15.0,將該值強(qiáng)制變換為int型后作為外層函數(shù)調(diào)用的參數(shù),即fun(15,a-c)=15+a-c=15+2-8=9.0。因printf語句的輸出格式為'%3.0f',即小數(shù)點(diǎn)后0位小數(shù),故程序的輸出為9。
55.A解析:C語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)'\\'開頭的字符。其中,'\\ddd'表示用ASCII碼(八進(jìn)制數(shù))表示一個(gè)字符,本題中的charc=\'\\72\'即表示占一個(gè)字符的變量c的ASCII碼值。
56.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。
57.D解析:函數(shù)的靜態(tài)局部變量在編譯時(shí)就賦初值,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值,以后每次調(diào)用函數(shù)時(shí)不再重新賦值,而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。
58.B解析:本題printf語句輸出字符的ASCⅡ碼值(整型)。
59.B解析:考查函數(shù)指針的使用方法。可以使用函數(shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實(shí)參表列)。
60.C解析:本題首先定義了一個(gè)4行5列的數(shù)組s,又定義了一個(gè)指向由5個(gè)元素組成的一維數(shù)組的指針變量ps,通過賦值讓ps指向了數(shù)組s的首地址。此時(shí)數(shù)組元素s[i)[j]的地址為“*(ps+i)+j”,數(shù)組元素s[i][j]可表示為*(*(pe+i)+j);選項(xiàng)B表示的是數(shù)組元素a[3][0]的地址;選項(xiàng)D表示的是數(shù)組元素s[1][3]的地址;選項(xiàng)A中“ps+1”為指向下一行(第二行)的地址;選項(xiàng)C中ps[0][2]無條件等價(jià)于“*(ps[0]+2)”又無條件等價(jià)于“*(*(pe+0)+2)”,即是數(shù)組元素s[0][2]。
61.Aint)((double)9/2)值為4,9%2值為l,相減值為3。
62.A首先利用fwrite函數(shù)將數(shù)組a中的數(shù)據(jù)寫到文件中,接著fseek函數(shù)的功能是讀文件的位置,指針從文件頭向后移動(dòng)3個(gè)int型數(shù)據(jù),這時(shí)文件位置指針指向的是文件中的第4個(gè)int數(shù)據(jù)”4”,然后fread函數(shù)將文件fp中的后3
個(gè)數(shù)據(jù)4,5,6讀到數(shù)組a中,這樣就覆蓋了數(shù)組中原來的前3項(xiàng)數(shù)據(jù)。最后數(shù)組中的數(shù)據(jù)就成了{(lán)4,5,6,4,5,6}。
63.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫;③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫。
64.B鏈表是一種特殊的線性表,鏈表的存儲(chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)不同,它的存儲(chǔ)區(qū)域可以是任意的存儲(chǔ)單元,對(duì)存儲(chǔ)系統(tǒng)中零碎的存儲(chǔ)部分具有更好的應(yīng)用,在給其分配存儲(chǔ)單元時(shí),不必事先估計(jì)整個(gè)存儲(chǔ)單元的空間大??;由于鏈表的元素是通過指針域的指針相連的,用鏈表存儲(chǔ)數(shù)據(jù)時(shí),對(duì)其進(jìn)行插入和刪除操作時(shí),不需要移動(dòng)其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點(diǎn),并將該結(jié)點(diǎn)的指針域修改為指向其直接后繼結(jié)點(diǎn)即可。當(dāng)然,不管是鏈表還是順序存儲(chǔ),所需空間與線性表長度都成正比。在鏈?zhǔn)酱鎯?chǔ)的鏈表結(jié)構(gòu)中,由于后一結(jié)點(diǎn)數(shù)據(jù)被存儲(chǔ)在哪里,只有通過前一結(jié)點(diǎn)的指針域才知道,因此,訪問時(shí)只能是逐個(gè)訪問,而不能實(shí)現(xiàn)隨機(jī)訪問。
65.D解析:因?yàn)樽址麛?shù)組s1)中的數(shù)組名s表示的是一個(gè)地址常量。所以語句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位,因而程序編譯時(shí)出錯(cuò)。
66.B
67.B解析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值鉸的數(shù)的地址,本題輸出結(jié)果是7,8,7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 展會(huì)宣傳推廣合同(2篇)
- 小賣鋪?zhàn)赓U合同(2篇)
- 2025年度建筑密封硅酮膠招標(biāo)采購合同3篇
- 二零二五年度智慧城市物聯(lián)網(wǎng)設(shè)備采購合同2篇
- 二零二五版果園果樹種植技術(shù)指導(dǎo)與承包合同3篇
- 2024版短期貸款合同范例3篇
- 二零二五年度消防工程監(jiān)理合同2篇
- 二零二五年度建筑工程項(xiàng)目招投標(biāo)與合同履約擔(dān)保服務(wù)合同3篇
- 二零二五版股權(quán)代持糾紛調(diào)解與風(fēng)險(xiǎn)防范合同5篇
- 二零二五年度不動(dòng)產(chǎn)權(quán)屬轉(zhuǎn)移擔(dān)保合同3篇
- 薪酬與福利管理實(shí)務(wù)-習(xí)題答案 第五版
- 廢舊物資處置申請(qǐng)表
- GB/T 37234-2018文件鑒定通用規(guī)范
- GB/T 31888-2015中小學(xué)生校服
- 質(zhì)量檢查考核辦法
- 云南省普通初中學(xué)生成長記錄-基本素質(zhì)發(fā)展初一-初三
- 2023年系統(tǒng)性硬化病診斷及診療指南
- 外科醫(yī)師手術(shù)技能評(píng)分標(biāo)準(zhǔn)
- 《英語教師職業(yè)技能訓(xùn)練簡明教程》全冊(cè)配套優(yōu)質(zhì)教學(xué)課件
- 采購控制程序
- 六年級(jí)上冊(cè)數(shù)學(xué)簡便計(jì)算題200題專項(xiàng)練習(xí)
評(píng)論
0/150
提交評(píng)論