2011-C语言期末考试试卷-A-new(ans)

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

北京师范大学2010~2011学年第 2 学期期末考试试卷(A卷)

课程名称:程序设计语言(C语言)任课教师姓名:于福生刘玉铭卷面总分: 100 分考试时长: 100 分钟考试类别:闭卷

院(系):专业:年级:

姓名:学号:

阅卷教师(签字):

一, 单项选择题(20×2=40分)

(1)能够作为标识符的一组字符序列是【 B 】

A)int define WORD

B)a_b3 _123 IF C)For -abc Case

D)2a Do A&B

(2)能正确表示逻辑关系“a ≥ 10或a ≤ 0”的C语言表达式是【D 】

A) a >= 10 or a <= 0

B) a >= 10 | a <= 0 C) a >= 10 && a <= 0

D) a >= 10‖a <= 0

(3)已知int num=7, sum=7;则表达式sum=num++, sum++,++num;求值后变量sum的值是【 B 】

A)7

B)8 C)9

D)10

(4)对于程序段

int n=0, p;

do{

scanf("%d", &p);n++;

}while( p!=12345 && n<3);

其中 do-while 循环的结束条件是【 D 】

A)p的值不等于12345 并且n的值小于3

B)p的值等于12345 并且n的值大于等3 C)p的值不等于12345 或 n的值小于3

D)p的值等于12345或n的值大于等于3

(5)下面定义不正确的是【 A 】

A)char a[3]="yes";

B)char *a="yes"; C)char a[3]={ 'y', 'e', 's' };

D)char a[]=”yes”;

(6)如果有说明:int n=2, *p=&n, *q=p;则以下非法的赋值语句是【 D 】

A)p = q;

B)*p = *q; C)n = *q;

D)p = n;

(7)二维数组float s[3][4]中元素s[2][3]的正确表示是【 A 】

A)*(*(s+2) +3)

B)*(s+2) +3 C)s[2,3]

D)s[3][2]

(8)设有struct aa{int a; float x;}s[10],则不能将s写入二进制文件f的语句是【 A 】

A)fwrite(&s,10,6,f);

B)fwrite(s,60,1,f); C)fwrite(s,10,6,f);

D)fwrite(s,1,60,f);

(9)设FILE *f;且f指向一个新打开的文本文件,则执行语句fprintf(f,”%d”, 12345);

后f所指向的文件在大小上增加的字节数是【 C 】

A)2;

B)4; C)5;

D)10;

(10)函数 int fun(int *p) { return *p; } 的返回值是【 C 】

A)不确定的值

B)形参p中存放的值C)形参p所指向的存储单元中的值

D)形参p的地址值

(11)与语句 k = a > b ? (b > c ? 1 : 0 ) : 0; 功能等价的程序段是【 A 】

A)if(a>b&&b>c) k=1; else k=0;

B)if (a>b||b>c) k=1; C)if (a<=b) k=0;

else if(b<=c) k=1;else k=0;

D)if(a>b) k=1;

else if(b>c) k=1;

(12)设有说明:struct AA{ char a, *b, c[10] } s;调用函数scanf的正确的实在参数为【 C 】

A)( "%c%c%s", &s.a, &s.b, &s.c )

B)( "%c%c%s", s.a, s.b, s.c ) C)( "%c%c%s", &s.a, s.b, s.c )

D)( "%c%c%c", &s.a, s.b, s.c[1] )

(13)设有char c; 则以下声明不正确的是【 B 】

A)char *s=&c;

B)char *s=‟a‟;C)char *s=”abc”;

D)char *s=”A”;

(14)定义int *p[4]中p的含义是【 B 】

A)指向整型变量的指针

B)指针数组名C)指向含4个分量的数组的指针

D)定义不合法

(15)设有说明:char *lag[]={"Fortran","Basic","Pascal","Java","C"};则表达式: strcmp(++lag[1],++lag[3])比较的是【 A 】

A)字符串asic和字符串ava B)字符串Basic和字符串Java

C) 字符B 和字符J D) 字符串Fortran 和字符串Pascal

(16) 设有说明:int a=1,b=2,k; 对表达式k=a++==3/2||(b-=a--&&3%2)求值后变量

a,b 的值分别是【 C 】

A) 1,2 B) 1,1 C) 2,2 D) 2,1

(17) 设有说明:int a[3]={1,2}, 则sizeof(a)的值是【 D 】 A) 2 B) 3 C) 4 D) 6

(18) 设有函数:void sub(int k){if(k%10!=k*k%10) sub(k-1); printf(“%d,” k);} 则调用

sub(19)的执行结果为【A 】

A) 16,17,18,19, B) 16, C) 19,18,17,16, D) 18,17,16,

(19) 程序段:char c=‟a‟, s[10]=”a1b2c3d4”,*p=s; switch(c) {default: putchar(*p++); case …c‟:

putchar(*p++); case …d‟:putchar(*++p); };则执行结果为是【C 】

A) a B) 1 C) a12 D) a1b

(20) 以下叙述正确的是【 B 】

A) C 语言在对逻辑表达式求值时执行其中的每个运算; B) C 语言函数中的变量可以在诞生后一直存在; C) C 语言的函数可以相互调用;

D) C 语言中,else 总是与离它最近的if 进行配对;

三、 编程题(任选两题2×15=30分)

1. 编程计算:1

41241....71613121---++-+-=

n n s ,直到最后一项的绝对值小于某个给定的充分小的正数m 。

2.编程输出1~n (n 由用户输入)之间所有包含3的素数(比如3,13,31等)。

3.输入一行字符,分别统计并输出其中元音字母、非元音字母、数字,其它字符出现的次数。

相关文档
最新文档