一、單項選擇題(共30分,每題1分)
1.在PC機中,『\n』在內存佔用的字節數是( )
A.1 B.2 C. 3 D.4
2.字符串「ABC」在內存佔用的字節數是( )
A.3 B. 4 C.6 D.8
3.在C語言中,合法的長整型常數是( )
A.0L B.4962710 C.0.054838743 D.2.1869 e10
4.執行語句「x=(a=3,b=a——)」後,x,a,b的值依次是( )
A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2
5.設有語句int a=3;,則執行了語句a+=a-=a*a後,變量a的值是( )
A.3 B.0 C.9 D.-12
6.設int k=32767;執行k=k+1;後k值為( )
A.32768 B.-32768 C.0 D.-1
7.下列正確的標識符是( )
A.hot_do B.a+b C.test! D.%y
8.設int a=5,使b不為2的表達式是( )
A.b=6-(——a) B.b=a%2 C.b=a/2 D.b=a>3?2:1
9.執行x=(6*7%8+9)/5;後,x的值為( )
A.1 B.2 C.3 D.4
10.執行語句x=(a=3,b=a——)後,x,a,b的值依次為( )
A.3,2,3 B.2,3,2 C.3,3,2 D.3,2,2
11.設a=-3;執行(a>0)?a:-a;後,a的值為( )
A.3 B.1 C.0 D.-3
12.設所有變量均為整型,則表達式(a=2,b=5,b++,a+b)的值為( )
A.7 B.8 C.9 D.2
13.下面正確的字符常量是( )
A.「c」 B.『\\』『 C.』W『 D. 』『
14.若有代數式3ae/bc,則不正確的c語言表達式是( )
A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/c*3
15.在C語言中,要求運算數必須是整型的運算符是( )
A./ B.++ C.!= D.%
16.若有說明語句:char c=『\72』;則變量c ( )
A.包含1個字符 B.包含2個字符
C.包含3個字符 D.說明不合法,c值不確定
17.sizeof (float)是( )
A.一個雙精度型表達式 B.一個整型表達式
C.一種函數調用 D 一個不合法的表達式
18.設變量a 是整型,f是實型,i是雙精度型,則表達式10+『a』+i*f值的數據類型是( )
A.int B.folat C.double D.不確定
19.若有定義int a[10],*p=a;,則p+5表示( )
A.元素a[5]的地址 B.元素a[5]的值
C.元素a[6]的地址 D.元素a[6]的值
20.以下與int *q[5];等價的定義語句是( )
A.int q[5]; B.int * q C.int (q[5]) D.int (*q)[5]
21.若有定義int a[5],*p=a;則對a數組元素地址的正確引用是( )
A.P+5 B.*a+1 C.&a+1 D &a[0]
22.凡是函數中未指定存儲類別的局部變量,其隱含的存儲類別是( )
A.auto B.static C.extern D.register
23.若用數組名作為函數調用的實參,傳遞給形參的是( )
A.數組的首地址 B.數組第一個元素的值
C.數組中全部元素的值 D .數組元素的個數
24.C語言允許函數值類型預設定義,此時該函數值隱含的類型是( )
A.float B.int C.long D.double
25.以下對二維數組a的正確說明是( )
A.int a[3][] B.float a(3,4)
C.double a[1][4] D.float a(3)(4)
26.若有說明int a[3][4];則對a數組元素的正確引用是(A )
A.a[2][4] B.a[1,3] C.a[1+1][0] D.a(2)(2)
26.語句while(!E);中的表達式!E等價於( )
A.E= =0 B.E!=1 C.E!=0 D.E= =1
27.C語言中while和do—while循環的主要區別是( )
A. do—while的循環體至少無條件執行一次
B. While的循環控制條件比do—while的循環控制條件嚴格
C. do—while允許從外部轉到循環體內
D. do—while循環體不能是複合語句
28.為了避免在嵌套的條件語句if—else中產生二義性,C語言規定:else子句總與( )配對
A.縮排位置相同的if B.其之前最近的if
C.其之後最近的if D.同一行上的if
29.判斷char型變量ch是否為大寫字母的正確表達式是( )
A.『A』<=ch<=『Z』 B.(ch>=『A』)&(ch<=『Z』)
C.(ch>=『A』)&&(ch<=『Z』 D.(『A』<=ch)AND (『Z』>=ch)
30.以下能正確定義整型變量a、b、c並為其賦初值5的語句是( )
A.int a=b=c=5; B.int a,c, c=5;
C.a=5,b=5,c=5; D.a=b=c=5;
二、填空(20分,每空1分)
1.C語言中的實型變量分為兩種類型,它們是( )和( )。
2.C語言中的標識符只能由三種字符組成,它們是( )、( )和( )。
3.若有定義:char c=『\010』;則變量c中包含的字符個數是( )。
4.C語言提供的三種邏輯運算符是( )、( )、( )。
5.設y為int型變量,請寫出描述「y是奇數」的表達式( )。
6.設x,y,z均為int型變量,請寫出描述「x或y中有一個小於z」的表達式( )。
7.在C語言中,二維數組元素在內存中的存放順序是( )。
8.若有定義:double x[3][5];則x數組中行下標的下限為( ),列小標的上限為( )。
9.若有定義:int a[3][4]={{1,2},{0},{4,6,8,10}};則初始化後,a[1][2]得到的初值是( ),a[2][2]得到的初值是( )。
10.若自定義函數要求返回一個值,則應在該函數體中有一條( )語句,若自定義函數要求不返回一個值,則應在該函數說明時加一個類型說明符( )。
11.函數中的形參和調用時的實參都是數組名時,傳遞方式為( ),都是變量時,傳遞方式為( )。
三、讀程序(30分)
1. main()
{int a=2,b=3,c;
c=a;
if (a>b) c=1;
else if (a= =b) c=0;
else c=-1;
printf (「%d\n」,c);} 運行結果:
2.main()
{int a=2,b=7,c=5;
switch (a>0)
{ case 1: swithch (b<0)
{case 1:printf(「@」);break;
case 2:printf(「!」);break;
}
case 0: switch (c= =5)
{ case 0:printf(「*」);break;
case 1:printf(「#」),break;
default:printf(「#」);break;
}
default:printf(「&」); 運行結果:
} printf (「\n」);
}
3.#include <stdio.h>
main()
{ int i;
for (i=1;i<=5;i++)
switch (i%5)
{ case 0:printf(「*」);break;
case 1:printf(「#」);break;
default:printf(「\n」);
case 2:printf (「&」); 運行結果:
}
}
4.main()
{ int i,b,k=0;
for (i=1;i<=5;i++)
{b=i%2;
while (b——>=0) k++;
} 運行結果:
printf (「%d,%d」,k,b);
}
5.#include <stdio.h>
main()
{ char ch[7]={「12ab56」};
int i,s=0;
for (i=0;ch[i]>=『0』&&ch[i]<=『9』;i+=2)
s=s*10+ch[i]-『0』; 運行結果:
printf (「%d\n」,s);
}
6. main()
{ int a=2,i;
for (i=0;i<3;i++)
printf (「%4d」,f(a));
}
f(int a)
{ int b=0;static int c=3;
b++;c++;
運行結果:
return(a+b+c);
}
四、編寫程序(20分)
1.從鍵盤輸入的10個整數中,找出第一個能被7整除的數。若找到,列印此數後退出循環;若未找到,列印「not exist」。
2.已有變量定義和函數調用語句:int x=57;isprime(x);函數isprime()用來判斷一個整數a是否是素數,若是素數,函數返回1,否則返回0.請編寫isprime函數。
insprime( int a)
{……}; {……}