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