C
语言第
1
至第
8
章
1.
下列符合
C
语言语法的语句是
:
A) a=7+b+c=a+7; B) a=7+b++=a+7;
C) a=7+b,b++,a+7 D) a=7+b,c=a+7;
2.
在
C
语言中
,
要求运算数必须是整型的运算符是
:
A) % B) / C) < D) !
3.
已知字母
A
的
ASCII
码为十进制的
65,
下面程序的输出是
:
main( )
{ char ch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c/n",ch1,ch2); }
A) 67,D B) B,C C) C,D D)
不确定的值
4.
若执行下面的程序时从键盘上输入
3
和
4,
则输出是
:
main( )
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b) s=b;
s=s*s;
printf("%d/n",s); }
A) 14 B) 16 C) 18 D) 20
5.
下面的程序
main( )
{ int x=3,y=0,z=0;
if(x=y+z) printf("* * * *");
else printf("# # # #"); }
A)
有语法错误不能通过编译
B)
输出
* * * *
C)
可以通过编译
,
但是不能通过连接
,
因而不能运行
D)
输出
# # # #
6.
下面的程序
:
main( )
{ int x=3;
do printf("%d/n",x-=2); while(!(--x));
}
A)
输出的是
1 B)
输出的是
1
和
-2 C)
输出的是
3
和
0 D)
是死循环
7.
执行下面程序中的输出语句后
, a
的值是
:
main( )
{ int a; printf("%d/n",(a=3*5,a*4,a+5)); }
A) 65 B) 20 C) 15 D) 10
8.
下面程序的输出是
:
main( )
{int x=100,a=10,b=20,ok1=5,ok2=0;
if (a<b)
if (b!=15)
if (!ok1)
x=1;
else
if (ok2) x=10;
x=-1;
printf("%d/n",x); }
A) -1 B) 0 C) 1 D)
不确定的值
9.
下面程序的输出是
:
main( )
{int a=-1, b=4, k ;
k=(a++<=0)&&(!(b--<=0));
printf("%d %d %d/n",k,a,b); }
A) 0 0 3 B) 0 1 2 C) 1 0 3 D) 1 1 2
10.
下面的程序片段所表示的数学函数关系是
:
y=-1;
if(x!=0)
if(x>0) y=1;
else y=0;
A) y
的值
当
x<0
时为
-1,
当
x=0
时为
0,
当
x>0
时为
1
B) y
的值
当
x<0
时为
1,
当
x=0
时为
-1,
当
x>0
时为
0
C) y
的值
当
x<0
时为
0,
当
x=0
时为
-1,
当
x>0
时为
1
D) y
的值
当
x<0
时为
-1,
当
x=0
时为
1,x>0
时为
0
11.
下面程序的输出是
:
main( )
{ int y=9;
for (;y>0;y--)
{ if(y%3==0)
{ printf("%d",--y);
continue; }
}
}
A) 741 B) 852 C) 963 D) 875421
12.
下面的程序输出是
:
int m=5;
int fun2(int x,int y)
{ int m=1;
return(x*y-m); }
main( )
{ int a=7,b=5;
printf("%d/n",fun2(a,b)/m); }
A)
语法错
B) 6 C) 6.8 D) 7
13. C
语言中最简单的数据类型包括
:
A)
整型,实型,逻辑型
B)
整型,实型,字符型
C)
整型,字符型,逻辑型
D)
整型,实型,逻辑型,字符型
14.
下述对
C
语言字符数组的描述中错误的是
:
A)
字符数组可以存放字符串
B)
字符数组中的字符串可以整体输入
,
输出
C)
可以在赋值语句中通过赋值运算符
"="
对字符数组整体赋值
D)
不可以用关系运算符对字符数组中的字符串比较大小
15.
设有如下定义
:
int x=10,y=3,z;
则语句
printf("%d/n",z=(x%y,x/y));
的输出结果是
:
A) 1 B)
语法错
C) 3.333333 D) 3
16.
若要求在
if
后一对园括号中表示
a
不等于
0
的关系
,
则能正确表示
这一关系的表达式为
:
A) a<>0 B) !a C) a=0 D) a
17.
有如下变量和数组
:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是
:
for (i=0;i<3;i++)
printf("%d ",x[i][2-i]);
A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9
18.
以下说法中正确的是
:
A) C
语言程序总是从第一个定义的函数开始执行
B)
在
C
语言程序中
,
要调用的函数必须在
main()
函数中定义
C) C
语言程序总是从
main()
函数开始执行
D) C
语言程序中的
main()
函数必须放在程序的开始部份
19.
执行下面的程序后
,a
的值为
main( )
{ int a,b;
for (a=1,b=1;a<=100;a++)
{ if (b>=20) break;
if (b%3==1)
{ b+=3;
continue; }
b-=5;
}
printf(“%d/n”,a);
}
A) 7 B) 8 C) 9 D) 10
20.
定义如下变量
:
int n=10;
则下面循环的输出结果是
:
while (n>7)
{ n--; printf("%2d",n); }
A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 6
21.
两次运行下面的程序
,
如果从键盘上分别输入
6
和
4,
则输出的结果分别是
:
main()
{ int x;
scanf("%d",&x);
if (x++>5) printf("%d",x);
else printf("%d/n",x--); }
A) 7
和
5 B) 6
和
3 C) 7
和
4 D) 6
和
4
22.
下面的程序输出结果是
:
#include <stdio.h>
f(int a)
{ int b=0;
static c=3;
a=c++,b++;
return(a); }
main()
{ int a=2,i,k;
for (i=0;i<2;i++)
k=f(a++);
printf("%d/n",k);}
A) 3 B) 0 C) 5 D) 4
23.
阅读下列程序
:
main( )
{ int n[3],i,j,k;
for (i=0;i<3;i++) n[i]=0;
k=2;
for (i=0;i<k;i++)
for (j=0;j<k;j++) n[j]=n[i]+1;
printf("%d/n",n[1]);
}
上述程序运行后
,
输出结果是
:
A) 2 B) 1 C) 0 D) 3
24. C
语言提供的合法的关键字是
:
A) swtich B) cher C) Case D) default
25.
在
C
语言中
,
合法的字符常量是
:
A) '/084' B) '/x43' C) 'ab' D) "/0"
26.
合法的数组定义是
:
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};
27.
设
a
为整型变量
,
不能正确表达数学关系
:10<a<15
的语言表达式是
:
A) 10<a<15
B) a==11||a==12||a==13||a==14
C) a>10 && a<15
D) !(a<=10) && !(a>=15)
28.
若
t
为
double
类型
,
表达式
t=1,t+5,t++
的值是
:
A) 1 B) 6.0 C) 2.0 D) 1.0
29.
若有定义和语句
:
char s[10]; s="abcd"; printf("%s/n",s);
则结果是
(
以下
u
代表空格
)
A)
输出
abcd B)
输出
a C)
输出
abcduuuuu D)
编译不能通过
30.
若有以下定义和语句
int u=010,v=0x10,w=10;
printf("%d,%d,%d/n", --u, v, w--);
则输出结果是
:
A) 7,16,10 B) 8,10,9 C) 9,16,9 D) 10,10,10
31.
若
i ,j
已定义为
int
类型
,
则以下程序段中内循环体的总的执行次数是:
for (i=5; i; i--)
for (j=0; j<4; j++) {
循环体
}
A) 20 B) 24 C) 25 D) 30
32.
当执行下面的程序时,如果输入
ABC
,则输出是
:
A) ABC6789 B) 123456789
C) ABC456789 D) 12345ABC
#include <stdio.h>
#include <string.h>
main( )
{ char s[10]=”12345”;
gets(s);
strcat(s, “6789”);
printf(“%s/n”, s);
}
练习一
基本运算和语句
1、
下面的
C
语言标识符中正确的是:
A
)
case B
)
-ac C
)
_53 D
)
ab-c
2
、以下常数表示中不正确的是:
A
)
-0. B
)
’/55’ C
)
0x2a3 D
)
’103’
3
、若
a
为浮点变量,
b
为整型变量,将式
(‘4’-‘0’) – a*b
中所隐含的类型自动转换,改写为其对应的强制类型转换表达式是
((int)’4’-(int)’0’)-(double)a*(double)b_
。
4
、设
x=2
,
y=3
,表达式
x=y==3
运算后的值为
______________
。
5
、设
a
是整型变量,初值是
12
,执行完表达式
a+=a -=a*a
后,
a
的值为:
A
)
144 B
)
-264 C
)
264 D
)
0
6
、若
x
,
y
,
z
的初值均为
1
,则执行表达式
w=++x || ++y &&++z
后,
x
,
y
,
z
的值分别为:
A
)
x=1
,
y=1
,
z=2 B
)
x=2
,
y=2
,
z=2
C
)
x=1
,
y=2
,
z=1 D
)
x=2
,
y=1
,
z=1
7
、下列语句中符合
C
语言语法的赋值语句是:
A
)
a=7+b+c=a+7 ; B
)
a=7+ b++ =a+7 ;
C
)
a=7+b , b++ , a+7 D
)
a=7+b , c=a+7 ;
8
、在
C
语言中,要求运算数必须是整型的运算符是:
A
)
% B
)
/ C
)
< D
)
!
9
、数学式子
写成
C
语言表达式是
__
。
10
、
C
语言中最简单的数据类型包括:
A
)整型、实型、逻辑型
B
)整型、实型、字符型
C
)整型、字符型、逻辑型
D
)整型、实型、逻辑型、字符型
11
、关系式
x
≥y≥z的C语言表达式是:
A
)
(x >=y) && (y >=z)
B
)
(x >=y) AND (y >=z)
C
)
(x >= y >= z)
D
)
(x >=y) & (y >=z)
12
、若要求在
if
后一对园括号中表示
a
不等于
0
的关系,则能正确表示这一关系的表达式为:
A
)
a < >0 B
)
!a C
)
a=0 D
)
a
13
、表示条件:
10 < x < 100
或
x < 0
的
C
语言表达式是
__
。
14
、设
a
、
b
、
c
都是
int
型变量,
a=3
,
b=4
,
c=5
,下列表达式中,值为
0
的表达式是:
A
)
’a’ && ‘b’ B
)
a<=b C
)
a || b + c && b-c D
)
! ((a<b) && !c ||1 )
15
、下列程序段的输出是:
int i=65536 ; printf (“%d /n”, i ) ;
A
)
65536 B
)
0
C
)有语法错误,无输出结果
D
)
-1
16
、设
ch
是
char
型变量,其值为
A
,则表达式
ch = (ch >= ‘A’ && ch <= ‘Z’) ? (ch + 32) : ch
的值为:
A
)
A B
)
a C
)
Z D
)
z
17
、若
x
和
y
都是
int
型变量,
x=100
,
y=200
则语句
printf (“%d”, (x , y)) ;
的输出结果为:
A
)
200 B
)
100 C
)
100 200
D
)输出格式符不够,输出不确定的值
18
、
x
为
int
型变量,下面程序段的输出结果为:
for ( x=3 ; x<6 ; x++)
printf ((x%2) ? (“ * * %d ”) : (“ # # %d /n”) , x ) ;
A
)
* * 3 B
)
# # 3
# # 4 * * 4
* * 5 # # 5
C
)
# # 3 D
)
* * 3 # # 4
* * 4 # # 5 * * 5
19
、设
i
和
s
都是整型变量,执行如下语句:
for(i=0 , s=0 ; i+s<10 , i<10 ; i++ , s++) ;
printf (“%d ,%d/n” , i , s) ;
输出为:
A
)
11 , 11 B
)
5 , 5 C
)
6 , 6 D
)
10 , 10
20
、
main ()
{ int x=3 , y=0 , z=0 ;
if (x=y+z) printf (“* * * * “) ;
else printf (“# # # # “) ;
}
程序输出为:
6
A
)有语法错误不能通过编译
B
)输出
* * * *
C
)可以通过编译,但不能通过连接,因而不能运行
D
)输出
# # # #
21
、
main ()
{ int x=3 ;
do { printf (“%d/n”, x - = 2) ;
} while ( ! ( - - x) ) ;
}
程序的输出为:
A
)输出
1 B
)输出
1
和
–2
C
)输出
3
和
0 D
)是死循环
22
、
main ()
{ int x=023 ;
printf ( “%d/n”, - - x) ;
}
程序输出为:
A
)
17 B
)
18 C
)
23 D
)
24
23
、
main ()
{ int x=10 , y=10 ;
printf (“%d %d/n”, x - - , - - y ) ; 21
}
程序输出为:
A
)
10 10 B
)
9 9 C
)
9 10 D
)
10 9
24
、
main ()
{ int x ;
scanf ( “%d”, &x) ;
if ( x++ > 5) printf ( “%d/n”, x ) ;
else printf ( “%d/n”, x - - ) ;
}
若执行程序时从键盘输入
5
,则输出为:
A
)
7 B
)
6 C
)
5 D
)
4
25
、
main ()
{ int a ;
printf (“%d/n”, (a=3*5 , a*4 , a+5 ) ) ;
}
执行程序中的输出语句后,
a
的值为:
A
)
65 B
)
20 C
)
15 D
)
10
26
、
main ()
{ int a=-1 , b=4 , k ;
k=(a++ <= 0) && ( ! (b - - <= 0) ) ;
printf ( “%d %d %d/n”, k , a , b ) ;
}
程序输出为:
A
)
0 0 3 B
)
0 1 2 C
)
1 0 3 D
)
1 1 2
27
、两次运行下面的程序,如果从键盘上分别输入
6
和
4
,则输出结果是:
main ()
{ int x ;
scanf (“%d”, &x ) ;
if ( x++ > 5) printf (“%d “, x ) ;
else printf (“%d/n”, x - - ) ; }
A
)
7
和
5 B
)
6
和
3 C
)
7
和
4 D
)
6
和
4
28
、下面的程序片段所表示的数学函数关系是:
A
)
B
)
C
)
D
)
y = -1 ;
if ( x != 0)
if ( x > 0 ) y=1 ;
else y=0 ;
29
、
#include <stdio.h>
main()
{ int a ; float b , c ;
scanf (“%2d %3f %4f “, &a , &b, &c ) ;
printf( “/n a=%d , b=%f , c=%f /n “ , a , b , c) ;
}
若运行以上程序时从键盘输入
9876543210 <CR>
,则输出结果为:
A
)
a=98 , b=765 , c=4321
B
)
a=10 , b=432 , c=8765
C
)
a=98 , b=765.000000 , c=4321.000000
D
)
a=98 , b=765.0 , c=4321.0
30
、
printf( “%d /n “, strlen (“ ATS/n012/1// “ )) ;
程序段的输出结果是:
A
)
11 B
)
10 C
)
9 D
)
8
31
、
#include <stdio.h>
main ()
{ int a , b ;
for ( a=1 , b=1 ; a<=100 ; a++)
{ if ( b>=20 ) break ;
if ( b%3 == 1 )
{ b += 3 ; continue ; }
b - = 5 ; }
printf ( “%d /n “, a ) ;
}
程序输出为:
A
)
7 B
)
8 C
)
9 D
)
10
32
、
#include <stdio.h>
main ()
{ int num = 0 ;
while (num <= 2)
{ num ++ ; printf (“%d /n “, num ) ; }
}
程序输出为:
A
)
1 B
)
1 C
)
1 D
)
1
2 2 2
3 3
4
33
、
#include <stdio.h>
main ()
{ int x = 1 , y=0 , a=0 , b=0 ;
switch ( x )
{ case 1 :
switch ( y )
{ case 0 : a++ ; break ;
case 1 : b++ ; break ;
}
case 2 : a++ ; b++ ; break ;
}
printf (“ a=%d , b=%d /n “, a , b ) ;
}
程序输出为:
A
)
a=2 , b=1 B
)
a=1 , b=1
C
)
a=1 , b=0 D
)
a=2 , b=2
34
、
#include <stdio.h>
main ()
{ float x , y ;
scanf (“%f “, &x ) ;
if (x<0.0 ) y=0.0 ;
else if ((x<5.0)&&(x!=2.0)) y=1.0/(x+2.0);
else if (x<10.0 ) y=1.0 / x ;
else y=10.0 ;
printf (“%f /n “, y ) ;
}
若从键盘输入
2.0 <CR>
,则程序输出为:
A
)
0.000000 B
)
0.250000
C
)
0.500000 D
)
1.000000
35
、
main ()
{ int i , x ;
for ( i=1 , x=1 ; i<=50 ; i++ )
{ if ( x>=10 ) break ;
if (x%2 == 1)
{ x+=5 ; continue ; }
x -=3 ; }
printf (“ x=%d , i=%d /n “, x , i ) ;
}
程序运行结果为
___________
。
36
、
main ()
{ int y=9 ;
for ( ; y>0 ; y - - )
{ if ( y % 3 == 0 )
{ printf (“%d”, - - y) ;
continue ; }
}
}
程序输出是:
A
)
741 B
)
852 C
)
963 D
)
875421
37
、
main ()
{ int x=2 ;
while ( x - - ) ;
printf ( “%d/n”, x ) ;
}
程序运行结果为
_____________
。
38
、
#include <stdio.h>
main ()
{ int i , j =0 ;
for (i=16 ; i<=1000 ; i++)
{ if (i %17 !=0) continue ;
j++ ;
printf ((j == 4) ? j=0 ,”%d/n” : ”%d /t”, i ) ;
}
}
填充:
该程序的功能是
___ ___
。
其中
continue
语句的作用是
__ _______
。
语句
printf ((j == 4) ? j=0 ,”%d/n” : ”%d /t”, i ) ;
的作用是
_
________
。