二、填空題(本大題共10小題,每小題2分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。
21.設int a[10];則數(shù)組a的首元素是__________________。
22.設int a=0,b=0,c;,則執(zhí)行c=(a-=b-5),(a=b,b=3);后變量c的值是__________________。
23.設int a=0,b=0,c=2,d=4;,則執(zhí)行(c=a= =b)||(d=b= =a);后變量d的值是__________________。
24.設int a[ ]={1,2,3,4,5,6,7,8},*s=a;則*(s+1)的值是__________________。
25.設char s[ ]="apple";,則數(shù)組s的長度是__________________。
26.被調(diào)用函數(shù)執(zhí)行結束時,此函數(shù)中定義的__________________類型的變量不被釋放。
27.表達式的運算對象可以是常量、函數(shù)調(diào)用和__________________。
28.設int x;,則將x強制轉(zhuǎn)換為雙精度類型應寫成__________________。
29.語句if(!k)a=3;中!k與__________________等價。
30.函數(shù)調(diào)用時,若形參是一個指針變量,而對應的實參是一個數(shù)組名,則函數(shù)參數(shù)的傳遞方式是__________________傳遞。
三、程序分析題(本大題共5小題,每小題5分,共25分)閱讀下列程序,將輸出結果寫到各題右側(cè)的空白處。
31.main( )
{
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
printf("]",a[1][0]+b[0][1]);
printf("]\n",a[0][1]+b[1][0]);
}
32.int a=10;
struct data {int a, b;} s;
main ( )
{ int c;
s.a=20;s.b=30;
c=f (s.a+s.b);
printf("%d,%d,%d\n", s.a, s.b, c);
}
f (int b)
{
printf ("%d,%d\n",a, b);
return (a+b);
}
33.#include
fun ( )
{ int y=1;
static int z=4;
z ++; ++ y;
return (y*z);
}
main ( )
{ int i;
for (i=1; i<3; i++)
printf ("]\n",fun ( ));
}
34.main ( )
{ char *p,s[ ]="6543210";
for (p=s; *p!='\0';)
{ printf ("%s\n",p);
p ++;
if (*p!='\0') p ++;
else break;
}
}
35.main( )
{
long f( );
printf("%5ld\n",f(5));
}
long f(int b)
{
if(b= =1| |b==2)return 1;
else return f(b-1)+f(b-2);
}
21.設int a[10];則數(shù)組a的首元素是__________________。
22.設int a=0,b=0,c;,則執(zhí)行c=(a-=b-5),(a=b,b=3);后變量c的值是__________________。
23.設int a=0,b=0,c=2,d=4;,則執(zhí)行(c=a= =b)||(d=b= =a);后變量d的值是__________________。
24.設int a[ ]={1,2,3,4,5,6,7,8},*s=a;則*(s+1)的值是__________________。
25.設char s[ ]="apple";,則數(shù)組s的長度是__________________。
26.被調(diào)用函數(shù)執(zhí)行結束時,此函數(shù)中定義的__________________類型的變量不被釋放。
27.表達式的運算對象可以是常量、函數(shù)調(diào)用和__________________。
28.設int x;,則將x強制轉(zhuǎn)換為雙精度類型應寫成__________________。
29.語句if(!k)a=3;中!k與__________________等價。
30.函數(shù)調(diào)用時,若形參是一個指針變量,而對應的實參是一個數(shù)組名,則函數(shù)參數(shù)的傳遞方式是__________________傳遞。
三、程序分析題(本大題共5小題,每小題5分,共25分)閱讀下列程序,將輸出結果寫到各題右側(cè)的空白處。
31.main( )
{
int a[3][3]={{1},{2},{3}};
int b[3][3]={1,2,3};
printf("]",a[1][0]+b[0][1]);
printf("]\n",a[0][1]+b[1][0]);
}
32.int a=10;
struct data {int a, b;} s;
main ( )
{ int c;
s.a=20;s.b=30;
c=f (s.a+s.b);
printf("%d,%d,%d\n", s.a, s.b, c);
}
f (int b)
{
printf ("%d,%d\n",a, b);
return (a+b);
}
33.#include
fun ( )
{ int y=1;
static int z=4;
z ++; ++ y;
return (y*z);
}
main ( )
{ int i;
for (i=1; i<3; i++)
printf ("]\n",fun ( ));
}
34.main ( )
{ char *p,s[ ]="6543210";
for (p=s; *p!='\0';)
{ printf ("%s\n",p);
p ++;
if (*p!='\0') p ++;
else break;
}
}
35.main( )
{
long f( );
printf("%5ld\n",f(5));
}
long f(int b)
{
if(b= =1| |b==2)return 1;
else return f(b-1)+f(b-2);
}