公告:本站提供编程开发方面的技术交流与分享,打造最佳教程网,希望能为您排忧解难!

C语言教程C语言试题库: 试卷三

C语言试题库: 试卷三

更新时间:2013-03-16 22:50:35 |

试卷三

一、单项选择题 (本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填在题后的括号内。错选、多选或未选均无分。
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

二、填空题 (本大题共5小题,每空2分,共20分)
请在每小题的空格上填上正确答案。错填、不填均无分。
11.在C语言中,单目运算符的结合方向(运算方向)是_____________;唯一的一个三目运算符是_____________。
12.字符串"A\\B"的内容是_____________,存储需要的字节数是_____________。
13.设int a[10],b[3][3];数组元素a[5]和b[1][2]分别用指针表示的形式是_____________和_____________。
14.编译预处理的三种形式除宏定义外,还有_____________和_____________。
15.文件操作方式"w"和"rb+"的含义分别是__________________________和__________________________。

三、程序分析题 (本大题共7小题,每小题5分,共35分)
阅读下列程序,将输出结果分别写到各题右侧的空白处。
16.
main()
{
int a=3,b=9,c=2;
if(a if(a 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);
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>PROG 2008 OLYMPIC BEIJING <回车>

四、程序填空题 (本大题共2小题,每空3分,共15分)
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

五、程序设计题 (本大题共2小题,每小题10分,共20分)
写出下列问题的程序。
25.输入十个整数,计算出平均值(aver),找出其中最大者(max)和最小者(min)并将三者输出。
26.将十个实型数输入数组(float n[10];)逆序存放后再输出。

最佳教程网

最大的技术交流平台 www.goodxyx.com© CopyRight 2011-2013, All Rights Reserved

浙ICP备11033019号