《2018春C语言程序设计精髓(山东工商学院)(中国高校计算机教育MOOC联盟) 》mooc慕课答案2026年版 | 萌面人

《2018春C语言程序设计精髓(山东工商学院)(中国高校计算机教育MOOC联盟) 》mooc慕课答案2026年版


;>=’A’&&c <= ‘Z’


2018-03-20到2018-06-30

第1周——初识C语言从认识变量和常量开始 练兵区——单选题——不计入总分

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width
C:#abc123 
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1;
width

2、 问题:以下不适合定义为用户标识符的是
选项:
A:float 
B:main
C:define
D:3com
E:PI
F:Source
G:abc
答案: 【float ;
main;
define

3、 问题:#include <stdio.h>是
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示" 0 error,0 warning" 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的(  )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码 
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B       
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

第1周——初识C语言从认识变量和常量开始 第1周测验

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width.x
C:#abc123 
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1

2、 问题:以下不适合定义为用户标识符的是
选项:
A:int 
B:a2
C:def2
D:3com
E:PI 
F:Source
G:abc
答案: 【int 

3、 问题:#include <stdio.h>是
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示" 0 error,0 warning" 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的(  )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码 
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B       
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

【作业】第1周——初识C语言从认识变量和常量开始 练兵区——编程题——不计入总分

1、 问题:hello world!
建议:【本题是主观题,暂无解析

2、 问题:在屏幕上输出多行信息
建议:【本题是主观题,暂无解析

3、 问题:计算半圆弧长及半圆的面积。
建议:【本题是主观题,暂无解析

4、 问题:计算长方体体积
建议:【本题是主观题,暂无解析

【作业】第2周——数字间的那些事儿,做点计算哈 练兵区——编程题——不计入总分

1、 问题:输出逆序数
建议:【本题是主观题,暂无解析

2、 问题:计算总分和平均分
建议:【本题是主观题,暂无解析

3、 问题:存款利率计算器V1.0
建议:【本题是主观题,暂无解析

4、 问题:数位拆分v1.0
建议:【本题是主观题,暂无解析

5、 问题:求正/负余数
建议:【本题是主观题,暂无解析

6、 问题:身高预测
建议:【本题是主观题,暂无解析

7、 问题:求一元二次方程的根
建议:【本题是主观题,暂无解析

第2周——数字间的那些事儿,做点计算哈 第2周测验

1、 问题:下列程序的输出结果是#include <stdio.h>
int main()

   int a=7,b=5;   
   printf("%d",b/a);
   return 0;   
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【0

2、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

3、 问题:以下程序的输出结果是:#include <stdio.h>
int main() 

    int a=1, b=2; 
    a=a+b; 
    b=a-b; 
    a=a-b; 
    printf("%d,%d", a, b );
    return 0;  
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【2,1

4、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

    int m=3,n=4,x;
    x=m++;
    ++n;
    x=x+8/n;
    printf("%d,%d",x,m);
    return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【4,4

5、 问题:下面程序的运行结果是#include  <stdio.h>
int main()
{
    int    a = 2, b = 3 ;
    float  x = 3.5, y = 2.5 ;
    printf("%f", (float)(a+b) / 2 + (int)x % (int)y) ;
    return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【3.500000

6、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

7、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6             
D:5.500000  
答案: 【6.000000

8、 问题: 以下程序的运行结果是#include <stdio.h>
int main() 

    int  a = 12, b = 3; 
    float  x = 18.5, y = 4.5; 
    printf("%f", (float)(a * b) / 2); 
    printf("%d", (int)x %(int)y); 
    return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【18.0000002

9、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

10、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

11、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

    char a=’a’;
    printf("%c,",++a);
    printf("%c",a++);
    return 0;
}
选项:
A: b,b
B:b,c
C:a,b
D:a,c
答案: 【 b,b

12、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

13、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

14、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0; 
B:x1=26.8%3;
C:1+2=x2; 
D:x4=1+2=3;
答案: 【x3=x2=x1=0; 

15、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include <stdio.h>
int main()
{
    char  a;
    int b;
    float  c;
    double d;
    ….
    return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【double

16、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include <math.h>
B:#include <stdio.h>
C:#define <math.h>
D:#define <stdio.h>
答案: 【#include <math.h>

17、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

18、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

19、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是(     )。
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

20、 问题:设有以下定义,则下面给出的语句中错误的是int a=0; 
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

第2周——数字间的那些事儿,做点计算哈 练兵区——单选题——不计入总分

1、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

2、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include <math.h>
B:#include <stdio.h>
C:#define <math.h>
D:#define <stdio.h>
答案: 【#include <math.h>

3、 问题:设有以下定义,则下面给出的语句中错误的是int a=0; 
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

4、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

5、 问题:以下程序的输出结果是:#include <stdio.h>
int main() 

    int a=1, b=2; 
    a=a+b; 
    b=a-b; 
    a=a-b; 
    printf("%d,%d", a, b );  
    return 0;
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【2,1

6、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

7、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

8、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include <stdio.h>
int main()
{
    char  a;
    int b;
    float  c;
    double d;
    ….
    return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【double

9、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

10、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

11、 问题:下列程序的输出结果是#include <stdio.h>
int main()

   int a=7,b=5;   
   printf("%d",b/a);
   return 0;   
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【0

12、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

    int m=3,n=4,x;
    x=m++;
    ++n;
    x=x+8/n;
    printf("%d,%d",x,m);
    return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【4,4

13、 问题:下面程序的运行结果是#include  <stdio.h>
int main()
{
    int    a = 2, b = 3 ;
    float  x = 3.5, y = 2.5 ;
    printf("%f", (float)(a+b) / 2 + (int)x % (int)y) ;
    return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【3.500000

14、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

15、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

16、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6
D:5.500000  
答案: 【6.000000

17、 问题:以下程序的运行结果是#include <stdio.h>
int main() 

    int  a = 12, b = 3; 
    float  x = 18.5, y = 4.5; 
    printf("%f", (float)(a * b) / 2); 
    printf("%d", (int)x %(int)y); 
    return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【18.0000002

18、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

19、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

    char a=’a’;
    printf("%c,",++a);
    printf("%c",a++);
    return 0;
}
选项:
A:b,b
B:b,c
C:a,b
D:a,c
答案: 【b,b

20、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0; 
B:x1=26.8%3;
C:1+2=x2; 
D:x4=1+2=3;
答案: 【x3=x2=x1=0; 

第3周——从键盘中来,到键盘中去,开始输入和输出啦 练兵区——单选题——不计入总分

1、 问题:以下程序的输出结果为#include <stdio.h> 
int main() 

   float a = 1234.567,b = 55.32; 
   printf("a = %4.2f, b = %5.1f", a,b); 
   return 0;
 }
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【a = 1234.57, b = 55.3

2、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:"B"
C:68
D:D
答案: 【 ‘\010’

3、 问题:给出程序的运行结果程序运行时从键盘输入:1<空格>2<回车>#include <stdio.h>
int main()
{
  char a,b;
  int s;
  printf("please input a and b:");
  a=getchar();
  b=getchar();
  s=a+b;
  printf("a=%c,b=%c",a,b);
  return 0;
}
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【a=1,b=

4、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf("a=%d,b=%d",&a,&b)
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

5、 问题:#include <stdio.h>
int main()

    int a,b,c,d;
    scanf("%c%c%d,%d",&a,&b,&c,&d);
    printf("%c,%c,%c,%c",a,b,c,d);
    return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【6,5,A,B

6、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include <stdio.h>
int main()
{  
    int a,b,s;
    scanf("%2d%2d",&a,&b);
    s=a/b;
    printf("s=%d",s);
    return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【1

7、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

8、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

    int a=666,b=888;
    printf("%d",a,b);
    return 0;
}
选项:
A:666
B:错误信息 
C:888
D:666,888
答案: 【666

9、 问题:在C语言中,字符型数据在内存中以(  )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

10、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()

    int a; 
    int c=10;
    float f=100.0; 
    double x;
    a=f/=c*=(x=6.5);
    printf("%d,%d,%3.1f,%3.1f",a,c,f,x);
    return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【1,65,1.5,6.5

11、 问题:以下程序的输出结果是#include <stdio.h>
int main()
{
    int a=1234;
    printf("%2d",a);
    return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【1234

12、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

13、 问题:有以下语句段#include <stdio.h>
int main()
{
    int n1=10,n2=20;
    printf("___",n1,n2);
    return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【n1=%dn2=%d

14、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include <stdio.h>
int main()
{  
    int a,b,sum;
    scanf("%d%*c%d",&a,&b);
    sum=a+b;
    printf("sum=%d",sum);
    return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【57

15、 问题:给出程序的运行结果#include <stdio.h>
int main()
{  
    int a,b,s;
    char op;
    scanf("%d %c%d",&a,&op,&b);
    s=a%b;
    printf("s=%d",s);
    return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【0

16、 问题:分析下列程序,写出程序运行结果#include <stdio.h>
int main()

    char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
    printf("a%cb%cc%cabc", c1, c2, c3);

    return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【aabbccabc

17、 问题:以下程序的输出结果为#include <stdio.h>
int main()
{
      int a=2, c=5;
      printf("a = %%d, b = %%d", a, c);
      return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【a = %d, b = %d

18、 问题:有以下程序,运行时若输入为B,则输出是#include <stdio.h>
int main()
 { 
     char ch;
     ch=getchar();
     ch=ch+32;
     printf("%c",ch);
     return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【b

19、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf("%d %f",&a,&b);
B:int a,b;scanf("%d %d",a,b);
C:int a,b;scanf("%d%d",&a,&b);printf("%d %d",a,b);
D:float a,b;scanf("%3.2f %4.2f",&a,&b);printf("%f %f",a,b);
E:float a,b;scanf("%f %f",&a,&b);printf("%f %f",a,b);
F:float a,b;scanf("%f %f",&a,&b);printf("a=%4.3f,b=%4.3f",a,b);
G:int a,b;scanf("%2d%2d",&a,&b);printf("a=%d,b=%d",a,b);
H:int a,b;scanf("%d,%d",&a,&b);printf("a=%2d,b=%2d",a,b);
I:int a,b;scanf("a=%d,b=%d",&a,&b);printf("a=%d,b=%d",a,b);
答案: 【int a,b;scanf("%d %f",&a,&b);;
int a,b;scanf("%d %d",a,b);;
int a,b;scanf("%d%d",&a,&b);printf("%d %d",a,b);;
float a,b;scanf("%3.2f %4.2f",&a,&b);printf("%f %f",a,b);

20、 问题:写出下面程序的输出结果#include<stdio.h>
int main()
  {
     int x=6,y,z;
     x*=18+1;
     printf("%d,",x–);
     x+=y=z=11;
     printf("%d",x);
     return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【114,124

21、 问题:给出程序的运行结果#include <stdio.h>
int main()
{
  int a,b,c,d;
  char op1,op2,op3;
  int sum;
  printf("please input:a+b+c+d");
  scanf("%d%c%d%c%d%c%d",&a,&op1,&b,&op2,&c,&op3,&d);
  sum=a+b+c+d;
  printf("sum=%d",sum);
  return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【7

22、 问题:以下程序的执行结果是#include  <stdio.h> 
int main() 

   int  a = 5, b = 4, x, y; 
   x = 2  a++;
   y = –b 
 2; 
   printf("a=%d, x=%d", a, x); 
   printf("b=%d, y=%d", b, y); 
   return 0;
}
选项:
A:a=6,  x=10b=3,  y=6
B:a=6,  x=10b=3,  y=8
C:a=6,  x=12b=3,  y=6
D:以上均不对
答案: 【a=6,  x=10b=3,  y=6

第3周——从键盘中来,到键盘中去,开始输入和输出啦 第3周测验

1、 问题:分析下列程序,写出程序运行结果#include <stdio.h>
int main()

    char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
    printf("a%cb%cc%cabc", c1, c2, c3);
    return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【aabbccabc

2、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf("a=%d,b=%d",&a,&b);
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

3、 问题:#include <stdio.h>
int main()

    int a,b,c,d;
    scanf("%c%c%d,%d",&a,&b,&c,&d);
    printf("%c,%c,%c,%c",a,b,c,d);
    return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【6,5,A,B

4、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include <stdio.h>
int main()
{  
    int a,b,s;
    scanf("%2d%2d",&a,&b);
    s=a/b;
    printf("s=%d",s);
    return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【1

5、 问题:以下程序的输出结果为#include <stdio.h> 
int main() 

   float a = 1234.567,b = 55.32; 
   printf("a = %4.2f, b = %5.1f", a,b); 
   return 0;
 }
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【a = 1234.57, b = 55.3

6、 问题:以下程序的输出结果为#include <stdio.h>
int main()
{
      int a=2, c=5;
      printf("a = %%d, b = %%d", a, c);
      return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【a = %d, b = %d

7、 问题:有以下程序,运行时若输入为B,则输出是#include <stdio.h>
int main()
 { 
     char ch;
     ch=getchar();
     ch=ch+32;
     printf("%c",ch);
     return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【b

8、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

9、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

10、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf("%d %f",&a,&b);
B:int a,b;scanf("%d %d",a,b);
C:int a,b;scanf("%d%d",&a,&b);printf("%d %d",a,b);
D:float a,b;scanf("%3.2f %4.2f",&a,&b);printf("%f %f",a,b);
E:float a,b;scanf("%f %f",&a,&b);printf("%f %f",a,b);
F:float a,b;scanf("%f %f",&a,&b);printf("a=%4.3f,b=%4.3f",a,b);
G:int a,b;scanf("%2d%2d",&a,&b);printf("a=%d,b=%d",a,b);
H:int a,b;scanf("%d,%d",&a,&b);printf("a=%2d,b=%2d",a,b);
I:int a,b;scanf("a=%d,b=%d",&a,&b);printf("a=%d,b=%d",a,b);
答案: 【int a,b;scanf("%d %f",&a,&b);;
int a,b;scanf("%d %d",a,b);;
int a,b;scanf("%d%d",&a,&b);printf("%d %d",a,b);;
float a,b;scanf("%3.2f %4.2f",&a,&b);printf("%f %f",a,b);

11、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

    int a=666,b=888;
    printf("%d",a,b);
    return 0;
}
选项:
A:666
B:错误信息 
C:888  
D:666,888
答案: 【666

12、 问题:有以下语句段#include <stdio.h>
int main()
{
    int n1=10,n2=20;
    printf("___",n1,n2);
    return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【n1=%dn2=%d

13、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:"B"
C:68
D:D
答案: 【 ‘\010’

14、 问题:写出下面程序的输出结果#include<stdio.h>
int main()
  {
     int x=6,y,z;
     x*=18+1;
     printf("%d,",x–);
     x+=y=z=11;
     printf("%d",x);
     return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【114,124

15、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include <stdio.h>
int main()
{  
    int a,b,sum;
    scanf("%d%*c%d",&a,&b);
    sum=a+b;
    printf("sum=%d",sum);
    return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【57

16、 问题:给出程序的运行结果#include <stdio.h>
int main()
{  
    int a,b,s;
    char op;
    scanf("%d %c%d",&a,&op,&b);
    s=a%b;
    printf("s=%d",s);
    return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【0

17、 问题:给出程序的运行结果#include <stdio.h>
int main()
{
  int a,b,c,d;
  char op1,op2,op3;
  int sum;
  printf("please input:a+b+c+d");
  scanf("%d%c%d%c%d%c%d",&a,&op1,&b,&op2,&c,&op3,&d);
  sum=a+b+c+d;
  printf("sum=%d",sum);
  return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【7

18、 问题:在C语言中,字符型数据在内存中以(  )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

19、 问题:以下程序的执行结果是#include  <stdio.h> 
int main() 

   int  a = 5, b = 4, x, y; 
   x = 2  a++;
   y = –b 
 2; 
   printf("a=%d, x=%d", a, x); 
   printf("b=%d, y=%d", b, y); 
   return 0;
}
选项:
A:a=6,  x=10b=3,  y=6
B:a=6,  x=10b=3,  y=8
C:a=6,  x=12b=3,  y=6
D:以上均不对
答案: 【a=6,  x=10b=3,  y=6

20、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()

    int a; 
    int c=10;
    float f=100.0; 
    double x;
    a=f/=c*=(x=6.5);
    printf("%d,%d,%3.1f,%3.1f",a,c,f,x);
    return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【1,65,1.5,6.5

21、 问题:给出程序的运行结果#include <stdio.h>
int main()
{
  char a,b;
  int s;
  printf("please input a and b:");
  a=getchar();
  b=getchar();
  s=a+b;
  printf("a=%c,b=%c",a,b);
  return 0;
}程序运行时从键盘输入:1<空格>2<回车>
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【a=1,b=

22、 问题:以下程序的输出结果是#include <stdio.h>
int main()
{
    int a=1234;
    printf("%2d",a);
    return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【1234

【作业】第3周——从键盘中来,到键盘中去,开始输入和输出啦 第3周编程题在线测试

1、 问题:学分绩计算
建议:【本题是主观题,暂无解析

2、 问题:一尺之捶,日取其半
建议:【本题是主观题,暂无解析

3、 问题:网购打折商品V1.0
建议:【本题是主观题,暂无解析

4、 问题:计算时间差V1.0
建议:【本题是主观题,暂无解析

【作业】第3周——从键盘中来,到键盘中去,开始输入和输出啦 练兵区——编程题——不计入总分

1、 问题:日期显示
建议:【本题是主观题,暂无解析

2、 问题:产品信息格式化
建议:【本题是主观题,暂无解析

3、 问题:计算两个数的平方和
建议:【本题是主观题,暂无解析

4、 问题:逆序数的拆分计算
建议:【本题是主观题,暂无解析

5、 问题:拆分英文名
建议:【本题是主观题,暂无解析

6、 问题:计算体指数
建议:【本题是主观题,暂无解析

第4周——无处不在的抉择 练兵区——单选题——不计入总分

1、 问题:下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。#include <stdio.h>
int main()
{
    int m;
    printf("Input m: ");
    scanf("%d", &m);        //输入一个整数
    if (m > 0)              //是否为正数
    {
        if (m % 2 == 0)     //是正数,且能被2整除,则是正偶数
        {
            printf("%d is a positive even", m);
        }
        else                    //不能被2整除,则是正奇数
        {
            printf("%d is a positive odd", m);
        }
    }
    
    __          //判断是否为负数
    
    {
        __

        
        {
             printf("%d is a negative even", m);   //是负偶数
        }
        else
        {
             printf("%d is a negative odd", m);    //是负奇数
        }
    }
    else
    {
        printf("%d is zero.It is an even", m);    
    }
   return 0;
}
选项:
A:第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
B:第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
C:第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
D:第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
答案: 【第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

2、 问题:执行以下程序后的输出结果为#include <stdio.h>
int main()
{
   int a=1,b=0;
   switch (a)
   {  
     case  1:
            switch (b)
            {   
               case  0: printf("0");break;
               case  1: printf("1");break;
            }
    case  2: printf("2");break;
   }
  return 0;
}
选项:
A:0*2*
B:
0

C:0*1*2
D:有语法错误
答案: 【02

3、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()

   int a=1,b=2,m=0,n=0,k;
   k=(n=b>a)||(m=a<b);
   printf("%d,%d",k,m);
   return 0;
}
选项:
A:1,0
B:0,0
C:0,1
D:1,1
答案: 【1,0

4、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()

    int a,b,c;
    a=10;
    b=20;
    c=(a%b<1)||(a/b>1);
    printf("%d,%d,%d",a%b,a/b,c);
    return 0;
}
选项:
A:10,0,0
B:10,1,0
C:10,0,1
D:10,1,1
答案: 【10,0,0

5、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式:        操作数1    运算符op    操作数2然后,计算并输出表达式的值指定的运算符为:    加(+)    减(-)    乘()    除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include <stdio.h>
int main()
{
         float    data1, data2;            
         char   op;
         printf("Please enter the expression:");
         scanf("%f  %c%f", &data1, &op, &data2); /
 %c前有一个空格 
         switch (op) 
         {
                   case ‘+’:
                            printf("%f + %f = %f", data1, data2, data1 + data2); 
                            break;
                   case ‘-‘:
                            printf("%f – %f = %f", data1, data2, data1 – data2);
                            break;
                   case ‘
‘:
                            printf("%f  %f = %f", data1, data2, data1  data2); 
                            break;
                   case ‘/’:
                            printf("%f/%f = %f", data1, data2,data1/data2); 
                            break;
                   default: 
                            printf("Invalid operator!");
         }
        return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf("Division by zero!");else  printf("%f/%f = %f", data1, data2, data1/data2);同时,第1行语句下方应加入#include  <math.h>#define   EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf("Division by zero!");else  printf("%f/%f = %f", data1, data2, data1/data2);
答案: 【第20行语句有错误,改成:if (fabs(data2)<=EPS) printf("Division by zero!");else  printf("%f/%f = %f", data1, data2, data1/data2);同时,第1行语句下方应加入#include  <math.h>#define   EPS 1e-6

6、 问题:下列复合语句中,不能实现两数交换的是
选项:
A:{
  a=b;
  b=a;
}
B:{
    b = a * b;
    a = b / a;
    b = b / a; 
}
C:{
   t=a;
   a=b;
   b=t;
}
D:{
    a = a + b;
    b = a – b;
    a = a – b; 
}
答案: 【{
  a=b;
  b=a;
}

7、 问题:写出下面程序的输出结果#include <stdio.h>
int main()

   int x=1, y=0, a=0, b=0;
   switch(x)
   {  
       case 1:
              switch(y)
              {
                case 0: a++; 
                case 1: b++;
              }
      case 2:  a++;
               b++;
   }
   printf("a=%d, b=%d", a, b) ;
   return 0;
}
选项:
A:a=2, b=2
B:a=2, b=1
C:a=1, b=1
D:a=1, b=0
答案: 【a=2, b=2

8、 问题:执行下列程序,k输入为1时的输出结果是#include <stdio.h>
int main()

  int k;
  scanf("%d",&k);
  switch(k)
  { 
     case 1:   printf("%d",k++);
     case 2:   printf("%d",k++);
     case 3:   printf("%d",k++);
               break;
     default:  printf("Full!");
  } 
  return 0;
}
选项:
A:123
B:1
C:2
D:3
答案: 【123

9、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。#include <stdio.h>

include <math.h>

int main()
{
    int x;
    double y;
    printf("Input x: ");
    scanf("%d", &x);        // 输入一个整数
    if (x > 0)
    {
        y = exp(-x);        //如果大于0,计算y=exp(-x)的值 
    }
    _______
    {
        y = 1;              //x=0,则y=1
    }
    else
    {
        y = -exp(x);        //x<0,则y=-exp(x)
    }
    printf("y=%f", y);
    return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

10、 问题:以下程序的功能是计算一元二次方程的根。代码如下,请将第10行标号处缺少的语句填写完整。#include  <stdio.h>

include  <stdlib.h>

include  <math.h>

define   EPS 1e-6

int main()

      float  a, b, c, disc, p, q;
      printf("Please enter the coefficients a,b,c:"); 
      scanf("%f,%f,%f", &a, &b, &c); 
      _________      / a=0时,输出"不是二次方程" /
    
     {
               printf("It is not a quadratic equation!");
               exit(0);  / C标准库函数,用于终止整个程序的执行,强制返回操作系统 /
     }
      disc = b  b – 4  a  c; / 计算判别式 /
      p = – b / (2 
 a);
      q = sqrt(fabs(disc)) / (2  a);
      if (fabs(disc) <= EPS)    /
 判别式等于0时,输出两相等实根 /
      {
                   printf("x1 = x2 = %.2f", p);
      }
     else                      
     { 
                 if (disc > EPS)        /
 判别式大于0时,输出两不等实根 /
                 {
                            printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
                 }
                 else                     /
 判别式小于0时,输出两共轭复根 */
                 {
                            printf("x1 = %.2f+%.2fi, ", p, q);
                            printf("x2 = %.2f-%.2fi", p, q);
                 }
      }
     return 0;
}
选项:
A:if (fabs(a) <= EPS)
B:if (a <= EPS)
C:if (a=0)
D:if (a<= EPS || a>=-EPS)
答案: 【if (fabs(a) <= EPS)

11、 问题:从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include <stdio.h>

include  <math.h>

int main()
{
    float  a, b, c;             
    float  s, area;                
    printf("Input a,b,c:");
    scanf("%f,%f,%f",&a,&b,&c);
    if (a+b>c && b+c>a && a+c>b)  
   {
       s = 1/2  (a + b + c); 
       area = sqrt(s 
 (s – a)  (s – b)  (s – c));
       printf("area=%.2f", area); 
    }
    else
    {
       printf("It is not a triangle");    
    }
    return 0; 
}
选项:
A:第11行:   s = 1/2 * (a + b + c); 
B:第9行:   if (a+b>c && b+c>a && a+c>b)  
C:第12行:   area = sqrt(s * (s – a) * (s – b) * (s – c));
D:第8行:  scanf("%f,%f,%f",&a,&b,&c);
答案: 【第11行:   s = 1/2 * (a + b + c); 

12、 问题:若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
选项:
A:(x-y)<-10||!(y-x)>10
B: fabs(x-y)<10
C:x-y>-10 && x-y<10
D:(x-y)*(x-y)<100
答案: 【(x-y)<-10||!(y-x)>10

13、 问题:程序功能:从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。#include<stdio.h> 
int main() 
{  
  char c;   
  printf("Please input a character:");  
  scanf("%c",&c); 
  if(c >=’A’&&c <= ‘Z’)   
    c =___;  
  printf("%c",c); 
  return 0;  
}
选项:
A:c+32
B:c+48
C:c+65
D:c+97
答案: 【c+32

14、 问题:程序代码如下:#include <stdio.h>
int main()
{
  int a,b;
  printf("please input a and b:");
  scanf("%d%d",&a,&b);
  printf("the output data is %d",a<b?b:a);
  return 0;
}从键盘输入以下数据:2<回车>7<回车>则程序输出为
选项:
A:the output data is 7
B:the output data is 2
C:the output data is 1
D:the output data is 0
答案: 【the output data is 7

15、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()

   int a=5,b=4,c=3,d;
   d=(a>b>c);
   printf("%d",d);
   return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【0

16、 问题:下面程序运行后的输出结果是#include <stdio.h> 
int main()
{
    int a=3,b=4,c=5,d=2;
    if(a>b)
    { 
         if(b>c)
         { 
             printf("%d",d++ +1);
         }
         else
         { 
             printf("%d",++d +1);
         }
   }
   printf("%d",d);
   return 0;
}
选项:
A:2
B:3
C:43
D:44
答案: 【2

17、 问题:下列说法错误的是()。
选项:
A:case后的“常量表达式”的类型只能是整型。
B:若case后面的语句省略不写,则表示它什么也不做。
C:switch语句中的break和default可有可无。
D:每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E:程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F:若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G:每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H:case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
答案: 【case后的“常量表达式”的类型只能是整型。;
若case后面的语句省略不写,则表示它什么也不做。;
switch语句中的break和default可有可无。

【作业】第4周——无处不在的抉择 第4周编程题在线测试

1、 问题:分数比较
建议:【本题是主观题,暂无解析

2、 问题:存款利率计算器v2.0
建议:【本题是主观题,暂无解析

3、 问题:存款利率计算器v3.0
建议:【本题是主观题,暂无解析

4、 问题:博弈论之Best Response
建议:【本题是主观题,暂无解析

第4周——无处不在的抉择 第4周测验

1、 问题:程序代码如下:#include <stdio.h>
int main()
{
  int a,b;
  printf("please input a and b:");
  scanf("%d%d",&a,&b);
  printf("the output data is %d",a<b?b:a);
  return 0;
}从键盘输入以下数据:2<回车>7<回车>则程序输出为
选项:
A:the output data is 7
B:the output data is 2
C:the output data is 1
D:the output data is 0
答案: 【the output data is 7

2、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()
{ int a,b,c;
  a=10;
  b=20;
  c=(a%b<1)||(a/b>1);
  printf("%d,%d,%d",a%b,a/b,c);
  return 0;
}
选项:
A:10,0,0
B:10,1,0
C:10,0,1
D:10,1,1
答案: 【10,0,0

3、 问题:从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include <stdio.h>

include  <math.h>

int main()
{
    float  a, b, c;             
    float  s, area;                
    printf("Input a,b,c:");
    scanf("%f,%f,%f",&a,&b,&c);
    if (a+b>c && b+c>a && a+c>b)  
    {
       s = 1/2  (a + b + c); 
       area = sqrt(s 
 (s – a)  (s – b)  (s – c));
       printf("area=%.2f", area); 
    }
    else
    {
       printf("It is not a triangle");    
    }
    return 0; 
}
选项:
A:第11行:   s = 1/2 * (a + b + c); 
B:第9行:   if (a+b>c && b+c>a && a+c>b)  
C:第12行:   area = sqrt(s * (s – a) * (s – b) * (s – c));
D:第8行:  scanf("%f,%f,%f",&a,&b,&c);
答案: 【第11行:   s = 1/2 * (a + b + c); 

4、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式:        操作数1    运算符op    操作数2然后,计算并输出表达式的值指定的运算符为:    加(+)    减(-)    乘()    除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include <stdio.h>
int main()
{
         float    data1, data2;            
         char   op;
         printf("Please enter the expression:");
         scanf("%f  %c%f", &data1, &op, &data2); /
 %c前有一个空格 
         switch (op) 
         {
                   case ‘+’:
                            printf("%f + %f = %f", data1, data2, data1 + data2); 
                            break;
                   case ‘-‘:
                            printf("%f – %f = %f", data1, data2, data1 – data2);
                            break;
                   case ‘
‘:
                            printf("%f  %f = %f", data1, data2, data1  data2); 
                            break;
                   case ‘/’:
                            printf("%f/%f = %f", data1, data2,data1/data2); 
                            break;
                   default: 
                            printf("Invalid operator!");
         }
        return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf("Division by zero!");else  printf("%f/%f = %f", data1, data2, data1/data2);同时,第1行语句下方应加入#include  <math.h>#define   EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf("Division by zero!");else  printf("%f/%f = %f", data1, data2, data1/data2);
答案: 【第20行语句有错误,改成:if (fabs(data2)<=EPS) printf("Division by zero!");else  printf("%f/%f = %f", data1, data2, data1/data2);同时,第1行语句下方应加入#include  <math.h>#define   EPS 1e-6

5、 问题:若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
选项:
A:(x-y)<-10||!(y-x)>10
B: fabs(x-y)<10
C:x-y>-10 && x-y<10
D:(x-y)*(x-y)<100
答案: 【(x-y)<-10||!(y-x)>10

6、 问题:下列复合语句中,不能实现两数交换的是
选项:
A:{
  a=b;
  b=a;
}
B:{
    b = a * b;
    a = b / a;
    b = b / a; 
}
C:{
   t=a;
   a=b;
   b=t;
}
D:{
    a = a + b;
    b = a – b;
    a = a – b; 
}
答案: 【{
  a=b;
  b=a;
}

7、 问题:写出下面程序的输出结果#include <stdio.h>
int main()

   int x=1, y=0, a=0, b=0;
   switch(x)
   {  
       case 1:
              switch(y)
              {
                case 0: a++; 
                case 1: b++;
              }
      case 2:  a++;
               b++;
   }
   printf("a=%d, b=%d", a, b) ;
   return 0;
}
选项:
A:a=2, b=2
B:a=2, b=1
C:a=1, b=1
D:a=1, b=0
答案: 【a=2, b=2

8、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()

   int a=5,b=4,c=3,d;
   d=(a>b>c);
   printf("%d",d);
   return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【0

9、 问题:执行以下程序后的输出结果为#include <stdio.h>
int main()
{
   int a=1,b=0;
   switch (a)
   {  
     case  1:
            switch (b)
            {   
               case  0: printf("0");break;
               case  1: printf("1");break;
            }
    case  2: printf("2");break;
   }
  return 0;
}
选项:
A:0*2*
B:
0

C:0*1*2
D:有语法错误
答案: 【02

10、 问题:下面程序运行后的输出结果是#include <stdio.h> 
int main()
{
    int a=3,b=4,c=5,d=2;
    if(a>b)
    { 
         if(b>c)
         { 
             printf("%d",d++ +1);
         }
         else
         { 
             printf("%d",++d +1);
         }
   }
   printf("%d",d);
   return 0;
}
选项:
A:2
B:3
C:43
D:44
答案: 【2

11、 问题:下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。#include <stdio.h>
int main()
{
    int m;
    printf("Input m: ");
    scanf("%d", &m);        //输入一个整数
    if (m > 0)              //是否为正数
    {
        if (m % 2 == 0)     //是正数,且能被2整除,则是正偶数
        {
            printf("%d is a positive even", m);
        }
        else                    //不能被2整除,则是正奇数
        {
            printf("%d is a positive odd", m);
        }
    }

    
   __          //判断是否为负数
    
    {
        __

        
        {
             printf("%d is a negative even", m);   //是负偶数
        }
        else
        {
             printf("%d is a negative odd", m);    //是负奇数
        }
    }
    else
    {
        printf("%d is zero.It is an even", m);    
    }
   return 0;
}
选项:
A:第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
B:第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
C:第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
D:第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
答案: 【第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

12、 问题:程序功能:从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。#include<stdio.h> 
int main() 
{  
  char c;   
  printf("Please input a character:");  
  scanf("%c",&c); 
  if(c >=’A’&&c <= ‘Z’)   
    c =___;  
  printf("%c",c); 
  return 0;  
}
选项:
A:c+32 
B:c+48
C:C+65
D:C+97
答案: 【c+32 

13、 问题:执行下列程序,k输入为1时的输出结果是#include <stdio.h>
int main()

  int k;
  scanf("%d",&k);
  switch(k)
  { 
     case 1:   printf("%d",k++);
     case 2:   printf("%d",k++);
     case 3:   printf("%d",k++);
               break;
     default:  printf("Full!");
  } 
  return 0;
}
选项:
A:123
B:1
C:2
D:3
答案: 【123

14、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。 程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。 #include <stdio.h>

include <math.h>

int main()
{
    int x;
    double y;
    printf("Input x: ");
    scanf("%d", &x);        // 输入一个整数
    if (x > 0)
    {
        y = exp(-x);        //如果大于0,计算y=exp(-x)的值 
    }
    _______
    {
        y = 1;              //x=0,则y=1
    }
    else
    {
        y = -exp(x);        //x<0,则y=-exp(x)
    }
    printf("y=%f", y);
    return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

15、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()

   int a=1,b=2,m=0,n=0,k;
   k=(n=b>a)||(m=a<b);
   printf("%d,%d",k,m);
   return 0;
}
选项:
A:1,0
B:0,0
C:0,1
D:1,1
答案: 【1,0

16、 问题:以下程序的功能是计算一元二次方程的根。代码如下,请将第10行标号处缺少的语句填写完整。 #include  <stdio.h>

include  <stdlib.h>

include  <math.h>

define   EPS 1e-6

int main()

      float  a, b, c, disc, p, q;
      printf("Please enter the coefficients a,b,c:"); 
      scanf("%f,%f,%f", &a, &b, &c); 
      _________      / a=0时,输出"不是二次方程" /

     {
               printf("It is not a quadratic equation!");
               exit(0);  / C标准库函数,用于终止整个程序的执行,强制返回操作系统 /
     }
      disc = b  b – 4  a  c; / 计算判别式 /
      p = – b / (2 
 a);
      q = sqrt(fabs(disc)) / (2  a);
      if (fabs(disc) <= EPS)    /
 判别式等于0时,输出两相等实根 /
      {
                   printf("x1 = x2 = %.2f", p);
      }
     else                      
     { 
                 if (disc > EPS)        /
 判别式大于0时,输出两不等实根 /
                 {
                            printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
                 }
                 else                     /
 判别式小于0时,输出两共轭复根 */
                 {
                            printf("x1 = %.2f+%.2fi, ", p, q);
                            printf("x2 = %.2f-%.2fi", p, q);
                 }
      }
     return 0;
}
选项:
A:if (fabs(a) <= EPS)
B:if (a <= EPS)       
C:if (a=0)     
D:if (a<= EPS || a>=-EPS)
答案: 【if (fabs(a) <= EPS)

17、 问题:下列说法错误的是()。
选项:
A:case后的“常量表达式”的类型只能是整型。
B:若case后面的语句省略不写,则表示它什么也不做。
C:switch语句中的break和default可有可无。
D:每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E:程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F:若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G:每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H:case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
答案: 【case后的“常量表达式”的类型只能是整型。;
若case后面的语句省略不写,则表示它什么也不做。;
switch语句中的break和default可有可无。

【作业】第4周——无处不在的抉择 练兵区——编程题——不计入总分

1、 问题:检测用户错误输入
建议:【本题是主观题,暂无解析

2、 问题:闰年判断
建议:【本题是主观题,暂无解析

3、 问题:程序改错v1.0
建议:【本题是主观题,暂无解析

4、 问题:字符类型判断
建议:【本题是主观题,暂无解析

5、 问题:快递费用计算
建议:【本题是主观题,暂无解析

6、 问题:数位拆分v2.0
建议:【本题是主观题,暂无解析

7、 问题:出租车计价
建议:【本题是主观题,暂无解析

8、 问题:数据区间判断
建议:【本题是主观题,暂无解析

9、 问题:计算一元二次方程的根v2.0
建议:【本题是主观题,暂无解析

【作业】第5周——周而复始的循环之道 练兵区——编程题——不计入总分

1、 问题:判断一个整型数据有几位v2.0
建议:【本题是主观题,暂无解析

2、 问题:奖金计算
建议:【本题是主观题,暂无解析

3、 问题:程序修改—1
建议:【本题是主观题,暂无解析

4、 问题:程序修改—2
建议:【本题是主观题,暂无解析

5、 问题:程序改错-1
建议:【本题是主观题,暂无解析

6、 问题:程序改错-2
建议:【本题是主观题,暂无解析

7、 问题:程序改错-3
建议:【本题是主观题,暂无解析

8、 问题:猴子吃桃程序_扩展1
建议:【本题是主观题,暂无解析

9、 问题:猴子吃桃程序_扩展2
建议:【本题是主观题,暂无解析

10、 问题:6位密码输入检测
建议:【本题是主观题,暂无解析

11、 问题:判断一个整型数据有几位v1.0
建议:【本题是主观题,暂无解析

12、 问题:检测输入数据中奇数和偶数的个数
建议:【本题是主观题,暂无解析

13、 问题:计算球的反弹高度
建议:【本题是主观题,暂无解析

第5周——周而复始的循环之道 练兵区——单选题——不计入总分

1、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

        int i;
  
        for(i=0;i<3;i++)   
        
            switch(i)    
                   
                {       
     
                    case 0: printf("%d",i);
         
                    case 2: printf("%d",i);
         
                    default: printf("%d",i);       
    
                } 
    
        return 0; 
 
}
选项:
A:000122
B:022111
C:021021
D:012
答案: 【000122

2、 问题:若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
选项:
A:for( i=1; i<=5; i++ ){    p=1;    p=i;}
B:for(i=1,p=1;i<=5;i++) p
=i;
C:i=1;
p=1;
while ( i<=5 )
{
    p=i;
    i++;
}
D:i=1;
p=1;
do {
        p
=i;
        i++;
} while ( i<=5 );
答案: 【for( i=1; i<=5; i++ ){    p=1;    p*=i;}

3、 问题:下面程序的输出是#include <stdio.h>
int main()

    int y=9;
    for( ; y>0; y–)
        {   
            if(y%3==0)
                { 
                    printf("%d", –y);
                    continue;
                }
        }
    return 0;
}
选项:
A:852
B:741
C:963
D:875421 
答案: 【852

4、 问题:爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
int main()
{
    int  x = 1, find = 0;
    while (_)
    {
        if (
_______)
        {
                printf("x = %d", x);
                find = 1;   
        }
        x++;
    }
    
    return 0;
}
选项:
A:第5行:     !find第7行:     x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
B:第5行:      find==1第7行:      x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
C:第5行:      find!=1第7行:      x/2==1 && x/3==2 && x/5==4 && x/6==5 && x/7==0
D:第5行:      find!=0第7行:      x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
答案: 【第5行:     !find第7行:     x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0

5、 问题:鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
int main()
{
    int x, y;
    for (x=1; _; x++)
    {
        __;
        if (
____)
        {
                printf("x = %d, y = %d", x, y);
        }
    }
    
    return 0;
}
选项:
A:第5行:     x<=97第7行:     y = 98 – x第8行:     2x+4y == 386
B:第5行:     x<97第7行:     x = 98 – y第8行:     2x+4y == 386
C:第5行:     x<97第7行:     y = 98 – x第8行:     2x+4y == 386
D:第5行:     x<=97第7行:     x = 98 – y第8行:     2x+4y <= 386
答案: 【第5行:     x<=97第7行:     y = 98 – x第8行:     2x+4y == 386

6、 问题:以下正确的描述是
选项:
A:只能在循环体内和switch语句体内使用break语句
B: continue语句的作用是结束整个循环的执行
C:在循环体内使用break语句或continue语句的作用相同  
D:continue语句可以写在循环体之外
答案: 【只能在循环体内和switch语句体内使用break语句

7、 问题:华氏和摄氏温度的转换公式为C=5/9×(F-32)。式中,C表示摄氏温度,F表示华氏温度。要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
int main()
{
    int    upper = 300, step = 20;
    float  fahr = 0, celsius;
    while (fahr < upper)
    {
        __;
        printf("%4.0f\t%6.1f", fahr, celsius);
         
_______ ;
    }
    return 0;
}
选项:
A:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
B:第8行代码:  celsius = 5 / 9 * (fahr – 32)第10行代码:  fahr = fahr + step
C:第8行代码:  celsius = 5.0 / (9 * (fahr – 32))第10行代码: fahr = fahr + step
D:第8行代码:  celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr – step
答案: 【第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step

8、 问题:利用泰勒级数:计算e的近似值,当最后一项的绝对值小于时认为达到了精度要求,要求统计总共累加了多少项。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include  <math.h>

include <stdio.h>

int main()
{   
    int n = 1, count = 1;
    ____;
    double term = 1.0;
    while (fabs(term) >= 1e-5) //判末项大小
    {
            __;   //求出累加项
            e = e + term;     //累加
            n++;               // 计算下一项
            ___;   //统计累加项数
    }
 
    
       printf("e = %f, count = %d", e, count);
    return 0;
}
选项:
A:第6行代码:      double e = 1.0第10行代码:     term = term / n第13行代码:     count++
B:第6行代码:   double e = 0第10行代码:  term = term / n第13行代码:  count++
C:第6行代码:  double e = 1.0第10行代码: term = term n第13行代码: count++
D:第6行代码:  double e = 0第10行代码: term = term
n第13行代码: count++
答案: 【第6行代码:      double e = 1.0第10行代码:     term = term / n第13行代码:     count++

9、 问题:打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
int main()
{
    int i, j, k, n;
    printf("result is:");
    for (n=100; _; n++)
    {
        i = n / 100;            //分离出百位
        j = __;       //分离出十位
        k = 
_;       //分离出个位  
        if (
___
)
        {
                printf("%d\t ",n);  //输出结果
        }
    }
    printf("");
    return 0;
}
选项:
A:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
B:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k = iii+jjj+kkk
C:第6行: n<=1000第9行: n % 100第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
D:第6行: n<1000第9行: (n – i * 100) / 10第10行:n /10第11行:i100+j10+k == iii+jjj+kkk
答案: 【第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk

10、 问题:以下程序执行后的输出结果是#include <stdio.h>
int main( )

    int i,n=0;
    for(i=2;i<5;i++)
      { 
        do 
        { 
           if(i%3) continue;
           n++;
        }while(!i);
       n++;
     }
   printf("n=%d",n);
   return 0;
}
选项:
A:n=4
B:n=5
C:n=2
D:n=3
答案: 【n=4

11、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()
 {     
    int i=0,s=0;
    for (;;)
    { 
        if(i==3||i==5) continue;
        if (i==6) break;
        i++;
        s+=i;
    }
    printf("%d",s);
    return 0;
 }
选项:
A:程序进入死循环
B:10
C:13
D:21
答案: 【程序进入死循环

12、 问题:程序执行后的输出结果是#include <stdio.h>
int main( )
{
     int i,s=0;
     for(i=1;i<10;i+=2)
     {
        s+=i+1;
     }
     printf("%d",s);
     return 0;
}
选项:
A:自然数1~10中的偶数之和
B:自然数1~9的累加和
C:自然数1~10的累加和
D:自然数1~9中的奇数之和
答案: 【自然数1~10中的偶数之和

13、 问题:以下程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是#include <stdio.h>
int main( )

    char k; 
    int i;
    for(i=1;i<3;i++)
    { 
        scanf("%c",&k);
        switch(k)
        { 
            case ‘0’: printf("another");
            case ‘1’: printf("number");
        }
   }
   return 0;
}
选项:
A:anothernumbernumber
B:numbernumber
C:anothernumber
D:anothernumberanother
答案: 【anothernumbernumber

14、 问题:以下程序执行后的输出结果是#include <stdio.h>
int main( )

    int x=0,y=5,z=3;
    while(z–>0 && ++x<5) 
    {
        y=y-1;
    }
    printf("%d,%d,%d",x,y,z);
    return 0;
}
选项:
A:3,2,-1
B:3,2,0
C:4,3,-1
D:5,-2,-5
答案: 【3,2,-1

15、 问题:以下能正确计算1×2×3×4…×10的程序段是
选项:
A:i=1;
s=1;
do {
        s=si;
        i++;
     } while(i<=10)
B:do
{
    i=1;
    s=1;
    s=s
i;
    i++;
} while(i<=10);
C:do
{
    i=1;
    s=0;
    s=si;
    i++;
} while(i<=10);
D:i=1;s=0;do {        s=s
i;        i++;     } while(i<=10);
答案: 【i=1;
s=1;
do {
        s=s*i;
        i++;
     } while(i<=10)

16、 问题:下面程序的功能是输出以下形式的图案,则在下划线处应填入的是    *#include <stdio.h>
int main( )
{   int i,j;
    for(i=1;i<=4;i++)
     {  
        for(j=1;j<=____;j++) 
        {
            printf("
");
        }
        printf("");
     }
    return 0;
}
选项:
A:2i-1
B:2
i+1
C:i+2
D:i
答案: 【2*i-1

17、 问题:以下程序的输出结果是#include <stdio.h>
int main()

    int a, b;
    for(a=1, b=1; a<=100; a++)
      { 
        if(b>=10) break;
            if (b%3==1)
            { 
                b+=3; 
                continue; 
            }
      }
    printf("%d",a);
    return 0;
}
选项:
A:4
B:101
C:6
D:5
答案: 【4

18、 问题:以下不是死循环的程序段是
选项:
A:int s=36;
while (s) 
{
   –s;
}
B:int i=100;
while(1)
{
    i=i%100+1;
    if (i>100) break;
}
C:for( ; ;);
D:unsigned int k=0;
do{
        ++k;
} while (k>=0);
答案: 【int s=36;
while (s) 
{
   –s;
}

19、 问题:计算直到最后一项的绝对值小于为止。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include  <stdio.h>

include  <math.h>

int main()
{
    int n = 1;
    float term = 1, sum = 0;
    __;
    
    while (fabs(term) >= 1e-4)      //判末项大小
    {
        term = sign / n;            //求出累加项
        sum = sum + term;           //累加
        ____;               //改变项的符号
       
        n++;                            //分母加1
    }
    printf("sum = %f", sum);
    return 0;
}
选项:
A:第7行代码: float sign=1第13行代码: sign = -sign
B:第7行代码: float sign= -1第13行代码: sign = -sign
C:第7行代码: float sign=1第13行代码: term = -term
D:第7行代码: float sign= -1第13行代码: term = -term
答案: 【第7行代码: float sign=1第13行代码: sign = -sign

20、 问题:设已定义i和k为int类型变量,则以下for循环语句for(i=0,k=-1;k=1; i++,k++)
    printf( "   ");
选项:
A:是无限循环
B:判断循环结束的条件不合法 
C:循环一次也不执行
D:循环只执行一次
答案: 【是无限循环

21、 问题:有以下程序,若从键盘给n输入的值是-3,则程序的输出结果是#include <stdio.h>
int main()

    int s=0,a=1,n;
    scanf("%d",&n);
    do
    { 
        s+=1; 
        a=a-2; 
    } while(a!=n);
    printf("%d",s);
    return 0;
}
选项:
A:2
B:-1
C:3
D:0
答案: 【2

22、 问题:三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h>
int main()
{
    int i, j, k;
    for (i=0; i<=3; i++)
    {
        for (j=0; j<=3; j++)
        {
                for (____)
                {
                    if (______)
                    {
                        printf("i=%d, j=%d, k=%d", i, j, k);
                    }
                }
        }
    }
    
    return 0;
}
选项:
A:第9行:   k=0; k<=6; k++第11行:  i + j + k == 8
B:第9行:   k=0; k<=6; k++第11行:  i + j + k = 8
C:第9行:   k=0; k<=6; k++第11行:  i + j + k <= 8
D:第9行:   k=0; k<6; k++第11行:  i + j + k == 8
答案: 【第9行:   k=0; k<=6; k++第11行:  i + j + k == 8

23、 问题:我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h>
int main()
{
    int x, y, z;
    for (x=0; x<=20; x++)
    {
        for (y=0; ___; y++)
        {
                __;
                if (__
)
                {
                    printf("x=%d, y=%d, z=%d", x, y, z);
                }
        }
    }
    
    return 0;
选项:
A:第7行:     y<=33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 == 100
B:第7行:     y<=33第9行:     z + y + x = 100第10行:     5x + 3y + z/3.0 = 100
C:第7行:     y<=33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 == 100
D:第7行:     y<33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 <= 100
答案: 【第7行:     y<=33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 == 100

24、 问题:以下程序的功能是计算:s= 1+1/2+1/3+……+1/10,程序运行后输出结果错误,导致错误结果的程序行是#include <stdio.h>
int main()

    int n; 
    float s;
    s=1.0;
    for(n=10;n>1;n–)
    {
        s=s+1/n;
    }
    printf("%6.4f",s);
    return 0;
}
选项:
A:s=s+1/n;
B: printf("%6.4f",s);
C:for(n=10;n>1;n–)
D:s=1.0;
答案: 【s=s+1/n;

第5周——周而复始的循环之道 第5周测验

1、 问题:程序运行后的输出结果是#include <stdio.h>
int main()

        int i;
  
        for(i=0;i<3;i++)   
        
            switch(i)    
                   
                {       
     
                    case 0: printf("%d",i);
         
                    case 2: printf("%d",i);
         
                    default: printf("%d",i);       
    
                } 
    
        return 0; 
 
}
选项:
A:000122
B:022111
C:021021
D:012
答案: 【000122

2、 问题:若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
选项:
A:for( i=1; i<=5; i++ )
{
    p=1;
    p=i;
}
B:for(i=1,p=1;i<=5;i++) p
=i;
C:i=1;
p=1;
while ( i<=5 )
{
    p=i;
    i++;
}
D:i=1;
p=1;
do {
        p
=i;
        i++;
} while ( i<=5 );
答案: 【for( i=1; i<=5; i++ )
{
    p=1;
    p*=i;
}

3、 问题:以下程序执行后的输出结果是#include <stdio.h>
int main( )

    int x=0,y=5,z=3;
    while(z–>0 && ++x<5) 
    {
        y=y-1;
    }
    printf("%d,%d,%d",x,y,z);
    return 0;
}
选项:
A:3,2,-1
B:3,2,0
C:4,3,-1
D:5,-2,-5
答案: 【3,2,-1

4、 问题:下面程序的输出是#include <stdio.h>
int main()

    int y=9;
    for( ; y>0; y–)
        {   
            if(y%3==0)
                { 
                    printf("%d", –y);
                    continue;
                }
        }
    return 0;
}
选项:
A:852 
B:741
C:963
D:875421 
答案: 【852 

5、 问题:爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
int main()
{
    int  x = 1, find = 0;
    while (_)
    {
        if (
_______)
        {
                printf("x = %d", x);
                find = 1;   
        }
        x++;
    }
    
    return 0;
}
选项:
A:第5行:     !find第7行:     x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
B:第5行:      find==1第7行:      x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
C:第5行:      find!=1第7行:      x/2==1 && x/3==2 && x/5==4 && x/6==5 && x/7==0
D:第5行:      find!=0第7行:      x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
答案: 【第5行:     !find第7行:     x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0

6、 问题:鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h>
int main()
{
    int x, y;
    for (x=1; _; x++)
    {
        __;
        if (
____)
        {
                printf("x = %d, y = %d", x, y);
        }
    }
    
    return 0;
}
选项:
A:第5行:     x<=97第7行:     y = 98 – x第8行:     2x+4y == 386
B:第5行:     x<97第7行:     x = 98 – y第8行:     2x+4y == 386
C:第5行:     x<97第7行:     y = 98 – x第8行:     2x+4y == 386
D:第5行:     x<=97第7行:     x = 98 – y第8行:     2x+4y <= 386
答案: 【第5行:     x<=97第7行:     y = 98 – x第8行:     2x+4y == 386

7、 问题:以下能正确计算1×2×3×4…×10的程序段是
选项:
A:i=1;
s=1;
do {
        s=si;
        i++;
     } while(i<=10);
B:do
{
    i=1;
    s=1;
    s=s
i;
    i++;
} while(i<=10);
C:do
{
    i=1;
    s=0;
    s=si;
    i++;
} while(i<=10);
D:i=1;
s=0;
do {
        s=s
i;
        i++;
     } while(i<=10);
答案: 【i=1;
s=1;
do {
        s=s*i;
        i++;
     } while(i<=10);

8、 问题:以下程序执行后的输出结果是#include <stdio.h>
int main( )

    int i,n=0;
    for(i=2;i<5;i++)
      { 
        do 
        { 
           if(i%3) continue;
           n++;
        }while(!i);
       n++;
     }
   printf("n=%d",n);
   return 0;
}
选项:
A:n=4
B: n=5
C: n=2
D: n=3
答案: 【n=4

9、 问题:以下正确的描述是
选项:
A:只能在循环体内和switch语句体内使用break语句
B: continue语句的作用是结束整个循环的执行
C:在循环体内使用break语句或continue语句的作用相同    
D:continue语句可以写在循环体之外
答案: 【只能在循环体内和switch语句体内使用break语句

10、 问题:计算直到最后一项的绝对值小于为止。‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include  <stdio.h>

include  <math.h>

int main()
{
    int n = 1;
    float term = 1, sum = 0;
    __;
    
    while (fabs(term) >= 1e-4)      //判末项大小
    {
        term = sign / n;            //求出累加项
        sum = sum + term;           //累加
        ____;               //改变项的符号
        n++;                            //分母加1
    }
    printf("sum = %f", sum);
           return 0;
}
选项:
A:第7行代码: float sign=1第13行代码: sign = -sign
B:第7行代码: float sign= -1第13行代码: sign = -sign
C:第7行代码: float sign=1第13行代码: term = -term
D:第7行代码: float sign= -1第13行代码: term = -term
答案: 【第7行代码: float sign=1第13行代码: sign = -sign

11、 问题:设已定义i和k为int类型变量,则以下for循环语句for(i=0,k=-1;k=1; i++,k++)
      printf( "   ");
选项:
A:是无限循环
B:判断循环结束的条件不合法 
C:循环一次也不执行   
D:循环只执行一次
答案: 【是无限循环

12、 问题:有以下程序,若从键盘给n输入的值是-3,则程序的输出结果是#include <stdio.h>
int main()

    int s=0,a=1,n;
    scanf("%d",&n);
    do
    { 
        s+=1; 
        a=a-2; 
    } while(a!=n);
    printf("%d",s);
    return 0;
}
选项:
A:2
B:-1
C:3
D:0
答案: 【2

13、 问题:以下程序运行后的输出结果是#include <stdio.h>
int main()
 {     
    int i=0,s=0;
    for (;;)
    { 
        if(i==3||i==5) continue;
        if (i==6) break;
        i++;
        s+=i;
    }
    printf("%d",s);
    return 0;
 }
选项:
A:程序进入死循环
B:10 
C:13
D:21
答案: 【程序进入死循环

14、 问题:下面程序的功能是输出以下形式的图案,则在下划线处应填入的是    *#include <stdio.h>
int main( )
{   int i,j;
    for(i=1;i<=4;i++)
     {  
        for(j=1;j<=____;j++) 
        {
            printf("
");
        }
        printf("");
     }
    return 0;
}
选项:
A:2i-1
B:2
i+1
C:i+2
D:i
答案: 【2*i-1

15、 问题:程序执行后的输出结果是#include <stdio.h>
int main( )
{
     int i,s=0;
     for(i=1;i<10;i+=2)
     {
        s+=i+1;
     }
     printf("%d",s);
     return 0;
}
选项:
A:自然数1~10中的偶数之和
B:自然数1~9的累加和          
C:自然数1~10的累加和
D:自然数1~9中的奇数之和
答案: 【自然数1~10中的偶数之和

16、 问题:以下程序的输出结果是#include <stdio.h>
int main()

    int a, b;
    for(a=1, b=1; a<=100; a++)
      { 
        if(b>=10) break;
            if (b%3==1)
            { 
                b+=3; 
                continue; 
            }
      }
    printf("%d",a);
    return 0;
}
选项:
A:4
B:101
C:6
D:5
答案: 【4

17、 问题:三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。  #include <stdio.h>
int main()
{
    int i, j, k;
    for (i=0; i<=3; i++)
    {
        for (j=0; j<=3; j++)
        {
                for (____)
                {
                    if (______)
                    {
                        printf("i=%d, j=%d, k=%d", i, j, k);
                    }
                }
        }
    }
    
    return 0;
}
选项:
A:第9行:   k=0; k<=6; k++第11行:  i + j + k == 8
B:第9行:   k=0; k<=6; k++第11行:  i + j + k = 8
C:第9行:   k=0; k<=6; k++第11行:  i + j + k <= 8
D:第9行:   k=0; k<6; k++第11行:  i + j + k == 8
答案: 【第9行:   k=0; k<=6; k++第11行:  i + j + k == 8

18、 问题:我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。  #include <stdio.h>
int main()
{
    int x, y, z;
    for (x=0; x<=20; x++)
    {
        for (y=0; ___; y++)
        {
                __;
                if (__
)
                {
                    printf("x=%d, y=%d, z=%d", x, y, z);
                }
        }
    }
    
    return 0;
}
选项:
A:第7行:     y<=33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 == 100 
B:第7行:     y<=33第9行:     z + y + x = 100第10行:     5x + 3y + z/3.0 = 100
C:第7行:     y<=33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 == 100
D:第7行:     y<33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 <= 100
答案: 【第7行:     y<=33第9行:     z = 100 – x – y第10行:     5x + 3y + z/3.0 == 100 

19、 问题:以下不是死循环的程序段是
选项:
A:int s=36;
while (s) 
{
   –s;
}
B:int i=100;
while(1)
{
    i=i%100+1;
    if (i>100) break;
}
C:for( ; ;);
D:unsigned int k=0;
do{
        ++k;
} while (k>=0);
答案: 【int s=36;
while (s) 
{
   –s;
}

20、 问题:以下程序的功能是计算:s= 1+1/2+1/3+……+1/10,程序运行后输出结果错误,导致错误结果的程序行是#include <stdio.h>
int main()

    int n; 
    float s;
    s=1.0;
    for(n=10;n>1;n–)
    {
        s=s+1/n;
    }
    printf("%6.4f",s);
    return 0;
}
选项:
A:s=s+1/n;
B: printf("%6.4f",s);
C:for(n=10;n>1;n–)
D:s=1.0;
答案: 【s=s+1/n;

21、 问题:以下程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是#include <stdio.h>
int main( )

    char k; 
    int i;
    for(i=1;i<3;i++)
    { 
        scanf("%c",&k);
        switch(k)
        { 
            case ‘0’: printf("another");
            case ‘1’: printf("number");
        }
   }
   return 0;
}
选项:
A:anothernumbernumber
B:numbernumber
C:anothernumber
D:anothernumberanother
答案: 【anothernumbernumber

22、 问题:华氏和摄氏温度的转换公式为C=5/9×(F-32)。式中,C表示摄氏温度,F表示华氏温度。要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
int main()
{
    int    upper = 300, step = 20;
    float  fahr = 0, celsius;
    while (fahr < upper)
    {
        __;
        printf("%4.0f\t%6.1f", fahr, celsius);
         
_______ ;
    }
    return 0;
}
选项:
A:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
B:第8行代码:  celsius = 5 / 9 * (fahr – 32)第10行代码:  fahr = fahr + step
C:第8行代码:  celsius = 5.0 / (9 * (fahr – 32))第10行代码: fahr = fahr + step
D:第8行代码:  celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr – step
答案: 【第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step

23、 问题:利用泰勒级数:计算e的近似值,当最后一项的绝对值小于时认为达到了精度要求,要求统计总共累加了多少项。‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include  <math.h>

include <stdio.h>

int main()
{   
    int n = 1, count = 1;
    ____;
    double term = 1.0;
    while (fabs(term) >= 1e-5) //判末项大小
    {
            __;   //求出累加项
            e = e + term;     //累加
            n++;               // 计算下一项
            ___;   //统计累加项数
    }
 
    
       printf("e = %f, count = %d", e, count);
    return 0;
}
选项:
A:第6行代码:      double e = 1.0第10行代码:     term = term / n第13行代码:     count++
B:第6行代码:   double e = 0第10行代码:  term = term / n第13行代码:  count++
C:第6行代码:  double e = 1.0第10行代码: term = term n第13行代码: count++
D:第6行代码:  double e = 0第10行代码: term = term
n第13行代码: count++
答案: 【第6行代码:      double e = 1.0第10行代码:     term = term / n第13行代码:     count++

24、 问题:打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h>
int main()
{
    int i, j, k, n;
    printf("result is:");
    for (n=100; _; n++)
    {
        i = n / 100;            //分离出百位
        j = __;       //分离出十位
        k = 
_;       //分离出个位  
        if (
___
)
        {
                printf("%d\t ",n);  //输出结果
        }
    }
    printf("");
    return 0;

选项:
A:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
B:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k = iii+jjj+kkk
C:第6行: n<=1000第9行: n % 100第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
D:第6行: n<1000第9行: (n – i * 100) / 10第10行:n /10第11行:i100+j10+k == iii+jjj+kkk
答案: 【第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk

【作业】第5周——周而复始的循环之道 第5周编程题在线测试

1、 问题:马克思手稿中的趣味数学题
建议:【本题是主观题,暂无解析

2、 问题:猜神童年龄
建议:【本题是主观题,暂无解析

3、 问题:闰年相关的问题v3.0——计算有多少闰年
建议:【本题是主观题,暂无解析

4、 问题:闰年相关的问题v4.0——计算心跳数
建议:【本题是主观题,暂无解析

第6周——函数:分工与合作的艺术 练兵区——单选题——不计入总分

1、 问题:设计一个函数MaxCommonFactor(),利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h>
int MaxCommonFactor(int a, int b);
int main()
{
     int a, b, x;
     printf("Input a,b:");
     scanf("%d,%d", &a, &b);
     x =___ ;
     
     if (x != -1)
     {
          printf("MaxCommonFactor = %d", x);
     }
     else
     {
          printf("Input error!");
     }
     
     return 0;
}

//函数功能: 计算两个正整数的最大公约数,-1表示没有最大公约数
int MaxCommonFactor(int a, int b)
{
     int r;
     if (a<=0 || b<=0) return -1; // 保证输入的参数为正整数
         
     do{
          __;
          a = b;
          
__;
     }while (
_);
     
     return  a;   
}
选项:
A:第8行:     MaxCommonFactor(a, b)第29行:    r = a % b第31行:    b = r第32行:    r != 0
B:第8行:     MaxCommonFactor(a, b, x)第29行:    r = a % b第31行:    a = r第32行:    r == 0
C:第8行:     MaxCommonFactor(a, x)第29行:    r = b % a第31行:    b = r第32行:    r = 0
D:第8行:     MaxCommonFactor(x, b)第29行:    r = a / b第31行:    a = r第32行:    r != 0
答案: 【第8行:     MaxCommonFactor(a, b)第29行:    r = a % b第31行:    b = r第32行:    r != 0

2、 问题:C语言规定:在一个源程序中,main函数的位置
选项:
A:可以任意
B:必须在程序的最开始 
C:必须在系统调用的库函数的后面
D:必须在程序的最后
答案: 【可以任意

3、 问题:以下程序执行后输出结果是#include <stdio.h>
int MaxValue(int x, int y)
{
    return x>y? x:y;
}

int MinValue(int x,int y)
{
    return x>y? y:x;
}

int main()

    int a=4,b=3,c=5,d,e,f;
    d=MaxValue(a,b);
    d=MaxValue(d,c);
    e=MinValue(a,b);
    e=MinValue(e,c);
    f=a+b+c-d-e;
    printf("%d,%d,%d",d,f,e);
    return 0;
}
选项:
A:5,4,3
B:3,4,5
C:5,3,4
D:3,5,4
答案: 【5,4,3

4、 问题:有以下函数定义:void Fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值如下:int a,k;double b;a=12;b=0.45;则对函数Fun的正确调用语句是
选项:
A:Fun(a,b); 
B:Fun(int y,double m); 
C:k=Fun(10,12.5);
D:k=void Fun(a,b); 
答案: 【Fun(a,b); 

5、 问题:完全数,又称完美数或完数(Perfect Number),它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。例如,6就是一个完全数,是因为6 = 1 + 2 + 3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。注意:1没有真因子,所以不是完全数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>

include <math.h>

int IsPerfect(int x);
int main()
{
    int m;
    printf("Input m:");
    scanf("%d", &m);
    
    if (_____)  / 完全数判定 /
        printf("%d is a perfect number", m);
    else
        printf("%d is not a perfect number", m);
    return 0;
}

/ 函数功能:判断完全数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数 /
int IsPerfect(int x)
{
    int i;
    int total = 0;          / 1没有真因子,不是完全数 /
    
    for (___)
    {
        if (
__)
            total = total + i;
    }
    return total==x ? 1 : 0;     
}
选项:
A:第10行:   IsPerfect(m)第24行:   i=1; i<x; i++第26行:   x % i == 0
B:第10行:   m第24行:   i=1; i<=x; i++第26行:   x % i != 0
C:第10行:   IsPerfect(m)!=1第24行:   i=0; i<=x; i++第26行:   x / i == 0
D:第10行:   IsPerfect(m)==0第24行:   i=0; i<x; i++第26行:   x % i != 0
答案: 【第10行:   IsPerfect(m)第24行:   i=1; i<x; i++第26行:   x % i == 0

6、 问题:下列说法中正确的是
选项:
A:函数原型是一条语句,不包括函数体。
B:无论何种情况,只要把用户自定义的所有函数都放在main函数的前面,就可以不用写函数原型了。
C:在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元,此时形参值的变化会影响到实参的值。
D:函数只有一个返回值,所以不能有多个return语句。
答案: 【函数原型是一条语句,不包括函数体。

7、 问题:以下程序有语法错误,有关错误原因的正确说法是#include <stdio.h>
void prt_char();
int main()
{
    int G=5,k;
     ……
    k=prt_char(G);
     ……
    return 0;
}

 int prt_char(int x)
{
     ……
}
选项:
A:函数原型和函数定义不匹配
B:变量名不能使用大写字母
C:函数名不能使用下划线
D:函数prt_char(int x)定义的位置不对,不能放在主函数main()的后面。
答案: 【函数原型和函数定义不匹配

8、 问题:以下程序的功能是选出能被3整除且至少有一位是5的两位数的整数,输出所有满足条件的数及其个数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <stdio.h>
int Sub(int k,int n)
{
    int a1,a2;
    a2=k/10;
    a1=k-a2*10;
    if(____)
    {
        printf("%4d",k);
        n++;
        return n;
    }
    else 
        return -1;
}

int main()
{
    int n=0,k,m;
    for(k=10;k<100;k++)
    {
        m=_;
        
        if(
_____) n=m;
    }
   
    printf("n=%d",n);
    return 0;
}
选项:
A:第7行:  (k%3==0&&a2==5)||(k%3==0&&a1==5)第22行: Sub(k,n)第24行: m!=-1
B:第7行:(k%3==0 &&a2==5) && (k%3==0 &&a1==5)第22行:Sub(n,k)第24行:m==-1
C:第7行:(k%3=0 && a2=5)||(k%3=0 && a1=5)第22行:Sub(k,n)第24行:m=-1
D:第7行:(k%3=0 && a2=5) && (k%3=0 && a1=5)第22行:Sub(n,k)第24行:m!=-1
答案: 【第7行:  (k%3==0&&a2==5)||(k%3==0&&a1==5)第22行: Sub(k,n)第24行: m!=-1

9、 问题:设计一个函数,用来判断一个整数是否为素数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include <math.h>

include <stdio.h>

int IsPrimeNumber(int number);
int main()
{
     int n, ret;
     printf("Input n:");
     scanf("%d", &n);
     ret = IsPrimeNumber(n);
     if (__)
     { 
          printf("%d is a prime number", n);
     }
     else
     {
          printf("%d is not a prime number", n);
     }
     return 0;
}
//函数功能:判断number是否是素数,函数返回非0值,表示是素数,否则不是素数
int IsPrimeNumber(int number)
{
     int i;
     
     if (number <= 1) return 0; // 负数、0和1都不是素数   
         for (i=2; 
___; i++)
         {
              if (
_______) // 被整除,不是素数 
                  return 0;
     }
     return 1;
}
选项:
A:第11行:   ret != 0第29行:   i<=sqrt(number)第31行:   number % i == 0
B:第11行:   ret == 0第29行:   i<=number第31行:   number % i == 0
C:第11行:   ret == 0第29行:   i<=sqrt(number)第31行:   number / i == 0
D:第11行:   ret != 0第29行:   i<=number第31行:   number / i == 0
答案: 【第11行:   ret != 0第29行:   i<=sqrt(number)第31行:   number % i == 0


点击这里,查看后续答案①

点击这里,查看后续答案②(阿布查查更好用)


)       &n


猜你喜欢
中国大学mooc慕课答案快速搜索教程
《金融学(杭州师范大学) 》mooc慕课答案2026年版
《房屋建筑学(福州外语外贸学院) 》mooc慕课答案2026年版
《光电信息综合实验(南京师范大学中北学院) 》mooc慕课答案2026年版
《营养与健康(泰州学院) 》mooc慕课答案2026年版
《创业基础(黄河科技学院) 》mooc慕课答案2026年版
《对外汉语教学概论(武汉理工大学) 》mooc慕课答案2026年版
《仪器分析(玉林师范学院) 》mooc慕课答案2026年版
《中国文化通论(南阳师范学院) 》mooc慕课答案2026年版
《名人与近代中国(福建农林大学) 》mooc慕课答案2026年版
《刑法学-刘昌慧(湖北中医药大学) 》mooc慕课答案2026年版
《营养与健康(武汉体育学院) 》mooc慕课答案2026年版
《机械设计基础(一)(内蒙古工业大学) 》mooc慕课答案2026年版
《数字电子技术(广东工业大学)1458780443 》mooc慕课答案2026年版
3000 沟通与谈判(浙江经贸职业技术学院) 》mooc慕课答案2026年版
《Medical Immunology(Wenzhou Medical University) 》mooc慕课答案2026年版
《管理运筹学[010001217](兰州交通大学) 》mooc慕课答案2026年版
《宏观经济学(上海海事大学)1453014515 》mooc慕课答案2026年版
《大学英语A2-宋永卓(山西大学) 》mooc慕课答案2026年版
《新媒体环境下的品牌策划(江南大学)1462758441 》mooc慕课答案2026年版
《商务大数据分析(武汉理工大学) 》mooc慕课答案2026年版
《启航·老年护理(锦州医科大学) 》mooc慕课答案2026年版
《教师课堂教学技能的自我提升(泰州学院) 》mooc慕课答案2026年版
《统计学(湖南科技大学) 》mooc慕课答案2026年版
《2021秋—高等数学二(张弢A)(同济大学) 》mooc慕课答案2026年版
《古代汉语II(玉林师范学院) 》mooc慕课答案2026年版
《测量学(成都理工大学工程技术学院) 》mooc慕课答案2026年版
《犯罪心理学(西南政法大学)1452902476 》mooc慕课答案2026年版
《网络管理与维护(辽宁科技学院) 》mooc慕课答案2026年版
《语文精读(D)(新疆大学) 》mooc慕课答案2026年版
《“互联网+”现代农业(2019春)(湖南农业大学) 》mooc慕课答案2026年版
《传感器与检测技术(衢州学院) 》mooc慕课答案2026年版
《会计学(大连理工大学)1452957453 》mooc慕课答案2026年版
《商务统计(东北财经大学)1463180450 》mooc慕课答案2026年版
《思想道德修养与法律基础(吉林建筑大学) 》mooc慕课答案2026年版
《法医毒物学(山西医科大学) 》mooc慕课答案2026年版
《web应用开发(郑州轻工业大学) 》mooc慕课答案2026年版
《经济法(河南检察职业学院)1467623448 》mooc慕课答案2026年版
《金融学原理(上海交通大学)1467141759 》mooc慕课答案2026年版
《无线组网技术(无锡职业技术学院) 》mooc慕课答案2026年版
《电磁场与电磁波(福州大学)1463336480 》mooc慕课答案2026年版
《灾难逃生与自救(同济大学) 》mooc慕课答案2026年版
《经济法(四川大学)1465495480 》mooc慕课答案2026年版
《电路分析基础(安庆师范大学)1452284442 》mooc慕课答案2026年版
《信号与线性系统(武汉理工大学)1462591461 》mooc慕课答案2026年版
《国情分析与商业设计(暨南大学)1464583445 》mooc慕课答案2026年版
《Linux网络管理(四川信息职业技术学院)1467084468 》mooc慕课答案2026年版
《牛生产学(福建农林大学)1463923454 》mooc慕课答案2026年版
《城市与区域规划(黑龙江八一农垦大学)1455976444 》mooc慕课答案2026年版
《健康评估(江苏护理职业学院) 》mooc慕课答案2026年版
《工程热力学(四川大学) 》mooc慕课答案2026年版
账户
更新
搜索
帮助
答案目录