1 / 18
文档名称:

2022年山东理工职业学院公共课《C语言》科目期末试卷A(有答案).pdf

格式:pdf   大小:1,225KB   页数:18页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2022年山东理工职业学院公共课《C语言》科目期末试卷A(有答案).pdf

上传人:1781111**** 2024/5/7 文件大小:1.20 MB

下载得到文件列表

2022年山东理工职业学院公共课《C语言》科目期末试卷A(有答案).pdf

相关文档

文档介绍

文档介绍:该【2022年山东理工职业学院公共课《C语言》科目期末试卷A(有答案) 】是由【1781111****】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【2022年山东理工职业学院公共课《C语言》科目期末试卷A(有答案) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..2022年山东理工职业学院公共课《C语言》科目期末试卷A(有答案)一、填空题1、C语言的源程序必须通过【】和【】后,才能被计算机执行。2、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。a[0]=1;a[1]=2;swap(a,2);3、下面add函数的功能是求两个参数的和,并将和值返回调用函数。函数中错误的部分是_______,改正后为_______。voidadd(floata,floatb){floatc;c=a+b;returnc;}4、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。a+=_______;b=a-_______;a-=_______;5、假设变量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;_______;6、若x和a均是int型变量,则执行表达式(1)后的x值为_______,执行表达式(2)后的x值为_______。:..(1)x=(a=4,6*2)(2)x=a=4,6*27、字符串的长度是_______。8、以下程序段通过移动指针变量m,给如图9-7所示连续动态存储单元赋值。请填空。(假设程序段中的所有变量均已正确说明。)for(k=0;k<10;k++,m++)scanf(,_______);9、若有以下定义和语句,在程序中可通过指针数组p,用*(p[i]+j)等4种形式引用数组元素s[i][j],另3种形式分别是:_______、_______和_______。(假设i、j已正确说明并赋值。)ints[10][6],*p[10];for(i=0;i<10;i++)p[i]=s[i];10、设x为无符号整数。表达式x^(~(~0<<n)<<(p+1-n)))的作用是将x中从第p位开始的n位求反(1变0,0变1),其他位不变。请按表达式的求值顺序写出分解步骤,并解释含义。__________________________________二、选择题11、已知各变量的类型说明如下:inti=8,k,a,b;unsignedlongw=5;doublex=,y=;则以下正确的表达式是()。:..A..a+=a-=(b=4)*(a=3)B..a=a*3=26C..x%(一3)D..y=float(i)12、下面4个选项中,是不合法的整型常量的选项是()。A.--0f1B.-0XcdfC.-018D.-0x48eg0xfff017999-、,,可以发现注释中的拼写错误14、以下叙述不正确的是(),注释说明只能位于一条语句的后面15、若用数组名作为函数调用的实参,则传递给形参的是()、若有以下定义,则正确的赋值语句是()。inta,b;floatx;:..=1,b=2,++;=b==int(x);17、设有程序段:t=0;while(printf()){t++;if(t<3)break;}下面描述正确的是()。'0'、若有以下程序段:inta[]={4,0,2,3,1},i,j,t;for(i=l;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]{a[j+1]=a[j];j--;}a[j+1]=t;则该程序段的功能是()。(升序)(降序)(升序)(降序)19、若有定义:inta[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;则下面程序段的输出结果是()。for(k=0;k<4;k++)q[k]=&a[k*3];:..printf(,q[3][0]);,结果不确定20、若有以下说明和语句:,,,,);char**q;q=language+2;则语句printf(,*q);()。[2][2]元素的值,,无法得到确定的输出21、以下程序的输出是()。#include<>intmain(){intx=1;if(x=2)printf();elseif(x<2)printf(,x);elseprintf();return0;}:..22、下面程序的运行结果是()。#include<>intmain(),c;intk;for(k=2;(c=str[k])!;k++){switch(C.{case'I':++k;break;case'L':continue;default:putchar(C.;continue;putchar('*’);}return0;}***、下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。请选择填空。#include<>#include<>intmain(),;charc[80],*p;:..inti=0,j=0,k=0;while(a[i]!!){if(a[i]<b[j]){c[k]=a[i];i++}else{【】}k++;};if()p=b+j;elsep=a+i;strcat(c,p);puts(C.;return0;}[k]=a[i];i++;[k]=a[j];i++;[k]=a[i];j++;[k]=a[j];j++;24、下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空()。#include<>intmain(){intm=0,n=0;charc;while((c=getchar())!='){if(c>='A'&&c<='Z)m++;if(c>='a′&&.c<='z)n++;:..printf(,m<n?【】);return0;}::nC)m:mD)n:n25、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A',B’,C.;则符合程序段运行结果的选项是()。voidmove(chargetone,charputone){printf(——,getone,putone);voidhanoi(intn,charone,chartwo,charthree){if(n==1)move(one,three);else{hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);}}A)A-->CB)A-->CC)A-->CD)A-->CA-->BA-->BA-->BA-->BC-->BC-->AC-->BC-->BB-->AA-->BA-->CA-->CC-->BB-->CB-->AA—->BA-->CA-->CB-->CB-->C:..A-->BA-->BA-->CA-->C三、读程序填空26、以下程序的运行结果是_______。#include<>intmain(){intm=177;return0;}27、以下printf语句中的负号的作用是_______,该程序的输出结果是_______。#include<>intmain(){intx=12;doublea=;printf(,x);printf(一,x);printf(,a);return0;}28、以下程序的功能是求3个数的最小公倍数。请填空。:..intmaxintx,inty,intz){if(x>>z)return(x);elseif(_______)return(y);elsereturn(z);intmain(){intx1,x2,x3,i=1,j,x0;printf();scanf(,,&.x2,);x0=max(xl,x2,×3);while(1){j=x0*i;if(_______)break;i=i+1;printf(,xl,x2,x3,j);return(0);}29、以下程序的功能是用二分法求方程2x3-4x2+3x-6=0的根,。请填空。#include<>floatf(floatx){return(2*x*x*x*x-4*x*x+3*x-6);}:..{floatm=-100,n=90,r;r=(m+n)/2;while(f(r)*f(n)!=0){if(_______)m=r;Elsen=r:if(_______)break:r=(m+n)/2;}return(0);}30_______。#include<>intmain(){intx,y,z;x=3;y=z=4;printf(,,(x>=y>=x)?1:0);printf(,z>=y&&y>=x);return0;:..31_______。#include<>intmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},i,k;k=a[8];for(i=8;i>=3;i-一)a[i+1]=a[i];a[3]=k;for(i=0;i<10;i+=2)printf(,a[i]);return0;}32、下面程序的功能是完成用100元人民币换成1元、2元、5元的所有兑换方案。请填空。#include<>intmain(){inti,j,k,L=1;for(i=0;i<=20;i++)for(j=0;j<=50;j++){k=_______;if(_______):..,i,j,k);L=L+1;return0;}33、以下程序的运行结果是_______。#include<>voidfun(int*b,intn,int*s){inti;*s=0;for(i=1;i<=n;i++)*s=*s+*(b+i);intmain(){intx=1,a[]={2,3,4,5,6};fun(a,3,&x);printf(,x);return(0);}四、编程题:..intx=57;isprime(x);函数isprime()用来判断一个整型数a是否为素数;若是素数,则函数返回1,否则返回0。请编写isprime函数。intisprime(inta){}35、编写程序,统计d输入的命令行中第二个参数所包含的英文字符个数。:..一、填空题、【1】编译【2】连接2、【1】a[0]=2a[1]=1【2】因实参是地址,已对指定地址中的内容进行了交换。3、【1】voidadd(floata,floatb)【2】floatadd(floata,floatb)4、【1】b【2】b【3】b5、【1】t=a【2】c=t6、【1】12【2】47、98、m9、【1】p[i][j]【2】(*(p+i))[j]【3】*(*(p+i)+j)10、【1】~0得到一个全1的数【2】(~0<<n)得到一个左端几个1,右端全0的数【3】~(~0<<n)得到一个左端为0,右端几个1的数【4】~(~0<<n)<<(p+1-n)将几个1移到以p为起点的位置【5】x^(~(~0<<n)<<(p+1-n))对x中的指定位数用异或求反二、选择题11、A12、D13、C:..14、D15、A16、B17、B18、B19、C20、C21、A22、B23、D24、A25、C三、读程序填空26、26127、【1】输出数据左对齐【2】囗囗囗012##12口囗囗囗######(注:答案中的囗代表空格)28、【1】y>x&&y>z【2】j%x1==0&&j%x2==0&&j%x3==0:..29、【1】f(r)*f(n)<0【2】n-m<、0,131、1346832、【1】100-i*5-j*2【2】k>=033、12四、编程题34、intisprime(inta){inti;for(i=2;i<sqrt((double)a);i++)if(a%i==0)return0;return1;}35、#include<>#include<>intmain(intargc,char*argv[]){char*str;intnum=0;if(argc==2){str=argv[1];while(*str)if(isalpha(*str++))num++;:..printf(,num);}return0;}