版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年廣東省汕頭市全國計算機(jī)等級考試C語言程序設(shè)計預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面說法正確的是()。A.A.一個C程序可以有多個主函數(shù)
B.一個C語言的函數(shù)中只允許有一對花括號
C.C程序的書寫格式是自由的,一個語句可以寫在一行上,也可以寫在多行內(nèi)
D.在對C程序進(jìn)行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤
2.下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
3.有以下程序:#include〈stdio.h〉voidfun(int*s){staticintj=0;do{s[j]=s[j]+s[j+1];}while(++j<2);}main(){inti.a(chǎn)[10]={1,2,3,4,5};for(i=1;i<3;i++)fun(a);for(i=0;i<5;i++)pfintf(“%d”,a[i]);printf(“\n”);}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
4.結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進(jìn)性D.程序的易讀性
5.有種數(shù)據(jù)結(jié)構(gòu)叫跳躍列表(SkipList),它是一種基于并聯(lián)的鏈表的隨機(jī)化數(shù)據(jù)結(jié)構(gòu),其效率可比擬于二叉查找樹(對于大于數(shù)操作需要O(logn)平均時間)。它是按層建造的。底層是一個普通的有序鏈表。每個更高層都充當(dāng)下面列表的“快速跑道”,這里在層i中的元素按概率l/p出現(xiàn)在層i+1中。平均起來,每個元素都在p/(p-1)個列表中出現(xiàn),而最高層的元素(通常是在跳躍列表前段的一個特殊的頭元素)在O(logpn)個列表中出現(xiàn)。調(diào)節(jié)p的大小可以在內(nèi)存消耗和時間消耗上進(jìn)行折中。試分析在該數(shù)據(jù)結(jié)構(gòu)中查找一個元素的平均時間復(fù)雜度。
A.O(logn)B.O(n)C.O(n*logn)D.以上都不正確
6.在關(guān)系數(shù)據(jù)庫中,用來表示實(shí)體間聯(lián)系的是()。
A.網(wǎng)狀結(jié)構(gòu)B.樹狀結(jié)構(gòu)C.屬性D.二維表
7.以下函數(shù)調(diào)用語句中含有實(shí)參個數(shù)為().func((exp1,exp2),(exp3,exp4,exp5));
A.1個B.2個C.4個D.5個
8.程序運(yùn)行后的輸出結(jié)果是()。A.10B.30C.0D.64
9.數(shù)組A中,每個元素的長度為3個字節(jié),行下標(biāo)i從1到8,列下標(biāo)j從1到10,從首地址SA開始連續(xù)存放的存儲器內(nèi),該數(shù)組按行存放,元素A[5][8]的起始地址為()。
A.SA+141B.SA+180C.SA+222D.SA+225
10.下列程序的輸出結(jié)果是()
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
11.
12.字符串"alibaba"的二進(jìn)制哈夫曼編碼有多少位()
A.11B.12C.13D.14
13.設(shè)ch是char型變量,值為'A',則表達(dá)式ch=(ch>='A'&&ch<='Z')?ch+32:ch的值是()。
A.ZB.aC.zD.A
14.有以下程序:#include<stdio.h>main(){inta=10,b=11;if(++a==b++) printf(“T”);else printf(“F”);printf(“a=%d,b=%d\n”,a,b);}程序運(yùn)行后的輸出結(jié)果是()。
A.Fa=11,b=11B.Fa=10,b=12C.Ta=10,b=11D.Ta=11,b=12
15.以下敘述中正確的是
A.語句inta[8]={0};是合法的
B.語句inta[]={0};是不合法的,遺漏了數(shù)組的大小
C.語句chara[2]={"A","BII};是合法的,定義了一個包含兩個字符的數(shù)組
D.語句chara[3];a="AB";是合法的,因?yàn)閿?shù)組有三個字符空間的容量,可以保存兩個字符
16.下列選項(xiàng)中,當(dāng)X為大于1的奇數(shù)時,值為0的表達(dá)式是()。
A.x%2==0B.x/2C.x%2!=0D.x%2==1
17.下列選項(xiàng)中,不是一個算法的基本特征的是()。
A.完整性B.可行性C.有窮性D.擁有足夠的情報
18.下面關(guān)于圖的存儲的敘述中,哪一個是正確的。________
A.用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點(diǎn)個數(shù)有關(guān),而與邊數(shù)無關(guān)
B.用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點(diǎn)個數(shù)無關(guān)
C.用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點(diǎn)個數(shù)有關(guān),而與邊數(shù)無關(guān)
D.用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點(diǎn)個數(shù)無關(guān)
19.以下敘述中錯誤的是(
)。A.函數(shù)形參的值也可以傳回給對應(yīng)的實(shí)參
B.函數(shù)調(diào)用可以作為一個獨(dú)立的語句存在
C.若函數(shù)有返回值,必須通過r;mm語句返回
D.C程序必須由一個或一個以上的函數(shù)組成
20.設(shè)有定義:charc[]=“Cc”;FILE*fp;且fp指向以“w”的方式成功打開的文件,若要將c中的兩個字符寫入文件,且每個字符占一行,則下面的選項(xiàng)中正確的是()。
A.fprintf(fp,“%c\n%c\n”,c[0],c[1]);
B.fprintf(fp,“%c\r\n%c\r\n”,c[0],c[1]);
C.fprintf(fp,“%c%c”,c[0],c[1]);
D.fprintf(fp,“%s\n”,c);
二、2.填空題(20題)21.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
22.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{
intx=0210;
printf("%X\n",x);
}
23.數(shù)據(jù)庫恢復(fù)是將數(shù)據(jù)庫從______狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。
24.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
25.數(shù)據(jù)庫系統(tǒng)階段的數(shù)據(jù)具有較高獨(dú)立性,數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和【】兩個含義。
26.下列程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
27.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
28.在Windows環(huán)境下,可以將窗口最小化為【】。
29.若有以下程序段:
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
則執(zhí)行后,c3中的值是【】。
30.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為【】。
31.表示“整數(shù)x的絕對值大于5”時值為“真”的C語言表達(dá)式是【】。
32.以下程序運(yùn)行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
33.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
34.下列程序的輸出結(jié)果是______。
longfun5(intn)
(longs;
if((n==l)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printf(%1d\n",x);
35.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta=2,b=3,c=4;
a*=16+(b++)-(++c);
Printf("%d",a);
}
36.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。
37.若有定義inta=10,b=9,c=8;,接著順序執(zhí)行下列語句,變量b中的值是【】。
c=(a-=(b-5));
c=(a%11)+(b=3);
38.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
39.以下函數(shù)用以求x的y次方。補(bǔ)足所缺語句。
Doublefun(doublex,inty)
{inti;doublez=1;
for(i=1;i【】;i++)
z=【】;
returnz;
}
40.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=1,y=1,a=1,b=1;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,B);
}
三、1.選擇題(20題)41.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
42.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。
A.34B.42C.43D.33
43.C語言中規(guī)定,程序中各函數(shù)之間()
A.既允許直接遞歸調(diào)用,也允許間接遞歸調(diào)用
B.不允許直接遞歸調(diào)用,也不允許間接遞歸調(diào)用
C.允許直接遞歸調(diào)用,不允許間接遞歸調(diào)用
D.不允許直接遞歸調(diào)用,允許間接遞歸調(diào)用
44.請讀程序:#include<stdio.h>inta[]={2,4,6,8,};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;priatf("%d\n",a[2]);}上面程序的輸出結(jié)果是()。
A.6B.8C.4D.2
45.下列程序的輸出結(jié)果是
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
46.設(shè)有如下關(guān)系表:
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
47.下面程序段的運(yùn)行結(jié)果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
48.若有說明:inta[][3]={0,0};則不正確的敘述是()。
A.數(shù)組a的每個元素的初值都是0
B.數(shù)組a的第一維大小為1
C.數(shù)組a的行數(shù)為1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
49.算法具有五個特性,以下選項(xiàng)中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性
50.以下不正確的定義語句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
51.下列程序的輸出結(jié)果是()。main(){chara[7]"aO\OaO\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}
A.22B.76C.72D.62
52.若有以下定義和語句;inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;
A.p+=2,*(p++)B.p+=2,*++pC.p+=3,*p++D.p+=2,++*p
53.下述關(guān)于C語言文件的操作的結(jié)論中,正確的是______。
A.對文件操作必須先關(guān)閉文件
B.對文件操作必須先打開文件
C.對文件操作順序無要求
D.對文件操作前必須先測文件是否存在,然后再打開文件
54.在軟件設(shè)計中,不屬于過程設(shè)計工具的是()。
A.PDL(過程設(shè)計語言)B.PAD圖C.N-S圖D.DFD圖
55.為了使模塊盡可能獨(dú)立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
56.下列選項(xiàng)中不符合良好程序設(shè)計風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計要保證高耦合、高內(nèi)聚
57.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
58.下列是用戶自定義標(biāo)識符的是
A._w1B.3_xyC.intD.LINE-3
59.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);}
程序運(yùn)行后的輸出結(jié)果是
A.4B.3C.2D.1
60.若fp是指向某文件的指針,且已讀到文件末尾,則函數(shù)feof(fp)的返回值是
A.EOFB.-1C.1D.NULL
四、選擇題(20題)61.
62.對建立良好的程序設(shè)計風(fēng)格,下面描述正確的是
A.程序應(yīng)簡單、清晰、可讀性好B.符號名的命名只需符合語法
C.充分考慮程序的執(zhí)行效率D.程序的注釋可有可無
63.
有如下程序:
#include<stdio.h>
main
{FILE*fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abe");
fclose(fp1);
}
若文本文件f1.txt中原有內(nèi)容為:good。則運(yùn)行以上程序后文件f1.txt中的內(nèi)容為()。
A.goodabcB.abcdC.abcD.abcgood
64.下列敘述中正確的是()。A.A.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句B.cotinue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用got0語句
65.
66.在面向?qū)ο蠓椒ㄖ?,不屬于“對象”基本特點(diǎn)的是A.一致性B.分類性C.多態(tài)性D.標(biāo)識唯一性
67.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新勾defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
68.
s1和s2已正確定義并分別指向兩個字符串。若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項(xiàng)中正確的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
69.有以下計算公式
70.
71.下列敘述中正確的是()。
A.為了建立一個關(guān)系,首先要構(gòu)造數(shù)據(jù)的邏輯關(guān)系
B.表示關(guān)系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項(xiàng)
C.一個關(guān)系的屬性名表稱為關(guān)系模式
D.一個關(guān)系可以包括多個二維表
72.若已定義inta=25,b=14,c=19;以下三目運(yùn)算符(?:)所構(gòu)成的語句執(zhí)行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結(jié)果是
A.***a=25,b=13,c=19B.***a=26,b=14,c=19
C.###a=25,b=13,c=19D.###a=26,b=14,c=19
73.針對簡單程序設(shè)計,以下敘述的實(shí)施步驟順序正確的是()。
A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔
B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔
C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試
D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔
74.設(shè)fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調(diào)用語句中,正確的是()。
A.fun("abc",3.0);
B.t=fun(D.16.5);
C.fun(65,2.8);
D.fun(32,32);
75.
76.有以下程序(注:字符a的ASCIl碼值為97)}程序運(yùn)行后的輸出結(jié)果是()。
A.789B.abcC.7890D.979899
77.34.有以下程序
#include<stdio.h>
unionpw
{inti;
charch[2];
}a;
main()
{a.ch[0]=13;a.ch[1]=0;
printf("%d\n",a.i);
}
程序的輸出結(jié)果是
A.13B.14
C.0D.20
78.下面描述中錯誤的是()。
A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計
B.軟件設(shè)計是將軟件需求轉(zhuǎn)換為軟件表示的過程
C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計是軟件設(shè)計的任務(wù)之一
D.PAD圖是軟件詳細(xì)設(shè)計的表示工具
79.
80.
五、程序改錯題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應(yīng)輸出2.928968。請修改程序中的錯誤,使它能計算出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc,其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i<M;i++)/*用冒泡法來按從高到低排序*/for(j=0;j<M-1;j++)。if(a[j].s<a[j+1].s)//*按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain{STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;i++){if(i%4==0)//每行輸出4個學(xué)生記錄printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}
參考答案
1.C解析:本題涉及C語言基本的3個知識點(diǎn):①C語言規(guī)定一個程序只允許有一個主函數(shù),一個函數(shù)內(nèi)可以允許有多個花括號;②C程序的注釋部分僅僅是方便程序員閱讀,提高程序的可讀性和可移植性,它并不參與程序的編譯,所以編譯器也就不會發(fā)現(xiàn)注釋中的錯誤。
2.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標(biāo)來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時,就去掉這個字符,所以程序結(jié)束后,字符串item中就只剩下和兩個字符了。
3.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
4.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。
5.A
6.D單一的數(shù)據(jù)結(jié)構(gòu)——關(guān)系,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來表示。數(shù)據(jù)的邏輯結(jié)構(gòu)——二維表,從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。但是關(guān)系模型的這種簡單的數(shù)據(jù)結(jié)構(gòu)能夠表達(dá)豐富的語義,描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種關(guān)系。
7.B
8.D[解析]本題目中靜態(tài)局部變量x,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運(yùn)行期間都不釋放。所以第一次循環(huán)s的值為2.第二次循環(huán)中,返回的x的值為4.所以s的值為8.第三次循環(huán),返回的x的值為8.所以s的值為64.
9.C
10.B解析:算術(shù)運(yùn)行符“/”、“%”的優(yōu)先級處于同一級,并且兩者的結(jié)合性都是從左到右。所以算術(shù)表達(dá)式運(yùn)算過程為:a=25/10%9=2%9=2:當(dāng)邏輯運(yùn)算符“&&”兩邊的值都是非零時,邏輯表達(dá)式的值才為真(即為1)。所以b=2&&(-1)=1。
11.A
12.C
13.B
14.D自增運(yùn)算符是將運(yùn)算對象的值增1,它有前綴形式“++a”和后綴形式“b++”。其中“++a”表示首先將a的值自增1,然后表達(dá)式“++a”的值就是自增后a的值;而“b++”表示首先將b的值作為表達(dá)式的值,然后再將b的值自增1。本題中,a的初值為10,b的初值為11,則表達(dá)式“++a==b++”,等價于“11==11”,條件為真,所以輸出“T”。if語句執(zhí)行完后,a的值為11,b的值為12,輸出“a=11,b=12”。故本題答案為D選項(xiàng)。
15.AB選項(xiàng)中,如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個數(shù);C選項(xiàng)中,chara[2]={"","B"};不合法,應(yīng)為chara[2]={′A′,′B′};;D選項(xiàng)中,字符數(shù)組只能在定義的時候可以用字符串常量來初始化,但不能夠先定義字符數(shù)組,然后再用字符串常量進(jìn)行賦值。因此A選項(xiàng)正確。
16.A算術(shù)運(yùn)算符的優(yōu)先級高于關(guān)系運(yùn)算符的優(yōu)先級。所以當(dāng)x為大于1的奇數(shù)時,A選項(xiàng)的值為假,即0。B選項(xiàng)的值為不定值,但絕對不是0。C選項(xiàng)的值為真,即1。0選項(xiàng)的值為真,即1。故本題答案為A選項(xiàng)。
17.A解析:作為一個算法,一般應(yīng)該具有下列4個特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個滿意的結(jié)果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內(nèi)做完;(4)擁有足夠的情報。
18.A
19.A函數(shù)參數(shù)傳遞是個不可逆的過程,形參不會把值傳回實(shí)參,所以A)選項(xiàng)(24)[答案]A)[解析]c的值為a乘以b的值,為3。所以答案選擇A)。
20.A要寫入字符數(shù)據(jù),需要使用格式字符%c,選項(xiàng)D錯誤;換行符需要使用‘\\n’,而不是‘\\r\\n’,選項(xiàng)B錯誤;選項(xiàng)C中未使用換行符,不滿足題意。故本題答案為A選項(xiàng)。
21.存儲結(jié)構(gòu)
22.8888解析:C語言規(guī)定,以0開頭的整型常量為八進(jìn)制。另外,在primf()函數(shù)中,%X表示以十六進(jìn)制無符號形式輸出一個整數(shù),且十六進(jìn)制中的ABCDEF為大寫字母。本題的輸出應(yīng)該是八進(jìn)制210的十六進(jìn)制形式。將八進(jìn)制轉(zhuǎn)換為十六進(jìn)制,可以先將其轉(zhuǎn)換為二進(jìn)制。因?yàn)?位八進(jìn)制表示3位二進(jìn)制,4位二進(jìn)制表示1位十六進(jìn)制。(210)8=(10001000)2=(88)16,故本題輸出為880
23.錯誤。錯誤。解析:數(shù)據(jù)庫恢復(fù)是將數(shù)據(jù)庫中的數(shù)據(jù)從錯誤狀態(tài)中恢復(fù)到某種邏輯一致的狀態(tài)。如果數(shù)據(jù)庫中包含成功事務(wù)提交的結(jié)果,則稱數(shù)據(jù)庫處于一致性狀態(tài)。
24.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內(nèi)容,即100,所以x=100+50=150。
25.邏輯獨(dú)立性邏輯獨(dú)立性解析:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩個含義。注意:在人工管理階段,文件系統(tǒng)階段和數(shù)據(jù)庫管理階段中數(shù)據(jù)獨(dú)立性的特點(diǎn)。
26.484,8解析:C語言規(guī)定,共用體中各個成員變量在內(nèi)存中占用同一段內(nèi)存單元,即e.in.x、e.a、e.b占用同一段內(nèi)存單元。執(zhí)行語句e.b=2;后,e.in.x=e.a=e.b=2;執(zhí)行語句e.in.x=e.a*e.b;時,e.a的值為2,e.b的值為2,所以運(yùn)算得出e.in.x的值為4;執(zhí)行語句e.in.y=e.a+e.b時,由于e.in.x和e.a、e.b占用的是同一段內(nèi)存單元,所以此時的e.a、e.b的值為4,因此運(yùn)算得出e.in.y的值為4+4=8。程序最后的輸出結(jié)果為4,8。
27.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因?yàn)閤不大于y,所以執(zhí)行printf('%d\\n',z);語句。
28.圖標(biāo)或按鈕圖標(biāo)或按鈕
29.00解析:在賦值運(yùn)算中。如果表達(dá)式中變量和常量的數(shù)據(jù)類型不一致就會自動進(jìn)行類型轉(zhuǎn)換。系統(tǒng)會計算1.0/c2,由于1.0是實(shí)型,所以均先轉(zhuǎn)化為雙精度型0.500000,再和c1轉(zhuǎn)化后的雙精度數(shù)相乘得0.500000。但其要賦值給整型變量c3,故要進(jìn)行強(qiáng)制轉(zhuǎn)換,c3的值為0。
30.n(n-1)/2
31.x>5||x<-5或abs(x)>5x>5||x<-5或abs(x)>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于-5,用C語言表示即為:x>5||x<-5或者abs(x)>5。
32.30253025解析:本題考核的知識點(diǎn)是變量的存儲屬性和算術(shù)運(yùn)算的應(yīng)用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲空間在程序的整個運(yùn)行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進(jìn)行的,auto是自動變量的存儲類別標(biāo)識符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術(shù)運(yùn)算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。
33.43214321解析:靜態(tài)存儲類的局部變量其生存期為整個程序的運(yùn)行期間,作用域卻只是定義它的函數(shù)或局部范圍。注意:局部變量和全局變量的作用域。
34.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。
35.2828解析:a*=16+(b++)-(++c)等價于a=a*(16+(b++)-(++c)),b++的值為3,++c的值為5,這里要注意前綴++和后綴++的用法。
36.33解析:本題考查的是C語言逗號表達(dá)式的相關(guān)知識。程序在計算逗號表達(dá)式時,從左到右計算由逗號分隔各表達(dá)式的值,整個逗號表達(dá)式的值等于其中最后一個表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
37.33解析:這里:b-5=4,a-=4之后a的值為6,并把它賦給c。此時b的值并未被改變。在第2個表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以兩行語句執(zhí)行完畢,b的值應(yīng)該為3。
38.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
39.<y+1z*x
40.a=2b=3a=2,b=3解析:分析程序,程序從x=1語句開始執(zhí)行,之后執(zhí)行第一個switch語句,switch(x)=switch(1),所以執(zhí)行case1,case1語句中包含一個復(fù)合switch語句:這時執(zhí)行第二個switch語句,此時y=1,所以switch(y)=switch(1),因此執(zhí)行case1,將b加1,得到b=2,遇到break語句,退出第二個switch語句,則整個case1的復(fù)合語句執(zhí)行完畢,由于在這個case1的后面沒有break語句使其退出第一個switch語句,所以接著執(zhí)行下列的case2后面的語句,即將a,b各加1,得到a=2,b=3。
41.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達(dá)式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
42.D解析:逗號表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。
43.A解析:本題考查函數(shù)調(diào)用的基本概念。在函數(shù)調(diào)用時,只要符合函數(shù)的使用,程序中的各個函數(shù)間既可以直接調(diào)用其他函數(shù),也可以遞歸調(diào)用其自身。
44.A解析:本題考查通過指針引用數(shù)組元素。程序通過a[i]=*p++;語句,循環(huán)地將2賦給a[0],4賦給a[1],6賦給a[2],8賦給a[3],所以輸出結(jié)果為6。
45.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進(jìn)行循環(huán)條件的判定。當(dāng)能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結(jié)尾,進(jìn)行i++,判斷循環(huán)條件。
46.B解析:仔細(xì)觀察3個表可以看到,R,S,T具有相同的關(guān)系模式,且T包含了R和S的所有元組,故T=R∪S。
47.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標(biāo)志'\\0'的地址,因而。(p+3)的值為0。
48.D解析:本題考查給二維數(shù)組元素賦值。給二維數(shù)組元素賦值時應(yīng)注意下列兩點(diǎn):①在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。②二維數(shù)組第一維的大小由下列規(guī)則確定;當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大?。划?dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大小等于所得商數(shù)加1。
49.B解析:一個算法應(yīng)當(dāng)具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應(yīng)該選擇B。
50.B解析:在一維數(shù)組中要注意的是作為下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于0,選項(xiàng)B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。
51.C解析:函數(shù)sizeof(a)的功能:求出字符串a(chǎn)中的字符占用存儲空間的大小,由于字符數(shù)組a有長度為7,所以i=7;函數(shù)strlen(a)的功能:求出字符串a(chǎn)的長度。而每個字符串都以'\\0'為字符串的結(jié)束標(biāo)記,所以j的值等于2。
52.A解析:引用一個數(shù)組元素,可以用:(1)下標(biāo)法,如a[i]形式;(2)指針法,如*(a+i)或*(p+i)。數(shù)組的下標(biāo)從0開始,值為3的數(shù)組元素是a[2]。B、C的內(nèi)容為a[3],D將a[2]前自加,結(jié)果為4。
53.B解析:在C中對文件操作必須先打開文件,待文件操作完畢后要關(guān)閉文件。對文件以讀的方式進(jìn)行打開操作時,同時會執(zhí)行文件的檢查文件是否存在,不存在將會返回空的文件指針,如果對文件以寫的方式打開時,文件不存在,將會自動創(chuàng)建文件,因此在C中打開文件前不必對其檢查文件是否存在,故答案為B。
54.D解析:PDL一種設(shè)計性語言,用于書寫軟件設(shè)計規(guī)約。它是軟件設(shè)計中廣泛使用的語言之一。N-S圖是無線的流程圖,是算法描述工具;PAD圖是問題分析圖,它用二維樹狀結(jié)構(gòu)的圖表示程序的控制流,將這種圖轉(zhuǎn)換為程序代碼比較容易。此3類均是過程設(shè)計工具,數(shù)據(jù)流圖(DataFunctionDiagram):又名數(shù)據(jù)功能圖表,簡稱DFD,是采用圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。
55.B解析:模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。
56.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。
57.D解析:通常,引用一個數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開始的。
58.A本題主要考查標(biāo)識符的定義。對標(biāo)識符的定義是考試中??嫉膬?nèi)容之一。標(biāo)識符主要由數(shù)字、下畫線和字母組成,其中數(shù)字不能放在首位,另外,用戶自定義標(biāo)識符時,不能將標(biāo)識符定義為C語言中已定義的關(guān)鍵字,如int、while等。
根據(jù)上面對標(biāo)識符的分析,我們不難看出本題的正確答案是A。在選項(xiàng)B中,3_xy以數(shù)字開頭,不符合標(biāo)識符定義的規(guī)定;在選項(xiàng)C中,int是C語言系統(tǒng)中已經(jīng)定義了的關(guān)鍵字;在選項(xiàng)D中,LINE-3使用的數(shù)字、下畫線和字母以外的字符,因此不正確。
59.B解析:在main函數(shù)中,對f(1)和f(2)的值進(jìn)行了累加。
f(1)=1
f(2)=f(1)+1=2
最后,j的值為1+2=3
60.C解析:EOF是指向文本文件的結(jié)束標(biāo)志,NULL是打開文件錯誤時的返回值。feof(fp)用來判斷文件是否在文件末尾,文本文件和二進(jìn)制文件均可以使用此函數(shù),如果遇到文件結(jié)束就返回1,否則返回0。
61.B
62.A具有良好的程序設(shè)計風(fēng)格是一個程序員必不可少的素質(zhì)。我們在編寫程序時要養(yǎng)成良好的程序設(shè)計習(xí)慣,對程序的要求不僅能夠在計算機(jī)上正確運(yùn)行,而且要便于閱讀和被別人理解,便于程序的調(diào)試和維護(hù)。好的程序設(shè)計風(fēng)格有助于提高程序的正確性、可讀性、可維護(hù)性和可用性。要使程序具有良好的風(fēng)格,必須做到以下幾點(diǎn):
(1)合理的標(biāo)識符的命名。由于一個程序中必然有很多標(biāo)識符,特別是在一個大型復(fù)雜的程序中,標(biāo)識符可能成千上萬,對標(biāo)識符作用的正確理解是讀懂程序的前提,如果程序員隨意命名標(biāo)識符,程序的可讀性會很差。因此,在命名標(biāo)識符時要注意其可理解性。
(2)在程序中添加一定的注釋。注釋是程序員與日后的程序讀者之間詢通的重要工具,它用自然語言或偽碼描述。它說明了程序的功能,特別是在維護(hù)階段,對理解程序提供了明確指導(dǎo)。因此,一定的注釋是程序必不可少的組成部分。
(3)程序的編輯風(fēng)格。為了使程序的結(jié)構(gòu)一目了然,可以在程序中利用空格、空行、縮進(jìn)等技巧使程序?qū)哟吻逦?,便于對程序的理解?/p>
(4)語句的結(jié)構(gòu)。在結(jié)構(gòu)化程序設(shè)計中,單個語句結(jié)構(gòu)是編碼階段的任務(wù),語句結(jié)構(gòu)追求簡單直接,不能為了追求效率而使代碼復(fù)雜化。
總之,程序應(yīng)簡單、清晰、可讀性和可理解性好。
63.C
\n當(dāng)用“w”打開時,已存在一個以該文件名命名的文件,則在打開時將該文件刪除,再重新建立一個新文件,因此當(dāng)輸入時原來的內(nèi)容已被覆蓋,所以只有后輸入的內(nèi)容,故選擇C選項(xiàng)。
\n
64.A本題考查循環(huán)跳出的知識點(diǎn):①break語句可以出現(xiàn)在switch循環(huán)體內(nèi)及語句體內(nèi),它的作用是跳出循環(huán)體,不能用于其他的語句;②continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,而接著判定循環(huán)條件是否成立,確定下一次循環(huán)是否繼續(xù)執(zhí)行,執(zhí)行contiune語句不會使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年三明醫(yī)學(xué)科技職業(yè)學(xué)院單招職業(yè)技能測試題庫含答案詳解
- 2026年上海立信會計金融學(xué)院單招職業(yè)傾向性測試題庫及答案詳解一套
- 2026年四川藝術(shù)職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試題庫含答案詳解
- 2026年蘇州高博軟件技術(shù)職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試題庫及完整答案詳解1套
- 天津市五區(qū)縣重點(diǎn)校聯(lián)考2024-2025學(xué)年高二上學(xué)期11月期中政治試題含答案高二政治答案
- 二建建筑面試題及答案
- 2025年西北工業(yè)大學(xué)材料學(xué)院特種陶瓷及復(fù)合材料制備與評價項(xiàng)目組招聘備考題庫及答案詳解1套
- 2025年重慶長江軸承股份有限公司招聘13人備考題庫及一套完整答案詳解
- 隨州市中心醫(yī)院2026年招聘45人備考題庫及參考答案詳解1套
- 上海七十邁數(shù)字科技2026校園招聘備考題庫完整參考答案詳解
- GB/T 3521-2023石墨化學(xué)分析方法
- 一年級數(shù)學(xué)重疊問題練習(xí)題
- 三維動畫及特效制作智慧樹知到課后章節(jié)答案2023年下吉林電子信息職業(yè)技術(shù)學(xué)院
- 胰腺囊腫的護(hù)理查房
- 臨床醫(yī)學(xué)概論常見癥狀課件
- 事業(yè)單位專業(yè)技術(shù)人員崗位工資標(biāo)準(zhǔn)表
- 知識圖譜與自然語言處理的深度融合
- 物業(yè)管理理論實(shí)務(wù)教材
- 仁川國際機(jī)場
- 全檢員考試試題
- 光刻和刻蝕工藝
評論
0/150
提交評論