(完整版)广州大学C语言程序设计期末考试试卷含答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

参考答案

广州大学2009-2010 学年第 1 学期考试卷课程程序设计1 考试形式(闭卷,考试)

一、单项选择题(每小题 2 分,共40 分)

1.十六进制数CDE 转换成八制数是(A )

A) 6336 B) 6363 C) 7337 D) 7373

2.以下所列的C语言常量中,错误的是( B )

A) 1UL B) e0.5 C) “A”D) '\b'

3.已知字母c的ASCII码为十进制的99,下面程序的输出是( A )

int main()

{

char c=’c’;

printf ("%d,%c\n",c+2,c+3);

}

A) 101, f B) 99, f C) 101, e D) 101, 102

4.表达式5-3/2-1 的值是(B )

A) 0 B) 3 C) 2.5 D) 2

5.设x、z均为int型变量,x 的值为1, 则求值表达式z=x--, ++x 后,x, z的值分别为( C )

A) 0, 1 B) 1, 0 C) 1,1 D) 0, 0

6.设x、z均为int型变量,x 的值为1, 则求值表达式z=x--||x++ 后,x, z的值分别为( A )

A) 0, 1 B) 1, 0 C) 1,1 D) 0, 0

7.若函数f 为

int f (int x)

{

return -(x<0)+(x>0);

则f(2009), f(-2008) 和f(0) 的值分别为( C )

A) 0 1 2 B) 1 1 0 C) 1 -1 0 D) -1 1 0

8.下面函数的输出为:(B)

int x=1;

int main()

{

int x=2;

{

extern int x;

printf (“%d ”, x);

}

printf(“%d\n”, x);

}

A) 1 1 B) 1 2 B) 2 1 D) 2 2

9.下列程序的输出为:(A)

int main()

{

char *p=”hello”, *q;

for (q=p; *q; q++);

printf (“%d\n”, (int)(q-p));

}

A) 5 B) 4 C) 6 D) 不是一个确定的值

10.想要表示若x 既不能被3 整除,又不能被5 整除,则把S 的值加x,下面哪条语句

是错的?( B )

A) if ((x%3)*(x%5)) S+=x;

B) if ((x%3==0)+(x%5==0)-(x%15==0)) S+=x;

C) if ((x%3)==0||!(x%5)); else S+=x;

D) if ((x%3)!=0) if ((x%5)!=0) S+=x;

11.下列程序段的输出结果是( C )

void fun(int * x, int * y)

{

printf("%d %d ", *x, *y);

*x=3, *y=4;

}

int main()

int x=1,y=2;

fun(&x,&y);

printf("%d %d\n",x, y);

}

A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2

12.若有定义: float x;int a,b; 则正确的switch 语句是( C )

A) B)

switch(x) switch(x)

{ {

case 1.0:printf("*\n"); case 1,2:printf("*\n");

case 2.0:printf("**\n"); case 3:printf("**\n");

} }

C) D)

switch (a+b) switch (a+b);

{ {

case 1:printf("\n"); case 1:printf("*\n");

case 1+2:printf("**\n"); case (int)x: printf("**\n");

} }

13.以下程序的输出结果是( C )

int main()

{

int i, x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)

printf("%d,",x[2-i][i]);

}

A) 9,5,3 B) 7,4,3 C) 7,5,3 D)9,6,1

14.以下程序输出的结果是(D )

int main()

{

char w[][5]={"ABCD","EFGH","IJKL","MNOP"};

int k;

for (k=1; k<3; k++)

printf("%s\n", w[k]+k);

}

A) B) C) D)

ABCD JKL EFG FGH

FGH OP JK KL

15.以下程序的输出结果是(B )

#define Zero(X) X-X

int main()

{

printf("%d\n",2*Zero(2-3));

}

A) -6 B) -4 C) -2 D) -0

16.若有代码

struct point {int x; int y;} pt, *p;

p = & pt;

现要输出pt 的成员x,错误的语句为: ( D )

A) printf (“%d\n”, p->x); B) printf (“%d\n”, p[0].x);

C) printf (“%d\n”, *p.x); D) printf (“%d\n”, *p->x);

17.下列代码的输出为:(D)

printf (“%s\n”, “HelloWorld”+4);

A) Hello B) HelloWorld C) World D) oWorld

18.下列语句的输出结果是( B )

putchar (putchar (‘a’))

A) a B) aa C) A D) ab

19.下面代码的输出是( B )

char foo[]=“Hello World”;

printf (“%d %d”, strlen(foo), sizeof(foo));

A) 11 11 B) 11 12 C) 12 11 D) 12 12

20.有如下代码

main ()

{

___ int x=1;

printf (“%d\n”, int);

}

横线出不可填入的关键词为( C )

A) auto B) register

C) extern D) static

二、填空题(每空 2 分,共20 分)

1.若想通过以下输入语句给a赋于1,给b赋于2,

int a,b;

scanf("%d%d”,&a,&b);

相关文档
最新文档