C语言期末复习题(填空选择判断题)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单选题:
1、已知ch是字符型变量,下面不正确的赋值语句是( B )。
A、ch=‘\0’
B、ch=‘a+b’
C、ch=‘7’+‘9’
D、ch=7+9
2、以下4组用户定义标识符中,全部合法的一组是(A )。
A、s_5
B、If
C、txt
D、int
about -max REAL
k_2
E2 turbo 3COM
_001
3、C语言中的简单数据类型包括( B )
A、整型、实型、逻辑型
B、整型、实型、字符型、枚举型
C、整型、字符型、逻辑型
D、整型、实型、逻辑型、字符型
4、已知:int i=1,j;执行语句j=-i++;后,j的值是(C )
A、1
B、2
C、-1
D、-2
5、已知:int i=5;执行语句i+=++i;后,i的值是( C )
A、10
B、11
C、12
D、A、B、C答案都不对
7、若x为int型变量, x=6;则执行以下语句后,x的值为( C )。
x+=x-=x*x;
A、 36
B、 60
C、- 60
D、-24
8、设d为字符变量,下列表达式不正确的是( D )。
A、d=’g’
B、d=’a’
C、d=97
D、d=”g”
9、若a=1,b=2,c=3,d=4;则条件表达式 a>b?a:c<d?c:d结果为( B )
A、4
B、3
C、2
D、1
10、printf函数中用到格式符"%8s",其中数字8表示输出的字符串占用8列。
如果字符串长度大于8,则按原字符长从左向右全部输出;如果字符串长度
小于8,则输出方式为( B )。
A、从左起输出该字符串,右补空格
B、右对齐输出该字符,左补空格
C、按原字符长从左向右全部输出
D、输出错误信息
11、在嵌套的if-else语句中,else总是与( D )配对。
A、其之前最近的if
B、第一个if
C、缩进位置相同的if
D、其之前最近的且不带else的if
12、一个C语言程序总是从( B )开始执行。
A、程序的第一个函数
B、主函数
C、子函数
D、主程序
13、设x=2.9,a=8,y=3.7,算术表达式x+a%3*(int)(x+y)%5/2的值是 ( A )
A、3.9
B、4
C、4.2
D、3.75
14、程序片段执行后输出结果是 ( A )
int x=5, y=8;
printf ("% d", x<y ? x : (x, y));
A、5
B、8
C、5,8
D、编译出错
15、下面能正确表示变量a在区间[0,8]或(4,10)内的表达式为:( D )。
A、a>=0||a<=8||a>4||a<10
B、a>=0&&a<=8&&a>4&&a<10
C、(a>=0||a<=8)&&(a>4||a<10)
D、a>=0&&a<=8||a>4&&a<10
16、设整型变量a值为9,则下列表达式中使b的值不为4的表达式:( C )。
A、 b=a/2
B、b=a>5?4:2
C、b=a%2
D、b=8-(3,a-5)
17、执行以下语句后b的值为( D )。
int a = 5 , b = 3 , w = 1 , x =2 , y = 3 , z = 4 ;
( a = w > x ) && ( b = y > z ) ;
A、6
B、 0
C、 1
D、3
18、若有说明语句:char c='\75';则变量c ( A )。
A、包含1个字符
B、包含2个字符
C、包含3个字符
D、说明不合法,c的值不确定
19、( D )不是C语言提供的合法关键字。
A、switch
B、default
C、case
D、print
20、能表示整数x符合下面两个条件的语句是( A )。
(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.
A、(x%4= =0&&x%100!=0)||x%400= =0
B、(x%4= =0||x%100!=0)&&x%400= =0
C、(x%4= =0&&x%400!=0)||x%100= =0
D、(x%100= =0||x%4!=0)&&x%400= =0
21、在C程序中,判逻辑值时,用“非0”表示逻辑值“真”,又用“0”表示逻辑值“假”。
在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。
( A )
A、1 0
B、0 1
C、非0 非0
D、1 1
22、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( C )。
A、必须为大写
B、必须为下划线
C、必须为字母或下划线
D、可以是字母、数字和下划线中的任一种字符
23、设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为( B ) 。
A、1
B、2
C、3
D、4
24、下列形式的常数中,C程序不允许出现的是( D )。
A、 0.98
B、 6e4
C、 77.6e-2
D、 E8
25、分析以下程序:
void main( )
{ int x=5,a=0,b=0;
if(x=a+b) printf("** **\n");
else printf("## ##\n");
}以上程序( C )。
A、有语法错,不能通过编译
B、通过编译,但不能连接
C、输出## ##
D、输出** **
26、若有代数式,则不正确的C语言表达式是( D )
A、a/b/f*e*5
B、5*a*e/b/f
C、a*e/f/b*5
D、5*a*e/b*f
27、阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为( D )。
(“CR”表示回车)
void main( )
{ int x,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n”,x+y+z);
}
A、x+y+z=48
B、x+y+z=35
C、x+z=35
D、不确定值
28、与代数式(x*y)/(u*v) 不等价的C语言表达式是( A )。
A、x*y/u*v
B、x*y/u/v
C、x*y/(u*v)
D、x/(u*v)*y
29、设有程序段
int a=8;
while(a=0) a++;
则下面描述正确的是( C )。
A、while循环执行10次
B、循环是无限循环
C、循环体一次也不执行
D、循环体只执行一次
30、下列循环语句中,执行循环体的次数是( D )。
int i,j;
while(5) printf(“ABC”);
A、5次
B、0次
C、1次
D、无限次
31、下面有关for循环的正确描述是( B)
A、for循环只能用于循环次数已经确定的情况
B、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
C、在for循环中,不能用break语句跳出循环体
D、for循环是先执行循环体语句,后判断表达式
32、下列说法正确的是( C )
A、在执行C程序时不是从main函数开始的
B、C程序书写格式严格限制,一行内必须写一个语句
C、C程序书写格式自由,一个语句可以分写在多行上
D、C程序书写格式严格限制,一行内必须写一个语句,并要有行号
33、设int n=4;则有表达式n++,n的结果是( D )。
A、2
B、3
C、
4 D、5
34、下列说法中正确的是( C )
A、在switch语句中一定要使用break语句
B、break语句是switch语句的一部分
C、在switch语句中不一定要使用break语句
D、break只能用于switch语句中
35、在C语言程序中,可以用做变量名的是( B )
A、 1e5
B、a1
C、 int
D、 *p
36、以下符合C语言语法的实型常量是( C )。
A、1.2E0.5
B、2.15x105
C、5E-3
D、E15
37、在a=2,b=0,c;则执行c=b||a--;语句后,a和c的结果是( D )。
A、0,1
B、1,0
C、2,0
D、1,1
38、有以下程序:
void main( )
{ int x=101,y=011;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是 ( C ) 。
A、10, 9
B、101,11
C、101, 9
D、01,11
39、已知scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);则正确的输入形式是
(B )
A、32,24,36
B、 a=32,b=24,c=36
C、a=32 b=24 c=36
D、 32 24 36.
40、逻辑运算符的运算对象的数据类型( B )。
A、只能是0或1
B、任何类型的数据
C、只能是整型或字符型
D、只能是.T.或.F.
41、若x和y都为float型变量,且x=3.6, y=5.8 执行下列语句后输出结果为( C )。
printf("%f",(x,y));
A、3.600000
B、3.600000,5.800000
C、5.800000
D、输出符号不够,输出不正确值
43、以下程序的输出结果是( B )。
void main()
{ int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A、 10 10
B、 10 9
C、 9 10
D、 9 9
44、若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:
(float)(a+b)/2+(int)x%(int)y的值是( B )。
A、2.500000
B、3.500000
C、4.500000
D、5.000000
45、选择出i的正确运行结果: ( D )。
int i=10;
switch(i)
{
case 9:i+=1;
case 10:i+=1;
case 11:i+=1;
case 12:i+=1;
}
A、 10
B、 11
C、 12
D、 13
46、已知:int x=10,y=3,z=x%y;则下列语句的输出结果是( A )
A、1
B、0
C、2
D、3
47、下面程序的输出结果是 ( A )
void main()
{ int x;
x=-3+4*5-6; printf(“%d”,x);
x=3+4%5-6; printf(“%d”,x);
x=-3*4%-6/5; printf(“%d”,x);
x=(7+6)%5/2; printf(“%d”,x);
}
A、11 1 0 1
B、11 –3 2 1
C、12 –3 2 1
D、11 1 2 1
48、下列说法正确的是( B )。
A、一个函数的函数体必须要有变量定义和执行部分,二者缺一不可。
B、一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数。
C、一个函数的函数体必须要有执行部分,可以没有变量定义。
D、以上都不对。
49、判断char型变量ch是否为大写字母的正确表达式是( B )。
A、‘A’<=ch<=‘Z’
B、(ch>=‘A’)&&(ch<=‘Z’)
C、(‘A’<=ch)AND(‘Z’>=ch)
D、(ch>=‘A’)&(ch<=‘Z’)
50、在C语言中,多分支选择结构语句为:
switch(a)
{ case 常量表达式1:语句1;
……
case 常量表达式n-1:语句n-1;
default 语句n;
}
其中括号内表达式a的类型:( B )。
A、可以是任意类型
B、可以是整型或字符型
C、可以为整型或实型
D、只能为整型
51、设有以下定义,则能使值为3的表达式是:( C )。
int k=7, x=12;
A、x%=(k%=5)
B、x%=(k-k%5)
C、(x%=k)-(k%=5)
D、x%=k
52、有如下程序
void main()
{ float x=2.0,y;
if(x<0.0)y=0.0;
else if(x>10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);}
该程序的输出结果是 ( D )
A、0.000000
B、0.250000
C、0.500000
D、1.000000
53、下列说法正确的是( B )。
A、输入项可以是一个实型常量,如scanf("%f",4.8)。
B、当输入数据时,必须指明变量的地址,如scanf("%f",&f)。
C、当输入一个实型数据时,格式控制部分应规定小数点后的位数,
如scanf("%5.3f",&f)。
D、只有格式控制,没有输入项也能进行正确输入,如scanf("a=%d,b=%d")。
54、下列运算符中,不属于关系运算符的是( C )。
A、 <
B、> =
C、 !
D、 ! =
55下列说法正确的是( C )。
A、main函数必须放在C程序的开头。
B、main函数必须放在C程序的最后。
C、main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的。
D、main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的。
56、一个C语言程序是由( D )。
A、一个主程序和若干个子程序组成。
B、若干过程组成。
C、若干子程序组成。
D、函数组成, 并且每一个C程序必须且只能有一个主函数。
57、以下选项中属于C语言数据类型( C )。
A、复数型
B、逻辑型
C、双精度型
D、集合型
58、下列符号中,可以作为变量名的是( C )。
A、+a
B、12345e
C、a3B
D、5e+0
59、下列对C语言特点的描述中,错误的是( A )。
A、C语言不是结构化程序设计语言
B、C语言编程简洁明了
C、C语言功能较强
D、C语言移植性好
60、能够完成如下函数计算的程序段是( B )。
- 1 (x < 0)
y = 0 (x = 0)
1 (x > 0)
A、y = - 1 ;
B、if ( x > = 0 )
if ( x != 0 ) if ( x > 0 ) y = 1 ;
if ( x > 0 ) y = 1 ; else y = 0 ;
else y = 0 ; else y = -1 ;
C、y = 0 ;
D、y = - 1 ;
if ( x > = 0 ) if ( x > 0 ) y = 1 ;
if ( x > 0 ) y = 1 ; else y = 0 ;
else y = -1
填空题
1. int x=10,n=10;计算表达式x+=n++后x的值为_20_,n的值为_11_。
2. C语言运算符中,优先级最低的是,或者(逗号运算符)。
3. 优先级仅高于逗号运算符的是赋值或者(=)运算符。
4.在16位C环境里,char型变量占__1___个字节,double型占__8___个字节,
int 型变量占__2___个字节,float型占__4___个字节。
5、C语言提供的三种逻辑运算符
是 && 、 || 和!
6、利用条件运算符将这两条语句“if (x>y) z=x; else z=y;”转换成与其等价的一条语句是: z=x>y?x:y ;
7、如果int i=1,则printf("%d",-i++)执行后输出是 -1 ,i的结果是 2
8、C语言的格式输出函数是printf( ) , 格式输入函数是__scanf( )__________。
字符数据输出函数是putchar( ) ,字符数据输入函数是getchar( )___ 。
getchar函数的作用是从键盘上输入一个字符
putchar函数的作用是向终端(显示器)输出一个字符。
9、_break_语句用在循环体中,可结束本层循环,__contiune__语句用在循环体中,可结束本次
循环。
C程序有三种结构化程序设计方法,分别顺序结构、选择结构和循环结构。
10、C语言中的标识符只能由三种字符组成,它们是_字母_、 _数字、下划线_。
11、void main( )
{ int a=1,b=2,c=3,d=4;
if (a<b)
if (c<d) x=1;
else
if (a<c)
if (b<d) x=2;
else x=3;
else x=6;
else x=7;
printf ( “%d\n”, x ) ;
}运行后的结果是 _____1_____________________ 。
12、设n为int型变量, 请写出描述“n是奇数”的表达式是: n%2!=0
请写出描述“n是偶数”的表达式是: n%2= =0
13、逗号表达式的形式如下: 表达式1,表达式2
则逗号表达式的结果是表达式2 的值.
14、表达式x=(a=3,6*3)和表达式x=a=3,6*a分别是赋值表达式和逗号表达式,两个表达式执行完的结果是 18 和 18 .执行后x的值分别是
18 , 3
15、void main()
{ int i,j,m,n;
i=8;j=10;
m=++i;n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
} 运行后i,j,m,n的值是 9,11,9,10 .
16、int a=8,b=7,w=2,x=5,y=4,z=3;
(a=w>x)&&(b = y>z); a的值为__0__,b的值为__7__。
int a=-1,b=9; 则执行 ++a&&b--; a的值为 0,b的值为 9 。
int a=0, b=13; 则执行 ++a||b--; a的值为 1,b的值为 13 。
17、循环语句:for(i= - 1;i<7;i++)printf(“#######”);的循环次数是: 8
break语句只能用于开关语句和循环语句中。
18、在内存中,存储字符′m′要占用1个字节,存储字符串″m″要占用 2 个字节
存储字符′a′要占用1个字节,存储字符串″abcd″要占用 5 个字节
19、若有以下程序段:
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是 0
20、编制程序对实数a与b进行加,减,乘,除计算,要求显示如下结果。
jia=70.000000
jian=30.000000
cheng=1000.000000
chu=2.5000000
程序:#include<stdio.h>
void main(void)
{ (1) double x,y;
x=50.0;y=20.0;
printf("jia=%f\n", (2) x+y );
printf("jian=%f\n" (3) x-y );
printf("cheng=%f\n", (4) x*y );
printf("chu=%f\n", (5) x/y );
}
21、C语言规定,不同类型的数据可以在同一表达式中进行混合运算,运算时要进行类型转换。
数据的转换方式有两种:一种是自动转换,一种是强制转换。
22、若 x 为int型变量,则逗号表达式(x=4*6,x*6),x+15的结果为 39 ____。
23、设x=5,y=2,则表达式x*=y+8的值为____50_________。
24、void main()
{ int i,j,m,n;
i=1;j=2;m=0;n=0;
m+=i++;
n-= --j;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
运行后i,j,m,n的值是 _2,1,1,-1_________________。
25、下面的程序运行结果为 x=4.800000,i=4
void main()
{ float x;int i;
x=4.8; i=(int)x;
printf("x=%f,i=%d",x,i);
}
1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。
(√)2.在 C 程序中 ,APH 和 aph 代表不同的变量。
(√)
3.表达式 0195 是一个八进制整数。
(×)
4.Continue语句的作用是结束本次循环。
(√)
5.C语言中字符串的结束符是’\0’。
(√)
6.C程序总是从main( ) 函数开始执行的。
(√)
7.getchar()函数的功能是从键盘上输入一个字符
串。
( × )
8.Continue语句的作用是继续程序中的下一个循
环。
( × )
9.选择结构(if语句)和循环结构都可以使用嵌套形式。
(√)
10.赋值表达式和赋值语句的区别在于有无分号。
(√)。