版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年江西省撫州市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)知識點(diǎn)匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列選項(xiàng)不符合良好程序設(shè)計(jì)風(fēng)格的是()。
A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)原則是高耦合、高內(nèi)聚
2.下列敘述中正確的是()。A.算法就是程序B.設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C.設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D.以上三種說法都不對
3.算法的時(shí)間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)
4.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運(yùn)行后的輸出結(jié)果是______。A.3B.6C.8D.12
5.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。A.4284B.2870C.2668D.3981
6.定義根節(jié)點(diǎn)深度為1,有n個(gè)元素的完全二叉樹的深度是()
A.D(n)=log2(n)
B.D(n)=1+log2(n)
C.D(n)=n+log2(n)
D.D(n)=1+n*log2(n)
7.
8.對一個(gè)關(guān)系投影操作以后,新關(guān)系的元組個(gè)數(shù)______原來關(guān)系的元組個(gè)數(shù)。
A.小于B.小于或等于C.等于D.大于
9.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
10.若用一個(gè)大小為6的數(shù)值來實(shí)現(xiàn)循環(huán)隊(duì)列,且當(dāng)前rear和front的值分別為0和3,當(dāng)從隊(duì)列中刪除一個(gè)元素,再加入兩個(gè)元素后,rear和front的值分別為()。
A.1和5B.2和4C.4和2D.5和1
11.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現(xiàn)要將字符串”ABCDE”賦給sl,下列語句錯(cuò)誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
12.以下程序的輸出結(jié)果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
13.設(shè)有定義“struct{charmark[12];intnum1;doublenum2;}t1,t2;”,若變量均已正確賦初值,則下列語句中錯(cuò)誤的是()。
A.t1=t2;
B.t2.num1=t1.num1;
C.t2.mark=t1.mark;
D.t2.num2=t1.num2;
14.設(shè)abcdef以所給的次序進(jìn)棧,若在進(jìn)棧操作時(shí),允許退棧操作,則下面得不到的序列為()。
A.fedcbaB.bcafedC.dcefbaD.cabdef
15.如果一個(gè)函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說明語句后的復(fù)合語句中定義了一個(gè)變量,則該變量().
A.為全局變量,在本程序文件范圍內(nèi)有效
B.為局部變量,只在該函數(shù)內(nèi)有效
C.為局部變量,只在該復(fù)合語句中有效
D.定義無效,為非法變量
16.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
17.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
18.
19.有以下程序:#include<stdio.h>intfun(){staticintx=1;X*=2:returnx;}main(){inti,S=1;for(i=1;i<=3;i++)S*=fun();printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A.0B.10C.30D.64
20.以三級模式為框架形成的3種數(shù)據(jù)庫中,真實(shí)存在于計(jì)算機(jī)外存的數(shù)據(jù)庫是()。
A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫
二、2.填空題(20題)21.設(shè)有下列的程序段:
charstr[]="Hello";
char*ptr;
ptr=-str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
22.以下程序運(yùn)行后的輸出結(jié)果是()。
#include<stdio.h>
main()
{intx=20;
printf("%d",0<x<20);
printf("%d\n",0<x&&x<20);
}
23.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
24.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
25.本程序用改進(jìn)冒泡法對數(shù)組a[n]的元素從小到大排序,請?jiān)诔绦蚩瞻滋幪羁铡?/p>
voidbubble(inta[],intn)
{intj,k,jmax,temp;
jmax=【】;
do{
k=0;
for(j=0;j<jmax;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;k=【】;
jmax=k;
}while(jmax>0);}
26.若從鍵盤輸入58,則以下程序輸出的結(jié)果是【】。
mam()
{inta;
scanf("%d",&a);
if(a>50)printf("%d",a);
if(a>40)printf("%d",a);
if(a>30)printf("%d",a);
}
27.以下程序的輸出結(jié)果是【】。
voidfun()
{staticinta;
a+=2;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)fun();
printf("\n");
}
28.下面程序的功能:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),請補(bǔ)充完整。
main()
{inti,j;
for(i=0;【】;i++)
{j=i*10+6;
if(【】)continue;
printf("%d",j);
}
}
29.下面程序的運(yùn)行結(jié)果:【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[o];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);printf("%d\n",s);
}
30.若輸入tear、test、arj,則下列程序的運(yùn)行結(jié)果為【】。
main()
{char*strl[20],*str2[20],*str3[20];
charswap();
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
if(strcmp(str1,str2)>0)swap(str1,str2);
if(strcmp(str1,str3)>0)swap(str1,str3);
if(strcmp(str2,str3)>0)swap(str2,str3);
printf("%s%s%s\n",str1,str2,str3);
}
charswap(p1,p2)
char*p1,*p2;
{char*p[20];
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);
}
31.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號表達(dá)式)
whi1e()s[i]){d[j]=【】:j++;}
d[j]=0;
32.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括選擇、連接和【】。
33.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。
34.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
35.【】是數(shù)據(jù)庫設(shè)計(jì)的核心。
36.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
現(xiàn)在請你在下面的函數(shù)中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
37.【】(黑箱或白箱)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征。
38.執(zhí)行以下程序后,輸出‘#’號的個(gè)數(shù)是【】。
#include<atdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
39.以下程序運(yùn)行后的輸出結(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);
}
40.函數(shù)mystrlen(char*s)的功能是求字符串s的長度,請?zhí)羁铡?/p>
mystrlen(char*s)
{char*t:
t=s;
while(【】)t++;
return(t-s);
}
三、1.選擇題(20題)41.下列的程序用來輸出兩個(gè)字符串前7個(gè)字符中對應(yīng)相等的字符及其位置號,程序空白處應(yīng)該填寫的是()。#include<stdio.h>main(){chars1[]="chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]==s2[i]&&i<7)__________________;}
A.putchar(s2[i]);putchar(i)
B.puts(s1[i],i)
C.printf("%c%d\n",s2[i],i)
D.printf("%c",s1[i]);printf("%d\n",i)
42.軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計(jì),其中軟件的過程設(shè)計(jì)是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
43.請讀程序片段(字符串內(nèi)沒有空格字符):printf("%d\n",stlen("ATS\n012\1\\”));上面程序片段的輸出結(jié)果是()
A.11B.10C.9D.8
44.在關(guān)系數(shù)據(jù)庫模型中,通??梢园?)稱為屬性,其值稱為屬性值。
A.記錄B.基本表C.模式D.字段
45.下面程序段的輸出結(jié)果是()。#include<stdio.h>main(){floatx=1.236547;printf("%f\n",(int)(x*1000+0.5)/(float)1000);}
A.1.237000B.輸出格式說明與輸出項(xiàng)不匹配,輸出無定值C.1.236000D.1.24
46.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
47.軟件詳細(xì)設(shè)計(jì)的主要任務(wù)是確定每個(gè)模塊的()。
A.算法和使用的數(shù)據(jù)結(jié)構(gòu)B.外部接口C.功能D.編程
48.編制一個(gè)好的程序,首先要保證它的正確性和可靠性,還應(yīng)強(qiáng)調(diào)良好的編程風(fēng)格,在書寫功能性注釋時(shí)應(yīng)考慮
A.僅為整個(gè)程序作注釋B.僅為每個(gè)模塊作注釋C.為程序段作注釋D.為每個(gè)語句作注釋
49.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+'a'+i*f值的數(shù)據(jù)類型為()。
A.intB.floatC.doubleD.不確定
50.數(shù)據(jù)處理的最小單位是()。
A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.數(shù)據(jù)結(jié)構(gòu)
51.下列程序段中,不能正確賦值的是()。
A.char*p,ch;p=&ch;scanf("%c",&p);
B.char*p;p=(char*)malloc(1);scabf("%c",p);
C.char*p;*p=getchar();
D.char*p,ch;p=&ch;*p=getchar();
52.有以下程序:#include<stdio,h>inta=2;intf(intn){staticinta:3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+:a++;}returnt+a++;main(){ints=a,i;for(i=0;i<3;i++)s+=f(i);prinff("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。
A.26B.28C.29D.24
53.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
54.設(shè)x、y\z和k都是int型變量,執(zhí)行表達(dá)式x=(y=4,z=16,k=32)后,x的值為______。
A.4B.16C.32D.52
55.已知大寫字母A的ACSⅡ碼為65,以下程序的運(yùn)行結(jié)果是()#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}A.65,89B.A,YC.65,88D.65,90
56.以下程序段中與語句k=a>b?(b>c?1:0):0;功能等價(jià)的是
A.if((a>b)&&(b>c))k=1;elsek=0;
B.iff(a>b)‖(b>c))k=1;elsek=0;
C.iffa<=b)k=0;elseiffb<=c)k=1;
D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;
57.已知字母A的ASCII碼為十進(jìn)制的65,下面程序的輸出結(jié)果是()。main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,"c/n",ch1,Ch2);}
A.67,DB.B,CC.C,DD.不確定的值
58.下列程序的輸出結(jié)果是()。
main()
{intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%dXn",j);}
A.42B.45C.56D.60
59.計(jì)算機(jī)硬件組成中,CPU包含______。
A.控制器和存儲器B.控制器和運(yùn)算器C.控制器、運(yùn)算器和存儲器D.內(nèi)存儲器和外存儲器
60.若執(zhí)行下面的程序時(shí),從鍵盤上輸入5和2,則輸出結(jié)果是main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}
A.5B.3C.2D.0
四、選擇題(20題)61.
62.有以下程序:
main
{chara='a',b;
printf("%c,",++a);
printf("%c\n",b=a++):
)
程序運(yùn)行后的輸出結(jié)果是()。A.A.b,bB.b,cC.a,bD.a,c
63.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.11,12B.12,13C.13,14D.14,11
64.下列關(guān)于單目運(yùn)算符++,——的敘述中正確的是()。
A.它們的運(yùn)算對象可以是任何變量和常量
B.它們的運(yùn)算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運(yùn)算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運(yùn)算對象可以是char型變量、int型變量和float型變量
65.設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價(jià)的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
66.閱讀以下程序及對程序功能的描述,其中正確的描述是
#include<stdio.h>
main()
{
FILE*in,*out;
charch,infile[10],outfile[10];
printf("Entertheinfilename:\n");
scanf("%s",infile);
printf("Entertheoutfilename:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{
printf("cannotopeninfile\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannotopenoutfile\n");
exit(0);
}
while(!feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);
}
A.程序完成將磁盤文件的信息在屏幕上顯示的功能
B.程序完成將兩個(gè)磁盤文件合二為一的功能
C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中
D.程序完成將兩個(gè)磁盤文件合并后在屏幕上輸出
67.
68.下面敘述中,正確的是
A.C語言編譯時(shí)不檢查語法B.C語言的子程序有過程和函數(shù)兩種
C.C語言的函數(shù)可以嵌套定義D.C語言的函數(shù)可以嵌套調(diào)用
69.有以下程序:#include<stdio.h>structS{inta,b;)data[2]=10,100,20,200);main(){structSp=data[l];printf("%d\n",++(p.a(chǎn)));}程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.20D.21
70.
71.為了使模塊盡可能獨(dú)立,要求()。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的偶合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
72.以下選項(xiàng)中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
73.
74.下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A.軟件測試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)
75.以下程序運(yùn)行后的輸出結(jié)果是()。
A.2B.1C.3D.O
76.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}A.A.49B.36C.25D.64
77.某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有l(wèi)個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。
A.3B.4C.6D.7
78.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
79.
80.若有定義語句:doublea,*P=&a;以下敘述中錯(cuò)誤的是()。
A.定義語句中的*號是-個(gè)間址運(yùn)算符
B.定義語句中的木號是-個(gè)說明符
C.定義語句中的P只能存放double類型變量的地址
D.定義語句中,P=&a把變量a的地址作為初值賦給指針變量P
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為7531。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,函數(shù)fun()的功能是將s所指字符串中下標(biāo)為偶數(shù)同時(shí)ASCII值為奇數(shù)的字符刪除,s所指字符串中剩余的字符形成的新字符串存放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符C的ASCⅡ值為奇數(shù),在數(shù)組中的下標(biāo)為偶數(shù),因此必須刪除;而字符1的ASCⅡ值為奇數(shù),在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是“BDH2345”。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序::
參考答案
1.D在程序設(shè)計(jì)中,對于軟件設(shè)計(jì)中的模塊設(shè)計(jì)要保證高內(nèi)聚和低耦合,源程序要有文檔說明,同時(shí)對程序中數(shù)據(jù)的說明要規(guī)范化。而goto語句破壞程序的結(jié)構(gòu),要盡量避免使用。所以選項(xiàng)D不正確。
2.D算法是指解題方案的準(zhǔn)確而完整的描述,算法不等于程序,也不等于計(jì)算方法,所以A錯(cuò)誤。設(shè)計(jì)算法時(shí)不僅要考慮對數(shù)據(jù)對象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項(xiàng)。
3.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉懙某绦蜷L度往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。
4.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達(dá)式(x+y)/2的值,即:(5+6)/2,因?yàn)閰?shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時(shí)8和5也不相等,所以返回值為6,因此,選項(xiàng)B是正確的。
5.Bfor循環(huán)中,i取值為1~100。循環(huán)體中,3個(gè)if語句必須同時(shí)滿足才會輸出x,輸出的x取值為i+3,所以x的取值只能是4到103。x必須滿足以下條件:①x%7==0(x必須是7的倍數(shù));②(x-1)%3==0(x必須是3的倍數(shù)+1);③(x-2)%2==0(x必須是2的倍數(shù))。滿足條件③的x取值為7,14,21,28,35,42,49,56,63,70,77,84,91,98;又滿足條件②的x的取值為7,28,49,70,91;又滿足條件①的x的取值為28,70。本題答案為B選項(xiàng)。
6.B
7.B
8.B解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來的元組數(shù)。
9.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個(gè)元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯(cuò)誤(注:數(shù)組元素下標(biāo)從0開始);B中,*a+1指的是將數(shù)組a的第一個(gè)元素加1;選項(xiàng)C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
10.B
11.C數(shù)組名sl是代表sl數(shù)組首地址的地址常量,因?yàn)椤?”左邊不能出現(xiàn)常量,所以s1="ABCDE"的方法是錯(cuò)誤的。
12.B
13.Cmark為結(jié)構(gòu)體中的數(shù)組,不能直接賦值,所以C選項(xiàng)錯(cuò)誤。故本題答案為C選項(xiàng)。
14.D
15.C
16.C本題考查邏輯與(&&)和邏輯或(||)運(yùn)算符的使用。x值在[1,10]之間,C語言中可以寫成x值在[100,11O]之間,C語言表達(dá)式應(yīng)寫成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]滿足任意條件就可以,所以是邏輯或的關(guān)系,因此只要將前兩個(gè)表達(dá)式用邏輯或運(yùn)算符連接起來即可,所以最后的表達(dá)式:(x>=1)&&(x<=10)&&(x<=110)。
17.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點(diǎn),人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點(diǎn)。
18.D
19.D函數(shù)fun是2的次方的運(yùn)算,而s*=fun,所以答案為64。
20.B
\n①以內(nèi)模式為框架所組成的數(shù)據(jù)庫,1物理數(shù)據(jù)庫;②以概念模式為框架所組成的數(shù)據(jù)庫叫概念數(shù)據(jù)庫;③以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。它是真實(shí)存在于計(jì)算機(jī)外存中的數(shù)據(jù)庫。
\n
21.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識點(diǎn):①在c語言中,字符型數(shù)組在存放字符串時(shí)會自動在末尾加上字符串結(jié)束標(biāo)識符'\\0',所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
22.1010解析:表達(dá)式0<x<20,首先計(jì)算0<x,其值為1,再計(jì)算1<20,其值為1,輸出1;表達(dá)式0<x&&x<20,0<x為1,x<20為0,再計(jì)算1&&0,其值為0,輸出0。所以輸出結(jié)果為10。
23.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(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è)。
24.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。
25.n-1jn-1\r\nj解析:此題采用了do…while循環(huán)內(nèi)嵌for循環(huán)的雙層循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)了數(shù)組元素的排序。數(shù)組元素通過首地址和數(shù)組下標(biāo)的方式來引用的。
26.585858585858解析:在程序小,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個(gè)if語句,因?yàn)?,a=58>50,執(zhí)行第一個(gè)if語句后面的輸出語句,輸出58;接著執(zhí)行第二個(gè)if語句,因?yàn)?,a=58>40,執(zhí)行第二個(gè)if語句后面的輸出語句,輸出58;接著執(zhí)行第三個(gè)if語句,因?yàn)?,a=58>30,執(zhí)行第三個(gè)if語句后面的輸出語句,輸出58,所以最后的輸出為585858。
27.2468
28.i<10i%3!=0i<10\r\ni%3!=0解析:本題要求輸出100以內(nèi)能被3整除且個(gè)位數(shù)為6的所有整數(shù),程序中j=i*10+6;語句是求個(gè)位數(shù)為6的整數(shù),由此可得出程序的循環(huán)次數(shù)為i<10。然后通過if語句判斷整數(shù)是否能被3整除,若不能則繼續(xù)下一次循環(huán),若能則輸出該整數(shù),所以邏輯表達(dá)式為j%3!=0。
29.66解析:s=f(&aa[0],3)=aa[0]+aa[1]+aa[2]=1+2+3=6。
30.arjteartest
31.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素。本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。
32.投影專門關(guān)系運(yùn)算包括對單個(gè)關(guān)系進(jìn)行垂直分解(投影操作)或水平分解(選擇操作)和對多個(gè)關(guān)系的結(jié)合(連接操作)等。
33.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯(cuò)誤。
34.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
35.數(shù)據(jù)模型數(shù)據(jù)模型
36.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表達(dá)式1+1/(2*2)+1/(3*3)+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
對應(yīng)的C語言的表達(dá)式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i,i)返回值為其值截尾取整,即恒為0。
37.黑箱黑箱解析:本題考查了軟件測試中的黑箱測試。黑箱測試是根據(jù)程序規(guī)格說明所規(guī)定的功能來設(shè)計(jì)測試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。常用的黑箱測試技術(shù)分為等價(jià)類劃分、邊界分析、錯(cuò)誤猜測以及因果圖等。
38.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了4次。當(dāng)i=1時(shí),由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán)。當(dāng)i=2時(shí),執(zhí)行內(nèi)層循環(huán),輸出一個(gè)#;當(dāng)i=3時(shí),內(nèi)層循環(huán)循環(huán)兩次,輸出兩個(gè)#;當(dāng)i=4時(shí),內(nèi)層循環(huán)循環(huán)三次,輸出三個(gè)#;當(dāng)i=5時(shí),循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個(gè)#。
39.2424解析:本題考核的知識點(diǎn)是數(shù)組的定義和數(shù)組元素的引用。主函數(shù)中首先定義了一個(gè)長度為7的數(shù)組,然后用一個(gè)while循環(huán)引用數(shù)組的元素,當(dāng)i大于7或者p[i]為偶數(shù)時(shí),循環(huán)結(jié)束。顯然當(dāng)i=2時(shí),p12]=14為偶數(shù)時(shí),循環(huán)結(jié)束,此時(shí)j的值為j=p[0]+p[1]=24;
40.*t*t解析:通過while循環(huán)掃描字符串,遇到字符‘\\0’結(jié)束,并用t統(tǒng)計(jì)字符串的長度。
41.C解析:putchar(s)的功能是把字符s輸出到標(biāo)準(zhǔn)輸出設(shè)備;puts(s1)是把s1指向的字符串輸出到標(biāo)準(zhǔn)輸出設(shè)備。
42.B軟件設(shè)計(jì)包括軟件的結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)接口設(shè)計(jì)和過程設(shè)計(jì)。其中軟件結(jié)構(gòu)設(shè)計(jì)主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計(jì)的任務(wù)是為每個(gè)子系統(tǒng)設(shè)計(jì)其與其他子系統(tǒng)間的接口,并編寫成文檔,這個(gè)接口要是一個(gè)無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計(jì)是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
43.C
44.D解析:數(shù)據(jù)庫表中字段轉(zhuǎn)化為屬性,把記錄的類型轉(zhuǎn)化為關(guān)系模式。
45.A
46.B解析:調(diào)用函數(shù)f()時(shí),將數(shù)組a的地址傳遞給了指針q,此時(shí)q指向的就是數(shù)組a的第一個(gè)元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。
47.A解析:從軟件開發(fā)的工程化觀點(diǎn)來看,在使用程序設(shè)計(jì)語言編制程序以前,需要對所采用算法的邏輯關(guān)系進(jìn)行分析,設(shè)計(jì)出全部必要的過程細(xì)節(jié),并給予清晰的表達(dá)。詳細(xì)設(shè)計(jì)的任務(wù)就是要決定各個(gè)模塊的實(shí)現(xiàn)算法,并精確表達(dá)出這些算法。本題正確答案為選項(xiàng)A。
48.C解析:功能性注釋是嵌在源程序體中的,用以描述其后的語句或程序段是在做什么工作,或者執(zhí)行了下面的語句會怎么樣。所以它描述的是一段程序,是為程序段做注釋,而不是每條語句。
49.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。
50.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計(jì)算機(jī)識別、存儲和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C)。
51.C解析:地址變量p指向的存儲空間一定要明確,否則可能影響程序的正確性。
52.C解析:在函數(shù)外面定義的變量a是全局變量,其作用范圍從定義該變量的位置開始到本文件的結(jié)束;在f函數(shù)中的if子句(復(fù)合語句)和else子句中定義的變量a是局部變量,其作用范圍只在其所在的復(fù)合語句內(nèi);在f函數(shù)中定義的第一個(gè)變量a是靜態(tài)局部變量,其作用范圍只限于函數(shù)f內(nèi)部,無論被調(diào)用多少次都只初始化一次,并且保留上次函數(shù)調(diào)用結(jié)束時(shí)的值,該變量不對復(fù)合語句產(chǎn)生作用,所以,f函數(shù)的返回值是這個(gè)a變量和t值相加的結(jié)果。
53.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個(gè)存儲單。
54.C
55.A
56.A解析:本題考核的知識點(diǎn)是三目運(yùn)算符“?:”的運(yùn)用:三目運(yùn)算表達(dá)式的規(guī)則為如果“?”前面的表達(dá)式的值為真,則取“:”前的表達(dá)式的值,否則,取“:”后面表達(dá)式的值。分析題目中給出的表達(dá)式可知,如果a>b和b>c同時(shí)成立,k=1,否則k=0.所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
57.A解析:輸出函數(shù)中的格式控制符要求ch1按帶符號的十進(jìn)制形式輸出,'A'+'5'-'3';=65+5—3=67,所以輸出變量ch值的ASCII碼的十進(jìn)制表示。格式控制符要求變量ch2按字符形式輸出,'A'+'6'-'3'=65+6-3=68,字母D的ASCII碼的十進(jìn)制表示為68,所以輸出D。
58.B解析:在C語言中,數(shù)組的下標(biāo)默認(rèn)為0,因此數(shù)組p的下標(biāo)范圍為:0~7。程序循環(huán)過程為:第1次循環(huán)i=0,執(zhí)行循環(huán),并且i自加,得i=1,因此p[i]為p[1]=12,12%2=0,不執(zhí)行后面的語句:接著進(jìn)行第2次循環(huán),此時(shí)i=1,小于7執(zhí)行循環(huán),并且i自加,得i=2,因此p[i]為p[2]=13,13%2=1,執(zhí)行后面的語句;這樣一直到退出循環(huán)。最后,i的值為.i=13+15+17=45。
59.B
60.C解析:本題考查簡單的if...else語句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語句。
61.C
62.A++a與a++的區(qū)別是前者先自加再運(yùn)算,后者是先運(yùn)算后自加。
63.B本題中定義了一個(gè)結(jié)構(gòu)體數(shù)組dt[2],其中dt[0].x=11,dt[O].y=12,dt[1].x=13,dt[1].y=14。在main函數(shù)中指針P指向了結(jié)構(gòu)體數(shù)組的第一個(gè)元素,因此P一>x值為ll,P_>y值為l2,自加運(yùn)算的結(jié)果分別為12和13。
64.D++(或——)的運(yùn)算結(jié)果是使運(yùn)算對象增1(或減1);運(yùn)算對象可以是整型變量、實(shí)型變量,也可以是字符型變量,但不能是常量或表達(dá)式。++(或——)的結(jié)合方向是”自右向左”。
65.B解析:條件表達(dá)式的形式為:“表達(dá)式1?表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2”的值,此時(shí)“表達(dá)式2”的值就是整個(gè)條件表達(dá)式的值;當(dāng)“表達(dá)式1”的值為零時(shí),求出“表達(dá)式3”的值,此時(shí)“表達(dá)式3”的值就是整個(gè)條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式EXP為非0值時(shí)條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時(shí),執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++:i++;”。
66.C本題主要考查文件的操作。從選項(xiàng)中我們可以知道,本題是對兩個(gè)磁盤文件進(jìn)行相關(guān)操作。
在程序中,首先定義了兩個(gè)文件類的指針變量in和out,然后定義了兩個(gè)字符型數(shù)組分別用來保存兩個(gè)文件的名字,這兩個(gè)文件即是要被操作的文件。接著分別輸入要操作的兩個(gè)文件的名字,并分別判斷文件是否為空文件,如果是,則輸出“文件不能被打開”的提示,并返回。然后用一個(gè)循環(huán)將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中。最后關(guān)閉兩個(gè)被操作的文件。因此本題的答案選C。
67.C
68.D本題主要考查我們對C語言一些基礎(chǔ)知識的掌握情況。下面分別分析本題的四個(gè)選項(xiàng)。
C語言程序在編譯時(shí)的主要任務(wù)就是檢查程序的語法是否符合規(guī)定,因此選項(xiàng)A的描述不正確。
一個(gè)程序一般都是從主函數(shù)開始運(yùn)行,之后主程序調(diào)用的其他程序段叫子程序。由于C語言的程序段都是以函數(shù)形式存在的,所以除了主程序main()函數(shù)以外,其他程序中出現(xiàn)的子程序都是函數(shù),而非過程。因此,選項(xiàng)B的描述不正確。
在C語言中,函數(shù)是不允許被定義在其他函數(shù)里面的,即嵌套定義的。因此,選項(xiàng)C的描述是錯(cuò)誤的。
在C語言中,函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高新技術(shù)產(chǎn)品銷售合同管理規(guī)定2篇
- 二零二五年度游艇購置及保養(yǎng)維修協(xié)議3篇
- 2025版智能節(jié)能鋁合金門窗研發(fā)與推廣合作協(xié)議4篇
- 2025年項(xiàng)目抵押貸款合同范本解讀與實(shí)操6篇
- 2025版醫(yī)療器械融資委托擔(dān)保合同樣本3篇
- 二零二五年度貨車貨運(yùn)保險(xiǎn)與物流行業(yè)信用評估合同
- 2025年度智能機(jī)器人銷售與技術(shù)支持協(xié)議3篇
- 2025版新型綠色建筑材料供應(yīng)及施工合同4篇
- 2025版中英外教專業(yè)能力培訓(xùn)與雇傭合同3篇
- 個(gè)體資金借入合同:固定期限還款合同版
- 圖像識別領(lǐng)域自適應(yīng)技術(shù)-洞察分析
- 個(gè)體戶店鋪?zhàn)赓U合同
- 新概念英語第二冊考評試卷含答案(第49-56課)
- 【奧運(yùn)會獎牌榜預(yù)測建模實(shí)證探析12000字(論文)】
- 保安部工作計(jì)劃
- 2023痛風(fēng)診療規(guī)范(完整版)
- (完整word版)企業(yè)對賬函模板
- 土力學(xué)與地基基礎(chǔ)(課件)
- 主要負(fù)責(zé)人重大隱患帶隊(duì)檢查表
- 魯濱遜漂流記人物形象分析
- 危險(xiǎn)廢物貯存?zhèn)}庫建設(shè)標(biāo)準(zhǔn)
評論
0/150
提交評論