版權(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ì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運(yùn)行時(shí)輸入k并按<Enter>鍵,則輸出結(jié)果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
2.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{charc;
intv0=1,v1=0,v2=0;
do{switch(c=getchar())
{case′a′:case′A′:
case′e′:case′E′:
case′i′:case′I′:
case′o′:case′O′:
case′u′:case′U′:v1+=1;
default:v0+=1;v2+=1;}}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
3.對(duì)n個(gè)關(guān)鍵字的序列進(jìn)行快速排序,平均情況下的空間復(fù)雜度為_______
A.O(1)B.O(logn)C.O(n)D.O(nlogn)
4.
5.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
6.下面結(jié)構(gòu)中最適于表示稀疏無向圖的是()。
A.鄰接矩陣B.逆鄰接表C.鄰接多重表D.十字鏈表
7.若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b+b-c值的類型為()。A.floatB.intC.charD.double
8.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
9.
10.有以下程序
#include<stdio.h>
main()
{ini,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);
}
程序運(yùn)行后的輸出結(jié)果是A.m=6B.m=2C.m=4D.m=5
11.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是______。
A.startB.endC.startendD.endrt
12.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化
D.在棧中,棧中元素不會(huì)隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
13.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。
A.3B.5C.7D.9
14.
15.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
16.
17.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
18.以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是A.若要準(zhǔn)確無誤差的表示自然數(shù),應(yīng)使用整數(shù)類型
B.若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型
C.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
D.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
19.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}
A.5876273-2278
B.5876273.000000-2278
C.5876273-2278
D.因文件為二進(jìn)制文件而不可讀
20.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
二、2.填空題(20題)21.若有下列定義(設(shè)int類型變量占兩個(gè)字節(jié)),則i=【】,j=【】。
inti=8,j=9;floatx=123.456;
print("i=%oj=%o\n",i,j);
22.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。
23.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請(qǐng)?zhí)羁铡?/p>
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
24.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
25.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
26.設(shè)有如下宏定義
#defineMYSWAP(z,x,y){z=x;x=Y;Y=z;}
以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a、b內(nèi)容的交換,請(qǐng)?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】,a,b);
27.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
28.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對(duì)數(shù)據(jù)的操作運(yùn)算。
29.有以下程序
main()
{intn=0,m=l,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后輸出的結(jié)果是______。
30.請(qǐng)選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}
31.若有定義:inta=6,b=8,c=14;接著順序執(zhí)行下列語句后,變量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);
32.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
33.以下程序中函數(shù)fun的功能是:構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請(qǐng)?zhí)羁胀瓿珊瘮?shù)disp。
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{……}
voiddisp(Node*h)
{Node*p;
p=h->next;
while(【】)
{printf("%s\n",P->sub);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);printf("\n");
}
34.以下程序的運(yùn)行結(jié)果是【】。
#include<string.h>
typeaefstructstudent{
charname[10];
longsno;
floatscore;
{STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0)d=b;
if(strcmp(C.name,)>0)d=C;
printf("%1d%s\n",d.sno,p->name);
}
35.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
36.軟件是程序、數(shù)據(jù)和【】的集合。
37.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
38.下列程序的輸出結(jié)果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
39.以下程序輸出矩陣中值為。的元素的行下標(biāo)和列下標(biāo)。行下標(biāo)和列下標(biāo)分別放在同一下標(biāo)的r和c數(shù)組元素中。程序通過調(diào)用隨機(jī)函數(shù)給矩陣賦值。
#defineN5
#include<stdlib.h>
main()
{inta[N][N],i,j,c[N*N],r[N*N],n;
for(i=0,i<N;i++)
for(j=0;j<N;j++)a[i][j]=rand()%5;
n=gindex(【】);
printf("\n\nTheresult:\nn=%d\n",n);
for(i=0;i<n;i++)printf("%4d%4d\n",r[i],c[i]);
}
intgindex(int(*p)[N],int*c,int*r)
{inti,j,k;
【】;
for(i=0;i<N,i++)
for(j=0;j<N;j++)
if(【】==0)
{r[k]=i;c[k]=j;【】;}
return【】;
}
40.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。
三、1.選擇題(20題)41.下列程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}
A.are&youB.youC.areD.&
42.以下程序段的輸出結(jié)果是______。intsbr[]={10,8,6,4,2},*p=str+1;printf("%d\n",*(p+2));
A.6B.4C.10D.不確定的值
43.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。
A.5B.6C.7D.8
44.以下敘述中正確的是()。
A.C語言的源程序不必通過編譯就可以直接運(yùn)行
B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行
D.C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯
45.下列敘述中不正確的是
A.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題
B.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
C.數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿足用戶要求,性能良好的數(shù)據(jù)庫
D.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),但是需要操作系統(tǒng)的支持
46.以下函數(shù)的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}
A.比較兩個(gè)字符串的大小B.字符串的復(fù)制C.計(jì)算字符串的長度D.字符串的連接
47.下列描述中不正確的是()。
A.字符型數(shù)組中可以存放字符串
B.可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出
C.可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出
D.不能在賦值語句中通過賦值運(yùn)算符“=”對(duì)字符型數(shù)組進(jìn)行整體賦值
48.可以在C語言中用做用戶標(biāo)識(shí)符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
49.下列形式的常數(shù)中,不符合c語言語法規(guī)范的是______。
A.0.45B.±123C.25.6e-2D.4e3
50.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
51.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個(gè)DBF文件B.數(shù)據(jù)庫是一個(gè)關(guān)系C.數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
52.下列程序的輸出結(jié)果是______。main(){inti,k,ai[0],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
53.以下程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>mam(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pB);printf("%d\n",strlen(b2));}
A.8B.3C.1D.7
54.以下程序的輸出結(jié)果是voidfun(float*p1,float*p2,float*s){s=(float*)calloc(1,sizeof(float));*s=*p1+*p2++;}main(){floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;fun(a,b,s);printf("%5.2f\n",*s);}
A.11.1B.12C.21.1D.1.1
55.下面程序的運(yùn)行結(jié)果是#include<stdio.h>voiddelch(char*s){inti,j;char*a;a=S;for(i=0,j=0;a[i]!='\0';i++)if(a[i]>='0'&aa[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}main(){char*item="a34bC";delch(item);printf("\
A.abcB.34C.a34D.a34bc
56.以下程序的輸出結(jié)果是______。#include<stdio>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
57.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
58.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
59.設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中O≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
60.下列哪一條不屬于數(shù)據(jù)庫設(shè)計(jì)的任務(wù)?()
A.設(shè)計(jì)數(shù)據(jù)庫應(yīng)用結(jié)構(gòu)B.設(shè)計(jì)數(shù)據(jù)庫概淪結(jié)構(gòu)C.設(shè)計(jì)數(shù)據(jù)庫邏輯結(jié)構(gòu)D.設(shè)計(jì)數(shù)據(jù)庫物理結(jié)構(gòu)
四、選擇題(20題)61.
62.
63.
64.有以下程序
inta=2;
intf(int*a)
{
return(*a)++;
}
main()
{
ints=0;
{
inta=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
執(zhí)行后的輸出結(jié)果是
A.10B.9
C.7D.8
65.
66.
67.以三級(jí)模式為框架形成的3種數(shù)據(jù)庫中,真實(shí)存在于計(jì)算機(jī)外存的數(shù)據(jù)庫是()。
A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫
68.數(shù)據(jù)庫設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是()。
A.內(nèi)模式B.概念模式C.外模式D.設(shè)計(jì)模式
69.以下定義語句中正確的是()。
70.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,1,2,0B.0,0,0,3C.編譯有錯(cuò)D.0,1,2,0
71.
72.
當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;
73.在軟件設(shè)計(jì)中不使用的工具是()。
A.系統(tǒng)結(jié)構(gòu)圖
B.程序流程圖
C.PAD圖
D.數(shù)據(jù)流圖(DFD圖)
74.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
75.
76.
77.有以下程序:main{inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j=0;j<=3;j++)x++;}x++;}printf("x=%d\n",x);}程序執(zhí)行后的輸出結(jié)果是()。A.x=4B.x=8C.x=6D.x=12
78.有以下定義和語句
79.下列選項(xiàng)中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。
A.詳細(xì)設(shè)計(jì)B.運(yùn)行維護(hù)C.可行性研究D.需求分析
80.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7.5B.31.5C.程序有錯(cuò)無輸出結(jié)果D.14.0
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)proc(),它的功能是求m以內(nèi)(不包括m)同時(shí)能被5與11整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。
例如,m為100時(shí),函數(shù)值應(yīng)為s=7.416198。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。
試題程序:
參考答案
1.Dmain函數(shù)定義一個(gè)字符數(shù)組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個(gè)字符k到字符變量c;再將字符串s和字符c傳入fun函數(shù)。函數(shù)fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結(jié)束標(biāo)識(shí)‘\\0’后的一個(gè)字符,如下圖所示。接著通過while循環(huán)逆序遍歷字符串s,首先a-1的字符位‘\\0’,它的ASCII值為0,小于b(字符‘k’)的ASCII值107,那么將‘\\0’賦給下標(biāo)為5的元素位置。接著繼續(xù)向前遍歷,同理,將‘c’(ASCII值為99)賦給下標(biāo)為4的元素位置,將‘f’(ASCII值為102)賦給下標(biāo)為3的元素位置。由于‘m’(ASCII值為109)大于b,因此循環(huán)結(jié)束,將b(字符‘k’)賦給下標(biāo)為2的元素位置,此時(shí)str字符串如下。故本題答案為D選項(xiàng)。
2.D解析:本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:
switch語句的語法格式為:
switch(表達(dá)式)
{
case常量表達(dá)式1:語句組1;
case常量表達(dá)式2:語句組2;
case常量表達(dá)式n:語句組n;
default:語句組n+1;
}
另外,以下幾點(diǎn)關(guān)于switch語句的重點(diǎn):
①系統(tǒng)在執(zhí)行時(shí)計(jì)算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個(gè)case標(biāo)號(hào)表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(hào)(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后執(zhí)行后面相應(yīng)的語句表,順序往下執(zhí)行;④如果無相匹配的標(biāo)號(hào),若存在default標(biāo)號(hào),則執(zhí)行該語句標(biāo)號(hào)后面的語句表n+1;當(dāng)不存在default標(biāo)號(hào)時(shí),不執(zhí)行switch中的任何一個(gè)語句表。
一般而言,在多分支結(jié)構(gòu)中總會(huì)出現(xiàn)'意外'的情況,這時(shí)均可歸入default程序段,作統(tǒng)一的處理。default標(biāo)號(hào)是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形成switch的嵌套。
3.D
4.D
5.C解析:如果沒有指明函數(shù)值類型,則默認(rèn)函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。
6.C
7.D在表達(dá)式a*b+d-c中,double的類型最高,C語言中,由低類型自動(dòng)向高類型轉(zhuǎn)換,所以最后的結(jié)果一定是double型。
8.D本題考查靜態(tài)變量,靜態(tài)變量有儲(chǔ)存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
9.D
10.A
11.B
12.C棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在對(duì)棧操作的整個(gè)過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
13.BB.【解析】快速排序的基本思想是:從表中選取一個(gè)元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結(jié)果把線性表分割成兩部分(兩個(gè)子表),此元素插入到其分界線的位置處。然后分別對(duì)兩個(gè)子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
14.B
15.B選項(xiàng)A為表達(dá)式,因此不正確,選項(xiàng)C中a++本身就是表達(dá)式,無需再賦值,選項(xiàng)D中,在強(qiáng)制類型轉(zhuǎn)換時(shí),類型名應(yīng)用括號(hào)括起來,故選擇8選項(xiàng)。
16.C
17.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個(gè)運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010^00000011=00000001,即1。
18.D解析:C語言中沒有邏輯類型,若只處理"真"或"假"兩種邏輯值,可以使用整型數(shù)"1"或"0"表示,故選D。
19.C解析:fprintf函數(shù)工作時(shí),多個(gè)數(shù)據(jù)間不會(huì)自珈口分隔符,選項(xiàng)A錯(cuò)誤;浮點(diǎn)數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項(xiàng)B也是錯(cuò)誤的。
20.D選項(xiàng)A中“\\\”為轉(zhuǎn)義字符,故選項(xiàng)A錯(cuò)誤,選項(xiàng)B和C顯然不是字符串常量。選項(xiàng)D是一個(gè)字符串常量,稱為空串。
21.1011
22.1616解析:函數(shù)運(yùn)算不改變數(shù)據(jù)類型,所以結(jié)果也是double型,fabs(x)是對(duì)x取絕對(duì)值,pow(y,fabs(x))是y的labs(x)次冪,即2.04。0=16.000000(注意;結(jié)果為double型)。
23.x+8sin(x)x+8,sin(x)解析:考查考生對(duì)函數(shù)調(diào)用相關(guān)知識(shí)的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
24.完整性控制完整性控制
25.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時(shí)循環(huán)6次。
26.cc解析:本題關(guān)鍵在考生是不是了解宏的基本運(yùn)用,在使用宏的時(shí)候明顯少了—個(gè)實(shí)參。在定義宏的時(shí)候變量z是用來做中間變量的,題目中缺的變量就是一個(gè)中間變量c。
27.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對(duì)鏈表的定義。
28.存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作運(yùn)算。
29.-4-4解析:本題考核的知識(shí)點(diǎn)是if...else結(jié)構(gòu)的應(yīng)用。if…else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu),if(條件)S1(if分結(jié)構(gòu))elseS2(else分結(jié)構(gòu)),它的工作過程是:先對(duì)條件表達(dá)式進(jìn)行判斷,若為真(成立,值為非零),就執(zhí)行if分結(jié)構(gòu)(S1);否則(不成立,值為0),就執(zhí)行else分結(jié)構(gòu)(S2)。本題中,n=0,可以判斷(!n)為真,執(zhí)行x=x-1=2-1=1;m=1,可以判斷(m)為真,執(zhí)行x=x-2=1-2=-1;進(jìn)而可以判斷(x)為真,執(zhí)行x=x-3=-l-3=4。所以,最后輸出為叫
30.C
31.77解析:本題考查基本賦值運(yùn)算符和賦值表達(dá)式。c=(b-=a-5))等價(jià)于c=b-(a-5)b=7。c%3=1,a=(c%3)+a=8)=9,但c的值在第二條語句只能夠并沒有被改變,因此c的值還是7。
32.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當(dāng)i=-1時(shí)停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。
33.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關(guān)知識(shí)。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個(gè)節(jié)點(diǎn)的地址賦給p,這樣循環(huán),節(jié)點(diǎn)可以依次向后取值。
34.2002Shanxian2002Shanxian解析:本題中第一個(gè)if語句將結(jié)構(gòu)體變量a.name和結(jié)構(gòu)體變量b.name中較小的那個(gè)賦值給結(jié)構(gòu)體變量d,第二個(gè)if語句將結(jié)構(gòu)體變量c.name和結(jié)構(gòu)體變量d.name較大的那個(gè)賦給結(jié)構(gòu)體變量d。通過函數(shù)strcmp比較。strcmp()函數(shù)有兩個(gè)參數(shù),分別為被比較的兩個(gè)字符串。如果第一個(gè)字符串大于第二個(gè)字符串返回值大于0,若第一個(gè)小于第二個(gè)返回值小于0,相等時(shí)返回值為0。字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開始依次向右比較,遇到某一個(gè)字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個(gè)字符小,該字符所在的字符串就是較小的字符串。本程序中第一個(gè)if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個(gè)if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。
35.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。
36.文檔文檔解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)以及相關(guān)文檔的完整集合。
37.存儲(chǔ)結(jié)構(gòu)
38.66解析:條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,因此本題先計(jì)算關(guān)系表達(dá)式(*ptr+y)<x)?*(ptr+y):x的值,再賦給變量z。當(dāng)y=0時(shí),*(ptr+y)=2,而x=8,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=2,所以z=2;當(dāng)y-1時(shí),*(ptr+y)=4,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=4,所以z=4;當(dāng)y=2時(shí),*(ptr+y)=6,(*(ptr+y)<x)條件為真,則整個(gè)條件表達(dá)式的值為*(ptr+y)=6,所以z=6;循環(huán)結(jié)束。因此輸出z的結(jié)果為6。
39.acrk=0p[i][j]k++k
40.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點(diǎn)有以下幾個(gè)方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨(dú)立性,數(shù)據(jù)統(tǒng)一管理與控制。
41.A解析:strcpy(a,'are')中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把a(bǔ)re復(fù)制到a中,a[0][3]=\'&\',且strcpy(a[1],'you')把you復(fù)制到a[1]中,故輸出a為“are&you”。
42.B解析:指針變量操作。
43.B解析:該題目測試考生對(duì)宏替換的理解。這是一種簡單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對(duì)2*M+1進(jìn)行宏替換時(shí),要將宏名M原封不動(dòng)地代進(jìn)去,得到NUM的形式為2*N+1+1(千萬不要隨意給N+1加上小括號(hào),使NUM變?yōu)?。(N+1)+1,這就是宏名和變量名之間的區(qū)別),在將N代進(jìn)去,得到NUM的值為6。
44.B解析:本題考核的知識(shí)點(diǎn)是C程序從編寫到生成可執(zhí)行文件的步驟。C語言采用編譯方式將源程序轉(zhuǎn)換為二進(jìn)制的目標(biāo)代碼,編寫好一個(gè)C程序到完成運(yùn)行一般經(jīng)過以下幾個(gè)步驟:編輯;編譯,就是將已經(jīng)編輯好的源程序翻譯成二進(jìn)制的目標(biāo)代碼,經(jīng)編譯后的得到的二進(jìn)制代碼還不能直接執(zhí)行,因?yàn)槊恳粋€(gè)模塊往往是單獨(dú)編譯的,必須把經(jīng)過編譯的各個(gè)模塊的目標(biāo)代碼與系統(tǒng)提供的標(biāo)準(zhǔn)模塊連接后才能運(yùn)行;連接,將各模塊的二進(jìn)制目標(biāo)代碼與系統(tǒng)標(biāo)準(zhǔn)模塊經(jīng)連接處理后,得到具有絕對(duì)地址的可執(zhí)行文件,它是計(jì)算機(jī)能直接執(zhí)行的文件;執(zhí)行,執(zhí)行一個(gè)經(jīng)過編譯和連接的可執(zhí)行的目標(biāo)文件。由以上定義可知,選項(xiàng)A、C、D均不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
45.B解析:B選項(xiàng)錯(cuò)誤,原因是,數(shù)據(jù)庫應(yīng)該具有物理獨(dú)立性和邏輯獨(dú)立性,改變其一而不影響另一個(gè)。
46.C
47.C解析:本題考查對(duì)數(shù)組的理解。C語言規(guī)定只能逐個(gè)引用數(shù)組元素,而不能一次引用整個(gè)數(shù)組。對(duì)于字符數(shù)組,可以將整個(gè)字符串一次輸入或輸出。所以,選項(xiàng)C)不正確。
48.B解析:C語言規(guī)定,標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。另外還需要注意的是關(guān)鍵字不能作標(biāo)識(shí)符。選項(xiàng)A中void,C中for都為關(guān)鍵字,D中2c以字母開頭。
49.B解析:C程序允許出現(xiàn)的常數(shù)為有一確定值的整數(shù)或?qū)崝?shù)(可用小數(shù)形式或指數(shù)形式)等。土123不是確定值,是不可以出現(xiàn)的。
50.D\r\n軟件是與計(jì)算機(jī)操作相關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計(jì)算機(jī)系統(tǒng)的限制;軟件是一個(gè)邏輯實(shí)體,不是物理實(shí)體,軟件具有抽象性。因此選項(xiàng)D正確。
51.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點(diǎn)。
52.B
53.D解析:首先定義了兩個(gè)字符數(shù)組b1和b2,并用一個(gè)字符串給b1賦初值,然后定義了一個(gè)字符型指針變量pb,通過賦初值使它指向b1[3]。接著執(zhí)行while循環(huán),該循環(huán)執(zhí)行了3次:第一次判斷條件“--pb>=b1”,使pb的值為“b1+2”,執(zhí)行“strepy(b2,pB);”后,b2中的內(nèi)容為“cdefg”:第二次判斷條件“--pb>=b1”,使pb的值為“b1+1”,執(zhí)行“strcpy(b2,pB);”后b2的內(nèi)容為“bedefg”第三次判斷條件“--pb>=b1”使pb的值為“b1”,執(zhí)行“strcpy(b2,pB):”后b2的內(nèi)容為“abcdefg”。最后輸出b2數(shù)組中存放的字符串長度,顯然是7。(這里還有一個(gè)關(guān)鍵點(diǎn):就是每當(dāng)執(zhí)行—次while循環(huán)判斷條件,就執(zhí)行一次“--pb”,他使得指針pb自減1,即前移一位)所以,4個(gè)選項(xiàng)中D為所選。
54.D解析:本題主要考查了一維數(shù)組名用作函數(shù)實(shí)參進(jìn)行的運(yùn)算,數(shù)組名作實(shí)參相當(dāng)于傳遞的是地址,這樣在函數(shù)中對(duì)形參進(jìn)行的操作可以影響到實(shí)參。
55.B
56.C解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。
57.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
58.D解析:本題考查兩個(gè)知識(shí)點(diǎn):①C語言用'\\n'這個(gè)字符常量表示換行;②函數(shù)getchar()的作用是從終端輸入一個(gè)字符,當(dāng)遇到換行時(shí)結(jié)束輸入。
59.D解析:觀察程序可知,a實(shí)際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個(gè)元素的值,進(jìn)而,我們可以知道*(*(a+i))必然不是對(duì)a數(shù)組元素的正確引用。
60.A解析:數(shù)據(jù)庫設(shè)計(jì)工作量大而且過程復(fù)雜,既是一項(xiàng)數(shù)據(jù)庫工程也是一項(xiàng)龐大的軟件工程??紤]數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)階段:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫實(shí)施和數(shù)據(jù)庫的運(yùn)行和維護(hù)。
61.C\r\n
62.C
63.B
64.C在一個(gè)函數(shù)的內(nèi)部定義的變量是內(nèi)部變量,它只在本函數(shù)范圍內(nèi)有效,也就是說,只有在本函數(shù)內(nèi)才能使用它們,在此函數(shù)以外是不能使用這些變量的。本題中的inta=5;只在{inta=5;s+=f(&a);}內(nèi)有效。
在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量。全局變量可以為本文件中其他函數(shù)所共用,它的有效范圍為:從定義變量的位置開始到本源文件結(jié)束。本題的開頭inta=2;即為全局變量,實(shí)際上起作用的也就是這個(gè)。故本題答案為C。
65.C
66.C
67.B
\n①以內(nèi)模式為框架所組成的數(shù)據(jù)庫,1物理數(shù)據(jù)庫;②以概念模式為框架所組成的數(shù)據(jù)庫叫概念數(shù)據(jù)庫;③以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。它是真實(shí)存在于計(jì)算機(jī)外存中的數(shù)據(jù)庫。
\n
68.C數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個(gè)用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲(chǔ)結(jié)構(gòu)與物理存取方法。
69.A定義變量時(shí)不能連等,所以B)錯(cuò)誤,c)選項(xiàng)中,b是指針,c定義為指向指針的指針才可以接受&b,所以c)錯(cuò)誤,D)選項(xiàng),b=1.1前沒有類型名,所以錯(cuò)誤。
70.C本題中ff(a=1)b=1;與elsed=3;之間多了語句c=2;所以會(huì)出現(xiàn)else語句的位置錯(cuò)誤的編譯失敗提示。
71.B
72.C
\n選項(xiàng)A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項(xiàng)中由于c的值不為0,在將c的值賦給變量a后,表達(dá)式a=c的值為1,不再對(duì)表達(dá)式b=c計(jì)算;對(duì)于c選項(xiàng),表達(dá)式a=c的值為1,再求表達(dá)式b=c的值為1,然后進(jìn)行邏輯與運(yùn)算;D選項(xiàng)將b的值賦給c后再賦給e,故選擇C選項(xiàng)。
\n
73.D【答案】:D
【知識(shí)點(diǎn)】:軟件設(shè)計(jì)中使用的工具
【解析】:數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細(xì)設(shè)計(jì)階段用到的。系統(tǒng)結(jié)構(gòu)圖是對(duì)軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)的圖形顯示,是在概要設(shè)計(jì)階段用到的。程序流程圖是對(duì)程序流程的圖形表示,故選D。
74.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。
75.B
76.D
77.B當(dāng)i=0時(shí),i<2成立,執(zhí)行第一個(gè)for循環(huán)x自加為1,接著執(zhí)行第二個(gè)for循環(huán);j=0時(shí)j<=3成立,此時(shí)if不成立,執(zhí)行x++后,x為2;接著j=1時(shí),i<=3成立,繼續(xù)循環(huán),此時(shí)if成立,continue是跳出本次循環(huán),繼續(xù)下一次循環(huán),不再執(zhí)行x++了;接著j=2時(shí),j<=3成立,此時(shí)if不成立,執(zhí)行其后的語句;當(dāng)j=4時(shí),退出第二個(gè)循環(huán),接著執(zhí)行循環(huán)外部的x++,x為4;當(dāng)i=1時(shí),i<2成立,執(zhí)行第一個(gè)循環(huán),x=5,此時(shí)接著執(zhí)行循環(huán)外部的語句,即第二個(gè)循環(huán);j=0時(shí)j<3成立,此時(shí)if不成立,x++后,x為6,接著j為1時(shí),j<=3成立,繼續(xù)循環(huán),此時(shí)if成立,不再執(zhí)行x++了;接著J=2時(shí),j<=3成立,此時(shí)if不成立,執(zhí)行其后的x++,x為7;i=3時(shí),j<=3成立,此時(shí)if成立,不再執(zhí)行其后的語句了;當(dāng)j=4時(shí),退出第二個(gè)循環(huán),執(zhí)行循環(huán)外部的語句,最終x為8,故選B選項(xiàng)。
78.A嵌套的結(jié)構(gòu)體定義,要訪問內(nèi)層的成員,需要一層層用“.”訪問,所以答案選擇A)。
79.A\n軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。定義階段包括問題定義、可行性研究和需求分析,開發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測試,運(yùn)行維護(hù)即軟件的運(yùn)行和維護(hù)。
\n
80.C宏定義不是C語句,末尾不需要有分號(hào)。所以語句printf(”%4.1f\n”,S(8+b));展開后為parintf(”%4.1f\n”,3.5;*a+b}a+b;);所以程序會(huì)出現(xiàn)語法錯(cuò)誤。
81.(1)錯(cuò)誤:t=0;
正確:*t=0;
(2)錯(cuò)誤:if(d%2==0)
正確:if(d%2!=O)或if(d%2==1)
【解析】變量t定義為指針型變量,所以不能對(duì)t賦初值,不應(yīng)該是t=0,而是*t=0;題目要求將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,因此if語句里應(yīng)該是d%2!=0。此題較簡單,考查的是指針變量作為函數(shù)參數(shù)和奇偶的判斷。
82.
【解析】按照題目中要求求m以內(nèi)(不包括m)同時(shí)能被5與11整除的所有自然數(shù)之和的平方根s,需要判斷m以內(nèi)的所有整數(shù)是否能同時(shí)被5與11整除,首先求出同時(shí)能被5與
11整除的所有自然數(shù)之和,然后再求和的平方根,最后返回到主函數(shù)當(dāng)中。
2021年黑龍江省黑河市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運(yùn)行時(shí)輸入k并按<Enter>鍵,則輸出結(jié)果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
2.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{charc;
intv0=1,v1=0,v2=0;
do{switch(c=getchar())
{case′a′:case′A′:
case′e′:case′E′:
case′i′:case′I′:
case′o′:case′O′:
case′u′:case′U′:v1+=1;
default:v0+=1;v2+=1;}}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
3.對(duì)n個(gè)關(guān)鍵字的序列進(jìn)行快速排序,平均情況下的空間復(fù)雜度為_______
A.O(1)B.O(logn)C.O(n)D.O(nlogn)
4.
5.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
6.下面結(jié)構(gòu)中最適于表示稀疏無向圖的是()。
A.鄰接矩陣B.逆鄰接表C.鄰接多重表D.十字鏈表
7.若有以下定義:chara;intb;floatc;doubled;則表達(dá)式a*b+b-c值的類型為()。A.floatB.intC.charD.double
8.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
9.
10.有以下程序
#include<stdio.h>
main()
{ini,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);
}
程序運(yùn)行后的輸出結(jié)果是A.m=6B.m=2C.m=4D.m=5
11.有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是______。
A.startB.endC.startendD.endrt
12.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化
D.在棧中,棧中元素不會(huì)隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化
13.待排序的關(guān)鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關(guān)鍵碼值遞增的順序排序,采取以第一個(gè)關(guān)鍵碼為基準(zhǔn)元素的快速排序法,第一趟排序后關(guān)鍵碼33被放到第()個(gè)位置。
A.3B.5C.7D.9
14.
15.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
16.
17.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
18.以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是A.若要準(zhǔn)確無誤差的表示自然數(shù),應(yīng)使用整數(shù)類型
B.若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型
C.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
D.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
19.下述程序向文件輸出的結(jié)果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TESY","wb");fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278);fclose(fp);}
A.5876273-2278
B.5876273.000000-2278
C.5876273-2278
D.因文件為二進(jìn)制文件而不可讀
20.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
二、2.填空題(20題)21.若有下列定義(設(shè)int類型變量占兩個(gè)字節(jié)),則i=【】,j=【】。
inti=8,j=9;floatx=123.456;
print("i=%oj=%o\n",i,j);
22.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達(dá)式pow(y,fabs(x))的值為______。
23.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請(qǐng)?zhí)羁铡?/p>
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
24.數(shù)據(jù)庫保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
25.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
26.設(shè)有如下宏定義
#defineMYSWAP(z,x,y){z=x;x=Y;Y=z;}
以下程序段通過宏調(diào)用實(shí)現(xiàn)變量a、b內(nèi)容的交換,請(qǐng)?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】,a,b);
27.有如下圖所示的雙鏈表結(jié)構(gòu),請(qǐng)根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
28.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對(duì)數(shù)據(jù)的操作運(yùn)算。
29.有以下程序
main()
{intn=0,m=l,x=2;
if(!n)x-=1;
if(m)x-=2;
if(x)x-=3;
printf("%d\n",x);
}
執(zhí)行后輸出的結(jié)果是______。
30.請(qǐng)選出以下程序的輸出結(jié)果#include<stdio.h>main(){inta[]={1,2,3,4},i;intx=0;for(i=0;i<4;i++){sub(a,x);Printf("%d",x);}printf("\n");}sub(S,y)int*s,y;{staticintt=3;y=s[t];t--;}
31.若有定義:inta=6,b=8,c=14;接著順序執(zhí)行下列語句后,變量c中的值是()。c=(b-=(a-5));a=(c%3)+(a=8);
32.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
33.以下程序中函數(shù)fun的功能是:構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請(qǐng)?zhí)羁胀瓿珊瘮?shù)disp。
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{……}
voiddisp(Node*h)
{Node*p;
p=h->next;
while(【】)
{printf("%s\n",P->sub);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);printf("\n");
}
34.以下程序的運(yùn)行結(jié)果是【】。
#include<string.h>
typeaefstructstudent{
charname[10];
longsno;
floatscore;
{STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0)d=b;
if(strcmp(C.name,)>0)d=C;
printf("%1d%s\n",d.sno,p->name);
}
35.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
36.軟件是程序、數(shù)據(jù)和【】的集合。
37.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
38.下列程序的輸出結(jié)果是【】。
main()
{
inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)
z=(*(ptr+y)<x)?*(ptr+y):x;
printf("%d\n",z);
}
39.以下程序輸出矩陣中值為。的元素的行下標(biāo)和列下標(biāo)。行下標(biāo)和列下標(biāo)分別放在同一下標(biāo)的r和c數(shù)組元素中。程序通過調(diào)用隨機(jī)函數(shù)給矩陣賦值。
#defineN5
#include<stdlib.h>
main()
{inta[N][N],i,j,c[N*N],r[N*N],n;
for(i=0,i<N;i++)
for(j=0;j<N;j++)a[i][j]=rand()%5;
n=gindex(【】);
printf("\n\nTheresult:\nn=%d\n",n);
for(i=0;i<n;i++)printf("%4d%4d\n",r[i],c[i]);
}
intgindex(int(*p)[N],int*c,int*r)
{inti,j,k;
【】;
for(i=0;i<N,i++)
for(j=0;j<N;j++)
if(【】==0)
{r[k]=i;c[k]=j;【】;}
return【】;
}
40.數(shù)據(jù)庫技術(shù)的主要特點(diǎn)為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理與控制。
三、1.選擇題(20題)41.下列程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}
A.are&youB.youC.areD.&
42.以下程序段的輸出結(jié)果是______。intsbr[]={10,8,6,4,2},*p=str+1;printf("%d\n",*(p+2));
A.6B.4C.10D.不確定的值
43.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。
A.5B.6C.7D.8
44.以下敘述中正確的是()。
A.C語言的源程序不必通過編譯就可以直接運(yùn)行
B.C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令
C.C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行
D.C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯
45.下列敘述中不正確的是
A.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問題
B.數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
C.數(shù)據(jù)庫設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿足用戶要求,性能良好的數(shù)據(jù)庫
D.數(shù)據(jù)庫系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),但是需要操作系統(tǒng)的支持
46.以下函數(shù)的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}
A.比較兩個(gè)字符串的大小B.字符串的復(fù)制C.計(jì)算字符串的長度D.字符串的連接
47.下列描述中不正確的是()。
A.字符型數(shù)組中可以存放字符串
B.可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出
C.可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出
D.不能在賦值語句中通過賦值運(yùn)算符“=”對(duì)字符型數(shù)組進(jìn)行整體賦值
48.可以在C語言中用做用戶標(biāo)識(shí)符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
49.下列形式的常數(shù)中,不符合c語言語法規(guī)范的是______。
A.0.45B.±123C.25.6e-2D.4e3
50.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
51.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個(gè)DBF文件B.數(shù)據(jù)庫是一個(gè)關(guān)系C.數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
52.下列程序的輸出結(jié)果是______。main(){inti,k,ai[0],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+l)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
53.以下程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>mam(){charb1[8]="abcdefg",b2[8],*pb=b1+3;while(--pb>=b1)strcpy(b2,pB);printf("%d\n",strlen(b2));}
A.8B.3C.1D.7
54.以下程序的輸出結(jié)果是voidfun(float*p1,float*p2,float*s){s=(float*)calloc(1,sizeof(float));*s=*p1+*p2++;}main(){floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;fun(a,b,s);printf("%5.2f\n",*s);}
A.11.1B.12C.21.1D.1.1
55.下面程序的運(yùn)行結(jié)果是#include<stdio.h>voiddelch(char*s){inti,j;char*a;a=S;for(i=0,j=0;a[i]!='\0';i++)if(a[i]>='0'&aa[i]<='9'){s[j]=a[i];j++;}s[j]='\0';}main(){char*item="a34bC";delch(item);printf("\
A.abcB.34C.a34D.a34bc
56.以下程序的輸出結(jié)果是______。#include<stdio>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
57.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
58.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
59.設(shè)有以下語句,其中不是對(duì)a數(shù)組元素的正確引用的是:______(其中O≤i<10)inta[10]={0,1,2,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
60.下列哪一條不屬于數(shù)據(jù)庫設(shè)計(jì)的任務(wù)?()
A.設(shè)計(jì)數(shù)據(jù)庫應(yīng)用結(jié)構(gòu)B.設(shè)計(jì)數(shù)據(jù)庫概淪結(jié)構(gòu)C.設(shè)計(jì)數(shù)據(jù)庫邏輯結(jié)構(gòu)D.設(shè)計(jì)數(shù)據(jù)庫物理結(jié)構(gòu)
四、選擇題(20題)61.
62.
63.
64.有以下程序
inta=2;
intf(int*a)
{
return(*a)++;
}
main()
{
ints=0;
{
inta=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
執(zhí)行后的輸出結(jié)果是
A.10B.9
C.7D.8
65.
66.
67.以三級(jí)模式為框架形成的3種數(shù)據(jù)庫中,真實(shí)存在于計(jì)算機(jī)外存的數(shù)據(jù)庫是()。
A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫
68.數(shù)據(jù)庫設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是()。
A.內(nèi)模式B.概念模式C.外模式D.設(shè)計(jì)模式
69.以下定義語句中正確的是()。
70.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,1,2,0B.0,0,0,3C.編譯有錯(cuò)D.0,1,2,0
71.
72.
當(dāng)c的值不為0時(shí),在下列選項(xiàng)中不能正確將c的值賦給變量a、b的是()。
A.c=b=a;B.(a=c)C.D.(b=c);E.(a=c)&&(b=c);F.a=c=b;
73.在軟件設(shè)計(jì)中不使用的工具是()。
A.系統(tǒng)結(jié)構(gòu)圖
B.程序流程圖
C.PAD圖
D.數(shù)據(jù)流圖(DFD圖)
74.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
75.
76.
77.有以下程序:main{inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j=0;j<=3;j++)x++;}x++;}printf("x=%d\n",x);}程序執(zhí)行后的輸出結(jié)果是()。A.x=4B.x=8C.x=6D.x=12
78.有以下定義和語句
79.下列選項(xiàng)中屬于軟件生命周期中開發(fā)階段任務(wù)的是()。
A.詳細(xì)設(shè)計(jì)B.運(yùn)行維護(hù)C.可行性研究D.需求分析
80.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7.5B.31.5C.程序有錯(cuò)無輸出結(jié)果D.14.0
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當(dāng)s中的數(shù)為87653142時(shí),t中的數(shù)為7531。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 玻璃配料熔化工安全生產(chǎn)能力競賽考核試卷含答案
- 道路客運(yùn)服務(wù)員變更管理測試考核試卷含答案
- 氯丁橡膠裝置操作工操作知識(shí)能力考核試卷含答案
- 2025年硫酸黏菌素類產(chǎn)品項(xiàng)目發(fā)展計(jì)劃
- 2025年燃?xì)獗眄?xiàng)目合作計(jì)劃書
- 2025年環(huán)境污染防治專用設(shè)備合作協(xié)議書
- 2025年吡嗪酮項(xiàng)目合作計(jì)劃書
- 2025年工商用制冷、空調(diào)設(shè)備項(xiàng)目合作計(jì)劃書
- 2025年汽車液力變矩器合作協(xié)議書
- 2025年雙氰胺合作協(xié)議書
- 消防安全隱患排查清單
- 新能源汽車火災(zāi)撲救課件
- 《醫(yī)學(xué)影像診斷報(bào)告書寫指南》(2025版)
- 紅酒倒酒知識(shí)培訓(xùn)總結(jié)報(bào)告課件
- 電大??啤豆残姓W(xué)》簡答論述題題庫及答案
- 2025成人高考全國統(tǒng)一考試專升本英語試題及答案
- 代辦煙花爆竹經(jīng)營許可證協(xié)議合同
- 國企員工總額管理辦法
- 企業(yè)級(jí)AI大模型平臺(tái)落地框架
- TD/T 1036-2013土地復(fù)墾質(zhì)量控制標(biāo)準(zhǔn)
- 蘇教版六年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)知識(shí)點(diǎn)歸納(全梳理)
評(píng)論
0/150
提交評(píng)論