C语言程序设计试题十五
《C语言程序设计》试题十五
一、填空与选择
1. C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
2. C语言的表达式与语句的区别在于___________________________________。
3. C语句_____________ (有、没有)输入、输出语句。
4. 结构化程序的编写有_______________________________三种程序结构。
5. C语言中,变量的存储类别共有四种,即时___________________和寄存器型。
6. 表达式10/3*9%10/2的值是___________________。
7. 设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________basic语言if语句。
8. 设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________。
9. 变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
_________________________________________________________________
10.C语言调用函数中,参数的虚实结合是_________________
A. 传值 B. 传址 C. 不分
11. 逻辑运算符“&&、||、 !”中是短路运算符号是____________________
12. C语言是由________________基本单位组成的。
A.过程 B.语句 C.函数 D.程序
13.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________
A.算术表达式 B.逻辑表达式 C.关系表达式 D.字符表达式
14.若进入TC集成环境后,运行(RUN)源程序系统提示包含文件(Include)或库文件(Lib)
无法定义时,应修改TC菜单中的哪一项中的哪个子菜单项?
A.File\Change B. File\Directory
C. Option\Directories D.TC系统出故障了,应重新安装TC环境。
15.下面几种说法中哪个是正确的?_____________
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都正确。
16.定义结构体的关键字是_______________
A. union B. enum C.struct D.typedef
17.定义联合体的关键字是___________________
18.链表的首指针能根据程序的需要进行移动读取链表中的某项内容,即链表可以没有首指针吗?
A.当然可以 B.不可以 C.无所谓 D.最好不要移动首指针
19.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是____
A. <类型标识符> (*a)[3] B. <类型标识符> *a[2]
C. <类型标识符> *a[3] D.以上写法都不对。
20.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?_____
A.11 B.12 C.14 D.15
21.设整型变量a为5,使b不为2的表达式是___________
A. b=a/2 B. b=6-(--a) C. b=a%2 D.b=a>3?2:1
22.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________
A.0 B.2 C.-4 D. 4
23.设A,B均为整型变量,下列表达式中不是赋值表达式的是__________
A. A=b+3,b+5,--b B. A=4*5; C. A=++A-B D.a=b=5
24.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________
A. 3, 3, 2 B. 3,2,2 C.3,2,3 D.2,3,2
25.下列对数组操作不正确的语句是_________
A. int a[5]; B.char b[ ]={‘h’,’e’,’l’,’l’,’o’};
C. int a[ ]={2,3,4,5}; D. char b[3 ][ ]={1,2,3,4,5,6};
26.设A为存放短整型的一维数组,如果A的首地址为P,那么A 中第I个元素的地址为_______________
A. P+I*2 B. P+(I-1)*2 C. P+(I-1) D. P+I
27.如果X=5,执行语句X*=X+=X*3后,则X的值为__________
A.100 B. 400 C. 450 D. 900
28.下列常量中哪个是不合法的_________________
A.2e32.6 B. 0.2e-5 C. “basic” D. 0x4b00
29.下列标识符错误的是_______
A. x1y B._123 C. 2ab D. _ab
30. c语言中int型数-8在内存中的存储形式为_____
二、读程序
1.写出下列程序段的输出结果:
main()
{int x=5;
int y=10;
printf("%d\n",x++);
printf("%d\n",++y); }
2.写出下列程序的输出结果:
main()
{int x,y,z;
x=y=z=-1;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
++y&&++x||++z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);
x=y=z=-1;
++x||y++&&z;
printf("x=%d\ty=%d\tz=%d\n",x,y,z);}
3.下面程序的输出结果是什么?
#include "stdio.h"
main()
{ int x=3;
switch(x)
{ case 1:
case 2:printf("x<3\n");
case 3:printf("x=3\n");
case 4:
case 5:printf("x>3\n");
default:printf("x unknow\n"); } }
4.标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
int p=1,q=5;
float f1(int a)
{int b,c;
char ch;
… 局部变量ch在此范围内有效
}
char c1;
char f2(int x,int y)
{int i,j;
5.根据源程序,写出相应的数学表达式
#include “stdio.h”
main()
{int x,y;
scanf(“%d”,&x);
if (x<0) y= -1;
else if (x= = 0)
y=0;
else y=1;
printf(“x=%d,y=%d\n”,x,y); }
6.分析下列程序所完成的功能。
main()
{int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;
scanf("%d,%d,%d",pa,pb,pc);
if (*pa>*pb)
p=pa,pa=pb,pb=p;
if (*pa>*pc)
p=pa,pa=pc,pc=p;
if (*pb>*pc)
p=pb,pb=pc,pc=p;
printf("%d<=%d<=%d",*pa,*pb,*pc); }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论