




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年四川省成都市全國計算機等級考試C語言程序設(shè)計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列方法中,屬于白盒法設(shè)計測試用例的方法的是()。
A.錯誤推測B.因果圖C.基本路徑測試D.邊界值分析
2.將兩個各有n個元素的有序表歸并成一個有序表,最少的比較次數(shù)是()。
A.nB.2n-1C.2nD.n-1
3.
4.下列敘述中正確的是()。
A.對長度為n的有序鏈表進行查找,最壞情況下需要的比較次數(shù)為n
B.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為n/2
C.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為log2n
D.對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數(shù)為nlog2n
5.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。
A.外模式B.內(nèi)模式C.概念模式D.邏輯模式
6.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
7.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
8.
9.x>0||y==5的相反表達式為()。
A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==5
10.
11.當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是______。
A.數(shù)組的長度B.數(shù)組的首地址C.數(shù)組每一個元素的地址D.數(shù)組每個元素中的值
12.在Windows環(huán)境下,單擊當前窗口中的按鈕“”,其功能是A.將當前應用程序轉(zhuǎn)為后臺運行
B.退出Windows后再關(guān)機
C.終止當前應用程序的運行
D.退出Windows后重新啟動計算機
13.設(shè)變量a是整型,f是實型,i是雙精度型,則表達式10+'a'+i*f值的數(shù)據(jù)類型為()。
A.intB.floatC.doubleD.不確定
14.以下敘述中錯誤的是()。
A.線性結(jié)構(gòu)也能采用鏈式存儲結(jié)構(gòu)
B.線性結(jié)構(gòu)一定能采用順序存儲結(jié)構(gòu)
C.有的非線性結(jié)構(gòu)也能采用順序存儲結(jié)構(gòu)
D.非線性結(jié)構(gòu)一定不能采用順序存儲結(jié)構(gòu)
15.以下合法的字符型常量是A.B.C.D.
16.利用fseek函數(shù)可實現(xiàn)的操作是()。
A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫D.以上答案均正確
17.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-1C.非零值D.0
18.執(zhí)行以下程序后,a,b的值分別為main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}
A.-1,5B.1,6C.0,7D.4,10
19.下列能正確進行字符串賦值的是()。A.B.C.D.
20.有以下程序voidsum(inta[]){a[0]-a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf(“%d\n”,a[2]);}程序運行后的輸出結(jié)果是A.6B.7C.5D.8
二、2.填空題(20題)21.以下定義的結(jié)構(gòu)體類型里包含兩個成員,其中成員變量info用來存放整型數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針。請將定義補充完整。
structnode
{intinfo;
【】link;
};
22.下面的程序為6個整型變量A、B、C、D、E、F輸入整數(shù),并按從大到小的順序輸出整數(shù)及其所對應的變量名。例如,輸入的數(shù)為3、2、5、7、4、6,則輸出的形式為:D(7)F(6)C(5)E(4)A(3)B(2)。
#include<stdio.h>
intA,B,C,D,E,F(xiàn);
struct
{
charn;
【】;
}tb1[]={{'A',&A},{'B',&B},{'C',&c},{'D',&D),{'E',&E},{'F',&F}},t;
main()
{
inti,j;
for(i=0;i<6;i++)scanf("%d",【】);
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(【】)
{
t=tb1[j];
tb1[j]=tb1[j+1];
tb1[j+1]=t;
}
for(i=0;i<6;i++)printf("%c(%d)",tb1[i].n,*tb1[i].p);
printf("\n");
}
23.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
24.軟件結(jié)構(gòu)是以【】為基礎(chǔ)而組成的一種控制層次結(jié)構(gòu)。
25.軟件的可移植性是用來衡量軟件【】的重要尺度之一。
26.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
27.設(shè)有定義:intn,*k=&n;以下語句將利用指針變量k讀寫變量n中的內(nèi)容,請將語句補充完整。
scanf(“%d”,______);
printf(“%d\n”,______);
28.以下程序運行后的輸出結(jié)果是【】。
fun(ihtx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
29.下面invert函數(shù)的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
voidinvert(charstr[])
{inti,j,【】;
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;
}
}
30.已有定義如下:
structnode
{
intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個具有stmctnode類型的動態(tài)存儲空間。
請?zhí)羁铡?/p>
p=(structnode*)malloc();
31.下列程序的輸出結(jié)果是______。
#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");
}
32.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
33.設(shè)有以下結(jié)構(gòu)體類型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且結(jié)構(gòu)體數(shù)組student中的元素都已有值。若要將這些元素寫到硬盤文件fp中,請將以下fwrite語句補充完整:
fwrite(student,【】,1,fp);
34.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運算。
35.以下程序的功能是建立一個帶有頭結(jié)點的單向鏈表,鏈表結(jié)點中的數(shù)據(jù)通過鍵盤輸入,當輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
[14]=a;q->next=p;[15]=p;scanf("%d",&a);}
p->next='\0';return(ph);}
main()
{stuctlist*head;head=creatlist();}
36.當數(shù)據(jù)的物理結(jié)構(gòu)(存儲結(jié)構(gòu))改變時,不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應用程序的變化,這是指數(shù)據(jù)的【】。
37.
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);)
38.以下程序中函數(shù)fun的功能是求出能整除x且不是偶數(shù)的務正整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。
例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。
請按題意,完成填空。
試題程序:
#include<stdio.h>
voidfun(intx,intpp[],int*n)
{inti,j=0;
【】;
if(x%i==0)pp[j++]=i;
【】;
}
main()
{intx,aa[1000],n,i;
printf("\nPleaseenteranintegernumber:\n");
scanf("%d",&x);
fun(x,aa,&n);
for(i=0;i<n;i++)printf("%d",aa[i]);
printf("\n");
}
39.在數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計中,常用的描述工具是【】。
40.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
三、1.選擇題(20題)41.若已定義
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
其中則對a數(shù)組元素不正確的引用是
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
42.下列函數(shù)定義中,會出現(xiàn)編譯錯誤的是()。
A.max(intx,inty,int*z){*z=x>y?x:y;}
B.intmax(intx,y){intz;z=x>y?x:y;returnz;}
C.max(intx,inty){intz;z=x>y?x:y;return(z);}
D.intmax(intx,inty){return(x>y?x:y);}
43.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。
A.便于用戶、開發(fā)人員相互理解和交流
B.反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
44.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2;intfunc(int*a){b+=*a;return(b);}main(){inta=2,res=2;res+=func(&a);printf("%d\n",res);}
A.4B.6C.8D.10
45.若fp是指向某文件的指針,且尚未讀到文件末尾,則函數(shù)feof(fp)的返回值是()。
A.EOFB.-1C.非零值D.0
46.下列選項中不合法的十六進制數(shù)是()。
A.OxffB.OX11C.OxlgD.OXabc
47.有如下程序#include<stdio.h>main(){FILE*fp1;fp1;fopen("ftxt","w");fprintf(fpl,"abc")fclose(fpl);}若文本文件f1.txt中原有內(nèi)容為:good,則運行以上:程序后文件f1.Mt中的內(nèi)容為
A.goodabcB.abcdC.abcD.abcgood
48.下列關(guān)于線性鏈表的描述中正確的是()。
A.存儲空間不一定連續(xù),且各元素的存儲順序是任意的
B.存儲空間不一定連續(xù),且前件元素一定存儲在后件元素的前面
C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面
D.存儲空間必須連續(xù),且各元素的存儲順序是任意的
49.下列程序的運行結(jié)果為()。#include<stdio.h>main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}
A.8B.6C.10D.12
50.表達式-Oxll的值是()。
A.0xFFEEB.0x71C.0x0071D.0xFFEl
51.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
52.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&y
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z||1)
53.在說明語句int*f();中,標識符f代表的是______。
A.一個用于指向整型數(shù)據(jù)的指針變量
B.—個用于指向—維數(shù)組的行指針
C.—個用于指向函數(shù)的指針變量
D.一個返回值為指針型的函數(shù)名
54.以下程序的功能是進行位運算:#include<stdio.h>main()unsignedchara,b;a=7∧3;b=~4&3;printf("%d%d\n",a,b);}程序運行后的輸出結(jié)果是()。
A.43B.73C.70D.40
55.以下程序的輸出結(jié)果是______。main(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'\0';continue;}b=b+s[k]-'\0';a=a+s[k]-'\0';}while(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}
A.k=3a=98b=49
B.k=3a=99b=50
C.k=2a=99b=50
D.k=2a=98b=49
56.下列二維數(shù)組初始化語句中,不正確的是()。
A.intb[][2]={1,2,3,4,5,6,7};
B.intb[3][5]={0,0,0};
C.intb[][4]={{1,2},{3,4,5},{6}};
D.intb[3][2]={(1,2),(3,4),(5,6)};
57.能正確表示邏輯關(guān)系“a>=10或a<=0”的C語言表達式是()。
A.a>=10ora=10
B.a>=0|a<=10
C.a>=10&&a<=0
D.a>=10||a<=0
58.下面函數(shù)調(diào)用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
59.下列程序中函數(shù)son()的功能是對數(shù)組a中的數(shù)據(jù)進行由大到小的排序。#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){inta[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&a[1],7);for(i=0;i<10;i++)printf("%d,",a[i]);}程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
60.若已定義x和y為double類型,則表達式:x=1,y=x+3/2的值是()A.1B.2C.2.0D.2.5
四、選擇題(20題)61.
對兩個數(shù)組a和b進行下列初始化:
charm[]="1234567";
charn[]={1,2,3,4,5,6,7};
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同B.數(shù)組m與數(shù)組n長度相同C.數(shù)組m比數(shù)組n長1D.數(shù)組m與數(shù)組n中都存放字符串
62.有以下程序:
程序運行后的輸出結(jié)果是()。
63.如下程序的輸出結(jié)果是()。
A.69825B.63825C.6385D.693825
64.執(zhí)行語句X=(a=10,b=a--.后,x、a、b的值依次為()。
A.10,10,9
B.10,9,9
C.9,10,9
D.10,9,10
65.請閱讀以下程序:
上面程序的輸出結(jié)果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
66.(62)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
67.以下敘述中錯誤的是
A.C語言源程序經(jīng)編譯后生成后綴為.obj的目標程序
B.C程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCII碼形式存放在一個文本文件中
D.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令
68.有以下程序:
程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
69.
70.
71.數(shù)據(jù)庫管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)
72.成功的測試是指A.A.運行測試實例后未發(fā)現(xiàn)錯誤
B.發(fā)現(xiàn)程序的錯誤
C.證明程序正確
D.軟件產(chǎn)生
73.軟件工程出現(xiàn)的原因是
A.程序設(shè)計方法學的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機的出現(xiàn)D.計算機的發(fā)展
74.
75.閱讀下面程序段,則執(zhí)行后的結(jié)果為()。
A.64B.8C.56D.0
76.
77.
下述程序的輸出結(jié)果是()。
#include<stdio.h>
voidmain
{intb[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
A.4,4B.2,2C.4,5D.2,4
78.有以下程序
#include"stdio.h"
voidfun(int*a,int*b)
{intc=20,d=20;
*a=c/3;
b=d/5;}
main()
{inta=3,b=5;
fun(&a,&b);
printf("%d,%d\n",a,b);
}
程序的運行結(jié)果是
A.6,5B.5,6
C.20,25D.3,5
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當s中的數(shù)為87653142時,t中的數(shù)為8642。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),它的功能是求出能整除x且不是偶數(shù)的整數(shù),并將這些整數(shù)按從小到大的順序放在PP所指的數(shù)組中,總個數(shù)通過形參n返回。如x中的值為30,則有4個數(shù)符合要求,它們是1、3、5、15。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.CC)【解析】白盒測試方法也稱為結(jié)構(gòu)測試或邏輯測試,主要方法有邏輯覆蓋測試、基本路徑測試等。
2.B
3.B
4.C\n\tC?!窘馕觥慷址ú檎抑贿m用于順序存儲的有序表,對于長度為n的有序線性表,最壞情況只需比較log2n次。
5.B數(shù)據(jù)庫有三層模式結(jié)構(gòu),邏輯模式是數(shù)據(jù)的全局邏輯結(jié)構(gòu)的描述,外模式也稱為子模式,是局部數(shù)據(jù)的邏輯結(jié)構(gòu)描述,而內(nèi)模式也稱為存儲模式,是數(shù)據(jù)庫物理存儲結(jié)構(gòu)和存取方法的描述。
6.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。
7.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。
8.D
9.B
10.B
11.B解析:當調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:
①形參定義成數(shù)組;
②形參定義成可變長數(shù)組:
③形參定義為指針變量。
12.C解析:在Windows環(huán)境下,單擊當前窗口中的按鈕“x”,其功能是終止當前應用程序的運行,關(guān)閉當前窗口。
13.C
14.D滿二叉樹與完全二叉樹均為非線性結(jié)構(gòu),但可以按照層次進行順序存儲。本題答案為D選項。
15.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用以一個“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd”表示1到3位8進制數(shù)所代表的字符;形式“\\xhh”表示1到2位16進制數(shù)所代表的字符。在本題中‘\\x13’表示回車符,是一個字符常量;‘\\081’用\u30008進制數(shù)所代表的字符,但形式不正確,因為8進制數(shù)所表示的字符中不會出現(xiàn)數(shù)字“8”;‘65’不是一個字符,而是一個+進制數(shù)字;“\\n”是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。
16.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實現(xiàn)文件的順序讀寫;③輔助實現(xiàn)文件的隨機讀寫。
17.D解析:文件狀態(tài)檢測函數(shù)feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。
18.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;聲明整型變量a,b,k,m和指針p1,p2,并分別將4和6賦給k和m,將k和m的地址賦給P1和p2;a=p1==&m;等價于a=(p1==&m);將p1是否等于地址m的值(0)賦給變量a,b=(*p1)/(*p2)+7;該句的含義是將后面表達式的的值7賦給變量b。
19.C選項A、B的空間不夠;選項D中字符串存儲要有結(jié)束符ˊ\0ˊ,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
20.A本題考查的是數(shù)組和函數(shù)。sum()函數(shù)接收一個int型數(shù)組作參數(shù),也可以把它看作是一個int型指針,語句a[0]=a[*1)+a(比的意思就是將參數(shù)指針指向內(nèi)容的前一個元素和后一個元素的值相加放到指針所指的位置.因此,主函數(shù)中調(diào)用sum(&a[2]);的意思就是讓a[2]=a[1]+a[3];,所以最后輸出的結(jié)果是6。應該選擇A。
21.structnode*
22.int*ptb1[i].p*tb1[j].p<*tb1[j+1].p
23.調(diào)試調(diào)試
24.模塊模塊
25.質(zhì)量質(zhì)量
26.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
27.k*kk*k解析:本題考查的知識點是scarf()函數(shù)和printf()函數(shù)的用法。scanf()函數(shù)有兩個參數(shù),第一個參數(shù)是格式控制部分(格式控制部分是字符串,主要由“%”號和格式字符組成)第二個參數(shù)是一地址列表(地址列表是由多個地址組成,可以是變量的地址,也可以是字符串的首地址)。而第一個空格處位于scanf()函數(shù)的第二個參數(shù)處,所以,第一個空應該填地址k。printf()函數(shù)有兩個參數(shù),第一個參數(shù)是輸出格式字符串(輸出格式字符串是由控制輸出格式的字符和非格式字符組成的,通常是字符常量。非格式字符作為輸出數(shù)據(jù)的間隔,輸出時原樣輸出)第二個參數(shù)為一輸出表達式表(輸出表達式表是由若干個需要計算和輸出的表達式組成的,表達式之間用逗號分隔開)。而第;個空位于printf()函數(shù)的第二個參數(shù)處,所以應該填*K。
28.136136解析:本題考查函數(shù)的遞歸調(diào)用。函數(shù)fun是遞歸函數(shù),語句fun(6)的調(diào)用過程如下:
第1次:調(diào)用fun(6),6/2=3>0成立,調(diào)用fun(3);
第2次:調(diào)用fun(3),3/2=1>0成立,調(diào)用fun(1);
第3次:調(diào)用fun(1),1/2=0>0不成立,執(zhí)行語句printf('%d',x);,輸出1。
推出fun(3)輸出3,fun(6)輸出為6。
29.k-1k\r\n-1解析:本題通過定義一中間值k,實現(xiàn)字符串str內(nèi)容的交換。
30.sizeof(structnode)或4sizeof(structnode)或4解析:本題考核的知識點是動態(tài)存儲分配函數(shù)malloc()的用法。C標準規(guī)定malloc()函數(shù)返回值的類型為void*,函數(shù)的調(diào)用形式為:malloc(size)。要求aize的類型為unsignedint,所以該空格處應該填sizeof(structnode)或4。
31.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時,調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時,調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時,調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時,調(diào)用PRINT(4),P(4)輸出4,theend。
32.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
33.sizeof(structst)*50sizeof(structst)*50解析:fwrite函數(shù)的一般調(diào)用形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針變量,是要輸出數(shù)據(jù)的起始地址;size是要寫的字節(jié)數(shù);count是要寫多少個size字節(jié)的數(shù)據(jù)項;fp是文件指針。
34.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運算。
35.p->dataqp->data\r\nq解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點。
36.物理獨立性數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應用程序而不依賴于應用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應用程序。數(shù)據(jù)獨立性一般分為物理獨立性與邏輯獨立性兩級。
37.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數(shù)中用了一個for循環(huán),每循環(huán)一次將f(x)累加到s中,所以在本題的第一個空白處應該填x,然后x+1,共循環(huán)10次。F()函數(shù)的功能應該是求數(shù)學表達式f(x)的值,所以其返回值應該為x*x+1。
38.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本題題干信息是求能整除x且不是偶數(shù)的所有正整數(shù)。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),語句,n=j;是記錄符合題意的整數(shù)的個數(shù)。
39.E-R圖E-R圖解析:E-R圖是設(shè)計概念模型的有力工具。
40.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
41.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[p-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。
42.B解析:本題考核的知識點是函數(shù)的定義方法。選項B中在說明形參時,省略了第二個參數(shù)的類型,故選項B編譯不能通過。
43.D解析:軟件需求規(guī)格說明書(SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用:
①便于用戶、開發(fā)人員相互理解和交流。
②反映用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)。
③作為確認測試和驗收的依據(jù)。
44.B解析:對于函數(shù)體中的語句b+=*a;其中的“*”是指針運算符,*a就是main函數(shù)中變量a的值。
45.D解析:文件狀態(tài)檢測函數(shù)feof(fp)的功能是:測試所指的文件的位置指針是否已達到文件尾,如果已到達文件尾,則函數(shù)返回非。值;否則返回0,表示文件尚未結(jié)束。
46.C解析:十六進制是以“0x”或“0X”開頭的字符串,字符串中只能含有0~9這10個數(shù)字和a、b、c、d、e、f這6個字母。
47.C解析:本題考核的知識點是操作文件的幾個基本函數(shù)。主函數(shù)中定義了一個文件指針中1,然后通過fopen()函數(shù),以寫的方式打開文件“f1.txt’,并讓指針印1指向它,接著調(diào)用fptind()函數(shù)將“abc”寫到文件fp1所指的文件里,由于開始fp1指向文件的“f1.txt”的開始位置,因此“abc”將把文件“f1.txt”里原來的內(nèi)容“good”覆蓋掉,故文件“f1.txt”里最后的內(nèi)容為“abc”,所以,4個選項中選項C符合題意。
48.A解析:線性表的鏈式存儲結(jié)構(gòu)中的結(jié)點空間是動態(tài)生成的,它們在內(nèi)存中的地址可能是連續(xù)的,也可能是不連續(xù)的。
49.B解析:解答本題需要注意兩個知識點;①結(jié)構(gòu)體變量的長度是其內(nèi)部成員長度的總和,本題中,structdate中包含year、month、day這3個整型變量,一個整型變量占2個字節(jié):②sizeof是求所占字節(jié)數(shù)的運算符。
50.A解析:本題主要考查按位求反運算和整型常量的表示:①+六進制整型常量的形式是以數(shù)字0x或OX開頭的+六進制字符串:②按位求反運算的規(guī)則是:將二進制表示的運算對象按位取反,即將1變0,將0變1。
“0x11”即0000000000010001,進行按位求反運算“~0x11”后為1111111111101110,即0xFFEE。
51.C解析:該題稍微難一點。主要要搞清楚以下幾點:①定義了一個指針數(shù)組char.p[2]后,程序中第一個循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p11)元素指向了二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對應關(guān)系,以后對二維數(shù)組ch的某個元素的引用就有兩種等價的形式:ch[i][j]或p[i][j]。②對二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串'6937',第二行ch[1]中的內(nèi)容為字符串'8254'。③程序中第二個循環(huán)中的循環(huán)體s=e*10+p[i][j]-‘0’;的功能是這樣的,每執(zhí)行一次,將s中的值乘以10(也即,將s中的數(shù)值整體向左移動一位,并在空出來的個位上添一個0),再將當前p[i][j]中的字符量轉(zhuǎn)換為相應的數(shù)字,然后把這個數(shù)字加到s的個位上。④注意到內(nèi)層循環(huán)的循環(huán)條件p[i][j]>,0,是指p[i][j]中的字符只要不是字符串結(jié)束標志,\\0,就繼續(xù)循環(huán),語句j+=2;是使下標j每次增加2,也即一個隔一個地從p[i]所指向的字符串中取出字符。經(jīng)過上述解析后,不難看出,該程序首先從p[0]所指向的字符串'6937'中一個隔一個地取出字符,分別是‘6’和‘3’,然后從p[1]所指向的字符串'8254'中一個隔一個地取出字符,分別是‘8’和‘5’,同時經(jīng)過轉(zhuǎn)換和相加運算后,結(jié)果s中的值應該是6385,所以,正確答案是C)。
52.D解析:本題考查邏輯運算符的使用。當“&&”的兩個運算對象都足邏輯1時,表達式才返回值是1;當“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值是1。選項A)中,x和y都是邏輯1,所以返回值是1;選項B)中,x=4<=y(tǒng)=6為邏輯1,所以返回值是1;選項C)中,y+z的值等于14,非0,y-z的值為-2,非0,所以邏輯表達式4||14&&-2的值不為0;選項D)中,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
53.D解析:帶回指針值的函數(shù),其—般定義形式為:
類型標識符*函數(shù)名(參數(shù)表);
例如,int*f(x,y);
其中,f是函數(shù)名,調(diào)用它以后能得到—個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運算符和()預算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。
54.A解析:“^”是按位異或運算,運算規(guī)則是:當兩個二進制數(shù)對應位上的數(shù)相同時,異或結(jié)果為0,否則結(jié)果為1。73相當于0110011,所以a的值為4?!?”是按位與運算符,其運算規(guī)則是:當二進制數(shù)的所有對應位上的數(shù)值都為1時,結(jié)果才為1;“~”是按位取反?!?&3相當于1011&0011=0011,所以b的值為3。
55.C解析:第1次循環(huán)中,k=1,不執(zhí)行if分支,s[k]=‘2’,因此b=2,a=2因s[k+1]=‘1’進入第2次循環(huán),k=2,執(zhí)行if分支,s[k]=‘1’,使a=3,進而提前結(jié)束本次循環(huán),s[k+1]=‘\\0’,則退出循環(huán),所以k=2,a=3,b=2。
56.D解析:在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0;C語言規(guī)定,對于二維數(shù)組,只可以省略第1個方括號中的常量表達式,而不能省略第2個方括號中的常量表達式;賦的初值不能多于事先定義好的數(shù)組元素個數(shù)。
在選項D)賦值表達式中,對每一維的元素賦初值應用{},而不是()。
57.D解析:在C語言中,邏輯運算符有與&&、或||、非!,關(guān)系運算符有大于>、小于<、大于等于>=、小于等于<=、等于==,根據(jù)邏輯關(guān)系很容易看出,符合條件的選項為D。
58.B解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調(diào)用形式為:函數(shù)名(),當所調(diào)用的函數(shù)用于求出某個值時,函數(shù)的調(diào)用可作為表達式出現(xiàn)在允許表達式出現(xiàn)的任何地方,本題中調(diào)用語句的參數(shù)個數(shù)為2個。
59.C解析:本程序中的函數(shù)sort(inta[],intn)實現(xiàn)的功能是將數(shù)組a中的前n個數(shù)進行從大到小排序。sort(&a[1],7)是將數(shù)組中從a[1]到a[7]這7個數(shù)進行從大到小排序,其他數(shù)不變。
60.C解析:這是一個逗號表達式,它的值應為表達式y(tǒng)=x+3/2的值,而前一個表達式已給x賦值1,在沒有進行類型轉(zhuǎn)換的情況下,3/2的值為1,所以x+3/2的值應為2.0。
61.C解析:本題考查字符數(shù)組和字符串賦值給數(shù)組的一些區(qū)別。語句“charm[]='1234567';”定義了一個字符型數(shù)組并進行了初始化,C語言規(guī)定,在字符串的末尾自動加上串結(jié)束標記\'\\0\',因此數(shù)組m的長度是8;而數(shù)組n是按照字符方式對數(shù)組進行初始化,系統(tǒng)不會自動加上串結(jié)束標記\'\\0\',因此數(shù)組n的長度是7。
62.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。
63.C考查通過指針引用字符串數(shù)組中的元素。通過行指針P來實現(xiàn)數(shù)組元素的引用。用格式說明符%s進行整串輸入與輸出。
本題中,每行字符指針跳躍式右移動,隔2個移動一次,s存放處理的累計和。
第一行中
s指針行下標變化,轉(zhuǎn)向第二行
第二行中
得出結(jié)果S=6385
64.D表達式a一一的值為10,a的值遞減為9,所以b=10,x的值為逗號表達式的值,x=10。因此x=10,a=9.b=10。
65.A考查switch語句的使用。switch語句的執(zhí)行過程為:進入switch結(jié)構(gòu)后,對條件表達式進行運算,然后從上至下去找與條件表達式值相匹配的case,以此作為人口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。
66.D
67.D由C語言編寫而成的程序稱為C源程序,C源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.OBJ的二進制文件(稱為目標文件);最后要由“連接程序”把此.OBJ文件與C語言提供的各種庫函數(shù)連接起來生成一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身場館智能化運維師筆試試題及答案
- 2025年懸架系統(tǒng)減震元件項目合作計劃書
- 2025年青島西海岸新區(qū)教育和體育系統(tǒng)專項招聘公費師范生考試試題【答案】
- 2025年湖南邵陽北塔區(qū)區(qū)外選調(diào)教師考試筆試試題【答案】
- 2025年射頻同軸電纜組件項目建議書
- 2025年ITO靶材項目建議書
- 小學科學教科版六年級上冊全冊課課練(含答案)(2023秋)
- 2025年自體血回輸裝置項目建議書
- 關(guān)于2025財務部門述職報告范文
- 2025年嚴以律己心得體會范文
- 南站商務城二期綜合物探報告
- 浙江省引進人才居住證申請表2021版
- GB/T 20133-2006道路交通信息采集信息分類與編碼
- GB 6245-2006消防泵
- GA/T 1217-2015光纖振動入侵探測器技術(shù)要求
- 2023年貴州水鋼金屬科技有限公司招聘筆試題庫及答案解析
- 七年級生物下填圖題(識圖題)總復習
- 后穹窿穿刺課件
- 同志借調(diào)工作鑒定現(xiàn)實表現(xiàn)材料集合5篇
- MDITDI的安全使用與操作課件
- FMEA-潛在失效模式分析
評論
0/150
提交評論