计算机期末试题附答案.docx
- 文档编号:25592410
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:21
- 大小:24.17KB
计算机期末试题附答案.docx
《计算机期末试题附答案.docx》由会员分享,可在线阅读,更多相关《计算机期末试题附答案.docx(21页珍藏版)》请在冰豆网上搜索。
计算机期末试题附答案
模拟一
第一题:
选择题(总题数:
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.82D)输出为-213.82
4:
以下不正确的if语句是:
A)if(x>y$$x!
=y);B)if(x==y)x+=y;
C)if(x!
=y)x++;elsex--;D)if(x 5: 以下描述正确的是 A)goto语句只能用于退出多层循环 B)switch语句中不能出现continue语句 C)只能用continue语句来终止本次循环 D)在循环中break语句不能独立出现 6: 若有说明: inta[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)1B)2C)4D)5 8: 以下叙述不正确的是 A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 9: 已有如下定义和输入语句,inta1,a2;charc1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2);若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是: A)1020AB(回车)B)1020(回车)AB(回车) C)1020AB(回车)D)1020AB(回车) 10: 设有说明: charw;intx;f1oaty;double? z;则表达式w*x+z一y值的数据类型为: A)floatB)charC)intD)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() 4: { 5: floata,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.2fx2=%5.2f”,x1,x2); 12: } 错误行号为: 8。 正确答案为: p=-b/(2*a); 2: 设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。 用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。 行号语句 1: #include 2: main() 3: { 4: floatpi,h,r,l,v; 5: pi=3.1415926; 6: printf(“inputr&h: ”); 7: scanf(“%f%f”,&r,&h); 8: l=2*pi*r; 9: v=1/3*pi*r*2*h; 10: printf(“l=%6.2fv=%6.2f”,l,v); 11: } 错误行号为: 9。 正确答案为: v=1/3*pi*r*r*h; 3: 求前100个自然数的和。 行号语句 1: #include 2: voidmain() 3: { 4: inti,sum; 5: i=1; 6: while(i<=100) 7: { 8: sum+=i; 9: i++; 10: } 11: printf(“%d”,sum); 12: } 错误行号为: 4。 正确答案为: inti,sum=0; 4: 求前10个自然数的阶乘之和 行号语句 1: #include 2: main() 3: { 4: longf,s; 5: intk; 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() { intyear,leap; printf(“inputtheyear: ”); scanf(“%d”,&year); if((year%4==0&&year%100! =0)||(year%400==0)) leap=1; else leap=0; if(leap==1) printf(“%disaleapyear! ”,year); else printf(“%disnotaleapyear! ”,year); } 2: 下面程序的功能是检查一个二维数组是否对称(即: 对所有i和j都有a[i][j]=a[j][i])。 请填空 #include main() { inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4}; inti,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; } if(found==1) printf(“No”); else printf(“Yes”); } 第四题: C语言编程题(总题数: 2总分数: 40) 1: 编写程序,用矩形法求一元函数f(x)=ln(x+1)+x/2(其中ln为自然对数),在区间[1,5]上的积分近似值S,保留2位小数(小区间数n=15,此参数不能改动,否则影响答案)。 #include #include main() { doublea=1,b=5,h,s0,s=0,f0,x; intn=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. Pressanykeytocontinue*/ 2: 任意使用一种方法将数据14,35,82,33,22,61,26,12,43,12按从小到大的顺序排序,并输出排序前、排序后的数据。 #include main() { inti,j,t; inta[10]={14,35,82,33,22,61,26,12,43,12}; printf("冒泡法排序前的顺序为: \n"); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); for(i=0;i<10-1;i++) { for(j=0;j<10-1-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } printf("排序后的顺序为: \n"); for(i=0;i<10;i++) printf("%3d",a[i]); printf("\n"); } /* 冒泡法排序前的顺序为: 14358233226126124312 排序后的顺序为: 12121422263335436182 Pressanykeytocontinue*/ 模拟二 第一题: 选择题(总题数: 10总分数: 20) 1: 解释程序和编译程序的主要区别之一在于______ A)单用户与多用户的差别B)对用户程序的查错能力 C)机器执行的效率D)是否生成目标程序 2: 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为 A)DB)68C)不确定的值D)C 3: 以下程序的运行结果是: main(){intm=5;if(m++>5)printf("%d",m);elseprintf("%d",m--);} A)4B)5C)6D)7 4: 为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与(? )配对。 A)缩排位置相同的ifB)其之前最近的if C)之后最近的ifD)同一行上的if 5: 以下描述正确的是 A)goto语句只能用于退出多层循环 B)switch语句中不能出现continue语句 C)只能用continue语句来终止本次循环 D)在循环中break语句不能独立出现 6: 以下能对二维数组a进行正确初始化的语句是__ A)inta[2][]={{1,0,1},{5,2,3}}; B)inta[][3]={{1,2,3},{4,5,6}}; C)inta[2][4]={{1,2,3},{4,5},{6}}; D)inta[][3]={{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=1b=3c=2(回车)D)a=1,b=3,c=2(回车) 10: 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为 A)intB)floatC)doubleD)不确定 第二题: C语言改错题(总题数: 4总分数: 20)在下面的程序中存在一处错误,请找出来,将错误的行号(2分)和正确答案(3分)填写在每题后面的空格中 1: 设圆半径r=1.5,圆锥高h=3,求圆周长和圆锥体体积。 用scanf输入数据,输出计算结果时要求有文字说明,取小数点后2位数字。 行号语句 1: #include 2: main() 3: { 4: floatpi,h,r,l,v; 5: pi=3.1415926; 6: printf(“inputr&h: ”); 7: scanf(“%f%f”,&r,&h); 8: l=2*pi*r; 9: v=1/3*pi*r*2*h; 10: printf(“l=%6.2fv=%6.2f”,l,v); 11: } 错误行号为: 9。 正确答案为: v=1/3*pi*r*r*2*h; 2: 行号语句 1: #include 2: main() 3: { 4: floata=10,b=5,c; 5: c=(int)a%(int)b/n; 6: printf("%d",c); 7: } 错误行号为: 4。 正确答案为: floata=10,b=5;intc,n; 3: 求解分段函数的值 行号语句 1: #include 2: main() 3: { 4: intx,y; 5: scanf(“%d”,&x); 6: if(x>=0); 7: if(x==0) 8: y=0; 9: elsey=1; 10: elsey=-1; 11: printf(“x=%d,y=%d”,x,y); 12: } 错误行号为: 6。 正确答案为: if(x>=0)(无“;”) 4: 输入30名学生一门课的成绩,计算平均分,找出最高分和最低分 行号语句 1: #include 2: main() 3: { 4: intmax,min,x,k; 5: floatsum,ave; 6: scanf(“%d”,&x); 7: max=min=sum=x; 8: for(k=1,k<30,k++) 9: { 10: scanf(“%d”,&x); 11: sum+=x; 12: if(max 13: elseif(min>x)min=x; 14: } 15: ave=sum/30; 16: printf(“average=%6.2fmax=%dmin=%d”,ave,max,min); 17: } 错误行号为: 7。 正确答案为: max=min=x;sum=0; 第三题: C语言程序填空题(总题数: 2总分数: 20)根据试题要求将正确答案填到空中(每空5分) 1: 输入一个小写字母,按大写输出。 #include main() { charch; ch=getchar(); putchar(ch-32); } 2: 以下程序的功能是求数组num中小于0的数据之和。 请填空。 #include main() { intnum[20]={10,20,1,-20,203,-21,2,-2,-2,11,-21,22,12,-2,-234,-90,22,90,-45,20}; intsum=0,i; for(i=0;i<=19;i++) { if(num[i]<0) sum=sum+num[i]; } printf(“sum=%6d”,sum); } 第四题: C语言编程题(总题数: 2总分数: 40) 1: 编写程序,用牛顿切线法求方程f(x)=2x+cosx-2.6=0在区间[0,4]上的近似实根r,迭代初值自选,精确到0.0001。 〔提示: 牛顿切线法的计算公式为x=x-f(x)/f’(x)〕。 #include #include main() { doublex,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. Pressanykeytocontinue*/ 2: 任意使用一种方法将数据14,35,82,33,22,61,26,12,43,12按从小到大的顺序排序,并输出排序前、排序后的数据。 (同模拟一) 模拟三 第一题: 选择题(总题数: 10总分数: 1: 一个C语言程序是由 A)一个主程序和若干子程序组成B)函数组成 C)若干过程组成D)若干子程序组成 2: 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是: A)7B)8C)6D)2 3: 能正确表示"当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是 A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B)(x>=1)||(x<=10)||(x>=200)||(x<=210) C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D)(x>=1)||(x<=10)&&(x>=200)||(x<=210) 4: intx=10,y=20,z=30;if(x>y)z=x;x=y;y=z;以上语句执行后,x,y,z的值是: A)x=10,y=20,z=30B)x=20,y=30,z=30 C)x=20,y=30,z=10D)x=20,y=30,z=20 5: 以下描述正确的是 A)goto语句只能用于退出多层循环 B)switch语句中不能出现continue语句 C)只能用continue语句来终止本次循环 D)在循环中break语句不能独立出现 6: 在c语言中,引用数组元素时,其数组下标的数据类型允许是__ A)变量B)表达式 C)整型常量或整型表达式D)任何类型的表达式 7: 以下说法不正确的是: A)在不同函数中可以使用相同名字的变量 B)形参是局部变量 C)在函数内定义的变量只在本函数范围内有效 D)在函数内的复合语句中定义的变量在本函数范围内有效 8: C程序的基本组成单位是 A)文件B)函数C)程序D)工程 9: putchar函数可以向终端输出一个: A)整型变量表达式值B)实型变量值 C)字符串D)字符或字符型变量值 10: 设有说明: charw;intx;f1oaty;doublez;则表达式w*x+z一y值的数据类型为: A)floatB)charC)intD)double 第二题: C语言改错题(总题数: 4总分数: 20)在下面的程序中存在一处错误,请找出来,将错误的行号(2分)和正确答案(3分)填写在每题后面的空格中 1: 行号语句 1: #include 2: #defineN10 3: main() 4: { 5: floata=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: floatpi,h,r,l,v; 5: pi=3.1415926; 6: printf(“inputr&h: ”); 7: scanf(“%f%f”,&r,&h); 8: l=2*pi*r; 9: v=1/3*pi*r*2*h; 10: printf(“l=%6.2fv=%6.2f”,l,v); 11: } 错误行号为: 9。 正确答案为: v=1.0/3*pi*r*r*h; 3: 把100~200之间的不能被3整除的数输出。 行号语句 1: #include 2: main() 3: { 4: intn; 5: for(n=100;n<=200;n++) 6: { 7: if(n%3==0) 8: break; 9: printf(“%d”,n); 10: } 11: printf(“”); 12: } 错误行号为: 8。 正确答案为: continue;else 4: 输入30名学生一门课的成绩,计算平均分,找出最高分和最低分 行号语句 1: #include 2: main() 3: { 4: intmax,min,x,k; 5: floatsum,ave; 6: scanf(“%d”,&x); 7: max=min=sum=x; 8: for(k=1,k<30,k++) 9: { 10: scanf(“%d”,&x); 11: sum+=x; 12: if(max 13: elseif(min>x)min=x; 14: } 15: ave=sum/30; 16: printf(“average=%6.2fmax=%dmin=%d”,ave,max,min); 17: } 错误行号为: 7。 正确答案为: max=min=x;sum=0; 第三题: C语言程序填空题(总题数: 2总分数: 20)根据试题要求将正确答案填到空 1: 输入两个正整数m和n,求最大公约数和最小公倍数。 #include main() { intp,r,n,m,temp; printf(“Pleaseinputtwonumbers: ”); scanf(“%d%d”,&n,&m); if(n { temp=n; n=m; m=temp; } p=m*n; while(m! =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 期末 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)