![2021-2022年遼寧省葫蘆島市全國計算機等級考試C語言程序設計_第1頁](http://file4.renrendoc.com/view/97ac6df4b315d9689759d01df2cde1f4/97ac6df4b315d9689759d01df2cde1f41.gif)
![2021-2022年遼寧省葫蘆島市全國計算機等級考試C語言程序設計_第2頁](http://file4.renrendoc.com/view/97ac6df4b315d9689759d01df2cde1f4/97ac6df4b315d9689759d01df2cde1f42.gif)
![2021-2022年遼寧省葫蘆島市全國計算機等級考試C語言程序設計_第3頁](http://file4.renrendoc.com/view/97ac6df4b315d9689759d01df2cde1f4/97ac6df4b315d9689759d01df2cde1f43.gif)
![2021-2022年遼寧省葫蘆島市全國計算機等級考試C語言程序設計_第4頁](http://file4.renrendoc.com/view/97ac6df4b315d9689759d01df2cde1f4/97ac6df4b315d9689759d01df2cde1f44.gif)
![2021-2022年遼寧省葫蘆島市全國計算機等級考試C語言程序設計_第5頁](http://file4.renrendoc.com/view/97ac6df4b315d9689759d01df2cde1f4/97ac6df4b315d9689759d01df2cde1f45.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年遼寧省葫蘆島市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序的輸出結果是()main(){union{chari[2];intk;}r;r.i[0]=2,r.i[1]=0;printf("%d\n",r,k);}
A.2B.1C.0D.不確定
2.已知intt=0;while(t=1){…}則以下敘述正確的是()。
A.循環(huán)控制表達式的值為0B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式不合法D.以上說法都不對
3.要求當A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達式的值為“假”,以下不滿足要求的表達式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)
4.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
5.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯(lián)系是()。
A.1:m聯(lián)系B.m:n聯(lián)系C.1:1聯(lián)系D.m:1聯(lián)系
6.以下不能對二維數(shù)組a進行正確初始化的語句是()。A.inta[2][3]={0};
B.inta[2][3]={{1,2},{3,4},{5,6}};
C.inta[][3]={{1,2},{0}};
D.inta[][3]={1,2,3,4,5,6};
7.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
8.循環(huán)隊列存儲在數(shù)組A[0..m]中,則入隊時的操作為()。
A.rear=rear+1
B.rear=(rear+1)mod(m-1)
C.rear=(rear+1)modm
D.rear=(rear+1)mod(m+1)
9.
10.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
11.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。
A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10
12.設在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占()個字節(jié)。
A.1B.2C.8D.4
13.設有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
14.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串"ABCDE"賦給s1,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
15.下列語句中,說法正確的是______。
A.C程序書寫格式嚴格,每行只能寫一個語句
B.C程序書寫格式嚴格,每行必須有行號
C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號隔開
D.C程序書寫格式自由,一個語句可以分寫在多行
16.設數(shù)據(jù)結構A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},則數(shù)據(jù)結構A是()。
A.線性結構B.樹形結構C.圖狀結構D.集合
17.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。
A.文件開始B.文件末尾C.文件當前位置D.以上都不對
18.結構化程序所要求的基本結構不包括()。
A.順序結構B.GOT0跳轉C.選擇(分支)結構D.重復(循環(huán))結構
19.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a)printf("%dn",x);elseprint[("%d\n",y)
B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)
C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)
D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)
20.如有inta=11;則表達式(a++*1/3)的值是()。
A.0B.3C.4D.12
二、2.填空題(20題)21.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。
22.在兩種基本測試方法中,【】測試的原則之一是保證所測模塊中每一個獨立路徑至少要執(zhí)行一次。
23.定義長度為12的數(shù)組,下面四種方法中正確的有【】。
①intx[12];②intn=12;③constintn=12;④intx[]={1,2};
intx[n];intx[n];
24.以下程序的輸出結果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
26.若有以下定義和語句:
intw[10]={23,54,10,33,47,98,72,80,61},*p;
p=w;
則通過指針p引用值為98的數(shù)組元素的表達式是【】。
27.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。
28.若有如下結構體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁眨酝瓿蓪數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。
【】t[20]
29.以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構成三角形*/
elseprinff("NO\n");/*a.b.c不能構成三解形*/
}
30.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內(nèi)存空間中,形成一個新字符串s。請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
31.數(shù)據(jù)元素之間______的整體稱為邏輯結構。
32.設y是int型變量,請寫出y為奇數(shù)的關系表達式【】。
33.以下程序的運行結果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
34.下列語句的輸出結果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
35.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。
36.設函數(shù)findbig已定義為求3個數(shù)中的最大值。以下程序將利用函數(shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】;
seanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,2);
printf("big=%d\n",big);
}
37.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
38.以下程序運行后的輸出結果是【】。
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
39.以下程序運行后的輸出結果是【】。
main()
{intX=10,y=20,t=0;
if(X==y)t=x;x=y;y=t;
printf("%d,%d\n",x,y);
}
40.以下程序運行后的輸出結果是______。
main()
{intp=30;
printf{"%d\n",(p/3>0?p/10:p%3)};
}
三、1.選擇題(20題)41.設有定義:inca,*pa;&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是
A.scanf("%d",pA);
B.Scanf("%d",A);
C.SCaRf("%d",&p9);
D.scanf("%d",*pA);
42.軟件需求分析一般應確定的是用戶對軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
43.可以在C語言中用做用戶標識符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
44.C語言提供的預處理功能包括條件,其基本形式為:#×××標識符程序段1#else程序段2#endif這里的×××可以是()
A.define或include
B.ifdef或include
C.indef或ifndef或define
D.ifdef或ifndef或if
45.下面四個選項中,均是不合法的用戶標識符的選項是()。
A.AP_0doB.floatla0_AC.b-agotointD._123tempint
46.下列程序voidfunc1(inti);voidfunc2(inti)charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}執(zhí)行后的輸出結果是()
A.helloB.helC.hloD.hlrn
47.若t為double類型,表達式t=1,t+5,t++;的值是______。
A.1B.6C.2D.1
48.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");
A.9B.5C.6D.7
49.若有以下結構體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;
A.example.x=10
B.examplev2.x=10
C.structv2;v2.x=10
D.structexamplev2={10};
50.以下不能對二維數(shù)組a進行正確初始化的語句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
51.函數(shù)的值通過return語句返回,下面關于return語句的形式描述錯誤的是
A.return表達式;
B.return(表達式);
C.一個return語句可以返回多個函數(shù)值
D.一個return語句只能返回一個函數(shù)值
52.線性表的順序存儲結構和線性表的鏈式存儲結構分別是______。
A.順序存取的存儲結構、順序存取的存儲結構
B.隨機存取的存儲結構、順序存取的存儲結構
C.隨機存取的存儲結構、隨機存取的存儲結構
D.任意存取的存儲結構、任意存取的存儲結構
53.()是不正確的C語言賦值語句。
A.x=1,y=2B.x++C.x=y(tǒng)=5D.y=int(x);
54.設有以下語句
charx=3,y=6,z;
z=x^y<<2;
則z的二進制值是
A.00010100B.00011011C.00011100D.00011000
55.以下程序運行后,輸出結果是
#definePT5.5
#defineS(x)PT*x*x
#include<stdio.h>
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));}
A.49.5B.9.5C.22D.45
56.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()
A.需求分析B.詳細設計C.軟件設計D.概要設計
57.下面程序段的執(zhí)行結果是()。intx=10;for(;x;x--){if(x%3)continue;printf("%d",x);}
A.875421B.963C.741D.852
58.若要打開A盤上user了目錄下名為abc.txt的文本文件進行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是
A.fopen("A:\user\abc.txt",","r")
B.fopen("A:\\user\\abc.txt","r+")
C.fopen("A:\user\abc.txt","rb")
D.fopen("A:\\user\\abc.txt","w")
59.下列敘述中正確的是()。
A.一個算法的空間復雜度大,則其時間復雜度也必定大
B.一個算法的空間復雜度大,則其時間復雜度必定小
C.一個算法的時間復雜度大,則其空間復雜度必定小
D.上述三種說法都不對
60.下述程序向文件輸出的結果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%%5.0f%c%d",58,76273.0'-',2278);fclose(fp);}
A.5876273-2278
B.5876273.000000-2278
C.5876273-2278
D.因文件為二進制文件而不可讀
四、選擇題(20題)61.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
62.有下列程序:、
fun(intX,inty){return(x+y);)
main()
{inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的輸出結果是()。
A.6B.7C.8D.9
63.有以下結構體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的3個連續(xù)結點。structnode{
int
data;structnode
*next;
}*p,*q,*r;現(xiàn)要將這個鏈表構成一個環(huán),以下(
)操作是正確的。A.p->next=q->nextB.r->next=pC.p->next=rD.r->next=q->next->next
64.以下程序的輸出結果是()。
#definef(x)x*x
main
{inta=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A.9B.6C.36D.18
65.下面程序的運行結果是()。
A.gaeB.gaC.LanguageD.有語法錯
66.有以下程序:
程序運行后的輸出結果是()。
A.1127B.1212C.1111D.117
67.
68.下列程序段的輸出結果是()。
A.passwarnB.passerrorC.goodpasswarnD.pass
69.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是():
A.學生成績管理系統(tǒng)B.ERP系統(tǒng)C.辦公自動化系統(tǒng)D.UNIX系統(tǒng)
70.有如下程序
main()
{
inta=2,b=-1,c=2;
if(a<b)c=1;
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
該程序的輸出結果是
A.0B.1
C.2D.3
71.設有以下定義:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
則下列能夠正確表示數(shù)組元素a【1】【2】的表達式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
72.(48)軟件調(diào)試的目的是()
A.發(fā)現(xiàn)錯誤
B.改正錯誤
C.改善軟件的性能
D.挖掘軟件的潛能
73.層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復雜程度D.數(shù)據(jù)之間的聯(lián)系方式
74.
A.包含l個字符B.包含2個字符C.包含3個字符D.說明不合法,c的值不確定
75.下列數(shù)據(jù)模型中,具有堅實理論基礎的是()。A.層次模型B.網(wǎng)狀模型C.關系模型D.以上三個都是
76.已定義以下函數(shù):
fun(char*p2,char*p1)
{while((*p2=*p1)!=’\0’){p1++;p2++;}}
函數(shù)的功能是()。
A.將p1所指字符串復制到p2所指向內(nèi)存空間
B.將p1所指字符串的地址賦給指針p2
C.對p1和p2兩個指針所指字符串進行比較
D.檢查p1和p2兩個指針所指字符串中是否有’\0’
77.軟件的()設計又稱總體結構設計,其主要任務是建立軟件系統(tǒng)的總體結構。
A.概要B.抽象C.邏輯D.規(guī)劃
78.設有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
79.
80.以下選項中合法的表達式是()。
A.a(chǎn)=a+7=c+b
B.(3+x)++
C.3+x++
D.x+1=x+1
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個字符串連接起來,組成一個新串,放入pt所指字符串中,例如,把2個字符串a(chǎn)bc、CD串聯(lián)起來,結果是abcCD。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.編寫函數(shù)如n,其功能是:刪除一個字符串中指定下標的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n放指定的下標。例:輸入一個字符串“world”,然后輸入3,則調(diào)用該函數(shù)后的結果為“word”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)丘m的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.A解析:根據(jù)共用體的定義可知:共用體r的成員k和成員i[2]是共用同—段內(nèi)存空間,所以,當程序給r.i[0]賦值后,實際上,共用體成員k的值也確定了,為2。所以打印輸出的結果應當為2。
2.B解析:t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==1,注意“=”與“==”的用法。
3.D
4.B
\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。
\n
5.A部門到職員是一對多的,職員到部門是多對一的,因此,實體部門和職員間的聯(lián)系是l:m聯(lián)系。
6.B選項A中,將二維數(shù)組a的6個元素都賦值為0,正確;選項B中,由于a包含2個元素,每個元素都是包含3個元素的一維數(shù)組,初始化列表中包含3個元素,每個元素是包含2個元素的數(shù)組,錯誤;選項C中,a的每個元素是包含3個元素的一維數(shù)組,初始化列表將a[0]的3個元素初始化為1,2,0,將a[1]的3個元素初始化為0,0,0,正確;選項D中,將a[0]初始化為1,2,3,將a[1]初始化為4,5,6,正確。本題答案為B選項。
7.C解析:這是一個逗號表達式,它的值應為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉換的情況下,3/2的值為1,所以x+3/2的值應為2.0。
8.D
9.C
10.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤(注:數(shù)組元素下標從0開始);B中,*a+1指的是將數(shù)組a的第一個元素加1;選項C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
11.B不能將變量賦給表達式,故A、C選項錯誤。D選項中強制類型轉換表達式應寫成“(double)x/10”。故本題答案為B選項。
12.C
\n在C語言中各種數(shù)據(jù)類型在內(nèi)存中所占的字節(jié)數(shù)與機器的位數(shù)有關,16位機中(也就是在標準c中),若int類型數(shù)據(jù)占2個字節(jié),則float類型數(shù)據(jù)占4個字節(jié),double類型數(shù)據(jù)占8個字節(jié)。
\n
13.D解析:本題考核的知識點是在自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對d進行自加運算.故選項D是個不正確的語句,所以,4個選項中選項D符合題意。
14.C解析:數(shù)組名s1是代表s1數(shù)組首地址的地址常量,而不是變量,因為“=”左邊不能出現(xiàn)常量,因此sl='ABCDE'的方法是錯誤的。
15.D
16.A
17.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當前位置。
18.B1966年Boehm和Jacopini證明了程序設計語言僅僅使用順序、選擇和重復三種基本控制結構就足以表達出各種其他形式結構的程序設計方法。
19.D主要考查if判斷語句,A選項if(a),如果a為真,則輸出X,否則輸出Y。B選項if(a==0),如果a恒等于0,則輸出Y,否則輸出X。C選項a(!=o),如果a不等于0,則輸出X,否則輸出y。D選項if(a==0),如果a恒等于0,則輸出X,否則輸出y。由以上結論可知,輸出結果不同的為D選項。
20.B
21.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。
22.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本題考查軟件工程的測試。測試一般有兩種方法:黑盒測試和白盒測試。黑盒測試不考慮程序的內(nèi)部邏輯結構和處理過程,只著眼于程序的外部特性。用黑盒測試來發(fā)現(xiàn)程序中的錯誤,必須用所有可能的輸入數(shù)據(jù)來檢查程序能否都能產(chǎn)生正確的輸出。白盒測試是在了解程序內(nèi)部結構和處理過程的基礎上,對程序的所有路徑進行測試,檢查路徑是否都能按預定要求正確工作。因此,劃線處應填入“白盒(箱)”或“WhiteBox”。
23.①③
24.1313解析:函數(shù)fun是一個遞歸函數(shù)。執(zhí)行fun(3);,x=3,x/2=1>0,又調(diào)用f(1),此時,x=1,x/2=0,不滿足繼續(xù)遞歸調(diào)用的條件,輸出1,返回到fun(3)中,輸出3。所以本題的輸出結果為13。
25.調(diào)試調(diào)試
26.*(p+5)
27.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。
28.strudctSTRUstrudctSTRU解析:結構件類型是構造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結構體類型的定義:
struct結構體類型名
{
成員項表;
};
定義結構體變量的的形式為:
struct結構體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
29.(a+b>c)&&(a+c>b)&&(b+c>a)(a+b>c)&&(a+c>b)&&(b+c>a)解析:根據(jù)構成三角形的條件:兩邊之和大于第三邊,得出空格應該填(a+b>c)&&(a+c>b)&&(b+c>a)或與其等價的形式。
30.*t++*t++解析:要使sstrcpy函數(shù)實現(xiàn)字符串復制,必須將t字符串中的每個字符逐個復制到s字符串中,可以使用*s=*t;s++;t++,也可以寫成*s++=*t++,因此空格處填*t++。
31.邏輯關系邏輯關系
32.(y%2)==1或(y%2)!=0(y%2)==1或(y%2)!=0
33.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。
34.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。
35.buf的首地址buf的首地址解析:考查fsets()函數(shù)的功能,f8ets()函數(shù)用來從文件中讀入字符串。調(diào)用格式為:f8ets(buf,n,fp)。此處,fp是文件指針,buf是存放字符串的起始地址,n是一個int型變量。調(diào)用函數(shù)fsets()時,最多能讀入n-1個字符,系統(tǒng)自動在最后加字符串結束標志,并以buf作為函數(shù)值返回。
36.findbigfindbig解析:本題首先定義了一個指向函數(shù)的指針變量f,如果希望讓它指向某個函數(shù),只需把函數(shù)名賦給該指針變量即可。所以說本題的空格處應該填入函數(shù)名findbig。
37.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。
38.1371513715解析:本題中,定義了一個整型數(shù)組n并初始化,在for循環(huán)語句中,再對數(shù)組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數(shù)輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,使后一個數(shù)為前一個數(shù)的2倍加1。所以最后輸出為1、3、7、15。
39.20020,0解析:在主函數(shù)中首先定義了3個整型變量x、y、t,并分別給它們賦初值為10、20、0,接著執(zhí)行汀語句,在if后面括號內(nèi)的條件表達式中,條件x==y即10==20不成立,則不執(zhí)行其后的語句t=x,然后退出if語句,順序執(zhí)行語句x=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x、y的值為20和0。
40.33解析:本題考核的知識點是條件運算符的運用。三目運算表達式的規(guī)則為如果“?”前面表達式的值為真,則取“:”前的表達式的值,否則,取“:”后面表達式的值。又由于條件運算符的結合方向是自右向左的,所以在本試題中,先計算表達式中p%3,該值為0,在計算表達式P/10其值為3,最后計算表達式p/3該值為10.所以此表達式等價于“10?3:0”,顯然取“:”前的僵為3,所以最后輸出的值為3。
41.A解析:本題考核的知識點是scanf()函數(shù)和指針類型變量的簡單應用。scanf()函數(shù)的功能是進行輸入數(shù)據(jù),它是按格式參數(shù)的要求從終端上把數(shù)據(jù)傳送到地址參數(shù)所指定的內(nèi)存空間中,C語言允許程序員間接地使用內(nèi)存地址,這個地址是通過對變量名“求地址”運算得到的,求地址的運算符是&,得到的地址是一種符號地址.本題中定義了整型變量a和一個指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個存放a的地址的變量。選項B中應該將a改為&a,故選項B不正確:選項C應該將&pa改為pa,因為pa已經(jīng)表示存放a的地址,故選項C不正確;選項D中*pa表示的是指針pa所指向存儲空間的變量的值,而不是一個地址,故選項D不正確,所以,4個選項中選項A符合題意。
42.DD?!窘馕觥寇浖枨蠓治鲋行枰獦嬙煲粋€完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,使用戶明確自己的任務。因此,需求分析應確定用戶對軟件的功能需求和非功能需求。
43.B解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。另外還需要注意的是關鍵字不能作標識符。選項A中void,C中for都為關鍵字,D中2c以字母開頭。
44.D
45.C解析:C語言規(guī)定的標識符只能由字母、數(shù)字和下劃線3種字符組成,第一個字符必須為字母或下劃線,并且不能使用C語言中的關鍵字作為標識符。選項C)中goto和int是關鍵字,b-a中'-'不是組成標識符的3種字符之一;選項D)中int是關鍵字,所以,均是不合法用戶標識符的選項是C)。
46.C
47.D
48.C解析:本題中,格式符。表示的是八進制無符號形式輸出整型數(shù)(不帶前導0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。
49.D解析:在定義結構體變量時,不能只用結構體名example或關鍵字struct進行定義,必需要用結構缽類型名structexample定義,在引用結構體成員變量時,需要用結構體變量名進行引用,所以選D。
50.C解析:關于二維數(shù)組的初始化,我們需要掌握如下方法:①所賦初值個數(shù)與數(shù)組元素的個數(shù)相同;②所賦初值行數(shù)少于數(shù)組行數(shù)時,系統(tǒng)將自動給后面各行的元素補初值0;③在給二維數(shù)組賦初值時可以不用行花括號對。選項C)應該是inta[3][2]={{1,2},{3,4},{5,6,}};
51.C解析:return語句中的表達式的值就是所求的函數(shù)值,此表達式值的類型必須與函數(shù)首部所說明的類型一致。如果類型不一致,則以函數(shù)值的類型為準,由系統(tǒng)自動進行轉換。一個return語句只能返回一個值。
52.B【命題目的】考查有關線性表存儲結構的基本知識。
【解題要點】順序存儲結構中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結構,要對某結點進行存取,都得從鏈的頭指針指向的結點開始,這是一種順序存取的存儲結構。
【考點鏈接】順序存儲結構和鏈式存儲結構的定義和性質(zhì),兩種存儲結構的操作方法。
53.D
54.B本題主要考查位運算。“按位異或”運算(^)是雙目運算符,其功能是把參與運算的兩數(shù)各對應的二進制位相異或,它在操作時,兩對應位相同結果為0,不同則為1?!白笠啤边\算(<<)的功能是把“<<”左邊的運算數(shù)的各二進制位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。左移時,若左端移出的部分不包含有效二進制數(shù)1,則每左移一位,相當于移位對象乘以2。
本題中,有三個字符型的變量x,y,z,其中x和y的值分別為3和6。先轉換為二進制數(shù)分別為00000011和00000110。本題中需要注意的是邏輯左移運算符的優(yōu)先級比按位異或運算符的優(yōu)先級高,因此,先將y進行運算邏輯左移2位操作,得到的結果為00011000,然后進行按位異或運算,得到最后的結果是00011011。本題正確的答案選B。
55.A解析:考查宏替換的使用。宏替換用'#define宏名宏體'的形式來定義。在進行編譯預處理時,將把程序中宏定義之后的所有宏名用宏體替換。宏雖然可以帶參數(shù),但宏替換過程中不像函數(shù)那樣要進行參數(shù)值的計算、傳遞及結果返回等操作;宏替換只是簡單的字符替換,不進行計算,因而本題中的S(a+b)進行宏替換后為PT*1+2*1+2=5.5*1+2*1+2=9.5。
56.AA)【解析】軟件生命周期的主要活動階段為:可行性研究和計劃制定、需求分析、軟件設計、軟件實現(xiàn)、軟件測試、運行和維護。其中需求分析是對開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能,編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。
57.B解析:本題的for循環(huán)省略了第一個表達式,即for沒有任何初始化動作;第二個表達式x的意思是只要x非0,則循環(huán)繼續(xù);第三個表達式讓x在每次循環(huán)結束時減1。x初始為10,然后進入循環(huán)體,判斷x是否能被3整除,不能整除則執(zhí)行continue;語句進入下一次循環(huán),能整除則輸出x。故最終輸出的結果為從10遞減到1之中能被3整除的數(shù)9、6和3。所以正確答案是B。
58.B解析:由于“\\”是轉義字符,所以在文件名中的“\”用“\\\\”來表示,因此選項A和選項C不正確。要打開文本文件進行讀寫,應使用讀寫模式“r+”,因此選項D不正確。所以,4個選項中B為所選。
59.D解析:時間復雜度是指一個算法執(zhí)行時間的相對度量;空間復雜度是指算法在運行過程中臨時占用所需存儲空間大小的度量。人們都希望選擇一個既省存儲空間、又省執(zhí)行時間的算法。然而,有時為了加快算法的運行速度,不得不增加空間開銷;有時為了能有效地存儲算法和數(shù)據(jù),又不得不犧牲運行時間。時間和空間的效率往往是一對矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說時間復雜度和空間復雜度之間雖然經(jīng)常矛盾,但是二者不存在必然的聯(lián)系。因此,選項A、B、C的說法都是錯誤的。故本題的正確答案是D。
60.C解析:fprintf函數(shù)工作時,多個數(shù)據(jù)間不會自動加分隔符,選項A錯誤;浮點數(shù)的輸出格式是“%5.0f”表明其小數(shù)部分輸出0位,即沒有輸出,所以選項B也是錯誤的。
61.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
62.C\n函數(shù)fun(intx,inty)的功能是返回x+Y的值。在主函數(shù)中,變量a,b,c的初始值分別為1,2,3。因此逗號表達式“a++,b++,a+b”的值等于5,表達式c++的值為3,調(diào)用于函數(shù)的表達式為“fun(5,3);”,其返回值等于8。
\n
63.B要想將鏈表構成一個環(huán),需要r指向的節(jié)點的next指針(指向下一節(jié)點)指向p所指向的節(jié)點,即將p的值賦給next.
64.C
65.A考查用指針來引用字符數(shù)組元素的方法。指針pl+k相當于指針pl向后移動了k個字符的位置,指針p2同理。
66.D本題考查宏定義的用法,宏定義只是做個簡單的替換,所以本題中執(zhí)行f(2)=(2*N+1)=11,執(zhí)行f(1+1)=(1+1}N+1)=7。選項D正確。
67.A\r\n
68.A本題的考查點是switch語句。當用戶鍵人字符時,會進入一個多分支選擇語句,根據(jù)n的值,來確定下一步執(zhí)行的選擇語句;最后的結果應當為passwarn。本題需要注意的是,當case語句沒有跟隨break語句時,不會跳出switch,而是繼續(xù)執(zhí)行下一個case語句,直至遇到break語句。
69.D系統(tǒng)軟件是管理計算機的資源,提高計算機的使用效率,為用戶提供各種服務的軟件。應用軟件是為了應用于特定的領域而開發(fā)的軟件。選項D屬于系統(tǒng)軟件。選項A、B、C屬于應用軟件。故選D選項。
70.A本題主要考查if結構的應用。在程序中,首先定義三個整型變量a,b,c,并分別賦初值為2,-1,2,然后執(zhí)行第一條if語句,由于變量a的值大于變量b的值,a<b為假,那么接著執(zhí)行第二條if語句,由于變量b的值小于0,b<0為真,則執(zhí)行c=0,這時跳過else結構,輸出結果為0。
提醒注意:if與else結構具有就近結合的原則。本題中的else結構與第二個if語句結合,而不是與第一個if語句結合。
71.Da[1][2]的值為6.*ptr的值為1,*ptr+1=2是一個數(shù)組,所以(*ptr+1)[2]表示不正確。P=a,指向1,p+5是指針向后移動5個單元,即指向6,*(p+5)即是6,C項解釋同A,
72.B注:與軟件測試要對比著復習
73.D層次模型的基本結構是樹形結構,網(wǎng)狀模型是一個不加任何條件限制的無向圖,關系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
74.AC語言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個”\”開頭的字符。其中,”\
75.C解析:在層次模型和網(wǎng)狀模型的系統(tǒng)研究和數(shù)據(jù)庫設計中,其性能和質(zhì)量主要決定于設計者的經(jīng)驗和技術水平,而缺乏一定的理論指導。因此,系統(tǒng)的研制和數(shù)據(jù)庫的設計都比較盲目,即使是同一個數(shù)據(jù)庫管理系統(tǒng),相同的應用,不同設計者設計出來的系統(tǒng)其性能可以差別很大。關系模型是以數(shù)學理論為基礎,從而避免了層次模型和網(wǎng)狀模型系統(tǒng)中存在的問題。本題的正確答案是C。
76.A將p1指向的字符賦給p2,然后再移向下一個字符,直到結束字符0為止,因此這是將p1所指的字符串復制到p2所指的內(nèi)存空間。
77.A軟件設計分為概要設計和詳細設計。概要設計又稱總體結構設計,其主要任務是根據(jù)用戶的需求先確定軟件系統(tǒng)的總體結構和總的設計原則。
78.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。
79.D
80.C賦值號和自增符左邊的數(shù)據(jù)對象不能為表達式或常量,只能為變量。
81.(1)錯誤:intproc(charstrr3[103,intm,char*pt)
正確:voidproc(charstr[][10],intm,char*pt)
(2)錯誤:pt[i]=strEk,i3
正確:pt[i]=str[k][i]
【解析】由主函數(shù)中的函數(shù)調(diào)用和proc()函數(shù)的定義可知,函數(shù)proc()沒有返回值。因此,“intproc(charstr[][10],intm,char*pt)”中的int應改為void;根據(jù)C語言的語法規(guī)則,二維數(shù)組的行下標和列下標應分別加中括號,因此“pt[i]=str[k,i]”應改為“pt[i]=str[k][i]”。
82.2021-2022年遼寧省葫蘆島市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序的輸出結果是()main(){union{chari[2];intk;}r;r.i[0]=2,r.i[1]=0;printf("%d\n",r,k);}
A.2B.1C.0D.不確定
2.已知intt=0;while(t=1){…}則以下敘述正確的是()。
A.循環(huán)控制表達式的值為0B.循環(huán)控制表達式的值為1C.循環(huán)控制表達式不合法D.以上說法都不對
3.要求當A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達式的值為“假”,以下不滿足要求的表達式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)
4.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
5.公司中有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員。則實體部門和職員間的聯(lián)系是()。
A.1:m聯(lián)系B.m:n聯(lián)系C.1:1聯(lián)系D.m:1聯(lián)系
6.以下不能對二維數(shù)組a進行正確初始化的語句是()。A.inta[2][3]={0};
B.inta[2][3]={{1,2},{3,4},{5,6}};
C.inta[][3]={{1,2},{0}};
D.inta[][3]={1,2,3,4,5,6};
7.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
8.循環(huán)隊列存儲在數(shù)組A[0..m]中,則入隊時的操作為()。
A.rear=rear+1
B.rear=(rear+1)mod(m-1)
C.rear=(rear+1)modm
D.rear=(rear+1)mod(m+1)
9.
10.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
11.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。
A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10
12.設在C語言中,float類型數(shù)據(jù)占4個字節(jié),則double類型數(shù)據(jù)占()個字節(jié)。
A.1B.2C.8D.4
13.設有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
14.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串"ABCDE"賦給s1,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
15.下列語句中,說法正確的是______。
A.C程序書寫格式嚴格,每行只能寫一個語句
B.C程序書寫格式嚴格,每行必須有行號
C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號隔開
D.C程序書寫格式自由,一個語句可以分寫在多行
16.設數(shù)據(jù)結構A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},則數(shù)據(jù)結構A是()。
A.線性結構B.樹形結構C.圖狀結構D.集合
17.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。
A.文件開始B.文件末尾C.文件當前位置D.以上都不對
18.結構化程序所要求的基本結構不包括()。
A.順序結構B.GOT0跳轉C.選擇(分支)結構D.重復(循環(huán))結構
19.下列條件語句中,輸出結果與其他語句不同的是()。
A.if(a)printf("%dn",x);elseprint[("%d\n",y)
B.if(a=0)pritf("%dn",y);elseprint[("%d\n",x)
C.if(a!一0)printf("%dn",x);elseprint[("%a\n",y)
D.if(a=O)print[("%dn",x);elseprintf("%d\n",y)
20.如有inta=11;則表達式(a++*1/3)的值是()。
A.0B.3C.4D.12
二、2.填空題(20題)21.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。
22.在兩種基本測試方法中,【】測試的原則之一是保證所測模塊中每一個獨立路徑至少要執(zhí)行一次。
23.定義長度為12的數(shù)組,下面四種方法中正確的有【】。
①intx[12];②intn=12;③constintn=12;④intx[]={1,2};
intx[n];intx[n];
24.以下程序的輸出結果是()。
#include<stdio.h>
voidfun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
25.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
26.若有以下定義和語句:
intw[10]={23,54,10,33,47,98,72,80,61},*p;
p=w;
則通過指針p引用值為98的數(shù)組元素的表達式是【】。
27.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達式是______。
28.若有如下結構體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。
【】t[20]
29.以下程序用于判斷a,b,c能否構成三角形,若能,輸出YES,否則輸出NO。當給a,b,c輸入三角形三條邊長時,確定a,b,c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&c);
if(【】)printf("YES\n");/*a.b.c能構成三角形*/
elseprinff("NO\n");/*a.b.c不能構成三解形*/
}
30.以下sstrcpy()函數(shù)實現(xiàn)字符串復制,即將t所指字符串復制到s所指內(nèi)存空間中,形成一個新字符串s。請?zhí)羁铡?/p>
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstrl[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
31.數(shù)據(jù)元素之間______的整體稱為邏輯結構。
32.設y是int型變量,請寫出y為奇數(shù)的關系表達式【】。
33.以下程序的運行結果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
34.下列語句的輸出結果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
35.函數(shù)調(diào)用語句:“fgets(buf,n,fp);”從中指向的文件中讀入n個字符放到buf字符數(shù)組中,函數(shù)返回值為______。
36.設函數(shù)findbig已定義為求3個數(shù)中的最大值。以下程序將利用函數(shù)指針調(diào)用findbig函數(shù)。請?zhí)羁铡?/p>
main()
{intfindbig(int,int,int);
int(*f)(),x,y,z,big;
f=【】;
seanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,2);
printf("big=%d\n",big);
}
37.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
38.以下程序運行后的輸出結果是【】。
main()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
39.以下程序運行后的輸出結果是【】。
main()
{intX=10,y=20,t=0;
if(X==y)t=x;x=y;y=t;
printf("%d,%d\n",x,y);
}
40.以下程序運行后的輸出結果是______。
main()
{intp=30;
printf{"%d\n",(p/3>0?p/10:p%3)};
}
三、1.選擇題(20題)41.設有定義:inca,*pa;&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是
A.scanf("%d",pA);
B.Scanf("%d",A);
C.SCaRf("%d",&p9);
D.scanf("%d",*pA);
42.軟件需求分析一般應確定的是用戶對軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
43.可以在C語言中用做用戶標識符的是______。
A.voiddefineWORDB.as_b3_123IfC.for-abccasD.2cDoSIG
44.C語言提供的預處理功能包括條件,其基本形式為:#×××標識符程序段1#else程序段2#endif這里的×××可以是()
A.define或include
B.ifdef或include
C.indef或ifndef或define
D.ifdef或ifndef或if
45.下面四個選項中,均是不合法的用戶標識符的選項是()。
A.AP_0doB.floatla0_AC.b-agotointD._123tempint
46.下列程序voidfunc1(inti);voidfunc2(inti)charst[]="hello,friend!";voidfuncl(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;funcl(i);}}main(){inti=0;funcl(i);printf("\n");}執(zhí)行后的輸出結果是()
A.helloB.helC.hloD.hlrn
47.若t為double類型,表達式t=1,t+5,t++;的值是______。
A.1B.6C.2D.1
48.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");
A.9B.5C.6D.7
49.若有以下結構體定義,則______是正確的引用或定義。structexample{intx;inty;}v1;
A.example.x=10
B.examplev2.x=10
C.structv2;v2.x=10
D.structexamplev2={10};
50.以下不能對二維數(shù)組a進行正確初始化的語句是
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2)[3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
51.函數(shù)的值通過return語句返回,下面關于return語句的形式描述錯誤的是
A.return表達式;
B.return(表達式);
C.一個return語句可以返回多個函數(shù)值
D.一個return語句只能返回一個函數(shù)值
52.線性表的順序存儲結構和線性表的鏈式存儲結構分別是______。
A.順序存取的存儲結構、順序存取的存儲結構
B.隨機存取的存儲結構、順序存取的存儲結構
C.隨機存取的存儲結構、隨機存取的存儲結構
D.任意存取的存儲結構、任意存取的存儲結構
53.()是不正確的C語言賦值語句。
A.x=1,y=2B.x++C.x=y(tǒng)=5D.y=int(x);
54.設有以下語句
charx=3,y=6,z;
z=x^y<<2;
則z的二進制值是
A.00010100B.00011011C.00011100D.00011000
55.以下程序運行后,輸出結果是
#definePT5.5
#defineS(x)PT*x*x
#include<stdio.h>
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));}
A.49.5B.9.5C.22D.45
56.在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()
A.需求分析B.詳細設計C.軟件設計D.概要設計
57.下面程序段的執(zhí)行結果是()。intx=10;for(;x;x--){if(x%3)continue;printf("%d",x);}
A.875421B.963C.741D.852
58.若要打開A盤上user了目錄下名為abc.txt的文本文件進行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是
A.fopen("A:\user\abc.txt",","r")
B.fopen("A:\\user\\abc.txt","r+")
C.fopen("A:\user\abc.txt","rb")
D.fopen("A:\\user\\abc.txt","w")
59.下列敘述中正確的是()。
A.一個算法的空間復雜度大,則其時間復雜度也必定大
B.一個算法的空間復雜度大,則其時間復雜度必定小
C.一個算法的時間復雜度大,則其空間復雜度必定小
D.上述三種說法都不對
60.下述程序向文件輸出的結果是______。#include<stdio.h>voidmain(){FILE*fp=fopen("TEST","wb");fprintf(fp,"%%5.0f%c%d",58,76273.0'-',2278);fclose(fp);}
A.5876273-2278
B.5876273.000000-2278
C.5876273-2278
D.因文件為二進制文件而不可讀
四、選擇題(20題)61.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
62.有下列程序:、
fun(intX,inty){return(x+y);)
main()
{inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
執(zhí)行后的輸出結果是()。
A.6B.7C.8D.9
63.有以下結構體說明和變量定義,如圖所示,指針p、q、r分別指向此鏈表中的3個連續(xù)結點。structnode{
int
data;structnode
*next;
}*p,*q,*r;現(xiàn)要將這個鏈表構成一個環(huán),以下(
)操作是正確的。A.p->next=q->nextB.r->next=pC.p->next=rD.r->next=q->next->next
64.以下程序的輸出結果是()。
#definef(x)x*x
main
{inta=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A.9B.6C.36D.18
65.下面程序的運行結果是()。
A.gaeB.gaC.LanguageD.有語法錯
66.有以下程序:
程序運行后的輸出結果是()。
A.1127B.1212C.1111D.117
67.
68.下列程序段的輸出結果是()。
A.passwarnB.passerrorC.goodpasswarnD.pass
69.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是():
A.學生成績管理系統(tǒng)B.ERP系統(tǒng)C.辦公自動化系統(tǒng)D.UNIX系統(tǒng)
70.有如下程序
main()
{
inta=2,b=-1,c=2;
if(a<b)c=1;
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
該程序的輸出結果是
A.0B.1
C.2D.3
71.設有以下定義:
inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int(*ptr)[3]=a,*p=a[0];
則下列能夠正確表示數(shù)組元素a【1】【2】的表達式是()。
A.*((*ptr+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
72.(48)軟件調(diào)試的目的是()
A.發(fā)現(xiàn)錯誤
B.改正錯誤
C.改善軟件的性能
D.挖掘軟件的潛能
73.層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復雜程度D.數(shù)據(jù)之間的聯(lián)系方式
74.
A.包含l個字符B.包含2個字符C.包含3個字符D.說明不合法,c的值不確定
75.下列數(shù)據(jù)模型中,具有堅實理論基礎的是()。A.層次模型B.網(wǎng)狀模型C.關系模型D.以上三個都是
76.已定義以下函數(shù):
fun(char*p2,char*p1)
{while((*p2=*p1)!=’\0’){p1++;p2++;}}
函數(shù)的功能是()。
A.將p1所指字符串復制到p2所指向內(nèi)存空間
B.將p1所指字符串的地址賦給指針p2
C.對p1和p2兩個指針所指字符串進行比較
D.檢查p1和p2兩個指針所指字符串中是否有’\0’
77.軟件的()設計又稱總體結構設計,其主要任務是建立軟件系統(tǒng)的總體結構。
A.概要B.抽象C.邏輯D.規(guī)劃
78.設有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
79.
80.以下選項中合法的表達式是()。
A.a(chǎn)=a+7=c+b
B.(3+x)++
C.3+x++
D.x+1=x+1
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將m(1≤m≤10)個字符串連接起來,組成一個新串,放入pt所指字符串中,例如,把2個字符串a(chǎn)bc、CD串聯(lián)起來,結果是abcCD。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.編寫函數(shù)如n,其功能是:刪除一個字符串中指定下標的字符。其中,a指向原字符串,刪除指定字符后的字符串存放在b所指的數(shù)組中,n放指定的下標。例:輸入一個字符串“world”,然后輸入3,則調(diào)用該函數(shù)后的結果為“word”。注意:部分源程序給出如下。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)丘m的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.A解析:根據(jù)共用體的定義可知:共用體r的成員k和成員i[2]是共用同—段內(nèi)存空間,所以,當程序給r.i[0]賦值后,實際上,共用體成員k的值也確定了,為2。所以打印輸出的結果應當為2。
2.B解析:t=1是將t賦值為1,所以循環(huán)控制表達式的值為1。判斷t是否等于1時,應用t==1,注意“=”與“==”的用法。
3.D
4.B
\n本題考查函數(shù)調(diào)用的基本概念。調(diào)用函數(shù)時,實參的形式可以是具體的數(shù)值,也可以是表達式。實參將數(shù)值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發(fā)生改變,但不一定會影響到實參值,所以可知兩者不共用內(nèi)存單元。
\n
5.A部門到職員是一對多的,職員到部門是多對一的,因此,實體部門和職員間的聯(lián)系是l:m聯(lián)系。
6.B選項A中,將二維數(shù)組a的6個元素都賦值為0,正確;選項B中,由于a包含2個元素,每個元素都是包含3個元素的一維數(shù)組,初始化列表中包含3個元素,每個元素是包含2個元素的數(shù)組,錯誤;選項C中,a的每個元素是包含3個元素的一維數(shù)組,初始化列表將a[0]的3個元素初始化為1,2,0,將a[1]的3個元素初始化為0,0,0,正確;選項D中,將a[0]初始化為1,2,3,將a[1]初始化為4,5,6,正確。本題答案為B選項。
7.C解析:這是一個逗號表達式,它的值應為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉換的情況下,3/2的值為1,所以x+3/2的值應為2.0。
8.D
9.C
10.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤(注:數(shù)組元素下標從0開始);B中,*a+1指的是將數(shù)組a的第一個元素加1;選項C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
11.B不能將變量賦給表達式,故A、C選項錯誤。D選項中強制類型轉換表達式應寫成“(double)x/10”。故本題答案為B選項。
12.C
\n在C語言中各種數(shù)據(jù)類型在內(nèi)存
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑木工環(huán)保建材研發(fā)與應用合同
- 2025年度城市更新工程款支付保證委托擔保合同
- 邵陽2024年湖南邵陽市隆回縣部分事業(yè)單位招聘20人筆試歷年參考題庫附帶答案詳解
- 綏化2024年黑龍江綏化市北林區(qū)事業(yè)單位招聘77人筆試歷年參考題庫附帶答案詳解
- 深圳2024年廣東深圳市環(huán)境科學研究院招聘(第二批)筆試歷年參考題庫附帶答案詳解
- 棗莊2025年山東棗莊市商務發(fā)展促進中心高層次急需緊缺人才招聘2人筆試歷年參考題庫附帶答案詳解
- 2025年中國復合材料籃球板市場調(diào)查研究報告
- 2025年中國全自動鍋爐軟化水裝置市場調(diào)查研究報告
- 2025年車門總成項目可行性研究報告
- 2025至2031年中國遙信電源浪涌保護器行業(yè)投資前景及策略咨詢研究報告
- 骨科無痛病房的建立
- 口腔護理技術
- 塑料成型模具設計(第2版)江昌勇課件0-導論
- 《西藏度亡經(jīng)》及中陰解脫竅決(收藏)
- POWERPOINT教學案例優(yōu)秀6篇
- 2022年內(nèi)蒙古包頭市中考英語試卷含解析
- 五年級下冊《Lesson 11 Shopping in Beijing》教案冀教版三年級起點小學英語-五年級英語教案
- 2023年楊凌職業(yè)技術學院單招面試題庫及答案解析
- 績效考核管理醫(yī)院績效分配方案包括實施細則考核表
- stm32f103c8t6最小系統(tǒng)客戶-中文手冊
- 大學成績單(大專)
評論
0/150
提交評論