




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年湖北省鄂州市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
3.以下敘述中錯誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
4.以下程序的輸出結(jié)果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21
5.如果一個函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說明語句后的復(fù)合語句中定義了一個變量,則該變量().
A.為全局變量,在本程序文件范圍內(nèi)有效
B.為局部變量,只在該函數(shù)內(nèi)有效
C.為局部變量,只在該復(fù)合語句中有效
D.定義無效,為非法變量
6.在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是()。A.p->prior->prior
B.p->prior->prior
C.s->prior->next=s
D.s->prior->prior=s
7.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
8.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
9.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
10.下列敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
D.當(dāng)程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值
11.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
12.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是()。
A.8,6B.8,3C.6,4D.7,4
13.二維數(shù)組A的元素都是6個字符組成的串,行下標(biāo)i的范圍從0到8,列下標(biāo)j的范圈從1到10,則存放A至少需要()個字節(jié)。
A.90B.180C.240D.270
14.已知A=10,B=20,下類表達式正確的是()。
A.C=(A++)*(--B)=200
B.A-=30
C.C=(A++)+(B--)=30
D.C=(++A)*(--B)=210
15.以下敘述中正確的是()。
A.文件指針是一種特殊的指針類型變量
B.文件指針的值等于文件當(dāng)前讀寫位置,以字節(jié)為單位
C.文件指針的值等于文件在計算機硬盤中的存儲位置
D.調(diào)用fscanf函數(shù)只能向文本文件中寫入任意字符
16.以下正確的敘述是()。
A.在C程序中,每行中只能寫一條語句
B.若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數(shù)
C.在C程序中,無論是整數(shù)還是實數(shù),都能被準(zhǔn)確無誤地表示
D.在C程序中,%是只能用于整數(shù)運算的運算符
17.對于只在表的首、尾兩端進行插入操作的線性表,宜采用的存儲結(jié)構(gòu)為()。
A.順序表B.用頭指針表示的循環(huán)單鏈表C.用尾指針表示的循環(huán)單鏈表D.單鏈表
18.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細(xì)設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試
19.
20.考慮函數(shù)原型voidtest(inta,intb=7,charz='*'),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是()。
A.test(5)B.test(5,8)C.test(6,'#')D.test(0,0,'*')
二、2.填空題(20題)21.下列程序的運行結(jié)果是______。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf('%s\n",p);
}
22.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結(jié)果形式為:x/y=11。
23.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
24.以下程序的輸出結(jié)果是______。
intfun(int*x,int*y)
{staticintm=4;
m=*X+*y;*x-=m;*y+=m;
returnm;
}
main()
{inta=2,b=6,n;
n=fun(&a,&B);printf("%d,",n);
n=fun(&a,&B);printf("%d\n",n);
}
25.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
26.下列循環(huán)的循環(huán)次數(shù)是______。
ihtk=2;
while(k=0)
printf("%d",k);
k--;
printf("\n");
27.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
}
}
28.有以下程序:
voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,y);
}
執(zhí)行后輸出結(jié)果是上【】。
29.在進行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
30.以下程序段的輸出結(jié)果是【】。
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
31.數(shù)據(jù)的______結(jié)構(gòu)在計算機存儲空問中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)或物理結(jié)構(gòu)。
32.下面程序的功能是建立一個有3個結(jié)點的單循環(huán)鏈表,然后求各個結(jié)點數(shù)值域data中數(shù)據(jù)的和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
structNODE{intdata;
structNODE*next;
};
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->data=100;q->data=200;r->data=300;
p->next=q;q->next=r;r->next=p;
sum=p->data+p->next->data+r->next->next【】;
printf("%d\n",sum);
}
33.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。
34.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda,請?zhí)羁铡?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
p1=str;p2=();
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(t==0)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",huiwen(str));
}
35.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
36.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
37.Fibonacci數(shù)列中的頭兩個數(shù)是1和1,從第3個數(shù)開始,每個數(shù)等于前兩個數(shù)之和。下述程序計算此數(shù)列的前20個數(shù),且每行輸出5個數(shù),請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
38.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。
39.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。
word_num(str
charstr[];
{inti,num=0,word=0;
for(i=0;str[i]!=【】;i++)
if(【】=")word=0
elseif(word=0)
{
word=1;
【】;
}
return(num);
}
40.若從鍵盤輸入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);
}
三、1.選擇題(20題)41.以下不能定義為用戶標(biāo)識符的是()
A.MainB._0C._intD.sizeof
42.有以下程序main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序執(zhí)行后的輸出結(jié)果是
A.n=5B.n=2C.n=3D.n=4
43.有以下程序main(){char*s="abcde";s+=2;printf("%ld\n",s);}程序運行后的輸出結(jié)果是()
A.cdeB.字符c的ASCII碼值C.字符c的地址D.出錯
44.以下能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1;
D.doublex=12.3E2.5;
45.有以下程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={"Zhao",′m′,850,900};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
}
main()
{STUc={"Qian",′f′,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
}
程序的運行結(jié)果是
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
46.以下程序運行后,輸出結(jié)果為______。main(){inta[2][3]{1,3,5,7,9,11}*s{2]**pp,*p;s[0]=a[0],s[1]=a[1]pp=sp=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}
A.1B.7C.9D.11
47.當(dāng)輸入為"quert?"時,下面程序的執(zhí)行結(jié)果是#include<stdio.h>main(){charc;c=getchar();while(c!='?'){putchar(c);c=getchar();}}
A.quertB.RvfsuC.quert?D.rvfsu?
48.下列條件語句中,功能與其他語句不同的是
A.if(a)printf("%d\n",x);elseprinff("%d\n",y);
B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C.fi(a!=0)prinff("%d\n"x);elseprintf("%d\n",y);
D.if(a==0)prinff("%d\n",x);elseprintf("%d\n",y);
49.下列程序的運行結(jié)果是()。
#include<stdio.h>
voidfun(int*s,int*p)
{staticintt=3;
*p=s[t];
t--;
}
voidmain()
{inta[]={2,3,4,5},k;
intx;
for(k=0;k<4;k++)
{fun(a,&x);
printf("%d,",x);
}
}
A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,
50.對線性表進行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
51.下列對于軟件測試的描述中正確的是______。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結(jié)果正確
C.軟件測試的目的是盡可能地多發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
52.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
53.經(jīng)過下面的語句定義后:inti,a[10],*p;下列語句中,合法的是______。
A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;
54.與數(shù)學(xué)式子應(yīng)的C語言表達式是
A.3*xn/(2*x-1)
B.3*x**n/(2*x-1)
C.3*pow(x,n)*(1/(2*x-1))
D.3*pow(n,x)/(2*x-1)
55.以下不能正確進行字符串賦初值的語句是
A.charstr[5]=“good!”;
B.charstr[]=“good!”;
C.char*str=“good!”;
D.charstr[5]={'g','o','o','d'};
56.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。
A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
57.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本的結(jié)構(gòu)組成的算法
A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成些簡單的仟務(wù)
58.以下程序的運行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
59.以下程序運行后,輸出結(jié)果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}
A.6385B.22C.33D.693825
60.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運行后的輸出結(jié)果是(選項D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
四、選擇題(20題)61.
62.在滿足實體完整性約束的條件下()。
A.一個關(guān)系中廊該有一個或多個候選關(guān)鍵字
B.一個關(guān)系中只能有一個候選關(guān)鍵字
C.一個關(guān)系中必須有多個候選關(guān)鍵字
D.一個關(guān)系中可以沒有候選關(guān)鍵字
63.
64.
A.*P=*q;B.P=q;C.*P=&nl;D.P=*q;
65.概要設(shè)計中要完成的事情是()。
A.系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)的設(shè)計B.系統(tǒng)結(jié)構(gòu)和過程的設(shè)計C.過程和接口的設(shè)計D.數(shù)據(jù)結(jié)構(gòu)和過程的設(shè)計
66.
67.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
68.有以下程序執(zhí)行后的輸出結(jié)果是()。
A.32B.24C.5D.40
69.按照c語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。
A.大寫字母B.下劃線C.數(shù)字字符D.連接符
70.
71.有以下程序程序的運行結(jié)果是()。
A.1B.41C.2D.331
72.有以下程序:
程序的運行結(jié)果是()。
A.0B.10C.20D.出錯
73.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.aut0和register
B.extem和register
C.auto和static
D.static和register
74.有以下程序則輸出結(jié)果是()。A.1245B.1256C.1278D.1267
75.
設(shè)有如下定義:
intarr[]={6,7,8,9,10);
int*ptr:
ptr=arr;
*(ptr2)=2;
printf("%d,%d\n",*ptr,*(ptr2)):
則下列程序段的輸出結(jié)果為()。
A.8,10B.6,8C.7,9D.6,2
76.
有下列程序:
main
{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
77.
下列程序的運行結(jié)果是()。
#include<stdio.h>
#defineADD(x)x+x
main
{intm=1,n=2,k=3;
intS=ADD(m+n)*k;
printf("s=%d",s);
}
A.sum=18B.sum=10C.sum=9D.sum=25
78.有以下程序:
程序運行后的輸出結(jié)果是()。
A.21B.11C.6D.1
79.若有以下語句
80.以下程序段
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:從字符串str中,刪除所有小寫字母c。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.函數(shù)fun的功能是:將S所指字符串中除下標(biāo)為偶數(shù)同時ASCIl碼值也為偶數(shù)的字符外,其余的全部刪除;字符串中剩余字符所形成的新串放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFGl23456”,其中字符A的ASCIl碼值為奇數(shù),因此應(yīng)當(dāng)刪除;字符8的ASCIl碼值為偶數(shù),但在數(shù)組中的下標(biāo)為奇數(shù),因此也應(yīng)當(dāng)刪除;字符2的ASCIl碼值為偶數(shù),在數(shù)組中的下標(biāo)也為偶數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是‘'246”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.B
2.C棧是先進后出的數(shù)據(jù)結(jié)構(gòu),在對棧操作的整個過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來完成,因此本題答案為c)。
3.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。
4.A循環(huán)的作用是求行下標(biāo)從l到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][o]+a[2][1]+a[2][2]=3+4+5+6+0一18。
5.C
6.D
7.A本題考查按位與運算,按位與就是相同為1,不同為0,把x=011050化成二進制為0001001000101000,把01252化成二進制為0000001010101010,兩者相與得0000001000101000。
8.B解析:內(nèi)模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法,如數(shù)據(jù)存儲的文件結(jié)構(gòu)、索引、集簇及hash等存取方式與存取路徑。數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)具有高共享性和低冗余性,但不能完全避免數(shù)據(jù)冗余;數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)的不同出現(xiàn)應(yīng)保持相同的值。
9.A
10.A不能將一個整數(shù)直接賦給指針變量作為地址值,A選項錯誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。故本題答案為A選項。
11.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
12.C解析:本題考查的知識點是運算符的優(yōu)先級.在復(fù)合賦值語句中,應(yīng)該由右向左依次賦值,在表達式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項中C正確。
13.A
14.C
15.A文件指針實際上是指向一個結(jié)構(gòu)體類型的指針。這個結(jié)構(gòu)體中包含緩沖區(qū)的地址、在緩沖區(qū)中當(dāng)前存取字符的位置、對文件是“讀”還是“寫”、是否出錯、是否已經(jīng)遇到文件結(jié)束標(biāo)識等信息。選項A正確,選項B、C錯誤;fscanf函數(shù)只能從文本文件中輸入數(shù)據(jù)到內(nèi)存,選項D錯誤。故本題答案為A選項。
16.D
17.C
18.C解析:軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計包括:基于功能層次結(jié)構(gòu)建立系統(tǒng)、按功能劃分成模塊的層次結(jié)構(gòu)、確定每個模塊的功能、建立與已確定的軟件需求的對應(yīng)關(guān)系、確定模塊間的調(diào)用關(guān)系和模塊間的接口、評估模塊劃分的質(zhì)量等方面。詳細(xì)設(shè)計的任務(wù)是:在使用程序設(shè)計語言編制程序以前,對所采用算法的邏輯關(guān)系進行分析,設(shè)計出全部必要的過程細(xì)節(jié),并給予清晰的表達。需求分析是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望。需求分析的任務(wù)是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調(diào)試的任務(wù)是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設(shè)計階段。
19.A
20.C
21.efghefgh解析:本題考核的知識點是通過指針引用字符串.函數(shù)“的作用是讓形參指針s指向該字符串的右半部分.主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(sD)的返回值)所指向的字符串為“efgh。
22.x/y=%dx/y=%d解析:本題考查prinff語句的輸出格式。printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時經(jīng)常會用到此函數(shù)。printf()函數(shù)的調(diào)用格式為:printf('<格式化字符串>”,<參最表>)其中,格式化字符串包括兩部分內(nèi)容。一部分足正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以“%”開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用“,”分開,且順序一一
23.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
24.88。8,8。解析:本題考查靜態(tài)局部變量值的特點,請參考第10章有關(guān)習(xí)題的解析。
25.k-1k\r\n-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]還位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。
26.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關(guān)系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環(huán)。
27.b[j][i]=a[i][j]b[j][i]=a[i][j]解析:本題考查二維數(shù)組的基本知識。它是要將一個二維數(shù)組,的行和列元素互換后存放到另一個二維數(shù)組b中,只要將數(shù)組a的行標(biāo)和列標(biāo)互換,然后賦給數(shù)組b即可。
28.8484解析:函數(shù)f(y,*x)的作用是讓y的值加上指針x所指向變量的值,讓指針x所指向變量的值加上y的值。由于形參y是傳值的,形參x是傳地址的,故調(diào)用該函數(shù)后,作為實參的y的值將不改變,而實參x的值將改變,故最后輸出的y的值為4,而x的值為8。
29.驅(qū)動模塊驅(qū)動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調(diào)用或驅(qū)動,同時被測試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動模塊,后者稱為承接模塊。其中驅(qū)動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。
30.2828解析:a*=16+(b++)-(++c)等價于a=a*(16+(b++)-(++c)),b++的值為3;++c的值為5,請注意前綴++和后綴++的用法。
31.邏輯邏輯解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)或物理結(jié)構(gòu)。
32.->next->data->next->data解析:主函數(shù)中前面大部分語句都是用來建立題中所述的鏈表的,我們只需要補充完整倒數(shù)第2條語句,實現(xiàn)題目要求的求3個結(jié)點之和就可以了。p->data是p所指結(jié)點中的數(shù)據(jù);p->next->data是p的下一結(jié)點(q所指結(jié)點)中的數(shù)據(jù)。所以下劃線位置只要填入->next->data就是剩下的r所指結(jié)點的數(shù)據(jù)了。因為鏈表是循環(huán)的,r->next->next->next的值就等于r,你甚至還可以填入->next->next->next->next->data,只要保證整個式子->next的個數(shù)是3的倍數(shù)都可以。
33.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。
34.str+strlen(str)-1str+strlen(str)-1解析:檢查一個字符串是否是回文,函數(shù)huiwen中定義了兩個字符指針,pl=str指向字符串頭,p2應(yīng)該指向字符串尾,因此該處應(yīng)該填入:str+strlen(str)-1或&str[strlen(str)-1]。
35.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。
36.11371,13,7解析:本題考查3個知識點:①余數(shù)的計算,題中的a=10,b=3,a%b=1;②(表達式1,表達式2)形式的結(jié)果為最后一個表達式的值,題中的a=10,b=3,(a-b,a+b)=a+b=13;③條件運算符的使用,題中的a-b?a-b:a+b,判斷語句a-b=7不為0,所以執(zhí)行a-b,結(jié)果為7。
37.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用來保存前兩個數(shù)之和,并作為第三個數(shù),計算后把第二個數(shù)(f2)賦給f1,第三個數(shù)(f)賦給f2,再執(zhí)行for循環(huán)。
38.00解析:根據(jù)運算符的運算順序可知,該表達式最后運算的是與(&&)運算,而任何表達式與“0”進行“與”運算,結(jié)果都為0。
39.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:
①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個字符;
②str[i]代表字符串str中的第i+1個字符;
③整型變量num的值是要記錄的單詞的個數(shù)。
C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結(jié)束符“\\0”,所以在題中第一個空中應(yīng)填寫“\\0”;題中第二個空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個空中應(yīng)當(dāng)填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數(shù)。
40.585858585858解析:在程序小,執(zhí)行scanf()語句后,a被賦值為58。接著執(zhí)行第一個if語句,因為,a=58>50,執(zhí)行第一個if語句后面的輸出語句,輸出58;接著執(zhí)行第二個if語句,因為,a=58>40,執(zhí)行第二個if語句后面的輸出語句,輸出58;接著執(zhí)行第三個if語句,因為,a=58>30,執(zhí)行第三個if語句后面的輸出語句,輸出58,所以最后的輸出為585858。
41.D解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線,標(biāo)識符名不能與關(guān)鍵字重名。選項A)中Main與主函數(shù)名main不同,所以選項D)是非法的標(biāo)識符。
42.D解析:本題考核的知識點是do…while結(jié)構(gòu)和算術(shù)運算符%的應(yīng)用。do…while的結(jié)構(gòu)形式為:do循環(huán)體while(條件表達式),當(dāng)程序執(zhí)行到do后,先執(zhí)行循環(huán)體一次,然后才對條件表達式進行計算、判斷。若條件表達式的值為真,則重復(fù)執(zhí)行一次循環(huán)體;否則退出,與while結(jié)構(gòu)相比,do…while結(jié)構(gòu)至少要執(zhí)行一次循環(huán)體;運算符%是求模運算,即求兩個數(shù)相除的余數(shù)。continue語句的作用時結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本題中,當(dāng)i=2時,執(zhí)行如循環(huán)。由于if表達式的條件為真,執(zhí)行continue語句,結(jié)束本次循環(huán),判斷while循環(huán)條件為假,故退出while循環(huán),執(zhí)行n++,此時n的值為1,當(dāng)i=3時,執(zhí)行do循環(huán).由于if(3%3)為假,執(zhí)行下面的n++語句,此時n的值為2,結(jié)束本次循環(huán),繼續(xù)判斷while循環(huán)條件為假,故退出while循環(huán),執(zhí)行n++語句,此時n的值為3;當(dāng)i=4時,執(zhí)行如循環(huán)。由于if(4%3)為真,執(zhí)行continue語句,結(jié)束本次循環(huán),繼續(xù)判斷while循環(huán)條件為假,故退出while循環(huán),執(zhí)行n++,此時n的值為4;當(dāng)i=5時,退出for循環(huán),因此最后輸出的n的值為4,所以,4個選項中選項D符合題意。
43.C
44.B解析:語句intn1=n2=10;中,由于變量n2未定義,所以此賦值語句錯誤;由于賦值語句中不能存在運算表達式,所以選項C)中的賦值語句錯誤;選項D)中指數(shù)表示錯誤,C語言規(guī)定,e后面的指數(shù)必須為整數(shù);選項B)中的32是ASCII碼的表示形式,這是c語言中字符型數(shù)據(jù)和整型數(shù)據(jù)通用的表現(xiàn),即一個字符數(shù)據(jù)可以以字符形式出現(xiàn),也可以以整數(shù)形式出現(xiàn)。
45.A解析:本題考查的是函數(shù)調(diào)用時的參數(shù)傳遞問題。程序在調(diào)用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結(jié)構(gòu)變量c在棧中的一個拷貝,函數(shù)f的所有操作只是針對這個數(shù)據(jù)拷貝進行的修改,這些都不會影響變量c的值。
46.C解析:s是—個含有兩個元素的指針數(shù)組,pp是—個指向指針變量的指針,s[0]是指向二維數(shù)組a行下標(biāo)為0的元素的首地址,即a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[o]的地址。*pp=s[1][1])后,a[0][0]的值將被賦值為a[1][1]的值,執(zhí)行p*pp;后,p中將是s[0]的值,最后的輸出語句將輸出地址s[0])所指向的數(shù)據(jù),即時a[0][0]。
47.A解析:本題考查的是字符的輸入輸出函數(shù)getchar和putchar。本題程序段實現(xiàn)的功能是:從鍵盤上逐個的輸入字符,直到遇到‘?’則結(jié)束輸入,并把除‘?’以外輸入的每個字符輸出到屏幕上。
48.D解析:本題考核的知識點是if語句的用法。選項A、選項B和選項C都是在a的值為。的時候輸出y,a不為。的時候輸出x,而選項D是在a為0的時候輸出x,a不為0的時候輸出y,所以,4個選項中選項D符合題意。
49.A解析:分析fun函數(shù)程序段,可知fun函數(shù)要實現(xiàn)的功能是將s中第(t+1)個元素以前的元素逆置賦給數(shù)組p。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)組x,最后輸出x數(shù)組。
50.A解析:對線性表進行二分法檢索,要求線性表是按順序方式存儲的,并按關(guān)鍵碼值的大小排好序,而不是按關(guān)鍵碼的檢索頻率排序。
51.C解析:軟件測試的目的:盡可能地多發(fā)現(xiàn)程序中的錯誤,不能也不可能證明程序沒有錯誤,軟件測試是一個發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。
52.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。
53.D
54.C解析:在該題中,x的n次方應(yīng)該調(diào)用函數(shù)pow(x,n)計算,pow(x,n)的參數(shù)寫反了。
55.A解析:選項A定義了一個字符數(shù)組str,具有5個元素,但賦初值的時候,初值個數(shù)卻是6個(有一個'\\0',);選項B定義了一個字符數(shù)組str并給它賦初值,由于省去了長度定義,長度由初值個數(shù)確定,相當(dāng)于str[6];選項C定義了一個字符型指針變量并用一個字符串給它賦初值,使該字符型指針指向了該字符串;選項D是對字符型數(shù)組中單個元素依次賦初值。
56.B解析:本題考查函數(shù)返回值的知識。函數(shù)返回值是通過函數(shù)中的return語句獲得,return語句中的表達式的值就是所求函數(shù)的值。此表達式的值必須與函數(shù)首部所說明的類型一致。若類型不一致,則以函數(shù)值的類型為準(zhǔn),由系統(tǒng)進行轉(zhuǎn)換。
57.A解析:本題考核的知識點是C程序的三種基本結(jié)構(gòu)。C程序由三種基本的結(jié)構(gòu)組成,分別為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù),故選項B、選項C和選項D都不正確。所以,4個選項中選項A符合題意。
58.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。
59.A
60.B本題考核的知識點是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個字符數(shù)組s并賦初值,一個字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個元素的地址,而調(diào)用put(str_adr)函數(shù)時,將從str_adr這一地址開始,依次輸出存儲單元中的字符,遇到第一個“\\0”時結(jié)束輸出,并自動輸出一個換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個元素開始輸出到第3個元素結(jié)束(因為執(zhí)行*(p4)c0語句后s中的第5個元素的值為0,而s中的第4個元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個選項中選項B符合題意。
61.B
62.A實體完整性約束要求關(guān)系的主鍵中屬性值不能為空值,因此本題答案為A)。
63.B
64.A本題考查的是指針變量的賦值。題目中各變量定義后,指針變量P指向了變量n2所在的存儲單元,指針變量q指向了變量nl所在的存儲單元,要使得nl的值賦給n2,可用指針變量q所指向的存儲單元的值賦給指針變量P所指向的存儲單元,即*P=*q。
65.A
\n在C語言中軟件概要設(shè)計的基本任務(wù)是:設(shè)計軟件系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計、編寫概要設(shè)計文檔、概要設(shè)計文檔評審4種。
\n
66.C
67.B本題主要考查循環(huán)隊列的概念,循環(huán)隊列作為隊列的一種也應(yīng)該是線性結(jié)構(gòu)。隊列是一種邏輯結(jié)構(gòu),而循環(huán)隊列是一種順序存儲結(jié)構(gòu)的隊列。
68.A本題考查了自增運算符。自增運算符“++”分為前綴和后綴兩種形式。兩種形式的作用效果是一樣的,都是使運算分量的值加1,但是它們的表達式的值不一樣,前綴形式表達式的值為運算分量加l之后的值,而后綴形式表達式的值為運算分量加l之前的值。題目中使用了一個fb,循環(huán),循環(huán)變量j從l遞增到40:在循環(huán)體中有兩條嵌套的if語句,首先判斷i++%5::0,即判斷i++的值(i加l之前的值)是甭能被5整除(判斷后i被加l),然后再判斷++i的值(i加1之后的值)是否能被8整除(判斷后i被加1),若兩個條件都滿足了,就輸出i的值,只有i=30時.滿足i++%5==0.此時i:31,++i%8::0成立,此時.
69.DC語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D)選項中的連接符不合法。
70.C
71.Ax>y不成立,之后的if
和lelse都不執(zhí)行,輸出x++表達式值為1。
72.C分配內(nèi)存空間函數(shù)malloe的調(diào)用形式:類型說明符*)malloe(size)。其功能是在內(nèi)存的動態(tài)存儲區(qū)中分配一塊長度為”size”字節(jié)的連續(xù)區(qū)域,函數(shù)的返回值為該區(qū)域的首地址?!鳖愋驼f明符”表示把該區(qū)域用于何種數(shù)據(jù)類型。
73.A本題的考查點是變量的存儲類型。extern、register、static、auto分別是定義自動變量、寄存器變量、靜態(tài)變量、外部變量,其中,自動變量和寄存器變量屬于動態(tài)存儲,調(diào)用時臨時分配單元;而靜態(tài)變量和外部變量屬于靜態(tài)存儲,在整個程序運行時間都存在。
74.A本題考查的是輸入輸出函數(shù)。sCanf()是格式化輸入函數(shù);getChar()函數(shù)從鍵盤緩沖區(qū)讀一個字符;putChar()輸出一個字符;printf()函數(shù)是格式化輸出函數(shù)。在題目中,程序執(zhí)行到sCanf()函數(shù)時,會暫停等待用戶輸A4個字符,按題意輸)k123<回車>后,字符l-3被分別賦值到Cl-C3中,而C4會得到一個換行符’\\\\n’。然后執(zhí)行第1個getChar()函數(shù),由于前面的sCanf()函數(shù)讀完了緩沖區(qū)中的所有字符,所以此時程序又會暫停等待用戶輸入,按題意輸入45678<回車>后,緩沖區(qū)第一個字符4賦值到。5,第二個字符5賦值給C6,所以本題應(yīng)該選擇A)。
75.D
\n程序中ptr指針指向數(shù)組art的首地址,*ptr=arr[0]=6,*(ptr2)=2,故選D。
\n
76.C
\n在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因為C語言規(guī)定數(shù)組名做表達式相當(dāng)于數(shù)組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數(shù)組的第i+1個元素。所以程序運行的結(jié)果是1+3+5+7+9=25,即變量S的值等于25。
\n
77.B
\n本題考查帶參數(shù)的宏的定義:“#defineADD(x)x+x”中X代表m+n,故s寫成s=m+n+m+n*k=1+2+1+2*3=10。
\n
78.A按位或運算符”1”是雙目運算符,其功能是參與運算的兩數(shù)各對應(yīng)的二進位相或。左移運算符”<<”是雙目運算符,其功能把”<<”左邊的運算數(shù)的各二進位全部左移若干位,由”<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。將5變換為二進制數(shù)為101,左移2位后為10100,1轉(zhuǎn)換為二進制數(shù)為00001,10100與00001進行或運算后為l0101,再將其轉(zhuǎn)換為十進制數(shù)為21。因此,本題答案為A)。
79.A本題考核的知識點是結(jié)構(gòu)體類型定義和結(jié)構(gòu)體的基本概念。結(jié)構(gòu)體類型的定義格式為:slxuct結(jié)構(gòu)體名{成員說明列表};結(jié)構(gòu)體變量的定義有3種形式。第一種:定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如struct結(jié)構(gòu)體名{成員說明列表)變量;第二種:先定義一個結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如structstudent{成員說明列表l;student變量;第三種:定義一個無名稱的結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如truct§tudent{成員說明列表l變量。
80.Aseanf中name得至lJLili,Rum得到l001,所以結(jié)果選擇A)。
81.
82.2022-2023年湖北省鄂州市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.下列敘述中正確的是()。A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.在棧中,棧中元素不會隨棧底指針與棧頂指針的變化而動態(tài)變化
3.以下敘述中錯誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
4.以下程序的輸出結(jié)果是()。main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}A.18B.19C.20D.21
5.如果一個函數(shù)位于C程序文件的上部,在該函數(shù)體內(nèi)說明語句后的復(fù)合語句中定義了一個變量,則該變量().
A.為全局變量,在本程序文件范圍內(nèi)有效
B.為局部變量,只在該函數(shù)內(nèi)有效
C.為局部變量,只在該復(fù)合語句中有效
D.定義無效,為非法變量
6.在循環(huán)雙鏈表的p所指的結(jié)點之前插入s所指結(jié)點的操作是()。A.p->prior->prior
B.p->prior->prior
C.s->prior->next=s
D.s->prior->prior=s
7.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
8.索引屬于()。
A.模式B.內(nèi)模式C.外模式D.概念模式
9.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是()
A.scanf(“%d”,pa);
B.scanf(“%d”,a);
C.scanf(“%d”,&pa);
D.scanf(“%d”,*pa);
10.下列敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
D.當(dāng)程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值
11.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
12.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf('%d,%d\n",m,i);}執(zhí)行后的輸出結(jié)果是()。
A.8,6B.8,3C.6,4D.7,4
13.二維數(shù)組A的元素都是6個字符組成的串,行下標(biāo)i的范圍從0到8,列下標(biāo)j的范圈從1到10,則存放A至少需要()個字節(jié)。
A.90B.180C.240D.270
14.已知A=10,B=20,下類表達式正確的是()。
A.C=(A++)*(--B)=200
B.A-=30
C.C=(A++)+(B--)=30
D.C=(++A)*(--B)=210
15.以下敘述中正確的是()。
A.文件指針是一種特殊的指針類型變量
B.文件指針的值等于文件當(dāng)前讀寫位置,以字節(jié)為單位
C.文件指針的值等于文件在計算機硬盤中的存儲位置
D.調(diào)用fscanf函數(shù)只能向文本文件中寫入任意字符
16.以下正確的敘述是()。
A.在C程序中,每行中只能寫一條語句
B.若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數(shù)
C.在C程序中,無論是整數(shù)還是實數(shù),都能被準(zhǔn)確無誤地表示
D.在C程序中,%是只能用于整數(shù)運算的運算符
17.對于只在表的首、尾兩端進行插入操作的線性表,宜采用的存儲結(jié)構(gòu)為()。
A.順序表B.用頭指針表示的循環(huán)單鏈表C.用尾指針表示的循環(huán)單鏈表D.單鏈表
18.在結(jié)構(gòu)化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細(xì)設(shè)計B.需求分析C.總體設(shè)計D.編程調(diào)試
19.
20.考慮函數(shù)原型voidtest(inta,intb=7,charz='*'),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是()。
A.test(5)B.test(5,8)C.test(6,'#')D.test(0,0,'*')
二、2.填空題(20題)21.下列程序的運行結(jié)果是______。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf('%s\n",p);
}
22.若變量x、y已定義為int類型且X的值為33,y的值為3,請將輸出語句printf((),x/y);補充完整,使其輸出的計算結(jié)果形式為:x/y=11。
23.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
24.以下程序的輸出結(jié)果是______。
intfun(int*x,int*y)
{staticintm=4;
m=*X+*y;*x-=m;*y+=m;
returnm;
}
main()
{inta=2,b=6,n;
n=fun(&a,&B);printf("%d,",n);
n=fun(&a,&B);printf("%d\n",n);
}
25.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
26.下列循環(huán)的循環(huán)次數(shù)是______。
ihtk=2;
while(k=0)
printf("%d",k);
k--;
printf("\n");
27.下列程序?qū)⒍S數(shù)組a的行和列元素互換后存放到另一個二維數(shù)組b中。請?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5}},b[3][2],i,j;
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
}
}
28.有以下程序:
voidf(inty,int*x)
{y=y+*x;*x=*x+y;}
main()
{intx=2,y=4;
f(y,&x);
printf("%d%d\n",x,y);
}
執(zhí)行后輸出結(jié)果是上【】。
29.在進行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
30.以下程序段的輸出結(jié)果是【】。
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
printf("%d",a);
}
31.數(shù)據(jù)的______結(jié)構(gòu)在計算機存儲空問中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)或物理結(jié)構(gòu)。
32.下面程序的功能是建立一個有3個結(jié)點的單循環(huán)鏈表,然后求各個結(jié)點數(shù)值域data中數(shù)據(jù)的和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
structNODE{intdata;
structNODE*next;
};
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->data=100;q->data=200;r->data=300;
p->next=q;q->next=r;r->next=p;
sum=p->data+p->next->data+r->next->next【】;
printf("%d\n",sum);
}
33.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。
34.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)返回字符串:yes!,否則函數(shù)返回字符串:no!,并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda,請?zhí)羁铡?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
p1=str;p2=();
for(i=0;i<=strlen(str)/2;i++)
if(*p1++!=*p2--){t=1;break;}
if(t==0)return("yes!");
elsereturn("no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",huiwen(str));
}
35.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
36.下列程序的運行結(jié)果是______。
#include<stdio.h>
main()
{inta=10,b=3;
printf("%d,",a%b);
printf("%d,",(a-b,a+b));
printf("%d\n",a-b?a-b:a+b);
}
37.Fibonacci數(shù)列中的頭兩個數(shù)是1和1,從第3個數(shù)開始,每個數(shù)等于前兩個數(shù)之和。下述程序計算此數(shù)列的前20個數(shù),且每行輸出5個數(shù),請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
38.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。
39.下述函數(shù)用于統(tǒng)計一行字符中的單詞個數(shù),單詞之間用空格分隔。
word_num(str
charstr[];
{inti,num=0,word=0;
for(i=0;str[i]!=【】;i++)
if(【】=")word=0
elseif(word=0)
{
word=1;
【】;
}
return(num);
}
40.若從鍵盤輸入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);
}
三、1.選擇題(20題)41.以下不能定義為用戶標(biāo)識符的是()
A.MainB._0C._intD.sizeof
42.有以下程序main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序執(zhí)行后的輸出結(jié)果是
A.n=5B.n=2C.n=3D.n=4
43.有以下程序main(){char*s="abcde";s+=2;printf("%ld\n",s);}程序運行后的輸出結(jié)果是()
A.cdeB.字符c的ASCII碼值C.字符c的地址D.出錯
44.以下能正確定義且賦初值的語句是()。
A.intn1=n2=10;
B.charc=32;
C.floatf=f+1;
D.doublex=12.3E2.5;
45.有以下程序
#include<stdio.h>
#include<string.h>
typedefstruct{charname[9];charsex;floatscore[2];}STU;
voidf(STUa)
{STUb={"Zhao",′m′,850,900};inti;
strcpy(,);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
}
main()
{STUc={"Qian",′f′,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",,c.sex,c.score[0],c.score[1]);
}
程序的運行結(jié)果是
A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90
46.以下程序運行后,輸出結(jié)果為______。main(){inta[2][3]{1,3,5,7,9,11}*s{2]**pp,*p;s[0]=a[0],s[1]=a[1]pp=sp=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}
A.1B.7C.9D.11
47.當(dāng)輸入為"quert?"時,下面程序的執(zhí)行結(jié)果是#include<stdio.h>main(){charc;c=getchar();while(c!='?'){putchar(c);c=getchar();}}
A.quertB.RvfsuC.quert?D.rvfsu?
48.下列條件語句中,功能與其他語句不同的是
A.if(a)printf("%d\n",x);elseprinff("%d\n",y);
B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C.fi(a!=0)prinff("%d\n"x);elseprintf("%d\n",y);
D.if(a==0)prinff("%d\n",x);elseprintf("%d\n",y);
49.下列程序的運行結(jié)果是()。
#include<stdio.h>
voidfun(int*s,int*p)
{staticintt=3;
*p=s[t];
t--;
}
voidmain()
{inta[]={2,3,4,5},k;
intx;
for(k=0;k<4;k++)
{fun(a,&x);
printf("%d,",x);
}
}
A.5,4,3,2B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,
50.對線性表進行二分法檢索,其前提條件是()。
A.線性表以順序方式存儲,并按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并按關(guān)鍵碼的檢索頻率排好序
C.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼值排好序
D.線性表以鏈?zhǔn)椒绞酱鎯?,并按關(guān)鍵碼的檢索頻率排好序
51.下列對于軟件測試的描述中正確的是______。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結(jié)果正確
C.軟件測試的目的是盡可能地多發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
52.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
53.經(jīng)過下面的語句定義后:inti,a[10],*p;下列語句中,合法的是______。
A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;
54.與數(shù)學(xué)式子應(yīng)的C語言表達式是
A.3*xn/(2*x-1)
B.3*x**n/(2*x-1)
C.3*pow(x,n)*(1/(2*x-1))
D.3*pow(n,x)/(2*x-1)
55.以下不能正確進行字符串賦初值的語句是
A.charstr[5]=“good!”;
B.charstr[]=“good!”;
C.char*str=“good!”;
D.charstr[5]={'g','o','o','d'};
56.有以下函數(shù):charfun(char*p){returnP;}該函數(shù)的返回值是()。
A.無確切的值B.形參p中存放的地址值C.一個臨時存儲單元的地址D.形參p自身的地址值
57.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本的結(jié)構(gòu)組成的算法
A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成些簡單的仟務(wù)
58.以下程序的運行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
59.以下程序運行后,輸出結(jié)果是()main(){charch[2][5]={"693","825"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(j=0;j<2;j++)for(j=0;p[i][j]>='0'&&p[i][j]
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東協(xié)和學(xué)院《產(chǎn)能成本決策虛擬仿真實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 商丘職業(yè)技術(shù)學(xué)院《天然提取物與生物活性物質(zhì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟寧2025年山東濟寧市直教育系統(tǒng)校園招聘55人(曲阜師范大學(xué)站)筆試歷年參考題庫附帶答案詳解
- 揚州環(huán)境資源職業(yè)技術(shù)學(xué)院《數(shù)據(jù)可視化與數(shù)據(jù)新聞》2023-2024學(xué)年第二學(xué)期期末試卷
- 海南體育職業(yè)技術(shù)學(xué)院《Java語言程序設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 瀘州職業(yè)技術(shù)學(xué)院《中國畫》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰安2025年山東泰安岱岳區(qū)事業(yè)單位初級綜合類崗位招聘103人筆試歷年參考題庫附帶答案詳解-1
- 《負(fù)數(shù)的初步認(rèn)識》教學(xué)設(shè)計-2024-2025學(xué)年五年級上冊數(shù)學(xué)蘇教版
- 浙江商業(yè)職業(yè)技術(shù)學(xué)院《石油工程專業(yè)認(rèn)知專題》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北科技大學(xué)《通信電路設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 塑膠件承認(rèn)書
- 物聯(lián)網(wǎng)項目實施進度計劃表
- 學(xué)校校園安全巡邏情況登記表
- DLT5210.4-2018熱工施工質(zhì)量驗收表格
- 中國-各省市地圖可編輯課件
- (兒科學(xué)課件)腎病綜合征
- 光纜線路工程段終版施工圖
- 礦井年度災(zāi)害預(yù)防和處理計劃
- 畢業(yè)論文-基于Java Web的模擬駕??荚囅到y(tǒng)設(shè)計與實現(xiàn)
- 駱駝祥子1一24章批注
- 新部編人教版四年級下冊道德與法治全冊教案(教學(xué)設(shè)計)
評論
0/150
提交評論