程序分析题,给写出程序的输出结果输出结果。

java试题库程序分析题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
java试题库程序分析题
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩85页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢C语言 程序分析题 阅读下面程序,描述程序功能并写出程序执行结果_百度知道
C语言 程序分析题 阅读下面程序,描述程序功能并写出程序执行结果
int i,j,a,b[5]={4,2,8,3,1};
for(i=0;i&4;i++)
for(j=i+1;j&5;j++)
if(b[i]&b[j])
b[i]=b[j];
我有更好的答案
程序功能是将数组b[5]中的值按照从小到大排列并输出;程序结果是:12348
采纳率:45%
为您推荐:
其他类似问题
您可能关注的内容
程序分析的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。参加2017上半年程序员考试必会程序分析题(2)
软考程序员考试要求考生能熟练掌握C程序设计语言以及C++、Java中的一种程序设计语言。下面为大家整理了一些程序分析题目,供大家参考学习。
程序分析题(二)
根据以下代码,写出输出结果。
{ int i,a[5];
for(i=0;i&<5;i++)
a[i]=9*(i-2+4*(i>2))%5;
for(i=4;i>=0;i--)
printf("%3d",a[i]);
{ char s[][6]={”1234”,”56789”},*p[2];
int i,sum=0;
p[0]=s[0],p[1]=s[1];
for(i=0;p[0][i」!=’\0’;i++,i++)
sum=10*sum+p[0][i]-’0’;
for(i=1;p[1]「i」!=’\0’;i++,i++)
sum=10*sum+p[1][i]-’0’;
printf("%d",sum);
8.int p(m,n)
int m,n;
{ int i,pp;
for(i=pp=1;i<n十1;i++)
return(pp);
{ printf("%d"、 p(3,4));
9.struct stu
{ int num;char name[10];int age};
void py(struct stu *p)
{ printf("%s\n",(*p).name);}
{ struct stu student[3]={{1001,"Sun",25},
{1002,"Ling",23},
{1003,"Shen",22};
py(student+2);
10.# include"stdio.h"
{ char c;
while((c=getchar())!=’\n’)
{case ’0’:
case’1’: putchar(c);
case’2’:putchar(c);break;
case’3’:putchar(c);
default:putchar(c+1);break;
printf("\n");
假定本程序执行时输入:1357/(其中的/代表回车换行符)。
参考答案与解析
6、【参考答案】 4 0 0 -4 -3
【解析】我们可以按照程序中语句执行的顺序,记录各个变量及数组元素值的方法来解决这种阅读程序写运行结果的问题。首先执行第1个for循环。
i=0, i<5的条件成立,执行循环体。
a[0]=9*(0-2+4*(0>2))%5=9*(-2)%5=-18%5=-3
i=1,1<5的条件成立,执行循环体。
a[1]=9*(1-2十4*(1>2))%5=9*(-1)%5=-9%5=-4
1=2,i<5的条件成立,执行循环体。
a[2]=9*(2-2十4*(2>2))%5=9*(0)%5=0%5=0
i=3,i<5的条件成立,执行循环体。
a[3]=9*(3-2+4*(3>2))%5=9*(5)%5=45%5=0
1=4,1<5的条件成立,执行循环体。
a[4]=9*(4-2+4*(4>2))%5=9*(6)%5=54%5=4
i=5,1<5的条件不成立,退出第1个for循环。
注意,计算中的“i>2”是关系运算,结果只能为1或0;“x%5”是模运算,结果是x除5的余数,且余数的符号和x符号相同。
再执行第2个for循环。
i=4,i>=0的条件成立,执行循环体。输出数组元素a[4]的值,等于4
i=3,i>=0的条件成立,执行循环体。输出数组元素a[3」的值,等于0
i=2,1>=0的条件成立,执行循环体。输出数组元素a[2」的位,等于0
i=1,i>=0的条件成立,执行循环体。输出数组元素a[1]的值,等于-4
i=0,1>=0的条件成立,执行循环体。输出数组元素a[0]的值,等于-3
i=-1,i>=0的条件不成立,退出第2个for循环。
7、【参考答案】 1368
【解析】本程序的第1条语句是定义2行5列的二维字符型数组s,并且赋了初值如下:
s[0][0]='1's[0][1]='2's[0][2]='3's[0][3]='4's[0][4]='\0'
s[1][0]='5's[1][1]='6's[1][2]='7's[1][3]='8's[1][4]='9'S[1][5]='\0'
此外还定义了字符型指针数组p,利用第3条语句赋了值,结果如下:
p[0]指向以“s[0][i]”为数组名的一维数组首地址,即p[0][i]就相当于s[0][i]
p[1]指向以“s[1][i]”为数组名的一维数组首地址,即p[1][i]就相当于s[1][i]
第2条语句定义了整型变量i(用于单重循环的控制变量)和sum,并对sum清0。
第4条语句是for循环,控制变量i初值为0,每次加2,控制循环的条件是“p[0」[i]!='\0',注意其中的“p[0][i]”就是“s[0][i]”,这个控制循环的条件可以理解为“二维字符型数组元素s[0][i]不是字符串的结束标记则继续循环”。从控制变量i的取位来看,二维字符型数组元素只能取s[0][0]、s[0][2],因为下一个数组元素是s[0][4],该元素值是'\0'。再分析循环体中的语句,其中“ p[0][i]-'0'”是将数组元素s[0][i]中存放的数组字符减去'0',结果将是该数字字符对应的一位整数,整个语句是将sum变量中的原值乘以10以后再加上当前的数字。循环结束后的sum值就是s[0」[0」和s[0][2]中的两个数字组成的2位十进制数,结果为13。
按照同样的道理,可以分析出第2个for循环作用是完全相同的,它是把s[1」[1」、s[1][3]中的两个数字(前者为6,后者为8)拼接到sum的原值中,结果sum中值为十进制整数1368。程序的最后一个语句就是输出变量sum中的整数值。
8、【参考答案】81
【解析】主函数中只有一条输出语句,输出结果是函数调用“p(3,4)”的返回值。所以本题的关键是函数p的功能。
分析函数p(),有两个参数m、n。函数体中关键的是for循环语句。分析这个循环语句可以看出,控制变量是i,初值为1,终值为n,每次循环i加1。所以是标准的次数型循环,共计循环n次。循环体中是将参数m的值乘到变量pp中,变量pp在开始循环时已经设置初值为1,所以整个循环是将n个m乘到pp中。显然循环语句的功能是计算m”。而函数的返回值正是这个变量pp中的值。
由此分析可知,函数调用“p(3,4)”的返回值就是34。结果为 81,也就是本程序的输出结果。
9、【参考答案】Shen
【解析】本程序是由3段组成的。第1段是结构型stn的定义;第2段是函数py()的定义;第3段是主函数。
我们先分析主函数。首先定义了结构型stu的数组student[3],并且给3个元素的所有成员都赋了初值。接着调用了函数py,对应的实参是结构型数组元素student[2]的地址。注意,“数组名+k”是数组元素“数组名[k]”的地址。
再来分析函数调用"py(student+2);"。调用时,首先把实参传递给形参,即把结构型stu的数组元素student[2」的地址"student+2"传递给形式参数“结构型stu的指针变量p”。
然后执行函数体,输出表达式是"(*p).name",这是结构型stu的指针变量p指向的结构型stu数据(即结构型stu的数组元素student[2〕)的成员name,其值是字符串"Shen"。这就是本题的答案。
10、【参考答案】113468
【解析】本题也可以采用记录的方法。
执行 while循环。
输入第1个字符'1',不是'\n',执行switch语句的"case'1'"后的输出语句,输出字符'1';由于其后没有“break”语句,则继续执行"case'2'"后的语句,输出字符'1'。输入第2个字符'3',不是'\n',执行switch语句的"case'3'"后的输出语句,输出字符'3';由于其后没有“break”语句,则继续执行"default"后的语句,输出字符'4'。
继续while循环。
输入第3个字符'5',不是'\n',执行switch语句的"default"后的语句,输出字符'6'。
继续while循环。
输入第4个字符呼'7',不是'\n',执行switch语句的"default"后的语句,输出字符'8'。
继续While循环。
输入第 5个字符'\n',是'\n',退出while循环,输出“回车换行符”。
注意switch语句的执行过程是:在每个“case”分支之后,可以有多个语句,程序将依次执行这些语句,直到遇见“break”语句或者switch语句的右花括号“}”。如果某个“case”分支的后面没有“break”语句,它在执行完本分支后的所有语句之后,将继续执行下一个分支中的语句,直到出现“break”语句或者switch语句的右花括号“}”后才中止本分支的执行。
为帮助广大考生更好地备考,希赛教育于腾讯课堂开设有程序员公开课,有兴趣者皆可免费参加。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
国内专业、全面的软考培训机构
十多年PMP培训,金牌品质,专职专注
今日搜狐热点软考程序员考试必知程序分析题(一)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
软考程序员考试必知程序分析题(一)
希赛教育成立于2001年,采用线上和线下相结...|
总评分0.0|
&&软考程序员考试必知程序分析题(一)
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩6页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢c++程序分析题:写出下列程序的输出结果_百度知道
c++程序分析题:写出下列程序的输出结果
我有更好的答案
?前面是条件,成真选:前面:z第一个答案:57(注意回车)第二个答案:54第三个答案:结果2第四个答案,就先做运算第三个答案因为计算机非0即真:3第一个答案由于a++运算在后面,所以会先执行输出再+1第二个答案由于是--b,否则选,然后非一下就成真第四个答案是三目运算符,0是假,运算在前面
采纳率:78%
5 &75 4结果2z:3
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 程序分析题 的文章

 

随机推荐