文档介绍:该【2022年渤海理工职业学院公共课《C语言》科目期末试卷B(有答案) 】是由【小屁孩】上传分享,文档一共【17】页,该文档可以免费在线阅读,需要了解更多关于【2022年渤海理工职业学院公共课《C语言》科目期末试卷B(有答案) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..2022年渤海理工职业学院公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。2、下面程序段是找出整数的所有因子。请填空。scanf("%d",&x);i=1;for(;_______;){if(x%i==0)printf("%3d",i);i++;}3、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。a[0]=1;a[1]=2;swap(a,2);4、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。5、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。6、设有以下宏定义:#defineWIDTH80#defineLENGTH(WIDTH+40)则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。:..7、与表达式x^=y-2等价的另一书写形式是_______。8、在C语言源程序中,一个变量代表【】。9、一个C语言源程序由若干函数组成,其中至少应含有一个________10、下面程序段的运行结果是_______。chars[20]="abcd";char*sp=s;sp++;puts(strcat(sp,"ABCD"));二、选择题11、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()、表达式18/4*sqrt()/8值的数据类型为()、,,可以发现注释中的拼写错误14、C语言规定:在一个源程序中,main函数的位置():..、若有说明:char*language[]={"FORTRAN","BASIC","PASCAL",JAVA","C"};则以下不正确的叙述是()+2表示字符串”PASCAL”的首地址B.*language[2],它包含5个元素,,它包含5个元素,其初值分别是:"FORTRAN","BASIC","PASCAL","JAVA","C"16、阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果#include<>intmain(){intx,y,z;scanf("%d%d%d”,.&y,&z);printf("x+y+z=%d\n",x+y+z);return0;}+y+z=+y+z=+z=、设有以下程序段:intx=0,s=0;while(!x!=0)s+=++x;printf("%d”,s);则():..、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是()、以下不正确的定义语句是()。[5]={,,,,};[5]={0,1,3,5,7,9};[]={'1','2','3','4','5'};[]={'\x10','\xa','\x8'};20、下面程序段(每行代码前面的数字表示行号)()。1floata[10]={};2inti;3for(i=0;i<3;i++)scanf("%d",&a[i]);4for(i=1;i<10;i++)a[0]=a[0]+a[i];5printf("%f\n",a[o]);、以下程序的输出是()。#include<>intmain(){intx=2,y=-1,z=2;if(x<y):..if(y<0)z=0;elsez+=1;printf("%d\n",z);return0;A)、当运行以下程序时,从键盘输入:ab<回车>C<回车>def<回车>则下面程序的运行结果是()。#include<>#defineN6intmain(){charc[N];inti=0;for(;i<N;c[i]=getchar(),i++);for(i=0;i<N;i++)putchar(c[i]);return0;}:..、下面程序的运行结果是()。#include<>#include<>intmain(){chara[80]="AB',b[80]="LMNP";inti=0;strcat(a,B.;while(a[i++]!=‘\o’)b[i]=a[i];puts(B.;return0;}、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数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);}=mid-=mid+=mid+=mid-125、下面程序段的运行结果是()。for(x=3;x<6;x++)printf((x%2)?("**%d”):(“##%d\n”),x);A)**3B)##3C)##3D)**3##4##4**4**4##5**5**5##5三、读程序填空26、以下程序的输出结果为_______。#include<>intmain(){charc='x';printf("c:dec=%d,oct=%o,hex=%x,ASCIl=%c\n",c,c,c,c);return0;:..}27、以下程序的输出结果为_______。#include<>intmain(){shorti;i=一4;printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);return0;}28、以下程序的功能是:输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变。请填空。#include<>intmain(){charch;scanf("%c",8&.ch);if(_______)ch=ch+32;elseif(ch>='a′8.&ch<='z′)_______;printf("%c",ch);return0;}29、以下程序段的功能是:针对输入的截止日期(年一yend;月一mend;日—dend)和出生日期(yman,mman,dman),计算出某人的实际年龄。请填空。:..intyend,mend,dend,yman,mman,dman,age;age=yend-yman;if(mend_______mman)age--;elseif(mend_______mman&&dend_______dman)age--30、已定义一个含有30个元素的数组s,函数favl的功能是按顺序分别赋予各元素从2开始的偶数,函数fav2则按顺序每5个元素求一个平均值,并将该值存放在数组w中。请填空。#include<>#defineSIZE30voidfavl(floats[]){inti;floatk=;for(i=0;i<SUZE;i++){_______;k+=2;}}voidfav2(floats[],floatw[]){floatsum;intk,i;sum=;for(k=0,i=0;i<SIZE;i++){sum+=s[];if((i+1)%5==0):..{w[k]=sum/5;_______;k++;}intmain(){floats[SIZE],w[SIZE/5];inti;favl(s);for(i=0;i<SIZE;i++)printf("%.f",s[i]);printf("\n");fav2(s,w);for(i=0;i<SIZE/5;i++)printf("%.f",w[i]);return0;}31、下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一二维数组b中,并按矩阵形式输出a和b。请填空。456456例如,数组a:[]数组b:[]123123#include<>intmain(){inta[2][3]={4,5,6,,3),b[2][3];inti,j;printf("arraya:\n");:..for(i=0;i<=1;i++){for(j=0;j<3;j++)printf("%5d",a[i][j]);printf("\n");___________for(_________;i++)b[i][0]=a[i][2];printf("arrayb:\n");for(i=0;i<2;i++){for(j=0;j<3;j++)printf("%5d",b[i][j]);___________;return0;}}32、当运行以下程序时,从键盘输入“一10<回车>”,则下面程序的运行结果是_______。#include<>intmain(){inta,b,m=1,n=1;scanf("%d%d”,&a,&b);do{if(a>0){m=2*n;b++;}:..else{n=m+n;a+=2;b++;}}while(a==b);printf("m=%dn=%d",m,n);return0;}33、本程序用来计算一个英文句子中最长单词的长度(字母个数)max。假设该英文句子中只含有字母和空格,在空格之间连续的字母串称为单词,。请填空。#include<>intmain(){char*p,a[]={"Iamhappy."};intmax=0,1=0;p=a;while(*pl='.'){while(((*p<='Z')&&(*p>='A'))||((*p<='z')&&(*p>='a'))){[1]}if([2])[3];1=0;p++;printf("max=%d",max);return(0);}:..四、编程题34、定义一个带参数的宏,用来判断一个字符是否为字母。编写主函数,从键盘输入一个字符,调用上述宏输出判断结果。35、输入两个整数,求它们相除的余数。用带参的宏编程来实现。:..参考答案一、填空题1、【1】格式控制符与变量类型不匹配。scanf语句的正确形式应该是:scanf("%f",);【2】未指明变量k的地址。2、i<=x3、【1】a[0]=2a[1]=1【2】因实参是地址,已对指定地址中的内容进行了交换。4、【1】float【2】double【3】char5、【1】按位与【2】地址与6、24007、x=xy-2或x=x*(y-2)8、内存中的一个存储单元9、主函数(或main函数)10、bedABCD二、选择题11、B12、C13、C14、C:..15、D16、D17、B18、D19、B20、C21、B22、D23、D24、C25、D三、读程序填空26、c:dec=120,oct=170,hex=78,ASCII=x27、i:dec=-4,oct=177774,hex=fffc,unsigned=6553228、【1】ch>='A'&&.ch<='z'【2】ch=ch-3229、【1】<【2】==【3】<30、【1】s[i]=k【2】sum=031、【1】b[i][j+1]=a[i][i]【2】i=0;i<2【3】printf("\n")32、m=4n=233、【1】i++;p++;【2】l>max【3】max=l:..四、编程题34、/*判断是否是字母*/#include<>#defineISALPHA(ch)((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))?1:0intmain(){charc;printf("Enteraletter:");scanf("%c”,8c);if((c))printf("%cisanalpha.\n",c);elseprintf("%cisnotanalpha.\n",c);return0;}35、/*求两个整数相除的余数*/#defineMOD(a,b)(a%b)intmain(){inta,b;printf("inputtwointegera,b:");scanf("%d,%d",&a,&b);printf("amodbis:%d\n",MOD(a,b));return0;:..}