高级语言程序设计练习题2及答案.docx
一、单选题1、对下面的程序说法正确的是Ovoidmain()(intx=3zy=0zz=0;if(x=y+z)printf("*");elsePrintf("#“);A.通过编译,但是不能运行B.输出为#C.有语法错误,不能通过编译D.输出为*正确答案:B2、假设变量i为整型量,比较下面两条if语句,选出正确答案if(i!=0);if;A.if(i)语法错B.两者作用等价C.两者作用不同D.两者作用相反正确答案:B3、阅读程序,分析输出结果是()o#include<stdio.h>voidmain()(intx=10,y=5;switch(×)casel:x+;default:x+=y;case2:y-;case3:x-;)printf("×=%dzy=%d"zx,y);)A.x=14,y=4B.x=15zy=5C.x=10,y=5D.x=15zy=4正确答案:A4、阅读程序,分析输出结果是()o#include<stdio.h>voidmain()inta=6,b=10,t;if(a=b)>O)t=a+b;printf("%dn',7t);)A.20B.无输出C.16D.12正确答案:A5、阅读程序,分析输出结果是()o#include<stdio.h>voidmain()(inta=2zb=-l,c=2;if(a)if(b<O)c=0;elsec+;printf("%dn",c);A.0B.lC.3D.2正确答案:A6、阅读程序,分析输出结果是()°voidmain()intx=0,a=l,b=l;switch(×)case0:a+;case 1: b+;break;case 2: a+;b+;printf("a=%d,b=%dn'a,b);#include<stdio.h>voidmain()inta;SCanf(%d,&a);if(a+<9)Printf("%dn",a);elsePrintf(dn,a-);)A.9B.8C.10D.ll正确答案:C8、有以下程序#include<stdio.h>main()(inty=9;case9:y/=2;case8:-y;)printf("%d",y);)程序的运行结果是A.5B.3C.4D.9正确答案:C9、以下程序#include<stdio.h>main()(inta=2zb=3,c=0;if(a=b)c=a;elsec=b;printf("%d",c);程序的运行结果是A.0B.1C.2D.3正确答案:D10、如下程序的运行结果是()intmain()(inta=0zb=0,c=0;if(a=l,a>=b)switch(b+)(case1:c=a;case0:c=b;break;default:c=0;)printf(',%d"zc);returnO;A.lB.3C.2D.0正确答案:A11、已知intt=O;WhiIe(t=l).则以下叙述正确的是()A.以上说法都不对B.循环控制表达式不合法C.循环控制表达式的值为0D.循环控制表达式的值为1正确答案:D12、以下程序段执行后的输出结果()。inti;for(i=l;i+)Printf("%d”,i+);A.死循环B.3C.1D.2正确答案:A13、在下列选项中,没有构成死循环的程序段是A.intk=1000;do+k;while(k>=1000);B.inti=100;while(1)(i=i%100+l;if(i>100)break;)C.ints=26;while(s)-s;D.for(;);正确答案:C14、下面程序执行后的输出结果是()。#include<stdio.h>voidmain()(intizn=0;doif(i%3)continue;n+;while(!i);n+;)printf("n=%dn,n);)A.n=4B.n=2C.n=5D.n=3正确答案:A15、以下正确的描述是OA.只能在循环体内和switch语句体内使用break语句B.在循环体内使用break语句或ContinUe语句的作用相同Ccontinue语句的作用是结束整个循环的执行D.从多层循环嵌套中退出时,只能使用goto语句正确答案:A16、设j为int型变量,则下面for循环语句的执行结果是if(j%3)break;)printf("%d',J);A.3B.9C.6D.0正确答案:A17、请读程序片段:inta,b;for(a=l,b=l;a<=80;a+)(if(b>=20)break;if(b%2=l)(b+=2;continue;)b-=6;)printf("%dn",a);上面程序的输出结果是A.8B.10C.11D.9正确答案:C18、请读程序片段:inta,b;for(a=l,b=l;a<=80;a+zb+)(if(b<2O)continue;if(b%2=l)(b+=2;break;printf("%dn",a);上面程序的输出结果是A.80B.20C.23D.21正确答案:D19、设j为int型变量,则下面for循环语句的执行结果是for(j=9;j>3;j-);(j-=2;)printf("%dn",j);A.3B.1C.2D.死循环正确答案:B20、使用穷举法求解如下(工)(2)构成的方程组(1) x+y=100;(2) 2*×+y3=100;如下程序中正确的是?A. intx,y;for(x=l;x<100;x+)for(y=l;y<100;y+)if(x+y=100&&2*x+y3=100)printf("×=%d,y=%cin",×,y);)B. intxzy;for(x=l;x<100;x+)for(y=l;y<100;y+)if(x+y=100&&6*×+y=300)printf("×=%d,y=%dn,x,y);)C. int×,y;for(x=l;x<100;x+)for(y=l;y<100;y+)if(x+y=100&&6*x+y=300)printf("x=%dzy=%dn",×zy);)D. intx,y;for(x=l;x<100;x+)for(y=l;y<100;y+)if(x+y=100&&2*x+y3=100)printf("×=%d,y=%cin",×,y);)正确答案:C21、引用数组元素时,数组下标可以是一A.实型变量B.整型常量C.实型常量D.值在0,n-l之间的整型表达式,其中n为数组长度正确答案:D22、定义如下变量和数组:intk;inta33=l,2z3A5,6z79;则下面语句的输出结果是Ofor(k=0;k<3;k+)printf("%d",ak2-k);A.369B.147C.357D.159正确答案:C23、定义如下的变量和数组inti;inty23=2,4,6,8的0,12则下面语句输出结果for(i=0;i<2;i+)printf("%d"zyl-ii+l);A.610B.104C.812D.106正确答案:D24、执行下面的程序段后,变量a中的值为inta=3,s5=l;s0=a;a=s2*10;A.10B.30C.0D.33正确答案:C25、执行下面的程序段后,变量a中的值为inta=3,s5=l,2;sO=a;a=s2*10;A.0B.20C.10D.30正确答案:A26、以下定义一维数组语句中错误的是A.inta5="012345"BJnta=,A,z,BC,;Cdoublea=0z2,3A5;D.inta8=0,l,2,3A5;正确答案:A27、如下程序的输出结果是intmain()inta10=l,2,2,3,3A5,6JJ;intk=3;for(i=0;i<10;i+)(if(ai=k)printf("%3d(,J);)returnO;A.34B.4C.12D.3正确答案:A28、如下程序的输出结果是intmain()inta10=l,2z2z3,3A5,6,7z8,i;intk=3;for(i=0;i<10;i+)(if(ai=k)ai=ai+l;i-;)for(i=0;i<10;i+)printf("%2d',ai);returnO;A.死循环B.l223445678C.l224567800D.l224567888正确答案:A29、如下程序的输出结果是intmain()inta10=l,2z2z3,3A5,6,7z8,i;intk=3;for(i=0;i<10;i+)(if(ai=k)intj;for(j=i;j<10-l;j+)aj=aj+l;i-;)for(i=0;i<10;i+)printf("%2d"zai);returnO;A.l224567888B.死循环C.l223445678D.l224567800正确答案:A30、如下程序的输出结果是intmain()inta10=l,2z2,3,3A5,6,7,8,i;intk=3;for(i=0;i<10;i+)(if(ai=k)intj=10-l;while(j>i)aj+l=aj;j-;)for(i=0;i<10;i+)printf("%2d"zai);returnO;)A.l22334445678B.程序存在错误C.l22330445678D.l22333445678正确答案:D