版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年山東省濱州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.將兩個(gè)字符串連接起來組成一個(gè)字符串時(shí),選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
2.有以下程序:#include<stdio.b>voidfun(charc){if(c>X)fun(c-1):printf("%C",c);}traia(){fun(z);}程序運(yùn)行后的輸出結(jié)果是()A.xyzB.wxyzC.xzyD.zvx
3.A[N][N]是對稱矩陣,將下面三角(包括對角線)以行序存儲(chǔ)到一維數(shù)組T[N(N+1)/2]中,則對任一上三角元素a[i][j]對應(yīng)T[k]的下標(biāo)k是()。
A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1
4.以下程序的運(yùn)行結(jié)果是______。#include<stdio.h>main(){inta[]:{1,2,3,4,5,6,7,8,9,10,11,12):int*p=a+5,*q=NULL:*q=*(p+5):printf("%d%d\n",*p,*q);}
A.運(yùn)行后報(bào)錯(cuò)B.66C.612D.55
5.以下敘述中正確的是()。
A.局部變量說明為static存儲(chǔ)類,其生存期將得到延長
B.全局變量說明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類說明符與局部變量完全相同
6.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
7.若以下選項(xiàng)中的變量已正確定義,則正確的賦值語句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
8.數(shù)據(jù)字典(DD)所定義的對象都包含于()。
A.軟件結(jié)構(gòu)圖B.方框圖C.數(shù)據(jù)流圖(DFD圖)D.程序流程圖
9.下面程序的輸出結(jié)果是
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%d\n",*p+9);}
A.0B.1C.10D.9
10.若一棵二叉樹具有10個(gè)度為2的結(jié)點(diǎn),5個(gè)度為1的結(jié)點(diǎn),則度為0的結(jié)點(diǎn)的個(gè)數(shù)是()。
A.9B.11C.15D.不能確定
11.
12.定義無符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。
A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}
13.對包含N個(gè)元素散列表進(jìn)行查找,平均查找長度()。
A.為OB.為O(N)C.不直接依賴ND.上述三者都不是
14.有以下程序執(zhí)行后的輸出結(jié)果是()。A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
15.設(shè)有宏定義“#defineIsDIV(k,n)((k%n==1)?1:0)”,且變量m已正確定義并賦值,則宏調(diào)用“IsDIV(m,5)&&IsDIV(m,7)”為真時(shí)所要表達(dá)的是()。
A.判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余1
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
16.
17.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0;c=(a=a=5);(a=b,b+=4);printf("%d,%d,%d\n",a,bc);}程序運(yùn)行后的輸出結(jié)果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,0
18.有以下程序:#include<stdio.h>#defineF(x,y)(x)*(y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序運(yùn)行后的輸出結(jié)果是()。
A.12B.15C.16D.20
19.第
42
題
若有說明語句
chara[]="Itismine";
char*p="Itismine";
則以下不正確的敘述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串時(shí),字符串的長度不受限制
C.p變量中存放的地址值可以改變
D.a中只能存放10個(gè)字符
20.
二、2.填空題(20題)21.若有定義語句:inta=5;,則表達(dá)式:a++的值是【】。
22.以下函數(shù)sstrcat()的功能是實(shí)現(xiàn)字符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數(shù)調(diào)用后s所指字符串為abodefgh。請?zhí)羁铡?/p>
#include<string.h>
voidsstrcat(char*s,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
}
23.軟件的【】設(shè)計(jì)又稱為總體結(jié)構(gòu)設(shè)計(jì),其主要任務(wù)是建立軟件系統(tǒng)的總體結(jié)構(gòu)。
24.若有以下定義和語句,則使指針p指向值為36的數(shù)組元素的表達(dá)式是【】。
inta[10]={19,23,44,17,37,28,49,36},*p;
p=a;
25.若有定義floatb[15],*p=b;,且數(shù)組b的首地址為200H,則p+13所指向的數(shù)組元素的地址為______。
26.以下程序的輸出結(jié)果是【】。
inta=1234;
printf("%2d\n",a);
27.以下程序的功能是:通過函數(shù)func輸入字符并統(tǒng)計(jì)輸入字符的個(gè)數(shù)。輸入時(shí)用字符作為輸入結(jié)束標(biāo)志。請?zhí)羁铡?include<stdio.h>long();/*函數(shù)說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}
28.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體之間聯(lián)系的是【】。
29.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
30.以下程序的功能是:從鍵盤輸入一字符串,要求將每個(gè)單詞中的第一個(gè)字母改成小寫(如果原來已是小寫字母,則不變),然后輸出轉(zhuǎn)換結(jié)果,補(bǔ)足所缺語句。
main()
{charstr[200];inti=0;
while((______=getchar())!='\n');
str[i-1)='\0';
for(i=0;str[i]!='\0';i++)
if((str[i-1]==''‖i==0)&&str[i]>='A'&&str[i]<='Z')
str[i]+=______;
printf("%s\n",str);
}
31.以下定義的結(jié)構(gòu)體類型里包含兩個(gè)成員,其中成員變量info用來存放整型數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針。請將定義補(bǔ)充完整。
structnode
{intinfo;
【】link;
};
32.在面向?qū)ο蠓椒ㄖ校?)是具有相似性質(zhì)的對象的集合。
33.以下程序中,fun()函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請?zhí)羁铡?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=x;
}
}
34.設(shè)有以下程序,為使之正確運(yùn)行,請?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
35.某二叉樹中度為2的節(jié)點(diǎn)有18個(gè),則該二叉樹中有()個(gè)葉子節(jié)點(diǎn)。
36.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
37.棧中允許進(jìn)行插入和刪除的一端叫做______。
38.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
執(zhí)行后輸出結(jié)果是【】。
39.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
40.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<string.h>
cbar*ss(char*s)
{char*p,t;
p=s+1;t=*s;
while(-p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
三、1.選擇題(20題)41.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是______。mein(){chars[100];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
42.若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.scanf("%d",n);
D.p=&n;scanf("%d",p);
43.若x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x—y|<10的是()。
A.abs(x-y)<10
B.x-y>-10&&x-y<10
C.!(x-y)<-10‖!(y-x)>10
D.(x-y)*(x-y)<100
44.在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A.需求分析階段B.概念設(shè)計(jì)階段C.邏輯設(shè)計(jì)階段D.物理設(shè)計(jì)階段
45.在下列敘述中,正確的一條是()
A.語句int*pt中的*pt是指針變量名
B.語句"int*p=a;"等價(jià)于"int*p;p=&a[0];”
C.運(yùn)算符*和&都是取變量地址的運(yùn)算符
D.已知指針變量p指向變量a,則&a和*p值相同,都是變量a的值
46.以下程序中函數(shù)f的功能是將n個(gè)字符串按由大到小的順序進(jìn)行排序:#include<string.h>voidf(charp[][10],intn){chart[20];inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++if(strcmp(p[i],p[j])<0){strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}}main(){charp[][10]:{"abc","aabdfg","abbd","dcdbe","cd",);inti;f(p,5);printf("%d\n",strlen(p[0]));}程序運(yùn)行后的輸出結(jié)果是()。
A.6B.4C.5D.3
47.下面程序段的運(yùn)行結(jié)果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
48.設(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
49.以下程序的輸出結(jié)果是main(){charx=040;printf(“%o\n”,x<<1);}
A.100B.80C.64D.32
50.執(zhí)行以下語句后的輸出結(jié)果是______。intx=10,y=3,z;printf("%d\n",z=(x%y,x/y));
A.1B.0C.4D.3
51.請讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c)}若運(yùn)行時(shí)從鍵盤上輸入987643210則上面程序的輸出結(jié)果是______。
A.a=98,b=75,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000c=4321.000000
D.a=98,b=765.0,c=4321.000000
52.算法的有窮性是指A.算法程序的運(yùn)行時(shí)間是有限的
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
53.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=1;i>0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}程序運(yùn)行后的輸出結(jié)果是______。
A.4B.3C.2D.1
54.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}
A.49B.36C.25D.64
55.有以下程序#include<stdio.h>main(){inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);}程序的運(yùn)行結(jié)果是
A.0B.1C.2D.3
56.有一函數(shù)以下程序段中不能根據(jù)x值正確計(jì)算出y值的是
A.if(x>0)y=1;elseif(x==0)y=0;elsey=-1;
B.y=0;if(x>0)y=1;elseif(x<0)y=-1;
C.y=0;if(x>=0)if(x>0)y=1;elsey=-1;
D.if(x>=0)if(x>0)y=1;elsey=0;elsey=-1;
57.軟件系統(tǒng)生命周期的第一個(gè)階段是______。
A.軟件分析階段B.軟件設(shè)計(jì)階段C.軟件運(yùn)行階段D.軟件維護(hù)階段
58.以下程序的輸出結(jié)果是______。#includemain(){char*p1,*p2,str[50]="ABCDEFG";p1="abcd";p2="efgh";strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf("%s",str);}
A.AfgdEFGB.AbfhdC.AfghdD.Afgd
59.設(shè)有定義語句:intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數(shù)組6個(gè)元素中的值,不能完成此操作的語句是()。
A.for(i=0;i<6;i++)printf("%2d",*(p++));
B.for(i=0;i<6;i++)printf("%2d",*(p+i));
C.for(i=0;i<6;i++)printf("%2d",*p++);
D.for(i=0;i<6;i++)printf("%2d",(*p)++);
60.棧和隊(duì)列的共同點(diǎn)是()。
A.都是先進(jìn)后出B.都是先進(jìn)先出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.2,2,3,4,5,
B.6,2,3,4,5,
C.1,2,3,4,5,
D.2,3,4,5,6,
62.有以下程序
main()
{
intx[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<8;i++)
printf("%d",x[i]);
printf("\n");
}
程序運(yùn)行后的輸出結(jié)果是
A.75310246B.01234567
C.76310462D.13570246
63.
64.(31)算法一般都可以用哪幾種控制結(jié)構(gòu)組合而成()
A.循環(huán)、分支、遞歸
B.順序、循環(huán)、嵌套
C.循環(huán)、遞歸、選擇
D.順序、選擇、循環(huán)
65.
66.以下程序運(yùn)行后的輸出結(jié)果是()。
A.2B.4C.6D.3
67.
68.
69.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()
A.32B.12C.21D.22
70.
71.軟件工程出現(xiàn)的原因是
A.程序設(shè)計(jì)方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計(jì)算機(jī)的發(fā)展
72.有如下說明
inta[10]={1,2,3,4,5,6,7},*p=a;
則數(shù)值為5的表達(dá)式是
A.*p+4B.*(p+4)C.*p+=4D.p+4
73.
74.將c語言的整數(shù)設(shè)為整數(shù)類1,則下面屬于類I實(shí)例的是()。
A.一103B.10E3C.10.3D.“0103”
75.以下選項(xiàng)中非法的字符常量是()。
A.\101B.\65C.\xffD.\019
76.
77.
設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
78.下列敘述中正確的是()。
A.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
B.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
C.循環(huán)鏈表是非線性結(jié)構(gòu)
D.雙向鏈表是非線性結(jié)構(gòu)
79.下面程序的輸出結(jié)果是()。
A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。
請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。
例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。
注意:部分源程序給出如下。
請勿改動(dòng)maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(chara)
{
voidmain
{
chars[81];
print{("Enterastring:\n");
gets(s):
fun(S);
printf("Thestringafterdeleted:\n");
puts(s);
}
參考答案
1.C將兩個(gè)字符串連接起來組成一個(gè)字符串,選用strcat函數(shù)來連接。
2.A本題考查簡單的遞歸函數(shù),當(dāng)c>X則會(huì)產(chǎn)生遞歸,依次類推,答案選擇A.
3.B
4.A
5.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲(chǔ)類別,故全局變量說明為static存儲(chǔ)類,和沒有說明為static存儲(chǔ)類其生存期都是一直延長到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲(chǔ)類說明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
6.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會(huì)被輸入,故可排除scanf。getc的作用是從文件中輸入一個(gè)字符,故也不可取。gets函數(shù)可以輸入一整行作為一個(gè)字符串,其中也包括空格字符,故應(yīng)該選擇C。
7.C解析:賦值的一般形式為:變量名:表達(dá)式;,賦值的方向?yàn)橛捎蚁蜃螅磳ⅲ河覀?cè)表達(dá)式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計(jì)算再賦值。選項(xiàng)A中運(yùn)算符%的運(yùn)算對象必須為整數(shù),而選項(xiàng)A中26.8不為整數(shù),故選項(xiàng)A不正確;選項(xiàng)B將一個(gè)變量賦值給一個(gè)常量,這在C語言中是不允許的,故選項(xiàng)B不正確;選項(xiàng)D中也是將一個(gè)常量3賦值給一個(gè)常量,故選項(xiàng)D不正確;所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
8.C數(shù)據(jù)字典(DD)是指對數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個(gè)元素做出詳細(xì)的說明。
9.C解析:此題考查了指針引用一維數(shù)組元素的方法。*p+9因?yàn)檫\(yùn)算符'*'的優(yōu)先級(jí)高于'+',所以輸出結(jié)果為p指向的元素1,然后加9,值為10。
10.B
11.A
12.BB【解析】只有B選項(xiàng)369可以用無符號(hào)整數(shù)來表示和存儲(chǔ)。A選項(xiàng)一369有負(fù)號(hào),選項(xiàng)C0.369是小數(shù)都不能用無符號(hào)整數(shù)類存儲(chǔ)。選項(xiàng)D是一個(gè)整數(shù)集合得用數(shù)組來存儲(chǔ)。
13.C
14.B
15.B邏輯與運(yùn)算兩邊運(yùn)算對象的值都為真時(shí),結(jié)果才為真。所以需要m能被5和7整除都余1。故本題答案為B選項(xiàng)。
16.C
17.A本題考查簡單的賦值運(yùn)算,在程序中c=(a-=am5),先算括號(hào)中的a-=a-5=5,所以c=5,再計(jì)算(a=b,b+=4);,a=b=0,b+=4=0+4=4,所以b=4,所以a=0,b=4,c=5,答案選擇A。
18.A解析:本題考查帶參數(shù)的宏定義,參數(shù)只是簡單的替換而不是求出其值后再替換形式參數(shù)。本題中用a++替換X,用b++替換Y,再求(a++)*(b++)的值,即3*4的值,其結(jié)果為12。
19.D在C程序中,可以用字符數(shù)組存放一個(gè)字符串,然后輸出該字符串,也可以用字符指針指向一個(gè)字符串。
題目中用字符數(shù)組a[]來存放字符串'Itismine',a為數(shù)組名,表示首元素的地址,即字母I的地址。a+1表示數(shù)組中第二個(gè)元素t的地址,選項(xiàng)A正確。當(dāng)用字符串指針指向字符串時(shí),只是將字符串的第一個(gè)元素的地址賦給指針,當(dāng)該指針指向其他字符串時(shí),只需將該字符串的第一個(gè)元素地址賦給這個(gè)指針即可,和字符串的長度沒有關(guān)系,選項(xiàng)B也是正確的。指針變量的值為元素的地址,和元素具體的值沒有關(guān)系,當(dāng)指針指向不同的元素時(shí),存放的地址也會(huì)發(fā)生改變,故選項(xiàng)C是正確的。數(shù)組a初始化時(shí)沒有指定數(shù)組長度,系統(tǒng)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長度,題目中只是將10個(gè)有效字符存放到數(shù)組中,不能說明這個(gè)數(shù)組只能存放10個(gè)字符。
20.B
21.55解析:a++的含義是在使用a值以后,使a值加1,所以a++的值為5。
22.*t*t解析:函數(shù)中首先讓n=strlen(s),所以while循環(huán)的循環(huán)條件表達(dá)式中*(s+n)指向字符串s的結(jié)束標(biāo)志'\\0'處,而該處應(yīng)該等于字符串t的第1個(gè)字符,另外循環(huán)體中讓s和t指向下一個(gè)字符,即s+n和t同時(shí)被移動(dòng)到下一個(gè)位置,所以該處應(yīng)該填*t,即t所指內(nèi)容。當(dāng)t指向字符串結(jié)束標(biāo)志'\\0'的時(shí)候,整個(gè)循環(huán)條件表達(dá)式的值也為0(“假”)了,循環(huán)結(jié)束。正好滿足將t所指字符串復(fù)制到s所指的字符串的尾部。
23.概要概要
24.p=p+7或p+=7p=p+7或p+=7解析:本題考查通過指針引用數(shù)組元素。值為36的數(shù)組元素在a數(shù)組中是第8個(gè)元素,即a[7]。在程序中,p=a;語句將數(shù)組a的首地址賦給了指針變量p,則可以用*(p+i)來表示數(shù)組元素,*(p+i)與a[i]等價(jià),a[7]可表示為*(p+7)。要使指針p指向a[7],可以用p=p+7移動(dòng)指針,故填寫p=p+7或p+=7。
25.252H252H解析:要解答本題,首先要明白在對指針進(jìn)行加,減運(yùn)算時(shí),數(shù)字“1”不是十進(jìn)制數(shù)的“1”,而是指“1”個(gè)存儲(chǔ)單元長度。1個(gè)存儲(chǔ)單元長度占存儲(chǔ)空間的多少,應(yīng)該視具體情況而定,如果存儲(chǔ)單元的基類型是血型,則移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移2個(gè)字節(jié);如果存儲(chǔ)單元基類型是float型,則移動(dòng)1個(gè)存儲(chǔ)單元的長度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址為:200H+(13*4)H=252H。
26.12341234解析:在%與格式符之間插入一個(gè)整形數(shù)來指這輸出寬度,并不影響數(shù)據(jù)的完整性,當(dāng)插入的寬度小于實(shí)際的寬度時(shí),則實(shí)際的寬度輸出。
27.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數(shù)在主函數(shù)之后定義,就要對其進(jìn)行說明,說明的形式為:“函數(shù)類型名函數(shù)名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個(gè)數(shù),所以每輸入一個(gè)字符,變量m的值就加1。所以此處填寫m++。
28.關(guān)系關(guān)系解析:在關(guān)系數(shù)據(jù)庫中,用關(guān)系也就是二維表來表示實(shí)體之間的聯(lián)系。
29.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說明這個(gè)字符是一個(gè)單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫的是返回的單詞的個(gè)數(shù),即num。
30.str[i++]32。str[i++]32。解析:while語句的循環(huán)控制條件既要將相應(yīng)元素賦予從鍵盤輸入的字符,又要改變元素的下標(biāo)值,以便接受下一個(gè)字符,可用下標(biāo)變量的后置加實(shí)現(xiàn);小寫字母的ASCII碼值比相對應(yīng)的大寫形式大32。
31.structnode*
32.類類解析:將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同操作性質(zhì)的對象的集合,是已經(jīng)定義了的關(guān)于對象的特征、外觀和行為的模板。所以類是對象的抽象,它描述了屬于該對象類型的所有對象的性質(zhì),而一個(gè)對象則是其劃應(yīng)類的一個(gè)實(shí)例。
33.br[i]
34.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒有特別說明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。
35.19
36.可重用性繼承的優(yōu)點(diǎn):相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
37.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
38.11解析:首先計(jì)算if語句后面的表達(dá)式,根據(jù)運(yùn)算符的優(yōu)先級(jí)可知,先算“a!=0”,該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的printf語句,輸出的值為1。
39.k=p;k=p;解析:為尋找數(shù)組中最大元素的下標(biāo),需先預(yù)設(shè)1個(gè)臨時(shí)最大元素的下標(biāo),并順序逐一考查數(shù)組的元素,當(dāng)發(fā)現(xiàn)當(dāng)前元素比臨時(shí)最大元素更大時(shí),就用當(dāng)前元素的下標(biāo)更新臨時(shí)最大元素下標(biāo)。直至考查了數(shù)組的全部元素后,這臨時(shí)最大元素下標(biāo)就是數(shù)組的最大元素下標(biāo)。通常預(yù)設(shè)的最大元素下標(biāo)是數(shù)組的首元素下標(biāo),考查通常從首元素開始順序向后繼元素考查。程序中,存儲(chǔ)臨時(shí)最大元素下標(biāo)的變量是k,變量p控制順序考查的循環(huán)控制變量。當(dāng)發(fā)現(xiàn)當(dāng)前元素s[p]比臨時(shí)最大元素s[k]更大時(shí),應(yīng)該用p更新k,所以在空框處應(yīng)填入代碼'k=p;'。
40.bcdefghabcdefgha解析:while循環(huán)的功能把字符從第二個(gè)元素開始左移一位,并將原第一個(gè)元素賦給最后一個(gè)元素。
41.D解析:根據(jù)給定的數(shù)據(jù)輸入格式:123<空格>456<空格>789<回車>,第一個(gè)scanf語句中,格式字符為“%c”,只能得到一個(gè)字符\'1\',第二個(gè)scanf語句中格式字符為“%d”,變量i得到的數(shù)值為23,第三個(gè)scanf語句中格式字符為“%s”,遇到空格就自動(dòng)結(jié)束,因此字符數(shù)組s得到的是'456\\0'。因而正確答案為選項(xiàng)D。
42.D解析:函數(shù)scanf的地址列表應(yīng)由變量的地址組成。選項(xiàng)A中雖然&p也為地址,但它是指針變量p的地址,該地址的存儲(chǔ)單元中只能存放地址值,不能存放整型數(shù)據(jù)。選項(xiàng)B中*p相當(dāng)于變量n,所以不能正確讀入數(shù)據(jù);選項(xiàng)C不正確,因?yàn)閚為變量名;選項(xiàng)D中p為指針變量,并且值為變量n的地址,所以選項(xiàng)D能夠正確讀入數(shù)據(jù)。D為所選。
43.C解析:選項(xiàng)A)中,abs本身就是求絕對值的函數(shù),所以是正確的;選項(xiàng)B)是把|x-y|<10表示成了數(shù)學(xué)表達(dá)式中的-10<(x-y)><10,然后再用C語言規(guī)則表示出來的;選項(xiàng)D)相當(dāng)于把|x-y|<10兩邊同時(shí)平方,此處表達(dá)也是正確的;而選項(xiàng)C)中!(x-y)<-10相當(dāng)于(x-y)>=-10,!(y-x)>10相當(dāng)于(x-y)>=-10,故選項(xiàng)C)相當(dāng)于(x-y)>=-10,所以錯(cuò)誤。
44.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計(jì)出表,所以屬于邏輯設(shè)計(jì)階段。
45.D
46.C解析:函數(shù)strcmp(字符串1,字符串2)作用是將“字符串1”和“字符串2”進(jìn)行比較,如果“字符串1”>“字符串2”,返回一個(gè)人于0的整數(shù)值;如果“字符串1”<“字符串2”,返回一個(gè)小于0的整數(shù)值;如果“字符串1”=“字符串2”,返回0。
函數(shù)strcpy(字符串?dāng)?shù)組名,字符串,[整型表達(dá)式])的作用是將“字符串”的前“整型表達(dá)式”個(gè)字符存入到指定的“字符數(shù)組”中,若省略“整型表達(dá)式”,則將整個(gè)“字符串”存入“字符數(shù)組”中。
函數(shù)f()的功能是利用選擇法把一個(gè)具有n行的二維數(shù)組中按行存放的n個(gè)字符串由大到小排序。在主函數(shù)中定義了一個(gè)二維字符數(shù)組p并給它按行賦初值,然后調(diào)用f()函數(shù),把它按行從大到小排列。字符串比較大小的標(biāo)準(zhǔn)是從第一個(gè)字符開始依次向右比較,遇到某一個(gè)字符大,該字符所在的字符串就是較大的字符串。由此可知最大的字符串為“dcdbe”,排序后存放在第一行,其首地址為p[0],在輸出語句輸出的p[0]指向的字符串長度是5。
47.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個(gè)字符串,然后將指針變量p加3,即使其指向字符串的第四個(gè)元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個(gè)十進(jìn)制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復(fù)制到目的地址中,這種復(fù)制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復(fù)制到目的地址字符串的后面。
strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個(gè)數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個(gè)數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結(jié)果是4。因此本題正確的答案是C。
48.B本題考查邏輯與運(yùn)算符“&&”的使用。對于邏輯與運(yùn)算符&&來說,對象的結(jié)合方式為從左往右,只有&&左邊的值為真,才繼續(xù)右邊的運(yùn)算。題目中&&左邊的表達(dá)式為m=a>b,“>”運(yùn)算符優(yōu)先級(jí)高于“=”,故先判斷a>b,因?yàn)閍=1,b=2,所以a>b為假,于是m=0。“&&”左邊的值為假,所以不進(jìn)行右邊的運(yùn)算。n的值沒有發(fā)生改變,n=2。
49.A解析:首先將八進(jìn)制040轉(zhuǎn)換成二進(jìn)制數(shù)000100000,在將此二進(jìn)制數(shù)左移一位為001000000,輸出時(shí)轉(zhuǎn)換成八進(jìn)制數(shù)100。
50.D
51.C解析:scanf()把用戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實(shí)型變量b,把第6、7、8、9位存入單精度實(shí)型變量c,用戶錄入的第10位被scanf()遺棄。這時(shí)變量a、b、c的值分別為:98、765.000000、4321.000000。
52.A算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。
53.D解析:C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。本題要求輸出aa[0]的值,結(jié)果應(yīng)為1。
54.C解析:本題考查if語句.當(dāng)執(zhí)行到第一個(gè)滿足(i*i>=20)&&(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過break語句跳出循環(huán),執(zhí)行下列的printf語句。
55.B解析:本題考查循環(huán)語句的嵌套以及條件的判斷問題。在程序中,內(nèi)層循環(huán)判斷條件為“j<=i”,而j的初值為3,故當(dāng)i的值為1和2時(shí),內(nèi)層循環(huán)體都不會(huì)被執(zhí)行。只有當(dāng)i和j都等于3時(shí)才會(huì)執(zhí)行一次。m的值為55對3取模,計(jì)算結(jié)果為1。
56.C解析:首先檢查if與else的配對,然后再分析各分支實(shí)現(xiàn)的功能。選項(xiàng)A描述的意思是:在x>=0情況下,則y為1,否則,在x=0時(shí),y為0,剩下的x<0時(shí),y為-1,滿足本題中函數(shù)的要求;選項(xiàng)B描述的意思時(shí):初始化y的值為0,在x>0時(shí),給y重新賦值為1,否則,在x<0時(shí),給y重新賦值為-1,滿足本題中函數(shù)的要求;選項(xiàng)C描述的意思是:在x>=0情況下,如果x>0,則y為1,否則即“x==0”時(shí),y為-1;剩下的x<0時(shí),y為0??梢姶鸢窩實(shí)現(xiàn)的結(jié)果不是給定的表達(dá)式。選項(xiàng)D中描述的意思是:在x>=0的情況下,如果x>=0,就給y賦值為1,否則就給y賦值為0,在不是x>=0的其他情況下,就給y賦值為-1,滿足本題中函數(shù)的要求。
57.A解析:軟件工程的第一個(gè)階段是軟件分析階段。軟件分析階段的工作是由軟件分析員和用戶一起來做的。軟件分析的結(jié)果是分析人員寫出的分析報(bào)告,該分析報(bào)告實(shí)際上就是軟件系統(tǒng)的系統(tǒng)總體設(shè)計(jì)方案。
58.D
59.D解析:*p=x的作用是將x的首地址賦給指針變量p。選項(xiàng)A)正確,*(P++)中括號(hào)內(nèi)的++是在P的后面,所以它先取*P的值x[0],再執(zhí)行p++;選項(xiàng)B)正確,p+i表示x[i]的地址,*(p+i)表示x[i]的值;選項(xiàng)C)中的*和++處于同一優(yōu)先級(jí)別,而結(jié)合方向?yàn)樽杂叶螅虼?p++相當(dāng)于*(p++),與選項(xiàng)A)相同;選項(xiàng)D)中的(*p)++是使*p的值+1,即x[0]的值加1,它不能實(shí)現(xiàn)指針的移動(dòng),每次循環(huán)只是x[0]的值在改變,而P的值并沒有改變,所以不能實(shí)現(xiàn)6個(gè)元素的輸出。
60.C棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表:本題答案為C)。
61.B本題考查的是指針作為函數(shù)的參數(shù)和函數(shù)的調(diào)用。題目中定義了一個(gè)指針變量作為函數(shù)f的形參。主函數(shù)main中調(diào)用f函數(shù),當(dāng)i=0時(shí),執(zhí)行語句(*q)++,此處*q代表的就是數(shù)組元素a[O]的值,即將1進(jìn)行加1操作;當(dāng)i=1時(shí),q仍指向數(shù)組元素a[0]的地址,因?yàn)樵诤瘮?shù)f中并未對指針變量q作任何變動(dòng),也即*q仍代表了數(shù)組元素a[0]的值,所以此次(*q)++即2+1,所以a[O]的值變?yōu)?;……直到i=4時(shí),執(zhí)行(*q)++(即5+1)后a[0]的值變?yōu)?。所以最后的輸出結(jié)果為:6,2,3,4…5
62.Afor(i=0;i<3;i++)
for(j=2;j>=i;j--)
if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
此段程序的作用是將數(shù)組x[0]~x[3]中的數(shù)由大到小進(jìn)行排列,運(yùn)行此段程序后,x[]中的值變?yōu)閤[]={7,5,3,1,2,4,6,0}
for(i=0;i<3;i++)
for(j=4;j<7-i;j++)
if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}
此段程序的作用是將數(shù)組x[4]~x[7]中的數(shù)由小到大進(jìn)行排列,運(yùn)行此段程序后,x[]中的值變?yōu)閤[]={7,5,3,1,0,2,4,6},最后通過一個(gè)循環(huán)將X[]中的數(shù)依次輸出。
63.B
64.D
65.C
66.C函數(shù)f的功能是利用冒泡排序方法,將二維字符數(shù)組的前n行進(jìn)行遞增排序。
注意,本題目排序時(shí)整個(gè)字符串都交換。數(shù)組P排序后的結(jié)果為
67.D
68.A
69.Cc語言中函數(shù)參數(shù)傳遞滿足”單向傳遞”,只由實(shí)參傳給形參,而不能由形參傳給實(shí)參。Fun函數(shù)體內(nèi)輸出P的值為2,而并沒有影響到fun函數(shù)外a的值,a的值在main函數(shù)體內(nèi)依然為1,所以選項(xiàng)c)正確。
70.D
71.C軟件工程這個(gè)概念正式出現(xiàn)在1968年NATO軟件工程會(huì)議上。
自20世紀(jì)40年代計(jì)算機(jī)問世以來,如何編制符合要求的程序一直是人們追求的目標(biāo)。并且,隨著計(jì)算機(jī)應(yīng)用領(lǐng)域的擴(kuò)大,人們對軟件的需求量劇
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新時(shí)代健康校園文化的建設(shè)與學(xué)生身心健康發(fā)展研究報(bào)告
- 2025拍賣師聘用合同書
- 衡陽2025年度試用期薪資發(fā)放與員工職業(yè)發(fā)展合同3篇
- 2025年度婁底市物流倉儲(chǔ)場地租賃合同范本4篇
- 二零二五版環(huán)保型辦公室租賃合同3篇
- 2025-2030年中國魚肝油行業(yè)競爭格局及前景規(guī)模預(yù)測報(bào)告
- 2025-2030年中國質(zhì)量檢驗(yàn)檢測市場發(fā)展前景調(diào)研與投資策略分析報(bào)告
- 2025-2030年中國船用舾裝件市場十三五規(guī)劃與發(fā)展前景分析報(bào)告
- 2025-2030年中國紙品文具行業(yè)發(fā)展現(xiàn)狀與投資前景趨勢分析報(bào)告
- 2025-2030年中國紫甘藍(lán)色素市場發(fā)展前景調(diào)研及投資戰(zhàn)略分析報(bào)告
- 增強(qiáng)現(xiàn)實(shí)技術(shù)在藝術(shù)教育中的應(yīng)用
- TD/T 1060-2021 自然資源分等定級(jí)通則(正式版)
- 《創(chuàng)傷失血性休克中國急診專家共識(shí)(2023)》解讀
- 倉庫智能化建設(shè)方案
- 海外市場開拓計(jì)劃
- 2024年度國家社會(huì)科學(xué)基金項(xiàng)目課題指南
- 供應(yīng)鏈組織架構(gòu)與職能設(shè)置
- 幼兒數(shù)學(xué)益智圖形連線題100題(含完整答案)
- 七上-動(dòng)點(diǎn)、動(dòng)角問題12道好題-解析
- 2024年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
- 紅色歷史研學(xué)旅行課程設(shè)計(jì)
評論
0/150
提交評論