2022年福建农林大学公共课《C语言》科目期末试卷B(有答案)_第1页
2022年福建农林大学公共课《C语言》科目期末试卷B(有答案)_第2页
2022年福建农林大学公共课《C语言》科目期末试卷B(有答案)_第3页
2022年福建农林大学公共课《C语言》科目期末试卷B(有答案)_第4页
2022年福建农林大学公共课《C语言》科目期末试卷B(有答案)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022年福建农林大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。2、在C语言源程序中,一个变量代表【】。3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为_______,n的值为_______。5、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。(1)x=(a=4,6*2)(2)x=a=4,6*26、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。请填空。for(x=0;x<=30;x++){y=30一x;if(_______)printf("%d,%d\n",x,y);}8、下面程序段将输出computer。请填空。charc[]="Itisacomputer";for(i=0;_______;i++){_______;printf("%c",c[j]);}9、设有以下宏定义:#defineWIDTH80#defineLENGTH(WIDTH+40)则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。10、设main函数的说明为:intmain(intargc,char*argv[]),且有命令行为:FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。二、选择题11、下面4个选项中,是C语言关键字的选项是()。A.autoB.switchC.signedD.ifEnumtypedefunionstructincludecontinuescanftype 12、在C语言中,要求运算数必须是整型的运算符是()。/B.++C.!=D.%13、一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束14、C语言规定:在一个源程序中,main函数的位置()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后15、若有说明:inta[3][4];,则对a数组元素的非法引用是()。A.a[o][2*1]B.a[1][3]C.a[4-2][o]D.a[o][4]16、已有定义intx;floaty;且执行scanf("%3d%f”,&x,&y);语句,若从第一列开始输入数据12345口678<回车>,则y的值为()。(注:口表示空格)A.无定值B.45.000000C.678.000000D.123.00000017、若需要建立如图9-3所示的存储结构,且已有说明float*p,m=3.14;则正确的赋值语句是()A)p=m;B)p=&m;C)*p=m;D)*p=&m;18、以下程序有语法性错误,有关错误原因的正确说法是()。#include<stdio.h>intmain(){intG=5,k;voidprt_char();-----k=prt_char(G);---}A.语句voidprt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线19、设有以下程序段:intx=0,s=0;while(!x!=0)s+=++x;printf("%d”,s);则()A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次20、以下正确的描述是()。A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句21、以下程序的输出是()。#include<stdio.h>intmain(){intx=2,y=-1,z=2;if(x<y)if(y<0)z=0;elsez+=1;printf("%d\n",z);return0;3B.2C.1D.022、定义如下变量和数组:intk;inta[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是()。for(k=0;k<3;k++)printf("%d",a[k][2-k]);A)357B)369C)159D)14723、对两个数组a和b进行如下初始化:chara[]="ABCDEF";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是()。A.a与b数组完全相同B.a与b长度相同C.a和b中都存放字符串D.a的长度比b长24、以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空()。#include<stdio.h>intsub(intk,intn){intal,a2;a2=k/10;al=k-【】;if((k%3==0&&a2==5)|l(k%3==0&&al==5)){printf("%d",k);n++;returnn;}elsereturn-1;}intmain(){inti,k,n,m;for(k=10;k<=99;k++){m=sub(k,n);if(m!=-1)n=m;}printf("\nn=%d",n);return(O);}A.a2*10B.a2C.a2/10D.a2%1025、下面程序的运行结果是()。#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、已知字母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;}27、已有定义intd=-2;执行以下语句后的输出结果是_______。printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d);28、函数f中的形参a为一个10×10的二维数组,n的值为5,以下程序的运行结果为_______。voidf(inta[10][10],intn){inti,j,k;j=n/2+1;a[1][j]=1;i=1;for(k=2;k<=n*n;k++){i=i-1;j=j+1;if((i<1)&&(j>n)){i=i+2;j=j-1;}else{if(i<1)i=n;if(j>n)j=1;i}f(a[i][j]==0)a[i][j]=k;else{i=i+2;j=j-1;a[i][j]=k;}}}29、以下程序的运行结果是_______。#include<stdio.h>voidadd(intx,inty,intz);intmain(){intx=2,y=3,z=0;printf("(1)x=%dy=%dz=%d\n",x,y,z);add(x,y,z);printf("(3)x=%dy=%dz=%d\n",x,y,z);return(0);voidadd(intx,inty,intz)}{z=x+y;x=x*x;y=y*y;printf("(2)x=%dy=%dz=%d\n",x,y,z);}30、下面程序的运行结果是_______。#include<stdio.h>intmain(){inti,t,sum=0;for(t=i=1;i<=10;){sum+=t;++i;if(i%3==0)t=-i;elset=i;}printf("sum=%d,sum);return0;}31、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中。请填空。#include<stdio.h>intmain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("arraya:\n");for(i=0;i<=1;i++){for(j=0;_______;j++){printf("%5d",a[i][j]);_______;}printf("\n");}printf("arrayb:\n");for(i=0;_______;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}return0;}32、为了使以下程序的输出结果为s=1,t=5,输入值a和b应满足的条件是_______。#include<stdio.h>intmain(){ints,t,a,b;scanf("%d,%d”,&a,&b);s=1;t=1;if(a>0)s=s+1;if(a>b)t=s+t;elseif(a==b)t=5;elset=2*s;printf("s=%d,t=%d",s,t);return0;}33、下面程序的功能是检查字符串s中左括号“(”的个数和右括号“)”的个数,如果个数相同或者右括号的个数少于左括号的个数,函数返回1,否则返回0。请填空。#include<stdio.h>intcheck(char*s);intmain(){charc[80];intd;gets(c);d=check(c);printf("d=%d",d);return(0);intcheck(char*s){int1=0,r=0;while(*s!='\o'){if(*s=='(')1++;elseif(*s==)')r++[1]if([2])return(1);elsereturn(0);}四、编程题34、假设x,y是整数,编写程序求xy的最后3位数,要求x、y从键盘输入。35、设有一个unsignedlong型整数,现要分别将其前2个字节和后2个字节作为2个unsignedint型整数输出(设一个int型数据占2个字节),试编一函数partition实现上述要求。要求在主函数中输入该long型整数,在函数partition中输出结果。

参考答案一、填空题1、【1】格式控制符与变量类型不匹配。scanf语句的正确形式应该是:scanf("%f",8.k);【2】未指明变量k的地址。2、内存中的一个存储单元3、主函数(或main函数)4、【1】10【2】65、【1】12【2】46、03777、2*x+4*y==908、【1】i<=7【2】j=i+89、240010、【1】4【2】1二、选择题11、B12、D13、A14、C15、D16、B17、B18、C19、B20、B21、B22、A23、D24、A25、B三、读程序填空26、a=66,b=E27、*d(1)=-2*d(2)=囗-2*d(3)=-2囗**d(4)=fffe*d(5)=囗囗fffe*d(6)=fffe囗*(注:答案中的囗代表空格)28、打印5阶幻方:1724181523571416461320

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论