2023年甘孜职业学院公共课《C语言》科目期末试卷B(有答案)_第1页
2023年甘孜职业学院公共课《C语言》科目期末试卷B(有答案)_第2页
2023年甘孜职业学院公共课《C语言》科目期末试卷B(有答案)_第3页
2023年甘孜职业学院公共课《C语言》科目期末试卷B(有答案)_第4页
2023年甘孜职业学院公共课《C语言》科目期末试卷B(有答案)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

2023年甘孜职业学院公共课《C语言》科目期末试卷B(有答案)一、填空题1、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。_______;a=b;b=c;_______;2、设有chara,b;若要通过a&b运算屏蔽掉a中的其他位,只保留第2和第8位(右起为第1位),则b的二进制数是_______。3、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。4、在C语言中的实型变量分为两种类型,它们是_______和_______。5、若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为_______,n的值为_______。6、函数swap(intx,inty)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为_______,原因是_______。a[o]=1;a[1]=2;swap(a[o],a[1]);7、字符串"ab\n\\012\\\"”的长度是_______。8、设a、b、c均为int型变量且a=1,b=4,c=3,则表达式!(a<b)||!c&&1的值是_______。9、设y为int型变量,请写出描述“y是奇数”的表达式_______。10、若想输出b数组的10个元素,则下面存在错误的程序行是_______。(每个程序行前面的数字代表行号。)1intmain()2{intb[10]={1,3,5,7,9,2,4,6,8,10},k;3for(k=0;k<10;k++,b++)4printf("%4d",*b);5return0;6}二、选择题11、下面4个选项中,是合法浮点数的选项是。()A.+1e+1B.-.60C.123eD.-e35e-9.412e-41.2e-4.8e-403e2-8e5+2e-15.e-012、若有代数式3acbc,则不正确的C语言表达式是()。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*313、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是()A.scanf("%d%lx,%le",&x,&y,&z);B.scanf("%2d*%d%1f",&x,&y,&z);C.scanf("%x%*d%o”,&x,&y);D.scanf("%x%0%6.2f",&x,&y,&z);14、若有以下定义,则正确的赋值语句是()。inta,b;floatx;A.a=1,b=2,B.b++;C.a=b=5D.b=int(x);15、对for(表达式1;;表达式3)可理解为()。A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)16、以下叙述正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误17、下面是对数组s的初始化,其中错误的语句是()。A.chars[5]={"abc"};B.chars[5]={'a','b','c'};C.chars[5]="";D.chars[5]="abcde";18、以下程序有语法性错误,有关错误原因的正确说法是()。#include<stdio.h>intmain(){intG=5,k;voidprt_char();-----k=prt_char(G);---}A.语句voidprt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线19、下面程序段的运行结果是()charstr[]="ABC",*p=str;printf("%d\n",*(p+3));A.67B.0C.字符C的地址D.字符C20、若有定义:int(*p)[4];则标识符p()。A.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.说明不合法21、下面程序段的运行结果是()。inta[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf("%3d",a[i]);}A)-40404B)-40403C)-40443D)-4044022、以下程序()。#include<stdio.h>intmain(){inta=5,b=0,c=0;if(a=b+C.printf("***\n");elseprintf("$$$\n");return0;}A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$23、以下程序的输出是()。#include<stdio.h>intmain(){inta=5,b=8,c=3,max;max=a;if(c>B.if(c>A.max=c;elseif(b>A.max=b;printf("max=%d\n",max);return0;}A.max=8B.max=5C.max=3D.无输出结果24、以下程序的运行结果是()。#include<stdio.h>voidfun(intx){if(x/2>0)fun(x/2-2);printf("%d”,x);}intmain(){fun(20);printf("\n");return(0);}A.2082-1B.2820C.8D.-1282025、下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空()。(提示:只要算出1000!中含有因数5的个数即可)for(k=0,i=5;i<=1000;i+=5){m=i;while(【】){k++;m=m/5;}}A.m%5==0B.m=m%5==0C.m%5==0D.m%5!=0三、读程序填空26、若运行以下程序时输入:-2<回车>,则程序的输出结果是_______。#include<stdio.h>intmain(){inta,b;scanf("%d",&a);b=(a>=0)?a:-a;printf("b=%d",b);return0;}27、以下程序的功能是:输入3个整数,按从大到小的顺序进行输出。请填空。#include<stdio.h>intmain(){intx,y,z,c;scanf("%d%d%d",8.x,&y,8.z);if(_______){c=y;y=z;z=c;)if(_______){c=x;x=z;z=c;}if([3]){c=x;x=y;y=c;}printf("%d,%d,%d",x,y,z);return0;}28、已知字母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;}29、以下程序的输出结果是_______。#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;}30、下面程序的功能是:从键盘输入一个整数m(4≤m≤20),输出如下的整数方阵(存入二维数组aa)。例如,若输入4和5,则分别输出:请改正程序中的错误语句,使它能得出正确的结果。改正后的语句是_______和_______。(注意:不得增行或删行,也不得更改程序的结构。)#include<stdio.h>#defineM20voidaMatrix(intn,intxx[][M]){inti,j;for(j=0;j<n;j++)xx[o][i]=(n-j)*(n-j);for(i=1;i<n;i++){for(j=0;j<n;j++)/*错误语句_______*/xx[i][j]=xx[i-1][j+1];xx[i][n一1]=xx[i-1][0];}intmain(){intaa[M][M],i,j,m;printf("\nPleaseenteranintegernumberbetween4and20:");scanf("%d",8&.m);aMatrix(m,aa);printf("\nThe%d*%dmatrixgenerated:",m,m);for(i=0;i<m;i++){printf(\n");for(j=0;j<m;j++)printf("%4f",aa[i][j]);/*错误语句_______*/return(0);}}31、下面程序段的运行结果是_______。charx[]="theteacher";inti=0;while(x[十+i]!='\o')if(x[i-1]==t)printf("%c",[i]);inti=0;while(x[十+i]!='\o')if(x[i-1]=='t')printf("%c",x[]);32、下面程序的运行结果是_______。#include<stdio.h>intmain(){inti,j;for(i=0;i<=3;i++){for(j=0;j<=5;j++)if(i==0||j==0||i==3||j==5)printf("*");elseprintf("");printf(\n");return0;}33、以下程序的运行结果是_______。#include<stdio.h>#defineN6voidYH(int(*x)[N]){inti,j;(*x)[0]=1;for(i=1;i<N;i++){(*(x十i))[0]=(*(x+i))[i]=1;for(j=1;j<i;j++)(*(x十i))[i]=(*(x+i-1))[j-1]+(*(x+i-1))[];}}intmain(){intx[N][N],i,j;YH(x);for(i=0;i<N;i++){for(j=0;j<=i;j++)printf("%4d",x[i][j]);printf("\n");return(0);}四、编程题34、编写程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。35、已有变量定义语句doublea=5.0,p;intn=5;和函数调用语句p=mypow(a,n);用以求a的n次方。请编写doublemypow(doublex,inty)函数。doublemypow(doublex,inty){}

参考答案一、填空题1、【1】t=a【2】c=t2、100000103、【1】取地址【2】按位与4、【1】单精度型(或:float型)【2】双精度型(或:double型)5、【1】10【2】66、a[0]=1a[1]=2【2】单向值传递,不能返回交换后的值。7、98、09、(y%2)==110、第3行二、选择题11、B12、C13、D14、B15、B16、C17、D18、C19、B20、C21、C22、D23、B24、D25、C三、读程序填空26、b=227、【1】y<z【2】x<z【3】x<y28、a=66,b=E29、(1)10(2)口口口囗10(3)56.100000(4)口口口口口口3.141600(5)5.68100e+02(6)口口口3.14160e+00(7)3.1416(8)口口口口囗囗3.1416(注:答案中的囗代表空格)30、【1】for(j=0;j<n-1;j++)【2】printf("%4d",aa[i][j]);31、he32、****

温馨提示

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

评论

0/150

提交评论