logonew chat icon top
  • icon-chaticon-chat-active搜题/提问
    new chat icon
    新建会话
  • icon-calculatoricon-calculator-active计算器
  • icon-subjecticon-subject-active学科题目
  • icon-pluginicon-plugin-active浏览器插件
  • icon-uploadicon-upload-active上传题库
  • icon-appicon-app-active手机APP
recent chat icon
历史记录
首页
/
计算机
题目

课后习题解答(第1-7章) 第一章1_1.1_1_2判断正误:即使两个整型数据未超出该数据的取值范围,它们的和也可能会超出该数据取值范围。正确。1_1_4判断正误:一个C程序可以有多个函数,其中主函数必须在程序的最开头。错误。其它函数如果要在主函数中使用的话,必须先在主函数之前定义或者声明。1_1_6判断正误:若有定义“float x=1.3;”,则表达式(int)x的值为1,因此可以说x中存放的值就是1。错误。(int)x表达式的值与x的值是不一样的,前者是对x取整后的数值,而取整运算对x自身的值不会产生影响。1_1_8判断正误:若有命令行“#define N1000”,则N++是不合法的表达式。正确。N为符号常量[1],不能对符号常量进行修改。1_1_10C程序是由________构成的,一个C程序必须有一个________。1_1_12 以下变量中不合法的是________________________________________,合法的是________________________________________________________________________。①name ②double ③Int ④if ⑤for_1 ⑥2k ⑦a12345678 ⑧_a1_1_14 下面程序段[2]的输出结果是________int a; double b;a=b=123/100%2;printf("%d,%f", a, b);1_1_16 ________1_1_20 假设圆柱体的底面半径为r(=2.5),高为h(=3.5),请按下面给定的步骤编写求体积(体积=底面积X高)的程序。①定义变量r,h,v(存放体积值),注意变量的数据类型[3]。②给变量r,h赋值。③计算体积,并将结果存放在v中。④输出r,h,v的值。程序如下:#include #define PI 3.1415926main()( float r, h, v; r=2.5; h=3.5; v=PI*r*r*h; printf("r=%f, h=%f, v=%fn", r, h, v); )1_1_22 编写输出以下图形的程序。* *# # #3 3 3 3程序如下:#include main()( printf("* *n"); printf("# # #n"); printf("%-2d%-2d%-2d%-2dn", 3, 3, 3, 3);)1_21_2_2下面程序段的输出结果是________int a=10, b=10;a+=b-=a*=b/=3;printf("a=%d,b=%d", a, b);本题考查复合赋值运算符及其运算过程。(从右到左运算,运算过程中变量的值会发生改变)1_2_4下面程序段的输出结果是________int a=10, b=10, c, d;c=(++a, b++, a++, ++b); /*该语句从整体来看完成一个赋值运算,而赋值运算的右侧表达式则是作逗号运算*/d=--a, b--, --a, b--; /*这个语句从整体来看是作逗号运算,逗号运算的第一个子表达式是赋值运算,其它三个是自减运算*/printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);本题考查逗号运算,自加自减运算符以及它们与括号、赋值运算符等各种运算符的运算优先级次序。1_2_6语句printf("%d", 32766+5);的输出结果是________printf("%4d", a[i][j]);}printf("n");}printf("%fn", f(a));}float f(int a[M][N])(int i, j;float sum=0;for(i=0; ifor(j=0; jsum+=a[i][j];return sum/(M*N);)7_2提高部分习题7_2_2正确7_2_4________7_2_6#include float sum(int m)(if(1==m) return 1;else return m+sum(m-1);)main()(int n;scanf(“%d”, &n);printf(“%fn”, sum(n));)第二章2.1基础部分习题2_1_1.判断正误:程序中的所有语句都被执行一次,而且只能执行一次。错误。循环结构中循环体部分的语句就可执行多次,分支结构中只能选择其中的一个子句执行。2_1_2.判断正误:在C语言中,任何表达式的尾部加上一个分号就可以构成语句。正确。2_1_4.编写程序输出12.5X3.4的值(要求:不使用变量);#include main()( printf("%f", 12.5*3.4);)2_1_6改正后的程序:#include main()( int m, h; h = 500/60; m = 500%60; printf("500分钟是%d小时%d分钟",h,m);)2_1_8#include main()( char x, y, t; x=getchar(); y=getchar(); printf("交换前: x=%c,y=%c", x, y); t=x; x=y; y=t; printf("交换后: x=%c,y=%c", x, y);)2_2提高部分习题2_2_2已有定义“int a; double b; char c;"和语句"scanf("%d%lf%c", &a, &b, &c);",若通过键盘给变量a、b、c分别赋值12, 3.4和字符A,其正确的输入形式为________________第三章3_1 基础部分习题3_1_1.判断正误:逻辑运算符两侧的运算量可以是任何类型的数据。正确。进行逻辑运算时,如果运算量是0值则被看成是逻辑值为0,非0值则被看作逻辑值1,最后的计算结果要么为0,要么为1(具体计算过程按逻辑运算规则进行)。3_1_2.判断正误:关系表达式和逻辑表达式的值只能是0或1。正确。关系运算和逻辑运算的结果要么为真要么为假,在C语言中分别用1和0表示。3_1_4.能正确表示0≤a≤10的逻辑表达式是________3_1_6.如果字符变量c中的字符为大写英文字母,则转换为小写英文字母的语句是________3_1_8.下面程序段的输出结果是________char ch='b'; int x, y; x=ch=='B'+'a'-'A';y='0'||'1'-'1';printf("%d,%d", x, y);解答: 对于x=ch=='B'+'a'-'A',首先要清楚运算符计算的优先次序(从整体来看是执行一个赋值运算,而赋值运算符右边的表达式是执行一个关系运算,关系运算的左侧变量ch值为'b',右侧为算术表达式(对于字符型数据的算术运算和关系运算等都是依据各字符的ASCII码值进行,因此该表达式的值为'b'),从而赋值运算右侧关系表达式值为1,x即被赋值为1)。 对于y='0'||'1'-'1',逻辑运算符两侧的运算量要先转换为0或1值。对于字符‘0’,由于其ASCII码值48为非0值,因此||右边的运算不用再进行,整个逻辑表达式结果为1,则y被赋值1。3_1_10.下面程序段的输出结果是________该题主要考查switch结构,要注意各case子句中有无break语句的区别。3_2 提高部分习题3_2_2.下面程序段的输出结果是________该题考查条件运算符? : ,它的一般形式是: 表达式1?表达式2:表达式3当表达式1的计算结果为非0值(即它所表达的条件为真)时,运算结果取表达式2的值,否则取表达式3的值。第四章4_1基础部分习题4_1_2判断正误:由于表达式x%3 != 0和x%3的值相等,所以while(x%3 != 0)和while(x%3)等价。错误。条件存在问题,故因果关系不成立。因为x%3 != 0的值只能为0或者1,而x%3的值可为0,1或2。4_1_4若分别运行以下程序段,从键盘输入eor (表示回车),则运行后v1和v2的值分别是________4_1_6下面程序段的输出结果是________4_1_8 ________4_1_10#includemain()(int i=33;while(i<=122){printf("%c,%3d,%3o,%-4x", i, i, i, i);if((i-33+1)%4==0)printf("n");i++;)}4_1_12#include main()(char ch;printf("Input data:");ch=getchar();do{if(ch>='A' && ch<='Z')ch=ch+32;if(ch>='a' && ch<='z'){ch=ch+2;if(ch>'z') ch=ch-26;)putchar(ch);ch=getchar();}while(ch!='#');}4_1_14提示:如果要通过数据验证一个程序是否正确,应该将各种可能的情况都考虑到。如输入的字符串数据可能出现的情况有:所有字符都为大写字母,所有字符都为小写字母,大小写字母混合,所有字符不是字母,大写字母与其它字符混合等等。4_1_15#include main()(int n = 0, sum = 0;do{n++;sum += n;)while(sum < 1000);sum -= n;n--;printf("n=%d, sum=%dn", n, sum);}4_1_16#include main()(int n, sum = 0;for(n = 2; sum <=1000; n+=2)sum += n;n-=2;printf("n=%d, sum=%dn", n, sum);)或者#include main()(int n, sum = 0;n=0;while(sum<=1000){n+=2;sum+=n;)printf(“n=%d, sum=%dn”, n, sum);}/*注意:在第二个程序中,由于n+=2是在sum+=n之前完成的,故循环退出后不用执行语句n-=2*/4_1_18#include main()(int y2, y1, i=0;for(y2 = 1; y2 <= 4; y2++)for(y1 = 2; y1 <= 8; y1+=2)if(y2*20+y1*10 == 100){ i++;printf("第%d种方案:(y2=%d, y1=%d)t",i,y2, y1);)}或者#include main()(int y2, y1, i, n=0;for(y2 = 1; y2 <= 4; y2++){y1 = (100 - y2 * 20)/10;if(y1 * 10 + y2 * 20 == 100){n++;printf("第%d种方案: %d张20元, %d张10元", n, y2, y1);)}}4_1_20#include main( )(int i, j, n;scanf(“%d”, &n);for(i=1; i<=n; i++){for(j=1; j<=i; j++)printf(”%-2d”, i);printf(”n”);)}4_2_2错误。应将for(a>0)改为for( ;a>0; )或者while(a>0)4_2_4#include main()(int i, j;for(i = 1; i <= 9; i++){for(j = 1; j <= i; j++)printf("%d*%d=%-4d", i, j, i*j);printf("n");)}

课后习题解答(第1-7章)
 第一章1_1.1_1_2判断正误:即使两个整型数据未超出该数据的取值范围,它们的和也可能会超出该数据取值范围。正确。1_1_4判断正误:一个C程序可以有多个函数,其中主函数必须在程序的最开头。错误。其它函数如果要在主函数中使用的话,必须先在主函数之前定义或者声明。1_1_6判断正误:若有定义“float x=1.3;”,则表达式(int)x的值为1,因此可以说x中存放的值就是1。错误。(int)x表达式的值与x的值是不一样的,前者是对x取整后的数值,而取整运算对x自身的值不会产生影响。1_1_8判断正误:若有命令行“#define N1000”,则N++是不合法的表达式。正确。N为符号常量[1],不能对符号常量进行修改。1_1_10C程序是由________构成的,一个C程序必须有一个________。1_1_12  以下变量中不合法的是________________________________________,合法的是________________________________________________________________________。①name  ②double  ③Int  ④if  ⑤for_1  ⑥2k  ⑦a12345678  ⑧_a1_1_14  下面程序段[2]的输出结果是________int a; double b;a=b=123/100%2;printf("%d,%f", a, b);1_1_16  ________1_1_20  假设圆柱体的底面半径为r(=2.5),高为h(=3.5),请按下面给定的步骤编写求体积(体积=底面积X高)的程序。①定义变量r,h,v(存放体积值),注意变量的数据类型[3]。②给变量r,h赋值。③计算体积,并将结果存放在v中。④输出r,h,v的值。程序如下:#include #define PI 3.1415926main(){   float  r, h, v;   r=2.5;   h=3.5;   v=PI*r*r*h;   printf("r=%f, h=%f, v=%f\n", r, h, v);  }1_1_22  编写输出以下图形的程序。* *# # #3 3 3 3程序如下:#include main(){   printf("* *\n");   printf("# # #\n");   printf("%-2d%-2d%-2d%-2d\n", 3, 3, 3, 3);}1_21_2_2下面程序段的输出结果是________int a=10, b=10;a+=b-=a*=b/=3;printf("a=%d,b=%d", a, b);本题考查复合赋值运算符及其运算过程。(从右到左运算,运算过程中变量的值会发生改变)1_2_4下面程序段的输出结果是________int a=10, b=10, c, d;c=(++a, b++, a++, ++b); /*该语句从整体来看完成一个赋值运算,而赋值运算的右侧表达式则是作逗号运算*/d=--a, b--, --a, b--; /*这个语句从整体来看是作逗号运算,逗号运算的第一个子表达式是赋值运算,其它三个是自减运算*/printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);本题考查逗号运算,自加自减运算符以及它们与括号、赋值运算符等各种运算符的运算优先级次序。1_2_6语句printf("%d", 32766+5);的输出结果是________
printf("%4d", a[i][j]);
}
printf("\n");
}
printf("%f\n", f(a));
}
float f(int a[M][N])
{
int i, j;
float sum=0;
for(i=0; i
for(j=0; j
sum+=a[i][j];
return sum/(M*N);
}
7_2提高部分习题
7_2_2正确
7_2_4________
7_2_6
#include
float sum(int m)
{
if(1==m) return 1;
else return m+sum(m-1);
}
main()
{
int n;
scanf(“%d”, &n);
printf(“%f\n”, sum(n));
}
第二章2.1基础部分习题2_1_1.判断正误:程序中的所有语句都被执行一次,而且只能执行一次。错误。循环结构中循环体部分的语句就可执行多次,分支结构中只能选择其中的一个子句执行。2_1_2.判断正误:在C语言中,任何表达式的尾部加上一个分号就可以构成语句。正确。2_1_4.编写程序输出12.5X3.4的值(要求:不使用变量);#include main(){    printf("%f", 12.5*3.4);}2_1_6改正后的程序:#include main(){    int m, h;    h = 500/60;    m = 500%60;   printf("500分钟是%d小时%d分钟",h,m);}2_1_8#include main(){    char  x, y, t;    x=getchar();    y=getchar();    printf("交换前: x=%c,y=%c", x, y);    t=x;    x=y;    y=t;    printf("交换后: x=%c,y=%c", x, y);}
2_2提高部分习题2_2_2已有定义“int a; double b; char c;"和语句"scanf("%d%lf%c", &a, &b, &c);",若通过键盘给变量a、b、c分别赋值12, 3.4和字符A,其正确的输入形式为________________
第三章3_1  基础部分习题3_1_1.判断正误:逻辑运算符两侧的运算量可以是任何类型的数据。正确。进行逻辑运算时,如果运算量是0值则被看成是逻辑值为0,非0值则被看作逻辑值1,最后的计算结果要么为0,要么为1(具体计算过程按逻辑运算规则进行)。3_1_2.判断正误:关系表达式和逻辑表达式的值只能是0或1。正确。关系运算和逻辑运算的结果要么为真要么为假,在C语言中分别用1和0表示。3_1_4.能正确表示0≤a≤10的逻辑表达式是________3_1_6.如果字符变量c中的字符为大写英文字母,则转换为小写英文字母的语句是________3_1_8.下面程序段的输出结果是________char ch='b'; int x, y;   x=ch=='B'+'a'-'A';y='0'||'1'-'1';printf("%d,%d", x, y);解答:   对于x=ch=='B'+'a'-'A',首先要清楚运算符计算的优先次序(从整体来看是执行一个赋值运算,而赋值运算符右边的表达式是执行一个关系运算,关系运算的左侧变量ch值为'b',右侧为算术表达式(对于字符型数据的算术运算和关系运算等都是依据各字符的ASCII码值进行,因此该表达式的值为'b'),从而赋值运算右侧关系表达式值为1,x即被赋值为1)。   对于y='0'||'1'-'1',逻辑运算符两侧的运算量要先转换为0或1值。对于字符‘0’,由于其ASCII码值48为非0值,因此||右边的运算不用再进行,整个逻辑表达式结果为1,则y被赋值1。3_1_10.下面程序段的输出结果是________该题主要考查switch结构,要注意各case子句中有无break语句的区别。
3_2  提高部分习题3_2_2.下面程序段的输出结果是________该题考查条件运算符? :  ,它的一般形式是:   表达式1?表达式2:表达式3当表达式1的计算结果为非0值(即它所表达的条件为真)时,运算结果取表达式2的值,否则取表达式3的值。
第四章4_1基础部分习题4_1_2判断正误:由于表达式x%3 != 0和x%3的值相等,所以while(x%3 != 0)和while(x%3)等价。错误。条件存在问题,故因果关系不成立。因为x%3 != 0的值只能为0或者1,而x%3的值可为0,1或2。4_1_4若分别运行以下程序段,从键盘输入eor (表示回车),则运行后v1和v2的值分别是________4_1_6下面程序段的输出结果是________4_1_8  ________
4_1_10
#include
main()
{
int i=33;
while(i<=122)
{
printf("%c,%3d,%3o,%-4x", i, i, i, i);
if((i-33+1)%4==0)
printf("\n");
i++;
}
}
4_1_12
#include
main()
{
char ch;
printf("Input data:");
ch=getchar();
do
{
if(ch>='A' && ch<='Z')
ch=ch+32;
if(ch>='a' && ch<='z')
{
ch=ch+2;
if(ch>'z') ch=ch-26;
}
putchar(ch);
ch=getchar();
}while(ch!='#');
}
4_1_14
提示:如果要通过数据验证一个程序是否正确,应该将各种可能的情况都考虑到。
如输入的字符串数据可能出现的情况有:所有字符都为大写字母,所有字符都为小写字母,大小写字母混合,所有字符不是字母,大写字母与其它字符混合等等。
4_1_15
#include
main()
{
int n = 0, sum = 0;
do
{
n++;
sum += n;
}while(sum < 1000);
sum -= n;
n--;
printf("n=%d, sum=%d\n", n, sum);
}
4_1_16
#include
main()
{
int n, sum = 0;
for(n = 2; sum <=1000; n+=2)
sum += n;
n-=2;
printf("n=%d, sum=%d\n", n, sum);
}
或者
#include
main()
{
int n, sum = 0;
n=0;
while(sum<=1000)
{
n+=2;
sum+=n;
}
printf(“n=%d, sum=%d\n”, n, sum);
}
/*注意:在第二个程序中,由于n+=2是在sum+=n之前完成的,故循环退出后不用执行语句n-=2*/
4_1_18
#include
main()
{
int y2, y1, i=0;
for(y2 = 1; y2 <= 4; y2++)
for(y1 = 2; y1 <= 8; y1+=2)
if(y2*20+y1*10 == 100)
{ i++;
printf("第%d种方案:(y2=%d, y1=%d)\t",i,y2, y1);
}
}
或者
#include
main()
{
int y2, y1, i, n=0;
for(y2 = 1; y2 <= 4; y2++)
{
y1 = (100 - y2 * 20)/10;
if(y1 * 10 + y2 * 20 == 100)
{
n++;
printf("第%d种方案: %d张20元, %d张10元", n, y2, y1);
}
}
}
4_1_20
#include
main( )
{
int i, j, n;
scanf(“%d”, &n);
for(i=1; i<=n; i++)
{
for(j=1; j<=i; j++)
printf(”%-2d”, i);
printf(”\n”);
}
}
4_2_2
错误。应将for(a>0)改为for( ;a>0; )或者while(a>0)
4_2_4
#include
main()
{
int i, j;
for(i = 1; i <= 9; i++)
{
for(j = 1; j <= i; j++)
printf("%d*%d=%-4d", i, j, i*j);
printf("\n");
}
}

题目解答

答案

函数 主函数 ② 、 ④ 、 ⑥ ① 、 ③ 、 ⑤ 、 ⑦ 、 ⑧ 1,1.000000 a*a*a*b*b/(c-d) a=3,b=-27 a=10,b=10,c=12,d=11 -32765 7 12 7 7 7 7 14 12   3.4A a>=0&&a<=10 c+=32; 1,1 BBBCCC 2 2,2 4 i%7==0

相关问题

  • 下列不属于量子机器学习算法的是()A. 量子支持向量机B. 量子主成分分析C. 薛定谔方程求解D. 深度量子学习

  • 下列哪个方法属于知识图谱推理方法()A. 广度优先搜索B. 深度学习推断C. 路径排序算法D. 归纳逻辑程序设计

  • 下列哪项关于监督学习算法的描述正确()A. 强化学习的训练效果一定优于监督学习B. 主要的监督学习方法包括生成方法和判别方法C. 广度优先搜索算法是一种监督学习算法

  • 7、 加强电脑安全防护,及时升级病 毒库,安装防火墙,及时查杀病毒和木马,是防范 电信网络诈骗的有效做法。A. 正确B. 错误

  • AdaBoosting采用多个单一分类器组成一个强分类器()A. 错误B. 正确

  • 以下哪种方法属于卷积神经网络的基本组件()。A. 卷积层B. 池化层C. 激活函数D. 复制层

  • 下列哪个方法属于知识图谱推理方法()A. 路径排序算法B. 深度学习推断C. 广度优先搜索D. 归纳逻辑程序设计

  • 在决策树建立过程中,使用一个属性对某个结点对应的数集合进行划分后,结果具有高信息熵(highentropy),对结果的描述,最贴切的是()。A. 纯度高B. 纯度低C. 有用D. 无用E. 以上描述都不贴切

  • 路径排序算法的工作流程主要有三步()A. 特征计算B. 特征抽取C. 分类器训练D. 因果推断

  • 下列哪项贪婪最佳优先搜索算法的描述正确()A. 贪婪最佳优先搜索不属于启发式搜索算法B. 贪婪最佳优先搜索是一种A*搜索算法C. 贪婪最佳优先搜索是一种广度优先搜索算法D. 贪婪最佳优先搜索属于有信息搜索算法

  • 由脸书(Facebook)公司开发的深度学习编程框架是()A. TensorFlowB. PaddlePaddleC. PyTorchD. Mindspore

  • 路径排序算法的工作流程主要有三步()A. 特征抽取B. 特征计算C. 分类器训练D. 因果推断

  • 下列哪项不是求解对抗搜索问题的基本算法( ) A.反向传播算法 B.广度优先排序算法 C.Alpha-Beta剪枝算法D.最小最大搜索算法

  • 网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误

  • 下列哪项关于广度优先搜索的描述正确()A. 每次扩展时,该算法从边缘集合中取出最下层(最深)的节点B. 广度优先搜索算法是深度优先搜索算法的特例C. 每次扩展时,该算法从边缘集合中取出最上层(最浅)的节点D. 深度优先搜索是广度优先搜索的特例

  • 3.判断题K-means聚类算法对数据的尺寸敏感。()A. 对B. 错

  • 网络安全包括物理安全[1]、逻辑安全、操作系统安全及联网安全,其中逻辑安全包括访问控制[2]、加密、安全管理及用户身份认证。A. 正确B. 错误

  • 2.单选题 讯飞星火可以实现多种文案类型和语言风格的文本写作。讯飞星火(网页版)“内容写作”功能可选的“语言风格”不包括( )。A. 口语化B. 高情商C. 专业D. 热情

  • 下列哪项属于因果推理模型()A. 因果图B. 神经符号推理C. 符号推理模型D. 结构因果模型

  • 下列哪项属于因果推理模型() A. 因果图B. 符号推理模型C. 神经符号推理D. 结构因果模型

上一页下一页
logo
广州极目未来文化科技有限公司
注册地址:广州市黄埔区揽月路8号135、136、137、138房
关于
  • 隐私政策
  • 服务协议
  • 权限详情
学科
  • 医学
  • 政治学
  • 管理
  • 计算机
  • 教育
  • 数学
联系我们
  • 客服电话: 010-82893100
  • 公司邮箱: daxuesoutijiang@163.com
  • qt

©2023 广州极目未来文化科技有限公司 粤ICP备2023029972号    粤公网安备44011202002296号