2010春C考试试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

}

相关文档
最新文档