C语言预习及课后习题
- 格式:doc
- 大小:81.50 KB
- 文档页数:5
c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个 main函数。
c) 在C语言中,输出操作是有库函数 printf( )函数完成。
二、单选题1、A2、C3、B解析:第1题答案:A 。
因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。
且到main函数结束。
第2题答案:C 。
因为 main函数没有限制必须位于程序的最前面。
C程序书写自由,一行内可写几个语句。
在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。
不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。
因为一个C语言程序是由若干个函数组成的。
但至少包含一个main 函数,且main函数的位置不限。
三、编程题1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。
海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。
*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。
*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。
《C语言程序设计教程》第三版课后习题参考答案C语言程序设计教程第三版课后习题参考答案第一章:C语言概述1.1 C语言的特点答案:C语言是一种通用的、面向过程的程序设计语言,具有高效、简洁、灵活等特点。
它提供了丰富的程序设计元素和功能,适用于各种不同的应用领域。
1.2 C语言程序的基本结构答案:C语言程序由预处理指令、函数声明、函数定义、变量声明和语句组成。
其中,预处理指令用来引入头文件或定义宏,函数声明用来声明函数的名称和参数,函数定义用来实现函数的功能,变量声明用来声明变量的类型和名称,语句用来表达具体的计算过程。
1.3 C语言的数据类型答案:C语言提供了多种数据类型,包括基本类型(整型、浮点型、字符型等)和派生类型(数组、指针、结构体等)。
每种数据类型在内存中占据一定的存储空间,并具有特定的取值范围和操作规则。
1.4 C语言的运算符和表达式答案:C语言支持各种运算符和表达式,例如算术运算符(+、-、*、/等)、关系运算符(>、<、==等)、逻辑运算符(&&、||、!等)等。
通过运算符和表达式可以进行各种数值计算和逻辑判断。
第二章:基本数据类型与运算2.1 整型数据类型答案:C语言提供了不同长度的整型数据类型,包括有符号整型(int、long等)和无符号整型(unsigned int、unsigned long等)。
整型数据类型可以表示整数值,并具有不同的取值范围。
2.2 浮点型数据类型答案:C语言提供了浮点型数据类型(float、double等),用来表示带小数部分的实数值。
浮点型数据可以表示较大或较小的数值,并具有一定的精度。
2.3 字符型数据类型答案:C语言提供了字符型数据类型(char),用来表示单个字符。
字符型数据可以用于表示各种字符(包括字母、数字、符号等)。
2.4 布尔型数据类型答案:C语言不直接支持布尔型数据类型,但可以使用整型数据类型来表示布尔值(0表示假、非零表示真)。
第一篇:《C语言程序设计教程》(第三版)课后习题参考答案C语言程序设计课后习题参考答案习题一一、单项选择题1、C2、B3、B4、C5、D6、A7、C8、A二、填空题1、判断条件2、面向过程编程3、结构化4、程序5、面向对象方法6、基本功能操作、控制结构7、有穷性8、直到型循环结构9、算法10、可读性11、模块化12、对问题的分解和模块的划分习题二一、单项选择题1、B2、D3、C4、B5、A二、填空题1、主2、C编译系统3、结构化4、程序5、面向对象方法6、.OBJ7、库函数8、直到型循环结构习题三一、单项选择题1、D2、B3、A4、C9、B10、C11、A12、D13、C17、B18、C19、C20、D21、A25、D26、A二、填空题1、补码2、10^-138~10^1 38、15~166、A7、B6、D7、B14、B15、C22、D8、C8、D16、A24、D、A3、实4、单目运算符、自右向左5、函数调用6、65,89习题四一、单项选择题1、D2、C3、D4、A5、D6、B7、A8、C9、B10、B二、填空题1、两, ;2、5.1690003、-200 2500、i=-200,j=2500回车、i=-200回车j=2500回车4、a=98,b=765.000000,c=4321.0000005、100 25.81 1.89234、100,25.81,1.89234、100回车25.81回车1.89234回车6、0,0,37、38、scanf(“%lf %lf %lf”,&a,&b,&c);9、13 13.000000 13.00000010、c=b-a;a=b+c;习题五一、单项选择题1、B2、D3、C4、B5、B6、D7、A8、B二、填空题1、1 、02、k!=03、if(x>4||xelse printf(“error!”); 4、if(((x>=1&&x=200&&x Printf(“%d”,x);5、16、17、10! Right!8、a=09、2,110、0习题六一、单项选择题9、D1、B2、C3、C4、B5、C6、B7、C8、A二、填空题1、无穷次2、83、205、3.66、*#*#*#$7、828、d=1.0 、k++、k9、!(x习题七一、单项选择题1、B2、D3、C4、C5、A二、填空题1、1 2 4 8 16 32 64 128 256 5122、a[age]++、i=18;i3、break、i==84、a[i]>b[i]、i3、j5、b[j]=0、b[j]=a[j][k]习题八一、单项选择题1、B3、C4、A5、A9、D10、B11、A12、C13、A二、填空题1、return1、return n+sum(n-1)2、return1、n*facto(n-1)习题九一、单项选择题1、D2、C3、D4、A5、C9、B10、C11、A13、B17、C18、A19、B20、C二、填空题1、int 、return z2、*p++3、’\0’、++4、p、max*q6、A7、D6、A7、C14、C15、B6、C7、C14、A15、D8、A8、D8、C习题十一、单项选择题1、D2、D3、A4、5、B6、A7、C8、B9、D10、11、C12、D13、D14、C二、填空题1、34 122、ARRAY a[10],b[10],c[10];3、2 34、ab、cd5、(*b).day、b->day6、adghi mnohi no7、(struct node *)、!=’\n’、p=top;8、p1=p1->next9、(struct list *)、(struct list *)、return (n)习题十一一、单项选择题1、A2、A3、B4、A5、B9、A10、B11、B12、B13、C17、D二、填空题1、ASCII(文本)、二进制2、pf=fopen(“A:\zk04\data xfile.dat”,”w”);3、fputc()、fputs()、fscanf()、fread()4、(后两个空)文件结束符、非0值7、B14、C15、D8、A16、A第二篇:C语言程序设计教程课后习题参考答案《C语言程序设计教程》课后习题参考答案习题1 1. (1)编译、链接.exe (2)函数主函数(或main函数)(3)编辑编译链接2.(1)-(5):DDBBC (6)-(10):ABBBC 3.(1)答:C语言简洁、紧凑,使用方便、灵活;C语言是高级语言,同时具备了低级语言的特征;C 语言是结构化程序设计语言,具有结构化的程序控制语句;C语言有各种各样的数据类型;C语言可移植性好;生成目标代码质量高,程序执行效率高。
一、实验一:预习题(选择题)一、不正确的C程序描述是 BA.每一个语句和数据概念的最后必需有个分号B.一个C程序的书写格式要求严格,一行只能写一个语句C.C语言的本身没有输入输出语句D.一个C程序老是从main()函数开始执行二、以下C语言正确结构形式的描述是 CA.main()函数必需放在程序之首B.每一行只能写一个语句,每一个语句以后必需有分号C.C语言没有输入输出语句D.C语言的自由度大,能够从任何函数执行3、在C语言系统中,假设int类型数据占2个字节,则double、long、unsigned int、char类型数据所占字节数别离多少 DA.8,2,4,1B.2,8,4,1C.4,2,8,1D.8,4,2,14、下面叙述不正确的是BA.C语句末尾必需有分号B.C语言中无论是整数仍是实数都能准确的表示C.运算符“%”只能用于整数运算D.乘除运算符优先级高于加减运算符五、如有说明语句:int a; float b;,以下输入语句正确的是 CA.scanf("%f%f",&a,&b);B.scanf("%f%d",&a,&b);C.scanf("%d,%f",&a,&b);D.scanf("%%",&a,&b);六、下面不属于C语言的数据类型是 CA.整型B.实型C.逻辑型D.双精度实型分析7、已知a为int型,b为double型,c为float型,d为char 型,则表达式a+b*c-d/a结果的类型为 CA.int 型B.float型C.double型D.char型分析八、下面四个选项中,均是不合法的用户标识符的选项是 CA.BA 、x_0、doB.float、1a0、_YC.x-y、goto、123D._123、tmp、CHAR九、下面正确的字符常量是 BA."a"B.'\\'C."\n"D."\376"10、已知m=48,ch='a',n=0;则表达式(m>=n&&ch<'b'&&!n)的值是 BA.0B. 1C.真D.非0一、实验二:预习题(选择题)一、下面程序段int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是 CA.while循环执行10次B.循环是无穷循环C.循环题语句一次也不执行D.循环体语句执行一次二、以下程序段的循环次数是 Bfor (i=2; i==0; ) printf(“%d”, i--) ;A.无穷次B.0次C.1次D.2次3、下面程序的输出结果是 Bmain ( ){ char c=’A’;int k=0;do {switch (c++) {case ‘A’: k++ ; break ;case ‘B’: k-- ;case ‘C’: k+=2 ; break ;case ‘D’: k%=2 ; continue ;case ‘E’: k*=10 ; break ;default : k/=3 ;}k++;} while (c<’G’) ;printf (“k=%d”,k) ;}A.k=3B.k=4C.k=2D.k=04、下面程序的输出结果是 B main ( ){ int x=9;for (; x>0; x--) {if (x%3==0) {printf(“%d”,--x);continue ;}}}A.741B.852C.963D.875421五、下述程序段的运行结果是 C int a=1,b=2, c=3, t;while (a<b<c) {t=a; a=b; b=t; c--;}printf(“%d,%d,%d”,a,b,c);A.1,2,0B.2,1,0C.1,2,1D.2,1,1六、下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择 A 填空。
《C语言程序设计基础》书后习题参考答案(无编程题答案,红色为书上错误)第二章习题一、选择题。
1、在C语言中,要求参加运算的数必须是整数的运算符是()A)% B)/ C)!D)*2、若已定义x和y为double类型,则表达式“x=1.0,y=x+3/2”的值是()A)1 B)2 C)2.0 D) 2.53、若变量已正确定义并赋值,符合C语言语法的表达式是()A)a=a+7; B) a=7+b+c,a++ C) int (12.3/4 ) D) a=a+7=c+b4、若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为()A)1.0 B)1 C) 2.0 D)25、若x和n均是int型变量,且x的初值为12,n的初值为5 ,则执行表达式x%=(n%=2) 后x 的值为()A) 0 B)1 C) 2 D)36、假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为()A)7 B)8 C)9 D)107、指出下列哪一个选项的程序是错误的()A)#include<stdio.h> B) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1; x=0,y=x+1;z=x+y; z=x+y;} }C) #include<stdio.h> D) #include<stdio.h>void main( ) void main( ){int x,y,z; {int x,y,z;x=0;y=x+1, x=0,y=x+1;z=x+y; z=x+y,} }8、若a为整型变量,则以下语句( )a=-2L;printf(“%d\n”,a);A)赋值不合法B)输出值为-2 C)输出为不确定值D)输出值为29、若变量a,i已经正确定义,且i已正确赋值,则合法的语句是()A)i=int(a) B) ++i; C)a=a++=5; D) a=int(i);10、若执行以下程序段后,c3的值为()int c1=1,c2=2,c3;c3=1.0/c2*c1;A)0 B)0.5 C)1 D)211、如下程序的运行结果是()#include<stdio.h>void main( ){ int y=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}A) 3 4 B) 4 2 C) 4 3 D) 3 312、以下程序的输入结果为()#include<stdio.h>void main( ){int i=4,a;a=i++;printf(“a=%d,i=%d’,a,i);}A)a=4,i=4 B)a=5,i=4 C)a=4,i=5 D)a=5,i=513、以下程序的输出结果是()#include <stdio.h>void main( ){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):( b); //多了(}A) 5 B) 4 C) 6 D) 不确定14、在C语言中,如果下面的变量都是int类型,则输出的结果是()sum=pad=5;pad=sum++,pad++,++pad;printf(“%d\n”,pad);A)7 B)6 C)5 D)415、已知int i;float f;,正确的语句是()A)(int f)%i; B)int(f)%i; C) int(f%i); D)(int)f%i;16、已知int j,i=1;执行语句j=-i++;后,j的值是()A)1 B)2 C)-1 D)-217、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是()A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=a*(a=3)18、C语言中运算对象必须是整型的运算符是( )A) %= B) / C) = D)<=19、有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是( )A)12353514 B)12353513 C)12343514 D)1234351320、下面程序的输出结果是()#include<stdio.h>main( ){int x=5,y=3;printf(“%d\n”,y=x/y); }A)0 B)1 C)3 D)不确定的值21、执行下列程序中的输出语句后,a的值是()#include<stdio.h>void main( ){int a;printf(“%d\n”,(a=3*5,a*4,a+5)); }A) 65 B)20 C)15 D)1022、执行下列程序时输入1234567,程序的运行结果为()#include<stdio.h>main( ){int x,y;scanf (“%2d%2ld”,&x,&y);printf(“%d\n”,x+y); }A)17 B)46 C)15 D)923 、已知char a;int b;float c;double d; 则表达式a*b+c-d结果类型为()A) double B)int C)float D) char二、填空题1、若i为int整型变量且赋值为6,则运算i++后的表达式的值是__6__,变量i的值是___7___。
习题参考答案习题 1一、选择题1、B2、C3、B4、D5、A6、B7、C二、填空题1、源程序文件 c2、obj3、可执行文件 exe4、机器语言汇编语言高级语言三、解答题略四、编程题1、main(){printf(“Hello! Welcome to China!”);}2、main(){int x;scanf(“%d”,&x);if(x>=20&&x<1000) printf(“x=%d”,x);else printf(“Input error!”);}习题 2一、选择题1、C2、A3、B4、D5、 A6、D7、B8、B9、B 10、D11、D 12、B 13、A 14、B 15、C二、填空题1、整型、实型、字符型2、用户标识符、关键字标识符3、存储单元、符号地址、内存地址4、十、十六、八5、double(双精度型)6、 87、5.5000008、a=-327682959、+0017,021,0x11三、写程序运行结果325732577.88, -345.12,7.8765,-345.12307.87654e+00, -3.5e+02a,97,141,611234,2322,4d2CHINESE, CHI四、scanf函数的使用a=3 b=78.5 71.82A a五、用scanf函数输入数据1020Aa1.5-3.75 123.45,67.8注意,其中123.45可以是任意实数,因为该值将被跳过,不用于赋值。
习题 3一、选择题1.C 2.B 3.D 4.D二、填空题基本概念题1.22.23.1阅读程序写出运行结果题4.1.005.1,0,16.9,11,9,10三、写出下面表达式运算后a的值,设原来a=12。
(1)24 (2)10 (3)60 (4)0 (5)0 (6)0习题4一、选择题1、B2、D3、B4、D5、A6、C二、填空题1、1,0,12、1,2,33、ch1>=′A′&&ch1<=′Z′ ch1=ch1-32;三、编程题2961、从键盘输入三个数,然后按照由小到大的顺序输出。
第一章 C 语言概述课前预习题1.函数 2.main()函数 3.单行注释、块注释、A 参考分析:C 语言总是从main 函数开始,main 函数结束。
但是C 语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。
如果不考虑exit(0)等函数的特殊作用,C 则总是在main 函数结束。
2. C 参考分析:C 程序对main 函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C 语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。
因此,如果注释中存在错误,系统是不可能发现的。
另外,C 语言的I/O 操作均通过函数实现,系统本身未提供相应的语句。
3. D 参考分析:C 语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。
C 语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。
4. C5. B 参考分析:通常许多语言程序由主程序和子程序构成,但是C 语言是函数式语言,整个程序由众多函数组成。
尽管有时习惯上称main 函数为主程序,显然,严格地讲还是B 更为符合C 语言的规则。
6.C 7.B 8.C 9.C 10.C11.绘制NS 算法流程图。
(1)输入10个数,求其中的最大值。
(2)输入3个数,将它们升序排列输出。
(3)输入2个数,求它们的最大公约数。
(4)输入一元二次方程的系数a 、b 、c ,判断其根。
第二章 数据类型、运算符与表达式课前预习题1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算 2.1、4、8 3.float 、double4.八进制、十进制、十六进制 5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12. 13. 14.4 15.1 16.0 17.918.字符、数字、下划线 19.'f' 20. 21.int 型 22.m/10%10*100+m/100*10+m%10 课后习题1.A 分析:在不同的计算机系统中,不同的C 语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A 符合16位PC 机中的具体环境。
2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。
k=23是括号内最后一个表达式,因此x 变量的值来自k 变量的值。
3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。
b++在所在表达式参与运算时的值是5,该表达式计算完成后,b 进行自增运算,故a+b 的值为2+6=8。
4.A 参考分析:是关键字的有:char 、case 、while 。
5.B 参考分析:不是关键字的:include、scanf、type6.C 参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。
7.C 参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。
8.A 参考分析:不合法的B2,C2,C3,D2。
解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。
9.D 参考分析:不合法的A1,B3,C1,C3,D。
解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常量前面允许不允许加上--号,是否可以负负得正,显然不可以,--在C中是自减运算,它只适用于变量;B1:0Xcdf X大写也可以!C3:5e2是个实型数。
10.B 参考分析:不合法的有A3,B,D1。
部分解释:A1,D2:C语言中小数点前面或后面的0可以省略。
但是不能只有小数点自身;A3,B3,D1:e的前后必须有合法数字。
.1e2合法,.e2不合法;B1:123是整型数,不是浮点数。
11.B 参考分析:不合法的有A2:阶码不能为小数;A3:浮点数的尾数及阶码不能用八进制数表示;C1:e后必须有整数,C2:阶码不能为小数;D1:缺少尾数。
12.A 参考分析:"\"后面的数字,c总是按照八或十六进制解释。
由于c支持扩展ASCII字符集,所以,八进制数范围在0~377,十六进制数范围在00~ff。
13.B 参考分析:不合法的有B1,B2,B3,C3,D1,D3;但B3和C3值得讨论。
C中只有少数字母是转义字符,大多数字母不是。
像'\c'就不是,它就是字符c自身,非转义字母加"\"也仅表示它本身。
C3'\}'也表示自身。
本题的命题人显然不知道'\a'也是转义字符。
14.C15.D 参考分析:不正确的有A3:非法八进制数;B1、D1、D2:缺少x;D3是十进制数。
16.C 参考分析:不正确的有A1:这是十进制数;B1、D1:缺少x17.D 参考分析:不正确的有A2、C4:不是ox打头;A3:e后不是整数;B1是字符串;B2:不是整数。
18.A 参考分析:与PASCAL不同,B)字符串内的单引号不需双写。
C语言中,在不引起误解的情况下,双引号界定的字符串里的单引号可以不加转义标志"\",单引号界定的双引号字符也可以不加转义标志"\"。
19.C 20.C21.A 参考分析:不符合C语法规定的只有A,因为X为实型数。
22.A 参考分析:B)表达式不能出现在赋值号右侧;C)x是实型数,不能进行取余运算;D)应将float用括号扩起来(强制类型转换)。
23.D 参考分析:整型变量可以输入实型数值,实型变量也可以输入整型数值24.D 参考分析:注意它的描述,是只能用于整数运算,而不是整型数运算。
25.B 参考分析:C不是赋值表达式,是逗号表达式,赋值仅是其中的一部分。
严格说来,B也不是赋值表达式,它是由两个赋值表达式组成的逗号表达式。
26.A、B 参考分析:表达式中的各字符以各自的ASCII码参与运算。
27.D 参考分析:理论上++运算都是针对整型(含字符型)的,尽管现在很多系统提供了对实型变量的增量运算。
28.A 参考分析:注意sum和sUM不是一个变量(区分大小写)。
29.D 参考分析:参考答案很明确地表明了,C语言中各种类型在内存中所占用的字节数由所用机器字长决定。
通常在PC机中字符、整型、实型所占用的内存空间大小为1、2、4个字节。
30.A 参考分析:转义字符'\72'为字符':'。
31.A 参考分析:计算时要注意其结合性和优先级。
32.B 参考分析:算术表达式的类型由表达式计算结果的类型决定33.C 参考分析:实型只要参与运算就自动转换为double型。
34.A 参考分析:A3转义字符以十六进制描述时,前面不能加0。
非法的还有B335.A 参考分析:c语言中整型和实型的绝对值函数各自独立,为abs和fabs;pow为一系统函数pow(y,x)=>y x。
36.D 参考分析:以上两题均未说明x,y的类型,从表达式的性质可分析隐含为实型,因此应使用fabs。
37.D 参考分析:计算机系统不能存储字符本身,存储的是字符的ASCII码。
37.B 参考分析:m=n*100+赋值过程中有实型转整型的自动转换。
39.C 参考分析:表达式的类型由表达式结果的类型决定。
40.D 参考分析:表达式的类型由表达式结果的类型决定。
虽然本题各变量没有具体的变量值,由于参与运算的变量中z变量为double型,表达式计算的结果肯定为double型。
41.D 参考分析:A的值为0,B、C两个表达式相同,值为2,只有D的值为3。
42.C 参考分析:经计算可知,只有C的值为12,不为7。
第三章顺序结构程序设计课前预习题1.函数调用2.输出一个字符3.格式输出数据4.格式修饰符、格式符5.d、c、s6.左、尾部(后右侧)7.%c 8.取址、变量a的内存地址9.;10.{}(或大括号)课后习题1.D 参考分析:putchar函数的作用是输出一个字符,可以是常量或变量。
2.D 参考分析:-:数据左齐,右补空格。
3.B 、C4.D 参考分析:答案B基本上是正确的,但是%x不能正确的输出长整型数据。
5.C 参考分析:0:数据左侧必须充满,给定数据不足时,前面补0。
+:数据前面显示符号位。
6.D 参考分析:#要求输出数据的类型特征符号。
7.A 分析:长整型数据输出应当加修正字符l,如果不加l仅能输出数据的低两个字节,高字节数据不能输出。
8.D 参考分析:A)首先读第一个十进制数赋给变量x,读第二个长十六进制数赋给变量y(此时有自动赋值转换),再读入格式规定的第二和第三个数据间的间隔符号逗号,最后读入第三个double型数据赋给变量z。
B)首先读入2个宽度的十进制数赋给变量x,再读入格式规定的第一和第二数据间的间隔符号星号,然后读入第二个十进制整数赋给变量y,然后读入第三个double型数据赋给变量z。
C)读入第一个十六进制数赋给变量x,然后虚读一个十进制数不赋给任何变量,最后读入一个八进制数赋给变量y。
D)%6.2f不符合格式规定,即不能规定读入数据的小数点后的数字位数。
9.A10.B B 参考分析:读取数据格式中规定域宽时,系统仅读取指定宽度的数据。
11.D 参考分析:A)a1为1020,a2为随机值,c1为A,c2为B。
B)a1为10,a2为20,c1为<CR>,c2为A。
C)a1为10,a2为20,c1、c2均为□。
12.D 13.B14.D 参考分析:由于提供数据的格式与规定格式不一致,变量y,z不能获取正确的数据,均为随机值,故三变量之和也是随机数。
15.B 16.D17.A 参考分析:字符控制格式中有无空格对数据的读取有影响,B)ch1读取A,ch2和ch3为随机字符。
C)三个变量分别为A、B、C。
D)ch3为随机字符。
18.D 19.C20.A 参考分析:B)为转义字符。
C)为7和9两个字符ASCII码值之和的字符。
D)为码值为14的字符(控制字符)。
21.B22.B 参考分析:这里强调的是赋值语句,请注意赋值表达式与赋值语句的区别。
23.B 24.A25.D 参考分析:本题有些偏,其他选项错误的原因为A)fabs(x),x不是double型。
B)pow(y)其格式原型为double pow(double y,double x)。
C)y-z为负数。
26.*,* 分析:不能输出的位会向前一位四舍五入输出。