2022年北京交通大学公共课《C语言》科目期末试卷A(有答案)_第1页
2022年北京交通大学公共课《C语言》科目期末试卷A(有答案)_第2页
2022年北京交通大学公共课《C语言》科目期末试卷A(有答案)_第3页
2022年北京交通大学公共课《C语言》科目期末试卷A(有答案)_第4页
2022年北京交通大学公共课《C语言》科目期末试卷A(有答案)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

2022年北京交通大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。2、结构化程序由________、________、________3种基本结构组成。3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、在C语言的赋值表达式中,赋值号左边必须是_______5、表达式x=6应当读做_______6、下面程序可求出图中方括号内的元素之积,请填空。#include<stdio.h>intmain(){intx[3][3]={7,2,1,3,4,8,9,2,6};ints,*p;p=_______;s=*p*_______;printf("product=%d",s);return(0);}7、下面程序段中循环体的执行次数是_______。a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、假设变量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;_______;9、执行以下程序时,若从第一列开始输入数据,为使变量a=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。#include<stdio.h>intmain(){inta,b;floatx,y;charcl,c2;scanf("a=%db=%d",&.a,&.b);scanf("x=%fy=%",8.x,8.y);scanf("c1=%cc2=%c”,8.cl,8.c2);printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c",a,b,x,y,cl,c2);return0;}10、设有如下定义:#defineSWAP(T,X,Y){T=X;X=Y;Y=T;}以下程序段将通过调用宏实现变量x和y内容的交换,请填空。Doublex=2.5,y=6.4,z;SWAP(_______);二、选择题11、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是()12、C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中任一种字符13、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&C.;为使变量a的值为1,b的值为3,c的值为2;从键盘输入数据的正确形式应当是()。(注:囗表示空格)A.132<回车>B.1,3,2<回车>C.a=1囗b=3囗c=2<回车>D.a=1,b=3,c=2<回车>14、以下C程序的运行结果是。(注:口表示空格)#include<stdio.h>intmain(){longy=-43456;printf("y=%-8ld\n",y);printf("y=%-08ld\n",y);printf("y=%08ld\n",y);printf("y=%+8ld\n",y);return0;}A.y=囗囗-43456y=-囗囗43456y=-0043456y=-43456B.y=-43456y=-43456y=-0043456y=+囗-43456C.y=-43456y=-43456y=-0043456y=囗囗-43456D.y=囗囗-43456y=-0043456y=00043456y=+4345615、判断字符串s1是否大于字符串s2,应当使用()。A.if(s1>s2)B.if(strcmp(s1,s2))C.if(strcmp(s2,s1)>0)D.if(strcmp(s1,s2)>0)16、一个C语言程序由()。A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成17、下列程序段不是死循环的是()。inti=100;while(1){i=i%100+1;if(i>100)break;B.for(;;);C.intk=0;do{++k;}while(k>=0);D.ints=36;while(s);--s;18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()A.地址传递B.单向值传递C.由实参传给形参,再由形参传回给实参D.由用户指定传递方式19、下面程序段的运行结果是()。char*s="abcde";s+=2;printf("%d',s);A.cdeB.字符cC.字符c的地址D.无确定的输出结果20、若有定义:inta[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的正确引用为()。A.*(a[i]+j)B.(a+i)C.*(a+j)D.a[i]+j21、以下程序的正确运行结果是()。#include<stdio.h>intf(intA.;intmain(){inta=2,i;for(i=0;i<3;i++)printf("%4d",f(A.);return(0);}intf(intA.{intb=0;staticintc=3;b++;c++;return(a+b+C.;}A.777B.71013C.7911D.78922、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请选择填空。()#include<stdio.h>intmain(){chars[80],c1,c2='';inti=0,num=0;gets(s);while(s[i]!='\o'){c1=s[i];if(i==0)c2='';elsec2=s[i-1];if(【】)num++;i++;printf("Thereare%dwords.\n",num);return0;}A.c1==′′&&c2==''B.cl!=''&&c2==''C.c1==''&&c2!=''D.cl!=''&&c2!=''23、下面程序的功能是将字符串s中所有的字符c删除。请选择填空()。#include<stdio.h>intmain(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!='\o';i++)if(s[i]!='c)[];s[j]='\o';puts(s);return0;}A)s[j++]=s[i]B)s[++j]=s[i]C)s[j]=s[];j++D)s[j]=s[i]24、当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.625、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空()。#include<stdio.h>intmain(){inta,b,t;scanf("%d%d",&a,&b);while([]){if(a>b){t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,8.b);return0;}A)!a=bB)a!=bC)a==bD)a=b三、读程序填空26、以下程序的运行结果是_______。#include<stdio.h>intmain(){intm=177;printf("%o\n",m);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、以下程序的输出结果是_______。#include<stdio.h>intmain(){inta=2,b=7,c=5;switch(a>0){case1:switch(b<0){case1:printf("@");break;case2:printf("!");break;case0:switch(c==5){case0:printf("*");break;case1:printf("#");break;default:printf("#");break;default:printf("&");}printf("\n");return0;}29、以下程序的功能是判断输入的某个年份是否是闰年。请填空。#include<stdio.h>intmain(){inty,f;scanf("%d",&y);if(y%400==0)f=1;elseif(_______)f=1;else_______;if(f)printf("%dis",y);elseprintf("%disnot",y);printf("aleapyear\n");return0; }30、当运行以下程序时,从键盘输入“一10<回车>”,则下面程序的运行结果是_______。#include<stdio.h>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;}31、阅读下面程序,完成下列问题中的填空。问题(1)此程序在调用函数f后的运行结果是_______。(2)若将函数f中的for(j=i+1;j<4;j++)改为for(j=0;j<3一i;j++),则程序的运行结果是_______。#include<stdio.h>voidf(ints[J[4]){inti,j,k;for(i=0;i<3;i++)for(j=i+1;j<4;j++){k=s[i][j];s[i][j]=s[j][i];s[j][i]=k;}intmain(){ints[4][4],i,j;for(i=0;i<4;i++)for(j=0:j<4;j++)s[i][j]=i-j;f(s);for(i=0;i<4;i++){printf("\n");for(j=0;j<4;j++)printf("%4d',s[i][j]);return(0);}32、下面程序的运行结果是_______。#include<stdio.h>intmain(){inta[9]={0,6,12,18,42,44,52,67,94}intx=52,i,n=9,m;i=n/2+1;m=n/2;while(m!=0)if(x<a[i]){i=i-m/2-1;m=m/2;}elseif(x>a[i]){i=i+m/2+1;m=m/2;}elsebreak;printf("Theindexis:%d\n",i);return0;}33、以下程序的功能是:通过指针操作,找出3个整数中的最小值并输出。请填空。#include<stdio.h>#include<stdlib.h>intmain(){int*a,*b,*c,num,x,y,z;a=&x;b=&y;c=&.z;printf("输入3个整数:");scanf("%d%d%d",a,b,c);printf("%d,%d,%d\n",*a,*b,*c);num=*a;if(*a>*b)_______;if(num>*c)_______;printf("输出最小整数:%d\n",num);return(0);}四、编程题34、已有变量定义语句doublea=5.0,p;intn=5;和函数调用语句p=mypow(a,n);用以求a的n次方。请编写doublemypow(doublex,inty)函数。doublemypow(doublex,inty){}35、试定义一个带参的宏swap(x,y),以实现两个整数之间的交换,并利用它将一维数组a和b的值进行交换。

参考答案一、填空题1、03772、【1】顺序结构【2】选择结构【3】循环结构3、主函数(或main函数)4、变量5、将常量6赋给变量x6、【1】&x[0][0]【2】(*(p+4))*(*(p+8))7、38、【1】t=a【2】c=t9、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车>(注:答案中的囗代表空格)10、z,x,y或z,y,x二、选择题11、C12、C13、D14、C15、D16、B17、C18、B

温馨提示

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

评论

0/150

提交评论