利用计算机解决实际问题依赖于,c语言程序设计 - 2020学年春(常继生)-中国大学mooc-题库零氪...

专题〇 课程导入

课程导入随堂测验

1、计算机的工作原理是()。

A、存储程序和程序控制

B、信息存储

C、数字控制

D、存储智能

2、利用计算机解决实际问题依赖于()。

A、原始数据

B、高级语言

C、网络

D、程序

3、编写求100个数之和的程序,其基本思路是()。

A、将实现输入和累加操作的语句重复书写100次

B、用无条件转移语句控制重复执行输入和累加操作

C、用循环结构控制输入和累加操作重复执行100次

D、先用便携计算器计算结果,再编写程序输出最后结果

4、C语言的特点有()。

A、数据类型丰富,数据表达能力强

B、既有高级语言的特点,又有低级语言的某些功能

C、对计算机资源的操控能力强,程序执行效率高

D、是一门基础性的高级语言

5、学习程序设计的方法有()。

A、要有计算思维的意识

B、模仿别人编写的程序

C、多上机练习

D、掌握一种高级语言

专题1 程序设计概述

1.1 程序设计的概念与步骤随堂测验

1、关于程序,有一个著名的公式,它是()。

A、数据结构+数据模型=程序

B、数据结构+算法=程序

C、N-S图+算法=程序

D、一般流程图+算法=程序

2、IPO三部曲中的“P”是指()。

A、Process

B、Print

C、Program

D、Programming

3、程序和软件的区别是()。

A、程序是一系列指令的集合

B、软件是一种无形的产品,而程序没有产品的属性

C、我们平时做作业写的代码还不能称为软件,而只能叫程序

D、软件是程序和文档的总称

4、程序设计的基本步骤是()。

A、问题分析

B、算法设计

C、程序实现

D、程序调试

5、采用合理的数据结构可以简化算法,而好的算法又使程序性能更好。

1.2 算法及其描述随堂测验

1、计算机解决问题的方法和步骤,称为()。

A、编程

B、算法

C、数学模型

D、语言工具

2、在一般流程图中,长方形和菱形分别代表()。

A、处理框和判断框

B、判断框和处理框

C、开始框和结束框

D、结束框和判断框

3、下列算法流程图的功能是()。

111307.html

A、将a,b,c从小到大排列

B、将a,b,c从大到小排列

C、求a,b,c三数的最大数

D、将a,b,c三数的最小数

4、下列算法流程图的功能是求()。

111307.html

A、

111307.html

B、

111307.html

C、

111307.html

D、

111307.html

5、程序的基本结构有()。

A、树形结构

B、顺序结构

C、选择结构

D、循环结构

6、关于N-S图,描述正确的有()。

A、也叫结构化流程图

B、用矩形框来表示三种基本结构

C、取消了流程线

D、可以避免无规则的程序流程转移

1.3 C程序的基本结构随堂测验

1、在每个C/C++程序中都必须包含有这样一个函数,该函数的函数名为()。

A、main

B、Main

C、name

D、function

2、C/C++程序可以包括多个函数,程序总是按照()所描述的方式执行当前的程序。

A、从本程序的main函数开始,到本程序文件的最后一个函数结束

B、从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C、从main函数开始,到main函数结束

D、从本程序文件的第一个函数开始,到本程序main函数结束

3、下列程序的输出结果是()。#include int main() { int x=5; //int x=10; printf("A=%d\n",x); return 0; }

A、x=5

B、A=5

C、A=10

D、x=10

4、以下叙述正确的是( )。

A、一个C/C++程序可由一个或多个函数组成

B、一个C/C++程序必须包含一个而且只能包含一个主函数

C、C/C++程序从主函数开始执行,并在主函数结束时结束。

D、在C/C++程序中,注释说明的内容不参与程序执行

5、以下叙述中正确的是( )。

A、C/C++语言的语句用分号结束

B、多个语句可以写在一行,一行也可以写多个语句

C、低一层次的语句比高一层次的语句缩进几格以后书写

D、可以对C/C++程序中的任何部分作注释

1.4 C程序的运行随堂测验

1、C/C++编译程序是()。

A、将C/C++源程序编译成目标程序的程序

B、一组机器语言指令

C、将C/C++源程序编译成应用软件的程序

D、C/C++程序的机器语言版本

2、在集成开发环境中创建和运行一个C/C++程序时,经常是从创建一个()开始的。

A、数据文件

B、目标文件

C、项目(Project)

D、文件夹

3、在计算机上运行一个C/C++语言程序时,一般要经过()。

A、编辑

B、编译

C、连接

D、运行

4、C/C++集成开发环境有()。

A、Visual C++ 6.0

B、Visual Studio

C、Dev-C++

D、Code::Blocks

5、以下叙述中正确的是()。

A、用C/C++语言编写的程序是一个源程序

B、C/C++语言编译时不检查语法错误

C、用C/C++语言编写的程序可直接执行

D、Visual Studio环境下既能运行C程序,也能运行C++程序

专题1单元测验

1、编写求100个数之和的程序,其基本思路是()。

A、将实现输入和累加操作的语句重复书写100次

B、用无条件转移语句控制重复执行输入和累加操作

C、用循环结构控制输入和累加操作重复执行100次

D、先用便携计算器计算结果,再编写程序输出最后结果

2、关于程序,有一个著名的公式,它是()。

A、数据结构+数据模型=程序

B、N-S图+算法=程序

C、一般流程图+算法=程序

D、数据结构+算法=程序

3、计算机解决问题的方法和步骤,称为()。

A、编程

B、算法

C、数学模型

D、语言工具

4、以下叙述不正确的是()。

A、C/C++程序的一行内只能写一个语句

B、main函数后面有一对花括号,花括号内的部分称为函数体

C、在C/C++程序中,一个语句可以分成几行写

D、C/C++规定,函数内的每个语句以分号结束

5、下列算法流程图的功能是求()。

111307.html

A、

111307.html

B、

111307.html

C、

111307.html

D、

111307.html

6、C/C++编译程序是()。

A、一组机器语言指令

B、将C/C++源程序编译成应用软件的程序

C、将C/C++源程序编译成目标程序的程序

D、C/C++程序的机器语言版本

7、在集成开发环境中创建和运行一个C/C++程序时,经常是从创建一个()开始的。

A、数据文件

B、目标文件

C、文件夹

D、项目(Project)

8、下列程序的输出结果是()。 #include int main() { printf("A"); printf("B\n"); printf("C\n"); return 0; }

A、AB C

B、ABC

C、A B C

D、A BC

9、以下叙述中正确的是()。

A、用C/C++语言编写的程序是一个源程序

B、C/C++语言编译时不检查语法错误

C、用C/C++语言编写的程序可直接执行

D、Visual Studio或Dev-C++环境下既能运行C程序,也能运行C++程序

10、求下列分段函数的值,相应的流程图有()。

111307.html

A、

111307.html

B、

111307.html

C、

111307.html

D、

111307.html

11、利用计算机解决实际问题依赖于解决问题的程序。

12、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

13、构成C/C++程序的基本单位是函数。

14、程序的三种基本结构是顺序结构、选择结构和循环结构。

专题1单元作业

1、Hello,World!

2、输出图案

3、求较大数。

专题2 程序的数据描述

2.1 C语言的数据类型随堂测验

1、下面选项中,不是基本数据类型的是( )。

A、整型

B、浮点型

C、字符型

D、指针类型

2、以下选项中属于C/C++语言的数据类型是()。

A、复数型

B、列表型

C、双精度型

D、集合型

3、负数的补码是在其原码的基础上,除符号位以外按位取反后,再在最后一位加1。用一个字节表示-37的补码是()。

A、1010 0101

B、1101 1011

C、1101 1010

D、0101 1011

4、设C/C++语言中一个short型数据在内存中占2个字节,则unsigned short型数据的取值范围为( )。

A、0~255

B、0~32767

C、0~65535

D、0~2147483647

5、C/C++语言提供的整型数据的类型符有()。

A、int

B、short

C、long

D、char

2.2 常量的表示随堂测验

1、下列选项中表示整型数据的是( )。

A、100.0

B、"a"

C、'abc'

D、0xf

2、下列语句执行后,c的值是()。 int a=3; char b='5',c=(char)(a+b);

A、'8'

B、53

C、8

D、56

3、在C/C++语言中,合法的字符常量是( )。

A、'\084'

B、'\x48'

C、'ab'

D、"\0"

4、下列选项中,能够作为C/C++语言常量的是 ( )。

A、0xA5

B、2.5e-2

C、3e2

D、0582

5、'a'在内存中占用一个字节,而"a"在内存中是占两个字节。

2.3 变量的概念与定义随堂测验

1、关于C/C++语言的变量,描述不正确的是( )。

A、变量占用内存空间

B、变量有类型

C、变量需先定义后使用

D、变量定义时必须初始化

2、以下能正确定义整型变量a、b和c,并为它们确定初值5的语句是( )。

A、int a=b=c=5;

B、int a,b,c=5;

C、int a=5,b=5,c=5;

D、a=b=c=5;

3、以下选项中,合法的标识符是( )。

A、B01

B、Table-1

C、0_t

D、k%

4、下列变量定义中合法的是()。

A、short _a=1-1e-1;

B、double b=1+5e2.5;

C、long do1=0xfdaL;

D、float 2_and=1-e-3;

5、关于标识符,下列说法正确的有()。

A、标识符是用来表示常量、变量、函数等程序对象的符号

B、标识符由下画线、英文字母或数字构成

C、标识符开头字符必须是字母或下画线

D、标识符中同一字母的大小写被当作不同的字符

2.4 算术运算与表达式随堂测验

1、用十进制数表示表达式12/012的运算结果是( )。

A、1

B、0

C、14

D、12

2、若有定义: int a=7; float x=2.5,y=4.7; 则表达式“x+a%3*(int)(x+y)%2/4”的值是( )。

A、2.500000

B、2.750000

C、3.500000

D、0.000000

3、设有定义“int x=11;”,则表达式(x++ * 1/3)的值是( )。

A、11

B、12

C、3

D、4

4、求2的平方根可以采用的表达式是()。

A、sqrt(2)

B、pow(2,1.0/2)

C、pow(2,1/2)

D、pow(2,0.5)

5、求整数m的十位数字可以采用的表达式是()。

A、m/10%10

B、m%100/10

C、(m-m/100*100)/10

D、m/10-m/100*10

2.5 逗号运算与位运算随堂测验

1、若x=2,y=3,则x&y的结果是()。

A、0

B、2

C、3

D、5

2、已知a是一个整数,则a^a的值是()。

A、0

B、1

C、a

D、

111307.html

3、已知4个正整数a、b、c、d,需要求它们的平均值(结果取整),可采用的C/C++表达式是()。

A、(a+b+c+d)>>0

B、(a+b+c+d)>>1

C、(a+b+c+d)>>2

D、(a+b+c+d)>>4

4、设x是int类型变量,则值等于7的表达式是()。

A、(5,6,7)

B、(x=6,x+1,x+1)

C、(x=6,x++)

D、(x=6,++x)

5、逗号运算的优先级是所有运算中最低的。

专题2单元测验

1、以下选项中属于C/C++语言的数据类型是()。

A、指针类型

B、复数型

C、列表型

D、集合型

2、下列选项中表示整型数据的是( )。

A、1e2

B、"a"

C、'abc'

D、0xff

3、下列语句执行后,b的值是()。 char a='5',b=(char)(a+3);

A、8

B、'8'

C、53

D、56

4、C/C++语言中的标识符只能由字母、数字和下画线3种字符组成,且第一个字符()。

A、必须为字母

B、必须为下画线

C、必须为字母或下画线

D、可以是字母、数字和下画线中的任一种字符

5、以下选项中合法的用户标识符是( )。

A、\n

B、_2Test

C、3Dmax

D、A.dat

6、表达式25/3%3的值是()。

A、8

B、2

C、25

D、3

7、设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是( )。

A、6.500000

B、6

C、5.500000

D、6.000000

8、下列程序的输出结果是()。 #include int main() { signed char a=-129; printf("%d\n",a); return 0; }

A、127

B、-129

C、-128

D、128

9、下列程序的输出结果是()。#include int main() { int a=8; printf("%d\n",(a++,a++)*2); return 0; }

A、10

B、16

C、18

D、20

10、下列选项中,表示整数100的是()。

A、100

B、0144

C、0x64

D、(int)1e2

11、设x是int类型变量,则值等于10的表达式是()。

A、(10,11,10)

B、(x=8,++x,x++)

C、(x=8,x++,++x)

D、(x=8,x++,x+1)

12、在C/C++中,表达式3*4/2与3/2*4的值相等。

13、在程序执行过程中,可以改变const常量的值。

14、设m是整数,若m & 1的值为0,则m为偶数。

专题2单元作业

1、写程序结果并验证

2、温度转换

3、求值

专题3 顺序结构

3.1 C的语句随堂测验

1、C语言的语句都是以()结束。

A、逗号

B、分号

C、//

D、#

2、能够构成复合语句的符号是()。

A、[ ]

B、( )

C、{ }

D、/* */

3、C的语句包括()。

A、简单语句

B、基本语句

C、复合语句

D、流程控制语句

4、以下选项中,C的语句有()。

A、{int i; i++; printf("%d\n",i);}

B、;

C、a=5,c=10

D、{ ; }

5、空语句什么也不做,所以在程序中可以随意使用它。

3.2 赋值运算与赋值语句随堂测验

1、执行完下列命令后k的值为()。 int k; k=3.14*10;

A、31.4

B、31

C、3.14

D、3

2、执行完下列命令后m的值为()。 int k=2,i=2,m;  m=(k+=i*=k);

A、6

B、4

C、5

D、3

3、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值()。

A、0

B、1

C、12

D、6

4、要将x的值增加1,可以使用的语句有()。

A、x++;

B、++x;

C、x=x+1;

D、x+=1;

5、表达式x*=a+b与表达式x=x*a+b是等价的。

3.3 数据输入输出随堂测验

1、设n是int型变量,a是float型变量,用下面的语句给这两个变量输入值: scanf("%d,%f", &n,&a); 为了把100和765.12分别赋给n和a,则执行scanf函数时正确的数据输入方式为()。

A、100765.12

B、i=100,f=765.12

C、100765.12

D、100,765.12

2、与执行“putchar(65);”语句输出结果一样的语句是()。

A、printf("%c",65);

B、printf("%c\n",65);

C、printf("%d",65);

D、printf("%d\n",65);

3、以下程序的输出结果是()。#include int main() { int a=12,b=12; printf("A=%d\n",(--a,++b)); return 0; }

A、A=12

B、a=12

C、A=13

D、a=13

4、在格式输入函数scanf中,输入项要用变量的地址。

3.4 顺序结构程序举例随堂测验

1、下面程序的输出结果是()。 #include int main() { int x=10,y=3; printf("%d",y=x/y); printf("%d\n",y++); return 0; }

A、3.3 3.3

B、34

C、33

D、3 3

2、下面程序的输出结果是()。 #include int main() { char m; m='B'+32; printf("%c\n",m); return 0; }

A、B

B、b

C、98

D、m

专题3单元测验

1、C语言的语句都是以()结束。

A、;

B、,

C、//

D、#

2、用花括号组合在一起的多个语句称为()。

A、组合语句

B、集合语句

C、复合语句

D、顺序语句

3、设int a=12,则执行完语句“a+=a-=a*a;”后,a的值是()。

A、522

B、264

C、144

D、-264

4、已知字母A的ASCII码为十进制的65,下面程序的输出是()。 #include int main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); }

A、B,C

B、67,D

C、C,D

D、不确定的值

5、若变量a是int类型,并执行了语句“a='A'+1.6;”,则正确的叙述是()。

A、a的值是字符

B、a的值是浮点数

C、不允许字符型和浮点型相加

D、a的值是字符A的ASCII值加1

6、若有定义和语句“int a,b; scanf("%d,%d",&a,&b);”,以下选项中的输入数据,不能把值3赋给变量a,5赋给变量b的是()。

A、3,5,

B、3,5,4

C、3 5

D、3,5

7、阅读下面的程序: #include int main() { char ch; scanf("%c%c",&ch,&ch); printf("%c",ch); }如果从键盘输入: abc 则程序的运行结果是()。

A、a

B、b

C、c

D、程序出现语法错

8、以下语句的功能是()。 temp=x; x=y; y=temp;

A、将x,y,temp从小到大排列

B、将x,y,temp从大到小排列

C、将x和y的值互换

D、求x和y的较小值

9、在下列选项中,正确的赋值语句是()。

A、t=(0,1);

B、n1*=n2/=n-=0;

C、k=i=j;

D、a=b+c=1;

10、先将x的值加1,然后把x和y的差赋给z。若用一条C语句完成操作,则相应的语句是()。

A、z=++x-y;

B、z=(x+=1)-y;

C、z=(++x,x-y);

D、z=(x++,x-y);

11、复合语句将若干个语句变成了一个整体,从逻辑上讲相当于一条语句。

12、“putchar(67);”语句执行后在显示器上输出数值67。

13、在scanf函数中,必须指明待输入变量的地址。

14、因为“x++”与“++x”都可以使x的值加1,所以它们的功能等价。

专题3单元作业

1、求商和余数

2、十位数变为0

3、字符处理

专题4 选择结构

4.1 条件的描述与条件运算随堂测验

1、表达式5!=3的值是()。

A、Y

B、N

C、0

D、1

2、为表示关系x≥y≥z,应使用C/C++语言表达式()。

A、(x>=y) && (y>=z)

B、(x>=y) and (y>=z)

C、x>=y>=z

D、(x>=y) & (y>=z)

3、下列语句的功能是()。 a=a>b?b:a; a=a>c?c:a;

A、将a,b,c从小到大排列

B、将a,b,c从大到小排列

C、求a,b,c三数的最大数

D、将a,b,c三数的最小数

4、判断整数n是否为偶数,可以使用的条件有()。

A、n-n/2*2==0

B、!(n%2)

C、(n & 1)==0

D、!(n & 1)

5、在C/C++语言中,任何类型的表达式都可以表示条件,非0代表条件成立,0代表不成立。

4.2 if选择结构随堂测验

1、以下叙述中正确的是()。

A、if语句中的条件只能是关系表达式或逻辑表达式

B、不能在else子句中再嵌套if语句

C、当if子句和else子句中包含多个语句时应当写成复合语句形式

D、改变if-else语句的缩进格式,会改变程序的执行流程

2、已知“int x=10,y=20,z=30;”,则执行下列语句后,x、y、z的值是()。 if (x>y) z=x, x=y, y=z;

A、x=10,y=20,z=30

B、x=20,y=30,z=30

C、x=20,y=30,z=10

D、x=20,y=30,z=20

3、执行下列程序后,运行结果是()。#include int main( ) { int a=2,b=-1,c=3; if (a

A、0

B、2

C、3

D、4

4、以下合法的if语句形式是()。

A、if (0) ;

B、if (x=y) x+=10;

C、if (x!=y) scanf("%d",&x); else scanf("%d",&y);

D、if (x==y) {x++; y++;}

5、在C/C++语言中,运算符“=”与“==”的含义相同。

4.3 switch选择结构随堂测验

1、在C/C++语言中,以下说法正确的是()。

A、switch语句可以没有default分支

B、switch语句必须有default分支

C、switch语句每个分支必须执行

D、switch语句必须使用break语句

2、C/C++语言的switch语句中,case后面()。

A、只能为常量

B、只能为常量或常量表达式

C、可为常量及表达式或有确定值的变量及表达式

D、可为任何量或表达式

3、若有定义“float w;int a,b;”,则合法的switch语句是()。

A、switch(w) { case 1.0: printf("1.0\n"); case 2.0: printf("2.0\n"); }

B、switch(a) { case 1 printf("1\n"); case 2 printf("2\n"); }

C、switch(b) { case 1: printf("1\n"); default: printf("default\n"); case 1+2: printf("3\n"); }

D、switch(a+b) { case 3: printf("3\n"); case 1+2: printf("1+2\n"); default: printf("default\n"); }

4、运行下列程序时,从键盘输入字母H,则输出结果是()。 #include int main() { char ch; ch=getchar( ); switch(ch) { case 'H':printf("Hello!\n"); case 'G':printf("Good morning!\n"); default:printf("Good Bye!\n"); } }

A、Hello!

B、Hello! Good morning!

C、Hello! Good morning! Good Bye!

D、Hello! Good Bye!

5、switch后面的表达式是一个其值可以列举的表达式,如整型或字符型表达式。

4.4 选择结构程序举例随堂测验

1、运行下列程序时,若从键盘输入“5 ”,则程序的输出结果是()。#include int main() { int a ; scanf("%d",&a); if (a++>5) printf("%d\n",a); else printf("%d\n",a--) ; return 0; }

A、7

B、6

C、5

D、4

2、以下程序的执行结果是()。 #include int main( ) { int x=1,y=0; switch (x) { case 1: switch (y) { case 0:printf("first\n");break; case 1:printf("second\n");break; } case 2:printf("third\n"); } return 0; }

A、first second

B、first third

C、first

D、second third

专题4单元测验

1、语句“printf("%d",(a=2) && (b=-2));”的输出结果是()。

A、0

B、1

C、2

D、-2

2、设有定义“int x=1,y=1;”,表达式“!x||y--”的值是()。

A、1

B、0

C、2

D、-1

3、以下程序段运行后,y的值是()。 int a=0,y=10; if (a=0) --y;

A、8

B、11

C、9

D、10

4、以下程序的运行结果是()。 #include int main() { int p=30; printf("%d\n",p/3>0?p/10:p%3); return 0; }

A、0

B、10

C、30

D、3

5、已知“int x=10,y=20,z=30;”,则执行下列语句后,x、y、z的值是()。 if (x>y) z=x; x=y; y=z;

A、x=10,y=20,z=30

B、x=20,y=30,z=30

C、x=20,y=30,z=10

D、x=20,y=30,z=20

6、已知“int a=5,b=1,c=0;”,则执行下列语句时()。 if (a=b+c) printf("****\n"); else printf("####\n");

A、有语法错误,没有结果

B、输出****和####

C、输出****

D、输出####

7、以下选项中,两个条件语句功能等价的是()。

A、if (a=3) printf("%d\n",a); if (a==3) printf("%d\n",a);

B、if (a-3) printf("%d\n",a); if (a!=3) printf("%d\n",a);

C、if (a) printf("%d\n",a); if (a==0) printf("%d\n",a);

D、if (a-3) printf("%d\n",a); if (a==3) printf("%d\n",a);

8、已知“int k=8;”,则执行下列语句后的输出结果是()。 if (k<=0) if (k==0) printf("####\n"); else printf("&&&&\n"); else printf("****\n");

A、####

B、&&&&

C、****

D、有语法错误,无输出结果

9、下列程序执行后的输出结果是()。 #include int main() { int x,y=1,z; if ((z=y)<0) x=4; else if (y==0) x=5; else x=6; printf("%d,%d\n",x,y); return 0; }

A、4,1

B、6,1

C、5,0

D、出错信息

10、下列程序的输出结果是()。 #include int main() { int a=1; switch(a) { case 3||4:printf("ok\n");break; case 4:printf("perfect\n");break; default:printf("no\n");break; } return 0; }

A、ok

B、perfect

C、no

D、2

11、判断整数n是否为奇数的条件表达式有()。

A、n-n/2*2

B、n%2==1

C、n & 1

D、(n & 1)==1

12、求下列分段函数的值,正确的程序有()。

111307.html

A、#include #include int main( ) { float x,y; scanf("%f",&x); if (x<10) y=3-fabs(x); else y=sqrt(x)-2; printf("y=%f\n",y); return 0; }

B、#include #include int main( ) { float x,y; scanf("%f",&x); if (x<10) y=3-fabs(x); if (x>=10) y=sqrt(x)-2; printf("y=%f\n",y); return 0; }

C、#include #include int main( ) { float x,y; scanf("%f",&x); if (x<10) y=3-fabs(x); else if (x>=10) y=sqrt(x)-2; printf("y=%f\n",y); return 0; }

D、#include #include int main( ) { float x,y; scanf("%f",&x); y=3-fabs(x); if (x>=10) y=sqrt(x)-2; printf("y=%f\n",y); return 0; }

13、选择结构的某个分支中要执行多个语句时,一定要用花括号写成复合语句。

14、case后的常量表达式类型一定要与表达式类型相匹配,而且case后的常量表达式的值可以相同。

专题4单元作业

1、判断正整数

2、求三角形面积

3、输出成绩等级

专题5 循环结构

5.1 while循环随堂测验

1、已知“int i=1;”,执行语句“while (i++<4);”后,变量i的值为()。

A、3

B、4

C、5

D、6

2、对下列程序描述正确的是()。 #include int main() { int x=0,s=0; while(!x!=0) s+=++x; printf("%d\n",s); return 0; }

A、程序中的循环条件表达式是非法的

B、程序中循环无数次

C、运行程序后输出0

D、运行程序后输出1

3、下面程序的运行结果是()。 #include int main() { int n=0; while (n++<=2) printf("%d",n); return 0; }

A、012

B、123

C、234

D、出现错误信息

4、下面程序的运行结果是()。 #include int main() { int s=0,i=1; while(s<=10) { s=s+i*i; i++; } printf("%d\n",--i); return 0; }

A、3

B、4

C、5

D、6

5、语句“while(1) ;”构成一个完整的循环结构,这是一个无限循环(死循环)。

5.2 do-while循环随堂测验

1、以下描述中正确的是( )。

A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B、do-while循环由do开始,用while结束,在“while(表达式)”后面不能写分号

C、在do-while循环体中,一般要有能使while后面表达式的值变为零的操作

D、do-while循环中,根据情况可以省略while

2、以下程序段()。 x=-1; do { x=x*x; }while (!x);

A、循环执行无数次

B、循环执行1次

C、循环执行2次

D、有语法错误

3、以下程序的运行结果是()。 #include int main() { int x=23; do { printf("%d\n",x--); }while(!x); return 0; }

A、321

B、23

C、不输出任何内容

D、陷入死循环

4、以下程序运行后的输出结果是()。 #include int main() { int i=10,j=0; do { ++j; i--; }while(i>2); printf("%d\n",j); return 0; }

A、50

B、52

C、51

D、8

5、do-while循环的循环体至少执行一次。

5.3 for循环随堂测验

1、下面有关for循环的正确描述是()。

A、for循环只能用于循环次数已经确定的情况

B、for循环是先执行循环体语句,后判定条件表达式

C、for循环不能用while循环来实现。

D、for循环体语句中,可以包含多条语句,但要用花括号括起来

2、下面程序的运行结果是()。 #include int main() { int i; for(i=1;i<=5;) printf("%d",i); i++; return 0; }

A、12345

B、1234

C、15

D、无限循环

3、下面程序的运行结果是()。 #include int main() { int x; for(x=10;x>3;x--) { if (x%3) x--; --x; --x; printf("%d ",x); } return 0; }

A、6 3

B、7 4

C、7 6 2

D、7 3

4、求5!的程序有()。

A、#include int main() { int p,i; for(p=1,i=1;i<=5;) { p*=i; i++; } printf("%d\n",p); return 0; }

B、#include int main() { int p=1,i=1; for(;i<=5;) { p*=i; i++; } printf("%d\n",p); return 0; }

C、#include int main() { int p=1,i; for(i=1;i<=5;p*=i,i++); printf("%d\n",p); return 0; }

D、#include int main() { int p=1,i=1; for(;i<=5;p*=i++); printf("%d\n",p); return 0; }

5、for语句中的三个表达式都可以省略,两个分号也可以省略。

5.4 循环辅助控制语句随堂测验

1、下面程序段()。 for(t=1;t<=100;t++) { scanf("%d",&x); if (x<0) continue; printf("%3d",t); }

A、当x<0时整个循环结束

B、x≥0时什么也不输出

C、printf函数永远也不执行

D、最多允许输出100个非负整数

2、下列程序中while循环的循环次数是()。 #include int main( ) { int i=0; while(i<10) { if (i<1) continue; if (i==5) break; i++; } printf("%d\n",i); }

A、1

B、6

C、10

D、无数次(死循环)

3、下列程序的输出结果是()。 #include int main( ) { int y=9; for(;y>0;y--) { if (y%3==0) { printf("%d",--y); continue; } } return 0; }

A、741

B、852

C、963

D、875421

4、以下叙述正确的是()。

A、continue语句的作用是结束整个循环的执行

B、只能在循环体内和switch语句体内使用break语句

C、在循环体内使用break语句或continue语句的作用相同

D、在多层循环中,break语句只能终止并跳出包含它的最近一层的循环体。

5.5 循环的嵌套随堂测验

1、以下程序的运行结果是()。 #include int main( ) { int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4) m++; printf("%d\n",m); return 0; }

A、12

B、15

C、20

D、25

2、以下程序的输出结果是()。#include int main( ) { int i=0,a=0; while(i<20) { for(;;) if ((i%10)==0) break; else i--; i+=11; a+=i; } printf("%d\n",a); return 0; }

A、11

B、21

C、32

D、33

5.6 循环结构程序举例随堂测验

1、以下程序的输出结果是()。 #include int main() { int i=0,s=0; do { if (i%2) {i++;continue;} i++; s+=i; }while(i<7); printf("%d\n",s); return 0; }

A、12

B、16

C、21

D、28

2、按顺序读入10名学生4门课程的成绩,计算出每位学生的平均成绩并输出。程序如下:#include int main() { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("No%d:%f\n",n,ave); } }上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是()。

A、sum=0.0;

B、sum+=score;

C、ave=sun/4.0;

D、printf("NO%d:%f\n",n,ave);

专题5单元测验

1、有以下程序段,则while循环执行的次数是()。 int k=10; while(k=1)k--;

A、0

B、1

C、10

D、无限次

2、语句while(!e);中的条件“!e”等价于()。

A、e==0

B、e!=1

C、e!=0

D、e==1

3、下面程序段中,循环体的执行次数是()。 int a=10,b=0; do { b+=2; a-=2+b; }while(a>=0);

A、4

B、5

C、3

D、2

4、若for循环用以下形式表示: for(表达式1;表达式2;表达式3) 循环体语句 则执行语句“for(i=0;i<3;i++) printf("*");”时,表达式1和表达式3的执行次数分别为()。

A、1和3

B、3和3

C、3和4

D、1和4

5、下面有关for循环的正确描述是()。

A、for循环只能用于循环次数已经确定的情况。

B、for循环是先执行循环体语句,后判断条件表达式。

C、在for循环中,不能用break语句跳出循环体。

D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。

6、下面程序的运行结果是()。#include int main() { int x=0,y=0; while(x<15) y++,x+=++y; printf("%d,%d\n",y,x); return 0; }

A、20,7

B、6,12

C、20,8

D、8,20

7、下面程序的输出结果是()。#include int main() { int y=10; do{ y--; }while(--y); printf("%d\n",y--); return 0; }

A、-1

B、1

C、0

D、8

8、下面程序的输出结果是()。#include int main( ) { int i; for(i=1;i<6;i++) { if (i%2!=0) {printf("#");continue;} printf("*"); } printf("\n"); return 0; }

A、#*#*#

B、#####

C、*****

D、*#*#*

9、在下列程序段中,构成死循环的是()。

A、int i=100; while (1) { i=i%100+1; if (i>100) break; }

B、for( ; ; );

C、int k=1000; do {k;} while (k>=1000);

D、int s=36; while (s=1) ++s;

10、求5!的程序有()。

A、#include int main() { int p=1,i=1; for(;i<=5;) p*=i++; printf("%d\n",p); return 0; }

B、#include int main() { int p=1,i; for(i=1;;i++) { p*=i; if (i==5) break; } printf("%d\n",p); return 0; }

C、#include int main() { int p=1,i=1; for(;;) { p*=i++; if (i>5) break; } printf("%d\n",p); return 0; }

D、#include int main() { int p=1,i=1; for(;;) { p*=i; if (i==5) break; i++; } printf("%d\n",p); return 0; }

11、for语句中的表达式2省略时,可以在循环体中使用if语句控制执行break语句来终止循环。

12、循环体中可以什么也不做,但循环体中必须有语句,用空语句就可以满足语法要求。

13、continue能结束整个循环,而break只能结束本次循环。

14、do-while循环的循环体至少执行一次,而while循环的循环体有可能一次也不执行。

专题5单元作业

1、求值

2、计算平方和

专题6 程序设计综合举例

专题6单元作业

1、求圆周率π

2、求和谐素数之和

专题7 函数与编译预处理

7.1 函数的定义与调用随堂测验

1、以下有关C函数的说法中,正确的是()。

A、被调函数一定要写在主调函数后面

B、函数的声明语句应完全与函数定义的首部相同

C、定义函数时,形参的类型说明可以放在函数体内

D、函数返回值的类型由定义该函数时所指定的函数类型决定

2、以下正确的函数定义形是()。

A、double fun(int x;int y) { z=x+y;return z;}

B、fun(int x,y) { int z=10;return z;}

C、fun(x,y) { int x,y;double z; z=x+y;return z;}

D、double fun(int x,int y) { double z; z=x+y;return z;}

3、若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是()。

A、函数调用可以作为独立的语句存在

B、函数调用可以作为一个函数的实参

C、函数调用可以作为一个函数的形参

D、函数调用可以出现在表达式中

4、函数首部定义为:int max(int a,int b)的函数,下列函数声明语句正确的是()。

A、int max(int,int);

B、int max(int a,int b);

C、int max(int b,int a);

D、int max(int x,int y);

5、如果一个函数没有形式参数,则调用该函数时,可以省略函数名后面的括号。

7.2 函数的参数传递随堂测验

1、简单变量做形参时,实参和对应形参之间的数据传递方式为()。

A、地址传递

B、值传递

C、由实参传给形参,再由形参传回给实参

D、由用户指定传递方式

2、在C/C++语言中,函数进行值传递时,以下正确的说法是()。

A、只有当实参和与其对应的形参同名时才共占用存储单元

B、实参和与其对应的形参共占用一个存储单元

C、实参和与其对应的形参各自占用独立的存储单元

D、形参是虚拟的,不占用存储单元

3、下列程序的运行结果是()。#include int add(int x,int y) { int z; x=x+2; y=y+3; z=x+y; return z; } int main() { int a=5,b=8,c; c=add(a,b); printf("%d,%d,%d\n",a,b,c); return 0; }

A、5,8,13

B、5,8,18

C、7,11,13

D、7,11,18

4、向函数传递参数时,实参和形参可以同名。

5、简单变量作形参时,实参对形参的数据传递是单向传递,调用结束后,形参和实参单元均被释放。

7.3 函数的递归调用随堂测验

1、在C/C++语言程序中,各函数之间()。

A、既允许直接递归调用,也允许间接递归调用

B、不允许直接递归调用,也不允许间接递归调用

C、允许直接递归调用,不允许间接递归调用

D、不允许直接递归调用,允许间接递归调用

2、下列程序的运行结果是()。#include void func2(int x) { x=30; printf("%d\n",x); } void func1( int x) { x=20; func2(x); printf("%d\n",x); } main() { int x=10; func1(x); printf("%d\n",x); }

A、30 20 10

B、30 20 20

C、30 30 20

D、10 20 30

3、以下程序的输出的结果是()。#include int func(int a,int b) {return(a+b);} int main() { int x=2,y=5,z=8,r; r=func(func(x,y),z); printf("%d\n",r); return 0; }

A、12

B、13

C、14

D、15

4、以下程序的输出的结果是()。#include void fun(int); int main() { int a=4; fun(a); printf("\n"); return 0; } void fun(int k) { if (k>0) fun(k-1); printf(" %d",k); }

A、4 3 2 l

B、1 2 3 4

C、0 1 2 3 4

D、4 3 2 1 0

5、使用递归方法解决问题时,需要有结束递归的条件。

7.4 变量的作用域与存储类别随堂测验

1、对于在C/C++源程序文件中定义的全局变量,其作用域为()。

A、所在文件的全部范围

B、所在程序的全部范围

C、所在函数的全部范围

D、由具体定义位置和extern说明来决定范围

2、在C/C++语言中,定义只有在使用时才占用内存单元的变量,其存储类型是()。

A、auto和register

B、extern和register

C、auto和static

D、static和register

3、以下叙述中不正确的是()。

A、在不同的函数中可以使用相同名字的变量

B、函数中的形式参数只在本函数范围内有效

C、在函数内定义的变量只在本函数范围内有效

D、在函数内复合语句中定义的变量在本函数范围内有效

4、下列程序的执行结果是()。#include int a=100; int main() { int a=200; { int a=300; } printf("%d\n",a); return 0; }

A、0

B、100

C、200

D、300

5、当变量被说明为static类型,意味着其生存期延长了,作用域也扩大了。

6、只要是函数中定义的局部变量,其所占的内存单元在函数调用结束后就一定要被系统收回。

7.5 编译预处理命令随堂测验

1、C语言的编译系统对宏命令的处理是()。

A、在程序运行时进行的

B、在程序连接时进行的

C、和C程序中的其他语句同时进行编译的

D、在对源程序中其他成分正式编译之前进行的

2、以下程序的输出结果是()。#include #define SQR(X) X*X int main() { int a,k=2,m=1; a=SQR(k+m)/SQR(k+m); printf("%d\n",a); return 0; }

A、1

B、9

C、7

D、8

3、以下程序的输出结果是()。#include #define SUB(X,Y) (X)*Y int main() { int a=3,b=4; printf("%d\n",SUB(a++,b++)); return 0; }

A、12

B、15

C、16

D、20

4、程序中头文件type.h的内容是:#define N 5 #define M1 N*3程序如下: #include "type.h" #define M2 N*2 #include main() { int i; i=M1+M2; printf("%d\n",i); }程序编译后运行的输出结果是()。

A、10

B、20

C、25

D、30

5、下列正确的文件包含命令是()。

A、#include

B、#include [file1.h]

C、#include "file1.h"

D、#include (file1.h)

专题7单元测验

1、C语言规定,函数返回值的类型由()。

A、return语句中的表达式类型决定

B、调用该函数的主调函数类型决定

C、调用该函数时系统临时决定

D、定义该函数时所指定的函数类型决定

2、以下正确的函数定义首部是()。

A、double fun(int x;int y)

B、double fun(int x,int y);

C、double fun(int x,int y)

D、double fun(int x,y)

3、简单变量作函数形参时,以下说法正确的是()。

A、形参是虚拟的,函数调用时不占用存储单元

B、实参和与其对应的形参各自占用独立的存储单元

C、实参和与其对应的形参共享一个存储单元

D、只有当形参和与其对用的实参同名时才共享存储单元

4、函数调用时,下列说法中不正确的是()。

A、值传递方式时,形参不予分配内存单元

B、实参和形参可以同名

C、主调函数和被调用函数可以不在同一个文件中

D、函数间传送数据可以使用外部全局变量

5、以下程序的输出结果是()。#include void fun(int x,int y,int z) { z=x*x+y*y; } int main() { int a=31; fun(5,2,a); printf("%d\n",a); return 0; }

A、0

B、29

C、31

D、无确定值

6、下列程序的运行结果是()。#include int a=3,fun(); int main() { int a=1,b; { int a=2; b=fun(); printf("%d,",a); } printf("%d,",a); printf("%d\n",b); return 0; } int fun() { return a+2; }

A、1,2,5

B、1,2,4

C、2,1,4

D、2,1,5

7、下列程序的运行结果是()。#include int fmy(int x) { static int a=3; a+=x; return a; } int main() { int k=2,m=1,n; n=fmy(k); n=fmy(m); printf("%d\n",n); return 0; }

A、3

B、4

C、6

D、9

8、以下程序的运行结果是()。#include #define P 3 #define F(x) (P*x*x) int main() { printf("%d\n",F(3+5)); return 0; }

A、192

B、29

C、25

D、编译出错

9、以下正确的说法有()。

A、在不同函数中可以使用相同名字的变量

B、形式参数是局部变量

C、在函数内定义的变量只在本函数范围内有效

D、在函数内的复合语句中定义的变量只在本复合语句范围内有效

10、以下程序中,运行结果是36的有()。

A、#include #define M(y) y*y int main() { printf("%d\n",M(6+0)); return 0; }

B、#include #define M(y) (y)*(y) int main() { printf("%d\n",M(6+0)); return 0; }

C、#include int M(int y) { return y*y; } int main() { printf("%d\n",M(6+0)); return 0; }

D、#include int M(int y) { return (y)*(y); } int main() { printf("%d\n",M(6+0)); return 0; }

11、函数必须有返回值,否则就不能使用函数。

12、如果一个函数没有形式参数,调用该函数时,可以省略函数名后面的括号。

13、在一个程序中,全局变量的名称与局部变量的名称不能相同。

14、对宏命令的处理是在对源程序文件正式编译之前进行的。

专题7单元作业

1、找正整数

2、求π

3、数列求值

专题8 数 组

8.1 数组的定义与基本操作随堂测验

1、有数组定义double d[10];,以下叙述不正确的是()。

A、数组d有10个元素

B、数组d的最后一个元素是d[10]

C、数组d的第一个元素是d[0]

D、数组d所占的字节数是sizeof(double)*10

2、能对一维数组a进行初始化的正确语句是()。

A、int a[10]={};

B、int a[10]=(0,0,0);

C、int a[]={0};

D、int a[10]={0,1,2,3,4,5,6,7,8,9,10};

3、以下正确的语句是( )。

A、int a[1][4]={1,2,3,4,5};

B、float x[3][]={{1},{2},{3}};

C、long b[2][3]={{1},{1,2},{1,2,3}};

D、double y[][3]={0};

4、下列程序的运行结果是()。#include int main() { int n[5]={(1,2,3,4,5,6)},i,k=2; for(i=0;i

A、出现语法错

B、2

C、1

D、0

5、下列程序的运行结果是()。#include int main() { int a[10],i,k=1; for(i=0;i<10;i++) a[i]=i; for(i=1;i<6;i++) k+=a[i]+i; printf("%d\n",k); return 0; }

A、20

B、31

C、32

D、33

6、建立以下二维数组: 1 2 3 4 5 6 7 8 9 10 11 12 可以采用的语句有()。

A、int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

B、int a[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

C、int a[3][4]={(1,2,3,4),(5,6,7,8),(9,10,11,12)};

D、int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

7、一个数组可以存放多种不同类型的数值。

8、对全部数组元素赋初值时,可以不指定数组长度。

8.2 用数组作为函数的形参随堂测验

1、用数组作为函数形参时,要求实参()。

A、只能是数组的首地址

B、只能是数组名

C、是数组元素的地址

D、是第一个数组元素的值

2、下列程序的运行结果是()。 #include "stdio.h" int fun(int x[],int n) { return x[1]++; } int main() { int a[10]={1,2,3,4,5},y; y=fun(a,10); printf("%d,%d\n",y,a[1]); }

A、2,2

B、3,2

C、2,3

D、3,3

3、下列程序的运行结果是()。#include void pp(int a[],int n) { int i; for(i=0;i

A、1 -2 3 -4 5

B、1 0 3 0 5

C、1 0 3 -4 5

D、1 -2 3 0 5

4、同简单变量形参一样,数组作函数形参时函数参数采用值传递方式。

5、数组名代表数组的首地址。

6、用数组作为函数形参时,在函数体中对形参数组元素的操作就等同于对实参数组元素的操作。

专题8单元测验

1、假设int型变量占4个字节的存储单元,若有定义语句“int a[5]={1,2,3};”,则数组a占用内存的字节数为()。

A、6

B、12

C、10

D、20

2、下列数组定义语句中,不合法的是()。

A、int a[3]={0,1,2,3};

B、int a[]={0,1,2,3};

C、int a[3]={0,1,2};

D、int a[3]={0,1};

3、已知定义语句: int a[3][4]={0}; 则下面正确的叙述是()。

A、只有元素a[0][0]可得到初值0

B、此定义语句是错误的

C、数组a中的每个元素都可得到初值,但其值不一定为0

D、数组a中的每个元素均可得到初值0

4、已知定义语句: int a[][3]={{1},{3,2},{4,5,6},{0}} 则a[2][2]的值是()。

A、3

B、2

C、6

D、4

5、下列程序的运行结果是()。#include int main() { int n[5]={(1,2,3,4,5,6)},i,k=2; for(i=0;i

A、7

B、2

C、1

D、出现语法错

6、下列程序的运行结果是()。#include int main() { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while(k[i]) { if (k[i]%2==0||k[i]%5==0) count++; i++; } printf("%d,%d\n",count,i); return 0; }

A、8,10

B、7,8

C、7,10

D、8,8

7、下列程序的运行结果是()。#include int main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); return 0; }

A、3

B、4

C、1

D、9

8、下列程序的运行结果是()。#include void mat(int x[], int n) { int i; for(i=0;i

A、0 1 2 3 4 5

B、0 1 2 3 4 5

C、0 2 4 6 8 10

D、出现语法错

9、要定义一维int型数组art,并使其各元素具有初值1,2,0,0,0,正确的定义语句是()。

A、int art[5]={1,2};

B、int art[]={1,2};

C、int art[5]={1,2,0,0,0};

D、int art[]={1,2,0,0,0};

10、使用一维数组作函数形参时,以下说法正确的是()。

A、实参数组与形参数组的长度可以不相同

B、实参数组与形参数组的类型必须一致

C、可以不指定形参数组的长度

D、实参数组名与形参数组名必须一致

11、若有定义“int a[10]={1,2,3,4,5};”,则给数组元素a[0]至a[4]确定了初值,其余元素初值默认设置为0。

12、有定义“int a[10];”,其中的“10”代表引用a数组的元素时下标最多取到10。

13、二维数组在存储结构上采用按列存储的方式。

14、用数组作为函数形参时,形参数组共享实参数组的内存空间。

专题8单元作业

1、将最大元素和最小元素互换位置

2、求矩阵外围元素之和

3、数据查找

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值