




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2021-2022年河北省秦皇島市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.在inta=3,int*p=&a;中,*p的值是()
A.變量a的地址值B.無意義C.變量p的地址值D.3
2.
3.一個有8個頂點的有向圖,所有頂點的入度出度之和與所有頂點的出度之和的差是()
A.16B.4C.0D.2
4.下面哪個序列不是此圖的一個拓撲排序()A.ebfgadchB.aebdgfchC.adchebfgD.Aedbfgch
5.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
6.
7.以下程序運行后,輸出結(jié)果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
8.以下選項中,合法的一組C語言數(shù)值常量是()。
A.028.5e-3-0xf
B.12.OXa234.5eO
C..1774c1.5Oabc
D.0x8A10,0003.e5
9.軟件需求規(guī)格說明書的作用不包括()。
A.軟件設計的依據(jù)B.軟件可行性研究的依據(jù)C.軟件驗收的依據(jù)D.用戶與開發(fā)人員對軟件要做什么的共同理解
10.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0
11.設單鏈表中結(jié)點的結(jié)構(gòu)為非空的循環(huán)單鏈表first的尾結(jié)點(由p所指向)滿足:______A.p->link==NULL;B.p==NULL;C.p->link==first;D.p==first;
12.軟件詳細設計產(chǎn)生的圖如圖所示。該圖是()。A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
13.
14.定義無符號整數(shù)類為UInt,下面可以作為類UInt實例化值的是()。
A.-369B.369C.0.369D.整數(shù)集合{1,2,3,4,5}
15.
16.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
17.下列敘述中正確的是()。A.算法就是程序B.設計算法時只需要考慮數(shù)據(jù)結(jié)構(gòu)的設計C.設計算法時只需要考慮結(jié)果的可靠性D.以上三種說法都不對
18.有以下語句,則對a數(shù)組元素的引用不正確的是(0≤i≤9)inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;A.A.a[p-a]
B.*(&a[i])
C.p[i]
D.*(*(a+i))
19.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
20.下面程序段的時間復雜度為()。
A.O(n)B.O(n2)C.O(1)D.O(nlog2n)
二、2.填空題(20題)21.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
22.若有以下定義語句,則不移動指針p,并且通過指針p引用值為98的數(shù)組元素的表達式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
23.在結(jié)構(gòu)化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。
24.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
25.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{intI;
for(I=0;【】!='\n';I++);
return(I);}
26.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
27.以下程序運行后的輸出結(jié)果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
28.設有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
29.程序測試分為靜態(tài)測試和動態(tài)測試。其中()是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
30.以下程序的定義語句中,x[1]的初值是【】,程序運行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
31.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。
32.軟件工程的出現(xiàn)是由于【】。
33.執(zhí)行以下“for(i=1;i++<=4;i++);”語句后,變量i的值是()。
34.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機制稱為______。
35.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。
36.下列程序執(zhí)行輸出的結(jié)果是______。
#include<stdio.h>
f(intA)
{intb=0;
staticc=7;
a=c++;b++;
return(A);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
37.某二叉樹中度為2的節(jié)點有18個,則該二叉樹中有()個葉子節(jié)點。
38.下列程序的輸出結(jié)果是______。
#include<stdio.h>
fun()
{staticinta=0;
a+=3;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<5;cc++)fun();
printf("\n");
}
39.下面程序的運行結(jié)果是【】。
intf(inta[],intn)
{if(n>1)returna[0]+f(&a[1],n-1);
elsereturna[0];
}
main()
{intaa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
40.下列執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0
for(i=0;i<10;i++)atr[i]=i
for(i=1,i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
三、1.選擇題(20題)41.若a、b、c、d都是血型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。
A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);
42.主程序調(diào)用findmax函數(shù)求出數(shù)組中最大元素在數(shù)組中的下標,括號中需填寫的內(nèi)容是
#include<stdio.h>
findmax(int*s,intt,int*k)
{intp;
for(p=0,*k=p;p<t;p++)if(s[p]>s[*k])();}
main()
{inta[10],i,k;
for(i=0;i<10;i++)scanf("%d",&a[i]);
findmax(a,10,&k);
printf("%d%d\n",k,a[k];)}
A.k=pB.*k=pC.k=p-sD.*k=p-s
43.下列選項中正確的語句組是()。
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
44.下面程序的輸出結(jié)果為______。#include<string.h>main(){charp1[7]="abc",p2[]="ABC",str[50]="xyz";strcpy(str,strcat(p1,p2));printf("%s",str);}
A.xyzabcABCB.abcABCC.xyzabcD.xyzABC
45.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
46.下面程序的輸出結(jié)果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}
A.abcdeB.aC.不確定D.bcdef
47.以下程序的輸出的結(jié)果是intx=3;main(){inti;for(i=1;i<x;i++)incre();}incre(){staicintx=1;x*=x+1;printf("%d",x);}
A.33B.22C.26D.25
48.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sun=0;do{if(i==(i/2)*2)continue;sum+i;}while(++i<A);printf("%d\n",sun);}
A.2500B.2050C.4D.0
49.在C語言中,函數(shù)中變量的隱含存儲類別是______。
A.autoB.staticC.externD.無存儲類別
50.若有定義:intx=0,*p=&x;則語句printf("%d\n",*p);的輸出結(jié)果是()。
A.隨機值B.0C.x的地址D.p的地址
51.有以下結(jié)構(gòu)體說明和變量定義,如下圖所示,指針p、q、r分別指向一個鏈表中的三個連續(xù)結(jié)點。
structnode{intdata;structnode*next;}*p,*q,*r;現(xiàn)要將q和r所指結(jié)點的先后位置交換,同時要保持鏈表的連續(xù),以下錯誤的程序段是()。
A.r->next=q;q->next=r->next;p->next=r;
B.q->next=r->next;p->next=r;r->next=q;
C.p->next=r;q->next=r->next;r->next=p;
D.q->next=r->next;r->next=q;p->next=r;
52.有以下程序#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運行結(jié)果是
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
53.在函數(shù)調(diào)用過程中,如果函數(shù)funA調(diào)用了函數(shù)funB,函數(shù)funB又調(diào)用了函數(shù)funA,則()。
A.稱為函數(shù)的直接遞歸調(diào)用B.稱為函數(shù)的間接遞歸調(diào)用C.稱為函數(shù)的循環(huán)調(diào)用D.C語言中不允許這樣的遞歸調(diào)用
54.現(xiàn)有以下語句:i=1;for(;i<=100;i++)sum+=i;
A.for(i-1;;i++){sum+--i;if(i==100)break;}
B.for(i=1;i<=100;){sum+=i;i++;}
C.i=1;for(;i<=100;){sum+=-i;}
D.i=1;for(;;){sum+=i;if(i==100)break;i++;}
55.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n”,*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}
A.1B.4C.7D.5
56.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
57.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是
A.kk>=′A′&&kk<=′Z′
B.!(kk>=′A′||kk<=′Z′)
C.(kk+32)>=′a′&&(kk+32)<=′Z′
D.isalpha(kk)&&(kk<91)
58.調(diào)用gets和puts函數(shù)時,必須包含的頭文件是
A.stdio.hB.stdlib.hC.defineD.以上都不對
59.設有下列語句inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,C的值為()。
A.6B.7C.8D.9
60.若要求從鍵盤讀入含有窄格字符的字符串,應使用函數(shù)()。
A.getc()B.gets()C.getchar()D.scanf()
四、選擇題(20題)61.若變量c為char類型,能正確判斷出c為小寫字母的表達式是
A.’a’<=c<=’z’B.(c>=’a’)||(c<=’z’)
C.(’a’<=c)and(’z’>=c)D.(c>=’a’)&&(c<=’z’)
62.
63.若有定義語句:doublex,y,*px,+py;,執(zhí)行Tpx=&x;py=&y之后,正確的輸入語句是()。
64.數(shù)據(jù)庫設計中反映用戶對數(shù)據(jù)要求的模式是()。
A.內(nèi)模式B.概念模式C.外模式D.設計模式
65.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動變量實質(zhì)上是一個函數(shù)內(nèi)部的局部變量
66.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
67.有以下程序:
程序運行后的輸出結(jié)果是()。
A.3B.1C.2D.0
68.
69.以下不能輸出字符A的語句是()(注:字符A的ASCIl碼值為65,字符a的ASCIl碼值為97)。
70.程序流程圖中帶有箭頭的線段表示的是()。
A.圖元關系B.數(shù)據(jù)流C.控制流D.調(diào)用關系
71.有以下程序:
程序輸出結(jié)果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯
72.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點是()。
A.文件開始B.文件末尾C.文件當前位置D.以上都不對
73.
74.以下程序的功能是:給r輸入數(shù)據(jù)后計算半徑為r的圓面積s。程序在編譯時出錯。
main()
/*Beginning*/
{intr;floats;
scanf("%d",&r);
s=*PI*r*r;printf("s=%f\n",s);
}
若想糾正錯誤,應該()。
A)更改注釋語句書寫位置B)存放圓半徑的變量r應該定義為整型
C)輸出語句中不能加“s=”D)給計算面積的PI變量賦值
75.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序運行后輸出的結(jié)果是
A.5B.6
C.7D.8
76.有以下程序:
voidmain()
{chars[]="159",*p;
p=s;
printf("%c",*p++);printf("%c",*p++);
}
程序運行后的輸出結(jié)果是()。
A.15B.16C.12D.59
77.
A.P=8;B.P=k;C.P=s[0];D.k=s;
78.有以下程序
structs
{intx,y;}data[2]={10,100,20,200};
main()
{structs*p=data;
printf("%d\n",++(p->x));
}
程序運行后的輸出結(jié)果是()
A.10B.11C.20D.21
79.
以下程序的輸出結(jié)果是()。
main
{inti;
for(i=0;i<3;i++)
switch(i){case0:printf("%d",i);
case2:printf("%d",i);
default:printf("%d",i);
}
}
A.000102B.000020C.000122D.000111
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將長整型數(shù)中為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。例如,當s中的數(shù)為87653142時,t中的數(shù)為8642。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設計題(1題)82.請編一個函數(shù)fun(ohlr*str),該函數(shù)的功能是把字符串中的內(nèi)容逆置。
例如,字符串中原有的字符串為asdf9,則調(diào)用該函數(shù)后,串中的內(nèi)容為9fdsa。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。
試題程序:
#include<string.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidfun(char*str)
{
}
voidmain
{
chara[N];
FILE*out:
printf("Enterastring:");
gets(a);
printf("Theorigiralstringis:");
puts(a);
fun(a):
printf("Thestringaftermodified:");
puts(a);
strcpy(a,"Welcome!");
fun(a);
ut=fopen("outfile.dat","w");
fprintf(out,"%s".a(chǎn));
fclose(out);
}
參考答案
1.D
2.D
3.C
4.C
5.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應二進制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進制為00000010,a=1的二進制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進制后為3,b=b^a=00000010^00000011=00000001,即1。
6.D
7.C
8.BC語言中,八進制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,因此選項A錯誤。浮點數(shù)據(jù)的指數(shù)形式表示中,字母e或E之后的指數(shù)必須為整數(shù),所以選項C錯誤。選項D中,整型數(shù)據(jù)l0,000的表示形式是錯誤的。
9.B《軟件可行性分析報告》是軟件可行性研究的依據(jù)。
10.Csum+=i等價于sun+i,在本題中sum沒有賦初值,而題中只輸出sum的值,因此整個結(jié)果為不確定值。
11.C
12.CN-S圖(也被稱為盒圖或CHAPIN圖)、PAD(問題分析圖)及PFD(程序流程圖)是詳細設計階段的常用工具。E—R圖即實體一聯(lián)系圖,是數(shù)據(jù)庫設計的常用工具。從題中圖可以看出該圖屬于程序流程圖。
13.C
14.BB【解析】只有B選項369可以用無符號整數(shù)來表示和存儲。A選項一369有負號,選項C0.369是小數(shù)都不能用無符號整數(shù)類存儲。選項D是一個整數(shù)集合得用數(shù)組來存儲。
15.D
16.BA選項中不能將變量Y賦給表達式,c選項中錯誤與A選項一樣,D選項中強制類型轉(zhuǎn)換表達式應寫成(doub1e)x/10。
17.D算法是指解題方案的準確而完整的描述,算法不等于程序,也不等于計算方法,所以A錯誤。設計算法時不僅要考慮對數(shù)據(jù)對象的運算和操作,還要考慮算法的控制結(jié)構(gòu)。故答案為D選項。
18.D
19.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。
20.A
21.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復執(zhí)行循環(huán)體語句,直到表達式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
22.*(p+5)
23.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。
24.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
25.*(str+I)或str[I]*(str+I)或str[I]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+I)來訪問字符串中的第I個元素,判斷是否為結(jié)束標志,如果不是,I=I+1,繼續(xù)取下一個元素進行判斷,直到*(str+I)的值為'\\0'為止,也可以用下標的方式引用字符,如*(str+I)相當于str[I]。
26.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
27.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進行轉(zhuǎn)換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。
28.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
29.靜態(tài)測試靜態(tài)測試
30.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當i=0時,p[0]=&x[1],p[0][0]=2;當i=1時,p[1]=&x[3],p[1][0]=4;當i=2時,p[2]=&x[5],p[2][0]=6;當i=3時,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
31.軟件開發(fā)
32.軟件危機的出現(xiàn)軟件危機的出現(xiàn)
33.6
34.繼承繼承
35.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內(nèi)完成,即算法必須在執(zhí)行有限個步驟之后終止。
36.88解析:第1次for循環(huán),i=0,調(diào)用函數(shù)f(2),然后將a的值加1,在f()函數(shù)中,變量c為static類型,所以c=8:第2次for循環(huán),i=1,調(diào)用函數(shù)f(3),然后將a的值加1,調(diào)用函數(shù)f(3)時,a=c++=8,所以k=8。
37.19
38.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因為fun函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。
39.66解析:經(jīng)過分析將遞歸函數(shù)寫成其數(shù)學表達式如下:
本題中定義了一個長度為3的數(shù)組aa并初始化。接著調(diào)用遞歸函數(shù)f,由上面的數(shù)學表達式以計算其返回值s=1+2+3=6,所以空格處應該填6。
40.1212解析:本題的第—個for循環(huán)用于始數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
41.A解析:C語言規(guī)定,賦值號的右邊可以是一個賦值表達式,因此選項C)、選項D)正確;在選項B)中,a++是一個自加1的表達式,a被重新賦值,因此它是一個合法的賦值表達式;在選項A)中,a+d是一個算術表達式,雖然最后有一個分號,但這個表達式中沒有賦值操作,因此它不是一條賦值語句。
42.B解析:考查通過指針來引用一維數(shù)組的方法。數(shù)組元素可以通過數(shù)組首地址和下標的方式來引用,數(shù)組元素的下標是從0開始的,也可以將數(shù)組首地址賦給一個指針變量,通過指針和下標的方式來引用數(shù)組元素。通過數(shù)組的首地址引用數(shù)組元素。
43.D解析:字符數(shù)組初始化可以有兩種方式:方式一,按單個字符的方式賦初值。方式二,把一個字符串作為初值賦給字符數(shù)組。選項A定義的字符數(shù)組長度為8,由于最后還要加一個“、0”做結(jié)束標志,所以賦給他的字符串長度應小于等于7;在給字符數(shù)組賦初值的時候,應該用花括號“{”和“}“將字符串括起來。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時就給其賦初值,比如:char*p=“student”;二是給指針變量賦值,比如:p=“student”;(p已經(jīng)被定義為字符型指針變量;)。
44.B解析:strcpy(str1,s1):作用是將字符串s1拷貝到字符數(shù)組str1中去。strcat(字符數(shù)組1,字符數(shù)組2):把字符串2接到字符串1的后面,結(jié)果放在字符數(shù)組1中,函數(shù)調(diào)用后返回字符數(shù)組1的地址。本題定義了三個字符數(shù)組p1,p2,sir,strcat(p1,p2)函數(shù)的作用是將字符串數(shù)組p2接到字符串p1的后面,結(jié)果放在字符數(shù)組p1中,再通過strcpy()函數(shù)將該字符串拷貝到str數(shù)組中,原str數(shù)組中的字符串xyz被覆蓋,因此打印輸出字符串str即可得到abcABC。
45.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。
46.C解析:字符串少一個結(jié)束標志,所以輸出的結(jié)果不確定。
47.C解析:本題首先定義一個全局變量x并賦初值為3,主函數(shù)中使用這個全局變量控制循環(huán)次數(shù),循環(huán)執(zhí)行了2次,調(diào)用兩次tncre()函數(shù)。第一次調(diào)用incre(),定義一個靜態(tài)變量x并賦初值1,然后執(zhí)行“x*=x+1”,使x的值變?yōu)?;第二次調(diào)用incre()函數(shù)時,靜態(tài)變量將保留上一次退出時的值即2,執(zhí)行語句“x*=x+1”后,x的值變成6,輸出x的值為6。所以,4個選項中C為所選。
48.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過這一次循環(huán),執(zhí)行下—次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。
49.A解析:函數(shù)中變量的存儲類別包括auto,static,extern,其中auto為隱含存儲類別,static為靜態(tài)存儲類別,register是寄存器存儲類別。
50.B解析:本題考查的是指針的運用。語句intx=O,*p=&x;定義7一個int型變量x并初始化為0,同時還定義了一個int型指針p指向變量x。語句ptintf('%d\\n',*p);是按十進制整數(shù)格式輸出指針p所指向的內(nèi)容,即x的值0。故本題應該選擇B。
51.A解析:對于選項A),執(zhí)行r->next=q后,r->next指向了q。此時q->next=r->next就相當于q->next=q;所以q的下一個結(jié)點指向了自己,而不是指向原來r的下一個結(jié)點,所以選項A)錯誤。
52.D解析:本題考查switch語句,首先,x=1符合條件case1,執(zhí)行switch(y)語句。y=0符合case0語句,執(zhí)行a抖并跳出switch(y)語句,此時a=1。因為case1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。
53.B解析:在C語言中所謂函數(shù)的遞歸是指在調(diào)用一個函數(shù)的過程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。顯然題目中所說得函數(shù)調(diào)用為函數(shù)的間接遞歸調(diào)用。所以,4個選項中選項B符合題意。
54.D
55.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動態(tài)存儲分配函數(shù)malloc分配了一個int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對p所指向的數(shù)據(jù)進行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對應于實參a的元素5,所以輸出結(jié)果為5。
56.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。
57.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在'A'和'Z'之間就可以了,選項A)和C)符合要求。函數(shù)isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65到90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。
58.A解析:gets函數(shù)和puts函數(shù)是庫函數(shù),必須包含的頭文件是stdio.h。
59.D解析:變量b的初值等于2,所以表達式b<<2表示b的值二進制左移兩位,即擴大4倍,所以變量b的等于8。然后與a的值1進行異或運算,得9。
60.B解析:scanf()語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf()函數(shù)不能輸入空格;getchar()函數(shù)用于輸入字符,其調(diào)用形式為:ch=getchar(),getchar()函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets()函數(shù)的調(diào)用形式為:gets(str_adr),其中str_adr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。ge
61.D在本題中,首先定義了一個字符型變量c,然后要求找出能判斷c中字符為小寫字母的表達式。
選項A的表達式′a′<=c<=′z′是一個錯誤的表達式,系統(tǒng)在編譯時,會因為該語句報錯。
選項B的表達式(c>=′a′)||(c<=′z′)是判定變量c的字符是大于等于字符a的字符或者小于等于z的字符,這其實相當于ASCII碼中所有的字符,不能完成題目的要求。
選項C的表達式(′a′<=c)and(′z′>=c)是一個錯誤的表達式,在C語言中,沒有定義一個and關鍵字,系統(tǒng)在編譯時會報錯。
選項D的表達式(c>=′a′)&&(c<=′z′)是判定變量c的字符同時具有大于等于字符a和小于等于z的特點,很顯然,這樣的字符是小寫字母。
通過上面的分析,我們可以知道本題正確的答案是D。
62.D
63.A因為x,y都是double型數(shù)據(jù),所以輸入時的格式字符應為%If,所以B)與c)錯誤。D)選項中“scanf(”%If%IP’’x,y);”應為“scanf(”%If%lf'’,&x,&y);”。故本題答案為A)。
64.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。
65.B解析:編譯時,編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運行中,當局部變量所在的函數(shù)被調(diào)用時,編譯系統(tǒng)根據(jù)需要要臨時分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。
66.A\n本題考查了雙重三目運算符的用法。例如:表達式a>b?c:d可以看成,當a>b時取C的值,否則取d的值。在本題中k=a>b?(b>c?1:0):0可以看做:當b
溫馨提示
- 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年度非婚生子撫養(yǎng)費支付及探望權(quán)調(diào)整協(xié)議
- 二零二五年度農(nóng)產(chǎn)品收購合同價款調(diào)整及市場波動應對方案
- 廣東省2025年度簡易勞動合同簽訂與解除指南合同
- 2025年度跨境貿(mào)易商業(yè)銀行出口信貸合同
- 二零二五年度車輛抵押貸款擔保合同續(xù)簽協(xié)議
- 二零二五年度股東權(quán)益保護股權(quán)協(xié)議書范本
- 2025年度食堂食品安全教育與宣傳合同協(xié)議
- 在線教育平臺家委會職責與學習支持
- 一年級語文復習計劃的實施指南
- 旅游行業(yè)會議管理流程研究
- 《空氣動力學基礎》緒論課件
- 卡通插畫幼兒園國防教育主題班會課程PPT實施課件
- 紅樓夢人物關系圖譜可A4打印版
- 第一屆全國中學生地球科學競賽初賽試題試題含答案
- 石化公司建設項目竣工文件整理歸檔規(guī)范
- A4線纜標簽數(shù)據(jù)模板
- 加油站電器火災應急預案演練記錄
- 沖壓件,汽車表面零件缺陷及原因分析
- 電熔旁通鞍型
- 2022八年級下冊道德與法治全冊知識點梳理
- 工程數(shù)學線性代數(shù)第一章同濟第五版ppt課件
評論
0/150
提交評論