21若有以下程序:
#include
void fun(float*a,float*b)
( float w;
*a=*a+*a;w= *a;*a= *b;*b=W;
}
main()
{ float x=2..0,y=3.0,*px=&x,*py=&y;
fun(px,py);printf(”%2.of,%2.0fkn”,X,y);
)
程序的輸出結(jié)果是( )。
A.4,3B.2,3C.3,4D.3,2
參考答案:C
參考解析:include
voidfun(float*a,float*b)//a即指向px的指針,b即指向py的指針,則*a指向x,*b指向y
{
floatW;
*a-*a+*a;//將x地址存放的數(shù)據(jù)自加,x變?yōu)?
W=*a:*a=*b:*b=w;//將x和Y地址里面的數(shù)據(jù)互換,則x變
為3,Y變?yōu)?)
main(){
floatx=2.0,y=3.0,*px=&x,*py=&-y;//px和py分別是指向X和Y地址的指針
fun(px,PY);
printf(”%2.Of,%2.of\n”,x,y);//%2.0f表示結(jié)果前面有2個(gè)空格,小數(shù)點(diǎn)后有0位,即保留到個(gè)位}
22下列程序的運(yùn)行結(jié)果是( )。
#include
#define ADD(x)X+X
main()
{ int m=1,n=2,k=3:
int s=ADD(m十n)*k;
printf(”s=%d”,s):
}
A.sum=18B.sum=10C.sum=9D.sum=25
參考答案:B
參考解析:本題考查帶參數(shù)的宏的定義:“#defineADD(x)X+x”中x代表m+n,故s寫成s=m+n+m+r*k=l+2十1+2*3=l0。
23若有以下說明,則( )不是對strcpy庫函數(shù)正確的調(diào)用。
strcpy庫函數(shù)用于復(fù)制一個(gè)字符串:char*str1==”abed”,str1[10],*str3="hijklmn",*str4[-2],*str5=”aaaa”;
A.strcpy(str2,str1)
B.strcpy(str3,str1)
C.strcpy(str1,str2)
D.strcpy(str5,str1)
參考答案:C
參考解析:strcpy(s1,s2)函數(shù)的功能是將字符串s2復(fù)制到字符串s1中。要保證s1存儲區(qū)能容納下s2字符串。
24C語言中,字符(char)型數(shù)據(jù)在微機(jī)內(nèi)存中的存儲形式是( )。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCIl碼
參考答案:D
參考解析:其他3個(gè)是用來進(jìn)行數(shù)值處理的。
25有以下程序:
#include
main()
{int a[J一{1,2,3,4,5,6,7,8,9,10,11,12),*P=a
+5;
*q=NULL;+q=*(p+5);
printf(”%d%d\n”,*q,*q);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.運(yùn)后后報(bào)錯(cuò)B.6 6C.6 11D.5 10
參考答案:A
參考解析:本題中首先定義了一個(gè)一維數(shù)組。并初始化,由于定義該數(shù)組的時(shí)候省了長度,因此該數(shù)組的長度為初始化時(shí)候賦初值的個(gè)數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p-a+5語句使得P指向數(shù)組的第6個(gè)元素,而在程序中定義了一個(gè)指針q并讓它指向空,實(shí)際上程序并沒有在內(nèi)存中為指針q開辟存儲空間,這樣給q賦值不允許的,故該程序運(yùn)行后報(bào)錯(cuò)。第25題 筆記記錄我的筆記(0) | 精選筆記(11)選擇筆記標(biāo)簽:試題內(nèi)容(11)答案解析(0)
26有以下程序:
#include
main()
{int i,X[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)printf(”%d,”,x[i][2-i]);
{
程序的輸出結(jié)果是( )。
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
參考答案:C
參考解析:即輸出xE03[2]x[1][1]x[2][o]分別為357。
27有以下程序:
main()
{int a=0,b=10,c=0,d=0;
if(a=1)b=1;c=2;
else d=3:
printf(”%d,%d,%d,%d\n”,a,b,c,d);
}
程序輸出( )。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯(cuò)
參考答案:D
參考解析:語法錯(cuò)誤。else與if之間不應(yīng)再用其他語句,如果滿足if條件,則繼續(xù)執(zhí)行if后面的語句;不滿足就執(zhí)行else語句。
28下列程序輸出結(jié)果是( )。
#include%stdio.h>
main()
{char aE3一{'a','b','c','d','e','f','\o');
int i,j;
A.7,7B.7,6C.6,6D.6.7
參考答案:B
參考解析:本題要注意sizeof()和strlen()的區(qū)別,sizeof()函數(shù)的功能是返回字符串所占的字節(jié)數(shù),strlen()函數(shù)的功能是返回字符串長度,'\o'是一個(gè)轉(zhuǎn)義符,它占存儲空間,但不計(jì)入串的長度。
29有以下程序
#include
int a=1:
int f(int c)
{ static int a=2;
c=c+1.
return(a++)+c;
}
main()
{ int i,k=0;
for(i=0;i<2;i++){int a=3;k+=f(a);)
k+=a;
printf(”%d\n”,k);
程序運(yùn)行結(jié)果是( )。
A.14B.15C.16D.17
參考答案:A
參考解析:在主函數(shù)中,k的初值為0,首先調(diào)用函數(shù)f(3),返回值為6,k的值變?yōu)?,而函數(shù)intfun(intc)中的局部靜態(tài)變量a等于3。第二次調(diào)用函數(shù)f(3)時(shí),返回值為7,所以k-6+7—13。退出循環(huán)語句,k再加上全局變量a的值1,其最終的值為14。
30按照“先進(jìn)后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是( )。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹
參考答案:B
參考解析:棧是線性表的一種,其插入和刪除運(yùn)算都只在表的一端進(jìn)行。進(jìn)行插入、刪除的一端稱為棧頂,封閉的一端稱為棧底。棧頂元素按先進(jìn)后出的原則組織數(shù)據(jù),它是最后被插入的元素,不是最后被刪除的元素。
相關(guān)推薦:
2015計(jì)算機(jī)二級《C語言》考試上機(jī)測試題匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |