1、计算机期末试题附答案模拟一第 一 题:选择题(总题数:10 总分数:20) 1:一个C语言程序是由 A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 2:C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 A)必须为字母 B)必须为下划线 C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符 3:已经x为float类型的变量。x=213.82631;printf(%-4.2f ,x);则以上语句_ A)输出格式描述答的域宽不够,不能输出 B)输出为213.83 C)输出为213.82 D)输出为-213.82 4:以下不正确的if语
2、句是: A)if(xy$x!=y); B)if(x=y) x+=y; C)if(x!=y) x+ ; else x-; D)if(x0 行号 语句 1: #include 2: #include 3: main() 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: 错误行号
3、为: 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 。 正确答案为
4、: 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() 3: 4: long f,s; 5: int k; 6: s=0;f=0; 7: for(k=1;k=10;k+) 8: 9: f*
5、=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&year%100!=0)|(year%400=0) leap=1; else leap=0; if(leap=1) printf(“
6、%d is a leap year! ”,year); else printf(“%d is not a leap year! ”,year); 2:下面程序的功能是检查一个二维数组是否对称(即:对所有i和j都有aij=aji)。请填空 # include main() int a44=1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4; int i,j,found=0; for(j=0;j4;j+) for( i=0 ;i4;i+) if(aji!=aij) found=1;break; if(found=1) printf(“No”); else printf(“Yes”);
7、第 四 题:C语言编程题(总题数:2 总分数:40) 1:编写程序,用矩形法求一元函数f(x)=ln(x+1)+x/2(其中ln为自然对数),在区间1,5上的积分近似值S,保留2位小数(小区间数n=15,此参数不能改动,否则影响答案)。#include#includemain() double a=1,b=5,h,s0,s=0,f0,x; int n=15; h=(b-a)/n; x=a;for(n=1;n=15;n+) f0=log(x+1)+x/2; s0=f0*h; s=s+s0; x=x+h; printf(方程的近似根为%.2lf.n,s); /*方程的近似根为10.95. Pres
8、s any key to continue*/ 2:任意使用一种方法将数据14, 35, 82, 33,22, 61, 26, 12,43, 12按从小到大的顺序排序,并输出排序前、排序后的数据。 #includemain() int i,j,t; int a10=14,35,82,33,22,61,26,12,43,12; printf(冒泡法排序前的顺序为:n); for(i=0;i10;i+) printf(%3d,ai); printf(n); for(i=0;i10-1;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; printf(排序后的顺序为:
9、n); for(i=0;i 5) printf( %d,m); else printf(%d,m-); A)4 B)5 C)6 D)7 4:为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与(? )配对。 A)缩排位置相同的if B)其之前最近的if C)之后最近的if D)同一行上的if 5:以下描述正确的是 A)goto语句只能用于退出多层循环 B)switch语句中不能出现continue语句 C)只能用continue语句来终止本次循环D)在循环中break语句不能独立出现 6:以下能对二维数组a进行正确初始化的语句是_ A)int a2=1,0,1,5,
10、2,3; B)int a3=1,2,3,4,5,6; C)int a24=1,2,3,4,5,6; D)int a3=1,0,1,0,1,1; 7:以下说法不正确的是: A)在不同函数中可以使用相同名字的变量 B)形参是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 8:C程序的基本组成单位是 A)文件 B)函数 C)程序 D)工程 9:有输入语句: scanf(a= %d,b= %d,c=%d,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 A)132(回车) B)1,3,2(回车) C)a=
11、1b=3c=2(回车) D)a=1,b =3,c =2(回车) 10:设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为 A)int B)float C)double D)不确定 第 二 题:C语言改错题(总题数:4 总分数:20)在下面的程序中存在一处错误,请找出来,将错误的行号(2分)和正确答案(3分)填写在每题后面的空格中1:设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。 行号 语句 1: #include 2: main() 3: 4: float pi,h,r,l,v; 5:
12、 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*2*h; 2: 行号 语句 1: #include 2: main() 3: 4: float a=10,b=5,c; 5: c=(int)a%(int)b/n; 6: printf(%d,c); 7: 错误行号为: 4 。 正确答案为:float a=10,b=
13、5; int c,n;3:求解分段函数的值 行号 语句 1: #include 2: main() 3: 4: int x,y; 5: scanf(“%d”,&x) ; 6: if(x=0); 7: if(x= =0) 8: y=0; 9: else y=1; 10: else y=-1; 11: printf(“x=%d,y=%d ”,x,y); 12: 错误行号为: 6 。 正确答案为: if(x=0) (无“;”) 4:输入30名学生一门课的成绩,计算平均分,找出最高分和最低分 行号 语句 1: #include 2: main() 3: 4: int max,min,x,k; 5: f
14、loat sum,ave ; 6: scanf(“%d”,&x); 7: max=min=sum=x; 8: for(k=1,k30,k+) 9: 10: scanf(“%d”,&x); 11: sum+=x; 12: if(maxx) min=x; 14: 15: ave=sum/30; 16: printf(“average=%6.2f max=%d min=%d ”,ave,max,min); 17: 错误行号为: 7 。 正确答案为: max=min=x; sum=0; 第 三 题:C语言程序填空题(总题数:2 总分数:20) 根据试题要求将正确答案填到空中(每空5分)1:输入一个小写
15、字母,按大写输出。 #include main() char ch; ch=getchar(); putchar(ch-32);2:以下程序的功能是求数组num中小于0的数据之和。请填空。 # include main() int num20=10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20; int sum=0,i; for(i=0;i=19;i+) if(numi0) sum=sum+numi; printf(“sum=%6d”,sum); 第 四 题:C语言编程题(总题数:2 总分数:40) 1:编写程序,
16、用牛顿切线法求方程f(x)=2x+cosx-2.6=0在区间0,4上的近似实根r,迭代初值自选,精确到0.0001。提示:牛顿切线法的计算公式为x=x-f(x)/f(x)。 #include#includemain() double x,x0,f,f1; x=2; do x0=x; f=2*x0+cos(x0)-2.6; f1=2-sin(x0); x=x0-f/f1; while(fabs(x-x0)=1e-4); printf(方程的近似根为:%.4lf.n,x);/*方程的近似根为:1.0521.Press any key to continue*/2:任意使用一种方法将数据14, 35
17、, 82, 33,22, 61, 26, 12,43, 12按从小到大的顺序排序,并输出排序前、排序后的数据。 (同模拟一)模拟三第 一 题:选择题(总题数:10 总分数: 1:一个C语言程序是由 A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 2:假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是: A)7 B)8 C)6 D)2 3:能正确表示当x 的取值在1,10和200,210范围内为真,否则为假的表达式是 A)(x=1) &(x = 200) &(x=1) | (x=200) |(x=1) &(x= 200) &(x =1)|(x
18、 = 200)|(xy) z=x;x=y;y=z;以上语句执行后,x,y,z的值是: A)x=10,y=20,z=30 B)x=20,y=30,z=30 C)x=20,y=30,z=10 D)x=20,y=30,z=20 5:以下描述正确的是 A)goto语句只能用于退出多层循环 B)switch语句中不能出现continue语句 C)只能用continue语句来终止本次循环 D)在循环中break语句不能独立出现 6:在c语言中,引用数组元素时,其数组下标的数据类型允许是_ A)变量 B)表达式 C)整型常量或整型表达式 D)任何类型的表达式 7:以下说法不正确的是: A)在不同函数中可以使
19、用相同名字的变量 B)形参是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 8:C程序的基本组成单位是 A)文件 B)函数 C)程序 D)工程 9:putchar函数可以向终端输出一个: A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值 10:设有说明:char w; int x; f1oat y; double z;则表达式w* x+z一y值的数据类型为: A)float B)char C)int D)double 第 二 题:C语言改错题(总题数:4 总分数:20)在下面的程序中存在一处错误,请找出来,将错
20、误的行号(2分)和正确答案(3分)填写在每题后面的空格中1: 行号 语句 1: #include 2: #define N 10 3: main() 4: 5: float a=10,b=5,c; 6: c=(int)a%(int)b/N; 7: printf(%d,c); 8: 错误行号为: 7 。 正确答案为: printf(“%f”,c); 2:设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。 行号 语句 1: #include 2: main() 3: 4: float pi,h,r,l,v; 5: pi=
21、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.0/3*pi*r*r*h; 3:把100200之间的不能被3整除的数输出。 行号 语句 1: #include 2: main() 3: 4: int n; 5: for(n=100;n=200;n+) 6: 7: if(n%3=0) 8: break; 9: printf(“%d ”,n
22、); 10: 11: printf(“ ”); 12: 错误行号为: 8 。 正确答案为: continue; else 4:输入30名学生一门课的成绩,计算平均分,找出最高分和最低分 行号 语句 1: #include 2: main() 3: 4: int max,min,x,k; 5: float sum,ave ; 6: scanf(“%d”,&x); 7: max=min=sum=x; 8: for(k=1,k30,k+) 9: 10: scanf(“%d”,&x); 11: sum+=x; 12: if(maxx) min=x; 14: 15: ave=sum/30; 16: printf(“average=%6.2f max=%d min=%d ”,ave,max,min); 17: 错误行号为: 7 。 正确答案为: max=min=x;sum=0; 第 三 题:C语言程序填空题(总题数:2 总分数:20)根据试题要求将正确答案填到空1:输入两个正整数m和n,求最大公约数和最小公倍数。 # include main() int p,r,n,m,temp; printf(“Please input two numbers:”); scanf(“%d%d”,&n,&m); if(nm) temp=n; n=m; m=temp; p= m*n; while(m!=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1