![2021年江西省南昌市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁](http://file4.renrendoc.com/view/6b895c8dfc2889fdaccaa4e201a27efa/6b895c8dfc2889fdaccaa4e201a27efa1.gif)
![2021年江西省南昌市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁](http://file4.renrendoc.com/view/6b895c8dfc2889fdaccaa4e201a27efa/6b895c8dfc2889fdaccaa4e201a27efa2.gif)
![2021年江西省南昌市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁](http://file4.renrendoc.com/view/6b895c8dfc2889fdaccaa4e201a27efa/6b895c8dfc2889fdaccaa4e201a27efa3.gif)
![2021年江西省南昌市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁](http://file4.renrendoc.com/view/6b895c8dfc2889fdaccaa4e201a27efa/6b895c8dfc2889fdaccaa4e201a27efa4.gif)
![2021年江西省南昌市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁](http://file4.renrendoc.com/view/6b895c8dfc2889fdaccaa4e201a27efa/6b895c8dfc2889fdaccaa4e201a27efa5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年江西省南昌市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
2.
3.若棧采用順序存儲方式存儲,現(xiàn)兩棧共享空間V[1..m],top[i]代表第i個棧(i=1,2)棧頂,棧1的底在v[1],棧2的底在V[m],則棧滿的條件是()。
A.|top[2]-top[1]|=0
B.top[1]+1=top[2]
C.top[1]+top[2]=m
D.top[1]=top[2]
4.以下選項中合法的c語言常量是()。
A.,C—STR’B.2014.1C.”\l.0D.2EK
5.連通圖G中有n個頂點,G的生成樹是()連通子圖。
A.包含G的所有頂點B.包含G的所有邊C.不包含G的所有頂點D.包含G的所有頂點和所有邊
6.設一棵滿二叉樹共有15個結點,則在該滿二叉樹中的葉子結點數(shù)為()
A.7B.8C.9D.10
7.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
8.設有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是()。A.A.變量demo與成員d2所占的內存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
9.如有inta=11;則表達式(a++*1/3)的值是()。
A.0B.3C.4D.12
10.
11.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
12.以下關于typedef的敘述錯誤的是A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通常可以增加程序的可讀性
13.要解決散列引起的沖突問題,最常用的方法是()
A.數(shù)字分析法、除留余數(shù)法、平方取中法
B.除留余數(shù)法、線性探測法、平方取中法
C.線性探測法、二次探測法、鏈地址法
D.除留余數(shù)法、線性探測法、二次探測法
14.以下有關scanf函數(shù)的敘述中錯誤的是()。
A.在scanf函數(shù)的格式字符前既可以加入正整數(shù)指定輸入數(shù)據(jù)所占的寬度,也可以對實數(shù)指定小數(shù)位的寬度
B.scanf函數(shù)有返回值,其值就是本次調用scanf函數(shù)時正確讀入的數(shù)據(jù)項個數(shù)
C.scanf函數(shù)從輸入字符流中按照格式控制指定的格式解析出相應數(shù)據(jù),送到指定地址中
D.在scanf函數(shù)中的格式控制字符串不會輸出到屏幕上
15.設有以下函數(shù)f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調用該函數(shù),則輸出結果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}
A.789B.7911C.71013D.777
16.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序執(zhí)行后變量w中的值是A.5.21B.5C.5.0D.0.0
17.若有以下定義:chara;intb;floatc;doubled;則表達式a*b+b-c值的類型為()。A.floatB.intC.charD.double
18.表達式:(int)((double)9/2)-(9)%2.的值是A.0B.3C.4D.5
19.下列敘述中不正確的是()。
A.在C語言中調用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動變量實質上是一個函數(shù)內部的局部變量
20.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。
A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b
二、2.填空題(20題)21.在深度為7的滿二叉樹中,度為2的節(jié)點個數(shù)為()。
22.\13'在內存中占1個字節(jié),"\12"在內存中占______個字節(jié)。
23.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
24.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
25.有以下程序:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)printf("%d,",*p);
}
程序運行后的輸出結果是【】。
26.某二叉樹中度為2的節(jié)點有18個,則該二叉樹中有()個葉子節(jié)點。
27.以下程序通過函數(shù)SunFun求。這里f(x)=x2+1,由F函數(shù)實現(xiàn)。請?zhí)羁铡?/p>
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{returnx*x+1;}
28.下列程序輸出的結果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
29.以下程序運行后的輸出結果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
30.下列程序執(zhí)行后輸出的結果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
31.下面的程序通過函數(shù)average計算數(shù)組中各元素的平均值,請?zhí)羁铡?/p>
floatavetage(int*pa,intn)
{inti;
floatavg=0.0;
for(i=0;i<n;i++);
avg=avg+【】;avg=【】;
returnavg;
}
main()
{inti,a[5]={2,4,6,8,10,};
floatmean;
prinf("%mean=%f\n",mean);
}
32.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>
strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;}
return(num);
}
33.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)
while(s[i])(d[j]=【】;j++;}
d[j]=0;
34.以下程序運行后的輸出結果是【】。
#include<stdio.h>
main()
{charc;intn=100;
floatf=10:doublex:
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
35.若有如下定義:
intx=2,y=3,z=4;
則表達式!(x=y)||x+z&&y-z的值是【】。
36.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
37.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
38.數(shù)據(jù)庫的邏輯模型設計階段的任務是將______轉換成關系模式。
39.下面程序的運行結果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
40.十進制數(shù)53轉換為十六進制數(shù)為【】。
三、1.選擇題(20題)41.下列關于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件
42.語句int(*ptr)()的含義是()。
A.ptr是一個返回值是int的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
43.若有下列說明,則()不是對strcpy庫函數(shù)的正確的調用。strcpy庫函數(shù)用于復制一個字符串:char*str1="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa"
A.strcpy(str2,str1)
B.strcpy(str3,str1)
C.strcpy(str4,str1)
D.strcpy(str5,str1)
44.以下程序的輸出結果是()。#include<stdio.h>main(){inti;for(i=1;i<5;i++){if(i%2)printf("*");elsecontinue;printf("#");}printf("$\n");
A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$
45.下列變量說明語句中,正確的是
A.char:abc;B.chara;b;c;C.intx;z;D.intx,z;
46.下面不屬于軟件設計原則的是()。
A.抽象B.模塊化C.自底向上D.信息隱蔽
47.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=8,v2=8,v3=8,v4=8
48.程序中頭文件type1.h的內容是#defineN5#defineM1N*3程序如下:#define"type1.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);)程序編譯后運行的輸出結果是()。
A.10B.20C.25D.30
49.對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
50.C語言源程序名的后綴是A..exeB..CC..objD..cp
51.以下程序企圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#號時結束輸入和輸出操作,但程序有錯。#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出錯的原因是
A.函數(shù)fopen調用形式有誤B.輸入文件沒有關閉C.函數(shù)fgetc調用形式有誤D.文件指針stdin沒有定義
52.以下程序十函數(shù)scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址:#include<stdio.h>#include<string.h>char*scrap(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]));/*庫函數(shù)strcpy對寧符中進行復制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運行時依次輸入:abcd、4bba和abc三個寧符市,則輸出結果為
A.abcdB.abbaC.abcD.abca
53.若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。
A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);
54.線性表的順序存儲結構和線性表的鏈式存儲結構分別是______。
A.順序存取的存儲結構、順序存取的存儲結構
B.隨機存取的存儲結構、順序存取的存儲結構
C.隨機存取的存儲結構、隨機存取的存儲結構
D.任意存取的存儲結構、任意存取的存儲結構
55.為了提高測試的效率,應該()。
A.隨機選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.集中對付那些錯誤群集的程序
56.下列關于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
57.在深度為5的滿二叉樹中,葉子結點的個數(shù)為A.32B.31C.16D.15
58.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
59.下面的程序執(zhí)行后,文件test.t中內容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello.rld
60.有以下程序main(){inta=7,b=8,*p,*q,*r;p-&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);程序運行后的輸出結果是
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
四、選擇題(20題)61.下列敘述中正確的是()。
A.在面向對象的程序設計中,各個對象之間具有密切的關系
B.在面向對象的程序設計中,各個對象都是公用的
C.在面向對象的程序設中,各個對象之間相對獨立,相互依賴性小
D.上述3種說法都不對
62.
下列程序的輸出結果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(一1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
63.在數(shù)據(jù)管理技術的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。A.A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理
64.程序調試的任務是()。
A.設計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤
65.以下關于retllm語句的敘述中正確的是()。
A.一個自定義函數(shù)中必須有一條return語句
B.一個自定義函數(shù)中可以根據(jù)不同情況設置多條retum語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處
66.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)和相關文檔的集合
67.設j為Int型變量,則下面for循環(huán)語句的執(zhí)行結果是()。
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
A.63B.74C.62D.73
68.為了避免嵌套的條件分支語句if—else的二義性,C語言規(guī)定:C程序中的else總是與_____組成配對關系。
A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if
69.以下不構成無限循環(huán)的語句或語句組是()。
70.
下列程序的輸出結果是()。
intfl(intx,inty){returnx>y?x:y;)
intf2(intx,inty){returnx>y?y:x;}
main
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
71.
72.從循環(huán)體內某一層跳出,繼續(xù)執(zhí)行循環(huán)外的語句是:___________。
A.break語句B.return語句C.continue語句D.空語句。
73.計算機能直接執(zhí)行的程序是()。
A.源程序B.目標程序C.匯編程序D.可執(zhí)行程序
74.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c=5B.a=4,b=5,c=5C.a=5,b=6,c=5D.a=1,b=5,c=6
75.
76.
77.
78.串的長度是______。A.A.串中不同字符的個數(shù)
B.串中不同字母的個數(shù)
C.串中所含字符的個數(shù)且字符個數(shù)大于零
D.串中所含字符的個數(shù)
79.若有語句int*point,a=4;和point=&a;下面均代表地址的一組選項是()。
A.a,point,*&a
B.&*a,&a,*point
C.*&point,*point,&a
D.&a,&*point,point
80.若a是數(shù)直類型,則邏輯表達式的值是()。A.1B.0C.2D.不知道a的值,不能確定
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:從整數(shù)10到55之間,查找能被3整除且有一位上的數(shù)值是5的數(shù),把這些數(shù)放在b所指的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定函數(shù)中al放個位數(shù),a2放十位數(shù)。
請改正程序中的錯誤,使它能得出正確的結果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結構!
六、程序設計題(1題)82.假定輸入的字符串只包含字母和“#”號,請編寫函數(shù)fun(),它的功能是:刪除字符串中所有的“#”號。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內容為“##w#e1##come###”,刪除后,字符串中的內容則應當是“welcome”。請勿改動main()函數(shù)與其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B棧是先進后出的原則組織數(shù)據(jù),所以人棧最早的最后出棧,所以選擇B。
2.D
3.B
4.B所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,但使用單引號,錯誤,選項c,D,為實型常量中指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù),錯誤。故答案為B選項。
5.A
6.BB)【解析】在具有11個結點的滿二叉樹,其非葉子結點數(shù)為int(n/2),而葉子結點數(shù)等于總結點數(shù)減去葉子結點數(shù)。本題n=15,故非葉子結點數(shù)等于int(15/2)=7,葉子結點數(shù)等于15-7=8。
7.C解析:關于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。
8.D解析:聯(lián)合體的所有成員共占同一段內存,所以聯(lián)合體變量的長度與它的最長成員所占長度…致,本題中float所占內存字節(jié)數(shù)為4,而\u3000int類型在TurboC\u30002.0中是占2字節(jié)、在VisualC++6.0中占4字節(jié),所以int類型所占內存字節(jié)數(shù)不會超過float,那demo就與成員d2所占字節(jié)數(shù)是相同的,選項A的說法正確。聯(lián)合體的所有成員的首地址都是相同的,和聯(lián)合體變量的地址一致。故選項B和C都是正確的。由于int類型數(shù)據(jù)和float類型數(shù)據(jù)在內存中的存放格式是不一樣的,所以給d1賦99后,d2中不會得到99.0這個值。故選項D不正確,答案應該選擇D。
9.B
10.B
11.C將兩個字符串連接起來組成一個字符串,選用strcat函數(shù)來連接。
12.A解析:本題考查的重點是typedef的理解運用。C語言允許通過typedef為數(shù)據(jù)類型定義新名字,但是,它并非是生成新的數(shù)據(jù)類型,因此選項A是錯誤的。
13.C
14.A在scanf函數(shù)的格式字符前可以加入一個正整數(shù)指定輸入數(shù)據(jù)所占的寬度,但不可以對實數(shù)指定小數(shù)位的寬度,選項A錯誤,其他選項正確。故本題答案為A選項。
15.A解析:本題考查靜態(tài)變量的問題。函數(shù)f中c是靜態(tài)變量存放在靜態(tài)存儲區(qū),在程序的整個運行期間都不釋放占據(jù)的存儲單元。函數(shù)f被調用3次,調用過程如下。
第1次調用;a=2、b=0、c=3,執(zhí)行b++和c++后b=1、c=4,f(a)=a+b+c=2+1+4=7
第2次調用:a=2、b=0、c=4.執(zhí)行b++和c++后b=1、c=5,f(a)=a+b+c=2+1+5=8
第3次調用:a=2、b=0、c=5,執(zhí)行b++和c++后b=1、c=6,f(a)=a+b+c=2+1+6=9
所以輸出結果為選項A。
16.C(33)C)解析:題中變量w的定義為double型,函數(shù)fun2()的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉換為實型數(shù)據(jù)。
17.D在表達式a*b+d-c中,double的類型最高,C語言中,由低類型自動向高類型轉換,所以最后的結果一定是double型。
18.B\n本題考查了強制類型轉換。9/2為double型,所以結果為4.5,又強制轉換為整型,所以結果為4。9%2為取余運算,結果為1。最終結果4-1=3。
\n
19.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內存單元,而是在程序運行中,當局部變量所在的函數(shù)被調用時,編譯系統(tǒng)根據(jù)需要要臨時分配內存,調用結束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內存單元,在程序運行的自始至終都占用固定的單元。在考慮內存不定的情況下,最好使用全局變量。
20.D
21.6363解析:滿二叉樹的第k層上有2k-1個結點,度為k的滿二叉樹一共有2k-1個結點,由二叉樹的性質可知:除去第k層上的結點,其他所有結點都是度為2的結點,所以度為2的結點數(shù)為2k-1-2k-1,即27-1-27-1=63。
22.22解析:'\\13':表示八進制數(shù)13表示的ASCII字符,是一個字符,占一個字節(jié);而”\\12”是個字符串,除了八進制數(shù)12表示的ASCII字符占一個字節(jié)外,還有在字符串的末尾加上串結束標志“'\\0'”,所以共有2個字節(jié)。
23.1919解析:根據(jù)二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數(shù)為18,故葉子結點數(shù)為18+1=19個。
解析:本題,已知結果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進行類型轉換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
25.12345678901,2,3,4,5,6,7,8,9,0,解析:p指向a的首地址。a+10表示的是a[10]的地址,嘲此此程序的功能就是輸出數(shù)組a。
26.19
27.xx解析:考查函數(shù)的調用。函數(shù)調用時,實參與形參一致,函數(shù)F只有一個形參,故函數(shù)的調用為F(x)。
28.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作用域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。本程序首先定義了一個全局變量m=17,m=17的作用域在整個程序內。在fun函數(shù)內部定義了一個局部變量m=3,m=3的作用域僅在fun函數(shù)內部,通過fun函數(shù)返回兩個形參的積再減m。在主函數(shù)中,輸出fun(a,b)/m=(5*7-3)/17=1。
29.45994599解析:要注意每條證語句后面是三條語句,而不是一條語句。執(zhí)行第一條if語句時,條件表達式不成立,執(zhí)行a=c;c=t;,此時a=5,c=99;執(zhí)行第二條if語句時,條件表達式成立,執(zhí)行t=b;b=a;a=t;交換a,b的值,輸出結果為4,5和99。
30.1111解析:程序中結構體數(shù)組data首地址(即&data[0])賦值給結構體指針變量p,++(P->x)表示先將p所指向的結構體變量的成員x值加1,然后將此x(即data[0].x)輸出。
31.pa[i]avg/n
32.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1
33.s[i++]s[i++]解析:本題中為了能實現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素.本題應使用i的自增后置來實現(xiàn)。
34.220220解析:根據(jù)賦值運算符“自右至左”的結合順序,程序中賦值表達式x=f*=n/=(c=50)的求解步驟為:首先計算n/=(c=50),即n=n/c=100/50=2;然后計算f*=n,即f=f*n=10*2=20.000000,由此得到x的值為20.000000。
35.11解析:運算符的優(yōu)先級次序由高到底是!,算術運算符,&&,||。先運算!(x=y),由于x=3非零,則表達式!(x=y)的值為0。再運算x+z,x+z=3+4=7,非零則運算y-z,y-z=3-4=-1,非零則表達式x+z&&y-z的值為1。0||1=0,則表達式!(x=y)||x+z&&y-z的值是1。
36.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。
37.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接將數(shù)組元素a[4]的地址(即&a[4])賦給指針變量p,也可以用數(shù)組名加偏移量的形式(即a+4)表示數(shù)組元素a[4]的地址,并賦給指針變量p。
38.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設計的任務是將概念模型進一步轉化成相應的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設計的主要工作是將E-R圖轉換成關系模式。
39.1111解析:此題涉及函數(shù)的調用和if語句。程序先執(zhí)行第二個if語句,然后再執(zhí)行第一個if語句,最后用return返回數(shù)值。
40.35
41.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進制文件是把內存中的數(shù)據(jù)按其在內存中的存儲形式原樣輸出到磁盤上存放。
42.C解析:本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標識符(*指針變量名)()?!邦愋蜆俗R符”為函數(shù)返回值的類型。
43.C解析:strcpy(s1,s2)函數(shù)的功能是將字符串s2復制到字符串s1中(注意:要保證s1存儲區(qū)能容納下s2字符串)。
44.C解析:程序中當i不能整除2時輸出*,然后輸出#,能夠整除2時將結束本次循環(huán),進入到下一次循環(huán)。當循環(huán)結束后,輸出$。
45.D
46.C解析:軟件設計遵循軟件工程的基本目標和原則,建立了適用于在軟件設計中應該遵循的基本原理和與軟件設計有關的概念。①抽象是一種思維工具,就是把事物本質的共同特性抽出來而不考慮其他細節(jié)。②模塊是指可以單獨命名且可編址的元素。如高級語言中的過程、函數(shù)、子程序等。③信息隱蔽是指在一個模塊內包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的。④模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。因此,本題的正確答案是C。
47.C解析:當switch后面括弧內的表達式的值與某一個case后面的常量的表達式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達式的值都沒有與表達式的值匹配的,就執(zhí)行default后面的語句。
48.C解析:編譯預處理時,用“type1.h”中的內容替代命令#include“type1.h”。表達式“i=M1+M2”經(jīng)過宏替換為“i=5*3+5*2”即i=25,所以最后輸出的i的值為25。所以4個選項中C正確。
49.C解析:對線性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止.在最壞的情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。
50.B解析:C語言源程序的后綴為.c;經(jīng)過編譯得到的目標程序文件的后綴為.obj;再將目標程序文件鏈接后得到可執(zhí)行文件的后綴為.exe。故本題應該選擇B。
51.A解析:本題考核的知識點是文件的簡單應用。stdin是標準輸入設備的文件指針,不需定義直接可以使用,它隨系統(tǒng)的啟動而打開,隨系統(tǒng)的關閉而關閉,fgetc()函數(shù)的作用是從某個文件中讀取一個數(shù)據(jù),其參數(shù)為要讀取文件的文件指針,所以本題中的調用形式是正確的。fopen()函數(shù)有兩個參數(shù),第一個參數(shù)是打開的文件名,第二個參數(shù)是文件打開模式,兩個參數(shù)都是字符串,本例中'fout=fopen(\'abc.txt\',\'w’);”語句的fopen()函數(shù)參數(shù)是錯誤的,應該用雙引號'''',正確的應改為fout=fopen(“abc.txt”,“w”);。所以,A選項為所選。
52.A解析:字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符ASCII碼值較大時,該字符所在的字符串就是較大的字符串。主函數(shù)中調用了函數(shù)scmp(),分析不難知道該函數(shù)的作用是返回參加比較的兩個字符串中的較小的字符串,它的主函數(shù)中定義了一個二維字符數(shù)組來存放三個字符串.接著通過for循環(huán)給每個字符串賦值,賦值后三個字符串分別為“abcd”、“abba”、“abc”,接著比較str[0]和str[1]的大小,根據(jù)字符串大小比較標準可知str[0]較小,然后通過函數(shù)strcpy()把str[0]中的字符串,拷貝到string中,然后比較string和str[2]的大小,比較結果是string較小,最后輸出string的值為“abcd”,所以,4個選項中選項A符合題意。
53.A解析:C語言規(guī)定,賦值號的右邊可以是一個賦值表達式.因此選項C)、選項D)正確:在選項B)中,a++是一個自加1的表達式,a被重新賦值,因此它是一個合法的賦值表達式:選項A)中,a+d是一個算術表達式,雖然最后有一個分號,但這個表達式中沒有賦值操作,因此它不是一條賦值語句。
54.B【命題目的】考查有關線性表存儲結構的基本知識。
【解題要點】順序存儲結構中,數(shù)據(jù)元素存放在一組地址連續(xù)的存儲單元中,每個數(shù)據(jù)元素地址可通過公式LOC(ai)=LOC(a1)+(I-1)L計算得到,從而實現(xiàn)了隨機存取。對于鏈式存儲結構,要對某結點進行存取,都得從鏈的頭指針指向的結點開始,這是一種順序存取的存儲結構。
【考點鏈接】順序存儲結構和鏈式存儲結構的定義和性質,兩種存儲結構的操作方法。
55.D本題主要考查軟件的測試。軟件測試的主要目的體現(xiàn)在下面幾個方面。
(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
(2)一個好的測試用例能夠發(fā)現(xiàn)至今尚未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試的效率是指利用更少的成本創(chuàng)造更多的價值,提供軟件測試效率的方法有很多,如制定一個合理的詳細的測試計劃,了解測試項目的業(yè)務需求,集中對付那些錯誤群集的程序等。而選項A所描述的隨機選取測試數(shù)據(jù)是不能保證提高測試效率的,選項B描述的取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)顯然不能提高測試效率,反而使工作量加大,降低測試效率。
56.D本題主要考查自加與自減運算符。在C語言中,自加與自減運算符具有以下性質:
(1)自加運算符“++”和自減運算符“--”的運算本身是一種賦值運算,其結果是使運算對象的值增1或減1。
(2)++、--運算符是單目運算符,運算對象可以是整型變量或字符型變量,也可以是實型變量,但不能是常量和表達式。
(3)自加、自減運算符無論是作為前綴還是后綴運算符,對于變量而言,其效果相同,但作為表達式來說,其值不同。
(4)++和--運算符的結合方向是“自右向左”。
(5)不要在一個表達式中對同一個變量進行多次自增或自減運算。可以知道本題正確的答案是D。
57.C2(n-1)
=2(5-1)=16
58.A解析:函數(shù)定義時如果數(shù)據(jù)類型默認,則默認為int。函數(shù)中如果有“retum(表達式):”語句,表達式的類型可能與函數(shù)的類型不一致,但它并不能改變函數(shù)的類型,實際情況是把表達式轉換為函數(shù)值的類型作為返回值,因此本題的函數(shù)值類型是int。
59.A解析:C語言中文件有文本文件與二進制文件,對文件的使用前必須先打開,打開方式有只讀、寫入、讀寫等方式。
60.C解析:本題考核的知識點是指針變量的基本應用。程序中定義了兩個變量a和b,并分別賦初值為7和8,定義了三個指針變量p、q、r,并讓指針p指向變量a,讓Q指向變量b,然后通過一個中間指針變量r,使指針變量p和q互換,互換后p指向q所指的內容即b,Q指向開始p所指向的內容即a,因此最后輸出的*p,*q的值為8,7,a,b的值沒有改變仍為7,8,所以,4個選項中選項C符合題意。
61.C本題考查對面向對象的理解,面向對象的程序設計是對象模擬問題領域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現(xiàn)對象之間的相互聯(lián)系。
62.B
\n當邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
\n
63.A數(shù)據(jù)庫系統(tǒng)的一個重要目標就是使程序和數(shù)據(jù)真正分離,數(shù)據(jù)蝕立性包括數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性。相對文件系統(tǒng)人工管理和數(shù)據(jù)項管理,數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨立性大大增加。
64.D程序調試的任務是診斷和改正程序中的錯誤。
65.B在函數(shù)中允許有多個IettLrll語句,但每次調用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,c選項描述錯誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調用處,A、D選項描述錯誤。因此B選項正確。
66.D解析:軟件是運行在計算機硬件之上的邏輯實體,包括程序、數(shù)據(jù)和相關的文檔,軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制。
67.B當j=10時,for循環(huán)成立,j%3為1,if條件也為真,當執(zhí)行完j--后,j為9,再執(zhí)行“--j;--J;”后,j的值為7,因此輸出7,繼續(xù)循環(huán)執(zhí)行j--后j為6,當j=6時for循環(huán)成立,j%3為0,if條件為假,此時執(zhí)行“--j;--j;”后,j為4,輸出4,再繼續(xù)循環(huán)執(zhí)行j--后j為3,當j=3時,for循環(huán)不成立,退出循環(huán),故選擇8選項。
68.C
69.A選項A)中d0后面的語句只執(zhí)行了一次便結束了循環(huán);B)選項中條件while(1)永遠成立,因此是死循環(huán);C)選項中n的值為l0,而循環(huán)體為空語句,所以while(n)永遠為真,進入死循環(huán);D)選項中fbr語句第二個表達式為空,因此沒有判定條件,進入死循環(huán)。因此本題答案為A)。
70.A
\n根據(jù)函數(shù)的定義可知,如果x>Y成立,則函數(shù)f1返回x的值,函數(shù)f2返回y的值。所以fl(a,b)=4,n(c,d)=5,f2(a,b)=3;,f2(c,d)=2,故e=f2(4,5)=4,f=f1(3,2)=3,g=4+3斗5+2-4-3=7。
\n
71.B
72.A
73.D計算機能直接執(zhí)行的程序是可執(zhí)行程序,其擴展名為.exe。故本題答案為D選項。
74.B本題考查自加(++)、自減(--)運算符的使用?!?+x,--x”,在變量x前使用,先使X的值加1或者減1,再使用此時的表達式的值參與運算;“x++,x--”,先把使用X的值參與運算,在使用X之后,再使x的值加1或者減1。對于表達式--x=4,y++=4,兩者相等,--x=y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5;第一個表達式c=y=5。故B正確。
75.C
76.B
77.A
78.D解析:串的長度指的是串中字符的個數(shù),且其字符個數(shù)可以為零。選項D正確。
79.D本題主要考查指針變量對數(shù)值的引用。在題目中,首先定義了整型指針變量point和一個整型變量a,變量a的初值為4,然后是指針變量指向a,或者說將變量a所在存儲單元的地址值賦給指針變量。
在選項A中,很顯然,不全是地址,只有point表示地址,而*&a等價于*(&a),表示取一個數(shù)值。
在選項B中,也不都表示地址,其中*point表示數(shù)值,其他兩個表示地址。
在選項C中,與選項B類似,其中的*point表示數(shù)值。
在選項D中,都表示地址,是題目的選擇答案。
80.A無論a的值為多少,(a==1)和(a!=1)總會有一個成立,兩者或運算,則值為真。為1。81.
(1)a2=k/10;
(2)returni;
【考點分析】本題考查:取數(shù)值n的各個位;return語句,將需要返回的函數(shù)值返回給函數(shù)main。
【解題思路】
(1)a2存放十位數(shù),所以是a2=k/10,此處是一個書寫錯誤。
(2)根據(jù)題意,要返回能被3整除的數(shù)的個數(shù),從循環(huán)體中可以知道其個數(shù)是由i來計算的,所以返回的是i。
82.
【解析】在while循環(huán)中,利用if判斷表達式中每一個字符是否為“#”,如果不是,將其復制到字符串,否則跳過,這就實現(xiàn)了函數(shù)的功能。
(1)首先利用工作指針指向字符串,當指針不指向串尾時,就對字符串進行循環(huán)判斷。
(2)在循環(huán)中利用if判斷表達式字符是否為“#”,如果不是,將其復制到字符串,否則跳過。
(3)所有字符處理完后,記得在新串s的末尾加上結束符“ˊ\0ˊ”。
2021年江西省南昌市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棱的順序是()。A.A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.54321EDCBA
2.
3.若棧采用順序存儲方式存儲,現(xiàn)兩棧共享空間V[1..m],top[i]代表第i個棧(i=1,2)棧頂,棧1的底在v[1],棧2的底在V[m],則棧滿的條件是()。
A.|top[2]-top[1]|=0
B.top[1]+1=top[2]
C.top[1]+top[2]=m
D.top[1]=top[2]
4.以下選項中合法的c語言常量是()。
A.,C—STR’B.2014.1C.”\l.0D.2EK
5.連通圖G中有n個頂點,G的生成樹是()連通子圖。
A.包含G的所有頂點B.包含G的所有邊C.不包含G的所有頂點D.包含G的所有頂點和所有邊
6.設一棵滿二叉樹共有15個結點,則在該滿二叉樹中的葉子結點數(shù)為()
A.7B.8C.9D.10
7.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
8.設有以下定義uniondata{intd1;floatd2;}demo;則下面敘述中錯誤的是()。A.A.變量demo與成員d2所占的內存字節(jié)數(shù)相同
B.變量demo中各成員的地址相同
C.變量demo和各成員的地址相同
D.若給demo.d1賦99后,demo.d2中的值是99.0
9.如有inta=11;則表達式(a++*1/3)的值是()。
A.0B.3C.4D.12
10.
11.將兩個字符串連接起來組成一個字符串時,選用()函數(shù)。A.strlen()B.strcpy()C.strcat()D.strcmp()
12.以下關于typedef的敘述錯誤的是A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通常可以增加程序的可讀性
13.要解決散列引起的沖突問題,最常用的方法是()
A.數(shù)字分析法、除留余數(shù)法、平方取中法
B.除留余數(shù)法、線性探測法、平方取中法
C.線性探測法、二次探測法、鏈地址法
D.除留余數(shù)法、線性探測法、二次探測法
14.以下有關scanf函數(shù)的敘述中錯誤的是()。
A.在scanf函數(shù)的格式字符前既可以加入正整數(shù)指定輸入數(shù)據(jù)所占的寬度,也可以對實數(shù)指定小數(shù)位的寬度
B.scanf函數(shù)有返回值,其值就是本次調用scanf函數(shù)時正確讀入的數(shù)據(jù)項個數(shù)
C.scanf函數(shù)從輸入字符流中按照格式控制指定的格式解析出相應數(shù)據(jù),送到指定地址中
D.在scanf函數(shù)中的格式控制字符串不會輸出到屏幕上
15.設有以下函數(shù)f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}如果在下面的程序中調用該函數(shù),則輸出結果是______。main(){inta=2,i;for(i=0;i<3;i++)printf("%d\n"f(a));}
A.789B.7911C.71013D.777
16.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序執(zhí)行后變量w中的值是A.5.21B.5C.5.0D.0.0
17.若有以下定義:chara;intb;floatc;doubled;則表達式a*b+b-c值的類型為()。A.floatB.intC.charD.double
18.表達式:(int)((double)9/2)-(9)%2.的值是A.0B.3C.4D.5
19.下列敘述中不正確的是()。
A.在C語言中調用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動變量實質上是一個函數(shù)內部的局部變量
20.某堆棧的輸入序列為a,b,c,d,下面的四個序列中,不可能是它的輸出序列的是()。
A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b
二、2.填空題(20題)21.在深度為7的滿二叉樹中,度為2的節(jié)點個數(shù)為()。
22.\13'在內存中占1個字節(jié),"\12"在內存中占______個字節(jié)。
23.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
24.下列程序的輸出結果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
25.有以下程序:
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)printf("%d,",*p);
}
程序運行后的輸出結果是【】。
26.某二叉樹中度為2的節(jié)點有18個,則該二叉樹中有()個葉子節(jié)點。
27.以下程序通過函數(shù)SunFun求。這里f(x)=x2+1,由F函數(shù)實現(xiàn)。請?zhí)羁铡?/p>
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{returnx*x+1;}
28.下列程序輸出的結果是______。
intm=17;
intfun(intx,inty)
{intm=3;
return(x*Y-m);
}
main()
{inta=5,b=7;
printf("%d\n",fun(a,B)/m);
}
29.以下程序運行后的輸出結果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
30.下列程序執(zhí)行后輸出的結果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
31.下面的程序通過函數(shù)average計算數(shù)組中各元素的平均值,請?zhí)羁铡?/p>
floatavetage(int*pa,intn)
{inti;
floatavg=0.0;
for(i=0;i<n;i++);
avg=avg+【】;avg=【】;
returnavg;
}
main()
{inti,a[5]={2,4,6,8,10,};
floatmean;
prinf("%mean=%f\n",mean);
}
32.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>
strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;}
return(num);
}
33.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫崿F(xiàn)拷貝。(注:不使用逗號表達式)
while(s[i])(d[j]=【】;j++;}
d[j]=0;
34.以下程序運行后的輸出結果是【】。
#include<stdio.h>
main()
{charc;intn=100;
floatf=10:doublex:
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
35.若有如下定義:
intx=2,y=3,z=4;
則表達式!(x=y)||x+z&&y-z的值是【】。
36.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
37.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
38.數(shù)據(jù)庫的邏輯模型設計階段的任務是將______轉換成關系模式。
39.下面程序的運行結果是:【】。
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
elseif(n>=2){m=fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
}
40.十進制數(shù)53轉換為十六進制數(shù)為【】。
三、1.選擇題(20題)41.下列關于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件
42.語句int(*ptr)()的含義是()。
A.ptr是一個返回值是int的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
43.若有下列說明,則()不是對strcpy庫函數(shù)的正確的調用。strcpy庫函數(shù)用于復制一個字符串:char*str1="abcd",str2[10],*str3="hijklmn",*str4[2],*str5="aaaa"
A.strcpy(str2,str1)
B.strcpy(str3,str1)
C.strcpy(str4,str1)
D.strcpy(str5,str1)
44.以下程序的輸出結果是()。#include<stdio.h>main(){inti;for(i=1;i<5;i++){if(i%2)printf("*");elsecontinue;printf("#");}printf("$\n");
A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$
45.下列變量說明語句中,正確的是
A.char:abc;B.chara;b;c;C.intx;z;D.intx,z;
46.下面不屬于軟件設計原則的是()。
A.抽象B.模塊化C.自底向上D.信息隱蔽
47.下面程序的輸出是______。main(){char*s="12134211";intv1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default:v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}
A.v1=4,v2=2,v3=1,v4=1
B.v1=4,v2=9,v3=3,v4=1
C.v1=5,v2=8,v3=6,v4=1
D.v1=8,v2=8,v3=8,v4=8
48.程序中頭文件type1.h的內容是#defineN5#defineM1N*3程序如下:#define"type1.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);)程序編譯后運行的輸出結果是()。
A.10B.20C.25D.30
49.對長度為n的線性表進行順序查找,在最壞的情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
50.C語言源程序名的后綴是A..exeB..CC..objD..cp
51.以下程序企圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符#號時結束輸入和輸出操作,但程序有錯。#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt','w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出錯的原因是
A.函數(shù)fopen調用形式有誤B.輸入文件沒有關閉C.函數(shù)fgetc調用形式有誤D.文件指針stdin沒有定義
52.以下程序十函數(shù)scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址:#include<stdio.h>#include<string.h>char*scrap(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]));/*庫函數(shù)strcpy對寧符中進行復制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運行時依次輸入:abcd、4bba和abc三個寧符市,則輸出結果為
A.abcdB.abbaC.abcD.abca
53.若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。
A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);
54.線性表的順序存儲結構和線性表的鏈式存儲結構分別是______。
A.順序存取的存儲結構、順序存取的存儲結構
B.隨機存取的存儲結構、順序存取的存儲結構
C.隨機存取的存儲結構、隨機存取的存儲結構
D.任意存取的存儲結構、任意存取的存儲結構
55.為了提高測試的效率,應該()。
A.隨機選取測試數(shù)據(jù)
B.取一切可能的輸入數(shù)據(jù)作為測試數(shù)據(jù)
C.在完成編碼以后制定軟件的測試計劃
D.集中對付那些錯誤群集的程序
56.下列關于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
57.在深度為5的滿二叉樹中,葉子結點的個數(shù)為A.32B.31C.16D.15
58.以下函數(shù)值的類型是_______。fun(floatx){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
59.下面的程序執(zhí)行后,文件test.t中內容是______。#include<stdio.h>voidfun(char*fName,char*st){FILE*myf;inti;myf=fopm(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}
A.hello,B.newworldhelloC.newworldD.hello.rld
60.有以下程序main(){inta=7,b=8,*p,*q,*r;p-&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);程序運行后的輸出結果是
A.8,7,8,7B.7,8,7,8C.8,7,7,8D.7,8,8,7
四、選擇題(20題)61.下列敘述中正確的是()。
A.在面向對象的程序設計中,各個對象之間具有密切的關系
B.在面向對象的程序設計中,各個對象都是公用的
C.在面向對象的程序設中,各個對象之間相對獨立,相互依賴性小
D.上述3種說法都不對
62.
下列程序的輸出結果是()。
main
{inta,b,d=25;
a=d/10%9;
b=a&&(一1);
printf("%d,%d\n",a,b);}
A.6,1B.2,1C.6,0D.2,0
63.在數(shù)據(jù)管理技術的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()。A.A.數(shù)據(jù)庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數(shù)據(jù)項管理
64.程序調試的任務是()。
A.設計測試用例B.驗證程序的正確性C.發(fā)現(xiàn)程序中的錯誤D.診斷和改正程序中的錯誤
65.以下關于retllm語句的敘述中正確的是()。
A.一個自定義函數(shù)中必須有一條return語句
B.一個自定義函數(shù)中可以根據(jù)不同情況設置多條retum語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處
66.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)和相關文檔的集合
67.設j為Int型變量,則下面for循環(huán)語句的執(zhí)行結果是()。
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
A.63B.74C.62D.73
68.為了避免嵌套的條件分支語句if—else的二義性,C語言規(guī)定:C程序中的else總是與_____組成配對關系。
A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if
69.以下不構成無限循環(huán)的語句或語句組是()。
70.
下列程序的輸出結果是()。
intfl(intx,inty){returnx>y?x:y;)
intf2(intx,inty){returnx>y?y:x;}
main
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
71.
72.從循環(huán)體內某一層跳出,繼續(xù)執(zhí)行循環(huán)外的語句是:___________。
A.break語句B.return語句C.continue語句D.空語句。
73.計算機能直接執(zhí)行的程序是()。
A.源程序B.目標程序C.匯編程序D.可執(zhí)行程序
74.執(zhí)行下列程序后,變量a,b,C的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?X:++y;b=++x:c=y:A.a=5,b=5,c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職場中如何進行孩子的情緒管理培訓
- 職場中如何使用與維護公共操場的健身設備
- 教育背景下的小學語文國際交流項目探討
- 疫情后時代的寵物消費變化分析
- 移動技術在校園信息化建設中的應用探討
- 閱讀俱樂部在小學生閱讀能力培養(yǎng)中的作用研究
- 科技公司如何建立穩(wěn)固的法律架構
- 科技助力校園操場的可持續(xù)發(fā)展研究報告
- 跨部門溝通與協(xié)作的總結(共8篇)
- 2025年福建藝術職業(yè)學院高職單招職業(yè)適應性測試近5年常考版參考題庫含答案解析
- 藝術培訓校長述職報告
- ICU新進人員入科培訓-ICU常規(guī)監(jiān)護與治療課件
- 人教版一年數(shù)學下冊全冊分層作業(yè)設計
- 選擇性必修一 期末綜合測試(二)(解析版)2021-2022學年人教版(2019)高二數(shù)學選修一
- 學校制度改進
- 各行業(yè)智能客服占比分析報告
- 年產30萬噸高鈦渣生產線技改擴建項目環(huán)評報告公示
- 民謠酒吧項目創(chuàng)業(yè)計劃書
- 2023年珠海市招考合同制職員筆試參考題庫(共500題)答案詳解版
- 心電監(jiān)護考核標準
- 特種行業(yè)許可證申請表
評論
0/150
提交評論