有下列程序: main() {int y=10; do{y--;}while(--y); printf("%dn",--y); } 当执行程序时输出的结果是

有下列程序: main() {int y=10; do{y--;}while(--y); printf("%dn",--y); } 当执行程序时输出的结果是,第1张

程序的执行过程是

第一次

do语句后y=9

while循环条件判断后

y=8

第二次

do语句后y=7

while循环条件判断后

y=6

第三次

do语句后y=5

while循环条件判断后

y=4

第四次

do语句后y=3

while循环条件判断后

y=2

第五次

do语句后y=1

while循环条件判断后

y=0

退出循环

打印输出前先计算--y

所以y=-1

程序最后输出结果是-1

#include<stdio.h>

#include<string.h>

void f(char p[][10], int n ) /* 字符串从小到大排序*/

{ char t[10]

int i,j

for(i=0i<ni++)

for(j=i+1j<nj++)

if(strcmp(p[i],p[j])>0) {strcpy(t,p[i]) strcpy(p[i],p[j]) strcpy(p[i],t) }

}

main()

{char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"}

f(p,5)

printf("%d\n",strlen(p[0]))

}

分析:

调用的f函数是排列字符串大小的。该函数采用的是选择法排序,用了两个for循环,外循环比较次数为n-1次,内循环为n-1-i次。

所以调用时,排列后的顺序为p[5][10]={“aabdfg”,”abbd”,”abc”,”cd”,”dcdbe”}

然后,求字符串长度函数strlen(p[0]),p[0]是二维数组p[5][10]第0行的首地址,指向的内容是第一个字符串,即aabdfg,长度为6,故答案选c


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7704445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存