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;
}