C语言程序设计期末考试试题及答案

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

C语言程序设计试题

(2008 /2009 学年第二学期)

一.选择题(满分30分,每题2分)

1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。

A. a=b=c+8;

B. a+=y+3;

C. c++;

D. a+b+c

2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。

A. 1

B. 2

C. –1

D. -2

3.执行下面程序:

#include "stdio.h"

void main()

int a=1,b=2,c=3;

c=(a+=a+2),(a=b,b+3);

printf(“%d,%d,%d”,a,b,c);

}

则输出结果是: A 。

A. 2,2,4

B. 4,2,3

C. 5,5,3

D. 4,2,5

4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。

A. a< >0

B. !a

C. a=0

D. a

5. for (j=0;j<11;j++);循环结束后,j的值是 B 。

A. 12

B. 11

C. 10

D. 9

6. C语言中函数返回值的类型由 D 决定的。

A. return语句中的表达式类型

B. 调用该函数的主调函数的类型

C. 调用函数时临时决定

D. 定义函数时所指定的函数类型

7. 下列说法中正确的是 B 。

A 在调用用户自定义函数时,必须对其进行声明。

B 函数可以返回一个值,也可以什么值也不返回。

C 说明函数时,必须明确参数的类型和返回值。

D 在程序设计中空函数没有什么作用。8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。

switch ( i )

{case 0: i+=1;

case 10: i+=1;

case 11: i+=1;

default: i+=1;

}

A. 10

B. 11

C. 12

D. 13

9. 下列语句中不正确的字符串赋值或初始化的是 C 。

A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'};

C. char str[10]; str= "strings";

D. char str[]= "strings";

10. 有如下程序:

#include

void main()

{

int a=1,b=0,c=0;

if (a

if (b<0) c=0;

else c++;

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

}

该程序的运行结果是 D 。

A. 3

B. 2

C. 1

D. 0

11. 在函数调用,对参数传递的说法正确的是 A 。

A 实参和形参各占一个独立的存储单元。

B 实参和形参始终共用一个相同的存储单元。

C 可以由用户指定实参和形参是否共用一个存储单元。

D 可以由系统指定实参和形参是否共用一个存储单元

12. 以下正确的程序段是 C 。

A. char str1[ ]= "12345", str2[ ]= "abcdef"; strcpy(str1, str2);

B. char str[10], *st="abcde"; strcat(str, st);

C. char str[10]= " ", *st="abcde"; strcat(str, st);

D. char *st1="12345", *st2="abcde"; strcat(st1, st2);

13. 若有定义:int *p[4];则标识符p B 。

A. 是一个指向整型变量的指针

B. 是一个指针数组名

C. 是一个指针,它指向一个含有四个整型元素的一维数组

D. 说明不合法

装订线

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

typedef union

{

long a[1];

int b[2];

char c[8];

} TEST;

TEST m;

main( )

{

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

}

A. 32

B. 16

C. 8

D. 24

15. 设有以下结构体类型:

struct st

{

char name[8];

int num;

float s[4];

}student[50];

并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件file.txt 中,以下不正确的形式是 C 。

A.fwrite(student,sizeof(struct st),50,fp);

B. fwrite(student,50*sizeof(struct st),1,fp);

C. fwrite(student,25*sizeof(struct st),25,fp);

D. for(i=0;i<50;i++)

fwrite(student+i,sizeof(struct st),1,fp);

二、填空题(满分20分,每空2

分)

1.每个C语言编写的程序必须有一个,并且只能有一个主函数。

2.设x和y均为int型变量,且x=1,y=2,则表达式3+x/y的值为 3 。

3.若有定义:int a[ ]={2,4,6,8,10,12},*p=a;则*(p+1)的值是 4 。

4.设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则y= 0x0F 。

5.测试char型变量m的最高位数据是否为1的表达式是 a&0x80 。

6.若x=2,y=-3则x&&y的结果是 1 。

7.与二进制数101等值的十进制数为 5 。

8.定义int i=1;执行语句 while(i++<5);后,i的值为 6 。

9.下面程序的运行结果为 22222 。

#include

void main()

int i=2,j=5,s;

s=i;

for (;--j;)

s=s*10+i;

printf (“%d”,s);

}

10.写出程序的执行结果: i=10,j=11

main ( )

{ int i=0,j=0;

while (i<10)

i++;

while (j++<10) ;

printf(“i=%d, j=%d\n”,i,j);

}

三、读程序写结果(满分16分,每题4分)

1. 判断下面程序的运行结果。

#include

void main()

{

int a=0,b=1;

int fun(int a,int b);

printf("%d\n",fun(a,b));

printf("%d\n",fun(a,b));

}

int fun(int m, int n)

{

static s=1;

s++;

return(s*(m+n));

}

2

程序运行的结果为: 3 。

装订线

相关文档
最新文档