尔雅程序设计基础_9答案(学习通2023完整答案)

分类: 小升初问答发布于:2024-06-02 16:53:19ė61802次浏览607条评论

尔雅程序设计基础_9答案(学习通2023完整答案)

第1讲 C语言概述

1.1 认识C语言随堂测验

1、尔雅1. 以下叙述中正确的程序是( )。
A、设计C语言比其他语言高级
B、基础C语言可以不用编译就能被计算机识别执行
C、答案C语言以接近英语国家的学习自然语言和数学语言作为语言的表达形式
D、C 语言出现最晚,通完具有其他语言的整答一切优点

1.2 C语言的特点随堂测验

1、C语言可以看做高级语言与低级语言之间的尔雅中级语言。

1.3 认识C程序随堂测验

1、程序以下叙述中正确的设计是( )
A、构成 C 程序的基础基本单位是函数
B、可以在一个函数中定义另一个函数
C、答案main()函数必须放在其他函数之前
D、学习所有被调用的通完函数一定要在调用之前进行定义

2、一个 C 程序的执行是从( )。
A、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
B、本程序的 main 函数开始,到 main 函数结束
C、本程序的 main 函数开始,到本程序文件的最后一个函数结束
D、本程序文件的第一个函数开始,到本程序 main 函数结束

1.4 C程序的特点随堂测验

1、以下叙述中正确的是( )。
A、C 程序中注释部分可以出现在程序中任意合适的地方
B、花括号“{ ”和“}”只能作为函数体的定界符
C、构成 C 程序的基本单位是函数,所有函数名都可以由用户命名
D、分号是 C 语言之间的分隔符,不是语句的一部分

2、以下叙述正确的是( )。
A、在 C 程序中,main 函数必须位于程序的最前面
B、C 程序的每行中只能写一条语句
C、C 语言本身没有输入输出语句
D、在对一个 C 程序进行编译的过程中,可发现注释中的拼写错误

1.5 C程序的开发调试过程随堂测验

1、一个C程序编译,形成( )文件。
A、.exe文件
B、.c文件
C、.obj文件
D、.init文件

2、开发一个 C 程序,一般要经历编辑,编译,运行三步就可以了。

第一章 C语言概述-----单元测试

1、以下叙述中错误的是( )。
A、计算机不能直接执行用C语言编写的源程序
B、C语言源程序经编译程序编译后生成的后缀为.obj的文件是一个二进制文件
C、后缀为.obj的文件经连接程序连接后生成的后缀为.exe的文件是一个二进制文件
D、后缀为.obj和.exe的二进制文件都可以直接执行

2、以下叙述中错误的是( )。
A、C程序中必须有一个main()函数,C程序是从main()函数的第一条语句开始执行的
B、非主函数都是在执行主函数时通过函数调用或嵌套调用而得以执行的
C、C程序中的main()函数必须放在程序的开始位置
D、C程序中的main()函数位置可以任意指定

3、分析程序的运行结果,有以下程序: main() { int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值*/ printf("a+b=%d\n",a+b); /*输出计算结果*/ }
A、a+b=10
B、a+b=30
C、30
D、20

4、以下叙述中正确的是( )。
A、构成C程序的基本单位是函数
B、可以在一个函数中定义另一个函数
C、main()函数必须放在其他函数之前
D、所有被调用的函数一定要在调用之前进行定义

5、以下叙述中错误的是( )。
A、C语言源程序经编译程序编译后,生成后缀为.obj的目标程序
B、C语言源程序经编译、连接步骤后才能形成一个可执行的.exe文件
C、用C语言编写的源程序,以ASCII码的形式存放在一个文本文件中
D、C程序中的所有可执行语句和非执行语句最终都能被转换成二进制的机器指令

6、以下叙述中正确的是( )。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、花括号“{ ”和“}”只能作为函数体的定界符
C、构成C程序的基本单位是函数,所有函数名都可以由用户命名
D、分号是C语言之间的分隔符,不是语句的一部分

7、C 语言是一种非结构化程序设计语言。

8、C 语言的应用比较广泛 , 不仅可用来编写应用软件 , 而且可用来编写系统软件。

9、C程序中,每个语句和数据定义的最后必须有一个 。

10、开发一个C程序,一般要经历编辑、编译、 、运行4个步骤。

第一章 C语言概述------单元作业

1、编写一个输出“Welcome to C!”信息的小程序

2、已知三角形的三边长分别为3、4、5,试用海伦公式编程求其面积。海伦公式为,其中s=(a+b+c)/2。 提示:平方根函数sqrt()在数学库文件math.h中。

第2讲 基本数据类型

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

1、以下哪些类型不是基本类型( )
A、整型
B、字符
C、数组
D、实型

2.2 标识符、常量和变量的使用随堂测验

1、C语言标识符不区分大小写。

2、C语言标识符的长度没有限制。

3、a和’a’代表的值是相等的。

4、C程序中的语句int a=b=c=5;是正确语句。

2.3 基本数据类型及其修饰符的使用随堂测验

1、下面四个选项中,均是合法的整型常量的选项是
A、160 –0xffff 011
B、–0xcdf 01a 0xe
C、–01 986,012 0668
D、–0x48a 2e5 0x

2、下列不正确的转义字符是()
A、'\\'
B、'\”
C、'074'
D、'\0'

3、“hello”字符串占内存5个字节。

2.4 基本数据的输入与输出的使用随堂测验

1、已知字母A的ASCII码为65,以下程序段的输出结果是( ) char c1='A',c2='Y'; printf("%d,%d",c1,c2);
A、65,90
B、A,Y
C、65,89
D、输出格式不合法

2、以下程序段的输出结果是( ) int a=12345; printf("%2d\n", a);
A、12
B、34
C、12345
D、提示出错、无结果

3、根据定义和数据的输入方式,输入语句的正确形式为:( B)。(注:└┘代表空格) 已有定义:float x,y; 数据的输入方式:1.23<回车> 4.5<回车>
A、scan(”%f,%f”,&x,&y);
B、scanf(”%f%f”,&x,&y);
C、scanf(”%3.2f└┘%2.1f”,&x,&y);
D、scanf(”x=%f,y=%f”,&x,&y);

C语言数据类型------单元测试

1、下列数据中属于“字符串常量”的是(??)。
A、“a”
B、{ abc}
C、'a'
D、‘abc‘

2、在PC机中,?\n?在内存占用的字节数是(??)
A、1
B、2
C、3
D、4

3、在PC机中,”a\xff”?在内存占用的字节数是(??)
A、5
B、6
C、3
D、4

4、字符串”\”ABCD\””在内存占用的字节数是(??)。
A、4
B、6
C、7
D、8

5、在C语言中,合法的长整型常数是(??)
A、0L
B、0.054838743
C、4962710
D、2.1869e10?

6、在C语言中,合法的短整型常数是(??)
A、0L
B、0821
C、40000
D、0x2a

7、下列数据中,不属于“字符常量”的是( )
A、‘\a’
B、'\160'
C、'070'
D、't'

8、字符型常量在内存存放的是( )
A、BCD代码值
B、ASCII代码值
C、内码值
D、十进制值

9、在C语言中能用八进制表示的数据类型是( )
A、整型,字符型
B、整型,实型
C、字符型,实型
D、字符型,整型,实型

10、以下选项中不正确的转义字符是( )
A、'\m'
B、'\f'
C、' \" '
D、'\x56'

11、在C语言中,整型数据和字符型数据在任何情况下都可以通用。

12、在C语言中,用户标识符sum与SUM是相同的。

13、在C语言中,使用标识符PI表示常量3.14的命令是: #define PI 3.14

14、在C语言中,下面定义语句是正确的。 int a=b=c=7;

15、在C语言中,用户标识符由字母、数字、 组成

16、ASCII代码表中每个小写字母都比它对应的大写字母的ASCII码值大

17、C语言规定,字符串常量是以( )作为结束标志。

18、在C语言中,实型常量3.14,默认属于类型( )

第3讲 运算符与表达式

2.5 运算符和表达式的使用随堂测验

1、设a=10,b=4,执行以下赋值语句后,a的值为( ) a%=b+1;
A、0
B、1
C、2
D、3

2、在C语言中,要求运算数必须是整型的运算符是( )
A、/
B、++
C、!=
D、%

3、若有定义:int m=7; float x=2.5, y=4.7; 则表达式x+m%3*(int)(x+y)%2/4的值是( )
A、2.500000
B、2.750000
C、3.500000
D、0.000000

4、在C程序中存在#define N 5命令 ,那么N++语句是正确的。

5、关系运算符的优先级高于赋值运算符,但低于算术运算符。

2.6 自动类型转换与强制类型转换的使用随堂测验

1、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )
A、int
B、float
C、double
D、不确定

2、表达式中存在整型数据和单精度数据,则结果自动转换成单精度类型。

3、float a=3.67; 则 (int) a 是指运算后a的值为3.

2.7 逗号运算符与条件运算符的使用随堂测验

1、假设所有变量均为整型,则表达式“a=2,b=5,b++,a+b”的值是( )
A、7
B、8
C、6
D、2

2、以下程序的运行结果是( )。 main() { int k = 4, a =3, b = 2, c = 1; printf ("\n %d\n", k < a ? k : c < b ? c: a); }
A、4
B、3
C、2
D、1

运算符与表达式——单元测试

1、C语言中运算对象必须是整型的运算符是( )
A、+
B、/
C、*
D、%

2、设int a=2,b=2;,则++a+b的结果是( )
A、2
B、3
C、4
D、5

3、若变量a为int类型,并执行了语句a='A'+2.8;,则正确的叙述是( )
A、a的值是double型
B、a的值是67.8
C、不允许字符型和实型相加
D、a的值是字符'A'的ASCII值加上2

4、下列运算符中优先级最高的是( )。
A、++
B、%
C、*
D、=

5、下列运算符中优先级最低的是( )。
A、+
B、&&
C、<=
D、/

6、C语言中最基本的数据类型包括( )
A、整型、实型、逻辑型
B、整型、实型、字符型
C、整型、字符型、逻辑型
D、字符型、实型、逻辑型

7、下面不正确的字符串常量是( )。
A、'abc'
B、"12.123"
C、"0"
D、" "

8、设有语句 char ch= '\101',则变量ch ( )。
A、包含一个字符
B、包含3个字符
C、包含4个字符
D、不合法

9、在C语言类型说明中,int、char、short等类型数据的长度是( )。
A、固定的
B、由用户自己定义的
C、任意的
D、与机器字的长度有关

10、设int a=2;,则表达式(a++*1/3)的值是( )
A、0
B、1
C、2
D、3

11、下列程序段的输出结果是( )。 int a=1234; float b=123.456; double c=12345.54321; printf("%2d,%2.1f,%2.1f\n",a,b,c);
A、无输出
B、12,123.5,12345.5
C、1234,123.5,12345.5
D、1234,123.4,1234.5

12、若变量已正确定义并赋值,以下符合C语言语法的表达式是( )。
A、a=b+1
B、a=b=c+2;
C、int l8.5%3
D、a=a+7=c+b;

13、若变量a和i已正确定义,且i已正确赋值,下列语句合法的是( )。
A、a=1,b=2
B、++i;
C、a=a++=5;
D、a=int(i);

14、以下选项中,不正确的赋值语句是( )。
A、i++;
B、i+=7;
C、x+y=z;
D、y=(int)x+4;

15、变量已经正确定义,要将a和b中的两个数进行交换,不正确的赋值语句是( )。
A、a=a+b,b=a-b,a=a-b;
B、a=b,b=a;
C、t=a,a=b,b=t;
D、t=b;b=a;a=t;

16、若已经正确说明变量a、b、c为int类型,要给abc输入数据,则正确的输入语句是( )。
A、read(a,b,c);
B、scanf("%d%d%d",a,b,c);
C、scanf("%D%D%D",&a,&b,&c);
D、scanf("%d%d%d",&a,&b,&c);

17、对应于语句scanf("x=%d,y=%d,z=%d",&x,&y,&z);,应从键盘上输入的内容是( )。
A、10 20 30
B、10,20,30
C、x=10 y=20 z=30
D、x=10,y=20,z=30

18、x为int型变量,执行以下语句后,x的值为( )。 x=10; x+=x-=x-x;
A、10
B、20
C、30
D、40

19、下面程序的输出结果是( )。 main() { int x=10,y=3,z; printf("%d\n",z=(x%y,x/y)); }
A、1
B、0
C、4
D、3

20、下面程序的输出结果是( )。 main() { int x=10,y=10; printf("%d %d\n",x--,--y); }
A、10 10
B、9 9
C、9 10
D、10 9

21、下面程序的输出结果是( )。 main() { int x=10; printf("%d\n",(x=5*6,x*4,x+5)); }
A、30
B、125
C、35
D、120

22、有如下程序段: int a=14,b=15,x; char c='A'; x=(a&&b)&&(c<'B'); 执行该程序段后,x的值为( )。
A、true
B、false
C、0
D、1

23、增1减1运算只能作用于( )。
A、常量
B、变量
C、表达式
D、函数

24、在C语言中,对用到的变量,必须先定义类型。

25、一个变量在内存中占有一定的存储单元。

26、在C语言中,几个变量在定义时赋值可以写出: int a=b=c=7;

27、在C语言中,不运行混合类型之间的运算。

28、在C语言中,/运算符要求两边操作数都是整数。

29、字符串"hello!"在内存中占________个字节。

30、决定表达式计算顺序的两个因素是运算符的结合性和( )

31、a为int型变量,b为long型变量,c为char型变量,则表达式a+b/c+3.5的值是( )类型。

32、有一个整数345,取它的个位数的表达式为( )

33、写出算式的C语言表达式( )

34、“\72”在内存中占________个字节。

35、若有定义int x=0;,则执行x=3+5,x*5;语句后,变量x的值为( )

36、若k为int型且值为12,则表达式k%=k的值是( )

运算符与表达式------单元作业

1、设圆半径r=2.9,编程求圆周长和圆面积。

2、输入一个华氏温度,输出相应的摄氏温度。二者的换算公式是:c=5/9(F–32),其中F表示华氏温度,c表示摄氏温度。

第4讲 顺序结构

3.1 程序的3种基本结构随堂测验

1、结构化程序设计的基本结构是()
A、顺序结构
B、选择结构
C、循环结构
D、嵌套结构

2、程序结构内不存在死循环。

3、程序只有一个入口,可以有多个出口。

4、C程序的执行是从程序的第一行开始,一直到程序的最后一行结束。

5、任何程序都可以用顺序结构、选择结构、循环结构这三种结构来表示。

3.2 C语句随堂测验

1、以下叙述不正确的是:( )
A、分号是C语句的必要组成部分
B、C程序的注释可以写在语句的后面
C、函数是C程序的基本单位
D、主函数的名字不一定非用main来表示

2、以下合法的赋值语句是:( )
A、x=y=100
B、d--;
C、x + y
D、c = int(a+b);

3、一个可执行的C程序的开始执行点是:()
A、程序中的第一个语句
B、包含文件中的第一个函数
C、名为main的函数
D、程序中的第一个函数

4、下面的C语句中,正确的复合语句是()
A、a=3,b=5;
B、a=3;b=5;
C、{ a=3; b=5; }
D、{ a=3,b=5}

5、在C语言中,复合语句在功能上与几条语句相同()
A、0
B、1
C、2
D、多条

6、在C语言中,复合语句是由一对()括起的若干条语句。

7、在C语言中,空语句是由单独的分号组成,不执行任何操作。

3.3 顺序结构示例------计算圆柱体体积随堂测验

1、在C语言中,下面的语句属于顺序结构正确的是()
A、定义变量,变量赋值,变量计算,输出变量结果
B、变量赋值,变量计算,定义变量,输出变量结果
C、定义变量,变量计算,变量赋值,输出变量结果
D、定义变量,变量计算,输出变量结果,变量赋值

2、在C语言中,顺序结构的程序的执行顺序( )
A、自左到右
B、自右到左
C、自上到下
D、自下到上

3.4 顺序结构示例------计算数据的平方根随堂测验

1、在C语言中,常用的数学函数所在的头文件是哪个( )
A、stdio.h
B、sting.h
C、math.h
D、stdlib.h

2、在C语言中,下面哪个是求平方根函数()
A、abs( )
B、sqrt( )
C、putchar( )
D、rand( )

3、在C语言中,使用数学函数时,可以省略#include <math.h>编译预处理命名。自动可以识别该文件中的函数。

4、在Turbo C2.0开发工具中,C程序中使用基本输入输出函数,可以不用把stdio.h文件包含,就能识别。

顺序结构------单元作业

1、从键盘上输入a,b值的,然后进行交换,输出a,b的值。

2、从键盘上输入1个3位数,求个位,十位,百位数值进行输出。

第5讲 选择结构

3.5 if语句的格式随堂测验

1、在C语言中,if语句的格式说明正确的是()
A、if语句可以控制1条语句或1个复合语句
B、if语句可以控制多条语句
C、if格式中表达式可以不用圆括号括起。
D、if格式中表达式可以没有,默认为真

2、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变。 main() { char ch; scanf (" %c ", &ch); if ( ) ch = ch + 32; else if (ch > = 'a' && ch < = 'z') ch=ch-32; printf (" %c ", ch); }
A、ch > = 'A' && ch < = 'Z'
B、'A' <=ch< = 'Z'
C、ch > = 'A' and ch < = 'Z'
D、ch > = 'A' || ch < = 'Z'

3、在C语言中,if语句格式中的表达式可以是常量,变量,表达式都可以。

4、在C语言中,if后面的圆括号可以省略。

5、在C语言中,下面的语句是正确的。 if(a>b) x=a;y=b; else x=b;y=a;

6、在if---else语句格式中,else后面也可以有表达式,代表else下的条件。

7、在if---else格式中,else不会单独出现,它必须有对应if语句。

3.6 if语句应用示例------三个数排序随堂测验

1、下面的C语言中,哪个能实现max是a,b中的最大值()
A、if(a>b) max=a;
B、if(a<b) max=b;
C、max=a; if(max<b) max=b;
D、if(a>b) max=a; max=b;

2、执行下面语句后,a的值是() a=6; b=7; if( a++>=b) a=10;
A、6
B、7
C、8
D、10

3、执行下面语句后,a的值是() a=6; b=7; if( ++a>=b) a=10
A、6
B、7
C、8
D、10

3.7 if语句应用示例------计算学生成绩等级随堂测验

1、给出一百分制成绩,要求输出成绩等级A,P,N。其中:90分以上为A,60-89为D,60分以下为E。 定义变量score代表成绩,grade变量代表等级。下面正确的语句是()
A、if(score>=90) grade='A'; if(score>=60) grade='P'; if(score<60) grade='E';
B、if(score>=90) grade='A'; if(score<90 && score>=60) grade='P'; if(score<60) grade='E';
C、if(score>=90) grade=A; else if(score>=60) grade=P; else grade=E;
D、if(score>=90) grade='A'; else (score<90 && score>=60) grade='P'; else (score<60) grade='E';

3.8 switch语句的格式随堂测验

1、在使用switch语句时,后面圆括号中的表达式要求是()
A、常量
B、变量
C、表达式
D、变量、常量、表达式都必须是整型

2、在使用switch语句时,case后面的表达式要求()
A、任意类型的常量
B、任意类型的变量
C、任意类型的表达式
D、整型或字符串常量表达式

3、在C语言中,switch语句可以实现()
A、顺序结构
B、选择结构
C、循环结构
D、任意结构

4、在使用switch语句时,case后的各常量表达式的值不能相同,否则出错。

5、在使用switch语句时,case后面允许有多个语句,但必须使用{ }括起来。

6、在使用switch语句时,default子句必须有,不能省略。

7、在使用switch语句时,各case和default子句的先后顺序可以变动。

3.9 switch语句的应用示例---根据年月,求对应天随堂测验

1、下面程序段的运行结果是() int a=3; switch(a) { case 1: printf("one "); case 2: printf("two "); case 3: printf("three "); case 4: printf("four "); case 5:printf("five "); }
A、one
B、two
C、three
D、three four five

2、下面程序段的运行结果是() int a=3; switch(a) { case 1: printf("one "); break; case 2: printf("two ");break; case 3: printf("three ");break; case 4: printf("four ");break; case 5:printf("five ");break; }
A、one
B、two
C、three
D、three four five

3、下面程序段的运行结果是() int a=6; switch(a) { case 1: printf("one "); case 2: printf("two "); case 3: printf("three "); default: printf("no "); case 4: printf("four "); case 5: printf("five "); }
A、no
B、four
C、five
D、no four five

3.10 switch语句的应用示例---显示学生成绩等级随堂测验

1、阅读以下程序,写出程序的运行结果( )。 void main( ) { int x,y,z; x=0;y=2;z=3; switch (x+1) { case 1: switch (y==2) { case 1: printf(“*”);break; case 2: printf(“%”);break; } case 2: switch(z) { case 1: printf(“$”); case 2: printf(“*”);break; default:printf(“#”);} }
A、*
B、%
C、*#
D、%#

第三章 程序设计初步------单元测试

1、在C语言中,认为( )为逻辑"真"
A、true
B、大于0的数
C、非0整数
D、非0的数

2、若int i=10; 执行下列程序后,变量i的正确结果是( )。 switch ( i ) { case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; }
A、13
B、12
C、11
D、10

3、在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是( )。
A、if (a) s1 ; else s2;
B、if (a==0) s2; else s1;
C、if (a!=0) s1; else s2;
D、if (a==0) s1; else s2;

4、假定所有变量均已正确定义,则下列程序段运行后y的值是( )   int a=0,y=10; if(a=0) y--; else if(a>0) y++; else y+=y;
A、20
B、11
C、9
D、0

5、假定所有变量均已正确定义,则下列程序段运行后x的值是( )。   a=b=c=0; x=35; if(!a) x--; else if(b); if(c) x=3; else x=4;
A、34
B、4
C、35
D、3

6、C语言对嵌套if语句的规定是:else语句总是与( )配对。
A、其之前最近的if
B、第一个if
C、缩进位置相同的if
D、其之前最近的且尚未配对的if

7、在C语言语句中,用来决定分支流程的表达式是(  )。
A、可用任意表达式
B、只能用逻辑表达式或关系表达式
C、只能用逻辑表达式
D、只能用关系表达式

8、C语言中用( )表示逻辑“真”。
A、true
B、非零整数值
C、整数值1
D、false

9、若k是int型变量,且有下面的程序段: int k; k= -3; if (k<=0) printf(“####”); else printf(“&&&&”); 上面程序段的输出结果是( )
A、####
B、&&&&
C、####&&&&
D、有语法错误,无输出结果

10、main() { int x=0,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++;} printf(“a=%d,b=%d\n”,a,b);} 该程序的输出结果是( )
A、a=2,b=1
B、a=1,b=1
C、a=1,b=0
D、a=2,b=2

11、以下程序的输出结果是:( ) main() { int x=-10,y= 1,z=1; if(x<y) if(y<0) z=0; else z=z+1; printf(“%d\n”,z); }
A、0
B、1
C、2
D、3

12、以下程序段的输出结果是( ) int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf("a=%2d b=%2d c=%2d\n",a,b,c);
A、a=10 b=50 c=10
B、a=10 b=30 c=10
C、a=50 b=30 c=10
D、a=50 b=30 c=50

13、有以下程序段 int a; if (3&&2) a=1; else a = 2; 执行后a=( )。
A、1
B、2
C、3
D、0

14、表达式:10!=9的值是( )。
A、true
B、非零值
C、0
D、1

15、下边程序段 int a=2,b=3,c=4; if(c=a+b) printf(“OK!”) else printf(“NO!”); 输出结果是( )。
A、OK!
B、NO
C、程序错误
D、以上都不对

16、设x为非零,则下列描述错误的是( )。
A、!(x == 0)
B、x != 0
C、3*x != 0
D、x>0

17、下列表达式的值中哪个表示为逻辑假( )。
A、1
B、3
C、0
D、-1

18、下列属于分支结构的是( )。
A、while
B、switch
C、for
D、以上都不是

19、在分支结构switch中,case后面跟的一定是常量。

20、在条件表达式中,-3代表为真。

21、在条件表达式中,非0代表为真。

22、在switch语句中,有没有break的情况都是相同的。

23、判断a,b两个数是否相等,用 a = b。

24、判断a,b两个数是否相等,用 a == b。

25、在switch多分支语句中,break语句用于跳出switch语句。

26、在if---else语句中,if和else语句都可以单独存在。

27、switch多分支语句中必须包含default分支。

28、实际上,可以用顺序、分支、循环三种结构构造任何算法。

29、在if...else语句中,else总是和它上面最近且未曾配对的if配对。

30、int?i=20; switch(i/10) { case?2:printf("A"); case?1: printf("B");} 的输出结果为A。

第三章 程序设计初步------单元作业

1、给出一个5位数,编写程序,判断它是不是回文数。例如12321是回文数,个位与万位相同,十位与千位相同。

2、新世纪百货进行打折促销活动,消费金额(P)越高,折扣(d)越大,标准如下: 消费金额 折扣 P < 100 0% 100 ≤ P < 200 5% 200 ≤ P < 500 10% 500 ≤ P < 1000 15% P ≥ 1000 20% 编程实现从键盘输入消费金额,输出折扣率和实付金额(f)。要求用switch语句来实现。

第6讲 循环结构

4.1 认识循环结构随堂测验

1、循环结构分为当型和直到型两种,实现的方法是相同的。

2、实现循环结构的语句有while,do-while,for,if和goto语句。

4.2 goto语句的使用随堂测验

1、在C语句中,goto和if一起构成循环结构。

2、在C语言中,下面语句是正确的,可以实现无条件软件。 goto 123;

4.3 while语句随堂测验

1、语句while (!e);中的条件!e等价于 ( )
A、e==0
B、e!=1
C、e!=0
D、~e

2、已知: int t=0; while(t=1) { …} 则下列叙述中正确的是( )。
A、循环控制表达式的值为0
B、循环控制表达式的值为1
C、循环控制表达式不合法
D、以上说法都不对

3、在C语言中,while语句直接只能控制一条循环语句,若想控制多条语句,必须采用复合语句实现。

4、下面语句中的循环语句是sum=sum+i;i++; i=1;sum=0; while(i<=100) sum=sum+i; i++;

4.4 while语句示例—统计从键盘输入一行字符的个数随堂测验

1、设有以下程序: #include<stdio.h> main() { int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); } 则执行结果为( )
A、输出0
B、输出1
C、程序段中的控制表达式是非法的
D、程序段执行无限次

2、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。第1个空的答案() int n = 0, c; c = getchar(); while ( ) { if ( ) n++; c = getchar(); }
A、c!='\n'
B、c=='\n'
C、c!="\n"
D、c=="\n"

3、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。第2个空的答案() int n = 0, c; c = getchar(); while ( ) { if ( ) n++; c = getchar(); }
A、c>=0 && c<=9
B、0<=c<=9
C、c>='0' && c<='9’
D、'0'<=c<='9'

4.5 do---while语句随堂测验

1、下面两个程序段中,变量sum与i的初值均相同,在( )情况下,两个程序段的执行结果不同。 (1)while(i<=10) (2)do { { sum+=i; sum+=i; i++; i++; } }while(i<=10) ;
A、i的初值大于10
B、i的初值小于10
C、任意条件
D、sum的初值为0

2、do---while语句是先执行循环语句,接着判断循环条件,满足条件,返回执行循环语句,不满足条件退出循环。

3、在C语言中,下面do--whiled语句的格式,是正确的。 do 循环语句; while(循环条件)

4.6 例子—输入一个整数n,求n的各位上数字之积随堂测验

1、假定a和b为int型变量,则执行以下语句后b的值为( )。 a = 1; b = 10; do { b - = a; a ++; } while (b-- < 0);
A、9
B、-2
C、-1
D、8

2、对以下程序段,叙述正确的是( )。 x = -1; do { x = x * x; } while (!x);
A、是死循环
B、循环执行一次
C、循环执行两次
D、有语法错误

3、下面程序的运行结果是( )。 #include <stdio.h> main() { int y = 10; do { y --; } while (-- y); printf (" %d\n ", y --); }
A、-1
B、1
C、8
D、0

4、若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下列程序的运行结果是( )。 #include<stdio.h> main() { char c; int v0=1,v1=0,v2=0; do{ switch(c=getchar()) { case'a':case'A': case'e':case'E': case'i':case'I': case'o':case'O': case'u':case'U':v1+=1; default:v0+=1;v2+=1; } }while(c!='\n'); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); }
A、v0=7,v1=4,v2=7
B、v0=8,v1=4,v2=8
C、v0=11,v1=4,v2=11
D、v0=13,v1=4,v2=12

while语句------单元测试

1、break语句的正确的用法是( )。
A、无论在任何情况下,都中断程序的执行,退出程序。
B、在多重循环中,只能退出最靠近的那一层循环语句。
C、跳出多重循环。
D、只能修改控制变量。

2、int i=0; while( i++ < 5); 循环结束后i的值是( )。
A、6
B、7
C、5
D、8

3、语句while ( E ); 括号中的表达式E等价于( )。
A、E==0
B、E!=1
C、E!=0
D、E==1

4、int i=1; while( --i ) ; 循环次数是( )
A、无限次
B、0
C、2
D、1

5、do-while语句的循环体( )。
A、可能一次都不执行
B、至少要执行一次
C、由循环条件决定循环次数
D、B C均正确

6、对下面的while语句,循环体执行次数是( )次。 a=30; while ( a--) ;
A、30
B、31
C、39
D、都不对

7、在C语言中,下列说法中正确的是( )
A、不能使用"do … while"的循环。
B、"do while"的循环必须使用break语句退出循环。
C、"do while"的循环中,当条件为0时将结束循环。
D、"do while"的循环中,当条件为非0时将结束循环。

8、下面的循环执行完后,循环次数是( )次。 while( k=10 ) k--;
A、9
B、10
C、11
D、无穷次

9、while(!x)中的!x与下面的表达式( )等价。
A、x==0
B、x==1
C、x!=5
D、x!=0

10、以下程序段的描述,正确的是( )。 x=-1; do { x=x*x;} while(!x);
A、是死循环
B、循环执行两次
C、循环执行一次
D、有语法错误

11、下面两个程序段中,变量sum与i的初值均相同,在( )情况下,两个程序段的执行结果不同。 (1)while(i<=10) (2)do { { sum+=i; sum+=i; i++; i++; } }while(i<=10);
A、i的初值大于10
B、i的初值小于10
C、任意条件
D、sum的初值为0

12、若运行以下程序时,从键盘输入ADescriptor<CR>(<CR>表示回车),则下列程序的运行结果是( )。 #include<stdio.h> main() { char c; int v0=1,v1=0,v2=0; do{ switch(c=getchar()) { case'a':case'A': case'e':case'E': case'i':case'I': case'o':case'O': case'u':case'U':v1+=1; default:v0+=1;v2+=1; } }while(c!='\n'); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2); }
A、v0=7,v1=4,v2=7
B、v0=8,v1=4,v2=8
C、v0=11,v1=4,v2=11
D、v0=13,v1=4,v2=12

13、设有以下程序: #include <stdio.h> main() { int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); } 则执行结果为( )。
A、输出0
B、输出1
C、程序段中的控制表达式是非法的
D、程序段执行无限次

14、已知: int t=0; while(t=1) { … } 则下列叙述中正确的是( )。
A、循环控制表达式的值为0
B、循环控制表达式的值为1
C、循环控制表达式不合法
D、以上说法都不对

15、以下程序段的输出结果是( )。 int x=23; do { printf("%d",x--); }while(!x);
A、输出321
B、输出23
C、不输出任何内容
D、死循环

16、有如下程序: main() { int n=9; while(n>6){ n--;printf("%d",n);} } 该程序的输出结果是( )。
A、987
B、876
C、8765
D、987612

17、若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行( )
A、无限次
B、有语法错,不能执行
C、一次也不执行
D、执行1次

18、while 适合控制循环次数不确定的循环。

19、无论循环条件是否满足,do ... while循环的循环体至少执行一次。

20、while( 'a' ) ;是一个死循环。

21、在实际编程中,do-while循环完全可以用for循环替换。

22、continue;语句和break;语句有同样的作用。

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

24、C语言中while和do-while循环的主要区别是:do-while语句至少无条件执行一次。

25、在do-while循环体中,一定要有能使while后面表达式的值变为假的操作。

26、在下面程序段中循环体将执行无限次执行。 x=-1; do{ x=x*x; }while(!x);

27、while和do…while循环不论什么条件下它们的结果都是相同的.

28、在执行以下程序时,如果从键盘上输入:ABCdef<回车>, 则输出为( ) #include <stdio.h> main( ) { char ch; while ((ch=getchar( ))!='\n') { if (ch>='A' && ch<='Z') ch=ch+32; else if (ch>='a' && ch<'z') ch=ch-32; printf("%c",ch); } printf("\n"); }

29、下面程序的输出结果是( )。 main( ) { int x=9,y=9,i; for(i=0;x>8;y=++i) printf("%d,%d ",x--,y); }

30、设有以下程序 main( ) { int n1,n2; scanf("%d",&n2); while (n2!=0) { n1=n2%10; n2=n2/10; printf("%d",n1); } } 程序运行后,如果从键盘上输入1298,则输出结果为( )。

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

32、当运行以下程序时,从键盘键入right?<CR>(<CR>代表回车),则下面程序的运行结果是。 #include <stdio.h> main( ) { char c; while((c=getchar()) !='?') putchar(++c); }

while语句------单元作业

1、编写程序,求10!的值。

2、循环编写程序,计算1+1/2+1/4+…+1/50的值。

第7讲 循环结构进阶

4.7 for语句随堂测验

1、对for(表达式1;;表达式3)可理解为( )。
A、for (表达式1; 0;表达式3)
B、for (表达式1; 1;表达式3)
C、for(表达式1;表达式1; 表达式3)
D、for (表达式1;表达式3;表达式3)

2、若i,j均为整型变量,则以下循环( )。 for (i = 0, j = -1; j = 1; i ++, j ++) printf (" %d, %d\n ", i, j);
A、循环体只执行一次
B、循环体一次也不执行
C、判断循环结束的条件不合法
D、是无限循环

3、对以下的for循环,说法正确的是( )。 for (x = 0, y = 0; (y! = 123) && (x < 4); x ++);
A、执行3次
B、执行4次
C、循环次数不定
D、是无限循环

4.8 例子—验证一个正整数x(x3)是否是素数随堂测验

1、设j为int型变量,则下面for循环语句的执行结果是( )。 for (j = 10; j > 3; j --) { if (j % 3) j --; -- j; -- j; printf (" %d ", j); }
A、6 3
B、7 4
C、6 2
D、7 3

2、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。第1个空的答案() #include <stdio.h> main() { int i, j; for (i = 0; ; i ++) { j = i *10 + 6; if ( ) continue; printf (" %d ", j); } }
A、i<9
B、i<100
C、i<=9
D、i<=100

3、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。第2个空的答案() #include <stdio.h> main() { int i, j; for (i = 0; ; i ++) { j = i *10 + 6; if ( ) continue; printf (" %d ", j); } }
A、j%3
B、j%3==0
C、j%6
D、j%6==0

4.9 循环的拓展----嵌套结构随堂测验

1、如果循环无休止地进行下去,那么这种状态称为有限循环。

2、一个循环的循环体中套有另一个循环称为循环的嵌套。

4.10 例子---做做智力题—百马驼百担随堂测验

1、若i、j已定义为整型,则以下程序段中循环体的执行次数是( )。 for(i=5;i;i--) for(j=0;j<4;j++) { 循环体语句 }
A、20
B、24
C、25
D、30

2、以下程序段的输出结果是( )。 int i,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4) m++; printf("%d\n",m);
A、12
B、15
C、20
D、25

4.11 break语句随堂测验

1、在下述程序中,判断i>j共执行的次数是( )。 main() { int i=0,j=10,k=2,s=0; for(;;) { i+=k; if(i>j) { printf("%d",s); break; } s+=i; } }
A、4
B、7
C、5
D、6

2、下列程序的功能是输入一个整数,判断是否是素数,若为素数则输出1,否则输出0,请填空。 main() { int i,x,y=1; scanf("%d",&x); for(i=2;i<=x/2;i++) if________{ y=0;break;} printf("%d\n",y); }
A、(x%i==0)
B、(x%i)
C、x%i==0
D、x%i

3、在C语言中,循环语句中执行break,是用来退出循环操作。

4、在C语言中,break不仅可以用来退出循环,也可以用来退出switch语句。

4.13 综合应用------使用穷举法求两个整数的最大公约数随堂测验

1、以下程序段的输出结果是( )。 main() { int i; for(i=1;i<=5;i++) { if(i%2) printf("*"); else continue; printf("#"); } printf("$\n"); }
A、*#*#*#$
B、#*#*#*$
C、*#*#$
D、#*#*$

第四章 循环结构------单元测试

1、while(!x)中的!x与下面的表达式( )等价。
A、x==0
B、x==1
C、x!=5
D、x!=0

2、从下列表达式中找出与while(E)中的E不等价的表达式是( )。
A、(!E==0)
B、(E>0)||(E<0)
C、(E==0)
D、(E!=0)

3、对下边for循环,循环体体执行次数是( )。 for ( i = 1; i <= 10; i = i + 2 ) ;
A、6
B、5
C、4
D、7

4、对下边for循环,循环体执行次数是( )。 for ( i = 5; i > 1; i -- ) ;
A、6
B、5
C、4
D、7

5、下边循环执行完后,a为( )。 for ( a= 1;a< 5; a++ ) a = 2 * a;
A、5
B、4
C、7
D、8

6、下边程序段输出结果是( )。 int i , a= 0; for ( i = 0; i < 10; i++ ) a++, i++; printf("%d", a);
A、5
B、6
C、9
D、10

7、从循环体内某一层跳出,继续执行循环外的语句是:( )。
A、break语句
B、return语句
C、continue语句
D、空语句

8、设i,j,k均为int型变量,k初值为0,执行完下面的for循环后,k的值为( )。 for (i=0,j=10; i<=j; i++,j--) k=i+j;
A、10
B、9
C、8
D、7

9、for循环中,能省略的表达式有( )
A、表达式1
B、表达式2
C、表达式3
D、3个都可以

10、设有以下程序: #include<stdio.h> main() { int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); } 则执行结果为( )
A、输出0
B、输出1
C、程序段中的控制表达式是非法的
D、程序段执行无限次

11、若x是int型变量,则执行以下语句的结果是( )。 for(x=1; ;x++) if(x%2==0) if(x%3==0) if(x%5==0) { printf("%d",x); break; }
A、30
B、30 60 90
C、不输出任何内容
D、死循环

12、下列程序的输出结果是( )。 #include <stdio.h> #define A 10 main() { int k=0,sum=0; do { if(k==(k/2)*2) continue; sum+=k; }while(++k<A); printf("%d\n",sum); }
A、55
B、30
C、25
D、26

13、若i、j已定义为整型,则以下程序段中循环体的执行次数是( )。 for(i=5;i;i--) for(j=0;j<4;j++) { 循环体语句 }
A、20
B、24
C、25
D、30

14、有如下程序 main() { int i,sum=2; for(i=1;i<=3;i+=2) sum+=i; printf(“%d\n”,sum); } 该程序的执行结果是( )
A、6
B、3
C、死循环
D、4

15、执行语句”for ( i=0; i++<3 ; ) ;”后,变量i的值为( )。
A、2
B、3
C、4
D、5

16、设x和y均为int型变量,则执行以下的循环后,y的值为( )。 for(y=1,x=1;y<=50;y++) { if(x>=0) break; if(x%2==1) { x+=5;continue;} x-=3; }
A、2
B、4
C、6
D、1

17、continue语句只能用于循环语句中。

18、在for循环中允许使用嵌套循环,但只能是嵌套while循环。

19、break语句只能用于循环语句中。

20、for循环可能一次都不执行。

21、break语句是结束本层循环。

22、break语句是结束本次循环。

23、continue语句是结束本层循环

24、for( ; ; )这写书写for循环是合法的,即for三个表达式都是可以省略的。

25、在循环过程中,使用break语句和continue语句的作用是一样的。

26、while 适合控制循环次数不确定的循环。

27、while( 'a' ) ;是一个死循环。

28、在实际编程中,do-while循环完全可以用for循环替换。

第四章 循环结构------单元作业

1、编制程序,在屏幕上输出所有符合条件的两位数:其个位与十位之积小于其它们之和的数,例如13满足1*3<1+3。

2、编制程序,使用循环结构计算如下表达式,在屏幕上输出正确结果:

第8讲 函数

5.1 认识函数随堂测验

1、以下建立函数的目的中,正确的说法是( )。
A、提高程序的执行效率
B、提高程序的可读性
C、减少程序的篇幅
D、减少程序文件所占内存

2、以下正确的说法是( )。
A、用户若需调用标准库函数,调用前必须重新定义
B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C、系统根本不允许用户重新定义标准库函数
D、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包含到用户源文件中,系统自动去调用

5.2 函数的定义与声明随堂测验

1、以下正确的函数定义形式是( )
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);

2、若调用一个函数,且此函数中没有return语句,则正确的说法是( )
A、没有返回值
B、返回若干个系统默认值
C、能返回一个用户所希望的函数值
D、返回一个不确定的值

3、C语言规定,函数返回值的类型是由( )
A、return语句中的表达式类型所决定
B、调用该函数时的主调函数类型所决定
C、调用该函数时系统临时决定
D、在定义该函数时所指定的函数类型所决定

4、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( )
A、float
B、long
C、int
D、double

5、以下正确的函数形式是( )
A、double fun(int x,int y) { z=x+y;return z;}
B、fun(int x,y) { int z;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;}

5.3 函数的一般调用随堂测验

1、若有以下程序: #include <stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n); } 则以下叙述中不正确的是( )
A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B、若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f
C、对于以上程序,编译时系统会提示出错信息,提示对f函数重复说明
D、函数f无返回值,所以可以用void将其类型定义为无返回值型

2、若函数定义中,return语句有指定的返回值,则可以把函数值参与表达式的运算。

3、在C语言中,函数的调用可以作为赋值表达式的左边变量使用。

4、在C语言中,若函数没有具体的返回值,则可以通过函数语句调用。

5.4 函数的嵌套调用随堂测验

1、在C语言程序中,以下正确的描述是( )
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均不可以嵌套
D、函数的定义和函数的调用均可以嵌套

2、有以下程序: int f(int n) { if(n==1) return l; else return f(n-1)+1 } main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )
A、1
B、2
C、3
D、4

5.5 函数的参数随堂测验

1、以下程序有语法性错误,有关错误原因的正确说法是( ) main() { int g=5,K; void prt_char(); … K=prt_char(g); … }
A、语句void prt_char();有错,它是函数调用语句,不能用void说明
B、变量名不能使用大写字母
C、函数说明和函数调用语句之间有矛盾
D、函数名不能使用下划线

2、在C语言中,以下正确的说法是( )
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共占用存储单元
C、只有当实参和与其对应的形参同名时才共占用存储单元
D、形参是虚拟的,不占用存储单元

3、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、由用户指定传递方式

4、以下说法不正确的是( )
A、C语言规定实参可以是常量、变量、表达式
B、C语言规定形参可以是常量、变量、表达式
C、C语言规定实参可以是任意类型
D、C语言规定实参应与其对应的形参类型一致

函数----单元测试

1、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )
A、函数调用可以作为独立的语句存在
B、函数调用可以作为一个函数的实参
C、函数调用可以出现在表达式中
D、函数调用可以作为一个函数的形参

2、有以下程序: float fun(int x,int y) { return(x+y);} main() { int a=2,b=5,c=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是( )。
A、编译出错
B、9
C、21
D、9.0

3、以下正确的函数形式是( )。
A、double fun(int x,int y) { z=x+y;return z;}
B、fun(int x,y) { int z;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;}

4、以下说法正确的是( )。
A、C语言程序总是从第一个函数开始执行
B、在C语言程序中,要调用函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分

5、以下说法正确的是( )。
A、定义函数时,形参的类型说明可以放在函数体内
B、return后边的值不能为表达式
C、如果函数值的类型与返回值的类型不一致,以函数值类型为准
D、如果形参与实参类型不一致,以实参类型为准

6、C语言规定,函数返回值的类型由( )。
A、return语句中的表达式类型所决定
B、调用该函数时的主调函数类型所决定
C、调用该函数时系统临时决定
D、在定义该函数时所指定的函数类型所决定

7、有以下程序: int f(int n) { if(n==1) return 1; else return f(n-1)+1; } main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是( )。
A、4
B、3
C、2
D、1

8、若有以下程序: #include <stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%dn",n);} 则以下叙述中不正确的是( )。
A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B、若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f
C、对于以上程序,编译时系统会提示出错信息,提示对f函数重复说明
D、函数f无返回值,所以可以用void将其类型定义为无返回值型

9、以下不正确的说法是( )。
A、在不同函数中可以使用相同名字的变量
B、形式参数是局部变量
C、在函数内定义的变量只在本函数范围内有定义
D、在某函数内定义的变量可在其余函数中通用

10、若调用一个函数,且此函数中没有return语句,则正确的说法是( )。
A、该函数没有返回值
B、该函数返回若干个系统默认值
C、能返回一个用户所希望的函数值
D、返回一个不确定的值

11、已知一个函数的定义如下: double fun(int x, double y) { …… } 则该函数正确的函数原型声明为( )。
A、double fun (int x,double y)
B、fun (int x,double y)
C、double fun (int x ,double y );
D、fun(x,y) ;

12、包含标准库函数scanf()声明的头文件是( )。
A、stdio.h
B、stdlib.h
C、math.h
D、time.h

13、若在某程序中定义了多个函数,则以下说法中正确的是( )。
A、C语言程序总是从第一个的数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序总是从main()函数开始执行
D、C语言程序中的main()函数必须放在程序的开始部分

14、一个C语言程序是由( )构成。
A、语句
B、行号
C、数据
D、函数

15、设有某函数fun,定义如下: int fun(int x, int y) { …….. } 以下fun函数的调用,正确的是( )。
A、fun(3 , 4.2)
B、fun(3 , 4)
C、int a; a = fun(3, 4);
D、int a; a = fun(3 , 4.2);

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

17、函数在做调用时,实际参数必须与形式参数一致,包括数量和数据类型。

18、函数的返回值必须与函数定义时的返回类型一致。

19、函数定义可以分两个部分:函数说明部分和函数体

20、函数定义时,必须指定函数的类型,不能省略。

21、用户函数定义时,函数若没有参考,则可以省略圆括号( ).

第9讲 宏定义

5.6 认识变量的类型随堂测验

1、如果在一个函数中的复合语句中定义了一个变量,则该变量( )
A、只在该复合语句中有效
B、在该函数中有效
C、在本程序范围内均有效
D、为非法变量

2、以下说法不正确的是( )
A、在不同函数中可以使用相同名字的变量
B、形式参数是局部变量
C、在函数内定义的变量只在本函数范围内有效
D、在函数内的复合语句中定义的变量只在本函数范围内有效

3、以下函数的正确运行结果是( ) #include <stdio.h> void num() { int x,y; int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5; x=a+b; y=a-b; num(); printf("%d,%d\n",x,y); }
A、12,2
B、不确定
C、5,25
D、1,12

5.7 函数的变量存储方式随堂测验

1、以下程序的输出结果是( )。 main() { int x=1,y=2; void swap(int x,int y); swap(x,y); printf("x=%d,y=%d\n",x,y); } void swap(int x,int y) { x=3,y=4; }
A、x=3,y=4
B、x=1,y=2
C、x=3 y=4
D、x=1 y=2

2、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )
A、自动(auto)
B、静态(static)
C、外部(extern)
D、寄存器(register)

3、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )。
A、extern
B、register
C、auto
D、static

5.8 变量的静态存储方式随堂测验

1、下面的程序中使用了静态存储变量,程序执行后输出的结果是( )。 void myfun() { static int m; m=m+5; printf("%d ",m); } main() { int n; for(n=1; n<5; n++) myfun(); printf("\n"); }
A、5 6 7 8
B、5 10 15 20
C、5,6,7,8
D、5,10,15,20

5.9 宏定义随堂测验

1、下面4个选项中,叙述不正确的是( )
A、宏替换不占用程序运行时间
B、宏名无类型
C、宏名必须用大写字母表示
D、宏替换只是字符替换

2、在宏定义语句#define PI 3.1415926中,宏名PI代替的是( )
A、一个常量
B、一个单精度数
C、一串字符
D、一个双精度数

3、以下程序的运行结果是( )。 #define PI 3 #define S(x) PI*x*x main() { int area; area=S(2+3); printf("%d\n",area); }
A、27
B、12
C、15
D、75

4、C语言的编译系统对宏命令的处理是( )
A、在程序运行时进行的
B、在程序连接时进行的
C、和C程序中的其他语句同时进行编译
D、在对源程序中其他成份正式编译之前进行的

5.10 文件包含随堂测验

1、在“文件包含”预处理语句的使用形式中,当#include后面的文件名用<>(尖括号)括起时,寻找被包含文件的方式是( )
A、仅仅搜索当前目录
B、仅仅搜索源程序所在目录
C、直接按系统设定的标准方式搜索目录
D、先在源程序所在目录中搜索,再按系统设定的标准方式搜索

2、以下描述正确的是( )
A、C语言的预处理功能是指完成宏替换和包含文件的调用
B、预处理指令只能位于C源程序文件的首部
C、凡是C源程序中行首以“#”标识的控制行都是预处理指令
D、C语言的编译预处理就是对源程序进行初步的语法检查

5.11 条件编译随堂测验

1、C语言提供的预处理功能包括条件编译,其基本形式为: #XXX 标识符 程序段 1 #else 程序段 2 #endif 这里XXX可以是( )
A、define或include
B、ifdef或include
C、ifdef或ifndef或define
D、ifdef或ifndef或if

2、下列程序的运行结果是( )。 #define LETTER 1 main() { char str[20]= "Language",c; int i=0; while((c=str[i])!='\0') { i++; #if LETTER if(c>='a'&&c<='z') c=c-32; #else if(c>='A'&&c<='Z') c=c+32; #endif printf("%c",c); } }
A、Language
B、language
C、LANGUAGE
D、lANGUAGE

5.12 特殊符号处理随堂测验

1、编译预处理程序识别的特殊符号,__FILE__表示包含当前程序文件名的字符串。

2、特殊符号__TIME__就表示包含当前时间的字符串,例如11:50:30。

第五章 模块化程序设计----单元测试

1、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )。
A、自动(auto)
B、静态(static)
C、外部(extern)
D、寄存器(register)

2、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( )。
A、extern
B、register
C、auto
D、static

3、以下程序有语法性错误,有关错误原因的正确说法是( )。 main() { int g=5,K; void prt_char(); … K=prt_char(g); … }
A、语句void prt_char();有错,它是函数调用语句,不能用void说明
B、变量名不能使用大写字母
C、函数说明和函数调用语句之间有矛盾
D、函数名不能使用下划线

4、以下说法不正确的是( )。
A、在不同函数中可以使用相同名字的变量
B、形式参数是局部变量
C、在函数内定义的变量只在本函数范围内有效
D、在函数内的复合语句中定义的变量只在本函数范围内有效

5、以下函数的正确运行结果是( )。 #include <stdio.h> void num() { extern int x,y; int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5; x=a+b; y=a-b; num(); printf("%d,%d\n",x,y); }
A、12,2
B、不确定
C、5,25
D、1,12

6、以下函数的正确运行结果是( )。 #include <stdio.h> void num() { int x,y; int a=15,b=10; x=a-b; y=a+b; } int x,y; main() { int a=7,b=5; x=a+b; y=a-b; num(); printf("%d,%d\n",x,y); }
A、12,2
B、不确定
C、5,25
D、1,12

7、以下函数的正确运行结果是( )。 main() { int a=2,i; for(i=0;i<3;i++) printf("%4d",f(a)); } f(int a) { int b=0;static int c=3; b++;c++; return(a+b+c); }
A、7 7 7
B、7 10 13
C、7 9 11
D、7 8 9

8、以下说法不正确的是( )。
A、C语言规定实参可以是常量、变量、表达式
B、C语言规定形参可以是常量、变量、表达式
C、C语言规定实参可以是任意类型
D、C语言规定实参应与其对应的形参类型一致

9、以下程序的正确运行结果是( )。 #include <stdio.h> main() { int k=4,m=1,p; p=func(k,m);printf("%d, ",p); p=func(k,m);printf("%d\n",p); } func( int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return m; }
A、8,17
B、8,16
C、8,20
D、8,8

10、在宏定义#define PI 3.1415926中,用宏名PI代替一个( )。
A、单精度数
B、双精度数
C、变量
D、常量

11、以下程序的运行结果是( )。 #define MIN(x,y) (x<y?x:y) main() { int i=10,j=15,k; k=10*MIN(i,j); printf("%d\n",k); }
A、10
B、15
C、100
D、150

12、define能作简单的替代,用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是( )。
A、#define f (x) 4*x*x+3*x+2
B、#define f 4*x*x+3*x+2
C、#define f(a) (4*a*a+3*a+2)
D、#define (4*a*a+3*a+2) f(a)

13、在c语言中,存储类型为register和extern的变量只在使用它们时才占用存储空间。

14、c程序中,任何非主函数都可以调用其他任何非主函数。

15、一个C语言程序是由一个主函数和若干个子程序组成的。

16、在C程序中,main函数必须位于程序的最前面。

17、一个C语言源程序必须包含一个main 函数。

18、在c程序中,要调用的函数必须在main函数中定义。

第五章 模块化程序设计----单元作业

1、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。

2、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6=1+2+3,编程序找出1000以内的所有完数。

第10讲 数组

6.1 一维数组的概念随堂测验

1、在C语言中,引用数组元素时,其数组下标的数据类型允许是( )
A、整型常量
B、整型表达式
C、整型常量或整型表达式
D、任何类型的表达式

2、以下对一维整型数组a的正确说明是( )
A、int a (10);
B、int n = 10,a[n];
C、int n; scanf("%d",&n); int a [n];
D、#define SIZE 10 int a [SIZE];

6.2 一维数组的定位与搜索操作随堂测验

1、执行下面的程序段后,变量k的值为( ) int k=3,s[2]; s[0]=k;k=s[1]*10;
A、不定值
B、33
C、30
D、10

2、下列程序的功能是输出数组s中最大元素的下标。请在横线上填上适当的内容,使它能得出正确的结果。 main() { int k,p,s[ ]={ 1,-8,6,3,-6,5}; for(p=0,k=p ; p<6 ;p++) if(s[p]>s[k]) ; printf("%d\n",k);

学习通程序设计基础_9

在学习通的程序设计基础第九章中,我们学习了一些高级的编程概念,如函数、数组、指针等等。这些概念对于我们写出更加高效、优美的代码非常有帮助。

函数

函数是一段可以重复利用的程序代码,它接受输入参数并返回输出结果。函数可以帮助我们把程序中的代码划分成模块化的部分,使得代码更加清晰易读。

定义函数使用关键字function,例如:

<!-- 定义函数 --><script>function greet(name) {     alert(\Hello, \ + name);}</script><!-- 调用函数 --><script>greet(\Alice\</script>

这段代码会弹出一个对话框,内容为“Hello, Alice”。我们可以看到函数greet()接收一个参数name,并在函数内部使用这个参数拼接字符串并弹出对话框。

数组

数组是一种常见的数据结构,它可以容纳多个值。数组有一个length属性,表示数组中元素的个数。我们可以使用数组下标访问数组中的元素。

定义数组使用方括号[],例如:

<!-- 定义数组 --><script>var arr = [1, 2, 3];alert(arr[1]);</script>

这段代码会弹出一个对话框,内容为“2”。我们可以看到数组arr有三个元素,使用下标1可以访问第二个元素。

指针

指针是一种常见的编程概念,它可以用来指向内存中的某个位置,我们可以通过指针访问该位置上的数据。在JavaScript中,我们可以使用对象引用实现指针的功能。

定义对象使用{ },例如:

<!-- 定义对象 --><script>var obj = { name: \Alice\ age: 20};alert(obj.name);</script>

这段代码会弹出一个对话框,内容为“Alice”。我们可以看到对象obj有两个属性,使用.符号可以访问属性值。

总结

在程序设计基础第九章中,我们学习了函数、数组、指针等高级编程概念。函数可以帮助我们模块化程序代码,使得代码更加清晰易读;数组是一种常见的数据结构,可以容纳多个值;指针可以用来指向内存中的某个位置,实现对该位置上数据的访问。

掌握这些高级编程概念可以让我们写出更加高效、优美的代码,提高自己的编程水平。

学习通程序设计基础_9

在学习通的程序设计基础第九章中,我们学习了一些高级的编程概念,如函数、数组、指针等等。这些概念对于我们写出更加高效、优美的代码非常有帮助。

函数

函数是一段可以重复利用的程序代码,它接受输入参数并返回输出结果。函数可以帮助我们把程序中的代码划分成模块化的部分,使得代码更加清晰易读。

定义函数使用关键字function,例如:

<!-- 定义函数 --><script>function greet(name) {     alert(\Hello, \ + name);}</script><!-- 调用函数 --><script>greet(\Alice\</script>

这段代码会弹出一个对话框,内容为“Hello, Alice”。我们可以看到函数greet()接收一个参数name,并在函数内部使用这个参数拼接字符串并弹出对话框。

数组

数组是一种常见的数据结构,它可以容纳多个值。数组有一个length属性,表示数组中元素的个数。我们可以使用数组下标访问数组中的元素。

定义数组使用方括号[],例如:

<!-- 定义数组 --><script>var arr = [1, 2, 3];alert(arr[1]);</script>

这段代码会弹出一个对话框,内容为“2”。我们可以看到数组arr有三个元素,使用下标1可以访问第二个元素。

指针

指针是一种常见的编程概念,它可以用来指向内存中的某个位置,我们可以通过指针访问该位置上的数据。在JavaScript中,我们可以使用对象引用实现指针的功能。

定义对象使用{ },例如:

<!-- 定义对象 --><script>var obj = { name: \Alice\ age: 20};alert(obj.name);</script>

这段代码会弹出一个对话框,内容为“Alice”。我们可以看到对象obj有两个属性,使用.符号可以访问属性值。

总结

在程序设计基础第九章中,我们学习了函数、数组、指针等高级编程概念。函数可以帮助我们模块化程序代码,使得代码更加清晰易读;数组是一种常见的数据结构,可以容纳多个值;指针可以用来指向内存中的某个位置,实现对该位置上数据的访问。

掌握这些高级编程概念可以让我们写出更加高效、优美的代码,提高自己的编程水平。



Ɣ回顶部