77范文网 - 专业文章范例文档资料分享平台

高级语言程序设计试卷及答案解析(4)

来源:网络收集 时间:2019-03-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

【解】 do-while语句的一般形式是: do语句

while(表达式);

其语义是重复执行其成分语句,直至表示条件的表达式值为0时结束。do-while语句是正常使用的一种循环结构之一。do-while语句的循环结束条件由while后的表达式值为0所控制,并不一定要有break语句跳出循环来结束循环。do-while语句在条件值非0时,将继续循环,而不是结束循环。条件值为0时,才结束循环。所以正确的选择是④。

15.若有以下程序段,W和k都是整型变量,则不能与该程序段等价的循环语句是() W= k;

LB: if(w==0) gotO LE; w - -; printf(\; goto LB; LE:

①for(w=k;w!=0;W--)printf(\; ② w= k;

While(W--!=0) Prinif(\; ③ w= k;

do{w--; prinif(\); } while( W!= 0);

④ for(w=k;W;--W) printf(\;

【解】问题所给出的程序段用goto语句构造一个循环控制结构,该循环结构的初值是让变量W的值为k的值,循环结束条件是W的情等于0,循环体是让变量W的值减1,并输出一个字符* 。上述循环控制过程用for循环可描述如下: for=(w=k;W!=0; W--) printh(\或写成:

for(w=k ;w;--w) printf(\); 若用while语句,可描述如下: W=k;

while(w--!=0)printf(\;

w++;/*在w等于0时,也执行了一次 w--,这里是对w最后减1的补尝*/ 或更直观地写成: W=k;

16 / 80

while(w!=0){ w--;Printf(\若用do-while语句,可描述如下: W=k; if(W) do{

w--; prinif(\); } while(w); 若写成: W=k; do{

W--; printf(\; } while(w!=0);

是不正确的,因为原代码当k的值为0时,不输出字符*,而上面的改写,当k的值为0时,将输出许许多多的字符*。所以解答应是③。 3.2 填充题

1.结构化程序设计规定的三种基本结构是________结构,选择结构和_______结构。 【解】结构化程序设计的三种基本控制结构是顺序结构、选择结构和循环结构。 2.若有定义\=25,b=14, c=19;\,以下语句的执行结果是______。 if a++<=25&&b--<=2&&c++) prinif(\=%d,b=%d,c=%d\n\,c);

else printf(\=%d,b=%d,c=%d\n\, a, b,c);

【解】问题所给的if语句中,条件a++<=25&&b--<=2&&c++是先求逻辑与的第一个运算分量,它是一个关系式,关系成立。接着判定第二个逻辑与运算分量,又是一个关系式,由于变量b的值是14,b不小于等于2,运算分量的关系式不成立,导致if语句的条件为假,执行else部分。在求且语句的条件时,计算了2个逻辑与分量,使变量a的值增了1,变量 b的值被减了1。所以输出内容是:###a=26,b=13,c=19。 3.以下两条if语句可合并成一条if语句为_____________。 if(a<=b) x=1; else y=2;

if(a>b)printf(\,y); else printf( \=%dn\,x);

【解】在以上两条if语句中,两个条件刚巧相反。若将前一个if语句的第一个成分语句与第二个if语句的第二个成分语句合并;第一个if语句的第二个成分语句与第二个if语句的第一个成分语句合并,写成一条if语句如下: if(a<=b){x=1;printf(\=Y,x);} else{ y=2; printf(\=%dn\,y);}

17 / 80

4.设 i,j,k均为 int型变量,则执行完下面的for语句后,k的值为_______。 for(i=0,j=10;i<=j;i++,j--)k=i+j;

【解】该 for语句以i为0、j为10初始化,循环条件是 i<=j,每次循环后 i增 1、j减 1,循环体是将 i与j的和赋给 k。这样变量 k将保存的是最后一次赋给它的值。一次循环后 i为 l。j为 9,二次循环后 i为 2.j为 8,……,五次循环后 i为 5.j为 5,继续第六次循环,将 i与 j的和10存于 k后,i为 6、j为 4,结束循环。所以循环执行后 k为10。 5.下列程序的功能是输入一个整数,判断是不是素数,若为素数输出1,否则输出0,请为程序填空。 main() {int i,X,y=1; scanf(\%d\,&x); for(i=2;i<=x/2;i++)

if________________ { y=0; break; } printf(\%d\n\,y); }

【解】为判数x是否是素数,预置变量y的值为1(x可能是素数),然后用循环,用2至x/2的整数i测试对X的整除性,若能被其中的某个整数整除,则X是合数,置y的值为0(不是素数),结束测试循环。若都不能整除,则X为素数。i能否整除X,可用求余运算X%i等于0来判定。所以程序中的空框可填 X% i==0。测试 X为素数的代码可写成: y=l;

for( i=2; i<=x/2; i++) if(x%i==0){ y=0; bleak; }

3.3 程序分析题

1.阅读程序,写出运行结果。 main()

{ int a=10, b=4,C=3; if(a<b)a=b; if(a<C) a=C;

printf(\%d,%d,%dn\, a,b,c); }

【解】程序中,第一个if语句if(a

{ int x=100, a=10, b=20, Ok1=5,Ok2=0;

18 / 80

if(a<b)if(b!=15)if(!Ok1) x=1; else if(ok2) x=10; else x=-l;

printf(\%d\n\,x); }

【解】程序预置变量x的值为100,a的值为10,b的值为20,ok1为5,Ok2为0。 程序中给出的if语句可以写成更结构化的形式如下: if(a<b) { if(b!=15){ if(!Ok1) x=1; else{

if(Ok2) x=10; else x=-l; } } }

由于条件a<b成立,并且条件b!=15也成立,而ok1不等于0,执行else后的语句。又因ok2等于0,执行else后的语句赋-1给x。所以程序输出一l。 3.阅读下列程序,写出程序的输出结果。 main() { int y=9; for(; y>0; y--)

if(y%3==0){ printf(\%d\,--y);continue;} }

【解】循环前,变量y的值为9,其中的循环语句在y大于0情况下循环,每次循环后y的值减1。循环体是当y能被3整除时输出表达式--y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减至变成2,输出2;再经两次循环后,y的值变成0,结束循环。所以程序输出852。

3.4 程序设计题

1.编一个程序,输入华氏温度(F),按下列公式计算并输出对应的摄氏温度(C):C= 5( F-32)/9

【解】利用公式:C=5(F-32)/9,输入F氏温度,计算并输出对应的C氏温度,程序要引入两个变量,分别用于存储F氏温度和C氏温度,计算时应采用浮点型,包括公式中的常数也应写成浮点数,不能采用整型和把常数写成整数。因采用整型编写,公式中的除运算

19 / 80

变成整除,会得出与实际要求不一致的结果。程序如下: #include main()

{ float f,c;/*变量定义*/ printf(\输入F氏温度\); scanf(\%f,&f); c= 5.0*(f-32.0)/9.0;

printf(\对应的C氏温度%6.2f\n\,c); }

2.编一个程序,输入一个整数,输出其符号(若≥0,输出1;若<0输出-1)。 【解】程序可用if语句判断输入数的符号,并控制输出1或-l。程序如下: # include main()

{ int c;/*变量定义*/ printf(\输入一个整数\scanf(\%d\,&c); if(C>=0) printf(\; else printf(\; }

3.编一个程序,输入X的值,按下列公式计算并输出y的值。 X(X≤l)

y= {2x-l(l<x<10) 3X-11(10≤X)

【解】输入x,按公式计算y。这可用一个嵌套的if语句分段判断并计算出y的值。然后输出y值。程序如下: # include<stdio.h> main()

{ int x,y;/*变量定义*/ printf(\输入一个整数\); scanf(\%d\,&x); if( x<=l) y=X; else if(x<10)y=2*x-l; else y=3*X-11; printf(\=%d n\, y); }

4.编一个程序,输入三个单精度数,输出其中最小数。

【解】设最小数存于变量min中,为求三个数中的最小数,可分以下多步完成,先预置min

20 / 80

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库高级语言程序设计试卷及答案解析(4)在线全文阅读。

高级语言程序设计试卷及答案解析(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/554508.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: