版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年河南省濮陽市全國計算機等級考試C語言程序設計重點匯總測試卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列給字符數(shù)組初始化中,()是正確的。
A.chars2[3]="xyz";
B.chars1[]="abcd";
C.chars3[][3]={'a','x','y'};
D.chars4[2][3]={"xyz","mnp"};
2.以下不完整的程序擬實現(xiàn)調用getmax函數(shù),找出4個變量中最大的一個:#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下選項若填入下劃線處,不能實現(xiàn)上述功能的是()。
A.getmax(getmax(getmax(a,b),c),d)
B.getmax(getmax(a,b),getmax(c,d))
C.getmax(a,getmax(b,getmax(c,d)))
D.mx=(getmax(a,b),getmax(c,d))
3.以下選項中,合法的一組C語言數(shù)值常量是()。
A.12.0Xa234.5e0
B.028.5e-3-0xf
C..1774e1.50abc
D.0x8A10,0003.e5
4.能在O(1)時間內訪問線性表的第i個元素的結構是()
A.順序表B.單鏈表C.單向循環(huán)鏈表D.雙向鏈表
5.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序運行后的輸出結果是()。
A.4B.3C.2D.1
6.有以下定義:structperson{charname[10];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};能輸出字母M的語句是()。
A.printf(“%c\n”,class[2].name[0]);
B.printf(“%c\n”,class[3].name[0]);
C.printf(“%c\n”,class[3].name[1]);
D.printf(“%c\n”,class[2].name[1]);
7.有如下程序:
longfib(intn)
{if(n>2)return(fib(n-1)+fib(n-2));
elsereturn(2);
}
main()
{printf("%d\n",fib(3));}
該程序的輸出結果是A.A.2B.4C.6D.8
8.設有宏定義:#defineIsDIV(k,n)((k%n==1)?1:0)且變量m已正確定義并賦值,則宏調用:IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是A.判斷m是否能被5或者7整除
B.判斷m是否能被5和7整除
C.判斷m被5或者7整除是否余1
D.判斷m被5和7整除是否都余1
9.有以下程序:#include<stdi0.h>#include<string.h>structA{inta;charb[10];doubleC;);voidf(structAt);main(){structAa={"1001,"ZhangDa",l098,0};f(a);printf("%d,%S,%6.1f\n",a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}程序運行后的輸出結果是()。A.1001,ZhangDa,1098.0
B.1002,ChangRong,1202.0
C.1001,ChangRong,1098.0
D.1002,ZhangDa,1202.0
10.定義int*swap()指的是______。
A.一個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函數(shù)swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
11.已有定義int(*q)(),指針q可以()。
A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型
12.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序運行后的輸出結果是()。
A.1B.2C.4D.死循環(huán)
13.
A.A.2A3N4E5OB.1H213U4EC.1A2N3U4OD.1A2N3E4O
14.下列關于return語句的敘述中正確的是()。
A.—個自定義函數(shù)中必須有一條return語句
B.—個自定義函數(shù)中可以根據(jù)不同情況設置多條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處
15.用單鏈表方式存儲的線性表,存儲每個結點需要兩個域,一個數(shù)據(jù)域,另一個是()。
A.當前結點的所在地址B.后繼結點的所在地址C.空指針域D.空閑域
16.若f(n)=3n2+2n+1,則f(n)=()。
A.O(n2)B.O(n)C.O(2n)D.O(3n2)
17.設有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
18.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
19.
20.
二、2.填空題(20題)21.執(zhí)行下面程序段時輸出suet,請?zhí)羁铡?/p>
main()
{staticchara[]="student";
char*p;
for(p=a;p<【】;p+=2)
putchar(*p);
}
22.排序是計算機程序設計中的一種重要操作,常見的排序方法有插入排序、______和選擇排序。
23.以下程序輸出的最后一個值是【】。
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<5;i++)printf("%d\n",ff(i));}
24.在關系數(shù)據(jù)庫中,將數(shù)據(jù)表示成二維表,每一個二維表稱為______。
25.順序存儲方法是把邏輯上相鄰的結點存儲在物理位置______的存儲單元中。
26.下列程序的運行結果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
27.在運算過程中,能夠使空表與非空表的運算統(tǒng)一的結構是【】。
28.有以下語句段
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>
n1=10
n2=20
29.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。
30.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個數(shù)。插入后數(shù)組中的個數(shù)仍然有序。請?zhí)羁眨怪暾?/p>
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
31.下面程序的功能是:計算1~10之間的奇數(shù)之和與偶數(shù)之和,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶數(shù)之和=%d\n",a);
printf("奇數(shù)之和=%d\n",c-11);}
32.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結果是______。
#definePI3.14159;printf("PI=%f",PI);
33.下面程序把從終端讀入的10個整數(shù)以二進制方式寫入一個名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
34.以下程序的輸出結果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
35.語句:x++;++x;x=1+x;執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句______。
36.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
37.以下程序的輸出結果是【】。
main()
{char*p=“abodefgh”,*r;
long*q;
q=(long*)p;
q++;
r=(char*)q;
printf(“%s\n”,r);
}
38.以下程序運行后的輸出結果是______。
#include<string.h>
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
39.以下程序的輸出結果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
40.面向對象的模型中,最基本概念是對象和【】。
三、1.選擇題(20題)41.設有程序段:intk=12:while(k=1)k=k-1:則下列描述中正確的是()。
A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次
42.設有如下函數(shù)定義,則輸出結果為_______。char*fun(char*str){char*p=str;while(*p){if(*p>'d')continue;p++;}returnp;}main(){printf("%s\n",fun("welcome!"));}
A.welcomeB.come!C.wD.程序進入死循環(huán)
43.若i、j已定義為int型,則以下程序段中內循環(huán)的總的執(zhí)行次數(shù)是()for(i=5;i>0;i--)for(j=0;j<4;j++){…}
A.20B.24C.25D.30
44.設有如下的函數(shù)funct(x)floatx;{x*=x;printf("\n%d",x);return(x);}則函數(shù)的類型()
A.與參數(shù)x的類型相同B.voidC.intD.無法確定
45.若有如下語句:intx=3;do{printf("%d\n",x-=2);}wbile(!(--x));則上面程序段()。
A.輸出的是1B.輸出的是1和-2C.輸出的是3和0D.是死循環(huán)
46.下列表達式中,可以正確表示的關系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
47.請選出可用作C語言用戶標識符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
48.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;while(i<7);printf("%d\n",s);}執(zhí)行后輸出的結果是
A.16B.12C.28D.21
49.在軟件測試設計中,軟件測試的主要目的是()
A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.發(fā)現(xiàn)軟件錯誤而執(zhí)行程序
50.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}經編譯連接后生成的可執(zhí)行文件是ex.exe,若運行時輸入以下帶參數(shù)的命令行exabcdefgh3k44執(zhí)行后輸出結果是
A.14B.12C.8D.6
51.對于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運行時依次輸入abcd、abba和abc三個字符串,則輸出結果為______。
A.abcdB.abbaC.abcD.abca
52.在以下一組運算中,優(yōu)先級最高的運符算是()
A.<=B.=C.%D.&&
53.有以下程序
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);printf("%s,%s\n",ss,aa);
}
程序的運行結果是
A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
54.以下說法正確的是()。
A.宏定義是C語句,要在行末加分號
B.可以使用#undefine提前結束宏名的使用
C.在進行宏定義時,宏定義不能嵌套
D.雙引號中出現(xiàn)的宏名也要進行替換
55.下列程序的輸出結果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
56.數(shù)據(jù)的完整性是指數(shù)據(jù)的正確性、有效性和______。
A.可維護性B.獨立性C.安全性D.相容性
57.若有如下程序:main(){intx=3,y=4,z;z=(x+(y-=X*X));printf("%d,%d\n",y,z);}則程序執(zhí)行后的輸出結果是()。
A.-4,2B.-5,-2C.-5,-1D.4,-2
58.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上3種說法都不對
59.具有3個結點的二叉樹有
A.2種形態(tài)B.4種形態(tài)C.7種形態(tài)D.5種形態(tài)
60.以下程序的輸出結果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
四、選擇題(20題)61.有以下程序:
A.xyyxB.yyyyC.yyxxD.yxyx
62.
有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結果是()。
A.xyyxB.yyyyC.yyxxD.yxyx
63.
64.有以下程序:
intfun()
{staticints=0;
s+=1;
returns;
}
main(intargc,char*argv[])
{intn,i=0;
while(argv[1][i]!=’\0’)
{n=fun();i++;}
printf("%d\n",n*argc);
}
假設程序經編譯、鏈接后生成可執(zhí)行文件exam.exe,若鍵入以下命令:exam123<回車>,則運行結果為()。
A.6B.8C.3D.4
65.
66.有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",(++p)[i]);
}
程序運行后的輸出結果是()。
A.012B.135C.234D.345
67.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序運行后輸出的結果是
A.5B.6
C.7D.8
68.有以下程序:
程序運行后的輸出結果是()。
69.若有定義語句:intX=10;,則表達式x-=x+x的值為()。
A.0B.-20C.-10D.10
70.
71.
s1和s2已正確定義并分別指向兩個字符串。若要求:當s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
72.
有以下程序:
main
{inta[]=(2,4,6,8,10},y=0,x,*P;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n,y");
}
程序運行后的輸出結果是()。
A.10B.11C.14D.15
73.在一個C源程序文件中所定義的全局變量,其作用域為()。
A.由具體定義位置和extem說明來決定范圍B.所在程序的全部范圍C.所在函數(shù)的全部范圍D.所在文件的全部范圍
74.假定已建立以下鏈表結構,且指針p和q已指向如圖所示的結點:
75.
76.
77.有以下程序
#include<stdio.h>
main()
{unsignedchara;
a=4^6;
printf("%d,\n",a);
}
程序的運行結果是
A.4,B.2,
C.2D.4
78.設有如圖所示二叉樹,對此二叉樹后序遍歷的結果為()。
A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY
79.在軟件工程中,白箱測試法可用于測試程序的內部結構。此方法將程序只看做是
A.路徑的集合B.循環(huán)的集合C.目標的集合D.地址的集合
80.
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:用冒泡法對6個字符串進行升序排列。請改正程序中的錯誤,使它能得出正確的結果。
注意:部分源程序在文件MODIl.C中,不得增行或刪行,也不得更改程序的結構!
六、程序設計題(1題)82.某學生的記錄由學號、8門課程成績和平均分組成,學號和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù),其功能是:求出該學生的平均分,并放入記錄的ave成員中。
例如,學生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應為78.875。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun部位中填入你編寫的若干語句。
試題程序:
#include<stdio.h>
#defineN8
typedefstruct
{
charnum[10];
doubles[N];
doubleave;
}STREC;
voldfun(STREC*a)
{
}
voidmain
STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
inti;
fun(&s);
printf("The%ssstudentdata:\n",s.num);
for(i=0;i<N;i++)
printf("%4.1fkn",s.s[i]);
printf("\nknave=%7.3fkn",s.aVe);
printf("\n");
}
參考答案
1.A
2.Dgetmax函數(shù)接收兩個整型變量x、y,使用條件運算符返回x和y中的較大值。main函數(shù)首先輸入a、b、c、d4個整數(shù)值,然后通過調用getmax函數(shù),輸出它們的最大值。假設x、y是整數(shù),選項A中,首先執(zhí)行“getmax(a,b)”,返回a、b中的較大值X,再執(zhí)行“getmax(x,c)”,返回x、c中的較大值y,最后執(zhí)行“getmax(y,d)”,返回y、d中的較大值,滿足題意,正確;選項B中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行“getmax(x,y)”,返回x、y中的較大值,正確;選項C中,首先執(zhí)行“getmax(c,d)”,返回c、d的較大值X,再執(zhí)行“getmax(b,x)”,返回b、x中的較大值y,最后執(zhí)行“getmax(a,y)”,返回a、y中的較大值,正確;選項D中,首先執(zhí)行“getmax(a,b)”,返回a、b的較大值X,再執(zhí)行“getmax(c,d)”,返回c、d中的較大值y,最后執(zhí)行逗號表達式“(x,y)”,返回值為7,不滿足題意。故本題答案為D選項。
3.AC語言中,八進制整型常量以0開頭,十六進制整型常量以0x或0X開頭。C語言中的實型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。小數(shù)形式,表示的實型常量必須要有小數(shù)點;指數(shù)形式,在e或E后加一個整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項中“028”不合法,八進制中沒有數(shù)字8。C選項中,e后面的指數(shù)不是整數(shù)。D選項中“10,000”數(shù)字之間不能有逗號。故本題答案為A選項。
4.A
5.B解析:通過分析不難寫出,f()函數(shù)的數(shù)學表達式為:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函數(shù)中for循環(huán)執(zhí)行了兩次函數(shù)調用f(i)。第一次:i為1,調用f(1)得到返回值1,并把它加到j中,j的值為1。第二次i為2,調用f(n),根據(jù)遞歸公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值為3。所以最后輸出,i的值為3。
6.AC語言規(guī)定數(shù)組的下標從0開始,結構體數(shù)組class初始化了前4個元素。第3個元素的name=“Marry”,則class[2].name[0]=‘M’。故本題答案為A選項。
7.B
8.D
9.A將結構變量作為形參,通過函數(shù)間形參與實參相結合的方式將整個結構傳遞給函數(shù),這種傳遞方式是值傳遞。在被調用函數(shù)中,對結構形參變量值進行的任何修改都不會影啊到調凋函數(shù)中的結構變量。
10.B解析:一個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個返回整型指針的函數(shù)。
11.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。
12.A“--k”是先自減再使用,所以第1次判斷條件即while(4),條件為真輸出k的值,k=4-3,結果為1;第2次判斷條件即while(0),條件為假,結束循環(huán),輸出回車換行符。故本題答案為A選項。
13.A本題主要考查結構體數(shù)組。x[i]num是結構體x[i]中的num成員,x[1].name[2]是結構體x[i1中1"lame成員的第3個元素。第一次循環(huán),i-1,輸出x[1].num,x[1].name[2]的值,即2A;第二次循環(huán),i=2,輸出x[2].num,x[2].name[2]的值,即3N;第三次循環(huán),i=3,輸出x[3】.num,x[3].name[2]的值,即4E;第四次循環(huán),i=4,輸出x[4].num,x[4].name[2]的值,即50。
14.B在函數(shù)中允許有多個return語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值,A選項描述錯誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調用處,D選項描述錯誤。故本題答案為B選項。
15.B
16.A
17.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。
18.AA?!窘馕觥緾語言是函數(shù)式的語言。它的基本組成單位是函數(shù),在C語言中任何程序都是由一個或者多個函數(shù)組成的。
19.D
20.D
21.a+strlen(a)或strlen(a)+aa+strlen(a)或strlen(a)+a解析:要輸出suet就要將指針從字符串開始移動到字符串結尾,表達式p=a使p指向字符串的首地址;表達式p+=2使每次循環(huán)p值加2,是向前移動指針;空白處應判斷是否到達字符串結尾,因此應填字符串的首地址加字符串長度,strlen(a)的返回值為字符串a所含的字符個數(shù)。
22.交換排序交換排序解析:所謂排序是指將一個無序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
23.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內分配存儲單元。在程序整個運行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦被值的,即只賦被值一次,在程序運行時它已有被值。以后每次調用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調用結束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦被值)
④雖然靜態(tài)局部變量在函數(shù)調用結束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。
24.關系或關系表關系或關系表解析:在關系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關系.表中的每一列稱為一個屬性,相當于記錄中的一個數(shù)據(jù)項,對屬性的命名稱為屬性名,表中的一行稱為一個元組,相當于記錄值。
25.相鄰相鄰
26.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項的和賦值給數(shù)組當前元素,得到a的值應為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。
27.循環(huán)鏈表循環(huán)鏈表解析:在鏈表的運算過程中,采用鏈接方式即循環(huán)鏈表的結構把空表與非空表的運算統(tǒng)一起來。循環(huán)鏈表具有兩個特點:①在循環(huán)鏈表中增加了一個表頭結點,其數(shù)據(jù)域為任意或根據(jù)需要來設置,指針域指向線性表的第一個元素的結點。循環(huán)鏈表的頭指針指向表頭結點。②循環(huán)鏈表中最后一個結點的指針不是空,而是指向表頭結點。
28.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函數(shù)有兩種參數(shù):格式控制參數(shù)和輸出項參數(shù),其中格式控制參數(shù)由兩種成分組成:格式說明和普通字符,普通字符將被簡單地復制顯示,格式說明項將引起一個輸出參數(shù)項的轉換與顯示,它是由“%”引出并以一個類型描述符結束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數(shù),所以格式說明項為%d,也可以在%與d之間加上域寬,另外還要在每行輸出結束時加轉義字符\\n進行換行。所以,應填寫n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。
29.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。
30.++pw[i-1]
31.b=i+1b=i+1解析:本題考查了for循環(huán)語句的執(zhí)行過程。i+=2是修正表達式,執(zhí)行一次循環(huán)體后i的值就增加2,i的初始值為0,每次加2之后和累加至a,所以a的值就是1~10之間的偶數(shù)之后;b的值是1~11之間的奇數(shù)和,但在輸出b值時c去掉多加的11,即為1~10之間的奇數(shù)之和。
32.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。
33."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);
34.3535解析:考查swap()函數(shù)。函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結果為35。
35.x+=1x+=1解析:本題考查“++”,“--”運算符。“++”、“--”只能作用于變量,不能用于表達式或常量;前綴形式是在使用變量之前先將其值增1或減1,后綴形式是先使用變量原來的值,使用完后再使其增1或減1。
36.參照完整性參照完整性
37.efghefgh解析:本題定義了一個字符型指針變量p并通過賦初值讓它指向了一個字符串,定義了另一個字符型指針變量r和一個長整型指針變量q。首先通過語句“q=(long*)p;”把P的地址值強制轉換為長整型地址值并賦值給q,然后執(zhí)行“q++;”,地址值增加了4,執(zhí)行語句“r=(char*)q;”,把長整型指針變量q的值再強制轉換成字符型地址值并賦給r,r的值應為字符串中字符“e”的地址,最后輸出,指向的字符中,是“efgh”。
38.abcbcc
39.852852解析:循環(huán)前,變量y的值為9,其中,循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值都減1。循環(huán)體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經兩次循環(huán)后,y的值變成0,結束循環(huán),所以程序輸出852。
40.類類解析:面向對象模型中,最基本的概念是對象和類。對象是現(xiàn)實世界中實體的模型化:將屬性集和方法集相同的所有對象組合在一起,可以構成一個類。
41.C本題考查while,while循環(huán)表達式k-1是個賦值表達式而不是邏輯表達式,k的初值為l2不符合循環(huán)條件,所以循環(huán)體語句一次也不執(zhí)行。
42.D解析:continue語句的作用是用于結束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判定。由于'w'>'d',執(zhí)行continue語句,結束本次循環(huán)(即跳過p++;語句),還是繼續(xù)比較'w'>'d',程序進入死循環(huán)。
43.A
44.C
45.B解析:do-while語句的一般格式為:
do{循環(huán)體語句}while(表達式);
先執(zhí)行循環(huán)體語句一次,再判斷表達式的值,若值為真,則繼續(xù)執(zhí)行循環(huán),否則終止循環(huán)。本題中,先執(zhí)行printf('%d\\n',x-=2),值為x=x-2,即為1。然后判斷表達式的值,!(--x)為真,x=0,繼續(xù)循環(huán)。再次執(zhí)行循環(huán)體語句后,x=-2,此時表達式!(--x)的值為0,結束循環(huán)。
46.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關系,所以在寫成C語言表達式應是邏輯或的關系,邏輯或運算符是'‖'。
47.B解析:C語言規(guī)定用戶標識符由字母、數(shù)字和下畫線組成,且第一個字符必須是字母或下畫線,可見選項C),D)是錯誤的;此外,C語言不允許用戶將關鍵字作為標識符,而選項A)中的void正是C語言的關鍵字。
48.A解析:在循環(huán)體中有一條if語句,其后面表達式為“i%2”,當i的值為奇數(shù)時,其值為真,執(zhí)行其后面的語句,i的值加1,重新開始循環(huán),當i的值為偶數(shù)時,“i%2”為假,執(zhí)行“i++;s+1”。在循環(huán)中i為偶數(shù)時的值分別為0、2、4、6,加1過后的值分別為1、3、5、7,s中存放的是它們的和,值為16.所以,A選項為所選。
49.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
50.D解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入的參數(shù)的個數(shù);第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為5,argv[0]指向字符串“ex”,argv[1]指向參數(shù)字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向參數(shù)字符串“h3”,argv[4]指向參數(shù)字符串“k44”。在main()函數(shù)中,for循環(huán)執(zhí)行了2次,當i=1時,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此時len的值為4;當i=3時,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此時len的值為6;當i=5時,退出循環(huán),故最后輸出的len的值為6。
51.B解析:本題自定義函數(shù)scmp()的作用是比較字符串s1和s2的大小,如果s1<s2,函數(shù)返回s1的值,否則返回s2的值。若運行時依次輸入abcd、abba和abc三個字符串,執(zhí)行strcpy(string,scmp(str[0],str[1]));后,string的值為abba,再執(zhí)行strcpy(string,scmp(string,str[2]));,由于scmp(stringstr[2])返回string的值abba,再拷貝到字符串數(shù)組string中,所以本題輸出abba。
52.C
53.D解析:本題中fun函數(shù)實現(xiàn)丁字符串函數(shù)str-eat的功能,將字符串aa連接到字符串ss的末尾。調用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結束符的位置,第二個while循環(huán)將字符串aa中的字符(包括結束符'\\0')逐個復制到字符串ss的末尾處。
54.B解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標識符字符串,行末不加分號;②雙引號中出現(xiàn)的宏名不替換;③如果提前結束宏名的使用,程序中可以使用#ndefine;④在進行宏定義時,宏定義能層層置換,能夠嵌套。
55.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)條件的判定。當能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結尾,進行i++,判斷循環(huán)條件。
56.D解析:數(shù)據(jù)模型應該反映和規(guī)定本數(shù)據(jù)模型必須遵守的、基本的、通用的完整性約束條件。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)及其狀態(tài)的變化,以保證數(shù)據(jù)的正確性、有效性和相容性。
57.B解析:因為x的初始值為3,所以x*x=9,而y的初始值為4,所以y-=9后,y為-5,z=(x+(y-=x*x))=3+(-5)=-2。故程序執(zhí)行后的輸出結果是-5,-2,選項B正確。
58.B解析:數(shù)據(jù)庫系統(tǒng)除了數(shù)據(jù)庫管理軟件之外,還必須有其他相關軟件的支持。這些軟件包括操作系統(tǒng)、編譯系統(tǒng)、應用軟件開發(fā)工具等,選項A的說法是錯誤的。數(shù)據(jù)庫具有為各種用戶所共享的特點,選項B的說法是正確的。通常將引入數(shù)據(jù)庫技術的計算機系統(tǒng)稱為數(shù)據(jù)庫系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)通常由5個部分組成,包括相關計算機的硬件、數(shù)據(jù)庫集合、數(shù)據(jù)庫管理系統(tǒng)、相關軟件和人員。因此,選項C的說法是錯誤的。
59.D解析:因為二叉樹有左、右子樹之分,所以有3個結點的二叉樹具有5種不同的形態(tài)。
60.B解析:第1個循環(huán)對數(shù)組a進行賦值:第2個循環(huán)對數(shù)組p進行賦值;第3個循環(huán)對k進行累加,k的初值等于5,第1次循環(huán),k=k+p[0]*2=5+0*2=5,第2次循環(huán),k=k+p[1]*2=5+2*2=9,第3次循環(huán),k=k+p[2]*2=9+6*2=21并輸出。
61.B本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=1,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結束循環(huán)。所以選項B正確。
62.C
\n本題考查do-while語句和if…else語句。do-while語句的功能是先執(zhí)行循環(huán)體再判斷條件,所以,先判斷if語句的條件,y=-4,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將x的值減1,x=3,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將X的值減1,x=2,滿足while循環(huán)條件,繼續(xù)循環(huán)。第三次循環(huán):先判斷if語句的條件,y=2,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出y,然后將X的值減1,x=l,滿足while循環(huán)條件,繼續(xù)循環(huán)。第四次循環(huán):先判斷if語句的條件,y=-1,!y為邏輯0,條件不成立,執(zhí)行下面的else語句,輸出Y,然后將x的值減1,x=0,不滿足while循環(huán)條件,結束循環(huán)。所以B正確。
\n
63.D
64.A靜態(tài)變量的使用;
intmain(intargc,char*argv[])
argc是命令行總的參數(shù)個數(shù)
argv[]是argc個參數(shù),其中第0個參數(shù)是程序的全名,以后的參數(shù)命令行后面跟的用戶輸入的參數(shù),char*argv[]是一個字符數(shù)組,其大小是intargc,主要用于命令行參數(shù)argv[]參數(shù),數(shù)組里每個元素代表一個參數(shù);
65.A
66.B第一個for循環(huán)的結果是p[9]={0,1,2,3,4,,5,6,7,8},第二個for循環(huán):i=0,++p,使得p指向了1,所以輸出的結果是1,然后i++,i=1,++p,p指向了3……
67.B本題中,程序首先定義一個結構體,該結構體定義了四個整型變量。在主函數(shù)中,首先定義了一個該結構體的大小為2的結構體數(shù)組,并給該數(shù)組進行了初始化,從初始化語句我們可以看出,初始化時缺少了一個結構體成員的值,在這種情況下,系統(tǒng)會自動為缺省的成員補0,本題中就是給結構體成員變量b賦初值為0。
然后定義了一個整型變量t,接著運行t=s[0].a+s[1].b;語句,即t=1+5=6。因此,程序的最后輸出結果為6,本題正確答案選B。
68.A外循環(huán)第一次i的值為1,內循環(huán)第一次j的初值為l,打印1*1=1;內循環(huán)第二次j的值為2,打印1$2=2;內循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內循環(huán)。外循環(huán)第二次i的值為2,內循環(huán)第一次j的初值為2,打印2*2=4;內循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內循環(huán)。外循環(huán)第三次i的值為3,內循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內循環(huán)。
69.C算術運算符+的優(yōu)先級高于-=.且-=的結合方向為自右向左,所以表達式x-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中歷史教學中歷史思維方法與批判性思維培養(yǎng)課題報告教學研究課題報告
- 人工智能賦能下的跨學科教學知識整合與遷移策略創(chuàng)新研究教學研究課題報告
- 兒科護理安全管理
- 護理護理職業(yè)健康與安全
- 延髓梗死患者的氣管切開護理
- 山東高速集團有限公司2025年下半年校園招聘備考題庫含答案詳解
- 2026年太原城市職業(yè)技術學院單招職業(yè)適應性測試模擬測試卷必考題
- 岳陽市中心醫(yī)院2026年度人員招聘備考題庫及答案詳解1套
- 峨眉山旅游股份有限公司2026年公開招聘專業(yè)人才備考題庫含答案詳解
- 企業(yè)內部控制制度建立與執(zhí)行手冊
- 水電站壓力管道課件
- 2023農業(yè)執(zhí)法大比武復習試題附答案
- 鐵總建設201857號 中國鐵路總公司 關于做好高速鐵路開通達標評定工作的通知
- 孟州市浩軒塑業(yè)有限公司年產200噸塑料包裝袋項目環(huán)評報告
- 衛(wèi)生院消防安全演練方案篇
- 酒精體積分數(shù)質量分數(shù)密度對照表優(yōu)質資料
- 電焊機操作JSA分析表
- 落地式鋼管腳手架工程搭拆施工方案
- 辦公室節(jié)能減排措施
- 養(yǎng)老院健康檔案模板
- 數(shù)字信號處理課程實驗教學大綱
評論
0/150
提交評論