微信搜索关注"91考试网"公众号,领30元,获取公务员、事业编、教师等考试资料40G!
nt k=5,n=0;while(k>0){switch(k)(default:break;case 1:n+1=k;case 2:case 3:n+=k;}k--;}printf("%d\n",n);}程序运行后的输出结果是( )。 A.0B.4 C.6D.7 参考答案: D 本题主要考察while循环语句和switch case语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=n+k=0+3=3,跳出switch语句,然后k自减1.当k=2时,n=n+k=3+2=5,跳出switch语句,然后k自减1;当k=1时,case 1:n=n+k=5+1=6,没有break继续执行case 3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。----------------------------------------29、有下程序:main(){int a[]={2,4,6,8,10},y=0,X,*P;p=&a[l];for(x=l;x<3;x++) y+=p[x];printf("%d\n,y"):}程序运行后的输出结果是( )。 A.10B.11 C.14D.15 参考答案: C 由题目的语句p=&a[1]可知,P指向a数组中下标为l的元素“4”,又因为P为指针变量,所以p[x]与*(p+x)等价,因而在for循环语句中,第一次循环p[1]指向a数组中下标为2的元素"6",第二循环p[2]指向a数组中下标为3的元素“8”,所以y=6+8=14,因而选项C为正确答案。----------------------------------------30、有下列程序:void sort(int a[],int n){int i,j,t;for(i=0;i<n一1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[l0]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0:i<10;i++)printf("%d,",aa[i]);printf("n");}程序运行后的输出结果是( )。 A.1,2,3,4,5,6,7,8,9,10,B.1,2,7,6,3,4,5,8,9,10,C.1,2,7,6,5,4,3,8,9,10,D.1,2,9,8,7,6,5,4,3,10 参考答案: C 本题考察排序的使用由sort()函数的两层for循环语句可知,其功能是把数组a[]中的元素按照从大到小的顺序进行排列。在main()函数中首先定义了一维整型数组aa[10],然后调用sort(aa+2,5)实现从数组aa中下标为2的元素"3"开始,其后连续的5个元素从大到小进行排列,其余元素不变。----------------------------------------31、有以下程序:#include"stdio.h"int abc(int u,int v);main(){int a=24,b=16,C;c=abc(a,b):printf("%d\n",c);)int abc(int u,int v){int w