![2022年青岛理工大学公共课《C语言》科目期末试卷B(有答案)_第1页](http://file4.renrendoc.com/view15/M01/24/28/wKhkGWeiy3GAKWh6AAGsZSVdhxQ826.jpg)
![2022年青岛理工大学公共课《C语言》科目期末试卷B(有答案)_第2页](http://file4.renrendoc.com/view15/M01/24/28/wKhkGWeiy3GAKWh6AAGsZSVdhxQ8262.jpg)
![2022年青岛理工大学公共课《C语言》科目期末试卷B(有答案)_第3页](http://file4.renrendoc.com/view15/M01/24/28/wKhkGWeiy3GAKWh6AAGsZSVdhxQ8263.jpg)
![2022年青岛理工大学公共课《C语言》科目期末试卷B(有答案)_第4页](http://file4.renrendoc.com/view15/M01/24/28/wKhkGWeiy3GAKWh6AAGsZSVdhxQ8264.jpg)
![2022年青岛理工大学公共课《C语言》科目期末试卷B(有答案)_第5页](http://file4.renrendoc.com/view15/M01/24/28/wKhkGWeiy3GAKWh6AAGsZSVdhxQ8265.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年青岛理工大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。2、C语言的源程序必须通过【】和【】后,才能被计算机执行。3、结构化程序由________、________、________3种基本结构组成。4、表达式pow(2.8,sqrt(double(x))值的数据类型为_______。5、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。6、设x的二进制数是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是_______。7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。请填空。for(x=0;x<=30;x++){y=30一x;if(_______)printf("%d,%d\n",x,y);}8、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。9、设有如下定义:#defineSWAP(T,X,Y){T=X;X=Y;Y=T;}以下程序段将通过调用宏实现变量x和y内容的交换,请填空。Doublex=2.5,y=6.4,z;SWAP(_______);10、若有以下定义和语句:int*p[3],a[6],i;for(i=0;i<3;i++)p[i]=8&a[2*i];则*p[0]引用的是a数组元素_______,*(p[1]+1)引用的是a数组元素_______。二、选择题11、以下正确的叙述是()。A.在C程序中,每行中只能写一条语句B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C.在C程序中,无论是整数还是实数,都能被准确无误地表示D.在C程序中,%是只能用于整数运算的运算符12、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。A.intB.floatC.doubleD.不确定13、一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束14、以下叙述不正确的是()A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面15、在C语言中,引用数组元素时,其数组下标的数据类型不允许是()。A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式16、根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为。(注:口表示空格)#include<stdio.h>intmain(){charch1,ch2,ch3;输入语句printf("%c%c%c",ch1,ch2,ch3);return0;}输入形式:A口BOC<回车>输出形式:A口BA.scanf("%c%c%c",&ch1,&ch2,&ch3);B.scanf("%c,%c,%c",&&ch1,&ch2,&ch3);C.scanf("%c%c%c",&ch1,&ch2,&ch3);D.scanf("%c%c",&ch1,&ch2,&ch3);17、下面程序段中,for循环的执行次数是()。char*s="\ta\018be";for(;*s!=\0';s++)printf("*");A)9B)5C)6D)718、以下程序有语法性错误,有关错误原因的正确说法是()。#include<stdio.h>intmain(){intG=5,k;voidprt_char();-----k=prt_char(G);---}A.语句voidprt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线19、下面有关for循环的正确描述是()。A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来20、对for(表达式1;;表达式3)可理解为()。A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)21、当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是()。if(a<B.if(c<D.x=l;elseif(a<C.if(b<D.x=2;elsex=3;elsex=6;elsex=7;A.1B.2C.3D.622、下面程序段的运行结果是()。inta[6][6],i,j;for(i=1;i<6;i++)for(j=1:j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%2d",a[i][j]);printf("\n")}A)11111B)00001C)10000D)100011111100010010000101011111001000010000100111110100000010010101111110000000011000123、下面程序的运行结果是()。#include<stdio.h>intmain(){charstr[]="SSSWLIA",c;intk;for(k=2;(c=str[k])!=\o';k++){switch(C.{case'I':++k;break;case'L':continue;default:putchar(C.;continue;putchar('*’);}return0;}A.SSW*B.SW*C.SW*AD.SW24、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。intbinary(inta[10],intm){intlow=0,high=9,mid;while(low<=high){mid=(low+high)/2;if(m<a[mid])high=mid-1;elseif(m>a[mid])【】;elsereturn(miD.;return(一1);}A.high=mid-1B.low=mid+1C.high=mid+1D.low=mid-125、下面程序的运行结果是()。#include<stdio.h>intmain(){intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;continue;case'E':k=k*10;break;default:k=k/3;}k++;}while(c<'G');printf("k=%d\n",k);return0;}A.k()=3B.k=4C.k=2D.k=0三、读程序填空26、以下程序的输出结果是_______。#include<stdio.h>intmain(){intx=10;floatpi=3.1416;printf("(1)%d\n",x);printf("(2)%6d\n",x);printf("(3)%f\n",56.1);printf("(4)%14fNn",pi);printf("(5)%e\n",568.1);printf("(6)%14e\n",pi);printf("(7)%g\n",pi);printf("(8)%12g\n",pi):return0;}27、已知字母A的ASCII码值为65。以下程序的输出结果是_______。#include<stdio.h>intmain(){chara,b;a='A'+'4'-'3';b='A'+'6'-2';printf("a=%d,b=%c\n",a,b);return0;}28、若输入的值是-125,则以下程序的运行结果是_______。#include<stdio.h>#include<math.h>voidfun(intn)intmain(){intn;scanf("%d",8.n);printf("%d=",n);if(n<0)printf("-");n=abs(n);fun(n):return(0);}voidfun(intn){intk,r;for(k=2;k<=sqrt(n);k++){r=n%k;while(r==0){printf("%d",k);n=n/k;if(n>1)printf("*");r=n%k;}if(n!=1)printf("%d\n",n);}29、函数gongyue的作用是求整数num1和num2的最大公约数,并返回该值。请填空。intgongyue(intnum1,intnum2){inttemp,a,b;if(num1_______num2){temp=num1;num1=num2;num2=temp;}a=num1;b=num2;while(_______){temp=a%b;a=b;b=temp;}return(a);}30、下面程序的功能是求1000以内的所有完全数。请填空。(说明:一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数。例如:6=1+2+3,6为完全数)#include<stdio.h>intmain(){inta,i,m;for(a=1;a<=1000;a++){for(_______;i<=a/2;i++)if(!(a%i))_______;if(m==a)printf("%4d",a);}return0;}31、下面程序的运行结果是_______。#include<stdio.h>intmain(){intx=117,i=0;chara[5];do{switch(x%16){case10:a[i]='A';break;case11:a[i]='B';break;case12:a[i]='C';break;case13:a[i]='D';break;case14:a[i]='E';break;case15:a[i]='F';break;default:a[i]='0'+x%16;break;}i++;x=x/16;}while(x!=0);for(x=i-1;x>=0;x--)printf("%c",a[x]);return0;}32、若运行以下程序时输入:100<回车>,则程序的运行结果是_______。#include<stdio.h>intmain(){inta;scanf("%d",&a);printf("%s",(a%2!=0)?"no":"yes");return0;}33、已有定义doublex,y,z,ms,mc,(*fp)();赋值语句fp=mysin;fp=mycos;并且x、y、z均有值。mysin、mycos函数可完成sin(x)和cos(x)的计算,func是用于对x、y、z进行以上运算的通用函数,要对以下数学公式进行计算,请完成函数调用语句中的填空。fs(x,y,z)=sin(x)/(sin(x-y)sin(x-z))+sin(y)/(sin(y-z)sin(y-x))+sin(z)/(sin(z-x)sin(z-y))fc(x,y,z)=cos(x)/(cos(x-y)cos(x-z))+cos(y)/(cos(y-z)cos(y-x))+cos(z)/(cos(z-x)cos(z-y))doublefunc(double(*fnp)(),doublea,doubleb,doublec){doublex;x=(*fnp)(a)/((*fnp)(b)*(*fnp)(c));return(x);}ms=func(fp,_______)+func(fp,y,y-z,y-x)+funccfp,_______);mc=func(fp,x,x-y,x-z)+func(fp,_______)+func(fp,z,z-x,z-y);}四、编程题34、设有一个数列,包含10个数,已按升序排好。现要求编写程序,把从指定位置开始的n个数按逆序重新排列并输出新的完整数列。进行逆序处理时要求使用指针方法。试编程。(例如:原数列为2、4、6、8、10、12、14、16、18、20,若要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2、4、6、16、14、12、10、8、18、20。)35、通过循环按行顺序为一个5×5的二维数组a赋1~25的自然数,然后输出该数组的左下三角。试编程。
参考答案一、填空题1、【1】格式控制符与变量类型不匹配。scanf语句的正确形式应该是:scanf("%f",8.k);【2】未指明变量k的地址。2、【1】编译【2】连接3、【1】顺序结构【2】选择结构【3】循环结构4、双精度型(或double型)5、【1】float【2】double【3】char6、000011117、2*x+4*y==908、【1】0【2】69、z,x,y或z,y,x10、【1】a[0]【2】a[3]二、选择题11、D12、C13、A14、D15、D16、A17、C18、C19、D20、B21、B22、C23、B24、C25、B三、读程序填空26、(1)10(2)口口口囗10(3)56.100000(4)口口口口口口3.141600(5)5.68100e+02(6)口口口3.14160e+00(7)3.1416(8)口口口口囗囗3.1416(注:答案中的囗代表空格)27、a=66,b=E28、-125=-5*5*529、【1】>【2】b!=030、【1】m=0,i=1【2】m+=i31、7532、yes33、【1】x,x-y,x-z【2】z,z-x,z-y【3】y,y-z,y-x四、编程题34、#include<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年产品试制协议样本(2篇)
- 2025年九年级物理教学工作上半年总结(三篇)
- 2025年二年级体育教师工作总结(2篇)
- 城市广场石材运输合同样本
- 服装公司办公楼装修合同
- 健身房装修工程合同-@-1
- 展览馆装修委托合同
- 阳江金平路施工方案
- 2025年度化工安全工程师简易劳动合同
- 油气田废渣运输服务协议
- 课堂精练九年级全一册数学北师大版2022
- 着衣母婴卧像教学设计
- 【课件】DNA片段的扩增及电泳鉴定课件高二下学期生物人教版(2019)选择性必修3
- GB/T 6417.1-2005金属熔化焊接头缺欠分类及说明
- 2023年湖北成人学位英语考试真题及答案
- 《社会主义市场经济理论(第三版)》第七章社会主义市场经济规则论
- 《腰椎间盘突出》课件
- 汉声数学图画电子版4册含妈妈手册文本不加密可版本-29.统计2500g早教
- simotion轮切解决方案与应用手册
- 柴油发电机运行检查记录表格
- DSC曲线反映PET得结晶度
评论
0/150
提交评论