(6)将100~200之间的素数打印出来 解 while n>>200 do fi<√ n then print n (7)求两个数m和n的最大公约数 解 Input m, n while r≠0do (8)求方程式ax2+bx+c=0的根。分别考虑:①有两个不等的实根;②有两个 相等的实根。 解 if disc =0 then x2=(-b-√disc)/(2a)
p=-b(2a) print p- 2.7什么叫结构化程序设计?它的主要内容是什么? 解:略 2.8用自顶向下,逐步细化的方法进行以下算法的设计 (1)打印出1900—2000年中是闰年的年份,闰年的条件是:①能被4整除但不能 被100整除;或②能被100整除且能被400整除 解:先画出图2.19(a),对它细化得到图2.19(b);再对图2.19(b)中的S1.1细化, 得图2.19(c) 对y=1900~2000 则打印y 打印y 当y<2000 mod(y,100)=0 是何年 nod(y,400)=0 打印 y=y+1 打印y 图2 (2)求ax2+bx+c=0的根。分别考虑d=b2-4ac大于0、等于0和小于0三种 情况 解:先出图2.20(a),对其中的S3细化为图2.20〔b);再对图2.20(b)中的S3.1 细化为图2.20(c);对图2.20(c)中的S3.1.1细化为图2.20(d);对图2.20(c)中的 53.1.2细化为图2.20(e);最后对图2.20b)中的S3.2细化为图2.20(f。 请读者将它们合成一个总的N-S图
根据d的值分别 进行处理 83.1打印两个实根 两个复根 打即两个相打印两个不 s3.1,2 x2=-b/(2a) 等的实根 等的实板 打印 s3.1.2 X=-b+d/(2a) b/(2a 打印x、x 打印x:p-q (3)输人10个数,找出最大的一个数,并打印出来。 解:先初步画出图2.21(a)。考虑到还没有引入数组的概念,因而不能做到将100 个数全部输入到数组中,然后再从中找最大者。由于不采用数组这种数据结构,算 法也应与采用数组时有所不同。现在只用普通变量,逐个读人数据,并把当前各数 中的最大者保留下来,以便再与后面读入的数比较。将图2.21(a)细化为图2.21 (b),再细化为图2.21(c) 出值最大者 读人max 打印最大者 读入一个数给max 读人-个数给a 对其余9个数 a. max 读人一个数给a 比较a与 将较大者保存在max中 n=n+1 打印 打印mx 2.21
第3章数据粪塑、运算符与泰达式 3.1请将C话言的数据类型和其他高级语言的数据类型做比较,C有哪些特点? 解:略 3.2C语言为什么要规定对所有用到的变量要“先定义,后使用”。这样做有什么好处? 解:略 3.3请将下面各数用八进制和十六进制数(补码)表示 (1)10 (2)32 (3)75 (5)-111 (6)2483 (7)…28654 (8)2100,3 解 (1)(10)1.=(12)k=(a)16 (3)(75)1=(113)g=(4b)16 (4)(617)1=(176627)s=(fd97),6 (5)(-111)=(177621)k=(ff91) (6)(2483)1,=(4663)-(963) (7)(-28654),=(110022)x=(9012) (8)(21003):=(013)=(520b) 34将以下3个整数分別赋绐不同类型的变量,请画出赋值后数据在内存中的存堵 形式。 变茧的类型 327F9 long型(32位) sort型(16位) 1 rsigned int型 unsigned char型 F:如果没有学过二进制和补码,此题叫以不做 解:各数据在内存巾的存储形式如下表所小:
变量的类型 32769 int型(16位) 0…0o0100110100 001(溢出) long型(32位) 一 short型(16位)10…000101 00l(溢出) signed char(8位 00011001 ll111110 00000001(滥出) unsigned int型 00001 110100 unsigned long型 00…000011001 111 …0100…00 unsigned short型 00…000101111 110 001 unsigned char型 00011001 i111110 0000000l 3.5字符常量和字符串常量有什么区别? 解:字符常量是一个字符,用单引号括起来。字符串变量是由0个或若干个字符组 合而成,用双引号把它们括起来,存储时自动在字符串最后加一个结束符号'\0 3.6写出以下程序运行的结果 char cl='a,c2="b,c3='c,c4='10′,c5='116′ printf ("a%c b%c\t c%c\r abc\n", cl, c2, c3) printf ("\t\b%c %c, c4, e5) 解:程序的运行结果为 aay bbuuy ccyyuuuL abe 3.7要将“ China”译成密码,密码规律是:用原来的字母后而第4个字母代替原来的字 母。例如,字母“A”后而第4个字母是“E”,用“E”代替“A”。因此,“ China”应译为 “ GImme”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c55个变量的值分别为 C、"h、i'、n'、'a',经过运算,使c1、c2、c3、c4、c5的值分别变为'G'、I'、m'、r'、e 并输出 解 ichar cl=C, c2=h,c3=i', c4='n, c5='a: 14