第一部分選擇題
一、單項選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個選項中只有一個選項是符合題目要求的,請將正確選項前的字母填在題后的括號內(nèi)。
1.屬于C語言基本數(shù)據(jù)類型的是()
A.指針型B.無符號整型
C.數(shù)組型D.結構型
2.C語言的長整型數(shù)值在計算機中占用的字節(jié)個數(shù)是()
A.1B.2
C.3D.4
3.C語言中,″\x3d″在內(nèi)存中占用的字節(jié)數(shù)是()
A.1B.2
C.4D.5
4.設intx;則執(zhí)行printf(″%x\n″,~x^x);的結果是()
A.0B.1
C.ffD.ffff
5.對于while語句,錯誤的說法是()
A.用條件控制循環(huán)體的執(zhí)行次數(shù)
B.循環(huán)體至少要執(zhí)行一次
C.循環(huán)體有可能一次也不執(zhí)行
D.循環(huán)體中可以包含若干條語句
6.設int a=9,b=20;則printf(″%d,%d\n″,a-,-b);的輸出結果是()
A.9,19B.9,20
C.10,19D.10,20
7.執(zhí)行下列語句
int a=8,b=7,c=6;
if(ac){a=c;c=b;}
printf(″%d,%d,%d\n″,a,b,c);
后輸出的結果是()
A.6,7,7B.6,7,8
C.8,7,6D.8,7,8
8.設static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么()
A.x數(shù)組的長度等于y數(shù)組的長度
B.x數(shù)組的長度大于y數(shù)組的長度
C.x數(shù)組的長度少于y數(shù)組的長度
D.x數(shù)組與y數(shù)組的存儲區(qū)域相同
9.設int i,x={1,2,3,4,5,6,7,8,9};
則下面語句
for(i=0;i<3;i++)
printf(″%d″,x[i][2-i]);
的輸出結果是()
A.147B.159
C.357D.369
10.設int b[ ]={1,2,3,4},y,*p=b;
則執(zhí)行語句y=*p++;之后,變量y的值為()
A.1B.2
C.3D.4
11.設int a,*p;則語句p=&a;中的運算符“&”的含義是()
A.位與運算B.邏輯與運算
C.取指針內(nèi)容D.取變量地址
12.若函數(shù)能被其它編譯單位引用,那么函數(shù)定義時的存儲類型應選用()
A.autoB.static
C.externD.register
13.下面函數(shù)定義有錯誤的是()
A.f1(x1,x2)B.f1(x1,x2)
int x1,x2;int x1;int x2;
{函數(shù)體}{函數(shù)體}
C.f1(int x1,x2)D.f1(int x1,int x2)
{函數(shù)體}{函數(shù)體}
14.C語言中計算a3正確的表達是()
A.a^3B.pow(a,3)
C.a**3D.power(a,3)
15.下列定義正確的是()
A.anum t={a,b}x;B.enum t{1,2}x;
C.anum {′+′,′-′}x;D.enum t{a,b}x;
16.設有定義:union u{int a;float b};
char c;}aa;
則printf(″%d\n″,sizeof(aa));的輸出是()
A.32B.16
C.12D.8
17.數(shù)據(jù)-35.78在文本文件中占用的字節(jié)個數(shù)是()
A.4B.5
C.6D.8
18.在下列有關宏替換的敘述中,正確的說法是()
A.宏替換占用運行時間
B.宏名有類型
C.帶參數(shù)的宏替換和函數(shù)等價
D.宏替換只是字符替換
19.下列程序的運行結果是()
# defineA5
# defineBA+1
main( )
{int a;
a=B;
printf(″%d\n″a-);
}
A.6B.5
C.4D.出錯
20.為了向二進制文件尾部增加數(shù)據(jù),打開文件的方式應采用()
A.″ab″B.″rb+″
C.″wb″D.″wb+″
第二部分非選擇題
二、填空題(本大題共10小題,每小題2分,共20分)
21.設int y;執(zhí)行表達式(y=4)||(y=5)||(y=6)后,y的值是______.
22.設char ch=′A′;則printf(″%c″,(ch>=′A′ && ch<=′Z′)ch+32:ch);的值是_____.
23.結構化程序設計的三種基本結構是:選擇結構、循環(huán)結構和______.
24.下列程序
int x=3;
do{printf(″%d″,-x);}while(!x);
循環(huán)執(zhí)行的次數(shù)是______.
25.在C語言中,一個二維數(shù)組可以看成若干個______數(shù)組。
26.設int a={{1,3,5,7},{2,4,6,8}};則*(*a+1)的值為______.
27.若函數(shù)定義為
int data()
{float x=9.9;
return(x);
}
則函數(shù)返回的值是______.
28.設struct student
{int no;char name ;
float score;
{s1,*p=&s1;。
用指針變量p給s1的成員no賦值1234的方法是______.
29.判斷文本文件是否結束時使用的符號常量EOF的值是______.
30.設有一個名為″myfile.c″的C程序,
其主函數(shù)為mian(int argc,char *argv[ ])。如果在執(zhí)行時,輸入的命令行為
myfile aa bb ↙
則形式參數(shù)argc的值是______.
三、程序分析題(本大題共5小題,每小題5分,共25分)
閱讀下列程序,將輸出結果寫到各題右側(cè)的空白處
31.fun(int x)
{
int y=0;
static int z=3;
z++;++y;
return(x+y+z);
}
main( )
{
int I,x=2;
for(i=0;i<2;i++)
printf(″%5d″,fun(x++));
}
32.main( )
{
int s=0,i;
for(i=1;;i++)
{
if(s>50)break;
if(i%2==0) s+=i;
}
printf(″i=%d,s=%d\n″,i,s);
}
33.gcd(int m,int n)
{ if(m==n)return m;
else if(m>n) return gcd(m-n,n);
else return gcd(m,n-m);
}
main( )
{
printf(″Gcd=%d\n″,gcd(24,36));
}
34.# include
main( )
{int i=0;
char c,s;=″SABC″;
while(c=s[i])
{
switch(c)
{
case ′A′:i++;break;
case ′B′:++i;
default:putchar(c);i++;
}
putchar(′*′);
}
}
35.int a1=300,a2=400;
main( )
{int a3=100,a4=200;
sub1(a3,a4);
sub1(a1,a2);
printf(″%d,%d,%d,%d\n″,a1,a2,a3,a4);
}
sub1(int x,int y)
{ a1=x;
x=y;
y=a1;
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
給出下列程序,將橫線處缺少的部分補上,使其能正確運行。
36.將十個整數(shù)輸入數(shù)組,求出其平均值并輸出。
main( )
{int i,a ,sum=0,*p=______;/*第一空*/
for(i=0;i<10;i++)
{ scanf(″%d″,p);sum+=______;/*第二空*/
printf(″%8.2f\n″,______);/*第三空*/
}
37.輸入一個無符號整數(shù)后求出它的各位數(shù)之和并輸出。
例如若輸入123,則將各位之和6(即1+2+3)輸出。
______f(num)/*第一空*/
unsigned int num;
{ unsigned int k=0;
do
{ k+=______;/*第二空*/
num/=10;
} while(num);
______;/*第三空*/
}
main( )
{unsigned int n;
scanf(″%d″,&n);
printf(″%u\n″,f(n));
}
38.為數(shù)組輸入數(shù)據(jù),逆序置換后輸出。(逆序置換是指:數(shù)組的首元素和末元素置換,第二個元素和倒數(shù)第二個元素置換,………)
# define N8
main()
{int i,j,t,a[N];
for(i=0;i i=0;j=N-1;
while(i { t=*(a+i);________;/*第一空*/
______=t;/*第二空*/
i++;______;/*第三空*/
}
for(i=0;i }
五、程序設計題(第39小題5分,第40、41小題各6分,共17分)。
39.將100個整數(shù)輸入數(shù)組后按每行10個數(shù)輸出。
40.計算e=1+ 的值并輸出(設n=20)。
41.生成Fibonacci數(shù)列的前20項并輸出,其中
fi=
一、單項選擇題(本大題共20小題,每小題1分,共20分)在每小題列出的四個選項中只有一個選項是符合題目要求的,請將正確選項前的字母填在題后的括號內(nèi)。
1.屬于C語言基本數(shù)據(jù)類型的是()
A.指針型B.無符號整型
C.數(shù)組型D.結構型
2.C語言的長整型數(shù)值在計算機中占用的字節(jié)個數(shù)是()
A.1B.2
C.3D.4
3.C語言中,″\x3d″在內(nèi)存中占用的字節(jié)數(shù)是()
A.1B.2
C.4D.5
4.設intx;則執(zhí)行printf(″%x\n″,~x^x);的結果是()
A.0B.1
C.ffD.ffff
5.對于while語句,錯誤的說法是()
A.用條件控制循環(huán)體的執(zhí)行次數(shù)
B.循環(huán)體至少要執(zhí)行一次
C.循環(huán)體有可能一次也不執(zhí)行
D.循環(huán)體中可以包含若干條語句
6.設int a=9,b=20;則printf(″%d,%d\n″,a-,-b);的輸出結果是()
A.9,19B.9,20
C.10,19D.10,20
7.執(zhí)行下列語句
int a=8,b=7,c=6;
if(ac){a=c;c=b;}
printf(″%d,%d,%d\n″,a,b,c);
后輸出的結果是()
A.6,7,7B.6,7,8
C.8,7,6D.8,7,8
8.設static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么()
A.x數(shù)組的長度等于y數(shù)組的長度
B.x數(shù)組的長度大于y數(shù)組的長度
C.x數(shù)組的長度少于y數(shù)組的長度
D.x數(shù)組與y數(shù)組的存儲區(qū)域相同
9.設int i,x={1,2,3,4,5,6,7,8,9};
則下面語句
for(i=0;i<3;i++)
printf(″%d″,x[i][2-i]);
的輸出結果是()
A.147B.159
C.357D.369
10.設int b[ ]={1,2,3,4},y,*p=b;
則執(zhí)行語句y=*p++;之后,變量y的值為()
A.1B.2
C.3D.4
11.設int a,*p;則語句p=&a;中的運算符“&”的含義是()
A.位與運算B.邏輯與運算
C.取指針內(nèi)容D.取變量地址
12.若函數(shù)能被其它編譯單位引用,那么函數(shù)定義時的存儲類型應選用()
A.autoB.static
C.externD.register
13.下面函數(shù)定義有錯誤的是()
A.f1(x1,x2)B.f1(x1,x2)
int x1,x2;int x1;int x2;
{函數(shù)體}{函數(shù)體}
C.f1(int x1,x2)D.f1(int x1,int x2)
{函數(shù)體}{函數(shù)體}
14.C語言中計算a3正確的表達是()
A.a^3B.pow(a,3)
C.a**3D.power(a,3)
15.下列定義正確的是()
A.anum t={a,b}x;B.enum t{1,2}x;
C.anum {′+′,′-′}x;D.enum t{a,b}x;
16.設有定義:union u{int a;float b};
char c;}aa;
則printf(″%d\n″,sizeof(aa));的輸出是()
A.32B.16
C.12D.8
17.數(shù)據(jù)-35.78在文本文件中占用的字節(jié)個數(shù)是()
A.4B.5
C.6D.8
18.在下列有關宏替換的敘述中,正確的說法是()
A.宏替換占用運行時間
B.宏名有類型
C.帶參數(shù)的宏替換和函數(shù)等價
D.宏替換只是字符替換
19.下列程序的運行結果是()
# defineA5
# defineBA+1
main( )
{int a;
a=B;
printf(″%d\n″a-);
}
A.6B.5
C.4D.出錯
20.為了向二進制文件尾部增加數(shù)據(jù),打開文件的方式應采用()
A.″ab″B.″rb+″
C.″wb″D.″wb+″
第二部分非選擇題
二、填空題(本大題共10小題,每小題2分,共20分)
21.設int y;執(zhí)行表達式(y=4)||(y=5)||(y=6)后,y的值是______.
22.設char ch=′A′;則printf(″%c″,(ch>=′A′ && ch<=′Z′)ch+32:ch);的值是_____.
23.結構化程序設計的三種基本結構是:選擇結構、循環(huán)結構和______.
24.下列程序
int x=3;
do{printf(″%d″,-x);}while(!x);
循環(huán)執(zhí)行的次數(shù)是______.
25.在C語言中,一個二維數(shù)組可以看成若干個______數(shù)組。
26.設int a={{1,3,5,7},{2,4,6,8}};則*(*a+1)的值為______.
27.若函數(shù)定義為
int data()
{float x=9.9;
return(x);
}
則函數(shù)返回的值是______.
28.設struct student
{int no;char name ;
float score;
{s1,*p=&s1;。
用指針變量p給s1的成員no賦值1234的方法是______.
29.判斷文本文件是否結束時使用的符號常量EOF的值是______.
30.設有一個名為″myfile.c″的C程序,
其主函數(shù)為mian(int argc,char *argv[ ])。如果在執(zhí)行時,輸入的命令行為
myfile aa bb ↙
則形式參數(shù)argc的值是______.
三、程序分析題(本大題共5小題,每小題5分,共25分)
閱讀下列程序,將輸出結果寫到各題右側(cè)的空白處
31.fun(int x)
{
int y=0;
static int z=3;
z++;++y;
return(x+y+z);
}
main( )
{
int I,x=2;
for(i=0;i<2;i++)
printf(″%5d″,fun(x++));
}
32.main( )
{
int s=0,i;
for(i=1;;i++)
{
if(s>50)break;
if(i%2==0) s+=i;
}
printf(″i=%d,s=%d\n″,i,s);
}
33.gcd(int m,int n)
{ if(m==n)return m;
else if(m>n) return gcd(m-n,n);
else return gcd(m,n-m);
}
main( )
{
printf(″Gcd=%d\n″,gcd(24,36));
}
34.# include
main( )
{int i=0;
char c,s;=″SABC″;
while(c=s[i])
{
switch(c)
{
case ′A′:i++;break;
case ′B′:++i;
default:putchar(c);i++;
}
putchar(′*′);
}
}
35.int a1=300,a2=400;
main( )
{int a3=100,a4=200;
sub1(a3,a4);
sub1(a1,a2);
printf(″%d,%d,%d,%d\n″,a1,a2,a3,a4);
}
sub1(int x,int y)
{ a1=x;
x=y;
y=a1;
}
四、程序填充題(本大題共3小題,每小題6分,共18分)
給出下列程序,將橫線處缺少的部分補上,使其能正確運行。
36.將十個整數(shù)輸入數(shù)組,求出其平均值并輸出。
main( )
{int i,a ,sum=0,*p=______;/*第一空*/
for(i=0;i<10;i++)
{ scanf(″%d″,p);sum+=______;/*第二空*/
printf(″%8.2f\n″,______);/*第三空*/
}
37.輸入一個無符號整數(shù)后求出它的各位數(shù)之和并輸出。
例如若輸入123,則將各位之和6(即1+2+3)輸出。
______f(num)/*第一空*/
unsigned int num;
{ unsigned int k=0;
do
{ k+=______;/*第二空*/
num/=10;
} while(num);
______;/*第三空*/
}
main( )
{unsigned int n;
scanf(″%d″,&n);
printf(″%u\n″,f(n));
}
38.為數(shù)組輸入數(shù)據(jù),逆序置換后輸出。(逆序置換是指:數(shù)組的首元素和末元素置換,第二個元素和倒數(shù)第二個元素置換,………)
# define N8
main()
{int i,j,t,a[N];
for(i=0;i
while(i
______=t;/*第二空*/
i++;______;/*第三空*/
}
for(i=0;i
五、程序設計題(第39小題5分,第40、41小題各6分,共17分)。
39.將100個整數(shù)輸入數(shù)組后按每行10個數(shù)輸出。
40.計算e=1+ 的值并輸出(設n=20)。
41.生成Fibonacci數(shù)列的前20項并輸出,其中
fi=