第二部分 非選擇題(共80分)
二、填空題(本大題共10小題,每小題2分,共20分)
請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無分。
21.設(shè)char a,b;則表達(dá)式a/b-‘c’的值的類型為 .
22.設(shè)int k=-1;執(zhí)行printf(“%u”,k);后輸出的值是 .
23.設(shè)for(k=0;k 0;k++)++k;則該循環(huán)共執(zhí)行 次。
24.設(shè)int a =1,b=2;經(jīng)表達(dá)式a=a∧b,b=a∧b,a=a∧b運(yùn)算后a,b的值分別是 .
25.表示空類型的保留字是 .
26.被調(diào)函數(shù)在執(zhí)行結(jié)束時(shí),這個(gè)函數(shù)中定義的_______________類型的變量不被釋放。
27.設(shè)struct student
{
int no;
char name[12];
float score[3];
}sl,* p = sl;
用指針法給sl的成員no賦值1234的語句是___________________.
28.C語言程序中對(duì)文本文件的存取是以________________為單位進(jìn)行的。
29.設(shè)char string[] =“This_is_a_book!”;則數(shù)組的長度應(yīng)是________________.
30.設(shè)int a[2][3] = {{2},{3}};則數(shù)組元素_____________________的值為3.
三、程序分析題 (本大題共5小題,每小題5分,共25分)
閱讀下列程序,將輸出結(jié)果寫到各題右側(cè)的空白處31.
int a = 200;
main()
{int i;for(i = 1;i = 5;i + +)
{a + + ;
printf(“﹪d,”,a);
s()
}
{
s()
{static int a = 20;
a + + ;
printf(“﹪d \ n”,a);
}
32.
# include “stdio.h”
main()
{
char c;
c = getchar();
if((c =‘a(chǎn)’ c =‘z’) ‖c =‘X’ c =‘Z’)
c = c - 23;
printf(“﹪c \ n”,c);
}
設(shè)從鍵盤上輸入Next ↙
33.
# define N 7
main()
{int i,j,temp,a[N]={1,2,3,4,5,6,7};for(i = 0;i;i + + )
{j = N - 1 - i;temp = a[i];a[i]=a[j];
a[j]=temp;
}
for(i = 0;i;i + + )
printf(“﹪5d”,a[i]);
}
34.int x=30,y=50;
sub(x,y)
{ y=x y?x:y;
return y;
}
main( )
{
{int x=100;
printf(“%d\n”,sub(x,y));
}
printf(“%d,%d\n”,x,y);
}
35.設(shè)文件file1.c的內(nèi)容為COMPUTER
#include “stdio.h”
main( )
{ FILE *fp;
char ch;
if((fp=fopen(“file1.c”,“r”))= =NULL)
{ printf(“Cannot open file \n”);
exit(0);
}
while(!feof(fp))
{
ch=fgetc(fp);
if(ch =‘A’ ch =‘Z’)
fputc(ch+32,stdout);
}
fclose(fp);
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
給出下列程序,將橫線處缺少的部分補(bǔ)上,使其能正確運(yùn)行。
36.將一個(gè)十進(jìn)制整數(shù)n轉(zhuǎn)變?yōu)槎M(jìn)制數(shù)。
main( )
{ int i=0,j,n,num[20];
scanf(“%d”, ); /*第一空*/
while(n!=0)
{ num[i++]= ; /*第二空*/
n= ; /*第三空*/
}
for(j=i-1;j =0;j——)
printf(“%d”,num [j]);
}
37.一個(gè)一維數(shù)組和一個(gè)二維數(shù)組同處一個(gè)共用型,將數(shù)據(jù)輸入一維數(shù)組后,在二維數(shù)組中輸出。
main( )
{union data
{ int a[10];
int b ;/*第一空*/
};
union data ab;
int i,j;
for(i=0;i 10,i++)
scanf(“%d”, ); /*第二空*/
for(i=0;i 2;i++)
for(j=0;j 5;j++)
printf(“]”, );/*第三空*/
}
38. 先為數(shù)組a輸滿數(shù)據(jù),再為x輸入一個(gè)數(shù)據(jù),在數(shù)組a中找出第一個(gè)與x相等的元素并將其下標(biāo)輸出,若不存在這樣的元素,則輸出“Not found!”標(biāo)志。
main()
{int i,x,a[10];
for(i = 0;i 10;i ++ )
scanf(“﹪d”,___________);
scanf(“﹪d”, x);
printf(“﹪d”,x);
for(i = 0;i 10;i ++)
if(_________________)break;
if (i _________10)
printf(“ position:﹪d \ n”,i);
else printf(“Not found! \ n”,x);
}
五、程序設(shè)計(jì)題(第39小題5分,第40、41小題各6分,共17分)
39.輸出100之內(nèi)所有個(gè)位數(shù)字為6且能被3整除的自然數(shù)。(如:36,66,96……)
40. 求1到100之間的奇數(shù)之和及偶數(shù)之和,并將二者輸出。
41. 輸入一字符串,檢查是否回文 (回文是指正反序相同,如,LeveL),若是則輸出“Yes”,否則輸出“No”。