版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年黑龍江省大慶市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序運行后的輸出結果是()。
A.1,2,3,1,5,9,
B.1,3,5,1,3,5,
C.1,3,5,0,d,8,
D.1,3,5,-1,3,7,
2.對兩個數(shù)組a和b進行下列初始化:charm[]1="l234567":charn[]={1,2,3,4,5,6,7);則下列敘述正確的是()。A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串
3.二叉樹中第5層上的結點個數(shù)最多為________
A.8B.15C.16D.32
4.計算機算法必須具備輸入、輸出和()等5個特性。
A.可行性、可移植性和可擴充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性
5.有以下程序:#include<stdio.h>main(){inta[3][3]={0,1,2,3,4,5,6,7,8},(*p)[3],i;p=a;for(i=0;i<3;i++){printf(“%d”,(*p)[i]);p++;}}程序的運行結果是()。
A.036B.012C.048D.147
6.數(shù)據(jù)庫管理系統(tǒng)中負責數(shù)據(jù)模式定義的語言是()。A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
7.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字堪的表達式是()。
A.isupper(c)B.A<=c<=ZC.A<=c&&c<=ZD.c<=(z-32)&&(a-32)<=c
8.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序運行后的輸出結果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
9.下列敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應實參的值
D.當程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值
10.有如下程序:
main
{inta=2,b=-1.c=2;
if(a<b)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
該程序的輸出結果是()。A.A.0B.1C.2D.3
11.下列敘述中正確的是()。
A.一個邏輯數(shù)據(jù)結構只能有一種存儲結構
B.邏輯結構屬于線性結構,存儲結構屬于非線性結構
C.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存諸結構不影響數(shù)據(jù)處理的效率
D.一個邏輯數(shù)據(jù)結構可以有多種存儲結構,且各種存諸結構影響數(shù)據(jù)處理的效率
12.在執(zhí)行inta[][3]={{1,2},{3,4}};語句后,a[1][2]的值是()
A.2B.4C.3D.0
13.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是
A.INPUTx、v、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
14.若有如下函數(shù)定義:doublefun(intx,inty){return(x+y);}return語句中表達式值的類型與說明的類型不一致,則以下敘述中正確的是()。
A.運行時出錯B.函數(shù)返回的值為int型C.編譯出錯D.函數(shù)返回的值為double型
15.
16.軟件詳細設計生產(chǎn)的圖如右圖:該圖是()。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
17.
18.以下關于順序存儲結構的敘述中,()是不正確的。
A.存儲密度大
B.邏輯上相鄰的結點物理上不必鄰接
C.可以通過計算機直接確定第i個結點的存儲地址
D.插入、刪除運算操作不方便
19.下列數(shù)據(jù)結構中,能夠按照“先進后出”原則存取數(shù)據(jù)的是()。
A.循環(huán)隊列B.棧C.隊列D.二叉樹
20.設變量已正確定義,則以下能正確計算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:
B.F=1:for(i=1;i<2n;i++)f*=i:
C.f=1:for(i=n;i>1;i++)f*=i:
D.f=1;for(i=n;i>=2;i--)f*=i:
二、2.填空題(20題)21.以下程序運行后的輸出結果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
22.以下程序的功能是輸入任意整數(shù)給n后,輸出n行從大寫字母A開始構成的三角形字符陣列圖形。例如,輸入整數(shù)5時(注意:n不得大于10),程序運行結果如下:
ABCDE
FCHI
JKL
MN
O
請?zhí)羁胀瓿稍摮绦颉?/p>
#include<stdio.h>
main()
inti.j,n;charch='A';
scanf("%d",&n);
if(n<11)
for(i=1;i<=n;i++)
for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
【】;
}
【】;
}
elseprintf("nistoolarge!\n");
prinff("\n");
}
23.以下程序的輸出結果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
24.以下程序用來輸出結構體變量ex所占存儲單元的字節(jié)數(shù),請?zhí)羁铡?/p>
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));}
25.以下程序運行后的輸出結果是【】。
main()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9);
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
26.以下程序運行后的輸出結果是______。
main()
{inta[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0,j=0,s=0;
while(i++<4)
{if(i==2||i==4)continue;
j=0;
do{s+=a[i][j];j++;}while(j<4);
}
printf("%d\n",s);
}
27.數(shù)據(jù)模型按不同的應用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
28.軟件測試分為白箱(盒)測試和黑箱(盒)測試?;韭窂綔y試方法屬于()測試。
29.已知字符'A'的ASCII代碼值為65,以下程序運行時若從鍵盤輸入:B33<回車>,則輸出結果是【】。
#include<stdio.h>
main()
{chara,b;
a=getchar();seanf("%d",&b);
a=a-'A'+'0';b=b*2;
prinff("%c%c\n",a,b);
}
30.與結構化需求分析方法相對應的是【】方法。
31.以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標并存放在k所指的存儲單元中。請?zhí)羁铡?/p>
#include<conio.h>
#include<stdio.h>
intfun(int*s,intt,int*k)
{inti;
*k=0;
【】
if(s[*k]<s[i])*k=i;
return【】;}
main()
{inta[10]={876,675,896,101,301,401,980,431,451,777},k;
fun(a,10,&k);
printf("%d,%d\n",k,a[k]);}
32.設x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達式______。
33.以下程序運行后的輸出結果是【】。
voidfun(intx,inty)
{x=x+y;Y=x-y;x=x-y;
printf(“%d,%d”,x,y);}
main()
{intx=2,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
}
34.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END)fl+ftell(myf);
fclose(myf);
printf("%ld\n",fl);
35.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。
36.下列程序的運行結果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==O‖x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
37.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。
38.以下程序運行后的輸出結果是【】。
main()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
39.不改變關系表中的屬性個數(shù)但能減少元組個數(shù)的是()。
40.設在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型,請寫出fun函數(shù)的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
三、1.選擇題(20題)41.以下程序的輸出結果是______。main(){charch[3][4]={"123","456","78"},*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}
A.123456780B.123456780C.12345678D.147
42.以下程序的輸出結果是()main(){inti,x[3][3]={l,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2-i]);}
A.1,5,9B.1,4,7C.3,5,7D.3,6,9
43.有以下程序:#definef(x)x*xmain(){inti;i=f(4+4)/f(2+2);printf("%d\n",i);}執(zhí)行后輸出結果是
A.28B.22C.16D.4
44.以下程序運行后,輸出結果為______。main(){inta[2][3]={1,3,5,7,9,11},*s[2],**pp,*p;s[0]=a[0],s[1]=a[1];pp=s;p=(int*)malloc(sizeof(int));**pp=s[1][1];p=*pp;printf("%d\n",*p);}
A.1B.7C.9D.11
45.以下不正確的轉義字符是()。
A.'\\'B.'\d'C.'\s'D.'088'
46.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];則b中的值是()。
A.5B.6C.8D.9
47.下列程序的輸出結果是()。
#include<stdio.h>
#defineF(x)2.84+x
#definew(y)printf("%d",(int(y))
#defineP(y)w(y)pmchar('\n'》
main()
{intx=2;
P(F(5)*x);
}
A.12B.13C.14D.16
48.有下列程序段:typedefstructNODE{intnum;structNODE*next;}OLD;下列敘述中正確的是()。
A.以上的說明形式非法B.NODE是一個結構體類型C.OLD是一個結構體類型D.OLD是一個結構體變量
49.當下面的程序運行后,變量c的值為______。main(){inta=45,b=27,c=0;c=max(a,b);}intmax(x,y)intx,y;{intz;if(x>y)z=x;elsez=y;return(z);}
A.45B.27C.0D.72
50.有以下程序:#include<string.h>main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}程序運行后的輸出結果是()。
A.9B.6C.11D.7
51.當輸入為“quert?”時,下面程序的執(zhí)行結果是()#indude<stdio.h>main(){charc;c=getehar();while((c=getchar())!='?')putchar(++c);}
A.QuertB.vfsuC.quert?D.rvfsu?
52.下列敘述中正確的是A.C語言中既有邏輯類型也有集合類型
B.C語言中沒有邏輯類型但有集合類型
C.C語言中有邏輯類型但沒有集合類型
D.C語言中既沒有邏輯類型也沒有集合類型
53.數(shù)據(jù)流圖用于抽象地描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
54.如果進棧序列為e1,e2,e3,e4,則可能的出棧序列是()
A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意順序
55.設變量已正確定義并賦值,以下正確的表達式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
56.以下程序運行后的輸出結果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
57.以下敘述正確的是
A.continue語句的作用是結束整個循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用goto語句
58.數(shù)據(jù)庫管理系統(tǒng)提供給用戶的接口是()
A.過程化語言B.數(shù)據(jù)庫語言C.宿主語言D.面向?qū)ο笳Z言
59.下面程序段的運行結果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;pfintf("%d\n",*(p+3));}
A.67B.0C.字符'C'的地址D.字符'C'
60.若有說明語句"inta;floatb;”,以下輸入語句正確的是()
A.scanf("%f%f",&a,&b);
B.scanf("%f%d",&a;&b);
C.scanf("%d,%f",&a,&b);
D.scanf("%6.2f%6.2f",&a,&b);
四、選擇題(20題)61.
62.能正確表示“當x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。A.A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)B.(x>=1)
C.((x>=1)&&(x<=10))||((x>=100)&&(x<=110))
D.(x>=1)||(x<=10)&&(x>=100)||(x<=110)
63.有以下程序:
程序的運行結果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
64.
65.下列語句中,正確地執(zhí)行當i等于5時執(zhí)行一些語句的條件語句是()。
A.if(i==5)B.ifi=5thenC.ifi=5D.ifi==5then
66.下列敘述中正確的是()。
A.軟件測試應該由程序開發(fā)者來完成
B.程序經(jīng)調(diào)試后一般不需要測試
C.軟件維護只包括對程序代碼的維護
D.以上三種說法都不對
67.下面關于完全二叉樹的敘述中,錯誤的是______。A.A.除了最后一層外,每一層上的結點數(shù)均達到最大值
B.可能缺少若干個左右葉子結點
C.完全二叉樹一般不是滿二叉樹
D.具有結點的完全二叉樹的深度為[log2n]+1
68.有以下程序程序執(zhí)行后的輸出結果是()。
A.y=一1B.y=oC.y=1D.while構成無限循環(huán)
69.有以下程序程序運托舌的輸出結果是()。
A.1,2B.1,0C.3,2D.0,0
70.
71.
72.
73.下面的函數(shù)調(diào)用語句中func函數(shù)的實參個數(shù)是
func(f2(A1,A2),(A3,A4,A5),(A6,max(A7,A8)));
A.3B.4C.5D.8
74.設有如下關系表:
則下列操作中,正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
75.以下敘述中錯誤的是()。
A.gets函數(shù)用于從終端讀人字符串
B.getehar函數(shù)用于從磁盤文件讀人字符
C.fputs函數(shù)用于把字符串輸出到文件
D.fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
76.設x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
77.在數(shù)據(jù)管理技術發(fā)展的三個階段中,數(shù)據(jù)共享最好的是()。
A.人工管理階段B.文件系統(tǒng)階段C.數(shù)據(jù)庫系統(tǒng)階段D.三個階段相同
78.下述程序用來輸出兩個字符串前7個字符中對應相等的字符及其位置號,則程序空白上應該填寫的是()。
#include<stdio.h>
main
{chars1[]="chinese",s2[]="japanese";
inti;
for(i=0;s1[i]='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]&&i<7)
_____________;
}A.A.putchar(s2[i]);putchar(i)
B.puts(s1[i],i)
C.printf("%c%d\n",s2[i],i)
D.printf("%C",s1[]);printf("%d\n",i)
79.有以下程序程序運行后的輸出結果是()。
A.abc28B.28cC.abcD.因類型不一致而出錯
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是計算正整數(shù)m各位上數(shù)字的平方和。例如,輸入498,則輸出應該是161。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm){//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum);}voidmain{longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n));}六、程序設計題(1題)82.請編寫函數(shù)proc,其功能是將兩個兩位數(shù)的正整數(shù)a、b合并形成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)個位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和千位上。例如,當a=25,b=43,實際輸入時個數(shù)之間以Enter鍵分隔,調(diào)用該函數(shù)后,c=3452。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.Dmain函數(shù)中,fun(fun(t))嵌套調(diào)用fun函數(shù)。第一次調(diào)用為fun(1),調(diào)用后,a[3]={1,3,5},輸出1,3,5,返回a[1]=3。第二次調(diào)用為fun(3),調(diào)用后,a[3]={一1,3,7},輸出一l,3,7。
2.C在m數(shù)組中賦值的是字符串,其長度為7,末尾有結束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。
3.C
4.B
5.Cmain函數(shù)定義3行3列的整型二維數(shù)組a;定義數(shù)組指針P,P指向包含3個元素的數(shù)組。程序首先將a賦給p。for循環(huán)中,i=0時,P指向a的第1個元素{0,1,2},輸出p[0]即0;i=1時,p指向a的第2個元素{3,4,5},輸出P[1]即4;i=2時,p指向a的第3個元素{6,7,8},輸出P[2]即8。所以程序輸出048。故本題答案為C選項。
6.AA。數(shù)據(jù)定義語言(DDL)是集中負責數(shù)據(jù)庫模式定義與數(shù)據(jù)庫對象定義的語言。數(shù)據(jù)操縱語言(DML)是指用來查詢、添加、修改和刪除數(shù)據(jù)庫中數(shù)的語句。數(shù)據(jù)控制語言(DCL)是用來設置或者更改數(shù)據(jù)為用戶或角色權限的語句。據(jù)此,本題正確答案為選項A。
7.B選項B先計算關系表達式“A<=c”的值是0還是l,再比較該值與字符z之間的大小關系,不能實現(xiàn)題目所要求的功能。
8.A本題考查了函數(shù)的調(diào)用。首先主函數(shù)定義了兩個字符型數(shù)據(jù)b和a,給b賦值為字母a.a(chǎn)賦值為字母A,調(diào)用fun(&.b,a)函數(shù),*C=*c十1,a的ASCIl碼值加1后為b,A的ASCIl碼值加1后為B。輸出第一組值,排除C、D選項。B選項的值此時為小b,排除B選項,所以本題答案為A。
9.A不能將一個整數(shù)直接賦給指針變量作為地址值,A選項錯誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會傳遞給實參。故本題答案為A選項。
10.Celse與離它最近的if構成if…else語句,而當a為2時,第一個if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項。
11.D數(shù)據(jù)的存儲結構是指數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式,一種數(shù)據(jù)結構可以根據(jù)需要采用不同的存儲結構,用的存儲結構有順序和鏈式結構。用不同的存儲結構,其處理的效率是不同的。
12.D
13.B解析:scanf函數(shù)的一般格式是:
scanf(格式控制,地址表列)
該格式中,地址表列中應是變量地址,而不是變量名。注意:調(diào)用putchar和getchar函輸出和輸入字符。
14.D題干中“x+y”是整型,函數(shù)的返回值是double類型,由于整型可以自動轉換成double類型,因此函數(shù)值返回時自動轉換成double類型。故本題答案為D選項。
15.C
16.CN—s圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細設計的圖形表示工具,所以8不對。E—R圖是數(shù)據(jù)庫中的用于表示E—R模型的圖示工具,所以D不對。根據(jù)圖中所示表示方法是進行軟件詳細設計時使用的程序流程圖。
17.B
18.B
19.BB?!窘馕觥吭跅V?,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照“先進后出”或“后進先出”的原則組織數(shù)據(jù)的。
20.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計算得到f=n!一0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項c不正確。在選項D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。
21.30253025解析:本題考核的知識點是變量的存儲屬性和算術運算的應用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進行的,auto是自動變量的存儲類別標識符,如果省略auto,系統(tǒng)隱含認為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術運算中a+=b++相當于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。
22.ch++或ch=ch+1或++chprintf("\n")或prinff("\015")ch++或ch=ch+1或++ch,\r\nprintf('\\n')或prinff('\\015')解析:程序中使用了兩層for循環(huán),外循環(huán)的作用是控制行數(shù),內(nèi)循環(huán)的作用是控制每行的列數(shù),在內(nèi)循環(huán)中首先輸出當前字符(從\'A\'開始),[6]中應填ch++,使ch中的字符變?yōu)橐敵龅南乱粋€字符。每輸出一行就需換一次行,所以[7]處應填pfintf('\\n')。
23.SOSO解析:考查用指針引用字符串數(shù)組中元素的方法。題中需要注意兩個問題:一是for循環(huán)的修正表達式共執(zhí)行兩次'i--'操作;二是*p[i]是對某個字符的引用。
24.structst或exstructst或ex解析:結構體類型數(shù)據(jù),其數(shù)據(jù)成員各自占據(jù)不同的存儲空間,整個結構體變量所占存儲單元的字節(jié)數(shù)為每一個數(shù)據(jù)成員所占的存儲空間的和。注意:共用體變量所占存儲單元字節(jié)數(shù)的計算。
25.123056009123\r\n056\r\n009解析:本題中,定義了一個元素類型為整型的二維數(shù)組a[][3]={1,2,3,4,5,6,7,8,9},它是一個3*3的矩陣,“for(i=0;i<3;i++)for(j=i=1;j<3;j++)a[j][i]=0;”將列下標i小于行下標j的元素a[1][0]、a[2][0]、a[2][1]賦值為0,最后“for(j=0;j<3;j++)printf('%n',a[i][j]);printf('\\n');”進行換行輸出,所以輸出結果為:
123
056
009
26.92
27.概念概念
28.自盒自盒解析:自盒測試法即結構測試,它與程序內(nèi)部結構相關,要利用程序結構的實現(xiàn)細節(jié)設計測試實例。白盒測試法主要有邏輯覆蓋、基本路徑測試等。
29.1B1B解析:本題輸入B33,字符'B'被輸入給字符變量a,33賦給b,執(zhí)行a=a-'A'+'0';得到a的值'1';執(zhí)行b=b*2;得到b值66,最后以字符型輸出為1B。
30.結構化設計結構化設計解析:與結構化需求分析方法相對應的是結構化設計方法。結構化設計就是采用最佳的可能方法設計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術。
31.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本題中直接使用指針變量k,但在使用時要注意對k的指針運算,此外,一開始應使*k的值為數(shù)組中的某一下標值,即*k=0。
32.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關系。
33.32233,2,2,3解析:主函數(shù)中首先定義了整型變量x和y,并分別給它們賦初值為2和3,接著調(diào)用fun()函數(shù),fun()函數(shù)把實參x和y的值傳給形式參數(shù)x和y,實參和形參不再有聯(lián)系。在fun()函數(shù)中,通過運算使x和y的值交換過來,所以fun()函數(shù)中的輸出結果是“3,2”。fun()函數(shù)調(diào)用返回輸出x和y依然是原來的x和y,為“2,3”。原因是變量作為形參傳值的,對形參的修改并不影響對應的實參。所以最后輸出為3,2,2,3。
34.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式');關閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp),其中fp為文件指針。
35.存儲或物理或存儲結構或物理結構存儲或物理或存儲結構或物理結構解析:數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用??芍h(huán)隊列應當是物理結構。
36.本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1=24。\r\n\r\n
37.33解析:本題考查的是C語言逗號表達式的相關知識。程序在計算逗號表達式時,從左到右計算由逗號分隔各表達式的值,整個逗號表達式的值等于其中最后一個表達式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
38.123056009123\r\n056\r\n009解析:數(shù)組a中元素的初值為:a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[12][0]=7、a[2][1]=8、a[2][2]=9。執(zhí)行第1個for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個for循環(huán)的功能是將數(shù)組元素按照3行3列的格式輸出。
39.選擇選擇解析:關系數(shù)據(jù)庫的專門關系運算包括選擇、投影和連接3種,其中選擇不改變關系表中的屬性個數(shù)但能減少元組個數(shù)。
40.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調(diào)用“不帶回值”,可以用“void”定義函數(shù)為“無類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當二維數(shù)組作為形參時,二維數(shù)組的第一維可以省略。
41.C解析:p是指針數(shù)組,通過第1個循環(huán)的賦值,p[0]、p[1]、p[2]分別指向二維數(shù)組ch的第1行、第2行、第3行,因此輸出字符串“12345678”。
42.C
43.A解析:本題考核的知識點是宏定義的簡單應用。本題中首先將所有的宏替換掉,則表達式為i=4+4*4+4/2+2*2+2,故最后輸出的i的值為28。所以,4個選項中選項A符合題意。
44.C解析:s是一個含有兩個元素的指針數(shù)組,pp是一個指向指針變量的指針,s[0]是指向二維數(shù)組a行下標為0的元素的首地址,即時a[0][0]的地址,s[1]為a[1][0]的地址。pp的值為s[0]的地址。**pp=s[1][1]后,a[0][0]的值將被賦值為a[1][1]的值,執(zhí)行p=*pp;后,p中將是s[0]的值,最后的輸出語句將輸出地址s[0]所指向的數(shù)據(jù),即a[0][0]。
45.D解析:'\\\\'是反斜線符,'\\d'是整型變量轉義字符,'\\s'是字符串型轉義字符,C語言中沒有規(guī)定'088'為轉義字符。
46.D解析:p為指向整型數(shù)據(jù)的指針變量,存放的是a[3]的地址,即p指向數(shù)組{4,5,6,7,8,9,10},b=p[5],因此,b中的值是9。
47.A解析:本題考查帶參數(shù)的宏的定義及相關運算。P(F(5)*x)=P(2.84+5*2)=P(12.84),調(diào)用w(12.84),輸出(int)(12.84)=12。
48.C解析:C語言允許用typedef說明一種新類型名,其一般形式為:typedef類型名標識符。typedef語句的作用僅僅是使“標識符”來代表已存在的“類型名”,并未產(chǎn)生新的數(shù)據(jù)類型。原有類型名依然有效。此題中,用使typedef定義了新的類型OLD結構,所以OLD為結構體類型。
49.A
50.B解析:本題首先定義了3個字符數(shù)組p、q、r并分別被初始化。數(shù)組p指定的大小為20,初始化列表為{\'a\',\'b\',\'c\',\'d\'},即只指定了前4個元素的內(nèi)容,根據(jù)C語言的規(guī)定,初始化列表不足時,其余元素均自動初始化為0。然后通過strcat()函數(shù),將字符串,連接到字符串p之后,即執(zhí)行后p中的內(nèi)容為'abcdabcde'。因為“strlen(q)”表示求字符串q的長度,很明顯為3,所以語句“strcpy(p+strlen(q),q);”的作用就是:將字符串q拷貝到數(shù)組p的第3個元素位置處。注意,strcpy函數(shù)拷貝字符串會將其結束標志位一起拷貝,故拷貝完后p中的內(nèi)容為”ababc\\0de',但通過strlen函數(shù)取p的長度碰到\'\\0\\即停止,故p中字符串的長度是6,應該選擇B。
51.B
52.D解析:在C語言中沒有邏輯類型,邏輯類型用整型來表示,故選項A和選項C不正確,C語言中沒有集合類型,故選項B不正確。所以,D選項為所選。
53.A解析:數(shù)據(jù)流圖包括四個方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體),不包括選項中的控制流。
54.B解析:由棧“后進先出”的特點可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中棧是先進后出的,所以不可能是任意順序。所以B是正確的。它執(zhí)行的順序是:e1進棧→e2進?!鷈2出?!鷈3進?!鷈4進棧→e4出?!鷈3出棧→e1出棧,所以只看出棧序列應為e2,e4,e3,e1。
55.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數(shù)據(jù),所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現(xiàn)相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。
56.C解析:靜態(tài)局部變量在編譯時賦初值,即只賦初值一次,在程序運行時它已有初值。以后每次調(diào)用時不再重新賦初值而只是保留上次函數(shù)調(diào)用結束時的值,而對自動變量賦初值,不是在編譯時進行的,而在函數(shù)調(diào)用時進行,每調(diào)用一次函數(shù)重新給一次初值,相當于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時,d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。
57.B
58.C
59.B解析:先定義了一個指向字符型數(shù)組str的指針P,指針P指向數(shù)組str的首地址,p+3將指針指向str[3]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨床醫(yī)生怎樣合理用血
- 2024民間車輛所有權轉讓及質(zhì)押借款合同3篇
- 啦啦操 說課稿-2023-2024學年高一上學期體育與健康人教版必修第一冊001
- 智能交通設備售后服務合同
- 教育機構合作辦學合同
- 農(nóng)副產(chǎn)品直供配送服務協(xié)議書
- 智能健身設備開發(fā)合同
- 搜索引擎優(yōu)化咨詢服務協(xié)議
- 智能倉儲管理系統(tǒng)合同
- 2025年魯人版九年級歷史上冊階段測試試卷
- 2023年黑龍江民族職業(yè)學院招聘工作人員筆試真題
- 以諾書-中英對照
- 卵巢黃體破裂的護理
- 供應鏈管理師(三級)認證備考試題及答案
- 自然科學基金項目申報書(模板)
- 中華詩詞之美學習通超星期末考試答案章節(jié)答案2024年
- 廣東高中學業(yè)水平測試考綱考點必背化學
- 2023年新高考北京卷化學高考真題(含解析)
- GB/T 44273-2024水力發(fā)電工程運行管理規(guī)范
- 羅定市2024屆小升初必考題數(shù)學檢測卷含解析
- 2024至2030年中國消費級無人機行業(yè)市場預測與投資規(guī)劃分析報告
評論
0/150
提交評論