2015-2016学年二学期C语言期末考试试卷(B卷)20160511205422答案

更新时间:2024-05-04 03:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

石家庄学院2015-2016学年二学期

课程考试试卷答案(B卷)

课程名称:C语言 考试时间:120分钟 年级:xxx级

专业: xxx

题目部分,(卷面共有37题,100分,各大题标有题量和总分) 一、单项选择题(10小题,共20分) 1、有以下程序

5、若有定义语句int a, b;double x;则下列选项中没有错误的是( )

A)switch(x%2) B)switch((int)x/2.0)

{ case 0: a++; break; { case 0: a++; break; case 1: b++; break; case 1: b++; break; default : a++; b++; default : a++; b++; } }

C)switch((int)x%2) D)switch((int)(x)%2)

{ case 0: a++; break; { case 0.0: a++; break; case 1: b++; break; case 1.0: b++; break; void f(int *x,int *y)

{ int t; t=*x;*x=*y;*y=t; } main()

{ int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p

{ f(p,q);

p++; q--; }

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

printf(\

程序运行后的输出结果是 ( )

A.8,2,3,4,5,6,7,1, B.5,6,7,8,1,2,3,4, C.1,2,3,4,5,6,7,8, D.8,7,6,5,4,3,2,1, 答案:D

2、下列程序段的运行结果是( )

int i=0,sum=1; do {

sum+=i++; }while(i<4);

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

A、6 B、7 C、8 D、9 答案:B

3、若要求从键盘读入含有空格字符的字符串,应使用函数( ) A. getc() B. gets() C.getchar() D. scanf() 答案:B

4、有以下程序

#include void main()

{ int a=1,b=2;

while(a<6){b+=a;a+=2;b%=10;} printf(%d,%d\n”,a,b); }

程序运行后的输出结果是( )

A)5,11 B)7,1 C)7,11 D)6,1 答案:B

《C语言》第1页(共8页)

default : a++; b++; default : a++; b++;

} } 答案:C

6、下列条件语句中,功能与其他语句不同的是( )

A. if(a) printf(\B. if(a==0) printf(\C. if (a!=0) printf(\D. if(a==0) printf(\

答案:D

7、有以下程序

void sum(int a[])

{ a[0] = a[-1]+a[1]; } main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]);

printf(\

程序运行后的输出结果是 ( )

A.6 B.7 C.5 D.8 答案:A

8、字符串“XYZ”在内存中占用的字节数是( )。 (A)4 (B)3 (C)2 (D) 5 答案:A

9、下列程序段的运行结果是( )

int x=123;

do { printf(“-”,x--); }while(!x) ;

A、12 B、123 C、无 D、死循环 答案:B

10、以下程序的输出结果是(

)。 main()

{ int i , j ,k=0 ;

for ( i=10 , j=9 ; i<13 ; i++)

《C语言》第2页(共8页)

while (j++

printf(“%d”, k ) ;

}

A. 9

B. 10

C. 30

D. 33

答案:B

二、填空题(10小题,共20分)

1、以下程序运行后的输出结果是

void swap(int x,int y) { int t;

t=x;x=y;y=t;

printf(\ main()

{ int a=3,b=4; swap(a,b);

printf(\

答案:4 3 3 4

2、通过函数求f(x)的累加和,其中f(x)=x2

+1

main() {

printf(\}

SunFun(int n) {int x,s=0;

for(x=0;x<=n;x++) s+=F(________); return s; } F( int x)

{ return ____________;}

答案:x x*x+1

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

main()

{ char c; int n=100; float f=10; double x; x=f*=n/=(c=50);

printf(\

答案: 2 20

4、有以下程序 main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf(\程序运行后的输出结果是( )

A.16 B.10 C.8 D.6

《C语言》第3页(共8页)

答案:B

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

main()

{ int i ;

for (i=20 ; i>0 ; i--)

if (i % 5 !=0) break ;

printf(“%d” , i );

}

答案:19 6、若有语句:

int i=-19,j; j=i%4;

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

则输出结果是______________。 答案:-3

7、用于控制程序的流程结构分别是___________,_____________,_____________。

答案:顺序结构、选择结构、循环结构

8、若有以下定义语句:int u=010,v=0x10,w=10; printf(“%d,%d,%d\\n”,u,v,w); 则输出结果是 __________。 答案: 8,16,10

9、在内存中,存储字符’x'要占用1个字节,存储字符串\要占用_____个字节。 答案:2 10、有以下程序

int sub(int n) { return (n/10+n); } main() { int x,y; scanf(\ y=sub(sub(sub(x))); printf(\

若运行时输入:1234<回车>,程序的输出结果是 答案:10

三、编程题(1小题,共10分)

1、以下函数的功能是:输入一个正整数n(1

序排序后输出。 例如:输入:5

3 1 4 5 2

《C语言》第4页(共8页)

输出:5 4 3 2 1 #include int main(void) { int k,n,index,i,temp; int a[10];

printf(\请输入一个正整数n(1

printf(\请输入n个整数:\ for(i=0;i

scanf(\

for(k=0;k

for(i=k+1;i

index=i;

temp=a[index]; a[index]=a[k];

a[k]=temp;}

printf(\数组元素按从大到小排序后的结果为:\ for(i=0;i

printf(\

}

答案:a[i]>a[index]_

四、判断题(10小题,共20分)

1、C语言本身并不提供输入输出语句。但可以通过输入输出函数来实现数据的输入输出。(答案:对

2、C语言中规定函数的返回值的类型是由return语句中的表达式类型所决定。( ) 答案:错

3、在标准C中,while和do_while的功能完全相同。( ) 答案:错

4、在C语言中,二维数组元素是按行存放的。( ) 答案:对

5、数组不可以整体赋值。( ) 答案:对

《C语言》第5页(共8页)

6、在C语言中,可以用typedef定义一种新的数据类型。( ) 答案:错

7、#define PI=3.14159;不是C语句。( ) 答案:对

8、C语言程序的基本单位是语句。 ( ) 答案:错

9、C语言规定:在一个源程序中,main函数的位置必须在最开始。( ) 答案:错

10、在C语言中操作系统是以文件为单位对数据进行管理的。( ) 答案:对

五、写出程序的运行结果(3小题,共15分) 1、下面程序的运行结果是_________。 #include main() {

int i,j=4;

for(i=j;i<=2*j;i++) switch(i/j) {

case 0:

case 1: printf(“*”); break; case 2: printf(“#”); } }

答案: * * * * #

2、下面程序的运行结果是 。 #include main() { int a,b,i; a=1;b=3;i=1;

do { printf(“%d,%d,”,a,b); a=(b-a)*2+b; b=(a-b)*2+a;

if(i++%2==0) printf(“\\n”);

}while(b<100); }

答案:1,3,7,15,31,63

3、当从键盘输入18并回车后,下面程序的运行结果是________. main()

{int x,y,i,a[8],j,u,v; scanf(\y=x;i=0; do

{u=y/2; a[i]=y%2; i++;y=u; }while(y>=1)

《C语言》第6页(共8页)

) for(j=i-1;j>=0;j--) printf(\}

答案:11001

六、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求(3小题,共15分) 1、下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能。 unsigned int MyStrlen(char str[]) { unsigned int len = 0, i; for (i=0; str[i]!=______; i++) { len _______ ; } return len; }

答案:'\\0' ++

2、下面函数实现strcmp的功能,将两个字符串s和t进行比较,然后将两个字符串中第一个不相同字符的ASCII码值之差作为函数值返回。 int MyStrcmp(char s[], char t[]) { int i; for (i=0; ; i++) {if (s[i] = = ?\\0?) return ; } return (s[i]-t[i]); }

答案: s[i]= =t[i] 0

3、下面函数的功能是将两个字符串s和t连接起来。 char *conj(char *s, char *t) {

char *p=s;

while(*s)____________; while(*t) {

*s=____________; s++; t++; }

*s=?\\0?;

____________; }

答案:s++ *t

return(p)

《C语言》第7页(共8页)

C语言》第8页(共8页)《

本文来源:https://www.bwwdw.com/article/brig.html

Top