c语言程序设计教材全部答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
page 2
来自百度文库
y; y=z; A) x=10, y=20, z=30 C) x=20, y=30, z=10 以下程序的运行结果是 main( ) { int m=5; if(m++>5) printf(“%d\n”,m); else; printf(“%d\n”,m--); } A ) 4 B) 5 C) 6 D) 7 C C 。 B) x=20, y=30, z=30 D) x=20, y=30, z=20 判断 char 型变量 ch 是否为大写字母的正确表达式是 A) ‘A’<=ch<=‘Z’ C) (ch>=‘A’)&&(ch<=‘Z’) 。 B) (ch>=‘A’)&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) D 。 逻辑运算符两侧运算对象的数据类型 A) 只能是 0 和 1 C) 只能是整型或字符 型数据 sizeof(float)是 B 。 B) 只能是 0 或非 0 正数 D) 可以是任何类型的数据 A) 一个双精度型表达式 C) 一种函数表达式 B) 一个整型表达式 D) 一个不合法的表达式 C 设 x、y、z 和 k 都是 int 型变量,则执行表达式:x=(y=4,z=16,k=32)后,x 的 值为 A) 4 B) 16 C) 32 D) 52 设有如下的变量定义: int i=8, k, a, b; unsigned long w=5; double x=1, 42, y=5.2; 则以下符合 C 语言语法的表达式是 A) a+=a-=(b=4)*(a=3) B) x%(-3); C) a=a*3=2 D) y=float(i) A 假定有以下变量定义: int k=7,x=12;则能使值为 3 的表达式是 D A) x%=(k%= 5) B) x%=(k-k%5) C) x%=k-k%5 D) (x%=k)-(k%=5) 设 x 和 y 均为 int 型变量,则 以下语句:x+=y,y=x-y;x-=y;的功能是 A) 把 x 和 y 按从大到小排列 B) 把 x 和 y 按从小到大排列 C) 无确定结果 D) 交换 x 和 y 中的值 以下程序的输出结果是 D main() { int a=12,b=12; printf("%d,%d\n",- -a,+ +b); } A) 10 10 B) 12 12 在 C 语言提供的合法的关键字是 A) swicth B) cher D C) Case D) default C D)2 .5 D C) 11 10 D) 11 13 若已定义 x 和 y 为 double 类型,则表达式:x=1,y=x+3/2 的值是 A)1 B)2 C)2.0 C 语言提供的合法的数据类型关键字是 B A) Double B) short 在 C 语言中, 合法的长整型常数是 A) 0L B) 4962710 C) 0.054838743 D) 2.1869e10 A C) integer D) Char 二、填空题 scanf 函数的格式化字符串中,格式说明与输出项的个数必须相同 。如果格式说明的个数小 于输出项的个数,则多余的输出项忽略。如果格式说明的个 数多于输出项的个数, 则多余多余的格式将输出。 以下程序的运行结果是__52.00。 #include void main() {int i=5,j=9; flo at x=2.3,y=45.; printf(“%8.2f\n”,i%(int)(x+y)*j/2/3+y); } 若有定义:char c=‘\010’;则变量 c 中包含的字符个数为1 个。 若 x 和 n 均是 int 型变量, x 和 n 的初值均为 5, 且 则计算表达式 x+=n++后 x 的值为10, n 的值为6__。 若 a 是 int 型变量,则计算下面表达式 A=25/3%3 后 a 的值为__2。 若 x 和 a 均是 int 型变量,则计算表达式 x=(a=4,6*2)后的 x 值为_12,计算表达式 x=a=4, 6*2 后的 x 值为__4。 若 a 是 int 型变量,则表达式(a=4*5,a*2),a+6 的值为__2 6。 若 s 是 int 型变量,且 s=6,则表达式 s%2+(s+1)%2 的值为__1。 在 VC++ 中 , 一 个 int 型 数 据 在 内 存 中 占 4 个 字 节 , 则 int 型 数 据 的 取 值 范 围 为 __-2147483648 ̄2147483647。 若有以下定义 int m=5,y=2;,则计算表 达式 y+=y-=m*=y 后的 y 值是-16。 设有定义语句:int i=3; float f=456.789; 则 表达式 1.2+i+’A’+f 值的数据类型是__double。 三、思考以下问题 1. 几种基本 数据类型各占几个字节? 2. 标识符分哪几类,各有什么用途? 3. 为什么要定义 符号常量? 4. 变量名定义有什么规则? 5. C 语言有哪些几类运算符号,又有哪
page 1
n-1 次得到结果。 天数: 10 9 8 7 6 5 4 3 2 1 桃子数目: 1 4 10 22 46 94 1 90 382 766 1534 #include "stdio.h" main() { int i,t,y,n; t=1; printf("\ninput number n:\n"); scanf("%d",&n); for(i=1;i<=n-1;i++) { y=2*t+2; t=y; } printf("the total is :%d\n",y); } 习题 2 一、选择题 C 语言基本类型包括( D ) A) 整型、实型、逻辑型 B) 整 型、实型、字符型、逻辑型 C) 整型、字符型、逻辑型 D) 整型、实型、字符型 下列 四组选项中,均不是 C 语言关键字的选项是 A A) define IF type B) getc char p rintf C) include case scanf D) while go pow 语言的字符型数据在内存中的存储 形式是( D A)原码 B)补码 C) 反码 D) ASCII 码 ) 。 C 语言的整型数据在内存中的存储形式是( B ) A)原码 B)补码 C) 反码 D) AS CII 码 已知字母 A 的 ASCII 码为十进制数 65,且 c2 为字符型,则执行语句 c2=‘ A’+‘6’-‘3’后,c2 中的值为 A) D 以下叙述正确的是 C A 。 B) 68 。 C) 不 确定的值 D) C A) 在 C 程序中,每行只能写一条语句 B) 若 a 是实型变量,C 程序中允许赋 值 a=10,因此实型变量中允许存放整型数 C) 在 C 程序中,%是只能用于整数运算的 运算符 D) 在 C 程序中,无论是整数还是实数,都能被准确无误地表示 以下叙述不正 确的是 D 。 A) 在 C 程序中,逗号运算符的优先级最低 B) 在 C 程序中,MAX 和 max 是两个不同的变量 C) 若 a 和 b 类型相同,在计算了赋值表达式 a=b 后,b 中 的值将放入 a 中,二 b 中的值不 变 D) 当从键盘输入数据时,对于整型变量只能输 入整型数值,对于实型变量只能输入实型数 值 下面正确的字符常量是 A) “c” A B) ‘\\’’ 。 C) ‘’ A D) ‘K’ 。 下列四组选项中,均是合法转义字符的选项是 A) ‘\”’‘\\’‘\n’ B) ‘ \’‘\017’‘\”’ C) ‘\018’‘\f’‘xab’ D) ‘\\0’‘\101’‘xlf’ 下列四组选项中,均是不合法的用户标识符的选项是 B A) W P_0 do B) b-a g oto int C) float la0 _A D) -123 abc TEMP 若 x、i、j、k 都是 int 型变量,则 计算下面表达式后,x 的值为 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 。 C D) 52 。 设有说明:char w; int x; float y; double z;则表达式 w*x+z-y 值的数据类 型为 D 。 A) float B) char C) int D) double 设 C 语言中,一个 int 型数据在内存中占 2 个字节,则 unsigned int 型数 据的取值范围 为 C A) 0~255 。 B) 0~32767 C) 0~65535 D) 0~2147483647 。 (有错误,应为 0) 若运行时给变量 x 输入 12,则以下程序的运行结果是 main() { int x,y; sc anf(“%d”,&x); y=x>12 ? x+10 : x-12; printf(“%d\n”,y); } A) 4 B) 3 C) 2 D) 1 若希望当 A 的值为奇数时,表达式的值为“真”,A 的值为偶数时,表达式的 值为“假”。则以 下不能满足要求的表达式是 A) A%2==1 C 。 C) !(A%2) D) A%2 B) !(A%2==0) 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后 n 的值为 A) 1 B) 2 C) 3 。 D) 4 B 。 以下程序的运行结果是 B main() { int a,b,d=241; a=d/100%9; b=(-1)&&(-1 ); printf(“%d,%d”,a,b); } A) 6,1 B) 2,1 C) 6,0 D) 2,0 。 已知 int x=10,y=20,z=30;以下语句执行后 x,y,z 的值是 B if(x>y) z=x; x=
本文由wbb308060955贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 C 教材习题答案 教材习题 习题答案 习题 1 一.填空题 1.C 程序是由(函数 )构成的,一个 C 程序中至少包含 (main 函数 ( 函数 ) 是 C 程序的基本单位。 2.C 程序注释是由(/* ) 和( */ ) 所界定的文字信息组成的。 3.函数体一般包括(声明部分) 和(执行部分 ) 。 ) 。因此, 二.判断题 1.一个 C 程序的执行总是从该程序的 main 函数开始,在 main 函数最后结束。 (正确) 2.main 函数必须写在一个 C 程序的最前面。 (错误) 3.一个 C 程序可以包含若干的函数。 (正确) 4.C 程序的注释部分可以出现在 程序的任何位置,它对程序的编译和运行不起任何作用。 但是可以增加程序的可读性 。 (正确) 5.C 程序的注释只能是一行。 (错误) 6.C 程序的注释不能是中文 文字信息。 (错误) 8.可以使用 Turbo C 来编译和连接一个 C 程序。 (正确) 9.可以使用 Turbo C 来运行一个 C 程序。 (正确) 10.可以使用 Turbo C 来实 时调试(即动态调试)一个 C 程序。 (正确) 三、在 c++ 6.0 中输入如下的程序 ,编译、连接通过后显示结果 (1) #include “stdio.h” void main() { printf(“ * ”) printf(“ *** ”); printf(“ ***** ”); printf(“******* ”); } 答案 : * *** ***** ******* (2)已知底和高,计算三角形的面积。 #include “stdio. h” void main() { int bottom,high,area; /*bottom 表示底,high 表示高,area 表示面积*/ bottom=4; high=6; area=bottom*high/2; printf(“the area is %d\n”,area); } 答案: the area is 12 四、算法设计:请试着分别用自然语言或、程序流程图和 NS 图描述如下算法。 1. 设计一个程序在屏幕上显示如下的文字 HELLO WELCOME Y OU 2. 打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其个位数字 立方 和等于该数本身。例如:153 是一个“水仙花数” ,因为 153=1 的三次方+5 的三 次方+3 的三次方。 3. 对输入的某学生成绩, 如果学习成绩>=90 分的同学 用 A 表示, 60-89 分之间的用 B 表示,60 分以下的用 C 表示。 4. 一个数如果恰 好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3.编程 找出 1000 以 内的所有完数。 5. 一只猴子摘了 N 个桃子第一天吃了一半又多吃了一个,第二天又 吃了余下的一半又 多吃了一个,到第十天的时候发现还有一个,问共有多少个桃子。
答案: 1.#include “stdio.h” main() { printf(“HELLO WELCOME YOU”) ; } 2.水仙花数产生在 100 到 999 之间,利用穷举法,对此范围之内的所有数一 个个进行测试, 关键是要对每一个三位数分离出它的三个数字。具体的算法是: n% 10,得到个位, (n/10)%10,得到百位数字,n/100,得到个位数字。再利用水仙花 数的 含义来判断该数是否满足条件。 #include “stdio.h” main() { int n,,i,j ,k; for(n=100;n<=999;n++) { i=n%10; j=(n/10)%10; k=n/100; if( i*i*i+j*j*j+k*k*k= =n) printf(“%d\n”,n); } } 3.此题用 if …else if 来实现。对于每次输入的成绩,判断它属于哪个等级 。 #include "stdio.h" main() { int grade; printf("input grade="); scanf("% d",&grade); if (grade>=90) printf("A\n"); else if(grade>=60 &&grade<=89) p rintf("B\n"); else printf("C\n"); } 4.先考虑一个整数 m,如何判断它是否为完数。从数学知识可知:一个数 m 除 该数本身外 的所有因子都在 1~m/2 之间。算法中要取得因子之和,只要在 1~m/2 之间找到所有的整 数 m 的数,将其累加起来即可。如果累加起来与 m 本身相等, 则表示 m 是一个完数,可以 将 m 输出。 #include "stdio.h" main() { int m,i, s; for(m=2;m<=1000;m++) { s=0; for(i=1;i<=m/2;i++) if(m%i==0) s+=i; if(m== s) printf("%d\t",m); } printf("\n"); } 5. 找出前后两天的数量关系,然后用递 推法求解。设第十天的桃子数目为 t,昨天的数为 y,则 t=y/2-1,得到 y=2t+2,这 样由今日数目可以求出昨日数目,从最后一天开始,倒退到 第一天,倒退的循环次数 比天数少 1。所以,若已知第 n 天只留下一个,问第一天有多少个 时,则倒退循环
相关文档
最新文档