一c语言试题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

一、单项选择题(20分,每题2分)1.程序段int*p,a;p=&a;a=10;printf(%d,p);的输出应为:A)10B)0C)不能确定D)语法错误2.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A)单向值传递B)地址传递C)相互传递D)由用户指定方式3.以下语句或语句组中,能正确进行字符串赋值的是。A)char*sp;*sp=right!;B)chars[10];s=right!;C)chars[10];*s=right!;D)char*sp=right!;4.for(i=0;i10;i++)if(i〈=5)break;则循环结束后i的值为A)0B)1C)5D)105.有以下程序main(){intm,n,p;scanf(m=%dn=%dp=%d,&m,&n,&p);printf(%d%d%d\n,m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是。A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)1234567896.C语言中,最基本的数据类型包括:A)整型、实型、逻辑型B)整型、字符型、数组C)整型、实型、字符型D)整型、实型、结构体7.以下说法正确的是A)C程序总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main()函数中定义C)C程序总是从main()函数开始执行D)C程序的main()函数必须放在程序的开始部分8.程序段int*p,a=1;p=&a;*p=10;a的值为:A)1B)10C)不能确定D)119.以下定义语句中,错误的是A)inta[]={1,2};B)char*a[3];C)chars[10]=test;D)intn=5,a[n];10.假定int类型变量占用两个字节,有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是A)3B)6C)10D)20二、填空题(30分,每空2分)1.已知字符A的ACSII码值为65,以下语句的输出结果是(1)。charch=’B’;printf(%c%d\n,ch,ch);2.’a’在内存中占(2)个字节,”a”在内存中占(3)个字节。3.若有inta[3][2]={{1},{3,2},{4,5}};,则a[1][1]的值是(4)。4.有以下程序,执行后输出结果是(5)。main(){intt=1,i=5;for(;i=0;i--)t*=i;printf(%d\n,t);}5.在循环语句中,break语句的作用是(6),continue语句的作用是(7)。6.下面程序段将字符数组b连接到数组a的后面。main(){chara[20]=.Iam;charb[]=.astudent.;inti,j;i=strlen(a);for(j=__(8)___;b[j]!='\0';j++){a[__(9)__]=b[__(10)__];}a[___(11)__]=___(12)___;}7.for(表达式1;表达式2;表达式3)语句组的执行顺序是先求解表达式1、再___(13)______、如果成立则执行___(14)____、然后___(15)______。三、写出程序的运行结果(30分,每题10分)1.写出程序运行后的输出结果。intf(intb[][4]){inti,j,s=0;for(j=0;j4;j++){i=j;if(i2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf(%d\n,f(a));}2.写出程序运行后的输出结果#includestdio.hmain(){floatx=2,y;if(x0)y=0;elseif(x10)y=1/x;elsey=1;printf(“%f\n”,y);}3.(1)函数sub()的功能是什么?(2)写出程序运行的输出结果。longsub(intnum){inti;longsubsum=1;for(i=1;i=num;i++)subsum*=i;return(subsum);}main(){inti;longsum=0;for(i=1;i=4;i++){sum+=sub(i);printf(sum%1d=%ld\n,i,sum);}}四、编程(完形填空)(20分,每题10分)1.写一个函数,实现将一个长度≤80的字符串按逆序存放。解题要求:该函数的唯一形参是字符串的起始地址。voidconvert(charstring[]){intlength,mid,i;chartemp;length=____(1)____(string);mid=____(2)_____;for(____(3)____;imid;i++){temp=____(4)_____;string[i]=string[____(5)_____];string[(length-1)-i]=temp;}}2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。main(){intyy,mm,day;scanf(“%d%d”,&yy,&mm);switch(__(6)___){case1:case3:case5:case7:case8:case10:case12:day=__(7)___;break;case4:case6:case9:case11:day=__(8)___;break;case2:if(((yy%4==0)_(9)_(yy%100!=0))(10)_(yy%400==0))day=29;elseday=28;break;}}}答案:一、单项选择题(20分,每题2分)1.C2.A3.D4.D5.A6.C7.C8.B9.D10.D二、填空题(30分,每空2分)(1)B66(2)1(3)2(4)2(5)0(6)跳出循环体(7)跳过循环体中剩余的语句而强行执行下次循环。(8)0(9)i+j(10)j(11)i+j(12)'\0'(13)判断表达式2(14)语句组(15)求解表达式3三、写出程序的运行结果(30分,每题10分)1.162.0.5000003.(1)函数sub()的功能是根据当前实参i的值控制其for循环的次数,进一步控制运算:subsum*=i的次数。(注:非标准答案,表述相近既可)实参i取值返回值subsum的值1121*2=232*3=646*4=24(2)运行结果:sum0=1sum1=3sum2=9sum3=33四、编程(完形填空)(20分,每题10分)1.(1)strlen(2)length/2(3)i=1(4)string[i](5)(length-1)-i2.(6)mm(7)31(8)30(9)&&(10)||1.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式(ab?a:b)(cd?c:d)的值是。A)1B)2C)3D)02.for(i=0;i10;i++)if(i〈=5)break;则循环结束后i的值为A)0B)1C)5D)103.下面正确的字符常量是:A)“c”B)‘\\’’C)‘W’D)‘’4.C语言中,运算对象必须是整型的运算符是:A)%B)/C)*D)+5.数字字符0的ASCII值为48,若有以下程序main(){chara='1',b='2';printf(%c,,b++);printf(%d\n,b-a);}程序运行后的输出结果是。A)3,2B)50,2C)2,2D)2,506.以下选项中不能作为合法常量的是。A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e07.以下说法正确的是A)C程序总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main()函数中定义C)C程序总是从main()函数开始执行D)C程序的main()函数必须放在程序的开始部分8.若有说明:charc=‘\72’;则变量c:A)包含一个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定9.以下说法正确的是A)C程序总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main()函数中定义C)C程序总是从main()函数开始执行D)C程序的main()函数必须放在程序的开始部分10.int*p1,*p2,a[10];p1=a;p2=&a[5];则p2-p1的值为:A)无法确定B)10C)5D)12二、填空题(30分,每空2分)1.已知宏定义#defines2+3printf(”%d”,s*4);的输出结果是__(1)_____。2.若已知a=10,b=20,则表达式!ab的值是_____(2)______3.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。voidfun2(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidfun1(){inta=20,b=30,c=25;if(cb)fun2(_____(3)_______);if(ac)fun2(_____(4)_______);if(ab)fun2(_____(5)_______);}4.有以下程序,执行后输出结果是(6)。main(){intt=1,i=5;for(;i=0;i--)t*=i;printf(%d\n,t);}5.C语言函数是由函数头和函数体两部分组成。其中,函数头包括(7),(8)和(9)。6.表达式(a==b)&&(ab)的值是___(10)____。7.将下列字符串表示成C语言的字符串常量C:\TC\LIB_____(11)_________Hesaid:I’mastudent.___________(12)_________________85%studentpassed.______________(13)_____________8.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中,请填空。#includestdio.h#includestdio.hmain(){inti,t=1,s=0;for(i=1;i=101;__(14)__){s=s+i*t;t=__(15)___;}}三、写出程序的运行结果(30分,每题10分)1.写出程序的运行结果#includestdio.hmain(){inti,sum=0;for(i=0;i20;i++){sum+=i;if((i%2==0)||(i%3==0))i+=5;}printf(%d,sum);}}2.写出程序运行后的输出结果#includestring.hchar*ss(char*s){returns+strlen(s)/2;}main(){char*p,*str=abcdefgh;p=ss(str);printf(%s\n,p);}3.(1)函数sub()的功能是什么?(2)写出程序运行的输出结果。intsub(intnum){inti,product=1;for(i=1;i=num;i++)product*=2;return(product);}main(){inti,sum=0;for(i=0;i=3;i++){sum+=sub(i);printf(sum%d=%d\n,i,sum);}}四、编程(完形填空)(20分,每题10分)1.找出100以内满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可以被11整除。main(){inti,count=___(1)___;printf(\nthesenumbersare:\n);for(i=1;i__(2)____100

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功