




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年甘肅省蘭州市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.若棧采用順序存儲方式存儲,現兩棧共享空間V[1m],top[1]、top[2]分別代表第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]
2.表達式a+=a-=a=9的值是()。
A.9B.-9C.18D.0
3.以下選項中,當x為大于1的奇數時,值為0的表達式是A.x%2==1B.x/2C.x%2!=0D.x%2==0
4.有以下程序:
程序運行后的輸出結果是()。A.4B.2C.3D.1
5.
6.以下敘述中錯誤的是()。
A.通過指針變量存取某個變量值的方式稱為“直接存取”方式
B.在程序的開頭包含頭文件stdio.h后,可以給指針變量賦NULL值
C.將一個指針變量中的值賦給另一個指針變量,則這兩個指針變量指向同一地址
D.C語言中函數返回值的類型可以是簡單的數據類型,也可以是指針類型
7.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數3賦給變量a,5賦給變量b的輸入數據是A.A.35B.3,5C.3;5D.35
8.
9.有以下函數:intfun(char*x,char*y){intn=0;}while((*x==*y)&&*x!=‘\0’){x++;y++;n++;}returnn;}函數的功能是()。
A.將y所指字符串賦給x所指存儲空間
B.查找x和y所指字符串中是否有‘\0’
C.統計x和y所指字符串中最前面連續相同的字符個數
D.統計x和y所指字符串中相同的字符個數
10.在Windows環境下,單擊當前應用程序窗口中的“關閉”按鈕,其功能是A.將當前應用程序轉為后臺運行
B.退出Windows后再關機
C.退出Windows后重新啟動計算機
D.終止當前應用程序的運行
11.設有表示學生選課的三張表,學生S(學號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學號,課號,成績.,則表SC的關鍵字(鍵或碼)為()
A.課號,成績B.學號,成績C.學號,課號D.學號,姓名,成績
12.有如下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=P[5];則b的值是()。
A.5B.6C.9D.8
13.若有說明:int*p,m=5,n;以下正確的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
14.請選出以下程序的輸出結果()#include<stdio.h>sub(x,y,z)intx,y,*z;{*2=y-x;}main(){inta,b,c;sub(10,5,&A);sub(7,a,&B);sub(a,b,&C);printf("%d,%d,%d\n",a,b,C);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
15.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序運行后的輸出結果是()。
A.3B.6C.8D.12
16.若有定義“intw[3][5];”,則以下不能正確表示該數組元素的表達式是()。
A.*(&w[0][0]+1)B.*(*w+3)C.*(*(w+1))D.*(w+1)[4]
17.有1000個無序的整數,希望使用最快的方式找出前50個最大的,最佳的選擇是()
A.冒泡排序B.基數排序C.堆排序D.快速排序
18.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序運行后輸出結查是
A.16B.10C.8D.6
19.設x和y均為int型變量,且x=10,y=3,則以下語句的輸出結果是()printf("%d,%d\n",x--,--y);
A.10,3B.9,3C.9,2D.10,2
20.若有定義“charch;inta;doubled;”,當輸入為12345678910.36時,以下選項中能給各個變量正確賦值的是()。
A.scanf(“%d%c%lf”,&a,&ch,&d);
B.scanf(“%5d%2c%7.2lf”,&a,&ch,&d);
C.scanf(“%d%c%lf”,a,ch,d);
D.scanf(“5d%2c%7.2lf%”,&a,&ch,&d);
二、2.填空題(20題)21.下面程序的輸出結果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
22.在關系運算中,【】運算是在給定關系的某些域上進行的運算。
23.類是一個支持集成的抽象數據類型,而對象是類的【】。
24.調用C語言標準庫函數時要求用【】命令。
25.下列程序的輸出結果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
26.分析下列程序:
main()
{intx=1,y=0,a=0,b=0;
switch(a)
{case1:switch(b)
{case0:x++;
case1:y++;break;
}
case2:x++;y++;break;
}
printf("x=%d,y=%d\n",x,y);
}
運行程序的輸出結果是______。
27.一個關系表的行稱為()。
28.設有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結果是______。
29.下面函數要求計算兩個整數x,y之和,并通過形參返回該值,請填空。
add(intx,inty,【】z)
{【】=x+y;}
30.若a=10,b=20,則表達式!(a<b)的值是【】。
31.以下程序的輸出結果是【】。
main()
{ints,i;
for(s=0,i=1;i<3;i++,s+=i;
printf(“%d\n”,s);
}
32.實現程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
n=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
33.設有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結構體成員a的引用方法可以是abc.a和p_abc【】a。
34.若要使指針p指向一個double類型的動態存儲單元,請填空。
p=【】malloc(sizeof(double));
35.以下程序的輸出結果是12.00,請將空白處填寫完整。
main()
{inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1*2;
printf("%52f\n",z);
}
36.棧的3種基本運算是:入棧、退棧和______。
37.設在主函數中有以下定義和函數調用語句,且fun函數為void類型,請寫出fun函數的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
38.有以下程序片段,請問執行后的輸出結果是【】。
intn=10;
while(n>7)
{printf("%d",n--);
}
39.下面程序運行后的輸出結果是()。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6},*k[3],i=1;
while(i<4)
{k[i-1]=&a[2*i-1];
printf("%d",*k[i-1]);
i++;
}
}
40.若x和y都是double型變量,且x的初值為3.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為【】。
三、1.選擇題(20題)41.在面向對象的程序設計中,下列敘述中錯誤的是()。
A.對象是面向對象軟件的基本模塊
B.對象不是獨立存在的實體,各個對象之間有關聯,彼此依賴
C.下一層次的對象可以繼承上—層次對象的某些屬性
D.同樣的消息被不同對象接受時,可導致完全不同的行動
42.下面不屬于靜態測試方法的是()
A.代碼檢查B.白盒法C.靜態結構分析D.代碼質量度量
43.在軟件工程中,白盒測試法可用于測試程序的內部結構,此方法將程序看做是()。
A.循環的集合B.地址的集合C.路徑的集合D.目標的集合
44.以下程序中與語句k=a>b?(b>c?1:0):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;elsek=0;
D.if(a>b)k=1;elseif(b<c)k=1;
45.以下所列的各函數原型中,正確的是()
A.voidply(vara:Integervarb:Integer)
B.voidplay(inta,b)
C.roidplay(inta,intb)
D.subplay(aasinteger,basinteger)
46.設有如下程序#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}上述程序的輸出結果是_______。
A.運行錯誤B.100C.i的地址D.j的地址
47.假定w、x、y、m均為int型變量,則執行下列的語句后,m的值是()。w=6,x=4,y=3;m=(w<x)?w:x;m=(m<y)?m:y;
A.3B.4C.5D.6
48.下面的程序片段
y=-1;
if(x!=0)
if(x>0)y=1;elsey=0;
所表示的數學函數關系是_______。
A.
B.
C.
D.
49.下列說法正確的是()。
A.在C語言中,可以使用動態內存分配技術,定義元素個數可變的數組
B.在C語言中,數組元素的個數可以不確定,允許隨機變動
C.在C語言中,數組元素的數據類型可以不一致
D.在C語言中,定義了一個數組后,就確定了它所容納的元素的個數
50.以下選項中合法的實型常數是A.5E2.0B.E-3C.2.00E-01D.1.3E
51.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序運行的結果是()。
A.234B.432C.23D.4534554334344523
52.已知字母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)
53.若有如下定義和聲明:structs{intm;charch;doublex;uniont{chara[6];intb[3];}tt;}ss;則sizeof(struets)的值是()
A.6B.14C.17D.20
54.下列選項中不能正確定義結構體的是_______。
A.typedefstruct
B.structcolorcl{intred;{intred;intgreen;intgreen;intblue;intblue;}COLOR;};COLORcl;
C.structcolor
D.struct{intred;{intred;intgreen;intgreen;intblue;intblue;}cl;}cl;
55.將E-R圖轉換到關系模式時,實體與聯系都可以表示成________。
A.屬性B.關系C.鍵D.域
56.以下程序的輸出結果是#include<stdio.h>main(){unionun{inti;longk;charc;};structbyte{inta;longb;unionunc;}r;printf("%d\n",sizeof(r));}
A.10B.13C.7D.8
57.設x為整型變量,n=14,n的地址為4000;m=6,m的地址為2000;執行語句x=&n后的結果為()。
A.14B.6C.2000D.4000
58.以下程序的輸出結果是______。main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\n",m--);}
A.7B.6C.5D.4
59.有以下程序main(){inta=666,b=888;printf("%d\n",a,B);}程序運行后的輸出結果是
A.錯誤信息B.666C.888D.666,888
60.以下程序運行時若要正確輸出函數的入口地址和輸入數的絕對值,應在程序空缺處填入的正確選項是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
四、選擇題(20題)61.請選出以下語句的輸出結果Printf("%d\n",strlen("\t\"\065\xff\n"));
A.5B.14C.8D.輸出項不合法,無正常輸出
62.有如下程序:
main
{inta=2,b=-1.c=2;
if(a<b)if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
該程序的輸出結果是()。A.A.0B.1C.2D.3
63.
64.有以下程序程序輸出()。
A.編譯有錯B.0,0,0,3C.1,1,2,0D.0,l,2,0
65.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
66.若有定義intx'y;并已正確給變量賦值。則以下選項中與表達式(x-y)?(x++):(y++)中的條件表達式(x_y)等價的是()。
A.(x-y011x-y>0)B.(x-y<0)C.(x-y>0)D.(x-y=o)
67.
68.層次型、網狀型和關系型數據庫的劃分原則是()。
A.記錄長度B.文件的大小C.聯系的復雜程度D.數據之間的聯系方式
69.假定已建立以下鏈表結構,且指針p和q已指向如下圖所示的結點:
則以下選項中,可將q所指結點從鏈表中刪除并釋放該結點的語句組是
A.(*p).next=(*q).next;free(p);B.p=q->next;free(q);
C.p=q;free(q);D.p->next=q->next;free(q);
70.(40)將E-R圖轉換到關系模式時,實體與聯系都可以表示成()
A.屬性
B.關系
C.鍵
D.域
71.以下選項中關于程序模塊化的敘述錯誤的是()。
A.可采用自底向上、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序
B.把程序分成若干相對獨立、功能單一的模塊,可便于重復使用這些模塊
C.把程序分成若干相對獨立的模塊,可便于編碼和調試
D.可采用自頂向下、逐步細化的設計方法把若干獨立模塊組裝成所要求的程序
72.(21)算法的空間復雜度是指______。
A.算法程序的長度
B.算法程序中的指令條數
C.算法程序所占的存儲空間
D.算法執行過程中所需要的存儲空間
73.
74.有以下程序:
以下敘述中正確的是()。
A.在給P和q數組置初值時,系統會自動添加字符串結束符,故輸出的長度都為3
B.由于P數組中沒有字符串結束符,長度不能確定;但q數組中字符長度為3
C.由于q數組中沒有字符串結束符,長度不能確定;但P數組中字符長度為3
D.由于P和q數組中沒有字符串結束符,故長度都不能確定
75.
76.有以下程序:
voidmain()
{intk=10,n=0;
for(;n<k;)
{//n++;
if(n++%3!=0)continue;
k--;}
printf("%d,%d\n",k,n);
}
程序運行后的輸出結果是()。
A.7,7B.6,6C.3,3D.4,4
77.下列數據模型中,具有堅實理論基礎的是()。
A.層次模型B.網狀模型C.關系模型D.以上3個都是
78.在一個C語言源程序文件中所定義的全局變量,其作用域為()。
A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數的全部范圍D.由具體定義位置和extern說明來決定范圍
79.有以下程序
80.設intx=7,則~x的值是()。
A.-8B.7C.-1D.1
五、程序改錯題(1題)81.下列給定的程序中,函數proc的功能是:用選擇法對數組中的m個元素按從小到大的順序進行排序。例如,排序前的數據為:1132-5214則排序后的數據為:-52111432請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。試題程序:#include<stdio.h>#defineM20voidproc(inta[],intn){inti,j,t,P;//****found****for(j=0;j<n-1;j++);{p=j;for(i=j;i<n;i++)if(a[[i]<a[p])p=i;t=a[p];a[p]=aEj3;//****found****a[p]=t;}}voidmain{intarr[M]={11,32,-5,2,14},i,m=5;printf("排序前的數據:");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");proc(arr,m);printf("排序后的順序:");for(i=0;i<m;i++)printf("%d",arr[i]);printf("\n");}
六、程序設計題(1題)82.請編寫函數proc,其功能是:將str所指字符串中除下標為偶數、同時ASCIl碼值為奇數的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數組中。例如,若str所指字符串中的內容為ABCDEFGl2345,其中字符B的ASCIl碼值為偶數,所在元素的下標為奇數,因此必須刪除;而字符A的ASCIl碼值為奇數,所在數組中的下標為偶數,因此不應當刪除。依此類推,最后t所指的數組中的內容應是ACEG。注意:部分源程序給出如下。請勿改動main函數和其他函數中的任何內容,僅在函數proc的花括號中填人所寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>voidproc(char*str,chart[]){}voidmain{charstr[100],t[100];system("CLS");printf("\nPleaseenterstringstr:");scanf("%S",str);proc(str,t);printf("\nTheresultiS:%s\n",t);
參考答案
1.B
2.D解析:+=、-=、=等符號優先級相同結合性是由右至左,所以選D。
3.D解析:因為x的值為大于1的奇數,所以x除以2的余數等于1,因此,選項A)、C)中表達式的結果為真,不為0;對于選項B)來說,x除以2的商不會等于0;選項D)中表達式的結果為假,即等于0。
4.D條件表達式形式:表達式1?表達式2:表達式3。當表達式1的值為非零值時,整個表達式的值是表達式2的值;當表達式1的值為零值時,整個表達式的值是表達式3的值。題干中的表達式是嵌套的條件表達式w﹤x?w:z﹤y?z:x,等價于w﹤x?w:(z﹤y?z:x)。由于w取值為4,x取值為3,所以w﹤x的值為零值,整個表達式的值為z﹤y?z:x,z取值為1,y取值為2,所以z﹤y的值為非零值,整個表達式的值為z的值1。本題答案為D選項。
5.C
6.A通過指針變量存取某個變量值的方式稱為“間接存取”方式,選項A錯誤;頭文件stdio.h中定義了NULL,在程序的開頭包含stdio.h后,可以給指針變量賦NULL值,表示一個空指針,選項B正確;將一個指針變量中的值賦給另一個指針變量,這兩個指針變量指向同一地址,選項C正確;C語言中函數返回值的類型可以是簡單的數據類型,也可以是指針類型,選項D正確。故本題答案為A選項。
7.C解析:在C語言中scanf函數中輸入數據時要嚴格按照所規定的樣式輸入。
8.A
9.C本題中由循環條件可知,遇到‘\\0’或x與y所指的字符不相等時循環結束。所以函數的功能是統計x和y所指字符串中最前面連續相同的字符個數。故本題答案為C選項。
10.D
11.C學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關鍵字就應該是與前兩個表能夠直接聯系且能唯一定義的學號和課號,所以選擇C項。
12.C解析:p=&a[3]將指針指向數組a的第4個元素,p[5]則是數組a的第9個元素,而a[8]=9,所以b=9。
13.D解析:“&”是求址運算符,“*”是指變量說明符。選項A)、B)應改為scanf('%d',p);選項C)中指針變量p未指向一確定的內存單元,不能為其賦值,并且這樣做很危險,建議不使用。
14.B
15.Bfun函數的功能是獲取2個數的平均值,注意平均值是整型數,小數會被截斷。調用函數“fun(2*4,fun(5,6))”相當于調用函數“fun(8,5)”,平均值是6。故本題答案為B選項。
16.DA選項中,“*(&w[0][0]+1)”表示“w[0][1]”;B選項中,“*(*w+3)”表示“w[0][3]”;C選項中,“*(*(w+1))”表示“w[1][0]”;D選項中,“*(w+1)[4]”的正確寫法是“(*(w+1))[4]”,表示“w[1][4]”。故本題答案為D選項。
17.D
18.B解析:本題考查的是指針的簡單應用。題目中首先定義了一個int型數組a并初始化了,然后定義了兩個指針變量p和q,并分別初始化p為指向數組元素a[3]、q指向p后面的第2個元素即指向a[5]。所以最終輸出的值為a[3]+a[5]的值10。應該選B。
19.D
20.Ascanf是格式輸入函數,其中雙引號之間的內容是格式控制字符串,后面是輸入參數列表。輸入參數列表中各項都必須是變量地址,所以選項C錯誤;在scanf函數的格式字符前,可以加入一個正整數指定輸入數據所占的寬度,但不可以對實數指定小數位的寬度,所以選項B、D錯誤。選項A是正確的,按照A的輸入格式,12345賦值給變量a,空格賦值給變量ch,678910.36賦值給變量d。故本題答案為A選項。
21.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。
22.投影投影解析:在關系運算中,投影運算是在給定關系的某些域上進行的運算。
23.實例將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,對象則是其對應類的一個實例。
24.includeinclude解析:include命令可調用標準的C語言庫函數,可以用一對尖括號或一對雙引號將“.h”文件括起來,在include前面要加“#”。
25.11解析:ifelse語句的功能是:若表達式的值為真,執行語句1,并跳過其他語句,執行ifelse語句的下一條語句,若表達式的值為假,跳過語句1,執行語句2,依次往下判斷。題中,x=3,y=2,第一個if語句的控制條件x<y就不滿足,又沒有與之配對的else語句,所以直接執行printf語句,在整個過程中變量z的值都沒發生變化。
26.x=1y=0。x=1,y=0。解析:本題程序的主體部分是switch語句的嵌套結構,當變量a的值為0時,在第一層switch-case語句中,沒有匹配的case分支。因此,x和y的值沒有變化,仍然是1和0。
27.元組元組解析:一個關系表中的行稱為元組,列稱為屬性。
28.QTHRGQTHRG解析:strcmp(t,s)函數用來比較t和s所指字符串的大小,若t>s,則函數值大于0;若t=s,則函數值等于0:若t<s,則函數值小于0。strcpy(t,s)函數的功能是把字符數組s所指字符串的內容復制到字符數組t所指的存儲空間中。本題中,t[10]='CDEF'。第一次循環,s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執行第二次循環.s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執行下列的語句,將字符數組s所指字符串的內容復制到字符數組t所指的存儲空間中,然后輸出字符數組t。
29.int**zint*\r\n*z解析:函數希望通過形參z帶回結果,形參z必須是指針類型的。由于返回整型結果,所以第一處填int*;函數返回前必須先把結果通過形參z間接引用傳回,第二處應填*z。
30.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。
31.55解析:此程序中,for循環語句后面直接跟了一個“;”,表明循環體為空。輸出語句不在for循環體內,所以在循環執行完畢后才輸出s的值。s、i的初值分別為0和1,判斷循環條件,表達式“1<3”成立,執行“i++,s+=i”后,i和s的值分別為2和1,繼續判斷循環條件,表達式“2<3”成立,執行“i++,s+=i”后,i和s的值分別為3,再次判斷循環條件,表達式“3<3”不成立,循環結束。
32.3!feof(f1)3\r\n!feof(f1)解析:要實現文件復制,需要指定源文件及目的文件,因此在命令行下執行程序時至少要指定兩個參數,加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環中語句fputc(fgetc(f1),(f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。
33.->->解析:若結構體變量abc有成員a,并有指針p_abc指向結構變量abc,則引用變量abc成員a的標記形式有abc.a和p_abc->a。
34.(double*)(double*)解析:一般用malloc函數為變量分配存儲單元時,要在前面用強制類型轉換符說明該存儲單元中數據的類型。本題要為指向雙精度浮點型數據的指針變量p分配存儲單元,因此用(double*)說明。
解析:a/2=9/2=4,1/2=0,于是根據輸出結果就有下列等式:z=4+2*x/1.1=12.0,化簡后,為x/1.1=4,x=4.4。
36.讀棧頂元素讀棧頂元素解析:棧的基本運算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個新的元素;退棧是指取出棧頂元素并賦值給一個變量;讀棧頂元素是將棧頂元素賦值給一個指定的變量,不刪除棧頂元素。
37.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數調用“不帶回值”,可以用“void”定義函數為“無類型”(或稱“空類型”),這樣系統就保證不使函數帶回任何值。當二維數組作為形參時,二維數組的第一維可以省略。
38.1098
39.246
40.88解析:fabs函數功能是求x的絕對值,計算結果為double型。pow功能是計算x的y次方的值,計算結果同樣為double型。所以本題表達式相當于2.0的3.0次方,結果為8.000000。
41.B解析:在面向對象的程序設計中,一個對象是一個可以獨立存在的實體。各個對象之間相對獨立,相互依賴性小。所以,選項B錯誤,應為本題的正確答案。
42.B解析:白盒測試按照程序內部的邏輯測試程序,檢驗程序中的每條路徑能否按預定要求工作,白盒測試又稱單元測試,它不屬于基于代碼分析的靜態測試。故正確選項為B項。
43.C解析:軟件的白盒測試法是把測試對象看作一個打開的盒子,它允許測試人員利用程序內部的邏輯結構及有關信息設計或選擇測試用例,對程序所有邏輯路徑進行測試。
44.A解析:三目運算表達式的規則為如果“?”前面的表達式的值為真,則取“:”前的表達式的值,否則,取“:”后面表達式的值。分析題目中給出的表達式可知,如果a>b和b>c同時成立,k=1,否則k=0。
45.C
46.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結果應當為100。
47.A解析:條件表達式“a?b:c”的含義是:當a為真時,其值等于表達式b的值,當a為假時,其值等于表達式c的值。第一個表達式:w=6<x=4為假,所以返回x的值,即m=x=4;第二個表達式:m=4<y=3為假,所以返回y的值,即m=y=3。
48.C解析:本題的考查點是根據程序寫出數學函數關系。題中的兩個判斷語句實際上指出了y取值的條件,即是當x大于零時y取1;當x小于零時y取0;當x等于零時y值不變,為-1。
49.D解析:本題考查數組的兩個知識點:①在C語言中,數組元素的個數是確定的,不允許隨機變動,數組定義好之后,它所能容納的元素的個數也就確定了;②同一個數組中所有元素的類型是一樣的。
50.C解析:在C語言中,實數有兩種表示形式:小數形式與指數形式。小數形式的實數由整數部分、小數點和小數部分組成(必須要有小數點)。指數形式字母e(E)之前必須有數字,且e或E后的指數必須為整數。選項A中,5E2.0中E后面的2.0不是整數;選項B中,E前面沒有數字;選項D中,E后面沒有數字,只有選項C正確。
51.D解析:本題主要考查for循環語句的嵌套。外層主循環執行了3次,嵌套的循環語句每輪執行2次,每次輸出i+j的值,推出嵌套循環語句后換行。
52.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在“A”和“Z”之間就可以了,選項A和C符合要求。函數isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65-90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。
53.C
54.B解析:將一個變量定義為標準類型與定義為結構體類型不同之處在于:后者不僅要求指定變量為結構體類型,而且要求指定為某一特定的結構體類型(例如,structcolor),不能只指定結構體名。其中可以不出現結構體名,答案D就是缺省結構體名的隋況。而變量名歹婊必須放在成員列表后面,所以B答案不能正確將cl定義為結構件變量。
55.B解析:關系數據庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉換是比較直接的,實體與聯系都可以表示成關系,E-R圖中屬性也可以轉換成關系的屬性,實體集也可以轉換成關系。
56.A解析:本題主要考查了結構體和共用體數據的存儲形式。共用體的一個特點是所有數據成員共用一段存儲單元,而結構體每個數據成員都單獨占據一段存儲單元。共用體所占存儲單元的大小由長度最長的數據成員的長度決定。題中共用體變量c占據4個字節的長度,結構體r所占存儲空間的大小為int(2個字節)+long(4個字節)+共用體c(4個字節)=10個字節,所以答案為A)。
57.D解析:&是取地址運算符,表達式x=&a是表示將a的地址賦給變量x。
58.B解析:注意自增和自減運算符在變量的左右側的不同用法。本題條件表達式m++>5,即5>5不成立,此時m=6,執行else后面的語句,輸出6后再m--使得m又等于5了。
59.B解析:程序中的printf()函數的輸出格式部分只說明了一個%d,而輸出成員列表卻有兩個成員a和b,在這里將只輸出第一個成員a值為666,所以,4個選項中選項B符合題意。
60.B解析:考查函數指針的使用方法。可以使用函數指針來調用函數。調用形式為:(*指針變量)(實參表列)。
61.A解析:本題考查用strlen函數計算字符串長度的方法。該字符串中包含的字符是:\'\\t\'(跳格符)、\'\\'\'(雙引號)、\'\\065\'(ASCII值為八進制065,也即+進制為51的字符)、\'\\xff\'(ASCII值為+六進制ff,也即+進制為255的字符)、\'\\n\'(換行符)。
62.Celse與離它最近的if構成if…else語句,而當a為2時,第一個if語句不成立,因此什么也不做,即c的值仍然為2,故選擇C選項。
63.D
64.A本題中if(a=1)b=1;-與elsed=3;之間多了語句c=2;因此會出現else語句的位置錯誤的編譯失敗提示。
65.B本題主要考查C語言合法語句的定義。
在選項A中,a==1不是一個合法的語句,因為它沒有語句結束標識符“;”,不能說是一條語句,如果作為一個表達式,它是正確的。
在選項B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。
在選項C中,由于正確的賦值語句中,賦值符號的左邊不能為常量或表達式,而右邊不能為變量或表達式,很明顯,“a=a++=5;”違背了賦值語句的原則。
在選項D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強制轉換為整型的操作,應該為“a=(int)i;”。
66.A條件表達式:X----表達式l?表達式2:表達式3的含義是:先求解表達式1,若其值為非0(真),則求解表達式2,將表達式2的值賦給x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年江蘇省連云港市沙河子園藝場小學三年級數學第一學期期末調研模擬試題含解析
- 2024年江蘇省連云港市灌云縣三上數學期末學業水平測試試題含解析
- 公司理財教程一.總論課件
- 經濟法概論考題預測及答案解析
- 行政管理專科語文文化素養試題及答案
- 2025年護士執業考試成功秘訣試題及答案
- 中國風短歌行介紹曹操
- 2025衛生資格考試復習清單與試題及答案
- 自考行政管理中應對復雜性的策略與試題及答案
- 自考行政管理階段性試題及答案
- 智慧養老系統報價明細建設方案
- 燃氣、LNG安全隱患規范依據查詢手冊
- 生物分離工程習題(含答案)
- 2025年停車場無償使用協議
- 護士定期考核試題及答案
- 2024年廣東建設職業技術學院高職單招語文歷年參考題庫含答案解析
- 建筑施工企業生產安全綜合應急救援預案
- 房地產質保期內《維修管理辦法》
- 設備潤滑保養制度(4篇)
- 肝膿腫診斷與治療
- 2024年藥理學阿司匹林課件:全面解析阿司匹林的臨床應用
評論
0/150
提交評論