广州大学C语言程序设计期末考试试卷含答案

更新时间:2023-05-07 10:23:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

院领导

参考答案

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

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

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

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

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

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

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

6.int main()

7.{

8.char c=’c’;

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

10.}

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

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

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

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

为( C )

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

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

为( A )

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

18.若函数 f 为

19.int f (int x)

页脚内容9

院领导

20.{

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

22.}

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

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

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

26.int x=1;

27.int main()

28.{

29.int x=2;

30. {

31. extern int x;

32. printf (“%d ”, x);

33. }

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

35.}

36.A) 1 1 B) 1 2 B) 2 1 D) 2 2

37.

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

39.int main()

40.{

41.char *p=”hello”, *q;

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

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

44.}

45.

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

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

是错的?( B )

48.

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

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

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

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

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

53.

54.void fun(int * x, int * y)

55.{

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

57. *x=3, *y=4;

58.}

页脚内容9

院领导

59.

60.int main()

61.{

62.int x=1,y=2;

63. fun(&x,&y);

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

65.}

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

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

68.A) B)

69.switch(x) switch(x)

70.{ {

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

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

73.} }

74.C) D)

75.switch (a+b) switch (a+b);

76.{ {

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

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

79.} }

80.

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

82.int main()

83.{

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

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

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

87.}

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

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

90.int main()

91.{

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

93.int k;

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

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

96.}

97.A) B) C) D)

98.ABCD JKL EFG FGH

99.FGH OP JK KL

100.

页脚内容9

院领导

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

102.#define Zero(X) X-X

103.int main()

104.{

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

106.}

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

108.若有代码

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

110.p = & pt;

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

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

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

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

116.

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

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

119.putchar (putchar (‘a’))

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

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

122.char foo[]=“Hello World”;

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

124.A) 11 11 B) 11 12 C) 12 11 D) 12 12

125.有如下代码

126.

127.main ()

128.{

129. ___ int x=1;

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

131.}

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

A) auto B) register

C) extern D) static

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

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

页脚内容9

院领导

2.int a,b;

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

4.则输入数据的形式应该是____【1】1 2

5.写出能正确表示a是正偶数的关系表达式_____【2】(a>0) && ((a%2)==0)

6.x 的类型为 doule, y 的类型为 float,用一个 printf 语句输出这两个值:

7.____【3】printf (“%f %f\n”, x, y);____

8.若有如下代码

9.double s;

10.double a[4][4] = {{1,2,3,4},{2,3,4,1}, {3,4,1,2},{4,1,2,3}};

11.s = det4 (a);

12.推测函数 det4 的原型

13.____【4】double det4 (int [][4])

14.函数 stup 逆序输出一个字符串,并返回打印的字符总数,请补充空白部分。

15.int stup (const char *s)

16.{

17.int n=0;

18.if (____【5】*s!=0 _____)

19. {

20. n=1+stup(s+1);

21. _____【6】putchar(*s);

22. }

23.return _____【7】n;

24.}

25.

26.以下程序的输出为_____【8】1 3 6 10 15

27.int acc(int n)

28.{

29. static int f;

30. f=f+n;

31. return f;

32.}

33.main()

34.{

35. int i;

36. for(i=1;i<=5;i++)

37. printf("%d ",acc(i));

38.}

39.

40.若 z, i 均为 int 类型,i 的当前值为 1,则对表达式 z=i++, i++, i++ 求值后,z

页脚内容9

院领导

的值为 _____【9】1

41.给指针p申请四个long 型动态内存单元,请填空

42.p=【10】malloc(sizeof(long)*4); ;

三、程序阅读题(每题4分,共20分)

1.写出下列程序的运行结果: 41

int f(int x, int y, int z)

{

if ((x>z) && (y>z))

return x*x+y*y;

else

return f(y, z, x);

}

int main()

{

int n;

n = f(3,4,5);

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

}

2.以下程序的运行结果是:Hello World

Hello World

void f (char *s, const char *t)

{

while (*s++=*t++);

}

int main()

{

char a[1024];

char b[]=”Hello World”;

f(a,b);

printf (“%s\n”, b);

printf (“%s\n”, a);

}

3.写出程序输出:45

页脚内容9

院领导

long f(long n)

{

if (n!=0)

return (n%10 + f(n/10));

else

return 0;

}

int main()

{

long n=1234567890;

printf(“%ld\n”,f (n));

}

4.以下程序的运行结果是:15

int f (int (*p) [3])

{

int s=0, i;

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

s+=(*(p+i))[i];

return s;

}

int main( )

{

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

printf(“%d\n”, f(a));

}

5.下面程序的运行结果是:

int main( )

{

char *str[]={“Pascal”,”C language”,”Dbase”,”Cobol”};

char **p;

int k;

p=str;

for (k=3; k>=0; k--)

printf(“%s\n”, *(p++));

}

四、编程题(共20分)

页脚内容9

本文来源:https://www.bwwdw.com/article/ivde.html

Top