二、填空題 (本大題共10小題,每小題2分,共20分)
請?jiān)诿啃☆}的空格中填上正確答案。錯填、不填均無分。
16.賦值運(yùn)算符的結(jié)合性是_______。
17.設(shè)char ch;,判斷ch為數(shù)學(xué)字符的邏輯表達(dá)式是_______。
18.設(shè)typedef float REAL;REAL x=1;,表達(dá)式x/2的值是_______。
19.轉(zhuǎn)義字符'\n'的含義是_______。
20.設(shè)int a=12;,語句printf(″%d\n″,(a/3,a%3,a/10>0));的輸出結(jié)果是_______。
21.函數(shù)中未指定存儲類型的局部變量,其隱含的存儲類型是_______。
22. 若全局整型變量未初始化,則默認(rèn)的初始值是_______。
23.設(shè)int a,*p=&a;,通過指針變量p為a輸入值的scanf語句是_______。
24.設(shè)char*s=″abc″;,語句for(;*s!='\0';s++) printf (″W″);的輸出結(jié)果是_______。
25.設(shè)struct student
{
char name [20];
char sex;
}stu;
語句printf(″%d\n″,sizeof(stu));的輸出結(jié)果是_______。
三、程序分析題(本大題共4小題,每小題4分,共16分)
閱讀下列程序,請將輸出結(jié)果寫到各題右側(cè)的空白處。
26. #include
void main()
{
int i=11,j;
j=i%3;
switch (j)
{ case 1:
case 2: printf(″%d\n″,j); break;
default: printf(″%d\n″,i);
}
}
27. #include
int fx (int n)
{
int s;
if (n==0) s=0;
else s=n+fx (n-2);
return s;
}
void main()
{
printf (″%d\n″,fx(8));
}
28. #include
#include
void main ()
{
char *pa, a [20]=″Beijing2008″;
for (pa=a+7;*pa!='\0';pa++) putchar (*pa);
putchar ('\n');
}
29. #include
#define N 6
void main ()
{
int a [N]={2,5,-6,4,-9,10}, i;
for (i=0;i {
if(a[i]<0) continue;
printf(″% 3d″,a[i]);
}
printf (″\n″);
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
請將下列程序橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
30.輸入100名學(xué)生的出生月份,統(tǒng)計(jì)并輸出每個(gè)月份過生日的學(xué)生人數(shù)。
#include
#define N 100
void main ()
{
int i, month;
int birth [13]={0}; /*birth [1]~birth [12]分別保存1~12月過生日的學(xué)生數(shù)*/
for (i=1;i<=N;i++)
{
scanf(″%d″, _______); /*第一空*/
if (month >=1 && month<=12) birth [month]++;
}
for (i=1; _______;i++) /*第二空*/
printf(″%d month_______ \n″,i, birth [i]); /*第三空*/
}
31.輸入n(n≥1), 計(jì)算1+(1+2)+(1+2+3)+…….+(1+2+……+n)的值。
void main ( )
{
int i,n;
long sum=0;long cal (int);
scanf (″%d″,&n);
for (i=1;i<=n;i++) sum =sum+cal(_______); /*第一空*/
printf (″1+(1+2)+…+(1+2+…+n)=%ld\n″,sum);
}
long cal (_______) /*第二空*/
{
static long s=0;
s=s+m;
_______; /*第三空*/
}
32.將文件data1.txt的內(nèi)容復(fù)制到文件data2.txt中。
#include
void main ( )
{
char ch;
FILE *f1,*f2;
f1=fopen (″data1.txt″,″_______″); /*第一空*/
f2=fopen (″data2.txt″,″w″);
do
{
_______=fgetc (f1); /*第二空*/
fputc (ch, _______); /*第三空*/
} while (!feof (f1));
fclose (f1); fclose (f2);
}
五、程序設(shè)計(jì)題(本大題共2小題,每小題8分,共16分)
33.輸入x的值,按下列公式計(jì)算并輸出y的值(保留兩位小數(shù))。
y=
34.輸入10個(gè)整數(shù)到數(shù)組a中并輸出,將數(shù)組各元素依次向后循環(huán)移動一個(gè)位置(如下圖),輸出移動后的數(shù)組a。
移動前:
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
a[9]
移動后:
a[9]
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
請?jiān)诿啃☆}的空格中填上正確答案。錯填、不填均無分。
16.賦值運(yùn)算符的結(jié)合性是_______。
17.設(shè)char ch;,判斷ch為數(shù)學(xué)字符的邏輯表達(dá)式是_______。
18.設(shè)typedef float REAL;REAL x=1;,表達(dá)式x/2的值是_______。
19.轉(zhuǎn)義字符'\n'的含義是_______。
20.設(shè)int a=12;,語句printf(″%d\n″,(a/3,a%3,a/10>0));的輸出結(jié)果是_______。
21.函數(shù)中未指定存儲類型的局部變量,其隱含的存儲類型是_______。
22. 若全局整型變量未初始化,則默認(rèn)的初始值是_______。
23.設(shè)int a,*p=&a;,通過指針變量p為a輸入值的scanf語句是_______。
24.設(shè)char*s=″abc″;,語句for(;*s!='\0';s++) printf (″W″);的輸出結(jié)果是_______。
25.設(shè)struct student
{
char name [20];
char sex;
}stu;
語句printf(″%d\n″,sizeof(stu));的輸出結(jié)果是_______。
三、程序分析題(本大題共4小題,每小題4分,共16分)
閱讀下列程序,請將輸出結(jié)果寫到各題右側(cè)的空白處。
26. #include
void main()
{
int i=11,j;
j=i%3;
switch (j)
{ case 1:
case 2: printf(″%d\n″,j); break;
default: printf(″%d\n″,i);
}
}
27. #include
int fx (int n)
{
int s;
if (n==0) s=0;
else s=n+fx (n-2);
return s;
}
void main()
{
printf (″%d\n″,fx(8));
}
28. #include
#include
void main ()
{
char *pa, a [20]=″Beijing2008″;
for (pa=a+7;*pa!='\0';pa++) putchar (*pa);
putchar ('\n');
}
29. #include
#define N 6
void main ()
{
int a [N]={2,5,-6,4,-9,10}, i;
for (i=0;i {
if(a[i]<0) continue;
printf(″% 3d″,a[i]);
}
printf (″\n″);
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
請將下列程序橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
30.輸入100名學(xué)生的出生月份,統(tǒng)計(jì)并輸出每個(gè)月份過生日的學(xué)生人數(shù)。
#include
#define N 100
void main ()
{
int i, month;
int birth [13]={0}; /*birth [1]~birth [12]分別保存1~12月過生日的學(xué)生數(shù)*/
for (i=1;i<=N;i++)
{
scanf(″%d″, _______); /*第一空*/
if (month >=1 && month<=12) birth [month]++;
}
for (i=1; _______;i++) /*第二空*/
printf(″%d month_______ \n″,i, birth [i]); /*第三空*/
}
31.輸入n(n≥1), 計(jì)算1+(1+2)+(1+2+3)+…….+(1+2+……+n)的值。
void main ( )
{
int i,n;
long sum=0;long cal (int);
scanf (″%d″,&n);
for (i=1;i<=n;i++) sum =sum+cal(_______); /*第一空*/
printf (″1+(1+2)+…+(1+2+…+n)=%ld\n″,sum);
}
long cal (_______) /*第二空*/
{
static long s=0;
s=s+m;
_______; /*第三空*/
}
32.將文件data1.txt的內(nèi)容復(fù)制到文件data2.txt中。
#include
void main ( )
{
char ch;
FILE *f1,*f2;
f1=fopen (″data1.txt″,″_______″); /*第一空*/
f2=fopen (″data2.txt″,″w″);
do
{
_______=fgetc (f1); /*第二空*/
fputc (ch, _______); /*第三空*/
} while (!feof (f1));
fclose (f1); fclose (f2);
}
五、程序設(shè)計(jì)題(本大題共2小題,每小題8分,共16分)
33.輸入x的值,按下列公式計(jì)算并輸出y的值(保留兩位小數(shù))。
y=
34.輸入10個(gè)整數(shù)到數(shù)組a中并輸出,將數(shù)組各元素依次向后循環(huán)移動一個(gè)位置(如下圖),輸出移動后的數(shù)組a。
移動前:
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
a[9]
移動后:
a[9]
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]