扬州大学C语言0606、0706期末试题

  • 格式:doc
  • 大小:124.00 KB
  • 文档页数:16

200606

一、 单选题(每小题2分,共30分)

1. 下列表示中,不是C语言合法字符常量的是 (1) 。

A. ‘\0xff’ B. ‘\65’ C. ‘$’ D. ‘\x2a’

2. 设有如下定义:

float y=3.45678;

int x;

则下列表达式中能实现将y中数值保留至小数点后2位,小数点后第3位四舍五入的表达式是

(2) 。

A. y=(y*100+0.5)/100.0 B. x=y*100+0.5, y=x/100.0

C. y=y*100+0.5/100.0 D. y=(y/100+0.5)*100.0

3. 下列表示中,能在C语言中正确定义三个整型变量a、b、c,且能给它们均赋值5的是 (3) 。

A. int a=b=c=5; B. int a,b,c=5;

C. int a=5,b=5,c=5; D. a=b=c=5;

4. 设有数学命题“当整数a的值为奇数时,表达式的值为真,否则为假”,则下列C语言表达式中,不能满足该数学命题要求的是 (4) 。

A.a%2==1 B. !(a%2) C. !(a%2==0) D. a%2

5. 执行下列程序段后,变量i的值是 (5) 。

int i=1;

switch(i){ case 0: i+=1;

case 1: i+=1;

case 2: i+=1;

default: i+=1;

}

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

6. 在C语言中,break语句 (6) 。

A. 能用在C源程序中的任何位置 B. 只能用在循环体内

C. 只能用在循环体内或switch语句中 D. 可用作函数内的任一语句

7. 设有程序段:

int x=10;

while (x=0) x=x-1;

则下列叙述中正确的是 (7) 。

A. while循环执行10次 B. 循环是无限循环

C. 循环体语句一次也不执行 D. 循环体语句只执行一次

8. 在C语言中,数组名可作为实在参数传递给函数的形式参数,此时,作为实在参数的数组名被处理为

(8) 。

A. 该数组的长度 B. 该数组的元素个数

C. 该数组中元素的值 D. 该数组的首地址

9. 以下关于函数定义的叙述中,正确的是 (9) 。

A. 构成C语言源程序的基本单位之一是函数定义

B. 所有被调用的函数必须在调用之前定义

C. main函数的定义必须放在其他函数定义之前

D. 定义main函数时,main函数的函数体内必须至少包含一条语句或声明

10. 设有下列程序段:

struct person{char name[9]; int age; };

struct person class[10]={“John”,17, “Paul”,19, “Mary”,18, “adam”,16};

则下列选项中,能打印出字母“M”的语句是 (10) 。 A. printf(“%c\n”,class[3].name);

B. printf(“%c\n”,class[3].name[1]);

C. printf(“%c\n”,class[2].name[1])

D. printf(“%c\n”,class[2].name[0])

11. 以下能将字符串“good!”正确地存放在字符数组s中,或使指针变量s能正确地指向这个字符串的是(11) 。

A. char s[5]={‘g’, ‘o’, ‘o’, ‘d’, ‘!’};

B. char s[5];s=“good!”;

C. int s[5]=“good!”;

D. char *s;s=“good!”;

12. 若有语句:

char s1[10],s2[10]=“books”;

则下列表示中,能正确地将字符串“books”赋给数组s1的是 (12) 。

A. s1={“books”} B. strcpy(s1,s2)

C. s1=s2 D. strcpy(s2,s1)

13. 以下正确的函数说明语句是 (13) 。

A. int fun(int a, b) B. float fun(int a; int b)

C. double fun() D. int fun(char a[][])

14. 设有说明语句

char *s=“abcd”;

则执行s+=2后,*s的内容是 (14) 。

A. a B. b C. c D. cd

15. 下列对typedef的叙述中,错误的是 (15) 。

A. 用typedef可以增加新类型

B. 用typedef可以定义各种类型名,但不能用来定义变量

C. 用typedef只是将已存在的类型用一个新的标识符来代表

D. 使用typedef有利于程序的通用和移植

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

1. 一个C语言源程序是由若干个(1) 组成的;C语句的分隔符是(2) 。

2. 程序的三种基本控制结构分别是(3) 、选择和(4) 。

3. 数学表达式“bayx22”所对应的C语言表达式为(5) 。在C程序中要计算这样的表达式,通常必须包含头文件(6) 。

4. 在C语言中,声明变量的格式为:

存储类别 类型名 变量名表;

其中,变量有四种存储类别,它们分别是(7) 、register、extern和(8) 。

5. 若有定义:“int a[3][4]={{1,2,3},{4,5},{6,7,8}}; ”,则执行该说明语句后,a[1][2]=(9) ,a[2][1]=(10) 。

6. 在C程序中,若有函数定义如下:

void f()

{ static int i;

„ } 其中,void表明函数f(11) ;而i是一个(12) 整型变量。

7. 在C语言程序设计中,预处理命令行必须以(13) 开头,该命令是在 (14)

被处理的。

8. 若一结构的成员项是指向本结构类型的结构指针,则称该结构为(15) 。定义这种结构类型的一般形式如下:

struct node { int data;

(16) next;

};

9. 在C语言源程序中,函数内部说明局部变量时若缺省了存储类型,则该变量的存储类型为(17) ;定义一个函数时,若缺省该函数返回值的类型,则默认返回值为 (18) 型。

10. 设有以下说明语句:

struct student { int x;

int *y;

};

int dt[4]={1,2,3,4};

struct student a[4]={10, &dt[3], 20, &dt[2], 30, &dt[1], 40, &dt[0]}, *p=a;

则表达式++p->x的值为(19) ,表达式*(++p)->y的值为(20) 。

三、 阅读程序写出结果(每小题4分,共20分)

1. 下列程序的运行结果是 。

#include

main()

{ int s=0,n=135;

do{ s+=n%10;

n/=10;

}while(n);

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

getch();

}

2. 下列程序的运行结果是 。

#include

void f(int x,int y)

{ int t;

t=x;x=y; y=t;

}

main( )

{ int a=1,b=100;

f(a,b);

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

getch();

}

3. 以下程序运行的结果是 。

#include

#include

main() { int i;

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

printf("%3d ",f(i));

getch();

}

f(int x)

{ int y=0;

static int z=1;

y++,z++;

return(x+y+z);

}

4. 下面程序段运行的结果是__________________。

#include

#include

main()

{ int i=1,j=0,m=1,n=1;

switch(i)

{ case 1:m++;n++;

case 2:switch(++j)

{ case 1:m++;break;

case 2:n++;

}

case 3:m++;break;

case 4:n++;

}

printf("%d,%d\n",m,n);

getch();

}

5. 下面程序段运行的结果是__________________。

#include

#include