- 论坛徽章:
- 0
|
综合练习题(一)
一、 单项选择题
1.正确的自定义标识符是
A.a=2 B.a+b
C.name D.default
2.错误的转义字符是
A.'\091' B.'\\'
C.'\0' D.'\''
3.设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b--后,a,b和c的值分别是
A.2,1,2 B.2,0,3
C.2,2,3 D.2,1,3
4.在C语言中,错误的常数是
A.1E+0.0 B.5.
C.0xaf D.0L
5.下面运算符优先级最高的是
A.<= B.=
C.% D.&&
6.若数组名作实参而指针变量作形参,函数调用实参传给形参的是
A.数组的长度 B.数组第一个元素的值
C.数组所有元素的值 D.数组第一个元素的地址
7.变量的指针含意是指变量的
A.值 B.地址
C.存储 D.名字
8.设int k;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行的次数分别是
A.无限和0 B.0和无限
C.都是无限 D.都是0
9.某文件中定义的静态全局变量(或称静态外部变量)其作用域是
A.只限某个函数 B.本文件
C.跨文件 D.不限制作用域
10.设struct {int a; char b; } Q, *p=&Q;错误的表达式是
A.Q.a B.(*p),b
C.p->a D.*p.b
二、填空题 (请在每小题的空格上填上正确答案)
11.在C语言中,单目运算符的结合方向(运算方向)是_____________;唯一的一个三目运算符是_____________。
12.字符串"A\\B"的内容是_____________,存储需要的字节数是_____________。
13.设int a[10],b[3][3];数组元素a[5]和b[1][2]分别用指针表示的形式是_____________和_____________。
14.编译预处理的三种形式除宏定义外,还有_____________和_____________。
15.文件操作方式"w"和"rb+"的含义分别是__________________________和__________________________。
三、程序分析题 (阅读下列程序,写出输出结果)
16.
main( )
{int a=3,b=9,c=2;
if(a<b)a=b;
if(a<c)a=c;
printf("%5d%5d%5d\n",a,b,c);
}
17.
void change(int *x,int y)
{int t;
t=*x;*x=y;y=t;
}
main( )
{int a=3,b=5;
change(&a,b);
printf("a=%d,b=%d\n",a,b);
}
18.
main( )
{int j;
for(j=4;j>=2;j--)
switch(j)
{case 0: printf("%4s","ABC" ;
case 1: printf("%4s","DEF" ;
case 2: printf("%4s","GHI" ;break
case 3: printf("%4s","JKL" ;
default: printf("%4s","MNO" ;
}
printf("\n" ;
}
19.
main( )
{int j,a[6]={1,2}};
for(j=3;j<6;j++)
a[j]=a[j/2]+a[j%3]-a[j-2];
for(j=0;j<6;j++)
printf("%5d",a[i]);
printf("\n" ;
}
20.
int a=10;
int f(int a)
{int b=0;static int c=3;
a++;++c;++b;
return a+b+c;
}
main( )
{int i;
for(i=0;i<2;i++)print("%5d",f(a));
printf("\n" ;
}
21.
#define N 2
#define M N+1
#define NUM 2*M+1
int fib(int n)
{
return n<3?2:fib(n-1)+fib(n-2);
}
main( )
{
printf("%5d%5d\n",NUM,fib(5));
}
22.假设在DOS提示符下显示源程序如下(PROG.exe程序也在C盘中):
C>type PROC.c
main(int argc,char * argv[])
{while(--argc>0)
printf("%s",argv[argc]);
printf("\n" ;
}
写出执行下列命令后的输出结果
C> ROG 2008 OLYMPIC BEIJING <回车>
四、程序填空题
23.任意输入三条边(a,b,c)后,若能构成三角形且为等腰、等边和直角,则分别输出DY、DB和ZJ,若不能构成三角形则输出NO。
main( )
{ float a,b,c,a2,b2,c2
scanf("%f%f%f%,&a,&b,&c);
printf("%5.1f,%5.1f,%5.1f",a,b,c);
if(a+b>c&&b+c>a&&a+c>b)
{
if(____________________________________)printf("DY" ;
if(____________________________________)printf("DB");
a2=a*a;b2=b*b;c2=c*c;
if(____________________________________)printf("ZJ");
printf("\n");
}
else printf("NO\n");
}
24.输出下列图形。
1 2 3 4 5 6 7 8 9 main( )
2 3 4 5 6 7 8 9 int I,J;
3 4 5 6 7 8 9 for(I=1;I<=_________;I++)
4 5 6 7 8 9 for(J=_________;J<=9;J++)printf("%2d",J);
5 6 7 8 9 printf("\n");
6 7 8 9
7 8 9
8 9
9
五、程序设计题 ( 写出下列问题的程序)
。
25.输入十个整数,计算出平均值(aver),找出其中最大者(max)和最小者(min)并将三者输出。
26.将十个实型数输入数组(float n[10];)逆序存放后再输出。 |
|