一、單項選擇題(共30分,每題1分)
1. 下列不正確的轉義字符是( )
A.\\ B.\‘ C.074 D.\0
2. 不是C語言提供的合法關鍵字是( )
A.switch B.cher C.case D.default
3.正確的標識符是( )
A.?a B.a=2 C.a.3 D.a_3
4.下列字符中屬于鍵盤符號的是( )
A.\ B.\n C.\t D.\b
5.下列數(shù)據(jù)中屬于“字符串常量”的是( )
A.ABC B.“ABC” C.‘ABC’ D.‘A’
6.char型常量在內存中存放的是( )
A.ASCII碼 B.BCD碼 C.內碼值 D.十進制代碼值
7.設a為5,執(zhí)行下列語句后,b的值不為2的是( )
A.b=a/2 B.b=6-(——a) C.b=a%2 D.b=a>3?2:2
8.在以下一組運算符中,優(yōu)先級的運算符是( )
A.<= B.= C.% D.&&
9.設整型變量i的值為3,則計算表達式i——i后表達式的值是()
A.0 B.1 C. 2 D.表達式出錯
10.設整型變量a,b,c均為2,表達式a+++b+++c++的結果是( )
A.6 B.9 C.8 D.表達式出錯
11.若已定義x和y為double類型,則表達式x=1,y=x+3/2的值是( )
A.1 B.2 C.2.0 D.2.5
12.設a=1,b=2,c=3,d=4,則表達式:a A.4 B.3 C.2 D.1
13.設a為整型變量,不能正確表達數(shù)學關系:10
A.10
C.a>10&&a<15 D.?。╝<=10)&&?。╝>=15)
14.若有以下定義:char a、 int b 、 float c 、 double d,則表達式a*b+d-c值的類型為()
A.float B.int C.char D.double
15.表達式“10!=9”的值是( )
A.true B.非零值 C.0 D.1
16.循環(huán)語句 for (x=0,y=0; (y!=123)|| (x<4);x++);的循環(huán)執(zhí)行( )
A.無限次 B.不確定次 C.4次 D.3次
17.在C語言中,下列說法中正確的是( )
A. 不能使用“do while”的循環(huán)
B.“do while”的循環(huán)必須使用break語句退出循環(huán)
C.“do while”的循環(huán)中,當條件為非0時將結束循環(huán)
D.“do while”的循環(huán)中,當條件為0時將結束循環(huán)。
18.設a,b為字符型變量,執(zhí)行scanf(“a=%c,b=%c”,&a,&b)后使a為‘A’,b為‘B’,從鍵盤上的正確輸入是( )
A.‘A’ ‘B’ B.‘A’,‘B’ C.A=A,B=B D.a=A,b=B
19.設i,j,k均為int型變量,執(zhí)行完下面的for循環(huán)后,k的值為( )
for (i=0,j=10;i<=j;i++,j——)k=i+j;
A.10 B.9 C.8 D.7
20.設有定義:char s[12]={“string”};則printf (“%d\n”,strlen(s));的輸出是( )
A.6 B.7 C.11 D.12
21.合法的數(shù)組定義是()
A.int a[]={“string”}; B.int a[5]={0,1,2,3,4,5};
C.char a={“string”}; D.char a[]={0,1,2,3,4,5}
22.函數(shù)調用strcat(strcpy(str1,str2),str3)的功能是()
A. 將字符串str2復制到字符串str1中后再將字符串str3連接到字符串str1之后
B. 將字符串str1復制到字符串str2中后再連接到字符串str3之后
C. 將字符串str1復制到字符串str2中后再復制到字符串str3之后
D. 將字符串str2連接到字符串str1中后再將字符串str1復制到字符串str3中
23.設有如下定義,則正確的敘述為( )
char x[]={“abcdefg”};
char y[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’};
A.數(shù)組x和數(shù)組y等價
B.數(shù)組x和數(shù)組y的長度相同
C.數(shù)組x的長度大于數(shù)組y的長度
D.數(shù)組x的長度小于數(shù)組y的長度
24.設有單精度變量f,其值為13.8.執(zhí)行語句“n=((int)f)%3;”后,n的值是()
A.4 B.1 C.4.333333 D.4.6
25.執(zhí)行語句“f=(3.0,4.0,5.0),(2.0,1.0,0.0);”后,單精度變量f的值是( )
A.3.0 B.5.0 C.2.0 D.0.0
26.設a、b均為整型變量,下列表達式中不是賦值表達式的是( )
A.a=3,4,5 B.a=3*2 C.a=a&&b D.a=b=4
27.表達式“1?(0?3:2): (10?1:0)”的值為( )
A.3 B.2 C.1 D.0
28.sizeof(double)的結果值是( )
A.8 B.4 C.2 D.出錯
29.指出下面正確的輸入語句是( )
A.scanf (“a=b=%d”,&a,&b); B.scanf(“a=%d,b=%f”,&m,&f);
C.scanf(“%3c”,c); D.scanf(“%5.2f,&f);
30.若有以下定義和語句,且0<=i<5,則( )是對數(shù)組元素地址的正確表示
int a[]={1,2,3,4,5},*p,i;
p=a;
A.&(a+i) B.&p C.a++ D.&p[i]
二、填空(20分,每空1分)
1.在內存中存儲“A”要占用( )個字節(jié),存儲‘A’要占用( )字節(jié)。
2.符號常量的定義方法是( )。
3.能表述“20 4.結構化程序設計方法規(guī)定程序或程序段的結構有三種:順序結構、( )和( )。
5.C語言共提供了三種用于實現(xiàn)循環(huán)結構的流程控制語句,它們是( )、( )和( )。
6.若在程序中用到“putchar”,應在程序開頭寫上包含命令( ),若在程序中用到“strlen()”函數(shù)時,應在程序開頭寫上包含命令( )。
7.設有定義語句“static int a[3][4]={{1},{2},{3}}”,則a[1][1]值為( ),a[2][1]的值為( )。
8.“*”稱為( )運算符,“&”稱為( )運算符。
9.賦值表達式和賦值語句的區(qū)別在于有無( )號。
10.用{}把一些語句括起來稱為( )語句
11.設a=12、b=24、c=36,對于“scanf (”a=%d,b=%d,c=%d“,&a,&b,&c);”,輸入形式應為( )
12.表達式“sqrt(s*(s-a)*(s-b)*(s-c));”對應的數(shù)學式子為( )
13.C語言編繹系統(tǒng)在判斷一個量是否為“真”時,以0代表“假”,以( )代表“真”
三、讀程序(30分)
1. main()
{ int a=10,b=4,c=3;
if (a if (a printf(“%d,%d,%d”,a,b,c);}
2. main( )
{int y=9;
for (;y>0;y——)
if (y%3= = 0) {printf (“%d”,——y);continue;}
3. main()
{ int x,y;
for (y=1,x=1;y<=50;y++)
{ if (x>=10) break;
if (x%2= =1) { x+=5;continue;}
x-=3; }
printf (“%d”,y);}
4. main()
{ static int a[][3]={9,7,5,3,1,2,4,6,8};
int i,j,s1=0,s2=0; i,j,s1=0,s2=0;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
{ if (i= =j )s1=s1+a[i][j];
if (i+j= =2) s2=s2+a[i][j];
}
printf (“%d\n%d\n”,s1,s2);}
5. main()
{static char a[]={‘*’,‘*’,‘*’,‘*’,‘*’};
int i,j,k;
for (i=0;i<5;i++)
{printf (“\n”);
for (j=0;j for (k=0;k<5;k++) printf (“%c”,a[k]); } }
6. int fac(int n)
{static int f=1;
f=f*n; return(f);}
main()
{int i;
for (i=1;i<=5;i++)
printf (“%d!=%d\n”,i,fac(i));}
四、編寫程序(20分)
1. 編一個程序,輸入X的值,按下列公式計算并輸出Y的值
2. 編程序按下列公式計算e的值(精度為1e-6)
e=1+1/1!+1/2!+1/3!+……1/n!
1. 下列不正確的轉義字符是( )
A.\\ B.\‘ C.074 D.\0
2. 不是C語言提供的合法關鍵字是( )
A.switch B.cher C.case D.default
3.正確的標識符是( )
A.?a B.a=2 C.a.3 D.a_3
4.下列字符中屬于鍵盤符號的是( )
A.\ B.\n C.\t D.\b
5.下列數(shù)據(jù)中屬于“字符串常量”的是( )
A.ABC B.“ABC” C.‘ABC’ D.‘A’
6.char型常量在內存中存放的是( )
A.ASCII碼 B.BCD碼 C.內碼值 D.十進制代碼值
7.設a為5,執(zhí)行下列語句后,b的值不為2的是( )
A.b=a/2 B.b=6-(——a) C.b=a%2 D.b=a>3?2:2
8.在以下一組運算符中,優(yōu)先級的運算符是( )
A.<= B.= C.% D.&&
9.設整型變量i的值為3,則計算表達式i——i后表達式的值是()
A.0 B.1 C. 2 D.表達式出錯
10.設整型變量a,b,c均為2,表達式a+++b+++c++的結果是( )
A.6 B.9 C.8 D.表達式出錯
11.若已定義x和y為double類型,則表達式x=1,y=x+3/2的值是( )
A.1 B.2 C.2.0 D.2.5
12.設a=1,b=2,c=3,d=4,則表達式:a A.4 B.3 C.2 D.1
13.設a為整型變量,不能正確表達數(shù)學關系:10
A.10
C.a>10&&a<15 D.?。╝<=10)&&?。╝>=15)
14.若有以下定義:char a、 int b 、 float c 、 double d,則表達式a*b+d-c值的類型為()
A.float B.int C.char D.double
15.表達式“10!=9”的值是( )
A.true B.非零值 C.0 D.1
16.循環(huán)語句 for (x=0,y=0; (y!=123)|| (x<4);x++);的循環(huán)執(zhí)行( )
A.無限次 B.不確定次 C.4次 D.3次
17.在C語言中,下列說法中正確的是( )
A. 不能使用“do while”的循環(huán)
B.“do while”的循環(huán)必須使用break語句退出循環(huán)
C.“do while”的循環(huán)中,當條件為非0時將結束循環(huán)
D.“do while”的循環(huán)中,當條件為0時將結束循環(huán)。
18.設a,b為字符型變量,執(zhí)行scanf(“a=%c,b=%c”,&a,&b)后使a為‘A’,b為‘B’,從鍵盤上的正確輸入是( )
A.‘A’ ‘B’ B.‘A’,‘B’ C.A=A,B=B D.a=A,b=B
19.設i,j,k均為int型變量,執(zhí)行完下面的for循環(huán)后,k的值為( )
for (i=0,j=10;i<=j;i++,j——)k=i+j;
A.10 B.9 C.8 D.7
20.設有定義:char s[12]={“string”};則printf (“%d\n”,strlen(s));的輸出是( )
A.6 B.7 C.11 D.12
21.合法的數(shù)組定義是()
A.int a[]={“string”}; B.int a[5]={0,1,2,3,4,5};
C.char a={“string”}; D.char a[]={0,1,2,3,4,5}
22.函數(shù)調用strcat(strcpy(str1,str2),str3)的功能是()
A. 將字符串str2復制到字符串str1中后再將字符串str3連接到字符串str1之后
B. 將字符串str1復制到字符串str2中后再連接到字符串str3之后
C. 將字符串str1復制到字符串str2中后再復制到字符串str3之后
D. 將字符串str2連接到字符串str1中后再將字符串str1復制到字符串str3中
23.設有如下定義,則正確的敘述為( )
char x[]={“abcdefg”};
char y[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’};
A.數(shù)組x和數(shù)組y等價
B.數(shù)組x和數(shù)組y的長度相同
C.數(shù)組x的長度大于數(shù)組y的長度
D.數(shù)組x的長度小于數(shù)組y的長度
24.設有單精度變量f,其值為13.8.執(zhí)行語句“n=((int)f)%3;”后,n的值是()
A.4 B.1 C.4.333333 D.4.6
25.執(zhí)行語句“f=(3.0,4.0,5.0),(2.0,1.0,0.0);”后,單精度變量f的值是( )
A.3.0 B.5.0 C.2.0 D.0.0
26.設a、b均為整型變量,下列表達式中不是賦值表達式的是( )
A.a=3,4,5 B.a=3*2 C.a=a&&b D.a=b=4
27.表達式“1?(0?3:2): (10?1:0)”的值為( )
A.3 B.2 C.1 D.0
28.sizeof(double)的結果值是( )
A.8 B.4 C.2 D.出錯
29.指出下面正確的輸入語句是( )
A.scanf (“a=b=%d”,&a,&b); B.scanf(“a=%d,b=%f”,&m,&f);
C.scanf(“%3c”,c); D.scanf(“%5.2f,&f);
30.若有以下定義和語句,且0<=i<5,則( )是對數(shù)組元素地址的正確表示
int a[]={1,2,3,4,5},*p,i;
p=a;
A.&(a+i) B.&p C.a++ D.&p[i]
二、填空(20分,每空1分)
1.在內存中存儲“A”要占用( )個字節(jié),存儲‘A’要占用( )字節(jié)。
2.符號常量的定義方法是( )。
3.能表述“20
5.C語言共提供了三種用于實現(xiàn)循環(huán)結構的流程控制語句,它們是( )、( )和( )。
6.若在程序中用到“putchar”,應在程序開頭寫上包含命令( ),若在程序中用到“strlen()”函數(shù)時,應在程序開頭寫上包含命令( )。
7.設有定義語句“static int a[3][4]={{1},{2},{3}}”,則a[1][1]值為( ),a[2][1]的值為( )。
8.“*”稱為( )運算符,“&”稱為( )運算符。
9.賦值表達式和賦值語句的區(qū)別在于有無( )號。
10.用{}把一些語句括起來稱為( )語句
11.設a=12、b=24、c=36,對于“scanf (”a=%d,b=%d,c=%d“,&a,&b,&c);”,輸入形式應為( )
12.表達式“sqrt(s*(s-a)*(s-b)*(s-c));”對應的數(shù)學式子為( )
13.C語言編繹系統(tǒng)在判斷一個量是否為“真”時,以0代表“假”,以( )代表“真”
三、讀程序(30分)
1. main()
{ int a=10,b=4,c=3;
if (a if (a
2. main( )
{int y=9;
for (;y>0;y——)
if (y%3= = 0) {printf (“%d”,——y);continue;}
3. main()
{ int x,y;
for (y=1,x=1;y<=50;y++)
{ if (x>=10) break;
if (x%2= =1) { x+=5;continue;}
x-=3; }
printf (“%d”,y);}
4. main()
{ static int a[][3]={9,7,5,3,1,2,4,6,8};
int i,j,s1=0,s2=0; i,j,s1=0,s2=0;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
{ if (i= =j )s1=s1+a[i][j];
if (i+j= =2) s2=s2+a[i][j];
}
printf (“%d\n%d\n”,s1,s2);}
5. main()
{static char a[]={‘*’,‘*’,‘*’,‘*’,‘*’};
int i,j,k;
for (i=0;i<5;i++)
{printf (“\n”);
for (j=0;j for (k=0;k<5;k++) printf (“%c”,a[k]); } }
6. int fac(int n)
{static int f=1;
f=f*n; return(f);}
main()
{int i;
for (i=1;i<=5;i++)
printf (“%d!=%d\n”,i,fac(i));}
四、編寫程序(20分)
1. 編一個程序,輸入X的值,按下列公式計算并輸出Y的值
2. 編程序按下列公式計算e的值(精度為1e-6)
e=1+1/1!+1/2!+1/3!+……1/n!