1、-1-第一章答案:1.3 拓展实验1.程序分析,预测运行结果,并上机编译、连接、运行。#include intmain( ) printf(“hello everyone!n”);return 0;程序的运行结果是屏幕上显示:hello everyone!。提示printf( )函数将双引号内的普通字符按原样输出; “n”是转义字符,含义为换行。思考如果 printf(“hello everyone!n”);修改为 printf(“helloneveryone!n”);则程序的运行结果是:helloeveryone!。2.程序改错,请查找并修改以下程序中的语法错误,使程序运行后在屏幕上显示一行
2、信息。#include int mian( ) printf(“I can do it!n”)return 0;提示(1)要调试本程序,应先关闭之前运行程序的工作区。(2)注意体会输出窗口的提示信息,依次双击出错信息,可快速定位到出错位置附近。(3)应把程序中的 mian 改为 main。(4)C 语言程序要以“;”结束,注意在英文状态下输入。(4)C 语言程序要以“ ”结束。3.程序设计。编写一个 C 程序,实现输出如下结果:姓名:张三丰性别:男年龄:105提示 注意中英文转换。C 程序的标点符号需在英文半角状态输入。3. #include intmain( ) printf(“姓名:张三丰
3、n”);printf(“性别:男n”); printf(“年龄: 105n”); return 0;-2-第二章答案2.2 基础实验一、程序分析1.以下程序的运行结果是:* very good!*_。#includeintmain( ) printf(“*n very good!n*n”);return 0;2.以下程序若输入 25 和 43,则运行结果是:_43,25_。#includeintmain( )int a,b,t;printf(“enter a,b,”);scanf(“%d%d”,t=a; a=b;b=t;printf(“%d,%d”,a,b);3.以下程序的运行结果是:_x=1
4、.08333_。#includeintmain( ) float x;x=1.0/2+1.0/3+1.0/4;printf(“nx=%fn”,x); return 0;如果代码中相应的表达式改为 x=1/2+1/3+1/4,则运行结果是_x=0.000000_,原因是_整型除整型,结果为整型_。二、程序填空1.以下程序实现的功能是:分别定义 4 个变量 a,b,c,d,其中 a 为字符型,b 为整型,c 为单精度实型,d 双精度实型,分别将 a、98、3.2、 17.668 赋给 4 个变量并输出。请将程序补充完整,并分析程序的运行结果。#include-3-intmain_( )_ char
5、a;intb;_float_ c;double d;a=a_;_b=98;c=3.2;d=17.668_;printf(“%c,%d,%f,%lfn”,a,b,c,d); return 0;运行结果:_a,98,3.200000,17.668000_。2.以下程序实现的功能是计算(10+24)*3 的结果,请将程序补充完整,并分析程序的运行结果。#includeintmain( ) int x;_ x=(10+24)*3_;printf(“x=%dn”,x); return 0;运行结果:_x=102_。3.以下程序实现的功能是计算半径为 1.5 的圆的面积,请将程序补充完整,并分析程序的运行
6、结果。#include#include_#define PI 3.14_intmain( ) float r=1.5;doubles;s=PI*pow(r,2);printf(“n %lfn”,s); return 0;运行结果:7.065000 _。-4-2.3 拓展实验一、程序改错(以下程序存在错误,请调试程序并将错误找出后改正,运行程序,填写结果)1.以下程序实现的功能是对 u,v 进行初始化,并输出 u,v 的值。行号 源程序123456#include int main( ) int u=v=89;printf(“u=%d,v=%dn”,u,v); return 0;错误在 2 行找
7、错应改为:int u=89,v=89;调试正确后的运行结果运行结果: u=89,v=892.下面的程序试图计算由键盘输入的任意两个整数的平均值。行号 源程序12345678#include intmain( ) int x,y,a;scanf(“%x,%y”, a=(x+y)/2;printf(“The average is: %dn”, a); return 0;错误在 4 行找错 应改为:scanf(“%d,%d”,调试正确后的运行结果输入数据2,61,4运行结果:The average is:4The average is:2(5/2,整型除整型,结果为整型)二、程序设计1.输入任一整数
8、 x,计算 y=3x2+2x-10 的值。-5-2.将小写字符b、 o、 y转换为大写。2.4 习题一、选择题1. 一个算法应该具有“确定性”等 5 个特性,下面对另外 4 个特性的描述中错误的是() 。A. 有 0 个或多个输入 B.有 0 个或多个输出 C.有穷性 D.可行性2. 以下叙述中正确的是() 。A.用 C 程序实现的算法必须要有输入和输出操作B.用 C 程序实现的算法可以没有输出但必须要有输入C.用 C 程序实现的算法可以没有输入但必须要有输出D.用 C 程序实现的算法可以既没有输入也没有输出3. 针对简单程序设计,以下叙述的实施步骤顺序正确的是() 。A.确定算法和数据结构、
9、编码、调试、整理文档B.编码、确定算法和数据结构、调试、整理文档C.整理文档、确定算法和数据结构、编码、调试D.确定算法和数据结构、调试、编码、整理文档4. C 语言中用于结构化程序设计的 3 种基本结构是() 。A.顺序结构、选择结构、循环结构 B.if、switch、 breakC.for、 while、do-whileD.if、for、continue5. 以下叙述中错误的是() 。A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识6. 以下选项中合法的用户标识符是(
10、) 。1. #include intmain( ) float x,y;scanf(“%f”, y=3*x*x+2*x-10;printf(“y=%fn”, y); return 0;2. #include intmain( ) char x,y,z;x=b;y=o;z=y;x-=32; y-=32; z-=32;printf(“%c%c%cn”, x,y,z); return 0;-6-A.long B._2Test C.3Dmax D.for7. 以下 4 个用户定义标识符中,全部合法的一组是() 。A._main encludeInt B.if max turbo C.txt REAL
11、3COM D.int k_2 _0018. 以下不是 C 语言提供的转义字符的是() 。A. B. C.074 D.09. C 语言中,定义 PI 为一个符号常量,正确的是() 。A. #definePI3.14B.#defineC. #definePI =3.14 D.#include10. 在定义变量时同时给 a、b 、c 三个整型变量赋初值 5 的正确语句是() 。A.int a=b=c=5; B.int a, b, c = 5; C.int a =5 ;b = 5; c =5 ; D.int a =5, b = 5, c =5;11. 在 C 语言中,要求参加运算的数必是整数的运算符是
12、() 。A./ B.* C.%D.=12. 若 int k=7,x=12;则能使值为 3 的表达式是() 。A.x%=(k%=5) B.x%=(kk%5)C.x%=k k%5 D.(x%=k)(k%=5)13. 若 a 是 int 型变量,则执行下面表达式 a=25/3%3 后 a 的值为( )。A. 2 B.0 C.2.3 D.2514. 若以下选项中的变量已正确定义,则正确的赋值语句是() 。A.x1=26.8%3; B.1+2=x2; C.x3-=12; D.x4=1+2=3;15. 已知 char a=B,b=O,c=Y;int i;则表达式 i=a+b+c 的值为() 。A. BOY
13、 B.BOY C.a+b+cD. 23416. 定义:int a=8,b=5,c;,执行语句 c=a/b+0.4;后,c 的值为() 。A.1.4 B.1 C.2.0 D.217. 假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是() 。A.3.500000 B.3 C.2.000000 D. 3.00000018. int x=11,表达式(x+*1/3)的值是() 。3 B.4 C.11 D.1219. 假设 a=5,则 printf(“%d,%dn”,a,a+ );语句的执行结果为() 。A . 5,5 B.5 5 C.6,5 D.6 520. 运行如下程
14、序段 int a=5; printf(“%d%dn”,a,(a+)+( a+);后运行结果是() 。A.7 14 B.6 12 C.5 10 D.7 1121. 运行如下程序段 int i=10,j=1; printf(“%d,%dn”,i-,+j);后运行结果是() 。A.9,2 B. 10,2 C. 9,1 D. 10,1-7-22. 以下为非法的赋值表达式是() 。A.n=(i=2,+i) B.j+C. +(j+1) D. x=j023. 设 a 和 b 均为 double 型变量,a5.5 ,b=2.5 则表达式(int)a+b/b 的值是() 。A.6.500000 B.6 C.5.
15、500000 D.6.00000024. 已知 x=3,y=2 ,则表达式 x*=y+8 的值为() 。A.3 B.2 C. 30 D.1025. 若 a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后,a 的值是() 。A .-3 B.9 C.-12 D.626. 已知 ch 是字符型变量,下面不正确的赋值语句是() 。A.ch=boy; B.ch=0; C.ch=98 D.ch=;27. 执行下列程序片段时运行结果是() 。int x=13,y=5;printf(“%d”,x%=(y/=2);A.3 B.2 C.1 D.028. 假设所有变量均为整型,且 num=7
16、,sum=7;则表达式 sum=num+,sum+,+num 执行后的值为() 。A. 7 B. 8 C. 9 D. 1029. 设 x,i,j,k 都是 int 型变量,表达式 x=(i=4,j=16,k=32)计算后,x 的值为() 。A. 4 B.16 C.32 D.表达式不正确30. 执行下列程序片段时运行结果是() 。int x=5,y;y=2+(x+=x+,x+8,+x);printf(“%d”,y);A.13 B.14 C.15 D.16二、填空题1. C 语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线。2. 在 C 语言中的实型变量分为单精度
17、实型 float 和双精度实型 double 两种类型。3. 表达式m%=3+n 等价于 _m= m%(3+n)_。4. 若有定义int a=5,n=2;则执行表达式 a%=(n%=2)+1后a 的值是0。5. 如果a=3,b=0,c=-1 ,以表达式 (a+c) | b float f;double i ;则表达式 10+a+i*f 值的数据类型是 double。8. 假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为 9。-8-三、程序分析题1. 以下程序的运行结果是:_( a+b)*3=66_。#includeint main( ) int a,b,s; a =
18、4;b =18; s = (a + b)*3; printf(“(a+b)*3=%dn”,s); return 0; 2. 以下程序的运行结果是:_ 8,9,4,17_ 。#include int main( )int i, j, m, n;i=6; j=9;m=+i-3;n=j+(+i);printf(“%d,%d,%d,%dn”, i, j, m, n);return 0;3. 数字字符 0 的 ASCII 值为 48,以下程序的运行结果是:_ 2 2_。#include int main()char a=1,b=2;printf(“%c”,b+);printf(“%dn”,b-a);re
19、turn 0;4. 以下程序的运行结果是:_2,1 _ 。#include int main()int a,b,d=25;a=d/10%9;b=a-9-printf(“%d,%dn”,a,b);return 0;5. 以下程序的运行结果是:_ _b=3_。#includeint main()int a,b;printf(“b=%d”,(a=3,a+5,a+);return 0;四、程序填空题1.输入 2 个整数 a,b,不通过增加变量的方法实现 a,b 交换。#include int main()int _a,b_;printf(“enter a,b:”);scanf(“%d,%d”,a=a+
20、b;b=a-b; a=a-b_;printf(“a=%d,b=%d”,a,b);return 0;2.计算求(2x+3)/6 的值。#includeint main( ) int x=10,y ;y=_(2*x+3)/6_;printf(“y=%dn”,_y_);return 0;五、程序设计题1.输入一个三位数,将该数逆序输出。如,输入 123,则输出 321。2.编写程序,把 560 分钟换算成用小时和分钟表示,然后进行输出。1. #include intmain( ) int n,ge,shi,bai;scanf(“%d”, ge=n%10;shi=n/10%10;bai=n/100;n=ge*100+shi*10+bai;printf(“%dn”, n); return 0;2. #include intmain( ) int x,y;x=560/60;y=560%60;printf(“560 分钟为 %d 小时%d 分钟n”,x,y);return 0;-10-