c语言期末试卷_第1页
c语言期末试卷_第2页
c语言期末试卷_第3页
c语言期末试卷_第4页
c语言期末试卷_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

C)函数形参的作用范围只是局限于所定义的函数内。D)子函数必须位于主函数之前。1、2、3、《C语言程序设计A〉试卷(B卷)班级学号姓名、选择题:(每题1分,共计20分)C语言规定:在一个源程序中, main函数的位置(C)A必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后设a为5,执行下列语句后,A)b=a/2 BC)b=a%2b的值不为2的是(C)。)b=6-(--a)D )b=a>3?2:1若a=-14,b=3,则条件表达式a<b?a:b+1的值为( )。8、如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是 ()A)该变量只在该复合语句中有效B)该变量在该函数中有效C)该变量在本程序范围内均有效D)该变量为非法变量9、若x=4,则x*=x+2的值为( )。A)36 B) 24C)18D)2010、下列能正确定义整型变量 a、b和c并为其赋的值1的语句是()。A)inta=b=c=1;B)inta,b,c=1C)a=b=c=1;11、以下关于宏替换的叙述不正确的是(A) 宏替换只是字符替换 BC) 宏替换不占用运行时间)。)D)D)inta=1,b=1,c=1宏名无类型宏替换不占用编译时间4、74、7、D)9A) -14B)-13C)3D)4已知:intn,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是() 。A)1,2B)1,3 C) 2,2D)2,3函数调用语句func((exp1,exp2),(exp3,exp4,exp5)); 中,实参的个数为()。A)1B)2C)4 D)5以下正确的描述是()。A)函数的定义可以嵌套,但函数的调用不可以嵌套。B)函数的定义不可以嵌套,但函数的调用可以嵌套C)函数的定义和函数的调用均不可以嵌套。D)函数的定义和函数的调用均可以嵌套。在C语言中,下面对函数不正确的描述是 () 。A)当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。B)允许函数递归调用。12、有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是()。A)5B)6C)813、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是 ()main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);…}*p表示的是指针变量p的地址*p表示的是变量a的值,而不是变量a的地址0*p表示的是指针变量p的值D)*p只能用来说明p是一个指针变量14、若numna、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为()。A4B )16C)32D)5215、假设指针p已经指向某个整型变量x,则*p相当于()°A&xB )&pC)xD)*x16、若后说明:inta[10]; 则对a数组元素的正确引用旦()。Aa[10]B )a[3.5]C)a[5-3]D)a[-1]TOC\o"1-5"\h\z5、形参为指针变量时,实参必须是数组名。 ()6、用数组名作函数参数时传递的是数组的值。 ()7、全局变量可以被任何一个函数中的任何一个表达式使用。 ()8、一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据 。()9、表达式i++与++i在任何场合功能完全相同。 ()10、赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同 。()三、填空题:(每空2分,共40分)1、在C语言中,一个float型数据在内存中所占的字节数为 4个字节,C源程序的基本单位是函数.17、在C语言中,一维数组的定义方式为:类型说明符数组名( );A)[整型常量表达式]B)[表达式]C)[整型常量] D )[整型表达式]18、以下能对一维数组a进行正确初始化的语句是()。Aina[10]=(0,0.0,0,0);B )inta[10]={};C)inta口 ={0};D)inta[10]={10*1};19、假设指针p1已经指向了某个整型变量,要使指针 p2也指向同一个变量,则下面各项中正确的是( )。A)p2=**p1 B )p2=*&p1C)p2=*p1 D)p2=&*p120、以下关于do-while循环的不正确描述是()。do-while的循环体至少执行一次do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作。D)do-while的循环体可以是复合语句。二、判断题(每题1分,共计10分)TOC\o"1-5"\h\z1、在一个函数内部的复合语句中定义的变量,只在该复合语句范围内有效。 ()2、字符串作为一维数组存放在内存中。 ()3、字符数组中的一个元素存放一个字符。 ()4、字符数组中的最后一个字符必须是 ‘\0'。 ()算法表示的时候使用的三种基本结构是顺序,选择,循环) 。3、以下程序运行后的输出结果是 252137 。main(){inta,b,c;a=25;b=025;c=0x25;printf("%d%d%d\n",a,b,c);}4、以下程序运行后的输出结果是 gae。main(){chara[]="Language",b[]="Programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=7;k++)if(*(p1+k)==*(p2+k))printf("%c”,*(p1+k));}5、 已有定义:intm;floatn,k;charchl,ch2;为使m=3,n=6.5,k=12.6,ch1='a',ch2='A', 输入数据的格式为:36.512.6aA则 对 应 的 scanf 语 句 是%d,%d,&a,&b);(&a,&b)%d,%d,&a,&b);(&a,&b)"a=%d,b=%d,a,b);scanf("%d%f%f%c%c",&m,&n,&k,&ch1,&ch2)6、计算sum=1+1/2+1/4+...+1/50的值,并显示出来。#include<stdio.h>main(){inti=2;floatsum=1.0;while(i<=50 ){sum+=1/—(float)I」i+=2;}printf("sum=%f\n",sum);}7、下面程序的功能是把以下给定的字符按其矩阵格式读入数组 str1中,并输出行列号之和是3的数组元素。voidmain(void){charstE4][3]={'A','b','C','d','E','f7G','h',T,'j','K','i'};intx,y,z;for(x=0;x<4;x++)for(y=0; y<3;y++){z=x+y;if( z==3 )printf("%c\n",str1[x][y]);}}8、通过函数求f(x)的累加和,其中f(x)=x2+1main(){printf("Thesum=%d\n",SunFun(10));}SunFun(intn){intx,s=0;for(x=0;x<=n;x++)s+=F(x _);returns;}F(intx){returnx*x+1;}9、以下程序运行后的输出结果是 _1*3*5*7*9 。main(){chara[]="123456789”,*p;inti=1;p=a;while(*p){if(i%2==0)*p='* ';p++;i++;}puts(a);}10、若有以下定义和语句:int*p[3],a[9],i;for(i=0;i<3;i++)p[i]=&a[3*i];则*p[0]引用的是数组元素a[0] ;*(p[1]+1) 引用的是数组元素 a[4]11、以下程序输入整数 a,b的值,然后交换a,b的值,并输出交换后的结果。voidswap(int*a,int*b){intt;t=*a;*a=*b*b=t;}main(){inta,b;scanf(swapprintf(}12、下面程序的功能是用函数递归方法计算菲波那契数列,请填空完善之。main(){intn,m;scanf("%d',&n);m=fibo(n);printf( "%d,m);}intfibo(n);intn;{if(n==i)return(o);elseif(n==2)return(1);elsereturn( fibo(n-2)+fibo(n-1)}{inti,j,row=0,colum=0,max,temp;inta[4][4];for(i=0;i<=3;i++)for(j=0;j<=3;j++)scanf("%d",&a[i][j]); (2for(i=0;i<=3;i++)for(j=0;j<=3;j++){printf("%5d",a[i][j]);if(j==3)printf("\n");} (2max=a[0][0];for(i=0;i<=3;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;} (2temp=max;max=a[0][0];a[0][0]=temp; (2分)分)分)分)四、编程题(每题10四、编程题(每题10分,共30分)1、打印出以下的杨辉三角形(要求打印出 10行)(10分)111121133114641151010511615201561main()printf("max=%d,row=%d,colum=%d\n",a[0][0],row,colum);}for(i=0;i<=3;i++)for(j=0;j<=3;j++){printf("%5d",a[i][j]);if(j==3)printf("\n");}2、用“冒泡法”对输入的 10个字符按照从小到大的顺序排列 (要求通过函数调用实现).(10分)#defineN10charstr[];main(){voidsort(charstr[]) ; (1 分)inti,flag;for(flag=1;flag==1){printf("\nInputString:\n”);(5 分));i++)(5 分));i++)递归公式为: (10分)(n=0)(n=1)i(x)—(n-1)*Pn-2(x))/n(n>=1)scanf("%S',&str);if(strlen(str)>N)printf("Stringtoolong,Inputagain!elseflag=0;}sort(str); (1printf( "Stringsorted:\n ”);for(I=0;I<N;i++)printf("%C,str[i]);voidsort(charstr[]){inti,j;chart;for(j=1;j<N;j++)for(i=0;(I<N-j)&&(str[i]!= '\0if(str[i]>str[i+1]){t=str[i];str[i]=str[i+1];str[i+1]=t;}}3、用递归的方法求N阶勒让德多项式的值,(1TOC\o"1-5"\h\zPn(X)= 'X((2n-1)*x-Fprintf("n=%d,x=%d,n,x); (2 分)printf("P%d(%d)=%6.2f,n,x,p(n,x)); (1 分)}floatp(intn,intx){if(n==0)return(1);elseif(n==1)return(x);elsereturn(((2*n-1)*x*p((n-1),x-(n-1)*p((n-2),x))/n);} (5 分)main(){intx,n;floatp(int,int); (2 分)printf("\nInputn&x:");scanf("%d,%d,&n,&x);11本题得分、判断题(本大题共10空,每小题1分,共10分)本题得分12345678910本题得分本题得分诚信考试承诺我承诺:追求真知,展示真我,诚实守信,杜绝作弊。

温馨提示

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

评论

0/150

提交评论