计算机期末试题(附答案 下载本文

内容发布更新时间 : 2024/12/26 4:30:18星期一 下面是文章的全部内容请认真阅读。

636648992.doc

模拟一

第 一 题:选择题(总题数:10 总分数:20) 1:一个C语言程序是由

A)一个主程序和若干子程序组成 B)函数组成

C)若干过程组成 D)若干子程序组成

2:C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A)必须为字母 B)必须为下划线

C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符 3:已经x为float类型的变量。x=213.82631;printf(\,x);则以上语句______ A)输出格式描述答的域宽不够,不能输出 B)输出为213.83 C)输出为213.82 D)输出为-213.82 4:以下不正确的if语句是:

A)if(x>y$$x!=y); B)if(x==y) x+=y; C)if(x!=y) x++ ; else x--; D)if(x

A)goto语句只能用于退出多层循环

B)switch语句中不能出现continue语句 C)只能用continue语句来终止本次循环 D)在循环中break语句不能独立出现

6:若有说明:int a[10];则对a数组元素的正确引用是__

A)a[10] B)a[3.5] C)a[5.5] D)a[10-10]

7:fun((exp1,exp2),(exp3,exp4,exp5)),以上函数调用语句中含有实参的个数为:

A)1 B)2 C)4 D)5 8:以下叙述不正确的是

A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数

D)在C程序中,注释说明只能位于一条语句的后面

9:已有如下定义和输入语句,int a1,a2; char c1,c2; scanf(\,&a1,&a2); scanf(\,&c1,&c2);若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:

A)1020AB(回车) B)10 20(回车)AB(回车) C)10 20 AB(回车) D)10 20AB(回车)

10:设有说明:char w; int x; f1oat y; double? z;则表达式w* x+z一y值的数据类型为:

A)float B)char C)int D)double 第 二 题:C语言改错题(总题数:4 总分数:20) 在下面的程序中存在一处错误,请找出来,将错误的行号(2分)和正确答案(3分)填写在每题后面的空格中 1:求ax^2+bx+c=0方程的根,a,b,c由键盘输入,设b^2-4ac>0 行号 语句

1: #include 2: #include 3: main()

第 1 页 共 12 页

636648992.doc

4: {

5: float a,b,c,disc,x1,x2,p,q; 6: scanf(“a=%f,b=%f,c=%f”,&a,&b,&c); 7: disc=b*b-4*a*c; 8: p=-b/2a;

9: q=sqrt(disc)/(2*a); 10: x1=p+q;x2=p-q;

11: printf(“x1=%5.2f x2=%5.2f ”,x1,x2); 12: }

错误行号为: 8 。 正确答案为: p=-b/(2*a); 2:设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。 行号 语句

1: #include 2: main() 3: {

4: float pi,h,r,l,v; 5: pi=3.1415926;

6: printf(“input r&h: ”); 7: scanf(“%f%f”,&r,&h); 8: l=2*pi*r;

9: v=1/3*pi*r*2*h;

10: printf(“l=%6.2f v=%6.2f ”,l,v); 11: }

错误行号为: 9 。 正确答案为: v=1/3*pi*r*r*h; 3:求前100个自然数的和。 行号 语句

1: #include 2: void main() 3: {

4: int i,sum; 5: i=1;

6: while(i<=100) 7: {

8: sum+=i; 9: i++; 10: }

11: printf(“%d ”,sum); 12: }

错误行号为: 4 。 正确答案为: int i,sum=0; 4:求前10个自然数的阶乘之和 行号 语句

1: #include 2: main()

第 2 页 共 12 页

636648992.doc

3: {

4: long f,s; 5: int k; 6: s=0;f=0;

7: for(k=1;k<=10;k++) 8: { 9: f*=k; 10: s+=f; 11: }

12: printf(“sum=%d ”,s); 13: }

错误行号为: 6 。 正确答案为: s=0;f=1; 第 三 题:C语言程序填空题(总题数:2 总分数:20)根据试题要求将正确答案填到空中(每空5分)

1:从键盘输入一个年份,判断是否是闰年。 # include main() {

int year,leap;

printf(“input the year:”); scanf(“%d”,&year);

if((year%4==0&&year0!=0)||(year@0==0)) leap=1; else

leap=0; if(leap==1)

printf(“%d is a leap year! ”,year); else

printf(“%d is not a leap year! ”,year); }

2:下面程序的功能是检查一个二维数组是否对称(即:对所有i和j都有a[i][j]=a[j][i])。请填空 # include main() {

int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; int i,j,found=0; for(j=0;j<4;j++) for( i=0 ;i<4;i++) if(a[j][i]!=a[i][j]) {

found=1; break; }

第 3 页 共 12 页