




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年湖北省荊州市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序運行后的輸出結(jié)果是()。A.m=6B.m=2C.m=4D.m=3
2.
3.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點p的直接后繼,則應(yīng)執(zhí)行下列()操作。
A.p->next=p->next->next;
B.p=p->nextp->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
4.如果以鏈表作為棧的存儲結(jié)構(gòu),則出棧操作時()。
A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷
5.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
6.下面程序的輸出結(jié)果是
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*p+9);}
A.0B.1C.10D.9
7.
8.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。
A.對文件操作必須先關(guān)閉文件
B.對文件操作必須先打開文件
C.對文件操作順序無要求
D.對文件操作前必須先測文件是否存在,然后再打開文件
9.以下程序的輸出結(jié)果是()。main{intx=0.5;charz=‘a(chǎn)’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
10.
11.棧和隊列的共同點是()。
A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點處插入和刪除元素D.沒有共同點
12.已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是()
A.cedbAB.acbeDC.decaBD.deabC
13.有以下定義語句,編譯時會出現(xiàn)編譯錯誤的是()。
A.chara=’\x2d’;B.chara=。\n。;C.chara=…a;D.chara=”aa”:
14.
15.以下程序的輸出結(jié)果是()main(){union{chari[2];intk;}r;r.i[0]=2,r.i[1]=0;printf("%d\n",r,k);}
A.2B.1C.0D.不確定
16.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.Sun,f,90,Sun,f,90
B.Zhao,m,85,Sun,f,90
C.Zhao,m,85,Qian,f,95
D.Sun,f,90,Qian,f,95
17.
18.計算機高級語言程序的運行方法有編譯執(zhí)行和解釋執(zhí)行兩種,以下敘述中正確的事()。
A.C語言程序僅可以編譯執(zhí)行B.C語言程序僅可以解釋執(zhí)行C.C語言程序既可以編譯執(zhí)行又可以解釋執(zhí)行D.以上說法都不對
19.程序運行后的輸出結(jié)果是()。A.10B.11C.20D.21
20.下面屬于黑盒測試方法的是()。
A.邊界值分析B.路徑覆蓋C.語句覆蓋D.邏輯覆蓋
二、2.填空題(20題)21.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
22.以下程序運行后的輸出結(jié)果是______。
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
23.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。
24.下面程序的運行結(jié)果是()。
#include<stdio.h>
main()
{inta=25;
fun(&A);
}
fun(int*x)
{printf("%d\n",++*x);
}
25.已知a=1,b=2,則表達(dá)式(a&B)&b||b的結(jié)果為()。
26.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
27.以下程序的輸出結(jié)果是【】。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf("%d\n",s);
}
28.下列程序的功能是計算數(shù)的階乘。
main()
{ihti,n;
nlongnp;
scanf("%d",&n);
np=【】;
for(i=2;i<=n;i++)
【】;
printf("n=%dn!=%ld\n",n,np);
}
29.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
30.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
31.以下程序運行后的輸出結(jié)果是______。
main()
{
inta,b,c;
a=25;
b=025;
c=0x25;
printf("%d%d%d\n",a,b,C);
}
32.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。
33.下面程序的運行結(jié)果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
34.實現(xiàn)程序可將磁盤中的一個文件復(fù)制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請補全程序。
#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);
}
35.度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為______。
36.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdatc
{intday;
intmouth;
intyear:
union{intshare1;
floatshare2:
}share;
}a;
37.某二叉樹中度為2的結(jié)點有n個,則該二叉樹中有【】個葉子結(jié)點。
38.下列程序輸出的結(jié)果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
39.下列程序中字符串中各單詞之間有一個空格,則程序的輸出結(jié)果是【】。
#include<string.h>
main()
{charstr1[]="Howdoyoudo",*p1=str1;
strcpy(str1+strlen(str1)/2,"eshe");
printf("%s\n",p1);
}
40.以下程序的功能是輸出如下形式的方陣:
13141516
9101112
5678
1234
請?zhí)羁铡?/p>
main()
{inti,i,x;
for(j=4;j______;j--)
{for(i=1;i<4;i++)
{x=(j-1)*4+______;
printf("%4d",x);
}
printf("\n");
}
三、1.選擇題(20題)41.已定義下列函數(shù):intfun(int*p){return*p;)fun函數(shù)返回值是()。
A.不確定的值B.一個整數(shù)C.形參p中存放的值D.形參p的地址值
42.下列程序的運行結(jié)果是()。#include<stdio.h>#include<string.h>main(){char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}
A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值
43.下列程序的輸出結(jié)果是______。intm=10;intfun(inta,intB){intm=2;return(a*b-m);}main(){intx=7,y=5;printf("%d\n",fun(x,y)%m);}
A.1B.2C.7D.3
44.以下正確的程序段是
A.cgarstr[20];scanf("%s",&str);
B.char*p;scanf("%s",p);
C.charstr[20];scanf("%s",&str[2])
D.charstr[20],*p=str;scanf("%s",p[2]);
45.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
46.在C程序中,判邏輯值時,用“非0”表示邏輯值“真”,又用“0”表示邏輯值“假”。在求邏輯值時,邏輯真和邏輯假可分別表示為
A.10B.01C.非0非0D.11
47.實體聯(lián)系模型中實體與實體之間的聯(lián)系不可能是
A.一對一B.多對多C.一對多D.對零
48.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字母的表達(dá)式是
A.isupper?
B.′A′<=c<=′Z′
C.′A′<=c&&c<=′Z′
D.c<=(′z′-32)&&(′a′-32)<=c
49.結(jié)構(gòu)化程序設(shè)計的主要特點是()。
A.每個控制結(jié)構(gòu)要模塊化B.每個控制結(jié)構(gòu)具有封裝性C.每個控制結(jié)構(gòu)具有獨立性D.每個控制結(jié)構(gòu)只有一個入口和一個出口
50.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}該程序的輸出結(jié)果是
A.987B.876C.8765D.9876
51.數(shù)據(jù)的存儲結(jié)構(gòu)是指______。
A.數(shù)據(jù)所占的存儲空間量B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示C.數(shù)據(jù)在計算機中的順序存儲方式D.存儲在外存中的數(shù)據(jù)
52.若w、x、y、z、m均為int型變量,則執(zhí)行下列的語句后m的值是()。w=2,x=3,y=4,z=5;m=(w<x)?w:x;m=(m<z)?m:z;m=(m<y)?m:y;
A.2B.3C.5D.4
53.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
54.下列不屬于軟件調(diào)試技術(shù)的是______。A.強行排錯法B.集成測試法C.回溯法D.原因排除法
55.在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
56.單個用戶使用的數(shù)據(jù)視圖的描述稱為______。
A.外模式B.概念模式C.內(nèi)模式D.存儲模式
57.以下選項中,能用作數(shù)據(jù)常量的是()。
A.18B.11C.0.800.5D.25L
58.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
59.下列敘述錯誤的是()。
A.在C語言中的保留字必須小寫
B.變量的存儲類型決定了變量的存儲位置及其生存期
C.宏定義以#define開頭,行末必須加分號
D.在C語言中的注釋行可以出現(xiàn)在程序的任何位置
60.在執(zhí)行完下列的C語句段之后,則B的值是()。chara='A';intb;B=((34&&56)&&(a<'b'));
A.0B.1C.真D.假
四、選擇題(20題)61.下列敘述中正確的是()。
A.用E—R圖能夠表示實體集之間一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系
B.用E—R圖只能表示實體集之間一對一的聯(lián)系
C.用E—R圖只能表示實體集之間一對多的聯(lián)系
D.用E—R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
62.
63.
A.intB.floatC.doubleD.不確定
64.(24)對建立良好的程序設(shè)計風(fēng)格,下面描述正確的是()
A.程序應(yīng)簡單、清晰、可讀性好
B.符號名的命名要符合語法
C.充分考慮程序的執(zhí)行效率
D.程序的注釋可有可無
65.(10)下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()
A.內(nèi)模式
B.外模式
C.概念模式
D.邏輯模式
66.以下描述中正確的是()。
A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句
B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號
C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷
D.do-while循環(huán)中,根據(jù)情況可以省略while
67.
68.有以下程序程序執(zhí)行后的輸出結(jié)果是()。
A.abe,a23B.abe,123C.123,abeD.321,cba
69.有下列程序:intfunl(doublea){returna*=a;}intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……}程序執(zhí)行后變量w中的值是()。A.5.21B.5C.5.0D.0.0
70.下列處理中與隊列有關(guān)的是()。
A.操作系統(tǒng)中的作業(yè)調(diào)度B.執(zhí)行程序中的過程調(diào)用C.執(zhí)行程序中的循環(huán)控制D.——-X樹的遍歷
71.有以下程序l
該程序試圖通過指針P為變量n讀人數(shù)據(jù)并輸出,但程序有多處錯誤,以下語句正確的是()。
72.在JavaScript語言中,擁有onsubmit事件的對象是()。
A.documentB.eventC.windowD.form.
73.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)庫B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫應(yīng)用系統(tǒng)
74.
75.下列敘述中錯誤的是()。
A.列表框和組合框都有List屬性
B.列表框有Selected屬性,而組合框沒有
C.列表框和組合框都有Style屬性
D.組合框有Text屬性,而列表框沒有
76.設(shè)有定義:“struct{charmarkp[l2];intnuml;doublenum2;}tl,t2;”,若變量均已正確賦初值,則以下語句中錯誤的是()。
A.t1=t2;
B.t2.num1=tl.numl;
C.t2.mark=tl.mark;
D.t2.num2=tl.num2;
77.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。
A.兩個語句都是將變量a的值賦予變量P
B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P
C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a
D.兩個語句都是使P指向變量a
78.有如下程序段
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);
}
程序運行后輸出的結(jié)果是A.A.63
B.36
C.編譯出錯
D.00
79.以下敘述中錯誤的是()。
A.用戶定義的函數(shù)中可以沒有return語句
B.用戶定義的函數(shù)中可以有多個return語句,以便可以調(diào)用一次返回多個函數(shù)值
C.用戶定義的函數(shù)中若沒有reillnl語句,則應(yīng)當(dāng)定義函數(shù)為void類型
D.函數(shù)的retU/Tl語句中可以沒有表達(dá)式
80.
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc的功能是:判斷字符ch是,與str所指字符串中的某個字符相同;若相同,則什么也不做,若不同,則將其插在串的最后。請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
//****found****
voidproc(charstr,charch)
{
while(*str&&*str!=ch)str++;
//****found****
if(*str==ch)
{str[0]=ch;
//****found****
str[1]=0:
}
}
voidmain
{
charstr[81],ch;
system("CLS");
printf("\nPleaseenterastring:");
gets(str);
printf("\nPleaseenterthecharacterto
search:");
ch=getchar;
proc(str,ch);
printf("\nTheresultis%s\n",str);
}
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc(),它的功能是計算下列級數(shù)和,和值由函數(shù)值返回。sum=1-x+x2/2!-x3/31+…+(-l*x)n/n!例如,當(dāng)n=23,x=0.3時,函數(shù)值為0.740818。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。試題程序:
參考答案
1.A本題考查了多重for循環(huán)。當(dāng)(i*j)>3時,跳出循環(huán),本題中i=1,j=3,i*J后值為3,所以執(zhí)行下邊語句:m*=i+j,也可寫成m=m*i+j,這時要注意優(yōu)先級,所以m的值為6。
2.C
3.A
4.B
5.B本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
6.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符'*'的優(yōu)先級高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。
7.A
8.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關(guān)閉文件。對文件以讀的方式進(jìn)行打開操作時,同時會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時,文件不存在,將會自動創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。
9.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a(chǎn)’<‘z’)=1&&1=1,故選擇B選項。
10.B
11.C解析:棧和隊列都是一種特殊的操作受限的線性表,只允許在端點處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”(或“先進(jìn)后出”)的線性表;而隊列只允許在表的一端進(jìn)行插入操作,在另一端:進(jìn)行刪除操作,是一種“先進(jìn)先出”(或“后進(jìn)后出”)的線性表。因此棧和隊列的共同點是只允許在端點處插入和刪除元素。
12.A
13.DD選項中將字符串常量…aa賦給字符變量a是錯誤的。
14.D
15.A解析:根據(jù)共用體的定義可知:共用體r的成員k和成員i[2]是共用同—段內(nèi)存空間,所以,當(dāng)程序給r.i[0]賦值后,實際上,共用體成員k的值也確定了,為2。所以打印輸出的結(jié)果應(yīng)當(dāng)為2。
16.A程序定義結(jié)構(gòu)體類型STU,定義類型STU的全局變量a。main函數(shù)定義局部類型為STU變量b,并對它初始化,調(diào)用函數(shù)f。將局部變量c的各個成員值賦給a,覆蓋a的舊值,將a的新值返回并賦給b,此時a、b的各個成員值都是Sun,f,90,程序輸出:Sun,f,90,Sun,f,90。本題答案為A選項。
17.A
18.A解釋執(zhí)行是計算機語言的一種執(zhí)行方式。由解釋器現(xiàn)場解釋執(zhí)行,不生成目標(biāo)程序。如BASIC便是解釋執(zhí)行。一般解釋執(zhí)行效率較低,低于編譯執(zhí)行。而C程序是經(jīng)過編譯生成目標(biāo)文件然后執(zhí)行的,所以C程序是編譯執(zhí)行。
19.D[解析]聲明data是結(jié)構(gòu)S數(shù)組。初始化data[0].a=10;data[O]b=100;data[1].a=20;data[]b=200.主函數(shù)中p=data[1];即p.a=data[1].a;p.b=data[1].b;執(zhí)行語句prit("%odn",++(pa);打印輸出時p.a先增1再打印。p.a=data\u3000\u3000[1].a=20.先增1等于21.
20.A黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等。白盒測試的主要方法有邏輯驅(qū)動、路徑測試等,主要用于軟件驗證。
21.77解析:此表達(dá)式為三目運算符,++a的值為6,b--的值為6,則整個表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
22.136136解析:本題考核的知識點是函數(shù)遞歸。主函數(shù)調(diào)用函數(shù)fun(6),由于6/2>0為真遞歸調(diào)用fun(3),接著遞歸調(diào)用fun(1),輸出1,返回上一層輸出3,在返回上一層輸出6。故空格處應(yīng)該填136。
23.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
24.2626解析:在主函數(shù)中只調(diào)用了fun函數(shù),調(diào)用時把變量a的地址傳遞給形參。fun函數(shù)的形參x是一個指針,其基類型與主函數(shù)中a的類型一致,因此在調(diào)用時得到的是a的地址,輸出項是++*x,*x代表的就是主函數(shù)中變量a的存儲單元,++*x就是使主函數(shù)中a的值加1,輸出26。
25.1
26.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
27.2222解析:在main函數(shù)中,調(diào)用reverse函數(shù)將b數(shù)組中的前8個成員進(jìn)行互置,執(zhí)行完畢后,b數(shù)組中的成員為{8,7,6,5,4,3,2,1,9,10},然后再執(zhí)行for循環(huán)結(jié)構(gòu),將b[6],b[7]...b[9]的值相加,結(jié)果為22。
28.1np*=i或np=np*i1\r\nnp*=i或np=np*i
29.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。
30.*(p+5)或p[5]*(p+5)或p[5]
31.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進(jìn)制的025,c為十六進(jìn)制0x25。然后調(diào)用pruntf()函數(shù)將a、b和c分別用十進(jìn)制輸出,且中間用空格隔開,八進(jìn)制025轉(zhuǎn)換為十進(jìn)制的值為21,十六進(jìn)制的0x25轉(zhuǎn)換為十進(jìn)制的值為37,故最后的輸出結(jié)果為252137。
32.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。
33.3030解析:題目中for(;;)表示:for循環(huán)的初始化表達(dá)式,條件表達(dá)式和修正表達(dá)式都省略了,表示進(jìn)行for循環(huán)和for循環(huán)的終止都沒有限制。注意:while循環(huán)的執(zhí)行原理。
34.3!feof(f1)3\r\n!feof(f1)解析:要實現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
35.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標(biāo)順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
36.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(A)的值是2+2+2+4=10。
37.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為0的結(jié)點多一個。
38.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內(nèi)。在fun函數(shù)內(nèi)部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內(nèi)部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。
39.HowdoesheHowdoeshe解析:本題的關(guān)鍵在于表達(dá)式str1+strlen(str1)/2,注意“/”的用法,可得str1+13/2=str1+6。
40.ii解析:本題使用了一個兩重for循環(huán)輸出如題所示的方陣。從外層for循環(huán)的最后一條語句prinff('\\n');可以看出,外層for循環(huán)每次輸出方陣的一行,由于方陣是4行所以外層循環(huán)會循環(huán)4次,又從j=4和卜可以看出這4次循環(huán),循環(huán)變量i的值分別為4、3、2、1.故前一空應(yīng)該填j>=1或者j>0,以保證j等于0時循環(huán)結(jié)束。內(nèi)層循環(huán)控制每行輸出的4個數(shù),其循環(huán)變量i從1遞增到4,由于每行的4個結(jié)果也是差1遞增的,所以將每次結(jié)果減去循環(huán)變量i的值為一個常數(shù),每行分別是12、8、4、0,而這些值正好與4次外循環(huán)中表達(dá)式(j-1)*4的值相吻合,故后一空應(yīng)該填i。
41.B解析:由函數(shù)intfun(int*p){return*p;}的定義可知,返回值為整型指針變量p所指向的數(shù)據(jù)。
42.A解析:本題考查字符串比較函數(shù)和兩個字符串比較的原則兩個知識點,①原則是依次比較兩個字符串同一位置的對字符,若它們的ASCII碼值相同,則繼續(xù)比較下一對字符,若它們的ASCII碼值不同,則ASCII碼值較大的字符所在的字符串較大;若所有字符相同,則兩個字符串相等;若一個字符串全部i個字符與另一個字符串的前i個字符相同,則字符串較長的較大。②strcmp(s1,s2)的返回值,當(dāng)str1<str2時,返回值<0;當(dāng)str1=str2時,返回值為0;當(dāng)str1>str2,返回值>0。
43.D解析:本題考查全局變量和局部變量的區(qū)別。在函數(shù)fun中的m是局部變量,值為2,在主函數(shù)中的m是全局變量,值為10。
44.C解析:scanf輸入字符串有一點要注意的是,格式控制串必須用%s。注意:gets函數(shù)和puts函數(shù)的作用。
45.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進(jìn)制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進(jìn)制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。
46.A解析:在C程序中,判斷邏輯值時,用非0表示真,用0表示假。邏輯表達(dá)式計算時,邏輯表達(dá)式值為真是用1表示的,若邏輯表達(dá)式的值為假,則用0表示。
47.D解析:實體聯(lián)系模型中實體與實體之間的聯(lián)系有一對一(1:1),一對多戌多對一(1:m或m:1),多對多(m:n)其中一對一是最常用的關(guān)系。
48.B解析:在本題中,選項B)實際是先計算關(guān)系表達(dá)式'\'A\'<=c'的值是0還是1,再比較該值與字符\'Z\'之間的大小關(guān)系,顯然不能實現(xiàn)題目所要求的功能,而選項A)、C)、D)都可以。
49.D解析:結(jié)構(gòu)化程序設(shè)計要求把程序的結(jié)構(gòu)限制為順序、選擇和循環(huán)三種基本結(jié)構(gòu),以便提高程序的可讀性。這種結(jié)構(gòu)化程序具有以下兩個特點:首先,以控制結(jié)構(gòu)為單位,只有一個入口和一個出口,使各單位之間的接口比較簡單,每個單位也容易被人們所理解;其次,縮小了程序的靜態(tài)結(jié)構(gòu)與動態(tài)執(zhí)行之間的差異,使人們能方便、正確地理解程序的功能。本題的正確答案是D。
50.B解析:該題目應(yīng)該根據(jù)循環(huán)體第一次和最后一次執(zhí)行時的輸出結(jié)果來決定哪一項是正確的。第一次進(jìn)入循環(huán)時,n的值是9,循環(huán)體內(nèi),先經(jīng)過n--運算,n的值變?yōu)?,所以第一次的輸出值是8,由此可以排除選項A)和D)。由循環(huán)條件n>6可以知道,最后一次循環(huán)開始時,n的值應(yīng)該為7,所以最后一次執(zhí)行循環(huán)時,輸出為6,由此可以排除選項C)。
51.B解析:數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與它們的邏輯關(guān)系不一定是相同的,而且一般不可能相同。數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。
52.A解析:條件表達(dá)式“a?b:c”的含義是:當(dāng)a為真時,其值等于表達(dá)式b的值;當(dāng)a為假時,其值等于表達(dá)式c的值。
表達(dá)式運算過程:第1個表達(dá)式:w=2<x=3為真,所以返回w的值,即m=w=2;第2個表達(dá)式:m=2<z=5為真,所以返回m的值,即m=2;第3個表達(dá)式:w=2<y=4為真,所以返回m的值,即m=2。
53.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結(jié)束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結(jié)束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。
54.B解析:我們嚴(yán)格區(qū)分調(diào)試與測試,調(diào)試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發(fā)現(xiàn)錯誤但不能保證程序沒錯而來找BUG,還比如我們運行測試程序是否符合用戶的要求,是主動的。所以答案是選項B。A、C、D都是具體的程序調(diào)試方法,而B是宏觀的程序測試方法。測試有單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試。比如我們在進(jìn)行單元測試時,發(fā)現(xiàn)程序有錯誤,我們再可以根據(jù)A、C、D的方法來找錯誤。
55.B解析:在長度為64的有序線性表中,其中的64個數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個元素,算法才結(jié)束。因此,在長度為64的有序線性表十進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項B。
56.A解析:選項A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項C)不正確,物理存儲數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲方面的描述;選項D)不正確,存儲模式即為內(nèi)模式。
57.D
58.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
59.C解析:本題涉及C語言最基本的4個知識點:①C語言的保留字必須小寫;②變量的存儲類型不同,其存儲位置和生存期也不一樣:③C語言允許其注釋部分出現(xiàn)在程序中的任何位置;④宏定義以#define開頭,行末不需要加分號。
60.B解析:本題考查C語言3個知識點:①將一個字符賦給一個字符變量時,并不是將該字符本身存儲到內(nèi)存中,而是將該字符對應(yīng)的ASCII碼存儲到內(nèi)存單元中:②大寫字母的ASCII碼值小于其對應(yīng)小寫字母的ASCII碼值:⑧只要邏輯與運算符&&的兩個運算對象都為非零,返回值就是1。
61.A用E—R圖可以描述實體及其相互之間的聯(lián)系,還可以描述多個實體集之間的聯(lián)系和一個實體集內(nèi)部實體之間的聯(lián)系。用E—R圖表示的概念數(shù)據(jù)模型不僅能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型,還可以轉(zhuǎn)換為其他數(shù)據(jù)模型,如網(wǎng)狀模型和層次模型等。所以A的說法正確。
62.A
63.C根據(jù)混合運算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運算的結(jié)果最終也是double型。
64.A
65.A能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是內(nèi)模式。外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。沒有邏輯模式這一說法。正確答案為A。
66.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達(dá)式);,其中循環(huán)體語句可以是復(fù)合型語句,但必須用花括號括起來。while后必須要有分號作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。
67.D
68.A字符串是一個特殊的數(shù)組,按照數(shù)組的規(guī)則,sl應(yīng)該指向的是數(shù)組的首地址,即“abc”的第一個字符的地址,s2指向的是“123”的第一個字符的地址。調(diào)用swap函數(shù)之后交換的是兩個字符串的第一個字符a和’l。的內(nèi)容,因此打印輸出為A)。
69.C子函數(shù)fun1(doublea)的功能是返回a的平方值的整數(shù)部分。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷庫買賣拆除合同范本
- 剪力墻和伸縮縫施工方案
- 亞馬遜推廣服務(wù)合同范本
- 分包電氣合同范本
- 第七章各具特色的地區(qū)教學(xué)設(shè)計2023-2024學(xué)年商務(wù)星球版地理七年級下冊
- 中英文演出合同范本
- 農(nóng)作物安全生產(chǎn)合同范本
- 加盟燕窩店合同范例
- 加工面店轉(zhuǎn)讓合同范本
- 出口篷布采購合同范本
- 2015-2022年青島酒店管理職業(yè)技術(shù)學(xué)院高職單招語文/數(shù)學(xué)/英語筆試參考題庫含答案解析
- 保險第三方理賠調(diào)查服務(wù)方案
- 我愛運動手抄報電子小報模板(附A4線稿)可打印涂色
- 新能源汽車結(jié)構(gòu)原理與檢修(彩色版)課件
- GB/T 9113-2010整體鋼制管法蘭
- GB/T 32722-2016土壤質(zhì)量土壤樣品長期和短期保存指南
- 2009數(shù)據(jù)結(jié)構(gòu)英文試卷A及答案
- FZ/T 51010-2014纖維級聚對苯二甲酸1,3-丙二醇酯切片(PTT)
- 中等職業(yè)學(xué)校英語教學(xué)大綱詞匯表本表共收詞2200個左右含
- 三年級下冊道德與法治《我是獨特的》教學(xué)課件【新部編版】
- “互聯(lián)網(wǎng)+”大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)課件
評論
0/150
提交評論