c语言笔试

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

2009秋第二部分C语言程序设计

一、选择题(用答题卡答题,答案依次填在21~30答题号内,共10分)

21. 以下叙述中正确的是(21) 。

A.C语言系统以函数为单位编译源程序

B.main函数必须放在程序开始

C.用户定义的函数可以被一个或多个函数调用任意多次

D.在一个函数体内可以定义另外一个函数

22.以下选项中,不能用作C语言标识符的是(22)。

A. print

B. FOR

C.&a

D. _00

23. 已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是

(23) 。

A. printf("%d",32768);

B. printf("%ld",32768);

C. printf("%f",32768);

D. printf("%c",32768);

24. 已知有声明“int a=3,b=4,c=5; ”,以下表达式中值为0的是(24)。

A. a&&b

B. a<=b

C. a||b&&c

D. !(!c||1)

25. 已知有声明“long x,y;”且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x十进制表示中的最高位,

用剩下的数字组成一个新的整数并保存到y中,以下表达式中能正确实现这一功能的是(25) 。

A. y=x/(10*(n-1))

B. y=x%(10*(n-1))

C. y=x%(long)pow(10,n-1)

D. y=x%(10∧(n-1))

26.已知有声明“intx,y;”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则以下程序段中错误

的是(26)。

A.if(x>=0)y=1;else y=-1;

B. y=x>=0?1:-1;

C. switch()

D. switch(x-abs(x))

{ case x>=0: y=1; break; { case 0: y=1; break;

default: y=-1; default: y=-1;

} }

27.已知有声明“int m[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误的是(27) 。

A. m[++i]

B. m[5]

C. m[2*2]

D. m[m[4]]

28.已知有声明“char s[80];”,若需要将键盘输入的一个不含空格的字符串保存到s数组中,则下列语句中正确的是(28)。

A. scanf("%s",s);

B. scanf("%s",s[0]);

C. s=gets();

D. s=getchar();

29.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是(29) 。

A. 实参和其对应的形参占用同一存储单元

B. 形参不占用存储单元

C. 同名的实参和形参占用同一存储单元

D. 形参和实参占用不同的存储单元

30. 已知有声明“inti,a[10],*p=a;”,现需要将1~10保存到a[0]~a[9]中,以下程序段中不能实现这一功能的是

(30) 。

A. for(i=0;i<10;i++)a[i]=i+1;

B. for(i=0;i<10;i++)p[i]=i+1;

C. i=1;while(p

D. i=1;while(p

二、填空题(将答案填写在答题纸的相应答题号内,每个答案只占一行,共30分)

第4页C语言

第5页C 语言

● 基本概念

1.C 语言中有!、&&、||三个逻辑运算符,其中优先级高于算术运算符的是 (1) 。

2.若有声明“int r=2;”,则执行语句“printf("%d",sizeof(2*3.14*r));”时输出 (2) 。

3.数学式bc a

x 4 所对应的C 语言表达式为(3)。

4.若有以下声明:

char *p="%d,%d\n"; int a=1,b=2;

则执行语句“printf(p,a,b);”时输出 (4) 。

5.声明局部变量时若缺省存储类别,该变量的存储类别是 (5) 。

● 阅读程序

6.以下程序运行时输出到屏幕的结果是 (6) 。

#include

void main()

{ FILE *fp;

intk,n,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w");

fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);

fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);

fclose(fp);

fp=fopen("d2.dat","r");

fscanf(fp,"%d%d",&k,&n);

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

}

7.以下程序运行时输出到屏幕的结果是 (7) 。

#include

void main()

{ inti=1,m=0;

switch(i)

{ case 1:

case 2: m++;

case 3: m++;

}

printf("%d",m);

}

8. 以下程序运行时输出到屏幕的结果中第一行是 (8) ,第二行是 (9) 。

#include

void fun(int a[],int b[],int *x)

{inti,j=0;

相关文档
最新文档