您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计(三)试题及答案2011年3月
C语言程序设计(三)试题及答案免费下载2011年3月注意:所有答案都要写在答题卡上一、单项选择题(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)||注意:所有答案都要写在答题卡上一、单项选择题(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=____(
本文标题:C语言程序设计(三)试题及答案2011年3月
链接地址:https://www.777doc.com/doc-2908099 .html