




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年四川省雅安市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.能正確表示x>=3或者x<1的關(guān)系表達(dá)式是()。
A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1
2.在存儲數(shù)據(jù)時,通常不僅要存儲各數(shù)據(jù)元素的值,而且還要存儲()。
A.數(shù)據(jù)的處理方法B.數(shù)據(jù)元素的類型C.數(shù)據(jù)元素之間的關(guān)系D.數(shù)據(jù)的存儲方法
3.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運(yùn)行后,若從鍵盤輸入(從第1列開始)
123<回車>
45678<回車>
則輸出結(jié)果是
A.1267B.1256C.1278D.1245
4.在C語言中,函數(shù)返回值的類型最終取決于()。
A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B.return語句中表達(dá)式值的類型
C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實(shí)參類型
D.函數(shù)定義時形參的類型
5.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法
A.快速排序B.堆排序C.插入排序D.二路歸并排序
6.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個FBI項目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請在下面幾個數(shù)據(jù)結(jié)構(gòu)中選擇一個使檢索速度最快的()
A.二叉搜索樹,比較函數(shù)開銷:1次運(yùn)算/每字符
B.哈希表,hash算法開銷:10次運(yùn)算/每字符
C.鏈表,比較函數(shù)開銷:1次運(yùn)算/每字符
D.TRIE樹,尋找子節(jié)點(diǎn)開銷:1次運(yùn)算/每字符
7.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運(yùn)算符。
A.&.B.^C.||D.~
8.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
9.下列能正確進(jìn)行字符串賦值的是()。A.B.C.D.
10.
11.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長度為n的字符串存入字符數(shù)s由
B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中
C.從文件file中讀到n個字符串存入字符數(shù)組s中
D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中
12.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上3種說法都不對
13.下列一維數(shù)組初始化語句中,正確且與語句floata[]={0,3,8,0,9};等價的是().
A.floata[6]={0,3,8,0,9};
B.floata[4]={0,3,8,0,9};
C.floata[7]={0,3,8,0,9};
D.floata[5]={0,3,8,0,9};
14.有以下程序: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);}程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
15.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
16.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
17.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運(yùn)行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
18.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
19.在以下的敘述中,正確的是()。
A.線性表的順序存儲結(jié)構(gòu)優(yōu)于鏈表存儲結(jié)構(gòu)
B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表
C.棧的操作方式是先進(jìn)先出
D.隊列的操作方式是先進(jìn)后出
20.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10
二、2.填空題(20題)21.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
22.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
23.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
24.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
25.下列程序的輸出結(jié)果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
26.下列程序輸出的結(jié)果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
27.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
28.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?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-%dkn",sum,count);
}
29.若a的值為1,則表達(dá)式!a‖++a的值是______。
30.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對其中的圖形元素進(jìn)行確切解釋。
31.以下函數(shù)用來求出2個整數(shù)之和,并通過形參將結(jié)果傳回。
voidfunc(intx,inty,【】z)
{*z=x+y;}
32.下列程序的運(yùn)行結(jié)果為【】。
main()
{inti,j,row=0,colum=0,max,
a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max<a[i][j])
{max=a[i][j];
row=i;
colum=j;
}
printf("max=%-5drow=%-3dcolum=%-3d\n",max,row,colum);
}
33.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請?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<stdio.h>
main()
{charm;
m='B'+32;
printf("%c\n",m);
}
35.下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
36.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
37.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
seanf("%1f%1f",&x,&y);
pfintf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
38.診斷和改正程序中錯誤的工作通常稱為【】。
39.下述函數(shù)統(tǒng)計—個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
40.若有以下程序
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出結(jié)果是【】。
三、1.選擇題(20題)41.軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D.高內(nèi)聚高耦合
42.設(shè)有:inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值是
A.1B.2C.3D.4
43.在數(shù)據(jù)庫技術(shù)中,面向?qū)ο髷?shù)據(jù)模型是一種______。
A.概念模型B.結(jié)構(gòu)模型C.物理模型D.形象棋型
44.若有定義:inta[4][10];,則以下選項中對數(shù)組元素a[i][j]引用錯誤的是______。(o<=i<4,0<=j<=10
A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)
45.有以下程序: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);print("%d,%d,%d\n",*P,*q,*r);}執(zhí)行后的輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
46.有以下定義:#include<stdio.h>chara[l0],*b=a;不能給a數(shù)組輸入字符串的語句是______。
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(b);
47.設(shè)有如下定義intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()
A.3B.0C.4D.1
48.下列選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
49.以下程序的功能是:建立一個帶有頭結(jié)點(diǎn)的單向鏈表,并將存儲在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個結(jié)點(diǎn)中,請從與下劃線處號碼對應(yīng)的一組選項中選擇出正確的選項。
#include<stdlib.h>
structnode
{chardata;structnode*next;};
(48)CreatList(char*s)
{structnode*h,*p,*q;
h=(structnode*)malloc(sizeof(Structnode));
p=q=h;
while(*s!=‘\0’)
{p=(structnode*)malloc(sizeof(structnode));
p->data=(49);
q->next=p;
q=(50);
s++;
}
p->next=0;
returnh;
}
main()
{charstr[]="linklist";
structnode*head;
head=CreatList(str);
}
A.char*B.stmctnodeC.strumnode*D.char
50.有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的運(yùn)行結(jié)果是
A.12300B.123C.1D.321
51.設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系“10<a<15”的C語言表達(dá)式是______。
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)
52.按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
53.有以下程序:#include<stdio.h>main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結(jié)果是()。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
54.下面各選項中,均是C語言合法標(biāo)識符的選項組是
A.33weautoB._23me_3ewC._433e_elseD.ER-DF32
55.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
56.設(shè)有下列語句inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,C的值為()。
A.6B.7C.8D.9
57.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4]
C.#defineN5floata[N][3]
D.inta[2][9.5];
58.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。
A.2,1B.2,2C.2,5D.5,2
59.以下敘述中錯誤的是
A.gets函數(shù)用于從終端讀入字符串
B.getehar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進(jìn)制形式輸出數(shù)據(jù)到文件
60.設(shè)在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占()個字節(jié)。
A.1B.2C.8D.4
四、選擇題(20題)61.有以下程序:
#include<stdio.h>
main()
{unsignedchara=8,C;
C=a>>3:
printf("%d\n",c);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.32B.16C.1D.0
62.有以下程序:
point(char*p){*p=’d’;}
main()
{charb[4]={’a’,’b’,’c’,’d’},*p=b;
Point(p);printf("%c\n",*p);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.a(chǎn)B.bC.cD.d
63.有以下程序
.程序運(yùn)行后的輸出結(jié)果是()。
A.6B.9C.11D.7
64.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0B.1C.2D.3
65.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.除D.并
66.軟件設(shè)計包括軟件的結(jié)構(gòu)、數(shù)據(jù)接口和過程設(shè)計,其中軟件的過程設(shè)計是指()
A.模塊間的關(guān)系B.系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述C.軟件層次結(jié)構(gòu)D.軟件開發(fā)過程
67.
68.有以下程序:
voidmain()
{intk=0,n=0;
while(k<5)
{switch(k)
{default:break;
case1:n+=k;
case2:
case3:n+=k;
}
k++;
}
printf("%d\n",n);
}
程序運(yùn)行后的輸出結(jié)果是()。
A)0B)4
C)6D)7
69.設(shè)有以下函數(shù):
voidfun(intn,char*s){…}
則下面對函數(shù)指針的定義和賦值均正確的是()。
A.void(*pf)();pf=fun;
B.void*pf();pf=fun
C.void*pf();*pf=fun;
D.void(*pf)(int,char);pf=&fun;
70.以下敘述中錯誤的是()。
A.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進(jìn)行的
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.#defineMAX是合法的宏定義命令行
D.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
71.用數(shù)據(jù)流圖(DFD.作為描述工具的軟件開發(fā)階段是()。
A.可行性分析B.需求分析C.概要設(shè)計D.詳細(xì)設(shè)計
72.有以下程序(函數(shù)fun只對下標(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,
73.
74.有以下程序
#include<stdio.h>
main()
{inti=5;
do
{if(i%3==1)
if(i%5==2)
{printf("*%d",i);break;}
i++;
}while(i!=0);
printf("\n");
}
程序的運(yùn)行結(jié)果是
A.*7B.*3*5
C.*5D.*2*6
75.
76.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。A.A.s1的內(nèi)容更新為abcdefghiB.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新勾defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
77.
78.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.2,1,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,1
79.有以下程序:
程序運(yùn)行時,輸入的值在哪個范圍才會有輸出結(jié)果()。
A.小于3的整數(shù)B.不等于10的整數(shù)C.大于3或等于10的整數(shù)D.大于3且不等10的整數(shù)
80.在一個C源程序文件中所定義的全局變量。其作用域為()。A.由具體定義位置和extern說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的作用是:將字符串tt中的大寫字母都改為對應(yīng)的小寫字母,其他字符不變。
例如,若輸入“I,anl,A,Student”,則輸出“i,am,a,student”。
請修改程序中的錯誤。使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是刪除一維數(shù)組中所有相同的元素,使之只剩一個。數(shù)組中的元素已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中元素的個數(shù)。例如,若一維數(shù)組中的元素是2223445666677899101010刪除后,數(shù)組中的元素應(yīng)該是2345678910注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80intfun(inta[],intn){}voidmain(){ inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf(“Theoriginaldata:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(n%3d”,a[i]); n=fun(a,n); printf(“\n\nThedataafterdeleted:\n”); for(i=0;i<n;i++)<p=""></n;i++)<> printf(“%3d”,a[i]); printf(“\n\n”);}
參考答案
1.C
2.C
3.D解析:putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。
4.A解析:在C語言中,應(yīng)當(dāng)在定義函數(shù)時指定函數(shù)值的類型。凡不加類型說明的函數(shù),默認(rèn)按整型處理。在定義函數(shù)時對函數(shù)值說明的類型一般應(yīng)該和return語句中的表達(dá)式類型一致。如果函數(shù)值的類型和return語句中的表達(dá)式類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)自動進(jìn)行轉(zhuǎn)換,即函數(shù)類型決定返回值的類型。
5.B
6.D
7.B按邏輯位運(yùn)算特點(diǎn):①用按位與運(yùn)算將特定位清為0或保留特定位;②用按位或運(yùn)算將特定的位置為1;③用按位異或運(yùn)算將某個變量的特定位翻轉(zhuǎn)或交換兩個變量的值。
8.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當(dāng)于乘以2的n次冪,右移n位相當(dāng)于除以2的n次冪。
9.C選項A、B的空間不夠;選項D中字符串存儲要有結(jié)束符ˊ\0ˊ,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
10.D
11.B本題考查fgets函數(shù)的使用調(diào)用形式:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“S”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組S中,讀入字符串后會自動在字符串末尾加入"\0"結(jié)束符,表示字符串結(jié)束。
12.B解析:數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關(guān)軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應(yīng)用軟件開發(fā)工具等,選項A的說法是錯誤的。數(shù)據(jù)庫具有為各種用戶所共享的特點(diǎn),選項B的說法是正確的。通常將引入數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由5個部分組成,包括相關(guān)計算機(jī)的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關(guān)軟件和人員。因此,選項C的說法是錯誤的。
13.D
14.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é)束。
15.D本題考查兩個知識點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
16.C函數(shù)fun(int*s,intn1,intn2)的功能是對數(shù)組s中的元素進(jìn)行首尾互相調(diào)換。所以在主函數(shù)中,當(dāng)fun(a,0,3)執(zhí)行完后,數(shù)組a[12]={4,3,2,1,5,6,7,8,9,0};再執(zhí)行fun(a,4,9),數(shù)組a[12]={4,3,2,1,0,9,8,7,6,5};再執(zhí)行fun(a,0,9)后,數(shù)組a[12]={5,6,7,8,9,0,1,2,3,4}。所以正確答案為c)。
17.Asizeof是運(yùn)算符,計算數(shù)組、指針、類型、對象、函數(shù)等所占的字節(jié)大小。strlen(*char)是函數(shù),參數(shù)必須是字符型指針(char*)。該函數(shù)的功能是:返回字符串的長度,不包括字符串結(jié)束標(biāo)識?!皊izeof(a)”是求數(shù)組a所占空間的大小,包括字符串最后的‘\\0’。所以“sizeof(a)”=5,strlen遇到‘\\0’就結(jié)束,“strlen(a)”=4?!皊trier(b)”是指針指向的字符串長度,“sizeof(b)”是指針的大小?!皊trlen(c)”是字符串的長度,“sizeof(c)”是數(shù)組的長度。因此,輸出結(jié)果是4,5,2,4,1,3,。故本題答案為A選項。
18.AB選項中運(yùn)算符“%”的運(yùn)算對象為整數(shù)。C選項中不能將變量賦給表達(dá)式“x+n”。D選項中不能將表達(dá)式“4+1”賦給常量5。故本題答案為A選項。
19.B
20.A"\0"表示空字符,strlen函數(shù)求得的是不包括字符串結(jié)束符'\0'的長度。故選A。
21.55解析:分析程序,當(dāng)a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結(jié)果為5。
22.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
23.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
24.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹。
25.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。
26.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。
27.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
28.&a[i]或a+ia[i]或*(a+i)&a[i]或a+ia[i]或*(a+i)解析:主函數(shù)中一開始定義了一個長度為20得整形數(shù)組,然后通過—個循環(huán),循環(huán)20次給它的每個元素賦初值,所以在第一個空格處應(yīng)填各個元素的地址,即填&a[1]或a+i,然后在通過一個循環(huán)執(zhí)行20次,每循環(huán)一次,先判斷該循環(huán)是否大于0,如果大于。將其累加到變量sum中,所以第二個空格處應(yīng)該填入數(shù)組元素,所以應(yīng)該填a[i]或*(a+i)。
29.11解析:邏輯運(yùn)算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
30.數(shù)據(jù)字典或DD數(shù)據(jù)字典或DD解析:數(shù)據(jù)流圖用來對系統(tǒng)的功能需求進(jìn)行建模,它可以用少數(shù)幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數(shù)據(jù)詞典(DataDictionary,DD)用于對數(shù)據(jù)流圖中出現(xiàn)的所有成分給出定義,它使數(shù)據(jù)流圖上的數(shù)據(jù)流名字、加工名字和數(shù)據(jù)存儲名字具有確切的解釋。
31.int*
32.max=10row=2colum=1
33.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關(guān)知識。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個節(jié)點(diǎn)的地址賦給p,這樣循環(huán),節(jié)點(diǎn)可以依次向后取值。
34.bb解析:本題實(shí)現(xiàn)的功能是把大寫字母轉(zhuǎn)換為小寫字母。小寫字母的ASCII碼值比相應(yīng)的大寫字母的ASCII碼值大32。
35.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達(dá)。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項是或的關(guān)系。
36.1351\r\n3\r\n5解析:本題考查了for循環(huán)語句的使用,break語句用在本題中是結(jié)束for循環(huán)直接跳出循環(huán)體外。當(dāng)i=1時,因為if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出1,同時i自加1;執(zhí)行第二次for循環(huán)時,i=3;同樣的if語句條件不滿足,所以直接執(zhí)行printf('%d\\n',i++);輸出3,同時i自加1;執(zhí)行第三次for循環(huán)時,i=5,if語句條件滿足,所以執(zhí)行printf('%d\\n',i),輸出5,然后break語句跳出了for循環(huán)。
37.doublemax或externdoublemaxdoublemax或externdoublemax解析:函數(shù)聲明是對所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達(dá)式進(jìn)行檢測,以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:類型標(biāo)識符函數(shù)名(類型標(biāo)識符形參,…);這些信息就是函數(shù)定義中的第一行的內(nèi)容。本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extem說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
38.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
39.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄—個單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前—個字符是否是空格,如果是則說明這個字符是—個單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)填flag=0或*(s-1)='';最后—個空格需填寫的是返回的單詞的個數(shù),即num。
40.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內(nèi)層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素;若不是則判斷a[i][j]的值是否等于0,若等于0則退出內(nèi)層循環(huán)開始處理下一行;其他情況下,把a(bǔ)[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于0的元素值加到變量s中。
41.B解析:耦合性和內(nèi)聚性足模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn)。內(nèi)聚性是一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度的度量,作為軟件結(jié)構(gòu)設(shè)計的設(shè)計原則,要求每個模塊的內(nèi)部都具有很強(qiáng)的內(nèi)聚性;耦合性是指模塊間相互連接的緊密程度的度量,一個模塊與其他模塊的耦合性越強(qiáng)則該模塊的獨(dú)立性越弱。一般優(yōu)秀的軟件設(shè)計應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。
42.B解析:本題考查邏輯與運(yùn)算的運(yùn)算規(guī)則。其規(guī)則是:當(dāng)運(yùn)算符前后兩個條件表達(dá)式都滿足時,其最終結(jié)果才為真。當(dāng)發(fā)現(xiàn)第一個表達(dá)式的值為假后,計算機(jī)將不再執(zhí)行后面表達(dá)式的運(yùn)算。
本題中,由于前一個表達(dá)式的值為“假”,所以,后面的表達(dá)式不再進(jìn)行運(yùn)算,因而n的值保持不變,仍為2。
43.B解析:根據(jù)數(shù)據(jù)模型的應(yīng)用的不同目的,模型分為概念模型和結(jié)構(gòu)模型。概念模型是按用戶的觀點(diǎn)對數(shù)據(jù)和信息建模。結(jié)構(gòu)模型是按計算機(jī)系統(tǒng)觀點(diǎn)對數(shù)據(jù)建模。數(shù)據(jù)模型按數(shù)據(jù)結(jié)構(gòu)分為層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο髷?shù)據(jù)模型。
44.B解析:本題中選項B是錯誤的引用,*(a+i)+j只代表了a[i][j]的地址。
45.B解析:函數(shù)f是一個返回值為指針的函數(shù),其功能是比較兩個數(shù)中的最小值,并返回最小值的存儲單元地址。main函數(shù)中定義了指針變量p和q,p=&a,q=&b,即*p=7,*q=8,調(diào)用函數(shù){后r=p,所以*r=7,printf函數(shù)的輸出結(jié)果為7,8,7。
46.B解析:a[0]是數(shù)組元素,不是數(shù)組名。
47.A
48.D解析:因為x的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1。所以選項D)等于關(guān)系表達(dá)式的結(jié)果為假,即等于0。
49.C
50.B解析:在函數(shù)中首先把整型數(shù)組a[10]中的每個元素寫入文件d1.dat中,然后再次打開這個文件,把文件d1.dat中的內(nèi)容讀入到整型變量n中,最后輸出變量n的值。
51.A解析:選項A中10<a的結(jié)果是邏輯值0或1,再與15比較大小沒有意義,因此錯誤。
52.B解析:“后進(jìn)先出”表示最后被插入的元素最先能被刪除。選項A中,隊列是指允許在—端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,在隊列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,隊列又稱為“先進(jìn)先出”的線性表,它體現(xiàn)了“先來先服務(wù)”的原則:選項B中,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素,棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。隊列和棧都屆于線性表,它們具有順序存儲的特點(diǎn),所以才有“先進(jìn)先出”和“后進(jìn)先出”的數(shù)據(jù)組織方式。雙向鏈表使用鏈?zhǔn)酱鎯Ψ绞?,二叉樹也通常采用鏈?zhǔn)酱鎯Ψ绞?,它們的存儲?shù)據(jù)的空間可以是不連續(xù)的,各個數(shù)據(jù)結(jié)點(diǎn)的存儲順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。所以選項C和選項D錯誤。本題的正確答案為選項B。
53.C解析:該題目的關(guān)鍵是要搞清楚“&&”和“||”兩個邏輯運(yùn)算符的運(yùn)算功能。運(yùn)算符“&&”和“||”是雙目運(yùn)算符,要求有兩個運(yùn)算量。在邏輯與運(yùn)算中,只有當(dāng)“&&”運(yùn)算符前面運(yùn)算量的值為真時,才需要判斷后面的值;若為假,就不必判斷后面的值。而在邏輯或運(yùn)算中,只要“||”運(yùn)算符前面的值為真,就不再判斷后面的值;只有前面的值為假,才判斷后面的值。本題中j++的值為真,因此不進(jìn)行k++運(yùn)算,k值保持不變,(j++||k++)的值為真,繼續(xù)計算i++,計算后i值為2。
54.B解析:合法的標(biāo)識符是由字母、數(shù)字和下劃線組成,并且第一個字符必須為字母或下劃線,用戶定義的標(biāo)識符不能與關(guān)鍵字相同。選項A),數(shù)字不能為第一個字母,auto為關(guān)鍵字;選項C)中,也是數(shù)字不能為第一個字母,else為關(guān)鍵字;選項D)中負(fù)號不合法。
55.CC?!窘馕觥縎QL語言的全稱為StructuredQueryLanguage,它是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,是一種面向數(shù)據(jù)庫的通用數(shù)據(jù)處理語言規(guī)范。它包含數(shù)據(jù)查詢語言、數(shù)據(jù)操縱語言、數(shù)據(jù)定義語言和數(shù)據(jù)控制語言4個部分。
56.D解析:變量b的初值等于2,所以表達(dá)式b<<2表示b的值二進(jìn)制左移兩位,即擴(kuò)大4倍,所以變量b的等于8。然后與a的值1進(jìn)行異或運(yùn)算,得9。
57.D解析:C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達(dá)式,而不能省略第二個方括號中的常量表達(dá)式:二維數(shù)組的一般定義格式是:類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]。
58.A解析:本題考查了continue和break語句用在循環(huán)語句中的作用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。
59.B
60.C
\n在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機(jī)器的位數(shù)有關(guān),16位機(jī)中(也就是在標(biāo)準(zhǔn)c中),若int類型數(shù)據(jù)占2個字節(jié),則float類型數(shù)據(jù)占4個字節(jié),double類型數(shù)據(jù)占8個字節(jié)。
\n
61.C\n題中定義了無符號數(shù),c=a>>3;是指右移3位,然后輸出。結(jié)果為C。
\n
62.D函數(shù)調(diào)用和值傳遞;*p=b,使p指向b的首地址,*p=’d’,重新對p進(jìn)行賦值,因為傳遞的是地址值,所以可以改變實(shí)參的的值。
63.A本題首先定義了3個字符數(shù)flip、q、r,并分別被初始化。數(shù)組p;}i旨定的大小為20,初始化列表為la,b,c,d},即只指定了前4個元素的內(nèi)容,根據(jù)c語言的規(guī)定,初始化列表不足時,其余元素均自動初始化為0。然后通過streat()函數(shù),將字符串r連接到字符串p之后,即執(zhí)行后p中的內(nèi)容為“123d123de”。因為“strlen(q)”表示求字符串q的長度,很明顯為3,所以語句“strcpy(p+strlen(q),q);”的作用就是:將字符串q復(fù)制到數(shù)9lp的第4個元素位置處。
64.B本題考查循環(huán)語句的嵌套以及條件的判斷問題。在程序中,內(nèi)層循環(huán)判斷條件為”j<=i¨,而j的初值為3,故當(dāng)i的值為1和2時,內(nèi)層循環(huán)體都不會被執(zhí)行。只有當(dāng)i和j都等于3時才會執(zhí)行一次。m的值為55對3取模,計算結(jié)果為l。
65.C
66.B軟件設(shè)計包括軟件的結(jié)構(gòu)設(shè)計、數(shù)據(jù)接口設(shè)計和過程設(shè)計。其中軟件結(jié)構(gòu)設(shè)計主要包括系統(tǒng)由哪些子系統(tǒng)構(gòu)成,以及這些子系統(tǒng)之間的關(guān)系是怎樣的,并將這些內(nèi)容編寫成文檔;數(shù)據(jù)接口設(shè)計的任務(wù)是為每個子系統(tǒng)設(shè)計其與其他子系統(tǒng)間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統(tǒng)的操作知識就可以使用;過程設(shè)計是指系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述。
67.D
68.D首先k=0,執(zhí)行default,退出switch,k++,執(zhí)行case1,2,3后,n=2,k++,執(zhí)行case2,3,n=4,k++,執(zhí)行case3,n=7.執(zhí)行k++,執(zhí)行default,k++,退出循環(huán)。
69.A\n函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時,直接將函數(shù)指針指向函數(shù)名就行了。所以選項A正確。
\n
70.AC程序?qū)︻A(yù)處理命令行的處理是在程序編譯的過程中進(jìn)行的,所以選擇A)。
71.B\n結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計理論在軟件需求分析階段的運(yùn)用。而結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖、數(shù)據(jù)字典、結(jié)構(gòu)化語言、判定樹和判定表等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔。
\n
72.A\n對下標(biāo)為偶數(shù)的元素進(jìn)行降序排序,下標(biāo)為奇數(shù)元素保持不變。
\n
73.C
74.A本題考查C語言中對整數(shù)求余數(shù)運(yùn)算。運(yùn)算符“%”是兩個數(shù)相除后取余數(shù)。分析本題的程序,main函數(shù)中的主體為一個do-while循環(huán),該循環(huán)的終止條件為i==0。do-while循環(huán)內(nèi)部起始為一個if語句,該語句包含一個if子語句,外層if語句的判斷條件是i%3==1,表示i的取值范圍為{1,4,7,11,…},內(nèi)部if子語句的判斷條件為i%5==2,表示i的取值范圍為{2,7,12,…}。如果外層和內(nèi)層的if語句的條件都滿足,則執(zhí)行語句printf('*%d',i);break;,該語句輸出*i形式的結(jié)果并跳出do-while循環(huán)。如果兩個if語句有一個條件不滿足,則執(zhí)行i++操作,繼續(xù)執(zhí)行do-while循環(huán)。i的初始值為5,只有滿足兩個if語句條件時才能夠跳出do-while循環(huán),即當(dāng)i=7時,循環(huán)結(jié)束,輸出結(jié)果為*7。
75.A
76.Dstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。
77.A
78.Dintm=1,n=2,*P=&m,。q=&Il,*r;即指針變量P指向m,指針變量q指向n,r=P;P=q;q=。;即通過指針變量r,將指針P和指針q的指向交換。因此最后輸出1,2,2,1。
79.D根據(jù)代碼可知如果x的值小于等于3,執(zhí)行空語句,不進(jìn)行打印操作。如果x的值大于3,再判斷x的值是否不等于l0,如果不等于l0就打印X的值,所以選擇D選項。
80.A全局變量的作用域是從聲明處到文件的結(jié)束。所以選擇A)
81.
82.intfun(inta[],intn){ inti,j=1; for(i=1;i<n;i++) if(a[j-1]!=a[i])/*若該元素與前一個元素不相同,則保留*/ a[j++]=a[i]; returnj;/*返回不相同元素的個數(shù)*/}該程序的流程:定義變量i和j,其中j用于控制刪除后剩下的元素在數(shù)組中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組中最后一個元素的下一個元素的下標(biāo)。所以if語句中的條件是a[j-1]!=a[i],其中a[j-1]是新數(shù)組中的最后一個元素,若條件成立,則表示出現(xiàn)了不同的值,所以a[i]要保留到新數(shù)組中。注意本題中i和j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。2021年四川省雅安市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.能正確表示x>=3或者x<1的關(guān)系表達(dá)式是()。
A.x>=3orx<1B.x>=3|x<1C..x>=3||x<1D.x>=3||x<1
2.在存儲數(shù)據(jù)時,通常不僅要存儲各數(shù)據(jù)元素的值,而且還要存儲()。
A.數(shù)據(jù)的處理方法B.數(shù)據(jù)元素的類型C.數(shù)據(jù)元素之間的關(guān)系D.數(shù)據(jù)的存儲方法
3.有以下程序
#include<stdio.h>
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序運(yùn)行后,若從鍵盤輸入(從第1列開始)
123<回車>
45678<回車>
則輸出結(jié)果是
A.1267B.1256C.1278D.1245
4.在C語言中,函數(shù)返回值的類型最終取決于()。
A.函數(shù)定義時在函數(shù)首部所說明的函數(shù)類型
B.return語句中表達(dá)式值的類型
C.調(diào)用函數(shù)時主調(diào)函數(shù)所傳遞的實(shí)參類型
D.函數(shù)定義時形參的類型
5.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法
A.快速排序B.堆排序C.插入排序D.二路歸并排序
6.在ASC算法team日常開發(fā)中,常常面臨一些數(shù)據(jù)結(jié)構(gòu)的抉擇,令人糾結(jié)。目前大家在策劃一個FBI項目(FastBinaryIndexing),其中用到的詞匯有6200條,詞匯長度在10-15之間,詞匯字符是英文字母,區(qū)分大小寫。請在下面幾個數(shù)據(jù)結(jié)構(gòu)中選擇一個使檢索速度最快的()
A.二叉搜索樹,比較函數(shù)開銷:1次運(yùn)算/每字符
B.哈希表,hash算法開銷:10次運(yùn)算/每字符
C.鏈表,比較函數(shù)開銷:1次運(yùn)算/每字符
D.TRIE樹,尋找子節(jié)點(diǎn)開銷:1次運(yùn)算/每字符
7.交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運(yùn)算符。
A.&.B.^C.||D.~
8.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
9.下列能正確進(jìn)行字符串賦值的是()。A.B.C.D.
10.
11.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長度為n的字符串存入字符數(shù)s由
B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中
C.從文件file中讀到n個字符串存入字符數(shù)組s中
D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中
12.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上3種說法都不對
13.下列一維數(shù)組初始化語句中,正確且與語句floata[]={0,3,8,0,9};等價的是().
A.floata[6]={0,3,8,0,9};
B.floata[4]={0,3,8,0,9};
C.floata[7]={0,3,8,0,9};
D.floata[5]={0,3,8,0,9};
14.有以下程序: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);}程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
15.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
16.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
17.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]=“TEXT”,*b=“++”,c[3]=“1”;printf(“%d,%d,”,strlen(a),sizeof(a));printf(“%d,%d,”,strlen(b),sizeof(b));printf(“%d,%d,\n”,strlen(c),sizeof(c));}程序運(yùn)行后的輸出結(jié)果是()。A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3
18.若變量均已正確定義并賦值,以下合法的C語言賦值語句是()。
A.x=y==5;B.X=n%2.5:C.x+n=i;D.x=5=4+1:
19.在以下的敘述中,正確的是()。
A.線性表的順序存儲結(jié)構(gòu)優(yōu)于鏈表存儲結(jié)構(gòu)
B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表
C.棧的操作方式是先進(jìn)先出
D.隊列的操作方式是先進(jìn)后出
20.若有定義語句:“charsE10]="1234567\0\0";”,則strlen(s)的值是()。A.A.7B.8C.9D.10
二、2.填空題(20題)21.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
22.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
23.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
24.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
25.下列程序的輸出結(jié)果是______。
10ngfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf("%1d\n",x);}
26.下列程序輸出的結(jié)果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
27.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
28.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計其中正數(shù)的個數(shù),并計算它們之和。請?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-%dkn",sum,count);
}
29.若a的值為1,則表達(dá)式!a‖++a的值是______。
30.在結(jié)構(gòu)化分析使用的數(shù)據(jù)流圖(DFD)中,利用【】對其中的圖形元素進(jìn)行確切解釋。
31.以下函數(shù)用來求出2個整數(shù)之和,并通過形參將結(jié)果傳回。
voidfunc(intx,inty,【】z)
{*z=x+y;}
32.下列程序的運(yùn)行結(jié)果為【】。
main()
{inti,j,row=0,colum=0,max,
a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(max<a[i][j])
{max=a[i][j];
row=i;
colum=j;
}
printf("max=%-5drow=%-3dcolum=%-3d\n",max,row,colum);
}
33.以下程序中函數(shù)fun的功能是:構(gòu)成一個如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請?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<stdio.h>
main()
{charm;
m='B'+32;
printf("%c\n",m);
}
35.下列表達(dá)式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
36.下列程序的輸出結(jié)果是【】。
main()
{inti;
for(i=1;i+1;i++)
{if(i>4)
{printf("%d\n",i);
break;}
printf("%d\n",i++);}}
37.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
seanf("%1f%1f",&x,&y);
pfintf("%1f\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
38.診斷和改正程序中錯誤的工作通常稱為【】。
39.下述函數(shù)統(tǒng)計—個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
40.若有以下程序
main()
{inta[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-21,32,-33,0}};
inti,j,s=0;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
{if(a[i][j]<0)continue;
if(a[i][j]==0)break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
執(zhí)行后輸出結(jié)果是【】。
三、1.選擇題(20題)41.軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是()。A.低內(nèi)聚低耦合
B.高內(nèi)聚低耦合
C.低內(nèi)聚高耦合
D.高內(nèi)聚高耦合
42.設(shè)有:inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>b)&&(n=c>d)后n的值是
A.1B.2C.3D.4
43.在數(shù)據(jù)庫技術(shù)中,面向?qū)ο髷?shù)據(jù)模型是一種______。
A.概念模型B.結(jié)構(gòu)模型C.物理模型D.形象棋型
44.若有定義:inta[4][10];,則以下選項中對數(shù)組元素a[i][j]引用錯誤的是______。(o<=i<4,0<=j<=10
A.*(&a[0][0]+10*i+j)B.*(a+i)+jC.*(*(a+i)+j)D.*(a[i]+j)
45.有以下程序: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);print("%d,%d,%d\n",*P,*q,*r);}執(zhí)行后的輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
46.有以下定義:#include<stdio.h>chara[l0],*b=a;不能給a數(shù)組輸入字符串的語句是______。
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(b);
47.設(shè)有如下定義intx=10,y=3,z;則語句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是()
A.3B.0C.4D.1
48.下列選項中,當(dāng)x為大于1的奇數(shù)時,值為0的表達(dá)式是()。
A.x%2==1B.x/2C.x%2!=0D.x%2==0
49.以下程序的功能是:建立一個帶有頭結(jié)點(diǎn)的單向鏈表,并將存儲在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個結(jié)點(diǎn)中,請從與下劃線處號碼對應(yīng)的一組選項中選擇出正確的選項。
#include<stdlib.h>
structnode
{chardata;structnode*next;};
(48)CreatList(char*s)
{structnode*h,*p,*q;
h=(structnode*)malloc(sizeof(Structnode));
p=q=h;
while(*s!=‘\0’)
{p=(structnode*)malloc(sizeof(structnode));
p->data=(49);
q->next=p;
q=(50);
s++;
}
p->next=0;
returnh;
}
main()
{charstr[]="linklist";
structnode*head;
head=CreatList(str);
}
A.char*B.stmctnodeC.strumnode*D.char
50.有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.dat","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);printf("%d\n",n);}程序的運(yùn)行結(jié)果是
A.12300B.123C.1D.321
51.設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系“10<a<15”的C語言表達(dá)式是______。
A.10<a<15
B.a==11||a==12||a==13||a==14
C.a>10&&a<15
D.!(a<=10)&&!(a>=15)
52.按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
53.有以下程序:#include<stdio.h>main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結(jié)果是()。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
54.下面各選項中,均是C語言合法標(biāo)識符的選項組是
A.33weautoB._23me_3ewC._433e_elseD.ER-DF32
55.SQL語言又稱為______。
A.結(jié)構(gòu)化定義語言B.結(jié)構(gòu)化控制語言C.結(jié)構(gòu)化查詢語言D.結(jié)構(gòu)化操縱語言
56.設(shè)有下列語句inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,C的值為()。
A.6B.7C.8D.9
57.下列二維數(shù)組的說明中,不正確的是()。
A.floata[][4]={0,1,8,5,9};
B.inta[3][4]
C.#defineN5floata[N][3]
D.inta[2][9.5];
58.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。
A.2,1B.2,2C.2,5D.5,2
59.以下敘述中錯誤的是
A.gets函數(shù)用于從終端讀入字符串
B.getehar函數(shù)用于從磁盤文件讀入字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwri
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年計算機(jī)輔助類工具軟件項目規(guī)劃申請報告
- 2025安徽蚌埠市龍子湖區(qū)產(chǎn)業(yè)發(fā)展有限公司招聘22人考前自測高頻考點(diǎn)模擬試題及完整答案詳解
- 2025年棗莊市精神衛(wèi)生中心公開招聘備案制工作人員(19人)模擬試卷及答案詳解(奪冠系列)
- 2025廣西玉林北流市山圍鎮(zhèn)衛(wèi)生院公開招聘5人考前自測高頻考點(diǎn)模擬試題及完整答案詳解
- 教育培訓(xùn)成果保障責(zé)任書6篇
- 機(jī)構(gòu)環(huán)保行為公開承諾函(3篇)
- 企業(yè)信息管理系統(tǒng)標(biāo)準(zhǔn)化設(shè)置方案
- 線上服務(wù)品質(zhì)保障承諾函7篇
- 2025廣西百色靖西市人民醫(yī)院招聘導(dǎo)診分診員1人模擬試卷及答案詳解(名師系列)
- 江西省吉安市2024-2025學(xué)年高三上學(xué)期期末教學(xué)質(zhì)量檢測地理試題(解析版)
- 安全強(qiáng)安考試題及答案
- 基于16PF的保險業(yè)銷售人員選拔與績效預(yù)測:理論、實(shí)踐與展望
- 2026秋季國家管網(wǎng)集團(tuán)東北公司高校畢業(yè)生招聘筆試備考試題及答案解析
- 2025年10.13日少先隊建隊日主題班會課件薪火相傳強(qiáng)國有我
- 2025小學(xué)關(guān)于教育領(lǐng)域不正之風(fēng)和腐敗問題專項整治工作方案
- 2025年工會社會工作者招聘筆試模擬試題庫及答案
- 2025年甘肅省武威市涼州區(qū)發(fā)放鎮(zhèn)招聘專業(yè)化管理大學(xué)生村文書備考考試題庫附答案解析
- 2024年成人高等考試《政治》(專升本)試題真題及答案
- 《犟龜》課件 部編語文三年級上冊
- 教科版科學(xué)五年級上冊2.1地球的表面教學(xué)課件
- 農(nóng)作物土地租賃合同5篇
評論
0/150
提交評論