文档库 最新最全的文档下载
当前位置:文档库 › c语言b卷

c语言b卷

c语言b卷
c语言b卷

命题人:李寒松审核人:审核日期:

2009至2010学年第2学期期末考核题卷

计算机系c语言程序设计课程(闭卷)(A卷)

班级:姓名:学号:

项目一二三四五六总分

得分

评分人

提醒考生注意:考试作弊会导致严重后果!

填空题答案填写表:

第1题第2题第3题第4题第5题

选择的答案填写表:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

一:填空(每小题2分,共10分)

1):若有a=2,b=4,c=3,则表达式a>=b&&b>c的值是 0 。

2):打开文件的函数是 fopen() 。

3):若有:int a=3,*b=&a;则a=(*b)*a,则a的值是 9 。

4):已知字母a的ASCII码为 097 。

5):2&3=_____2______。

二.选择题 (每小题2分,共40分)

1).设int b[ ]={1,2,3,4},y,*p=b;

则执行语句y=*p++;之后,变量y的值为( A )

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

2).下列赋值语句中正确的是:d

int a[3] = { 1, 2, 3 }, *p;

A) p=&a; B) **p=a; C) *(a++)=a; D) a[1]=5;

3).已知字母A的ASCII码为十进制65,下面程序段的运行结果为( a )。

char ch1,ch2;

ch1= ‘A’+5-3; ch2= ‘A’+6-3;

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

A)67, D B)B, C C)C, D D)不确定值

4).对于以下结构定义:

struct {

int len;

} p1,*p;

P=&p1;则引用错误的是( d )。

A) p->len B) p1.len C) (*p).len D) p1->len

5).设实型变量f1,f2,f3,f4的值均为3,整型变量m1,m2的值均为2。表达式(m1=(f1>=f2))&&(m2=(f3<=f4));的值是( b )。

A). 出错 B).1 C).2 D). 0

6).循环 for(i=1,j=6; i!=j; ) s=i+j; 循环体将执行

A) 2次 B) 3次 C) 4次 D) 以上均不是

7).1<<2的结果是:( c )。

A) 8 B)9 C)4 D)5

8). 以下if语句书写正确的是( c )。

A)if(x=0;) B)if(x>0)

printf(”%f”,x); {x=x+1; printf(”%f”,x);}

else printf(”%f”,-x); else printf(”%f”,-x);

C)if(x>0); D)if(x>0)

{x=x+1; printf(”%f”,x);} {x=x+1; printf(”%f”,x) }

else printf(”%f”,-x); else printf(”%f”,-x);

9).若变量j已正确定义,表达式 (j=3, j++) 的值是( a )。

A)3 B) 4 C)5 D)0

10).数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_b____的值为6。

A、a[3][2]

B、a[2][1]

C、a[1][2]

D、a[2][3]

11).要调用数学函数时,在#include命令行中应包含( c )。

A)”stdio.h” B)”string.h” C)”math.h” D)”ctype.h”

12). 下列表达式中,与k=n++完全等价的是(b)

A). n=n+1,k=n; B). k=n,n=n+1; C).k=++n; D).k+=n+2;

13) 若有以下说明语句:

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

则a[0]+a[1]正确的是( c )。

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

14).对于如下说明,语法和语义都正确的赋值是( c )。

int c, *s, a[]={1, 3, 5};

A)c=*s; B)c[0]=a++; C)s=&a[1]; D)c=a;

15).关闭文件的函数是( a )

A)fclose(); B)fgets(); C)fscanf(); D)fwrite()

16)在一个源文件中定义的全局变量的作用域为( c )。

A).本文件的全部范围 B).本程序的全部范围

C). 从定义该变量开始至本文件结束 D). 本函数的全部范围

17)C语言中各种基本数据类型的存储空间长度排列为( a )。

A). char≤int≤long≤float≤double B).double≤float≤long≤int≤char

C). char≤long≤int≤float≤double D).float≤int≤long≤char≤double

18)下面程序的输出是( d )。

main( )

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

printf("%d\n",*(p+3));

}

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

19)若有以下的说明,则对初值中整数2的引用方式为( b )。

static struct

{char ch;

int i;

double x;

}arr[3]={{'a',3,45},{'b',2,7.98},{'c',5,1.93}};

A).arr[1].ch B).arr[1].i C).arr.i D).arr[2].I

20)当调用函数时,实参是一个数组名,则向函数传递的是( c )。

A)数组的长度 B)数组每一个元素的地址

C)数组的首地址D)数组每个元素中的值

三、写出下面程序段执行后的结果,注意输出格式。(每小题5分共20分)

1)若输入 3 1 2 3 <回车> ,

则以下程序的输出结果是______。

#include "stdio.h"

void main()

{ int i, j, n, a[10];

scanf("%d", &n);

for (i=0; i

scanf("%d",&a[i]);

for (i=0; i

for (j=0; j

printf("%d, ", a[(i+j)%n]);

}

2) main( )

{ int i;

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

switch(i%5)

{ case 0: printf(“*”) ; break;

case 1: printf(“#”) ; break;

default: printf(“\n”);

case 2: printf(“&”); }

}的执行结果是:

3) main()

{int i;

for(i=1;i<=50;i++)

if((i%8= =0) printf(“%3d,”,i);

}的执行结果是:

4) main()

{ int a=9,b=5,*p1=&a,*p2=&b,c;

c=*p1;*p1=*p2;*p2=c;

printf("%d,%d",a,b);

的执行结果是:

四、程序填空(10分)

输入以 -1结束的一批整数,输出其中的最大值。

例如: 输入 -3 -8 -10 -1 后,输出:max=-3。

#include

void main( )

{ int max, x;

scanf("%d", &x);

if(x!=-1){

;

while( ){

if(max

) ;

}

printf("max=%d\n", max);

}

}

五、编程(10分)

结构体定义如下:

struct student{

int NO;

char name[20];

struct student *next;

}*head;

设计以head为头指针动态建立链表的子函数,以NO输入0为建立链表的结束条件。

六、编程(10分)

引用第五题建立链表的函数,实现链表节点的删除的函数,删除NO为1000的节点,链表中没有的话则输出not find.并书写主函数调用此两个函数。

相关文档