




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年安徽省池州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個算法的語句執(zhí)行次數為(2n2+2nlog2n+4n-7),則其時間復雜度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
2.
3.以下程序的輸出結果是().A.A.0B.29C.31D.無定值
4.現有二叉搜索樹(BST)前序遍歷結果序列為abdefgc,中序遍歷結果序列為debgfac,請問后序遍歷結果序列為()
A.debgfaCB.edgfbcAC.edgbfcAD.degbfaC
5.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結果是()。
A.3B.13C.1D.0
6.數據的存儲結構是指()。
A.數據所占的存儲空間
B.數據的邏輯結構在計算機中的存放形式
C.數據在計算機中的順序存儲方式
D.存儲在計算機外存中的數據
7.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()。A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段
8.以下程序的輸出結果是()。main{intx=0.5;charz=‘a’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
9.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運行后的輸出結果是()。
A.0101B.1000C.1100D.1010
10.數據庫設計包括兩個方面的設計內容,它們是()。
A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計
11.若有以下語句:typedefstructS{intg;charh;}T;以下敘述中正確的是()。A.可用S定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量
12.在Windows環(huán)境下,單擊當前應用程序窗口中的“關閉”按鈕,其功能是A.將當前應用程序轉為后臺運行
B.退出Windows后再關機
C.退出Windows后重新啟動計算機
D.終止當前應用程序的運行
13.
14.下列關于線性表、棧和隊列的敘述,錯誤的是()。
A.線性表是給定的n(n必須大于零)個元素組成的序列
B.線性表允許在表的任何位置進行插入和刪除操作
C.棧只允許在一端進行插入和刪除操作
D.隊列允許在一端進行插入在另一端進行刪除
15.軟件詳細設計的主要任務是確定每個模塊的()。
A.算法和使用的數據結構B.外部接口C.功能D.編程
16.以下選項中,能表示邏輯值“假”的是()
A.1B.0.000001C.0D.100.0
17.下列敘述中錯誤的是()。
A.可以給指針變量賦一個整數作為地址值
B.函數可以返回地址值
C.改變函數形參的值,不會改變對應實參的值
D.當程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值
18.設C語言中,一個int型數據在內存中占2個字節(jié),則unsignedint型數據的取值范圍為()。
A.0~255B.0~32767C.0~65535D.0~2147483647
19.十六進制數BB轉換成十進制數是()
A.192B.256C.187D.121
20.有以下程序:
程序運行后的輸出結果是()。
A.0B.一1C.1D.7
二、2.填空題(20題)21.下面程序的運行結果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
22.若有以下程序
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",A);
}
執(zhí)行后輸出結果是【】。
23.數據結構分為邏輯結構與()。
24.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
25.設當前盤為A盤,當前系統(tǒng)提示符為“>”在不改變當前盤情況下,顯示C盤的當前目錄路徑,應使用命令【】。
26.以下程序用于判斷a、b、c能否構成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構成三角形*/
elseprintf("NO\n");/*a、b、c不能構成三角形*/
}
27.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運行后的輸出結果是()。
28.閱讀程序,填空補充程序。
#define【】30
main()
{【】;
num=10;
total=num*PRICE;
printf("total=%d,num=%d\n",【】);
}
29.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA"m,"BB","CC:,"DD"};
printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);
}
30.以下程序段的功能是統(tǒng)計鏈表中結點的個數,其中first為指向第一個結點的指針(鏈表帶頭結點)。請在下劃線內填入正確內容。
structlink
{chardata;
structlink*next;};
…
structlink*p,*first;
intc=0;
p=first;
while(【】)
{c++;
p=【】;}
31.對下列二叉樹進行中序遍歷的結果為【】。
32.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
33.下面程序的運行結果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
34.設有如下變量說明,則a+(int)((int)b+c)>>(int)(b-c)的值為【】。
inta=5;floatb=7.2,c=3.6;
35.軟件測試分為白箱(盒)測試和黑箱(盒)測試?;韭窂綔y試方法屬于()測試。
36.已有定義:double*p;,請寫出完整的語句,利用malloc函數使p指向一個雙精度型的動態(tài)存儲單元______。
37.以下程序的輸出結果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
38.下列程序的輸出結果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
39.下列程序可以判斷輸入的年份是不是閏年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是閏年",year);
else
printf("%d年不是閏年\n",year);
}
40.若a=10,b=20,則表達式!(a<b)的值是【】。
三、1.選擇題(20題)41.設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);
A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次
42.設變量a是int型,f是float型,i是double型,則表達式10+′a′+i*f值的數據類型為
A.intB.floatC.doubleD.不確定
43.一個棧的輸入序列為1,2,3,4,下列選項中的______序列不可能是這個棧的輸出序列。
A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,1
44.有以下定義和語句:structstudents{intnum;charname[20];charc;struct{intgrade1;intgrade2;}s;};structstudentsw,*pw;*pw=w;下列賦值語句不正確的是()。
A.w.num=1002;B.w.grade1=85;C.pw->num=1002;D.w.s.grade2=85;
45.用樹形結構來表示實體之間聯系的模型稱為______。
A.關系模型B.網狀模型C.層次模型D.以上3個都是
46.請選出以下語句的輸出結果Printf("%d\n",strlen("\t\"\065\xff\n"));
A.5B.14C.8D.輸出項不合法,無正常輸出
47.下列程序執(zhí)行后的輸出結果是()main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.隨機數
48.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結束
D.軟件維護是指修復程序中被破壞的指令
49.有下列程序段:structSt{intx;int*y;)*pt;inta[]={1,2),b[]={3,4);structstc[2]={10,a,20,b);pt=c;下列選項中表達式的值為11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
50.以下選項中不屬于字符常量的是
A.′C′B.′′C′′C.′\xCC′D.′\072′
51.以下選項中正確的語句組是()。
A.chars[];s="HELLO!";
B.char*s;s={"HELLO!"};
C.chars[10];s="HELLO!";
D.char*s;s="HELLO!";
52.有下列二叉樹,對此二叉樹前序遍歷的結果為()。
A.XZCYABB.XYZABCC.XYABCZD.XYAZBC
53.以下關于函數的敘述中正確的是______。A.每個函數都可以被其他函數調用(包括main函數)
B.每個函數都可以被單獨編譯
C.每個函數都可以單獨運行
D.在一個函數內部可以定義另一個函數
54.待排序的關鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關鍵碼值遞增的順序排序,采取以第一個關鍵碼為基準元素的快速排序法,第一趟排序后關鍵碼33被放到第()個位置。
A.3B.5C.7D.9
55.下面的概念中,不屬于面向對象方法的是()。
A.對象B.繼承C.類D.過程調用
56.若a、b、c1、c2、x、y均是整型變量,則正確的switch語句是______。
A.swich(a+b);{case1:y=a+b;break;case0:y=a-b;break;}case3:y=b-a,break;
B.switch(a*a+b*b){case3:case1:y=a+b;break;}
C.switcha{casec1:y=a-b;break;casec2:x=a*d;break;default:x=a+b;}
D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a-b;break;}
57.sizeof(char)是()。
A.一種函數調用B.一個整型表達式C.一個字符型表達式D.一個不合法的表達式
58.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
59.若i是int型變量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的輸出結果是______。
A.**4##5B.##4**5C.**4**5D.##4##5
60.若有定義“char,*p2,*p3,*p4,ch;”,則不能正確賦值的程序語句為()
A.p1=&ch;scanf("%c",p1);
B.p2=(char*)malloc(1);scanf("%c",p2);
C.p3=getchar();
D.p4=&ch;*p4=getchar();
四、選擇題(20題)61.
62.有定義語句:intm=1,n=2,P=5,x;,則以下選項中各程序段執(zhí)行后,x的值不等于5的是()。
A.
B.
C.
D.
63.以下可用作C語言用戶標識符的是()
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
64.
65.有以下程序
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p])
____;
return(p);
}
在下畫線處應填入的是
A.i=pB.a[p]=a[i]
C.p=jD.p=i
66.以下選項中,合法的一組c語言數值常量是()。
A.12.0Xa234.5e0
B.028.5e…30xf
C.1774el.50abe
D.0x8A10,0003.e5
67.
68.
數字字符0的ASCII值為48,運行以下程序的輸出結果是()。
main
(chara=1,b=2;
printf("%C,",b++);printf("%d\n",b—a);}
A.3,2B.50,2C.2,2D.2,50
69.以下程序的輸出結果是()。
A.20,024,0x14
B.20,24,14
C.20,0x14,024
D.20,20,20
70.
71.常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數組D.線性存儲結構和非線性存儲結構
72.有以下程序:
#include<stdio.h>
main()
{FILE*fp;inti,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w+");
for=(i=o;i<6;,i++)fpintf(fp,"%d\n",a[i]);
rewind(fp);
for(i=0;i%6;i++)fscanf(fp,"%d",&a[5-i]);
fclose(fp);
for(i=0;i%6;i++)printf("%d,",a[i]);
}
程序運行后的輸出結果是()。
A.4,5,6,1,2,3,
B.1,2,3,3,2,1,
C.1,2,3,4,5,6,
D.6,5,4,3,2,1,
73.設文件指針fp已定義,執(zhí)行語句fp=fopen(”61e”,”W”);后,以下針對文本文件file操作敘述的選項中正確的是()。
A.只能寫不能讀B.寫操作結束后可以從頭開始讀C.可以在原有內容后追加寫D.可以隨意讀和寫
74.以下程序的輸出結果是()。
A.678910
B.13579
C.12345
D.62345
75.
76.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
77.有如下程序段:
執(zhí)行該程序段后,X的值為()。
A.trueB.falseC.0D.1
78.軟件生命周期中所花費用最多的階段是()。
A.詳細設計B.軟件編碼C.軟件測試D.軟件維護
79.若有定義語句:intm[]={1,2,3,4,5},i=4;,則下面對m數組元素的引用中錯誤的是
A.m[++i]B.m[1*2]
C.m[m[0]]D.m[m[--i]]
80.以下程序段中的變量已正確定義。
for(i=0;i<;4;i++,i++)
for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結果是()。
A.*B.****C.**D.********
五、程序改錯題(1題)81.下列給定的程序中,函數proc()的功能是:計算并輸出k以內最大的10個能被13或17整除的自然數之和。k的值由主函數傳人,若k的值為600,則函數的值為5671。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數其功能是移動一維數組中的內容,若數組中有n個整數,要求把下標為0~p(含p,p小于等于n-1)的數組元素平移到數組的最后。例如,一維數組中的原始內容為1、2、3、4、5、6、7、8、9、10;P的值為3。移動后,一維數組中的內容應為5、6、7、8、9、10、1、2、3、4。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){ inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15; printf(“Theoriginaldata:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\nEnterp:”); scanf(“%d”,&p); fun(a,p,n); printf(“\nThedataaftermoving:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\n”);}
參考答案
1.A
2.B
3.C
4.B
5.AC語言中的轉義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數結束,因此計數為3。故本題答案為A選項。
6.B解析:數據的存儲結構,又稱為數據的物理結構,是數據的邏輯結構在計算機中的存放形式,數據的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。
7.CE-R圖轉換成關系模型數據則是把圖形分析出來的聯系反映到數據庫中,即設計出表,所以屬于邏輯設計階段。
8.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a’<‘z’)=1&&1=1,故選擇B選項。
9.D函數fun的作用是求一個十進制數的二進制數。通過輾轉相除法獲取這個整數的二進制數。因此(10)10=(1010)2。故本題答案為D選項。
10.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據特定的計算機系統(tǒng),對數據的存儲結構和存取方法進行設計,從而實現從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數據庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數據庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數據庫系統(tǒng)的功能(動態(tài)特性)。
11.B解析:語句typedefstructS{intg;charh;}T的作用是用T作為struetS{intg;charh;)的簡寫,所以選B。
12.D
13.B
14.A解析:線性表的插入和刪除允許在任何位置進行,所以B選項的說法是正確的;棧的操作只允許在棧頂進行,因此,棧稱為先進后出表(FILO,FirstInLastOut),或“后進先出”表(LIFO,LastInFirstOut),所以C選項說法也是正確的;隊列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊頭(front),允許插入的一端叫做隊尾(rear),因此隊列亦稱作先進先出(FIFO,FirstInFirstOut)的線性表,或后進后出(LILO,LastInLastOut)的線性表。所以D選項說法也是正確的。
15.A解析:從軟件開發(fā)的工程化觀點來看,在使用程序設計語言編制程序以前,需要對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。詳細設計的任務就是要決定各個模塊的實現算法,并精確表達出這些算法。本題正確答案為選項A。
16.C\n本題考查邏輯值假,在程序中非0字符表示邏輯真,0表示邏輯假,所以答案選擇C。
\n
17.A不能將一個整數直接賦給指針變量作為地址值,A選項錯誤。函數的返回值可以是地址,即指針。函數調用中形參值的變化不會傳遞給實參。故本題答案為A選項。
18.C
19.C
20.Ba一一的含義是先用后減l,所以當a的值為0時,跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。
21.8080解析:數組a是共用體變量,共用體類型變量所占的內存長度為最大成員的長度,即單精度數組的長度,為4×4=16,因此,數組a所占的內存長度為5×16=80,所以最后輸出的s的值為80。
22.77解析:字符型數據可作為整型參加算術運算,其值為其對應的ASCII碼。'H'-'A',的結果是7,加'0'后是'7'的ASCII碼,所以輸出的是字符'7'。
23.存儲結構存儲結構解析:數據結構是指相互之間存在一種或多種特定關系的數據元素的集合,即數據的組織形式。它分為數據的邏輯結構和數據的存儲結構。
24.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
25.CDC:(CD與C:中間至少要有一個空格)CDC:(CD與C:中間至少要有一個空格)
26.(a+b>C)&&(a+c>B)&&(b+c>A)(a+b>C)&&(a+c>B)&&(b+c>A)解析:本題主要考查運算符邏輯與“&&”的用法。
27.98
28.PRICEintnumtotaltotalnumPRICE\r\nintnum,total\r\ntotal,num解析:程序中出現了變量num,total以及宏PRICE,因此應在相應位置說明它們。
29.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數中,要打印的數組元素是aa[3]、aa[1]、aa[2],因此最后的打印結果應當為“DDBBCC”。
30.p!=NULLp->nextp!=NULL\r\np->next解析:結構體變量構成鏈表需要每個節(jié)點中都有一個指向下一個結點的指針,就像本題中的next指針一樣。注意:掌握可以對鏈表進行的操作。
31.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當二叉樹的根不為空時,依次執(zhí)行如下3個操作:①按中序遍歷左子樹。②訪問根結點。③技中序遍歷右子樹。根據遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結點A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結點B,然后訪問結點D,因為結點D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結點F的左子樹。然后訪問根結點F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結點E,然后訪問結點E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結點G,最后訪問G的右子樹P。以上就把整個二叉樹遍歷一遍,中序遍歷的結果為ACBDFEHGP。因此,劃線處應填入“ACBDFEHGP”。
32.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數,將該數存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
33.3030解析:考查for循環(huán)的使用。題目中for(;;)表示:for循環(huán)的初始化表達式,條件表達式和修正表達式都省略了,表示進行for循環(huán)和for循環(huán)的終止都沒有限制。
34.11解析:在表達式a+(int)((int)b+c)>>(int)(b-c)中圓括號最優(yōu)先,其次為類型轉換(int)、加法+、減法-、右移運算>>。所以先看兩個圓括號((int)b+c)和(b-c),前者b先被轉換為int型7,然后與c相加得10.6,后者結果是3.6,現在表達式為a+(iot)10.6>>(int)3.6。C語言中,float型轉換為int型是截尾取整,所以表達式進一步簡化為5+10>>3=>15>>3。由于15的二進制為000011112(下標),所以15>>3的結栗是000000012(下標),即1。
35.自盒自盒解析:自盒測試法即結構測試,它與程序內部結構相關,要利用程序結構的實現細節(jié)設計測試實例。白盒測試法主要有邏輯覆蓋、基本路徑測試等。
36.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數只有一個參數,該參數指定了需要分配多少字節(jié)的內存。然后將分配好的內存塊的首地址作為void*(未知類型指針)返回.故標準的調用形式應該寫成:
p(double*)malloc(sizeof(double));
37.1010解析:整型指針最初被賦的值是數組arr的頭指針,即指向數組的第一個元素30,p++后,指針指向數組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。
38.1234theend1,2,3,4,theend解析:本題考查帶參數的宏的定義。第1次循環(huán),i=1時,調用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時,調用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時,調用PRINT(4),P(4)輸出4,theend。
39.yearleap=1leap
40.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。
41.B解析:本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符“!”的優(yōu)先級大于不等于運算符“!=”的優(yōu)先級。注意:for語句和do…while語句的使用。
42.C解析:根據混合運算規(guī)則,如果有一個數據是float型或double型,則其他數據類型先轉化為double型,運算的結果最終也是double型。
43.C
44.B
45.C解析:層次模型的基本結構是樹形結構,這種結構方式在現實世界中很普遍,如家族結構、行政組織機構等,它們自頂向下、層次分明。由第一章樹的知識,知道任一樹結構均有下列特性:(1)每棵樹有且僅有一個無雙親結點,稱為根(root)。(2)樹中除根外所有結點有且僅有一個雙親。因此,樹結構是受到一定限制的,從E-R模型觀點看,它對于聯系也加上了許多限制。
46.A解析:本題考查用strlen函數計算字符串長度的方法。該字符串中包含的字符是:\'\\t\'(跳格符)、\'\\'\'(雙引號)、\'\\065\'(ASCII值為八進制065,也即+進制為51的字符)、\'\\xff\'(ASCII值為+六進制ff,也即+進制為255的字符)、\'\\n\'(換行符)。
47.B
48.A解析:維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學的目的就在于提高軟件的可維護性,同時也要設法降低維護的代價。
軟件維護通常有以下四類;
①為糾正使用中出現的錯誤而進行的改正性維護;
②為適應環(huán)境變化而進行的適應性維護;
③為改進原有軟件而進行的完善性維護;
④為將來的可維護和可靠而進行的預防性維護。
軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。
49.C解析:由題目的已知條件可知,pt指向結構體數組c[2]的第一元素c[0],所以pt->x=10,執(zhí)行自加運算后為11。
50.B解析:在C語言程序中,用單引號把一個字符或反斜線后跟一個特定的字符括起來表示一個字符常量。選項A)、C)和D)為正確的字符常量,而選項B)是用雙引號括起來的字符,表示一個字符串常量。
51.D本題考查數組和字符串的賦值。選項A)中數組s沒有明確其大小就賦值是錯誤的。選項B)中不能有大括號,選項C)中的寫法應該為{\'H\'\'E\'\'L\'\'L\'\'O'!\'}。
52.D解析:對二叉樹的前序遍歷是指先訪問根結點,然后訪問左于樹,最后訪問右子樹,并且在訪問左、右子樹時,先訪問根結點,再依次訪問其左、右于樹。
53.B解析:本題考查函數的一些概念.main()函數是一個程序的主函數,它由系統(tǒng)調用,所以選項A不正確。一個C語言源程序文件可以只包含一個函數,每個源文件都可以被單獨編譯成。obj文件,最后鏈接成可執(zhí)行文件。因此每個函數都可以被單獨編譯,選項B正確。一個C程序必須從主函數main()開始運行,其他函數只能是直接或間接被main()函數調用才能得以運行,因此選項C錯誤。C語言不支持函數的嵌套定義,所有函數只能是全局函數,所以選項D錯誤。故應該選擇B。
54.BB.【解析】快速排序的基本思想是:從表中選取一個元素(如本題中的33),將表中小于此元素的移到前面,大于此元素的移到后面,結果把線性表分割成兩部分(兩個子表),此元素插入到其分界線的位置處。然后分別對兩個子表再次分割……本題中33作為分割的中界線,第一趟排序后排在比它小的18、9、25、12后面。
55.D解析:面向對象方法是一種運用對象、類、封裝、繼承、多態(tài)和消息等概念來構造、測試、重構軟件的方法。面向對象方法從對象出發(fā),發(fā)展出對象、類、消息、繼承等概念。
56.D
57.B解析:sizeof(char)是一個C語言的關鍵字,它不是函數調用。sizeof的功能是計算出運算對象在計算機的內存中所占用的字節(jié)數量,該表達式的返回值是一個整數,而不是一個字符型表達式。
58.A解析:關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。
59.B解析:函數printf中的參數是三目條件表達式,循環(huán)控制變量i值為4時,i%2為0,格式控制字符串為'##%d\\n',輸出為##4;循環(huán)控制變量i值為5時,i%2為1,格式控制字符串為'**%d\\n',輸出為*5,兩次輸出不在同一行。
60.C
61.D
62.C選項A),執(zhí)行else子句,執(zhí)行后x=5。選項B),執(zhí)行if子句,執(zhí)行后x=5。選項D),執(zhí)行if子句,執(zhí)行后x=P=5。選項c),執(zhí)行if子句,執(zhí)行后X=2。
63.BC語言規(guī)定用戶標識符由字母、數字和下劃線組成,且第一個字符必須是字母或下劃線,可見選項C),D)是錯誤的;此外,c語言不允許用戶將關鍵字作為標識符,而選項A)中的void正是C語言的關鍵字。
64.D
65.D本題考查對程序作用的理解。該函數具有兩個形參a和n,a為數組名,n為數組中元素的個數。函數的返回值為p,這里p為數組的下標。初始時,i、j、p都為0,for循環(huán)的初始表達式為i=j,條件表達式為i<n,也就是當i=n時,for循環(huán)結束。該for循環(huán)表達的含義為:初始時,令a[i]=a[p]=a[0],隨后i可從0開始遞增,直到n-1,對于每一個a[i],都與a[p]進行比較,空白處需要填入語句的部分是if語句滿足條件后要進行的操作,表示如果a[i]<a[p],應當進行怎樣的處理。選項A是令i=p,此時整個程序中p的值沒有發(fā)生改變,p=0,即如果a[i]<a[p],則令i=0,回到了初始化的狀態(tài),這樣在for語句中造成了死循環(huán),該選項錯誤。選項B是令a[p]=a[i],整個程序在運行過程中,p的值依然沒有變化,p=0,即如果a[i]<a[0],則令a[0]=a[i],整個程序運行結束后,a[0]的數值應該為整個數組的最小值,用return語句返回下標0沒有意義。選項C是令p=j,程序在運行過程中,j的值和p的值都沒有發(fā)生改變,整個程序沒有意義。選項D是p=i,該語句的含義是如果a[i]<a[p],則令p=i,程序結束后則有a[p]為數組中的最小值,將最小值的下標返回。
66.AC語言中八進制整型常量的開頭是數字0,十六進制整型常量的數字開頭是Ox。C語言中的實型常量有兩種表示形式:小數形式,小數形式表示的實型常量必須要有小數點;指數形式,以“e”或“E",后跟一個整數來表示以l0為底數的冪數,且規(guī)定字母e或E之前必須要有數字,且e或E后面的指數必須為整數。B選項中028錯誤,八透割中沒有數字8。c選項中4el.5中e后面的指數不是整數:D選項中3.e5小數點后面缺少數字。
67.B
68.C
\nb++是先用表達式的值然后自增l,因此表達式值為2,b為3;b-a=3-1=2,因此最后輸出的結果為2,2,前一個為字符2,后一個為數字2。
\n
69.B本題的考查點是不同格式的數據輸出。prinff函數對不同類型的數據用不同的格式字符,”%d”是以帶符號的十進制形式輸出整數(正數不輸出符號);”%O”以八進制無符號形式輸出整數(不包括前導符0);”%x”以十六進制無符號形式輸出整數(不包括前導符0x)。
70.D
71.AA。【解析】線性表的存儲通常分為兩種存儲結構:順序存儲結構和鏈式存儲結構。
\n
72.D\n這個是對文件的操作,把數組的數寫到文件里,然后再從文件里倒序讀出。所以輸出結果為6,5,4,3,2,1。
\n
73.A考查文件操作函數fopen的基礎知識,以”W”方式打開文件,只能寫不能讀。選項A正確。
74.Achange函數的功能是將數組中的第6個元素值賦給第l個元素。第一次調用后,x[0]=x[5]=6。第二次調用實際是以x的第2個元素作為數組首元素,所以調用結束時x[1]=x[6]=7。后三次調用分別將x[2]、x[3]、x[4]賦值為8、9、10。
75.C
76.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數為7,但其中出現'9',','是字符逗號;選項D中,'\n'表示的是換行。
77.D在c語言中,邏輯運算符有4個,它們分
78.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。本題中,詳細設計、軟件編碼和軟件測試都屬于軟什開發(fā)階段;維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費代價最大的一個階段.軟件工程學的一個目的就是提高軟件的可維護性,降低維護的代價。
79.A本題考查一維數組的引用。一維數組表示為數組名[下標],下標可以是整型常量或整型表達式,題目中給出的四個選項,在格式上都是正確的。A選項中,首先進行++i運算,運算的結果為5,而該數組初始化后有效取值范圍為m[0]~m[4],m[5]不存在,引用錯誤。B選項引用的是m[2]中的數值3。C選項先計算m[0]中的數據,得到1,隨后計算m[1]中的數值,可得2。D選項先計算m[--i],得到m[3]中的數據4,隨后計算m[4]中的數值,可得5。
80.Ac語言約定分號為一條語句的結束。因此for(i=0;i<4;i++,i++)for(k=1;k<3;k++);是完整的語句,對研nd();沒有任何影響,最后一nff(”·’),執(zhí)行一次。因此答案為A選項。
81.(1)錯誤:if((k%13=0)||(k%17=0))
正確:if((k%13==0)||(k%17==0))
(2)錯誤:缺少大括號
正確:在“k-=;”后加}
【解析】題目中要求能被13或17整除的自然數,判斷整除條件是取余恒等于0,判斷相等的符號應該用“==”,符號“=”是賦值符號,因此“=”應改為“==”;在C語言中,括號一定是成對出現的,因此,在語句“k——;”后要加上符號“}”。
82.voidfun(int*w,intp,intn){ intX,j,ch; for(x=0;x<=p;x++) { ch=w[0]; for(j=1;j /*通過for循環(huán)語句,將p+1~n-1(含n-1)之間的數組元素依次向前移動p+1個存儲單元*/ { w[j-1]=w[j]; } w[n-1]=ch; /*將下標為0~p的數組元素逐一賦給數組w[n-1]*/ }}本題要求把下標為0~p(含p,p小于等于n-1)的數組元素平移到數組的最后??梢愿鶕斎氲膒值,通過for循環(huán)語句,將p+1~n-1(含n-1)之間的數組元素依次向前移動p+1個存儲單元,即w[j-1]=w[j];。同時將下標為0~p的數組元素逐一賦給數組w[n-1],也就是通過語句w[n-1]=ch;來實現此操作。2021年安徽省池州市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個算法的語句執(zhí)行次數為(2n2+2nlog2n+4n-7),則其時間復雜度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
2.
3.以下程序的輸出結果是().A.A.0B.29C.31D.無定值
4.現有二叉搜索樹(BST)前序遍歷結果序列為abdefgc,中序遍歷結果序列為debgfac,請問后序遍歷結果序列為()
A.debgfaCB.edgfbcAC.edgbfcAD.degbfaC
5.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結果是()。
A.3B.13C.1D.0
6.數據的存儲結構是指()。
A.數據所占的存儲空間
B.數據的邏輯結構在計算機中的存放形式
C.數據在計算機中的順序存儲方式
D.存儲在計算機外存中的數據
7.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()。A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段
8.以下程序的輸出結果是()。main{intx=0.5;charz=‘a’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
9.有以下程序:#include<stdio.h>voidfun(intn){if(n/2)fun(n/2);printf(“%d”,n%2);}main(){fun(10);printf(“\n”);}程序運行后的輸出結果是()。
A.0101B.1000C.1100D.1010
10.數據庫設計包括兩個方面的設計內容,它們是()。
A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計
11.若有以下語句:typedefstructS{intg;charh;}T;以下敘述中正確的是()。A.可用S定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量
12.在Windows環(huán)境下,單擊當前應用程序窗口中的“關閉”按鈕,其功能是A.將當前應用程序轉為后臺運行
B.退出Windows后再關機
C.退出Windows后重新啟動計算機
D.終止當前應用程序的運行
13.
14.下列關于線性表、棧和隊列的敘述,錯誤的是()。
A.線性表是給定的n(n必須大于零)個元素組成的序列
B.線性表允許在表的任何位置進行插入和刪除操作
C.棧只允許在一端進行插入和刪除操作
D.隊列允許在一端進行插入在另一端進行刪除
15.軟件詳細設計的主要任務是確定每個模塊的()。
A.算法和使用的數據結構B.外部接口C.功能D.編程
16.以下選項中,能表示邏輯值“假”的是()
A.1B.0.000001C.0D.100.0
17.下列敘述中錯誤的是()。
A.可以給指針變量賦一個整數作為地址值
B.函數可以返回地址值
C.改變函數形參的值,不會改變對應實參的值
D.當程序的開頭包含頭文件stdio.h時,可以給指針變量賦NULL值
18.設C語言中,一個int型數據在內存中占2個字節(jié),則unsignedint型數據的取值范圍為()。
A.0~255B.0~32767C.0~65535D.0~2147483647
19.十六進制數BB轉換成十進制數是()
A.192B.256C.187D.121
20.有以下程序:
程序運行后的輸出結果是()。
A.0B.一1C.1D.7
二、2.填空題(20題)21.下面程序的運行結果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
22.若有以下程序
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",A);
}
執(zhí)行后輸出結果是【】。
23.數據結構分為邏輯結構與()。
24.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
25.設當前盤為A盤,當前系統(tǒng)提示符為“>”在不改變當前盤情況下,顯示C盤的當前目錄路徑,應使用命令【】。
26.以下程序用于判斷a、b、c能否構成三角形,若能,輸出YES,否則輸出NO。當給a、b、c輸入三角形三條邊長時,確定a、b、c能構成三角形的條件是需同時滿足三個條件:a+b>c,a+c>b,b+c>a。請?zhí)羁铡?/p>
main()
{floata,b,c;
scanf("%f%f%f",&a,&b,&C);
if(())printf("YES\n");/*a、b、c能構成三角形*/
elseprintf("NO\n");/*a、b、c不能構成三角形*/
}
27.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','h','\0'};inti,j;i=sizeof(A);j=strlen(A);printf("%d,%d",i,j);}程序運行后的輸出結果是()。
28.閱讀程序,填空補充程序。
#define【】30
main()
{【】;
num=10;
total=num*PRICE;
printf("total=%d,num=%d\n",【】);
}
29.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA"m,"BB","CC:,"DD"};
printf("%s%s%s\n,aa[em1],aa[em2],aa[em3]);
}
30.以下程序段的功能是統(tǒng)計鏈表中結點的個數,其中first為指向第一個結點的指針(鏈表帶頭結點)。請在下劃線內填入正確內容。
structlink
{chardata;
structlink*next;};
…
structlink*p,*first;
intc=0;
p=first;
while(【】)
{c++;
p=【】;}
31.對下列二叉樹進行中序遍歷的結果為【】。
32.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
33.下面程序的運行結果是【】。
main()
{inti=0,j=10,k=2,s=0;
for(;;)
{i+=k;
if(i>j)
{printf("%d\n",s);
break;}
s+=i;}}
34.設有如下變量說明,則a+(int)((int)b+c)>>(int)(b-c)的值為【】。
inta=5;floatb=7.2,c=3.6;
35.軟件測試分為白箱(盒)測試和黑箱(盒)測試。基本路徑測試方法屬于()測試。
36.已有定義:double*p;,請寫出完整的語句,利用malloc函數使p指向一個雙精度型的動態(tài)存儲單元______。
37.以下程序的輸出結果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
38.下列程序的輸出結果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
39.下列程序可以判斷輸入的年份是不是閏年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是閏年",year);
else
printf("%d年不是閏年\n",year);
}
40.若a=10,b=20,則表達式!(a<b)的值是【】。
三、1.選擇題(20題)41.設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);
A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次
42.設變量a是int型,f是float型,i是double型,則表達式10+′a′+i*f值的數據類型為
A.intB.floatC.doubleD.不確定
43.一個棧的輸入序列為1,2,3,4,下列選項中的______序列不可能是這個棧的輸出序列。
A.1,3,2,4B.2,3,4,1C.4,3,1,2D.3,4,2,1
44.有以下定義和語句:structstudents{intnum;charname[20];charc;struct{intgrade1;intgrade2;}s;};structstudentsw,*pw;*pw=w;下列賦值語句不正確的是()。
A.w.num=1002;B.w.grade1=85;C.pw->num=1002;D.w.s.grade2=85;
45.用樹形結構來表示實體之間聯系的模型稱為______。
A.關系模型B.網狀模型C.層次模型D.以上3個都是
46.請選出以下語句的輸出結果Printf("%d\n",strlen("\t\"\065\xff\n"));
A.5B.14C.8D.輸出項不合法,無正常輸出
47.下列程序執(zhí)行后的輸出結果是()main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.隨機數
48.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結束
D.軟件維護是指修復程序中被破壞的指令
49.有下列程序段:structSt{intx;int*y;)*pt;inta[]={1,2),b[]={3,4);structstc[2]={10,a,20,b);pt=c;下列選項中表達式的值為11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
50.以下選項中不屬于字符常量的是
A.′C′B.′′C′′C.′\xCC′D.′\072′
51.以下選項中正確的語句組是()。
A.chars[];s="HELLO!";
B.char*s;s={"HELLO!"};
C.chars[10];s="HELLO!";
D.char*s;s="HELLO!";
52.有下列二叉樹,對此二叉樹前序遍歷的結果為()。
A.XZCYABB.XYZABCC.XYABCZD.XYAZBC
53.以下關于函數的敘述中正確的是______。A.每個函數都可以被其他函數調用(包括main函數)
B.每個函數都可以被單獨編譯
C.每個函數都可以單獨運行
D.在一個函數內部可以定義另一個函數
54.待排序的關鍵碼序列為(33,18,9,25,67,82,53,95,12,70),要按關鍵碼值遞增的順序排序,采取以第一個關鍵碼為基準元素的快速排序法,第一趟排序后關鍵碼33被放到第()個位置。
A.3B.5C.7D.9
55.下面的概念中,不屬于面向對象方法的是()。
A.對象B.繼承C.類D.過程調用
56.若a、b、c1、c2、x、y均是整型變量,則正確的switch語句是______。
A.swich(a+b);{case1:y=a+b;break;case0:y=a-b;break;}case3:y=b-a,break;
B.switch(a*a+b*b){case3:case1:y=a+b;break;}
C.switcha{casec1:y=a-b;break;casec2:x=a*d;break;default:x=a+b;}
D.switch(a-b){default:y=a*b;break;case3:case4:x=a+b;break;case10:case11:y=a-b;break;}
57.sizeof(char)是()。
A.一種函數調用B.一個整型表達式C.一個字符型表達式D.一個不合法的表達式
58.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
59.若i是int型變量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的輸出結果是______。
A.**4##5B.##4**5C.**4**5D.##4##5
60.若有定義“char,*p2,*p3,*p4,ch;”,則不能正確賦值的程序語句為()
A.p1=&ch;scanf("%c",p1);
B.p2=(char*)malloc(1);scanf("%c",p2);
C.p3=getchar();
D.p4=&ch;*p4=getchar();
四、選擇題(20題)61.
62.有定義語句:intm=1,n=2,P=5,x;,則以下選項中各程序段執(zhí)行后,x的值不等于5的是()。
A.
B.
C.
D.
63.以下可用作C語言用戶標識符的是()
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
64.
65.有以下程序
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p])
____;
return(p);
}
在下畫線處應填入的是
A.i=pB.a[p]=a[i]
C.p=jD.p=i
66.以下選項中,合法的一組c語言數值常量是()。
A.12.0Xa234.5e0
B.028.5e…30xf
C.1774el.50abe
D.0x8A10,0003.e5
67.
68.
數字字符0的ASCII值為48,運行以下程序的輸出結果是()。
main
(chara=1,b=2;
printf("%C,",b++);printf("%d\n",b—a);}
A.3,2B.50,2C.2,2D.2,50
69.以下程序的輸出結果是()。
A.20,024,0x14
B.20,24,14
C.20,0x14,024
D.20,20,20
70.
71.常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數組D.線性存儲結構和非線性存儲結構
72.有以下程序:
#include<stdio.h>
main()
{FILE*fp;inti,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w+");
for=(i=o;i<6;,i++)fpintf(fp,"%d\n",a[i]);
rewind(fp);
for(i=0;i%6;i++)fscanf(fp,"%d",&a[5-i]);
fclose(fp);
for(i=0;i%6;i++)printf("%d,",a[i]);
}
程序運行后的輸出結果是()。
A.4,5,6,1,2,3,
B.1,2,3,3,2,1,
C.1,2,3,4,5,6,
D.6,5,4,3,2,1,
73.設文件指針fp已定義,執(zhí)行語句fp=fopen(”61e”,”W”);后,以下針對文本文件file操作敘述的選項中正確的是()。
A.只能寫不能讀B.寫操作結束后可以從頭開始讀C.可以在原有內容后追加寫D.可以隨意讀和寫
74.以下程序的輸出結果是()。
A.678910
B.13579
C.12345
D.62345
75.
76.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
77.有如下程序段:
執(zhí)行該程序段后,X的值為()。
A.trueB.falseC.0D.1
78.軟件生命周期中所花費用最多的階段是()。
A.詳細設計B.軟件編碼C.軟件測試D.軟件維護
79.若有定義語句:intm[]={1,2,3,4,5},i=4;,則下面對m數組元素的引用中錯誤的是
A.m[++i]B.m[1*2]
C.m[m[0]]D.m[m[--i]]
80.以下程序段中的變量已正確定義。
for(i=0;i<;4;i++,i++)
for(k=1;k<;3;k++);prinff(”*”);該程序段的輸出結果是()。
A.*B.****C.**D.********
五、程序改錯題(1題)81.下列給定的程序中,函數proc()的功能是:計算并輸出k以內最大的10個能被13或17整除的自然數之和。k的值由主函數傳人,若k的值為600,則函數的值為5671。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數其功能是移動一維數組中的內容,若數組中有n個整數,要求把下標為0~p(含p,p小于等于n-1)的數組元素平移到數組的最后。例如,一維數組中的原始內容為1、2、3、4、5、6、7、8、9、10;P的值為3。移動后,一維數組中的內容應為5、6、7、8、9、10、1、2、3、4。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn){}main(){ inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; inti,p,n=15; printf(“Theoriginaldata:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\nEnterp:”); scanf(“%d”,&p); fun(a,p,n); printf(“\nThedataaftermoving:\n”); for(i=0;i<=""p=""> printf(“%3d”,a[i]); printf(“\n\n”);}
參考答案
1.A
2.B
3.C
4.B
5.AC語言中的轉義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數結束,因此計數為3。故本題答案為A選項。
6.B解析:數據的存儲結構,又稱為數據的物理結構,是數據的邏輯結構在計算機中的存放形式,數據的存儲結構有順序結構、鏈式結構、散列結構和索引結構等。
7.CE-R圖轉換成關系模型數據則是把圖形分析出來的聯系反映到數據庫中,即設計出表,所以屬于邏輯設計階段。
8.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a’<‘z’)=1&&1=1,故選擇B選項。
9.D函數fun的作用是求一個十進制數的二進制數。通過輾轉相除法獲取這個整數的二進制數。因此(10)10=(1010)2。故本題答案為D選項。
10.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據特定的計算機系統(tǒng),對數據的存儲結構和存取方法進行設計,從而實現從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數據庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數據庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數據庫系統(tǒng)的功能(動態(tài)特性)。
11.B解析:語句typedefstructS{intg;charh;}T的作用是用T作為struetS{intg;charh;)的簡寫,所以選B。
12.D
13.B
14.A解析:線性表的插入和刪除允許在任何位置進行,所以B選項的說法是正確的;棧的操作只允許在棧頂進行,因此,棧稱為先進后出表(FILO,FirstInLastOut),或“后進先出”表(LIFO,LastInFirstOut),所以C選項說法也是正確的;隊列(queue)是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊頭(front),允許插入的一端叫做隊尾(rear),因此隊列亦稱作先進先出(FIFO,FirstInFirstOut)的線性表,或后進后出(LILO,LastInLastOut)的線性表。所以D選項說法也是正確的。
15.A解析:從軟件開發(fā)的工程化觀點來看,在使用程序設計語言編制程序以前,需要對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。詳細設計的任務就是要決定各個模塊的實現算法,并精確表達出這些算法。本題正確答案為選項A。
16.C\n本題考查邏輯值假,在程序中非0字符表示邏輯真,0表示邏輯假,所以答案選擇C。
\n
17.A不能將一個整數直接賦給指針變量作為地址值,A選項錯誤
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)安全管理人員安全培訓試題帶答案(預熱題)
- 班組安全培訓考試題附完整答案【考點梳理】
- 部門級安全培訓試題帶下載答案可打印
- 廠級員工安全培訓考試題附完整答案(典優(yōu))
- 如何提高團隊的創(chuàng)新思維
- 公共交通中的傳染病防控措施研究
- 高效藥品篩分機行業(yè)跨境出海戰(zhàn)略研究報告
- 定制化家具生產線行業(yè)跨境出海戰(zhàn)略研究報告
- 高效清潔與維護設備租賃服務行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 造紙工業(yè)園AI應用行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- 介入手術術中安全護理措施
- 2024年蘇州農業(yè)職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 投資銀行學第4版- 課件匯 馬曉軍 第1-4章 投資銀行概述-上市公司再融資
- 2025年月度工作日歷含農歷節(jié)假日電子表格版
- 中國近現代史綱要心得體會
- 竣工結算審計服務投標方案(2024修訂版)(技術方案)
- 2025年中考語文復習課件 模塊三 語言綜合運用
- 《年產2000噸果汁型茶飲料的生產工藝設計》4600字(論文)
- 基因檢測銷售培訓
- 小學的數學課件
- 第三章-思想政治教育的地位和功能
評論
0/150
提交評論