1.若有以下定義:floatx;inta,b,c=2;,則正確的switch語句是()
A)
switch(x)
{ case1.0∶printf("*n");
case2.0∶printf("**n");
}
B)switch(int(x))
{ case1∶printf("*n");
case2∶printf("**n");
}
C)
switch(a+b)
{ case1∶printf("*n");
case1+2∶printf("**n");
}
D)switch(a+b)
{ case1∶printf("*n");
casec∶printf("**n");
}
2.執行下面程式片段的結果是()
int x=123;
do
{ printf("=n",x--);}
while(!x);
A)列印出321
B)打印出123
C)不列印任何內容
D)陷入死迴圈
3.以下程式的輸出結果是()
# include
main()
{ int i=0,a=0;
while(i<20)
{ for(;;){ if((i)==0)break;else i--; }
i+=11;a+=i;
}
printf("%dn",a);
}
A)21B)32C)33D)11
4.下列與表示式“b=(a<0?-1∶a>0?1∶0)”的功能等價選項是()
A)b=0;
if(a>=0)
if(a>0) b=1;
else b=-1;
B)if(a>0)b=1;
else if(a<0)b=-1;
elseb=0
C)if(a)
if(a<0) b=-1;
else if(a>0)b=1;
else b=0;
D) b=-1;
if(a)
if(a>0)b=1;
else if(a==0)b=0;
else b=-1;
5.若有以下定義:char a; int b; float c; double d; 則表示式“a*b+d-c”值的型別為()
A)float
B)int
C)char
D)double
6.以下敘述中正確的是()
A)在函式中必須要有return語句
B)在函式中可以有多個return語句,但只執行其中的一個
C)return語句中必須要有一個表示式
D)函式值並不總是通過return語句傳回呼叫處
7.有以下程式
float fun(int x,int y)
{ return(x+y);
}
main()
{int a=2,b=5,c=8;
printf("%3.0fn",fun((int)fun(a+c,b),a-c));
}
程式執行後的輸出結果是()
A)編譯出錯
B)9
C)21
D)9.0
8.若已定義:
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;
其中0≤i≤9,則對a陣列元素不正確的引用是()
A)a[p-a]
B)*(&a[i])
C)p[i]
D)a[10]
9.以下敘述中正確的是()
A)全域性變數的作用域一定比區域性變數的作用域大
B)靜態(static)型別變數的生存期貫穿於整個程式的'執行期間
C)函式的形參都屬於全域性變數
D)未在定義語句中賦初值的auto變數和static變數的初值都是隨機值
10.若有如下程式:
main()
{char a[][9]={"china","Japan","USA","France"};
printf("′%s′n",a[2]);}
則程式執行後的輸出結果是()
A)′Japan′
B)′USA′
C)USA
D)′inaJapanUSAFrance′
答案:1.C 2.B 3.B 4.B 5.D 6.B 7.B 8.D 9.B 10.B