文档库 最新最全的文档下载
当前位置:文档库 › 2010级C语言期末考试试卷(A卷)

2010级C语言期末考试试卷(A卷)

2010级C语言期末考试试卷(A卷)
2010级C语言期末考试试卷(A卷)

信息科技学院试卷

2010-2011 学年第 2 学期课号I04BT014

课程名称C语言程序设计(A卷;、闭卷)适用班级(或年级、专业)10级、全院

一单项选择题(每题2分,共40分)

1 以下叙述正确的是。

A C程序基本组成单位是语句

B 简单C语句必须以分号作为结束符

C C程序每一行只能写一个语句

D 注释语句可以嵌套

2 设a和b均为int型变量,则执行以下语句后的输出为。

int a=20; int b=3; printf("%d\n",a+=(b%=2));

A 0

B 20

C 21

D 22

3 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为。

A -2

B -32768

C 65535

D 65534

4 以下程序运行后的输出结果是。

main()

{ double d=3.2; int x,y;

x=1.2; y=(x+3.8)/5.0;

printf("%d\n",d*y);

}

A 0

B 3

C 3.07

D 3.2

5 以下程序运行后的输出结果是。

main()

{ int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c++;

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

}

A 0

B 1

C 2

D 3

6 以下程序的执行结果是。

main()

{ int n=9;

while(n>6) { n--; printf("%d",n); }

}

A 987

B 9876

C 8765

D 876

void main()

{ int x=15,y=21,z=0;

switch (x/8)

{ case 2: z=z+1;break;

case 1: z=z+1;

switch (y/21)

{ default : z=z+1;

case 0: z=z+1;break;

}

}

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

}

A 4

B 3

C 2

D 1

8 以下程序的输出结果是。

main()

{

int i=0,a=0;

while(i<20)

{ for(; ;)

if((i%10)==0) break;

else i--;

i+=11;

a+=i;

}

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

}

A 11

B 21

C 32

D 33

9 以下程序执行后的输出结果是。

main()

{

int x=1,y=1;

while(y<=5)

{ if(x>=10) break;

if(x%2==0)

{ x+=5;

continue;

}

x-=3; y++;

}

printf("%d,%d",x,y);

}

A 6,6

B 7,6

C 10,3

D 7,3

void main()

{ int a, b;

for(a=1,b=1; a<=100; a=a+1)

{ if(b>=10) break;

if(b%3==1)

{ b=b+3; continue; };

}

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

}

A 3

B 4

C 5

D 101

11 以下程序的输出结果是。

main()

{ int i,k,a[10],p[3];

k=5;

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

for(i=0;i<3;i++) p[i]=a[i*(i+1)];

for(i=0;i<3;i++) k+=p[i]*2;

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

}

A 20

B 21

C 22

D 23

12若运行以下程序时输入:2 4 6<回车>,则输出结果是___。

main()

{ int x[3][2]={0},i;

for(i=0;i<3;i++) scanf("%d",x[i]);

printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);

}

A 2 0 0

B 2 0 4

C 2 4 0

D 2 4 6

13 以下程序运行后的输出结果是。

void reverse(int a[], int n)

{ int i, t;

for(i=0; i

{ t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }

}

main()

{

int b[10]={1,2,3,4,5,6,7,8,9,10}, i, s=0 ;

reverse (b, 8);

for(i=6; i<10; i++)

s+=b[i];

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

}

A 22

B 10

C 34

D 30

main()

{ char a[2][4];

strcpy(a,"you"); strcpy(a[1],"me");

a[0][3]='&';

printf("%s\n",a);

}

A you

B you&

C me

D you&me

15 调用函数的实参与被调用函数的形参应有如下关系。

A 只要求实参与形参个数相等

B 只要求实参与形参顺序相同

C 只要求实参与形参数据类型相同

D 上述三点均需具备

16 以下程序运行后的输出结果是。

long fun(int n)

{ long s;

if(n==1||n==2) s=2;

else s=n-fun(n-1);

return s;

}

main()

{

printf("%ld\n",fun(3));

}

A 1

B 2

C 3

D 4

17 以下程序运行后的输出结果是。

void main()

{ int i, x[3][3]={9,8,7,6,5,4,3,2,1}, *p=&x[1][1];

for(i=0; i<4; i+=2) printf("%d ", p[i]);

}

A 5 1

B 5 2

C 5 3

D 9 7

18 已知下列说明语句,则表达式**(q+2)的值是。

static int a[]={2,4,6,8}

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

int **q;

q=p;

A 2

B 4

C 6

D 8

19 有以下说明语句,对结构变量中成员age的正确引用是。

struct student

{ int age;

int sex;

}stud1,*p;

A p->age

B student.age

C *p.age

D stud1.student.age

#include

void fun(char *fname, char *st)

{ FILE *myf; int i;

myf=fopen(fname, "w");

for(i=0; i

fclose(myf);

}

main()

{ fun("test.txt", "new world");

fun("test.txt", "hello,");

}

A new worldhello,

B hello,rld

C new world

D hello,

二填空题(每题3分,共30分)

1 下面的程序运行时从键盘上输入9876543210<回车>,程序的输出结果是。

main()

{

int a;

float b,c;

scanf("%2d%2f%2f",&a,&b,&c);

printf("a=%d,b=%.1f,c=%.0f",a,b,c);

}

2 若输入字符串:abcde<回车>,则以下while循环体将执行次。

while((ch=getchar())=='e') printf("*");

3 下列程序的输出结果是。

main()

{ int s,i;

for(s=0,i=1;i<3;i++,s+=i);

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

}

4 若int类型变量占两个字节,定义int x[10]={0,2,4};,则数组x在内存中所占的字节

数是。

5 以下程序的输出结果是。

main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2}, i, j, t=0;

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

for(j=i; j<=i; j++) t=t+b[j][j];

printf("%d",t);

}

6 以下程序的输出结果是。

main()

{ char ch[]="abc",x[3][4]; int i;

for(i=0;i<3;i++) strcpy(x[i],ch);

for(i=0;i<3;i++) printf("%s",&x[i][i]);

printf("\n");

}

7 运行下面程序,其输出结果是。

#include

int x,y;

one()

{ int a,b;

a=25,b=10;

x=a-b;y=a+b;

}

main()

{ int a=9,b=5;

x=a+b;y=a-b;

one();

printf("%d,%d\n",x,y):

}

8 以下程序的输出结果是。

void fun(int x, int y)

{ x=x+y; y=x-y; x=x-y;

printf("%d,%d",x,y);

}

main()

{ int x=2,y=3;

fun(x,y);

printf("%d,%d\n",x,y);

}

9 以下程序的输出结果是。

void print(int w)

{ int i;

if(w!=0)

{ print(w-1);

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

printf("%d",w);

printf("\n");

}

}

main()

{ print(4); }

10 以下程序的输出结果是。

void swap(int *a, int *b)

{ int *t;

t=a; a=b; b=t;

}

main()

{ int i=2,j=5,*p=&i,*q=&j;

swap(p,q); printf("%d %d\n",*p,*q)

}

三程序填空题(每空3分,共30分)

1 以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为

负数时,结束输入。请填空使程序完整。

main()

{ float x,max,min;

scanf("%f",&x);

max=min= 【1】 ;

do{ if(x>max) max=x;

if(x

scanf("%f",&x);

} while( 【3】 );

printf("%f,%f",max,min);

}

2 以下程序的功能是:将t数组的内容连接到s数组内容的后面,使s数组保存连接后的

新字符串。请填空使程序完整。

main()

{ static char s[30]="abcdefg",t[]="abcd"; int i=0,j=0;

while(s[i]!='\0') 【4】 ;

while(t[j]!='\0') { s[i+j]=t[j]; j++; }

【5】 ;

printf("%s\n",s);

}

3 下面函数的功能是统计子串substr在母串str中出现的次数,请填空使程序完整。

int count(char *str, char *substr)

{ int i,j,k,num=0;

for(i=0; 【6】 ;i++)

for( 【7】 ,k=0;substr[k]==str[j];k++,j++)

if(substr [ 【8】 ]==’\0’)

{ num++ ; break ; }

return (num);

}

4 以下程序的功能是:将任意十进制正整数转换成二进制数,请填空使程序完整。 #include"stdio.h"

int dtob(int n,int *p)

{ int m,i=0;

do

{ m=n%2;

【9】 ;

n=n/2;

i++;

}while(n!=0);

return i;

}

main()

{ int n,j,a[20];

printf("Input the umber: \n");

scanf("%d",&n);

j=dtob(n,a);

for(;j>0;j--)

printf("%d", 【10】 );

}

2010-2011学年第2学期C 语言期末考试试卷(A 卷)答题纸

班级学号 姓名 成绩

一 单项选择题(每题2分,共40分)

三 程序填空题(每空3分,共30分)

【1】x 【2】min=x 【3】x>=0 【4】i++

【5】s[i+j]= "\0" 【6】str[i] 【7】j=i 【8】k+1 【9】*(p+i)=m 【10】a[j-1]

相关文档