C语言期中考试试卷答案

  • 格式:docx
  • 大小:48.58 KB
  • 文档页数:11

C语言期中考试试卷答案

玉林师范学院期中课程考试试卷

(2009——2010学年度第二学期)

命题教师: 洪月华 命题教师所在系:数计系 试卷类型:考试 课程名称:高级语言程序设计 考试专业:计算机科学与技术 考试年级:2009级

一、单项选择题(每题2分,共24分,把正确答案填入表格中)

1、以下描述不正确的是( A )。

A 、C 程序中一个字符占两个字节。

B 、

C 程序由函数组成。 C 、C 语言本身没有输入输出语句。

D 、主函数main 是程序的入口。

2、有int k1,k2;double k3;scanf("%d%lf%d", &k1, &k3 , &k2),则输入的三个数据之间作为间隔的字符不正确的是( C )。 A 、一个或多个空格。 B

、回车。 C 、逗号。 D 、Tab 。

3、以下运算符中优先级最高的是( D )。

A 、=

B 、*=

C 、&&

D 、(类型名)

4、设x,y,z 都是int 型变量,且x=3,y=5,z=9,则以下表达式中,值为10的是:(B )。

A 、(x+y)/z

B 、(x+y,z+1)

C 、x+y+z

D 、x*y/z 5、下列选项中,哪一个是C 语言的合法的常量( B )。

A 、1.341e B 、2/5

C 、‘xq ’

D 、2.0%5

6、从键盘输入A ,以下程序的运行结果是:( D )。

#include main()

{ char grade;

scanf("%c",&grade); switch(grade)

{ case 'A':printf(">=90"); case 'B':

case 'C': printf(">=60");break; case 'D': printf("<60");

default:printf("error"); } }

A. >=90

B. >=60

C. error D. >=90>=60 7、以下程序的输出结果是( A )。

#include

main () {

int x=3,y=9; x*=y;y+=x;

printf(“%d ,%d\n”,x --,++y); }

A 、27,37

B 、26,36

C 、26,37

D 、27,36 8、执行以下程序后输出的结果是( C )。 #include

系(院): 年级: 专业: 班别: 学号: 姓名: 座位号: —————————————————————————————————————————————————————— 密 封 线 内 不 要 答 题

∞ 装 订∞ 线 ∞

main()

{

int x=4,y=5,z,m; z=x&y m=x|y;

printf(“%d ,%d\n”,z,m); }

A.0,1

B.9,9

C.4,5

D.5,4

9、以下程序 #include main()

{ int x1=3,x2=0,x3=0; if(x1=x2+x3) printf("****"); else printf("####"); } 执行后输出的结果是( B ) A.**** B. #### C. 存在语法错误 D.无输出结果

10、若i 、j 已定义为int 类型,则以下程序段中内循环体的总的执行次数是( A )。 for(i=1;i<=8;i++) for(j=i;j;j--) {...}

A 、36

B 、28

C 、15

D 、30

11、对于C 语言程序中的函数,下列叙述中正确的是( D )。

A 、函数的定义可嵌套,但函数的调用不能嵌套。

B 、函数的定义和调用均不可嵌套;

C 、函数的定义和调用均可嵌套;

D 、函数的定义不能嵌套,但函数的调用可嵌套

12、执行完以下程序后输出的是( C )。

int fun(int x) {int z; z=x*2; return z; }

#include

main()

{ int i,c=0;

for (i =1; i <4; i ++) c=fun(i);

printf(“%d ”,c); } A.12 B.8 C.6 D.2 4 6

二、填空题(每题2分,共16分)

1、sizeof(char) 的值是____1_____。

2、int x,y,z;用条件表达式写出把x 和y

当中最大的值赋给z_z=x>y?x:y____。

3、代数式(x+2)e 2x 的C 语言表达式是 (x+2)*exp(2*x)

4、以0开头的数是八进制。 5、有定义并初始化char a= 9 + '0';,则字符a 是__ 9 ___。

6、C 语言允许整型数据与___字符数据 ______直接进行算术运算。

7、int a = 2; !a||3+10 && 2的值是____1_____。

8、C 语言允许函数值类型的缺省定义,此时该函数值隐含的类型是int 。

三、分析题(每题5分,共40分)

1、下列程序是求1-1/2+1/4………-1/50的值, 请填空完成。

#include

main()

{ int i=2,flag=-1;

float sum=1;

while ( i<=50 )

{ sum=sum+flag*1.0/i ;

i+=2 ;

flag=-flag;

}

printf(“sum=%f”, sum );

}

2、下列程序是求500以内的正整数m和n(要求n大于m)之间的所有素数,要

求6个作为一行输出,请填空完成。

#include

#include

int main(void)

{

int count,i,j,m,n,k;

count=0;

printf("请输入两个500以内的正整数m和n(要求n大于m)\n");

printf("m=:"); scanf("%d",&m);

printf("n=:");

scanf("%d",&n);

for(j=m;j<=n;j++){

k=sqrt(j);

for(i=2;i<=k;i++)

if(j%i==0) break;

if(i>k){

printf("%6d",j); count++;

if(count%6== 0)

printf("\n");

}

}

printf("\n");

printf("%d和%d之间的素数个数是=%d\n",m,n,count);

return 0;

}

3、下面的程序运行后,如果从键盘上输入:A1BcD!e,则输出是

a1bcd!e3

#include “stdio.h”

main()

{

char ch,i=0;

while ((ch=getchar()) !=’\n’)

{ if (ch >=’A’&&ch<=’Z’)

{

ch=ch+32;

i++;

}

printf(“%c”,ch); }

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

}

4、写出满足下列条件的C表达式。

①a大于3而且小于8。

a>3&&a<8

②x 和 y同时为零

x == 0 && y==0

5、以下程序运行后的输出结果是__ 22 ______________。

#include "stdio.h"

main()

{ int x=15;

while(x>10&&x<50)

{ x++;

if(x%7) continue;

else {x++;break;}

}

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

}

6、给定平面内任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离(保

留2位小数)。要求定义和调用函数dist(x1,y1,x2,y2)计算两点间的距离。请填空完成。

#include

#include

int main(void)

{

double xa,ya,xb,yb;

double distance;

double dist(double xa,double ya,double xb,double yb); printf("Input (x1,y1):");

scanf("%lf%lf",&xa,&ya);

printf("Input (x2,y2):");

scanf("%lf%lf",&xb,&yb);

distance = dist(xa,ya,xb,yb);

printf("distance=%.2f\n",distance);

return 0;

}

double dist(double xa,double ya,double xb,double yb)

{

double result;

result=sqrt(pow((xa-xb),2)+pow((ya-yb),2));

return result;

}

7、写出下面程序段的功能是__求n个整数当中最小的数#include

int main(void)

{

int i,k,n,number;

printf("Input n:");

scanf("%d",&n);

printf("Input numbers:");

scanf("%d",&number);

k=number;

for(i=1;i

scanf("%d",&number);

if(k>number)k=number;

}

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

return 0;

}