C语言期末复习题C语言的强化练习.docx
- 文档编号:7648637
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:27
- 大小:24.08KB
C语言期末复习题C语言的强化练习.docx
《C语言期末复习题C语言的强化练习.docx》由会员分享,可在线阅读,更多相关《C语言期末复习题C语言的强化练习.docx(27页珍藏版)》请在冰豆网上搜索。
C语言期末复习题C语言的强化练习
C语言期末复习题
1.构成C语言源程序的基本单位是_D___
A.子程序
B.过程
C.文本
D.函数
2.在一个C程序中,main()函数_B__
A.必须出现在所有函数之前
B.可以在任可地方出现
C.必须出现在所有函数之后
D.以上都不对
3.以下描述正确的是_A___
A.最简单的C源程序可以不包括任何内容。
B.编译程序对C源程序编译时不检查语法。
C.C程序中没有输入输出语句。
D.在C程序中,至少必须有一个main()函数。
4.C语言是一种___结构__化程序设计语言
结构
5.下面不正确的字符串常量是__A__
A.’AB’
B.”ab’ab”
C.”a”
D.”
“6.下面四个选项中均是合法的整型常量的是:
____A__
A.340,025,-11
B.02,0x,03f
C.-0X2A,985.768,4d2
D.0X15,0X2,-760x
7.设有定义:
inta=10;则表达式a+=a*=a的值是:
___D_
A.10
B.100
C.1000
D.200
8.设有如下定义:
inta=1,b=2,c=3,d=4,x=2,y=2;则表达式(x=a>b)&&(y=c>d)运算后,y的值为____B___
A.1
B.2
C.3
D.4
9.能正确表示逻辑关系“a大于等于10或小于等于0”的C语言表达式是__D__
A.a>=10ora<=0
B.a>=0|a<=10
C.a>=10&&a<=10
D.a>=10||a<=0
10.设m是int型变量,则表达式(m=2*3,m+4),m*3的值是__18____
11.以下程序段执行后z的值是__0__
intx,y,z;
x=1;y=2;z=1.0/y*x
答:
12.以下程序段的输出结果是__b__
main()
{charm;m=’B’+32;printf(“%c\n”,m);
}
则输出的结果是:
_____
13.表达式7/3*(int)3.14/(int)(1.2*(5+2.3))的数据类型为___整型__,表达式的值为_0____
整型
0
14.计算下列表达式的值:
设inta=3,b=4,c=5;floatk=3.6;
(1)
a/b*c=3/4*5=0
(2)a*b%c=3*4%5=2
(3)k/a+2*b=3.6/3+2*4=9.0
(4)(int)(k+6/a*b)=(int)(3.6+6/3*4)=11
(5)sizeof(a)=4
(6)a+=a*=a+b=42
(7)c%b-a/2=0
(8)!
(a*b-12)=1
(9)(a*b-2)==c+3=0
(10)c>b>a=0
15.若有以下语句组,则输出结果是_B__
intx=0;if(x++<0)printf(“%d”,--x);printf(“%d”,x++);
A.-1
B.1
C.-1
-1
D.-10
答:
16.以下程序的输出结果是:
__D
main(){
intx=3,y=0,z=0;
if(x=y+z)printf(“****”);elseprintf(“####”);
}
A.有语法错误不能通过编译
B.输出****
C.通过编译,但不能通过连接
D.输出####
答案
17.以下程序的运行结果是:
__yis1
_Idothis_
main()
{intx=1,y=1;
switch(x)
{
case1:
switch(y)
{
case0:
printf(“yis0.\n”);break;
case1:
printf(yis1.\n”);break;
default:
printf(“yisunknown.\n”);break;
}
case2:
printf(“Idothis.\n”);
}
}
答案:
Idothis
18.C语言中,while与do—while语句的主要区别是__A__
A.do—while的循环体至少无条件执行一次。
B.do-while允许从外部跳到循环体内。
C.while循环体至少无条件执行一次。
D.while的循环控制条件比do-while的严格。
答案:
19.以下说法正确的是__D__
A.C语言中不能使用do-while语句构成的循环
B.do-while语句构成的循环必须用break语句才能退出。
C.do-while语句构成的循环,当while后圆括号内的表达式的值为非零时结束循环。
D.do-while语句构成的循环,当while后圆括号内的表达式值为零时结束循环。
答案
20.下面关于for语句的正确描述为:
(D )
A.for语句只能用于循环次数已经确定的情况
B.for语句是先执行循环体语句,再判断表达式
C.在for语句中,不能用break语句跳出循环体。
D.在for语句的循环体语句中,可以包含多条语句,但必须用大括号括起来。
答案:
21对于for(表达式1;;表达式3)可以理解为__B___
A.for(表达式1;0;表达式3)
B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)
D.for(表达式1;表达式3;表达式3)
22.以下程序执行后,输出“#”号的个数是:
___C__
main()
{inti,j;for(i=1;i<5;i++)
for(j=2;j<=i;j++)printf(“#”);
}
A.0
B.4
C.6
D.7
答案:
23.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为__B__
for(i=0,j=10;i<=j;i++,j--)k=i+j;
A.9
B.10
C.11
D.12
答案
24以下程序输出的结果是:
____0122_
main()
{
inti;
for(i=0;i<3;i++)
switch(i)
{
case1:
printf(“%d”,i);
case2:
printf(“%d”,i);
default:
printf(“%d”,i);
}
}
答案:
25.请填入一个整数,使以下程序段输出10个整数。
for(i=0;i<=__20_;printf(“%d\n”,i+=2));
答案:
26编程序打印所有的水仙花数。
所谓水仙花数是指一个3位数,其各位数字的立方和等于该数。
如:
153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
#include
main()
{inti,j,k,n;
for(i=100;i<1000;i++)
{
j=i/100;
k=i%100/10;
n=i%100%10;
if(i==j*j*j+k*k*k+n*n*n)
printf(“%d\n”,i);
}
}
27.打印出以下图案:
*
***
*****
*******
#include
main()
{inti,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)printf(““);
for(j=1;j<=2*i-1;j++)printf(“*”);
printf(“\n”);
}
}
28.以下描述正确的是__D__
A.return语句是函数中不可缺少的语句
B.函数中不可以有多条return语句
C.函数中,return后面一定要有表达式。
D.函数返回值一定要通过return语句返回。
答案
29.一个函数返回值的类型取决于__C__
A.定义函数时指定或缺省的函数类型
B.调用该函数时临时指定
C.调用该函数的主调函数的类型
D.return语句中表达式的类型
答案
30.以下叙述正确的是___B_
A.一个源程序中只能有一条文件包含命令。
B.预处理命令都必须以“#”开头
C.预处理命令必须定义在程序的头部。
D.以下是正确的宏定义:
#defineIBM-PC
答案:
B
31.以下程序的输出结果是__D__
#include“stdio.h”
intfun(inta,intb)
{
returna+b;
}
voidmain()
{
intx=2,y=5,z=8,r;
r=fun(fun(x,y),z);
printf(“%d”,r);
}
A.12
B.13
C.14
D.15
32.以下程序的输出结果是__A_
#include
intf(intn)
{if(n>2)
return(f(n-1)+f(n-2));
elsereturn2;}
voidmain()
{printf(“%d\n”,f(3));}
A.4
B.6
C.2
D.8
33.以下程序的输出结果是:
___2510=2__
voidmain()
{
inta,b,c;
a=10;b=25;c=f(a,b);
printf(“%d/%d=%d”,b,a,c);
}
f(intm,intn)
{return(n/m);}
答案:
1)以下符合C语言语法的实型常量是(B)
A)1.2E0.5
B)3.14.159E
C).5E-3
D)E15
2)给出以下定义:
charx[]="abcdefg";
chary[]={'a','b','c','d','e','f','g'};
则正确的叙述为(B)
A)
数组X和数组Y等价
B)
数组X的长度大于数组Y的长度
C)
数组x和数组Y的长度相同
D)
数组X的长度小于数组Y的长度
3)不能把字符串:
Hello!
赋给数组b的语句是(A
)
A)charb[10]={'H','e','l','l','o','!
'};
B)charb[10];strcpy(b,"Hello!
");
C)charb[10]="Hello!
";
D)charb[10];b="Hello!
";
4)若有以下说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};
charc='a',d,g;
则数值为4的表达式是(D
)
A)a[g-c]
B)a[4]
C)a['d'-'c']
D)a['d'-c]
5)设有定义:
inta,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(D
)
scanf(“%d”,pa);
scanf(“%d”,a);
scanf(“%d”,&pa);
scanf(“%d”,*pa);
6)若有以下函数调用语句
fun(a+b,(x,y),fun(n+k,d,(a,b)));
在此函数调用语句中实参的个数是(A)
A)3
B)4
C)5
D)6
7)有以下程序
voidfun(inta,intb,intc)
{a=456;b=567;c=678;}
main()
{
intx=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d.%d",x,y,z);
}
输出结果是(B
)
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
8)定义如下变题和数组:
inti;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是:
(B
)
for(i=0;i<3;i++)printf("%d",*x[2-i]);
A)159
B)741
C)357
D)369
9)以下程序运行后,输出结果是(A)
intd=1;
fun(intp)
{
intd=5;
d+=p++;
printf("%d",d);
}
main()
{
inta=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
A)84
B)99
C)95
D)44
10)下面程序的输出是(B)
A)3
B)4
C)6
D)9
fun3(intx)
{staticinta=3;
a+=x;
return(a);
}
main()
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf("%d\n",n);}
11)当调用函数时,实参是一个数组名,则向函数传送的是(C)
A)数组的长度
B)数组每一个元素的地址
C)数组的首地址
D)数组每个元素中的值
12)以下程序
voidsort(inta[],intn)
{inti,j,t;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习题 强化 练习