中国大学C语言程序设计(重修)章节答案(mooc完整答案)

会计从业答案2024-05-19 07:14:4593301抢沙发
中国大学C语言程序设计(重修)章节答案(mooc完整答案)摘要: 第1次课 程序设计与C语言1.1 程序设计语言及其发展随堂测验1、计算机能直接执行的程序是用何种程序设计语言编写的?A、C语言B、机器语言C、汇编语言D、C++2、C语言源程序是用编译方式进行翻译的。 ...

中国大学C语言程序设计(重修)章节答案(mooc完整答案)

第1次课 程序设计与C语言

1.1 程序设计语言及其发展随堂测验

1、中国整答计算机能直接执行的大学程序是用何种程序设计语言编写的?
A、C语言
B、语言程机器语言
C、序设修章汇编语言
D、计重节答C++

2、案m案C语言源程序是中国整答用编译方式进行翻译的。

1.2 C语言的大学发展及其特点随堂测验

1、下列哪种程序设计语言能编写系统软件?
A、语言程Fortran
B、序设修章VB
C、计重节答C
D、案m案JAVA

1.3 简单的中国整答C程序介绍随堂测验

1、C程序中main函数的大学位置是:
A、必须在程序的语言程开始。
B、必须在程序的最后。
C、可以任意位置。
D、必须在程序的中间位置。

2、C程序的执行总是从:
A、第1个函数开始执行。
B、main函数开始执行。
C、最后1个函数开始执行。
D、中间函数开始执行。

3、1个C程序可以由1个或多个函数构成,但必须有1个函数名为main。

4、语句的结束标志是冒号“:”

5、C程序中1条语句必须写在一行。

1.4 C程序的上机步骤随堂测验

1、C语言源程序的扩展名是:
A、.obj
B、.exe
C、.doc
D、.c

2、C语言程序上机调试步骤是:
A、编写源程序、编译、连接、运行。
B、编写源程序、编译、运行。
C、编写源程序、连接、运行。
D、编写源程序、运行。

第1次课 程序的数据描述——基本数据类型

2.1 C语言基本元素随堂测验

1、正确的用户标识符是:
A、6a
B、_int
C、a-b
D、char

2、不正确的用户标识符是:
A、stu_no
B、Int
C、a1.
D、_char

3、不正确的数据类型关键字是:
A、float
B、char
C、double
D、integer

4、用户标识符开头必须是:
A、数字
B、字母
C、任意字符
D、下划线

2.2 C语言数据类型随堂测验

1、C语言基本数据类型包括:
A、整型、实型、逻辑型
B、整型、实型、字符型
C、整型、字符型、逻辑型
D、整型、实型、字符串型

2.3 常量和变量随堂测验

1、下列不能正确定义变量并给变量赋值的是:
A、int a,b; a=b=6;
B、int a=5,b=5;
C、int a=5,b; b=5;
D、int a=b=5;

2、C语言中常量是没有类型之分的。

3、在程序运行期间,变量可以多次被赋值。

4、C程序中变量可以不定义而直接使用。

5、在程序运行过程中其值不能被改变的量称为:

2.4 整型数据随堂测验

1、C语言中整型数据在内存中的存放形式是:
A、原码
B、反码
C、补码
D、ASCII码

2、整型数据类型关键字是:.
A、double
B、unsigned
C、char
D、int

3、不合法的整型常量是:
A、12345
B、068
C、0xabc
D、0147

4、1个有符号短整型数的最大正数是:

5、1个无符号短整型数的最大正数是:

2.5 实型数据随堂测验

1、不正确的实型常量是:
A、0.5
B、.5
C、5.0
D、5

2、下列C语言合法的实型数据类型关键字是:
A、int
B、float
C、char
D、Double

3、下面四个选项中,均是不合法的浮点数的选项是:
A、160. 0.12 e3
B、123 2e4.2 .e5
C、-.18 23e4 0.
D、-e3 .234 1e3

4、下面四个选项中,均是合法浮点数的选项是:
A、+1e+1 5e一9 03e2
B、-.60 12e-4 -e5
C、123e 1.2e-.4 +2e-1
D、-e3 .8e4 5.e-0

5、合法的实型常量是:
A、.2e5
B、2.5e4.5
C、4e-2
D、e3

2.6 字符型数据随堂测验

1、字符数据类型关键字是:
A、string
B、c
C、char
D、CHAR

2、下面4个选项中,均是合法的转义字符选项是:
A、"\'" '\\' '\n'
B、'\\' '\017' '\"'
C、'\018' '\f' 'xab'
D、'\\0' '101' 'xlf'

3、下面正确的字符常量是:
A、"a"
B、'\\''
C、'W'
D、''

4、下面不正确的字符串常量是:
A、'abc'
B、"12\7812"
C、"0"
D、""

5、字符串“ab\108g”在内存中占的字节数是:
A、8
B、7
C、6
D、5

6、字符型数据在内容中占的字节数是:

7、'a'在内存中占的字节数是:

8、"a"在内存中占的字节数是:

第1次课 程序的数据运算

3.1 运算符与表达式随堂测验

1、在C语言中,要求运算符两侧的运算对象必须是整型数据的运算符( )。
A、/
B、++
C、!=
D、%

2、下列运算符优先级最高的是( )。
A、关系运算符
B、赋值运算符
C、算术运算符
D、逻辑运算符

3、根据运算对象个数,运算符可以分为( )。
A、单目运算符
B、双目运算符
C、三目运算符
D、四目运算符

4、赋值运算符的结合性为左结合。()

5、单目运算符、赋值运算符和条件运算符均为右结合性。( )

3.2 算术运算随堂测验

1、若有代数式,则不正确的C语言表达式是( )
A、a/b/c*e*3
B、3*a*e/b/c
C、3*a*e/b*c
D、a*e/c/b*3

2、在C语言中,如果算术运算符(/)的运算对象中有一个是实型,则结果为双精度实型。()

3、在C语言中, 用算术运算符%求两个数相除的余数,要求两侧的运算对象必须为 数据。

3.3 赋值运算随堂测验

1、下列选项中符合C语言语法的赋值表达式是( )。
A、a=b+c=3
B、a=(b=5,c=b+6)
C、a=b=5,c=b+2
D、a-=4+b=c+2

2、已知各变量的类型说明如下:int a=2, b=5; double y=8.5; 则以下符合C语言语法的表达式是( )。
A、a+=a-=(b=2)*(a=8)
B、a=b/3=8
C、y%3
D、y=float (a)

3、已知ch是字符型变量,下面正确的赋值语句是
A、ch='\034';
B、ch= '34';
C、ch='3'+'4';
D、ch=3+4;

4、已知“int x=6;”,则执行语句“x+=x-=x*x;”后x的值是 。

5、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为 ,n的值为 。

3.4 自增和自减运算及强制类型转换随堂测验

1、当c的值不为0时,以下能将c的值赋给变量a, b 的是( )。
A、c=b=a
B、(a=c) || (b=c)
C、(a=c) && (b=c)
D、a=c=b

2、若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( )。
A、x%2==1
B、x%2
C、!(x%2)
D、!(x%2==0)

3、C语言中用 表示逻辑“假”。

4、为表示关系x≥y≥z,应使用C语言表达式 。

5、若有定义“int a=2,b=3;float x=3.5,y=2.5;”则表达式“(float)(a+b)/2+(int)x%(int)y”的值为 。

第1次课 编程练习

1、判断1个五位正整数是否是对称数。

2、键盘输入一个3位的正整数m,输出由该整数各位上的数字组成的最小数三位数。

3、计算分段函数的值。

4、求三个数中的最大者。

第1次课 顺序结构程序设计

4.1 程序的基本结构随堂测验

1、任何复杂的程序都是由逆序结构、选择结构、循环结构这三种结构构成的。

4.2 C语句概述随堂测验

1、C语言中,可将一系列语句置于一对( )之间从而构成复合语句。
A、尖括号"< >"
B、圆括号"( )"
C、花括号"{ }"
D、方框号"[ ]"

2、C语言空语句是由一个( )构成的。
A、冒号":"
B、分号";"
C、逗号","
D、句号"."

4.3 字符数据输入输出随堂测验

1、函数putchar(65) 的功能是向终端输出( )。
A、6
B、65
C、有编译错误
D、A

2、有如下程序段: char c1,c2; c1=getchar(); c2=getchar(); printf("%c%c",c1,c2); 运行程序时,从键盘输入1 65,则输出结果为( )。
A、16
B、1
C、1 6
D、1 A

4.4 数据格式化输入输出随堂测验

1、若已定义 int a=11; 执行以下语句后的输出结果是( )。 printf("a=%d,a=%o,a=%x\n",a,a,a) ;
A、a=11, a=11, a=b
B、a=11, a=13, a=b
C、a=11, a=13, a=c
D、a=11, a=12, a=13

2、已有如下定义和输入语句: char c1,c2; int x; scanf("%c%d%c",&c1,&x,&c2); 若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是( )。
A、K 9H
B、K 9 H
C、K9 H
D、9KH

3、若有定义 int a=8,b=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( )。
A、printf("a*b=%d\n",a*b);
B、printf("a*b=a*b\n");
C、printf("%d*%d=a*b\n",a,b);
D、printf("%d*%d=%d\n",a,b,a*b);

4、已有定义 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是( )。
A、scanf("%c",&s) ;
B、scanf("%d",&s) ;
C、scanf("%u",&s) ;
D、scanf("%lf",&s) ;

5、若有定义:int a; float x; 则下面正确的输入函数调用语句是( )。
A、scanf("%f%d",&a,&x);
B、scanf("%f%d",a,x);
C、scanf("%d%f",&a,&x);
D、scanf("%d%f",a,x);

第1次单元测验

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

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

3、以下叙述不正确的是:
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面

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

5、若x,i,j和k都是int型变量,则执行下面表达式后x的值为 。 x=(i=4,j=16,k=32)
A、4
B、16
C、32
D、52

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

7、下列四组选项中,均不是C语言关键字的选项是:
A、define IF type
B、getc char printf
C、include scanf case
D、while go pow

8、下面四个选项中,均是不合法的用户标识符的选项是:
A、A P_0 do
B、float 1a0 _A
C、b-a if int
D、-123 temp INT

9、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
A、必须为字母
B、必须为下划线
C、必须为字母或下划线
D、可以是字母,数字和下划线中任一种字符

10、下面四个选项中,均是合法整型常量的选项是:
A、160
B、01a
C、986,012
D、4.0

11、下面四个选项中,均是不合法的浮点数的选项是:
A、160. 0.12 e3
B、123 2e4.2 .e5
C、.18 123e4 0.
D、-e3 .234 1e3

12、下面四个选项中,均是合法浮点数的选项是:
A、+le+1 5e-9.4 03e2
B、-.60 12e-4 -8e5
C、123e 1.2e-.4 +2e-1
D、-e3 .8e4 5.e-0

13、下面正确的字符常量是:
A、"a"
B、'\\''
C、'W'
D、''

14、下面不正确的字符串常量是:
A、'abc'
B、"12\12"
C、"0"
D、""

15、若有如下代数式,则不正确的C语言表达式是:
A、a/b/c*e*3
B、3*a*e/b/c
C、3*a*e/b*c
D、a*e/c/b*3

16、已知各变量的类型说明如下: int k,a,b; unsigned long w= 5; double x=1.42; 则以下不符合C语言语法的表达式是:
A、k=(a=2,b=3,a+b)
B、x%(-3)
C、w+=2
D、a+= a-=(b=4)*(a=3)

17、已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是:
A、a+=a-=(b= 4)*(a=3)
B、a=a*3=2
C、x% i
D、y=f1oat(i)

18、以下不正确的叙述是:
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

19、以下正确的叙述是:
A、在C程序中,每行中只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C、在C程序中,无论是整数还是实数,都能被准确无误地表示
D、在C程序中,%是只能用于整数运算的运算符

20、以下符合C语言语法的赋值表达式是:
A、d=9+e+f=d+9
B、d=(9+e,f=d+9)
C、d=9+e,e++,d+9
D、d=9+e++=d+7

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

22、若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum的值为:
A、7
B、8
C、9
D、10

23、若有说明语句:char c='\72' 则变量:
A、包含1个字符
B、包含2个字符
C、包含3个字符
D、说明不合法,c的值不确定

24、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是:
A、2.5
B、2.75
C、3.5
D、0.0

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

26、在C语言中, char型数据在内存中的存储形式是:
A、补码
B、反码
C、原码
D、ASCII码

27、设C语言中,一个short int型数据在内存中占2个字节,则unsigned short int型数据的取值范围为:
A、0~255
B、0~32767
C、0~65535
D、0~2147483647

28、若有以下定义,则能使值为3的表达式是: int k= 7,x =12;
A、x%=(k%= 5)
B、x%=(k-k%5)
C、x%=k- k%5
D、(x%=k)-(k%=5)

29、若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:
A、scanf("%d%x,%e",&x,&y,&z);
B、scanf("%2d*%d%f",&x,&y,&z );
C、scanf("%x%o%f",&x,&y,&z);
D、scanf("%x%o%d",&x,&y,&z);

30、已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是: int a1,a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A、10A 20B< CR>
B、10 A 20 B<CR>
C、10A20<CR> B
D、10A20 B<cR>

31、有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345 678(回车),则x 的值为:
A、12345
B、123
C、45
D、345

32、已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345 678(回车),则y 的值为:
A、无定值
B、45.000000
C、678.000000
D、123.000000

33、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是: int a1,a2; char c1,c2; scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);
A、1020AB<CR>
B、10 20<CR>AB<CR>
C、10 20 AB<CR>
D、10 20AB<CR>

34、根据定义和数据的输入方式,输入语句的正确形式为: 已有定义: float fl,f2; 数据的输入方式: 4.52 3. 5
A、scanf("%f,%f",&f1,&f2);
B、scanf("%f%f",&f1,&f2 );
C、scanf("%d%f",&f1,&f2);
D、scanf("%f%x",&f1,&f2);

35、阅读以下程序,当输入数据的形式为25,13,10<CR>正确的输出结果为: #include<stdio.h> int main() { int x,y,z scanf("%d%d%d",&x,&y,&z ); printf("x+y+z=%d\n" ,x+y+z); return 0; }
A、x +y+z=48
B、x +y+z=35
C、x +z=35
D、不确定值

36、有输入语句: scanf("a= %d,b= %d,c=%d",&a,&b,&c); 为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是:
A、132(回车)
B、1,3,2(回车)
C、a=1b=3c=2(回车)
D、a=1,b =3,c =2(回车)

37、已知ch是字符型变量,下面不正确的赋值语句是:
A、ch='a+b';
B、ch='\0';
C、ch='7'+'9';
D、ch=5+9;

38、已知ch是字符型变量,下面正确的赋值语句是:
A、ch= '123';
B、ch= '\n';
C、ch= '65';
D、ch="\";

39、若有以下定义,则正确的赋值语句是: int a=0,b=0;float x=0;
A、a=1,b=2 ;
B、b++;
C、a= b= 5
D、b= int(x);

40、x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x 、y 和z的值是:
A、x=10 y=15 z=10
B、x=10 y=10 z=10
C、x=10 y=10 z=15
D、x=10 y=5 z=10

41、在C程序中,注释说明只能位于一条语句的后面。

42、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为7。

43、在C 程序中,逗号运算符的优先级最低。

44、在C语言中char型数据在内存中的存储形式为ASCII码。

45、若有int x , 则 (x+1)++ 是一个合法的c语言表达式。

46、每个语句和数据定义的最后都必须有分号。

47、字符 '\0' 是字符串的结束标记,其ASCII代码为0。

48、算述运算*、/、+和一具有相同的优先级。

49、C语言认为变量number和NuMbEr是相同的。

50、若 int i=10,j=2; 则执行完 i*=j+8; 后 i 的值为 28 。

51、在 C 语言中,"A" 和 'A' 等价。

52、表达式 4/7 和 4.0/7 的值相等。

53、设x的值为15,n的值为2,则表达式 x%=(n+=3) 运算后x的值是( )。

54、设 (k=a=5,b=3,a*b),则表达式的值为( )。

55、若a是int型变量,则计算表达式 a=25%3/3 后 a 的值为( )。

56、已知 i=5.6; 语句 a=(int)i; 执行后变量 i 的值是( )。

57、若int x=6;则 x+=x-=x*x 表达式最后x的值是( )。

58、执行下列语句: int a=1, b=2; a=a+b; b=a-b; a=a-b; printf("%d%d", a,b ); 输出结果是( )。

59、字符串常量 "ab\n823c" 在内存中的字节数是( )。

60、在C语言的赋值表达式中,赋值号左边必须是( )。

第1次课 选择结构程序设计

5.1 关系运算符和关系表达式随堂测验

1、下列运算符中优先级最高的是:
A、=
B、+
C、++
D、<

2、下列运算符中优先级最低的是:
A、=
B、+
C、++
D、>

3、下列运算符中结合方向与其他不同的是:
A、=
B、+
C、<=
D、>

5.2 逻辑运算符和逻辑表达式随堂测验

1、下列运算符中优先级最高的是:
A、=
B、+
C、*
D、&&

2、下列运算符中优先级最低的是:
A、==
B、+
C、++
D、||

3、下列运算符中结合方向与其他不同的是:
A、!
B、&&
C、||
D、+

5.3 if 语句随堂测验

1、下列符合c语法的if语句是:
A、if 3>5 then printf("Ok!");
B、if 3>5 printf("Ok!")
C、if (3>5) then printf("Ok!");
D、if (3>5) printf("Ok!");

2、在c语言中,叙述正确的是:
A、if语句可以不以 分号;结尾
B、if语句必须要有else
C、if后面小括号里可以加分号;
D、if语句不一定要有else

3、下列符合c语法的if语句是:
A、if (3>5;) printf("Ok!");
B、if (3>5) then printf("Ok!");
C、if (3>5) printf("Ok!")
D、if (3>5) printf("Ok!");

5.4 switch语句随堂测验

1、在c语言中,叙述正确的是:
A、switch语句可以没有default分支
B、switch语句必须有default分支
C、switch语句每个分支必须执行
D、case与冒号之间可以是条件表达式

2、case与冒号之间可以是浮点类型数据

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

5.5 条件运算符和条件表达式随堂测验

1、下列运算符中优先级最低的是:
A、==
B、+
C、++
D、? :

2、下列运算符中结合方向与其他不同的是:
A、? :
B、+
C、&&
D、||

3、条件运算符符可以嵌套使用。

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

1、以下代码输出结果是: if(3>2>1)printf("ok"); else printf("no");
A、ok
B、no
C、不确定
D、代码错误,不能输出

2、以下代码输出结果是: int x=10,y=20,z=30; if(x||(y=50)>z)printf("y=%d",y); else printf("y=%d",y);
A、y=20
B、y=50
C、不确定
D、代码错误,不能输出

3、以下代码输出结果是: char x='f'; if('A'<x<'Z')printf("ok"); else printf("no");
A、ok
B、no
C、不确定
D、代码错误,不能输出

第2次课 循环结构程序设计

6.1 while语句随堂测验

1、下列程序的输出结果是__ int main() { int t=98765,x; while(t!=0) { x=t%10; printf("%d",x); t/=10; } return 0; }
A、98765
B、56789
C、57689
D、程序不停机

2、循环条件表达式不仅限于关系表达式和逻辑表达式,可以是任意类型的表达式。

3、while语句的循环体,可能一次也不被执行。

4、如果循环条件表达式的值__,表示条件为真;如果表达式的值为___,表示条件为假。

5、当循环体包含一条以上的语句时,必须用__括起来,组成复合语句。

6、本程序执行时出现__ int main() { int k=1,sum=0; while(k<=10) sum=sum+k; k++; printf("%d\n",sum); return 0; }

7、下列程序段中的循环执行次数为__ int x=10; while(x) x=x/2;

8、k=100; while(k--); printf("%3d\n",k);

6.2 do…while语句随堂测验

1、int main() { int t=98765,x; do { x=t%10; printf("%d",x); t/=10; }while(t!=0) return 0; }
A、98765
B、56789
C、57689
D、程序不停机

2、若某do-while的循环体由3条语句组成,这3条语句不必用大括号“{ }”括起来。

3、while语句与do-while语句执行的过程相同。

4、do-while语句的循环体,可能一次也不被执行。

5、下列程序段的输出结果是__ int a=3,b=15; do { a+=b;b=b/2; }while(b>1); printf("%d\n",a);

6、以下代码片段执行结束后,变量i的值是__ int i = 1; do{ i += 5; }while (i<17);

6.3 for语句随堂测验

1、以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
A、for(i=0;i<10;i++ ) { ...}
B、for(i=0;i<10;++i ) { ...}
C、for(i=0;i++<10; ) { ...}
D、for(i=0;i<=9;i++ ) { ...}

2、下列程序段的输出结果是__ int k=12; for(;k>8;k--); if(k%2==0) printf("%d",k);
A、1210
B、12
C、8
D、无限循环

3、for(表达式1;表达式2;表达式3)中的3个表达式都可以省略,但用于分割3个表达式的两个分号“;”不能省略。

4、以下代码段的输出是__ for(int i=10;i>1;i/=2 ) { printf("%d ", i++); }

5、下列程序的输出结果是__ int main() { int m; for(m=6;m<10;m++,m++) printf("**%d",m); return 0; }

6.4 循环嵌套随堂测验

1、以下代码段的输出是__ int i,b,k=0; for(i=1;i<=5;i++ ) { b=i%2; while(b-->=0) k++; } printf("%d,%d", k,b);
A、3,-1
B、8,-1
C、3,0
D、8,-2

2、下列程序段的输出结果是__ int a,b,m; for(a=5;a>=1;a--) { m=0; for(b=a;b<=5;b++) m=m+a*b; } printf("%d\n",m);
A、30
B、15
C、20
D、10

3、while、do-while和for三种循环可以互相嵌套。

4、双重循环的执行过程是外层循环的循环体执行一次,内层循环执行一遍。

5、以下代码段的输出是__ int i,b,k=0; for(i=1;i<=5;i++ ) { b=i%2; do k++; while(b-->=0) ; } printf("%d,%d", k,b);

6、下列程序的输出结果是__ int a,b,m; m=0; for(a=5;a>=1;a--) { for(b=a;b<=5;b++) m=m+a*b; } printf("%d\n",m);

6.5 辅助控制语句随堂测验

1、下面代码段的输出是__ int c=5,k; for(k=1;k<3;k++) switch(k) { default:c+=k; case 2: c++;break; case 4: c+=2;break; } printf("%d\n",c);
A、10
B、8
C、6
D、12

2、break语句只能用于__中。
A、while语句
B、do-while语句
C、for语句
D、switch语句

3、continue语句只能用于__中。
A、while语句
B、do-while语句
C、for语句
D、switch语句

4、下面代码段的输出是__ int k,m; for(k=0;k<10;k++ ) { m=k*k;; if(m>50) break; } printf("%d,%d\n",k,m);

5、下面代码段的输出是__ int k,m; for(k=0;k<10;k++ ) { if(m>50) continue; m=k*k; } printf("%d,%d\n",k,m);

6.6 循环结构实例随堂测验

1、百鸡百钱问题。有一百只鸡,价值一百文钱,其中公鸡五文钱一只,母鸡三文钱一只,三只鸡雏一文钱,问公鸡、母鸡和鸡雏各多少只?现用枚举法求解,假设公鸡有x只、母鸡有y只,鸡雏有z只,程序如下: #include <stdio.h> int main( ) { int x,y,z,k=0; for(x=0;x<100;x++) for(y=0;y<=100;y++) for(z=0;z<=100;z++) if(x+y+z==100&&x*5+y*3+z/3==100) { k++; printf("Plan %d is x:%-3d y:%-3d z:%-3d\n",k,x,y,z); } return 0; } 此程序可以求出正确的解。

2、百鸡百钱问题。现用枚举法求解,假设公鸡有x只、母鸡有y只,鸡雏有z只,程序如下: #include <stdio.h> #include <math.h> int main( ) { int x,y,z,k=0; for(x=0;x<100;x++) for(y=0;y<=100;y++) { z=100-x-y; if(z>=0&&z%3==0) { if(fabs(x*5+y*3+z/3-100)<1e-3) { k++; printf("Plan %d is x:%-3d y:%-3d z:%-3d\n",k,x,y,z); } } } return 0; } 此程序可以求出正确的解。

3、计算1!+2!+3!+4!+5!编程如下,程序中下划线处应填写__。 #include <stdio.h> void main( ) { int i; int t=__,s=__; for(i=1;i<6;i++) { t=t*i; s=s+t; } printf("1!+2!+3!+4!+5!=%d\n",s); }

第2次单元测验

1、下列程序的输出结果是__ 。 int main() { int t=98765,x; while(t!=0) { x=t%10; printf("%d",x); t/=10; } return 0; }
A、98765
B、56789
C、57689
D、程序不停机

2、下列程序的输出结果是__ 。 int main() { int t=98765,x; do { x=t%10; printf("%d",x); t/=10; }while(t!=0); return 0; }
A、98765
B、56789
C、57689
D、程序不停机

3、以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
A、for(i=0;i<10;i++ ) { ...}
B、for(i=0;i<10;++i ) { ...}
C、for(i=0;i++<10; ) { ...}
D、for(i=0;i<=9;i++ ) { ...}

4、下列程序段的输出结果是__ int k=12; for(;k>8;k--); if(k%2==0) printf("%d",k);
A、1210
B、12
C、8
D、无限循环

5、以下代码段的输出是__ int i,b,k=0; for(i=1;i<=5;i++ ) { b=i%2; while(b-->=0) k++; } printf("%d,%d", k,b);
A、3,-1
B、8,-1
C、3,0
D、8,-2

6、下列程序段的输出结果是__ int a,b,m; for(a=5;a>=1;a--) { m=0; for(b=a;b<=5;b++) m=m+a*b; } printf("%d\n",m);
A、30
B、15
C、20
D、10

7、下面代码段的输出是__ int c=5,k; for(k=1;k<3;k++) switch(k) { default:c+=k; case 2: c++;break; case 4: c+=2;break; } printf("%d\n",c);
A、10
B、8
C、6
D、12

8、关于双重循环的执行过程,以下说法正确的是__。
A、外层循环的循环体执行一次,内层循环执行一遍。
B、外层循环的循环体执行一次,内层循环执行一次。
C、外层循环的循环体执行一遍,内层循环执行一次。
D、外层循环的循环体执行一遍,内层循环执行一遍。

9、9、计算1!+2!+3!+4!+5!编程如下,程序中下划线处应填写__。 #include <stdio.h> void main( ) { int i; int t=__,s=__; for(i=1;i<6;i++) { t=t*i; s=s+t; } printf("1!+2!+3!+4!+5!=%d\n",s); }
A、0 0
B、1 0
C、0 1
D、1 1

10、下面代码段的输出是__ int k,m; for(k=0;k<10;k++ ) { m=k*k; if(m>50) break; } printf("%d,%d\n",k,m);
A、8,64
B、9,81
C、10,64
D、10,81

11、下面代码段的输出是__ int k,m; for(k=0;k<10;k++ ) { if(m>50) continue; m=k*k; } printf("%d,%d\n",k,m);
A、8,64
B、9,81
C、10,64
D、10,81

12、假设有定义: int k; 下面程序段编译运行的情况是___。 for (k=1; k; k++) printf ("%d ", k);
A、能运行, 是死循环
B、能运行, 正常结束
C、编译错误
D、以上说法都不对

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

14、以下哪个for语句是错误的__
A、for(i=0;j<10;j++);
B、for(i=0;j=0;i<10;i++);
C、for(i=0;i<10;i--);
D、for(;;);

15、while(x%3) a++;中的表达式x%3等价于____
A、x%3!=0
B、x%3==1
C、x%3==2
D、x%3==0

16、while (!x&&!y)中的循环条件表达式等价于__
A、!(x!=0||y!=0)
B、x=0 && y=0
C、!(x==0 && y==0)
D、!(x==0 || y==0)

17、在代码:while(!e)中,!e等价于__
A、e != 1
B、e == 1
C、e!=0
D、e == 0

18、对于以下代码: int i; for(i=0;i<10;i++) printf("%d",i); for循环结束后,i的值是__
A、i不再存在了
B、11
C、10
D、9

19、以下代码片段的输出是__ int i,j=4; for(i=j; i<=2*j; i++ ) { switch ( i/j ) { case 0: case 1: printf("*"); break; case 2: printf("#"); } }
A、****#
B、***#
C、*#
D、****##

20、对于以下代码: int i=6; do{ printf("%d", i--); }while(0); 正确的是__
A、打印不出东西
B、打印出5
C、因为while(0),无法编译
D、打印出6

21、对于以下代码: int i=6; do{ printf("%d", i--); }while(i--); 正确的是__
A、输出642
B、输出6420
C、输出6420-2
D、输出6420-2-4...,程序无法停机

22、对于以下代码: int i=6; do{ printf("%d", i--); }while(i); 最后一个输出的值是__
A、0
B、1
C、2
D、3

23、以下代码片段的输出是__ int i,j=4; for(i=j; i<=2*j; i++ ) { switch ( i%j ) { case 0: case 1: printf("*"); break; case 2: printf("#"); } }
A、****#
B、***#
C、**#*
D、****##

24、在代码:while(e)中,e等价于__
A、e != 1
B、e == 1
C、e!=0
D、e == 0

25、在代码:while(e==0)中,e等价于__
A、e != 1
B、e == 1
C、e!=0
D、!e

26、在代码:while(e||0)中,e等价于__
A、e != 1
B、e == 1
C、e!=0
D、e == 0

27、在代码:while(e&&1)中,e等价于__
A、e != 1
B、e == 1
C、e!=0
D、e == 0

28、在代码:while(e||1)中,e等价于__
A、e取任何值
B、e == 1
C、e!=0
D、e == 0

29、若int k;while(k%4)中,使循环条件不成立的是__
A、k=0
B、k=1
C、k=2
D、k=3

30、设有程序段int k=5; while(k=0) k=k-1;则下面描述中正确的是__
A、while循环执行5次
B、循环是无限循环
C、循环体语句一次也不执行
D、循环体语句执行一次

31、设有程序段int k=5; do k=k-1; while(k=0);则下面描述中正确的是___
A、while循环执行5次
B、循环是无限循环
C、循环体语句一次也不执行
D、循环体语句执行一次

32、有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s);则
A、运行程序段后输出0
B、运行程序段后输出1
C、程序段中的控制表达式是非法的
D、程序段执行无限次

33、下面程序段的运行结果是 int a,b,c; a=1;b= 2;c=2; while(--b,c--,a--) printf("%d,%d,%d",a,b,c);
A、1,2,0
B、2,1,0
C、1,2,1
D、0,1,1

34、下面程序段的运行结果是: x=y=0; while(x<15) y++,x+=++y; printf("%d,%d",y,x);
A、20,7
B、6,12
C、20,8
D、8,20

35、下面程序段的运行结果是 int n=0; while(n++<=2);printf("%d",n);
A、2
B、3
C、4
D、有语法错

36、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循 环,请选择填空: int a,b,t; scanf("%d%d",&a,&b); while( ___ ) { if(a>b) { t=a;a=b;b=t;} printf("%d,%d",a,b); scanf("%d%d",&a,&b); }
A、!a=b
B、a!=b
C、a==b
D、a=b

37、下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n, 并输出m、n中的较大者,请选择填空: int m=0,n=0; char c; while((__)!='\n') { if(c>='A'&& c<='Z') m++ ; if(c>='a'&& c<='z') n++; } printf("%d\n",m)
A、scanf("%d",c)
B、getchar()
C、c=getchar()
D、scanf("%c",c)

38、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z 变成B. 请选择填空 char c; while((c=getchar())!='\n') { if(c>= 'a'&&c<='z') c-= 30; if(c>'z'&&c<='z'+ 2) ___ ; printf("%c",c); }
A、c='B'
B、c='A'
C、c-=26
D、c=c+26

39、以下描述中正确的是__
A、由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B、do一while循环由do开始,用while结束,在while(表达式)后面不能写分号
C、在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作
D、do一while循环中,根据情况可以省略while

40、若有如下语句 int x=3; do { printf("%d\n",x -=2);} while(!(--x)); 则上面程序段__
A、输出的是1
B、输出的是1和-2
C、输出的是3和0
D、是死循环

41、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。 #include main() { int n,sum=0; n=2345; do { sum=sum+(n%10)*(n%10); n=__; }while(n); printf("sum=%d",sum);}
A、n/1000
B、n/100
C、n/10
D、n%10

42、下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。 main() { 1ong int num; scanf("%ld",&num); do { if(__) printf("%ld",num); scanf("%ld",&num); }while(!num==0); }
A、num%100/10==3
B、num/100%10==3
C、num%10/10==3
D、num/10%10==3

43、下面程序的运行结果是__ main() { int y=10; do{ y--;}while(--y); printf("%d\n",y--); }
A、-1
B、1
C、8
D、0

44、下面有关for循环的正确描述是__
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来

45、若i为整型变量,则以下循环执行次数是__ for (i=2;i==0;) printf("%d",i-- );
A、无限次
B、0次
C、1次
D、2次

46、以下不是无限循环的语句为:
A、for (y=0,x=1;x > ++y;x =i++) i=x ;
B、for (;; x++=i);
C、while(1){ x ++;}
D、for(i=10; ;i--) sum+=i;

47、下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空. main() { int i,sum= 0; for(i=1;i<=50;i++) if(__) sum+=i; printf("%d",sum); }
A、(int)(i/7)==i/7
B、(int)i/7==i/7
C、i%7= 0
D、i%7==0

48、下面程序的功能是计算 1至10之间的奇数之和及偶数之和。请选择填空; main() { int a,b,c,i; a=c=0; for(i=0;i<=10;i+=2) { a+=i; ___; c+=b; } printf("偶数之和=%d\n",a); printf("奇数之和=%d\n",c-11); }
A、b=i--
B、=i+1
C、b=i++
D、b=i-1

49、下面程序段: 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个非负整数

50、下面程序段: x=3; do { y=x--; if(!y) { printf("x"); continue; } printf("#"); }while (1<=x<=2);
A、将输出##
B、将输出##*
C、是死循环
D、含有不合法的控制表达式

51、与下面程序段等价的是: for(n=100;n<= 200; n++) { if (n%3==0) continue; printf("%4d",n);}
A、for(n=100;(n%3)&& n<=200;n++) printf("%4d",n);
B、for(n=100;(n%3)|| n<=200;n++) printf("%4d",n);
C、for(n=100;n<=200;n++)if(n%3!=0)printf("%4d",n)
D、for(n=100;n<=200; n++) { if(n%3) printf("%4d",n); else continue; break;}

52、下面程序的运行结果是: main() { int i,j,a=0; for (i=0;i<2;i++) { for (j=0;j<=4;j++) { if(j%2) break; a++; } a++; } printf("%d\n",a); }
A、4
B、5
C、6
D、7

53、下列运算符中优先级最高的是:
A、=
B、+
C、--
D、<

54、下列运算符中优先级最低的是:
A、+=
B、+
C、++
D、>

55、下列运算符中结合方向与其他不同的是:
A、+=
B、+
C、<=
D、>

56、下列运算符中优先级最高的是:
A、=
B、+
C、!
D、&&

57、下列运算符中优先级最低的是:
A、==
B、+
C、++
D、+=

58、下列符合c语法的if语句是:
A、if 3>5 then printf("Ok!");
B、if 3>5 printf("Ok!")
C、if (3>5) then printf("Ok!");
D、if (3>5) printf("Ok!");

59、下列运算符中优先级最低的是:
A、==
B、+
C、++
D、? :

60、下列运算符中结合方向与其他不同的是:
A、? :
B、+
C、&&
D、||

61、下列运算符中,结合方向是从右至左的是:
A、? :
B、/
C、&&
D、>=

62、以下代码输出结果是: if(5>3>1)printf("ok"); else printf("no");
A、ok
B、no
C、不确定
D、代码错误,不能输出

63、以下代码输出结果是: int x=0,y=20,z=30; if(x||(y=50)>z)printf("y=%d",y); else printf("y=%d",y);
A、y=20
B、y=50
C、不确定
D、代码错误,不能输出

64、以下代码输出结果是: char x='G'; if('Z'>x>'A')printf("ok"); else printf("no");
A、ok
B、no
C、不确定
D、代码错误,不能输出

65、以下代码输出结果是: int x=0,y=20,z=30 if(x||(y=50)>z)printf("y=%d",y); else printf("y=%d",y);
A、y=20
B、y=50
C、不确定
D、代码错误,不能执行

66、C语言中循环语句有__。
A、while语句
B、do-while语句
C、for语句
D、loop语句

67、for(表达式1;表达式2;表达式3)中的3个表达式可被省略的是__。
A、其中1个
B、其中2个
C、3个都可以
D、表达式1和表达式3,表达式2不能省略

68、循环条件表达式可以是__。
A、关系表达式
B、逻辑表达式
C、赋值表达式
D、逗号表达式

69、若int x=2;以下__表达式作为循环条件表达式时表示条件为真。
A、x+2
B、x-2
C、x/2
D、x%2

70、若int x=2;以下__表达式作为循环条件表达式时表示条件为假。
A、x+2
B、x-2
C、x/2
D、x%2

71、以下说法正确的是__。
A、while循环可与do-while循环可相互改写
B、while循环不能改写为for循环
C、while、do-while和for可相互改写
D、以上说法都不对

72、循环体语句可以是__。
A、关系表达式语句
B、空语句
C、赋值表达式语句
D、逗号表达式语句

73、以下说法正确的是__。
A、while语句与do-while语句执行的过程相同。
B、do-while语句的循环体,可能一次也不被执行。
C、while语句的循环体,可能一次也不被执行。
D、do-while语句的循环体,至少执行一次。

74、若int i;while(i%3)中,使循环条件成立的是__
A、i=0
B、i=1
C、i=2
D、i=3

75、在c语言中,叙述正确的是:
A、if后面小括号里可以是任意类型的表达式
B、if语句必须要有else
C、if后面小括号里可以加分号;
D、if语句不一定要有else

76、在c语言中,叙述正确的是:
A、switch语句可以没有default分支
B、switch语句必须有default分支
C、switch语句每个分支必须执行
D、case与冒号之间可以是整型常量

77、循环条件表达式不仅限于关系表达式和逻辑表达式,可以是任意类型的表达式。

78、while语句的循环体,可能一次也不被执行。

79、若某do-while的循环体由3条语句组成,这3条语句不必用大括号“{ }”括起来。

80、while语句与do-while语句执行的过程相同。

81、do-while语句的循环体,可能一次也不被执行。

82、for(表达式1;表达式2;表达式3)中的3个表达式都可以省略,但用于分割3个表达式的两个分号“;”不能省略。

83、while、do-while和for三种循环可以互相嵌套。

84、双重循环的执行过程是外层循环的循环体执行一次,内层循环执行一遍。

85、百鸡百钱问题。有一百只鸡,价值一百文钱,其中公鸡五文钱一只,母鸡三文钱一只,三只鸡雏一文钱,问公鸡、母鸡和鸡雏各多少只?现用枚举法求解,假设公鸡有x只、母鸡有y只,鸡雏有z只,程序如下: #include <stdio.h> int main( ) { int x,y,z,k=0; for(x=0;x<100;x++) for(y=0;y<=100;y++) for(z=0;z<=100;z++) if(x+y+z==100&&x*5+y*3+z/3==100) { k++; printf("Plan %d is x:%-3d y:%-3d z:%-3d\n",k,x,y,z); } return 0; } 此程序可以求出正确的解。

86、百鸡百钱问题。现用枚举法求解,假设公鸡有x只、母鸡有y只,鸡雏有z只,程序如下: #include <stdio.h> #include <math.h> int main( ) { int x,y,z,k=0; for(x=0;x<100;x++) for(y=0;y<=100;y++) { z=100-x-y; if(z>=0&&z%3==0) { if(fabs(x*5+y*3+z/3-100)<1e-3) { k++; printf("Plan %d is x:%-3d y:%-3d z:%-3d\n",k,x,y,z); } } } return 0; } 此程序可以求出正确的解。

87、case与冒号之间可以是逻辑表达式,进行选择

88、switch语句的分支有可能一个都不执行

89、如果循环条件表达式的值__,表示条件为真;如果表达式的值为___,表示条件为假。

90、当循环体包含一条以上的语句时,必须用__括起来,组成复合语句。

91、本程序执行时出现__ int main() { int k=1,sum=0; while(k<=10) sum=sum+k; k++; printf("%d\n",sum); return 0; }

92、下列程序段中的循环执行__次 int x=10; while(x) x=x/2;

93、下列程序段的输出结果是__ k=100; while(k--) printf("%3d\n");

94、下列程序段的输出结果是__ int a=3,b=15; do { a+=b;b=b/2; }while(b>1); printf("%d\n",a);

95、以下代码片段执行结束后,变量i的值是__ int i = 1; do{ i += 5; }while (i<17);

96、以下代码段的输出是__ for(int i=10;i>1;i/=2 ) { printf("%d", i++); }

97、下列程序的输出结果是__ int main() { int m; for(m=6;m<10;m++,m++) printf("**%d",m); return 0; }

98、以下代码段的输出是__ int i,b,k=0; for(i=1;i<=5;i++ ) { b=i%2; do k++; while(b-->=0) ; } printf("%d%d", k,b);

99、下列程序的输出结果是__ int a,b,m; m=0; for(a=5;a>=1;a--) { for(b=a;b<=5;b++) m=m+a*b; } printf("%d\n",m);

100、下面代码段的输出是__ int k,m; for(k=0;k<10;k++ ) { m=k*k;; if(m>50) break; } printf("%d%d\n",k,m);

101、下面代码段的输出是__ int k,m; for(k=0;k<10;k++ ) { if(m>50) continue; m=k*k; } printf("%d%d\n",k,m);

102、在逻辑运算符!,&&,||中,优先级最高的是 。

103、在下列运算符+,+=,++中,优先级最低的是 。

第2次课 同类型数据的处理——数组(一)

7.2 一维数组的定义和引用随堂测验

1、1、以下对一维数组a的定义中正确的是()。
A、char a(10);
B、int a[0..100];
C、int a[5];
D、int k=10;int a[k];

2、2、以下对一维数组的定义中不正确的是()。
A、int y[3]={ 3,5,7,9};
B、char ch2[ ]={ 'x10', 'xa', 'x8'};
C、char ch1[ ]={ '1', '2', '3', '4', '5'};
D、double x[5]={ 6.5,4.0,6.4,8.66,10.0};

3、3、在vc++6.0中,假定一个int型变量占用两个字节,若有定义:int x[10]={ 0,2,4}; 则数组x在内存中所占字节数是()。
A、6
B、9
C、12
D、15

4、4、完善以下程序,填写括号内容: 已有一个已排好序的整型数组,今输入一个整数,要求按原来排序的规律将它插入数组中。例如:原来数组的元素依次为4、6、8、41、56、77、102。若将42插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。 #include <stdio.h> int main() { int a[8]={ 4,6,8,41,56,77,102}; int number,i,j; scanf("%d",&number); if(number>a[6]) a[7]=number; else { for(i=0;i<8;i++) if(a[i]>number) break; for(j=7;j();j--) a[j]=a[j-1]; a[i]=number; } for(i=0;i<8;i++) printf("%6d",a[i]); return 0; }
A、>=i
B、>i
C、>i+1
D、>=i+1

5、5、一般地,一维数组各元素分配在连续地内存单元之中。

7.3 一维数组的应用随堂测验

1、1、以下程序的输出结果是()。 #include<stdio.h> int main() { int m[]={ 1,4,7}; int i; for(i=0;i<3;i++) { printf("%d",m[i]);} return 0; }
A、741
B、471
C、147
D、417

2、2、以下程序输出结果为741,那么循环控制变量i的下限是()。 #include<stdio.h> int main() { int m[]={ 1,4,7}; int i; for(i=2;i>( );i--) printf("%d",m[i]); return 0; }
A、0
B、1
C、-1
D、-2

3、3、以下程序的输出结果是()。 #include<stdio.h> int main() { int m[]={ 1,4,7}; int i; for(i=1;i<=2;i++) printf("%d",m[i]); return 0; }
A、14
B、47
C、41
D、74

4、4、以下程序的输出结果是()。 #include<stdio.h> int main() { int m[] = { 1,4,7 }; int i; m[0] = m[1] + 34; for (i = 0; i <= 2; i++) { m[i] = m[i] / 3; printf("%d", m[i]); } return 0; }
A、1112
B、1212
C、1313
D、1312

5、5、阅读程序选结果 #include<stdio.h> int main() { int i, temp; int a[5] = { 9,6,5,2,1 }; for (i = 0; i<5 / 2; i++) { temp = a[i]; a[i] = a[5 - i - 1]; a[5 - i - 1] = temp; } for (i = 0; i<5; i++) printf("%d", a[i]); return 0; }
A、15269
B、12569
C、96521
D、16952

7.4 二维数组定义和引用随堂测验

1、1、以下对二维数组的定义中正确的是()
A、int a[4][]={ 1,3,2,4,5};
B、int a[][3];
C、int a[][3]= { 1,5,6,3,7,8,2};
D、int a[][]={ { 1,2,3},{ 4,5,6}};

2、2、下列各语句定义了数组,其中哪一个是不正确的()
A、char a[3][10]={ "China","American","Asia"};
B、int x[2][2]={ 1,2,3,4};
C、float x[2][ ]={ 1,2,4,6,8,10};
D、int m[][3]={ 1,2,3,4,5,6,7};

3、3、按照下题选出正确的输出结果 如果有如下定义: int a[3][4]={ { 1, 2, 3, 4}, { 5, 6, 7, 8},{ 9, 10, 11, 12}};,那么a[1][6]元素的结果是()?
A、12
B、11
C、10
D、9

4、4、c程序如下,写出输出结果 #include<stdio.h> int main() { int m[][3]={ 1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++) { printf("%d ",m[k][i]);} }
A、1 4 7
B、2 5 8
C、3 6 9
D、7 8 9

5、5、c语言中,一维数组某一个数组元素等价于一个同数据类型的变量。

7.5 二维数组的应用随堂测验

1、1、完善以下程序达到要求的功能: 先从键盘上输入一个3行3列整型数组的各个元素的值,然后输出主对角线和次对角线元素之和。 #include<stdio.h> int main() { int a[3][3], sum = 0, sum1 = 0; int i, j; printf("Enter data:\n"); for (i = 0; i<3; i++) for (j = 0; j<3; j++) scanf("%d", &a[i][j]); for (i = 0; i<3; i++) { sum = sum + a[i][i]; sum1 = sum1 + a[i][()]; } printf("\nsum=%5d,sum1=%5d\n", sum, sum1); return 0; }
A、2-i
B、2-1
C、i
D、1-i

2、2、输出如下程序的结果: #include <stdio.h> int main() { int a[3][3] = { 1,3,5,7,9,2,4,6 }; int sum = a[0][0], i,j,x, y; for (i = 0; i<3; i++) { for (j = 0; j<3; j++) { if (sum<a[i][j]) { sum = a[i][j]; x = i; y = j; } } } printf("a[%d][%d]=%d", x, y, sum); getchar(); return 0; }
A、a[1][0]=9
B、a[1][1]=9
C、a[1][2]=2
D、a[0][0]=1

3、3、输出如下程序的结果: #include <stdio.h> int main() { int a[3][3] = { { 98,97,99 },{ 100,67,89 },{ 78,89,79 } }; int i, j; float sum1 = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { sum1 = sum1 + a[i][j]; } } printf("%f",sum1/9); return 0; }
A、87.333334
B、87.444443
C、88.333334
D、88.444443

4、4、c语言中,当二维数组越界时,会有错误提示。

5、5、c语言中,二维数组某一个数组元素等价于一个同数据类型的变量。

7.6 数组下标越界访问问题随堂测验

1、1、c程序如下,写出输出结果 #include<stdio.h> int main() { int m[][3] = { 1,4,7,2,5,8,3,6,9 }; int i, j, k = 1; for (i = 0; i<4; i++) { printf("%d", m[k][i]); } return 0; }
A、2583
B、4725
C、8369
D、5836

2、2、c程序如下,写出输出结果 #include<stdio.h> int main() { int m[][3] = { 1,4,7,2,5,8,3,6,9 }; int i, j, k = 0; for (i = 0; i<5; i++) { printf("%d", m[k][i]+2); } return 0; }
A、14725
B、25836
C、36947
D、47958

3、3、c程序如下,写出输出结果 #include<stdio.h> int main() { int m[][3] = { 1,4,7,2,5,8,3,6,9 }; int i, j, k = 0; for (i = 0; i<6; i++) { printf("%d", m[k][i]/2+3); } return 0; }
A、259435
B、356556
C、356557
D、356457

4、4、输出如下程序的结果: #include <stdio.h> int main() { int a[3][3] = { { 98,97,99 },{ 100,67,89 },{ 78,89,79 } }; int i, j=0; float sum = 0; for (i = 0; i < 5; i++) sum = sum + a[j][i]; printf("%f", sum / 5); return 0; }
A、93.199997
B、92.29997
C、92.19997
D、94.199997

5、5、c语言中,二维数组下标越界时,会有错误提示。

第2次课 编程练习

1、根据流程图编写程序。

2、输入一行字符,统计各类字符的个数。

3、打印水仙花数。

4、将一个数组中的值按逆序重新存放。

5、删除数组中指定下标上的元素。

6、在数组中查找最小值的下标。

7、在数组查找指定元素是否存在。

第3次课 同类型数据的处理——数组(二)

7.7 字符数组定义及输入输出随堂测验

1、下面是对数组s的初始化操作,其中不正确的是()
A、char s[5]={ "a"};
B、char s[5]={ ‘a’};
C、char s[5]= " ";
D、char s[5]= "abcdef";

2、如下的数组中,数组array占用的内存空间是( )个字节。 char array[]={ 'c','h','i','n','a'};
A、1
B、5
C、6
D、不确定

3、字符数组中的数据存储时必须以'\0'结尾。

7.8 字符串处理函数随堂测验

1、下面是有关C语言字符数组的描述,其中错误的是()
A、不可以用赋值语句给字符数组名赋字符串
B、可以用输入语句把字符串整体输入给字符数组
C、字符数组中的内容不一定是字符串
D、字符数组只能存放字符串

2、对字符串进行输入输出操作时,只能对字符串整体进行输入输出。

3、如果在程序中调用了strcpy函数,则需要预处理命令 。

7.9 字符数组应用举例随堂测验

1、下面程序段的输出结果是() int i; char c[5]={ '1','2','','3',''}; for(i=0;i<5;i++) printf("%c",c[i]);
A、'1''2'
B、12
C、12 3
D、123

2、字符数组中只能有一个'\0'。

3、有定义:char a[]="";则a数组的长度是 。

第3次课 模块化程序设计——函数(一)

8.1 概述随堂测验

1、C语言程序的基本单位是?
A、A.函数
B、B.过程
C、C.子程序
D、D.源程序文件

2、C语言程序从哪个位置开始执行?
A、程序中第一条可执行语句
B、程序中的第一个函数
C、程序中的main函数
D、包含文件中的第一个函数

3、关于C语言程序,以下说法正确的是?
A、一个C语言程序执行时,可以从该程序中任意一个函数开始执行
B、一个C语言程序中可以包含多个源代码文件,每个源代码文件中只能包含一个main函数
C、一个C语言程序中包含多个函数,main函数可以调用其它函数
D、一个C语言程序中包含多个函数,这些函数之间可以相互调用

8.1 概述随堂测验

1、C语言程序的基本单位是?
A、函数
B、过程
C、子程序
D、源程序文件

2、关于C语言程序,以下说法正确的是?
A、一个C语言程序执行时,可以从该程序中任意一个函数开始执行。
B、一个C语言程序中可以包含多个源代码文件,每个源代码文件中只能包含一个main函数。
C、一个C语言程序中包含多个函数,main函数可以调用其它函数,其它函数不能调用main函数。
D、一个C语言程序中包含多个函数,这些函数之间可以相互调用。

8.2 函数定义与调用随堂测验

1、在下列关于C函数定义的叙述中,正确的是?
A、函数可以嵌套定义,但不可以嵌套调用;
B、函数不可以嵌套定义,但可以嵌套调用;
C、函数不可以嵌套定义,也不可以嵌套调用;
D、函数可以嵌套定义,也可以嵌套调用;

2、C语言中函数返回值的类型是由以下哪个选项决定的?
A、函数定义时指定的类型;
B、return语句中的表达式类型;
C、调用该函数时的实参的数据类型;
D、形参的数据类型;

3、下面函数调用语句含有实参的个数为? func((exp1,exp2),(exp3,exp4,exp5));
A、1
B、2
C、4
D、5

4、以下叙述中错误的是?
A、用户定义的函数中可以没有return语句;
B、用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值;
C、用户定义的函数中若没有return语句,则应当定义函数为void类型;
D、函数的return语句中可以没有表达式;

5、若程序中定义函数 float fadd(float a, float b) { return a+b; } 并将其放在调用语句之后,则在调用之前应对该函数进行说明。以下说明中错误的是?
A、float fadd(float a,b);
B、float fadd(float b, float a) ;
C、float fadd(float, float) ;
D、float fadd(float a, float b) ;

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

1、以下描述错误的是?
A、调用函数时,实参可以是表达式;
B、调用函数时,实参与形参可以共用内存单元;
C、调用函数时,将为形参分配内存单元;
D、调用函数时,实参与形参的类型应该一致;

2、C程序中各函数之间可通过多种方式传递数据,下列不能实现数据传递的方式是?
A、参数的形实结合;
B、函数返回值;
C、全局变量;
D、同名的局部变量;

3、以下关于函数叙述中,错误的是?
A、函数未被调用时,系统将不为形参分配内存单元;
B、实参与形参的个数必须相等,且实参与形参的类型必须对应一致;
C、当形参是变量时,实参可以是常量、变量或表达式;
D、如函数调用时,实参与形参都为变量,则这两个变量不可能共享同一内存空间;

4、若函数调用时参数为基本数据类型的变量,以下叙述正确的是?
A、实参与其对应的形参共享内存存储单元;
B、只有当实参与其对应的形参同名时才共享内存存储单元;
C、实参与对应的形参分别占用不同的内存存储单元;
D、实参将数据传递给形参后,立即释放原先占用的内存存储单元;

8.4 数组作为函数参数随堂测验

1、函数调用时,实参和形参都是简单变量,它们之间数据传递的过程描述正确的是?
A、实参将地址传递给形参,并释放原先占用的存储单元;
B、实参将地址传递给形参,调用结束时形参再将此地址回传给实参;
C、实参将值传递给形参,调用结束时形参再将其值回传给实参;
D、实参将值传递给形参,调用结束时形参并不将其值回传给实参;

2、若用数组名作为函数调用的实参,则传递给形参的是?
A、数组第一个元素的地址;
B、数组的第一个元素的值;
C、数组中所有元素的值;
D、数组元素的个数;

3、已有以下数组定义和f函数调用语句, int a[3][4]; f(a); 则在f函数的说明中,对形参数组array的错误定义方式为:
A、f(int array[][6]);
B、f(int array[3][]);
C、f(int array[][4]);
D、f(int array[2][5]);

4、以下程序的输出结果是_______? f(int b[],int m,int n) { int i,s=0; for(i=m;i<n;i=i+2) s=s+b[i]; returns; } int main() { int x,a[]={ 1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); }

第3次课 模块化程序设计——函数(二)

8.5 函数的嵌套调用与递归调用随堂测验

1、C语言规定了程序中各函数之间调用关系,以下说法正确的是?
A、既允许直接递归调用也允许间接递归调用;
B、不允许直接递归调用也不允许间接递归调用;
C、允许直接递归调用不允许间接递归调用;
D、不允许直接递归调用允许间接递归调用;

2、以下程序运行后的输出结果是? int f (int x, int y) { if(x>y) return x; else return y; } void main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),2*z); printf("%d\n",r); }
A、3
B、6
C、8
D、12

3、递归函数f(n)=f(n-1)+n (n>1)的递归体是?
A、f(1)=0;
B、f(0)=1;
C、f(n)=f(n-1)+n;
D、f(n)=n;

4、在函数调用过程中,如果函数fun A调用了函数fun B,函数fun B又调用了函数fun A,则()。
A、称为函数的直接递归调用
B、称为函数的间接递归调用
C、称为函数的循环调用
D、C语言中不允许这样的递归调用

5、以下程序的功能是用递归方法计算工资,已知第一位员工工资最少,为3100元,其余员工工资一个比一个多500元,求第5位员工的工资。请填空。 int salary(int n) { int s; if(n==1) s=3100; else s=salary(n-1)+500; return s; } void main() { int n=5; printf(“salary:%d\n”,______); }

8.6 变量的作用域随堂测验

1、以下程序输出的temp的值是? #define N 5 main() { int i; int a[N]={ 1,2,3,4,5}; for(i=0;i<N/2;i++) { int temp; temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; } printf("%d",temp); }
A、2
B、3
C、随机数
D、编译出错,变量未定义

2、以下程序的运行结果是? int a=8,b=9; int f(int a,int b) { int c; c=a>b?a:b; return(c); } void main() { int a=10; printf("%d",f(a,b)); }
A、8
B、9
C、10
D、随机数

3、在C语言中,关于变量的作用域,下列描述中错误的是().
A、局部变量只在整个函数的运行周期中有效
B、全局变量的作用域为整个程序的运行周期
C、当全局变量与局部变量重名时,局部变量会屏蔽掉全局变量
D、全局变量会覆盖掉所有与它重名的局部变量

4、以下程序的运行结果是:______________。 int n; void main() { void prt(); for(n=0;n<5;n++) prt(); } void prt() { for(n=0;n<5;n++) printf(“%c”,’*’); printf(“\n”); }

8.7变量的存储类别随堂测验

1、关于C语言中的全局变量与局部变量,下列描述中正确的是()
A、全局变量的生存期一定比static局部变量的时间长
B、局部变量的生存周期只是它所在的函数
C、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
D、static类别变量的生存周期贯穿于整个程序的运行期间

2、在C语言中,声明外部函数需要添加的关键字是()
A、extern
B、static
C、this
D、auto

3、以下程序的输出结果是__________。 int fun(int x[],int n) { static int sum=0,i; for(i=0;i<n;i++) sum+=x[i]; return sum; } void main() { int a[]={ 1,2,3,4,5},b[]={ 6,7,8,9},s=0; s=fun(a,5)+fun(b,4);printf("%d\n",s); }

第4次课 C语言灵魂——指针(一)

9.1 地址和指针的基本概念随堂测验

1、设有定义”int a = 3, b, *p = &a; ”,则下列语句中使b不为3的语句是( )
A、b = *&a;
B、b = *&p;
C、b = a ;
D、b = *p ;

2、设指针x指向的整型变量值为25,则printf(“%d\n”, ++ *x);的输出是( )
A、23
B、24
C、25
D、26

3、若有说明:int i, j = 7, *p = &i ; 则与i = j;

中国大学C语言程序设计(重修)

近年来,C语言一直是计算机学科的重要组成部分,是计算机程序设计、算法研究和软件开发的重要基础。因此,许多大学开设了C语言程序设计课程,以培养学生对计算机编程的兴趣和能力。

中国大学C语言程序设计(重修)的课程介绍

中国大学C语言程序设计(重修)课程是一门重点课,是为那些想要加强和提高在C语言编程方面的技能的学生而设计的。该课程主要涵盖以下内容:

  • 基本的控制结构和算法
  • 函数和指针的使用
  • 数据结构(包括数组和链表)和算法(包括排序和搜索)
  • 文件I/O和字符串处理
  • 动态内存分配和异常处理

中国大学C语言程序设计(重修)的课程目标

该课程旨在帮助学生:

  • 理解和掌握C语言编程的基本概念和语法
  • 掌握基本的程序设计技巧和算法
  • 使用C语言编写简单的程序和解决实际问题
  • 加强对计算机系统的理解和应用

中国大学C语言程序设计(重修)的课程要求

该课程的要求如下:

  • 学生应该有一定的计算机编程基础
  • 学生应该熟悉计算机的基本操作系统和软件
  • 学生应该能够独立进行一些简单的程序设计和调试
  • 学生应该按时完成课程作业和考试

中国大学C语言程序设计(重修)的教学方法

该课程采用以下教学方法:

  • 面对面授课:教师将通过讲解、演示、案例分析和讨论等方式进行课堂授课。
  • 实验教学:学生将在实验室进行C语言编程实践,以进一步巩固和应用所学知识。
  • 课程作业:学生将完成一系列的课程作业,以提高自身的编程能力和应用能力。
  • 考试评估:学生将参加期中和期末考试,以检验自己的学习成果。

中国大学C语言程序设计(重修)的教材和参考书目

  • 主教材:《C语言程序设计(第2版)》(谭浩强著)
  • 参考书目:
    • 《C语言深度剖析》(程杰著)
    • 《C和指针》(Kenneth A. Reek著)
    • 《C专家编程》(Peter Van Der Linden著)

中国大学C语言程序设计(重修)的课程评价与师资力量

该课程的教学效果将以期中和期末考试的成绩为主要评价标准。此外,教师将根据学生的课堂表现和作业完成情况进行日常评价。

该课程的教师力量主要来自计算机科学与技术领域,他们拥有丰富的教学和实践经验,并且具有深厚的计算机编程知识和技能。

作者:AI助手

文章版权及转载声明

本文地址:http://www.zzxhsh.org/49b799924.html发布于 2024-05-19 07:14:45
文章转载或复制请以超链接形式并注明出处五煦查题

评论列表 (暂无评论,44人围观)参与讨论