2010春C考试试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010春C考试试题
2010春第二部分C语言程序设计
一、选择题(用答题卡答题,答案依次填在21~30答题号内,共l0分)
21.C语言规定,在一个源程序中main函数的位置_____(21)_____ 。
A.必须在最开始B.必须在最后
C.必须在预处理命令的后面D.可以在其他函数之前或之后
22.以下选项中,______(22)______是C语言关键字
A.printf B.include C.fun D.default
23.已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为__(23)___。
A.0 B.3 C.3.5 D.4
24.设指针变量占2个字节的内存空间,若有声明"char *p="123";int c;",则执行语句"c=sizeof(p);"后,c的值为__(24)___
A.1 B.2 C.3 D.4
25.已知有声明"int a=3,b=4;",下列表达式中合法的是(25)
A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++
26.已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",则以下语句中能够实现此功能的是(26)。
A.s="Good"; B.s[20l="Good";
C.strcat(s,"Good"); D.strcpy(s,"Good");
27.已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8),{9,10,11,12},{13,14,15,16)};",若需要引用值为12的数组元素,则下列选项中错误的是( 27 ) 。
A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3]
28.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为( 28 ) 。
A.3 B.3.0 C.3.89 D.4.0
29.已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为( 29 ) A.3,1 B.15,12 C.15,1 D.3,12
30.下列叙述中,正确的是_____(30)______ 。
A.C语言中的文件是流式文件,因此只能顺序存取文件中的数据。
B.调用fopen函数时若用"r"或"r+"模式打开一个文件,该文件必须在指定存储位置或默认存储位置处存在。C.当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到该文件中的第1个数据
D.无论以何种模式打开一个已存在的文件,在进行了写操作后,原有文件中的全部数据必定被覆盖
二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)
●基本概念
1.数学式所对应的c语言表达式为pow(x, __(1)__)。
2.已知有声明"char ch='g';",则表达式ch=ch-'a'+'A'的值为字符(2) 的编码。
3.在C语言系统中,如果一个变量能正确存储的数据范围为整数-32768~32767,则该变量在内存中占_____(3)_____个字节。'
4.已知有声明"int a[3][2]={{1,2),{3,4},{5,6}},*p=a[0];",则执行语句"printf("%d\n",*(p+4));"后的输出结果为__(4)___ 。
5.已知有声明和语句"int a;scanf("a=%d",&a);",欲从键盘上输入数据使a中的值为3,则正确的输入应是_____(5)_____ 。
•阅读程序
6.以下程序运行时输出到屏幕的结果为(6) 。
#include
#define MAX(A,B) A>B?2*A:2*B
void main()
{int a=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
printf("%d\n",t);
}
7.以下程序运行时输出到屏幕的结果是(7) 。
#include
void main()
{int a=1,b=2;
a+=b;
b=a-b;
a-=b;
printf("%d,%d\n",a,b);
}
8.以下程序运行时输出到屏幕的结果是(8) 。
#include
void swap(int a,int b)
{int t;
if(a>b)t=a,a=b,b=t;
}
void main()
{int x=13,y=11,z=12;
if(x>y)swap(x,y);
if(x>z)swap(x,z);
if(y>z)swap(y,z);
printf("%d\t%d\t%d\n",x,y,z);
}
9•以下程序运行时输出到屏幕的结果第一行是(9) ,第二行是(10) ,第三行是(11) 。#include
int g(int x,int y)
{ return x+y;
}
int f(int x,int y)
{
{static int x=2;
if(y>2)
{ x=x*x;
y=x;
}
else y=x+1;
}
return x+y;
}
void main()
{int a=3;
printf("%d\n",g(a,2));
printf("%d\n",f(a,3));
printf("%d\n",f(a,2));
}
10.以下程序运行时输出到屏幕的结果是(12) 。
#include
void fun(int m,int n)
{if(m>=n)
printf("%d",m);
else
fun(m+1,n);
printf("%d",m);
}
void main()
{ fun(1,2); }
11.以下程序运行时输出到屏幕的结果第二行是(13) ,第四行是(14) 。
#include
#define N 6
void main()
{int i,j,a[N+1][N+1];
for(i=1;i<=N;i++)
{a[i][i]=1;a[i][1]=1;}
for(i=3;i<=N;i++)
for(j=2;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<=N;i++)
{ for(j=1;j<=i;j++)
printf("M",a[i][j]);
printf("\n");
}
}
12.以下程序运行时输出到屏幕的结果第一行是(15) ,第二行是(16) 。
#include
void fun(char *p1,char *p2);
void main()
{int i; char a[]="54321";
puts(a+2);
fun(a,a+4);
puts(a);
}