0.069

五煦查题

快速找到你需要的那道考题与答案

尔雅C语言程序设计_59答案(学习通2023课后作业答案)

77 min read

尔雅C语言程序设计_59答案(学习通2023课后作业答案)

第1周 程序设计与C语言

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

1、尔雅计算机能直接执行的语言程程序是用何种程序设计语言编写的?
A、C语言
B、序设习通机器语言
C、计答汇编语言
D、案学C++

2、课后C语言源程序是作业用编译方式进行翻译的。

1.2 C语言的答案发展及其特点随堂测验

1、下列哪种程序设计语言能编写系统软件?
A、尔雅Fortran
B、语言程VB
C、序设习通C
D、计答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周编程练习

1、求两个数中的较小者。

第2周 程序的数据描述——基本数据类型

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"在内存中占的字节数是:

第3周 程序的数据运算

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”的值为 。

第3周编程练习

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

第4周 顺序结构程序设计

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 -0xffff 011
B、0xcdf 01a 0xe
C、-01 986,012 0668
D、-0x48a 2e5.2 017

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、' \'' '\\' '\n'
B、'\' '\018' '\"'
C、'\017' '\f' '\xaw'
D、'\\0' '\101' '\xlf'

14、下面四个选项中,均是不合法的转义字符的选项是:
A、'\'' '\\' '\xf'
B、'\1011' '\' '\ab'
C、'\011' '\f' '\9'
D、'\abc' '\101' '\xlf '

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

16、下面四个选项中,均是不正确的八进制数或十六进制数的选项是:
A、016 0x8f 018
B、oabc 017 0x8
C、010 -0x11 0x16
D、0a12 7ff -123

17、下面四个选项中,均是正确的八进制数或十六进制数的选项是:
A、-10 0x8f -011
B、0abc 017 0xc
C、0010 -0x11 0xf1
D、0al2 -0xl23 0x8

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

19、若有如下代数式,则不正确的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

20、已知各变量的类型说明如下: 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)

21、已知各变量的类型说明如下: 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)

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

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

24、以下符合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

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

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

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

28、若有定义: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

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

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

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

32、若有以下定义,则能使值为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)

33、设以下变量均为int类型,则值不等于7的表达式是:
A、(x= y= 6, x+y , x+1)
B、(x= y= 6 , x+y , y+1)
C、(x= 6 ,x+1,y= 6,x+y)
D、(y=6,y+l,x = y,x+1)

34、若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);

35、已有如下定义和输入语句 ,若要求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>

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

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

38、已有如下定义和输入语句,若要求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>

39、根据定义和数据的输入方式,输入语句的正确形式为: 已有定义: 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);

40、阅读以下程序,当输入数据的形式为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、不确定值

41、有输入语句: 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(回车)

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

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

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

45、x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x 、y 和之的值是:
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

60、下列语句输出的结果是( )。 short b=65535; printf("%d",b);

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

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

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

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

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

66、int a=24; printf("%o ", a ); 输出结果是( )。

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

第5周 选择结构程序设计

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、代码错误,不能输出

第6周 循环结构程序设计

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、在下列运算符+,+=,++中,优先级最低的是 。

第7周 同类型数据的处理——数组(一)

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语言中,二维数组下标越界时,会有错误提示。

第8周 同类型数据的处理——数组(二)

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次单元测验

1、下列描述中不正确的是()
A、字符型数组中能存放字符串。
B、可以对字符型数组进行整体输入、输出。
C、字符串函数声明在ctype.h中。
D、字符串的结束符是'\0'。

2、下列程序的输出结果是() char a[10]="abcd", b[ ]="ABCD", str[50]="xyz"; strcpy(str,strcat(a,b)); printf("%s",str);
A、xyabcAB
B、abcABz
C、ABabcz
D、abcdABCD

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

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

5、有两个字符数组s1,s2,则以下正确的输入语句是()
A、gets(s1,s2);
B、scanf("%s%s",s1,s2);
C、scanf("%s%s",&s1,&s2);
D、gets("s1"),gets("s2");

6、判断字符串s1是否大于s2,应当使用()
A、if (s1>s2)
B、if (strcmp(s1,s2))
C、if (strcmp(s2,s1)>0)
D、if (strcmp(s1,s2)>0)

7、下面叙述正确的是()
A、两个字符串所包含的字符个数不相同时,才能进行大小比较。
B、字符个数多的字符串比字符个数少的字符串大。
C、字符串"123 "与"123"相等。
D、字符串"123"小于字符串"2"。

8、下面程序段的输出结果是() char c[ ]=”\a\b\\\0c\n”; printf(“%d”,strlen(c));
A、14
B、3
C、9
D、6

9、下面程序段的输出结果是() 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

10、下面程序段的输出结果是() char a[7]=“123456”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]);
A、
B、\0
C、5
D、6

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

12、以下能对一维数组a进行正确初始化的语句是__。
A、int a[10]=(0,0,0,0,0) ;
B、int a[10]={ };
C、int a[]=;
D、int a[5]={ 1,2,3,4,5,6};

13、以下对二维数组a的正确说明是__。
A、int a[3][];
B、floatf a(3,4);
C、double a[1][4];
D、float a(3)(4);

14、以下能对二维数组a进行正确初始化的语句是__。
A、int a[2][]={ { 1,0,1},{ 5,2,3}};
B、int a[][3]={ { 1,2,3},{ 4,5,6}};
C、int a [2][4]={ { 1,2,3},{ 4,5},{ 6}};
D、int a[][3={ { 1,0,1},{ },{ 1,1}};

15、若有说明: int a[3][4]=;则下面正确的叙述是__。
A、只有元素a[0][0]可得到初值0。
B、此说明语句不正确。
C、数组a中各元素都可得到初值,但其值不一定为0。
D、数组a中每个元素均可得到初值0 。

16、以下各组选项中,均能正确定义二维实型数组a的选项是
A、float a[3][4]; float a[][4]; float a[3][]={ { 1},};
B、float a(3,4); float a[3][4]; float a[][]={ { 0},};
C、float a[3][4]; static float a[][4]={ { 0},}; auto float a[][4]={ { 0},,};
D、float a[3][4]; float a[3][]; float a[][4];

17、下面程序段的运行结果是( )。 int m[]={ 5,8,7,6,9,2},i=1; do{ m[i]+=2; } while(m[++i]>5); for(i=0;i<6;i++) printf("%d ",m[i]);
A、7 10 9 8 11 4
B、7 10 9 8 11 2
C、5 10 9 8 11 2
D、5 10 9 8 11 4

18、下面程序段的运行结果是( )。 int m[]={ 5,8,7,6,9,2},i=1; for(i=0;i<6;i++) { if(i % 2 !=0) m[i]+=10; } for(i=0;i<6;i++) printf("%d ",m[i]);
A、5 18 7 16 9 12
B、15 18 17 16 19 12
C、15 8 17 6 19 2
D、5 8 7 6 9 2

19、以下程序段的运行结果是( )。 int a[]={ 1,2,3,4},i,j; j=1; for(i=3;i>=0;i--) { a[i]=a[i]*j; j=j*3; } for(i=0;i<4;i++) printf("%d ",a[i]);
A、3 6 9 12
B、18 12 9 4
C、27 18 9 4
D、54 18 9 4

20、以下程序段执行后输出的结果是( )。 int a[][4]={ 1,2,3,4,5,6,7,8,9,10,11,12}; printf("%d\n",a[1][5]);
A、编译有错误。
B、4
C、10
D、11

21、以下程序段执行后p的值是( )。 int a[3][3]={ 3,2,1,3,2,1,3,2,1}; int j,k,p=1; for(j=0;j<2;j++) for(k=j;k<4;k++) p*=a[j][k];
A、108
B、18
C、12
D、2

22、以下程序段运行后sum的值为( )。 int k=0,sum=0; int a[3][4]={ 1,2,3,4,5,6,7,8,9,10,11,12}; for(;k<3;k++) sum+=a[k][k+1];
A、9
B、18
C、19
D、21

23、以下程序段的运行结果是( )。 char str[3][2]={ 'a','b','c','\0','e','f'}; printf("%s",str[0]);
A、a
B、abcef
C、abc\0ef
D、abc

24、以下程序段的输出结果是( )。 int a[4][4]={ { 1,3,5},{ 2,4,6},{ 3,5,7}}; printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
A、0650
B、1470
C、5430
D、输出值不定

25、以下程序段的输出结果是( )。 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、4 5 6
B、2 5 8
C、3 6 9
D、7 8 9

26、以下程序段的输出结果是( )。 int b[3][3]={ 0,1,2,0,1,2,0,1,2},i,j,t=0; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t);
A、3
B、4
C、1
D、9

27、若有如下定义,则值为4的表达式是( )。 int a[12]={ 1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’,d,g;
A、a[g-c]
B、a[4]
C、a[‘d’-‘c’]
D、a[‘d’-c]

28、对两个数组m和n进行下列初始化: char m[]="12345"; char n[]={ ’1’,’2’,’3’,’4’,’5’}; 则下列叙述正确的是(  )。
A、数组m与数组n不完全相同
B、数组m与数组n长度相同
C、数组m比数组n长1
D、数组m与数组n中都存放字符串

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

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

31、数组是一种构造型数据,即是若干相同类型的数据的集合。

32、在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。

33、C语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

34、若有说明:int a[][4]={ 0,0};则表示二维数组a的第一维大小为1。

35、若有说明:int a[10]={ 6,7,8,9,10};则该语句不正确,因为数组长度与初值个数不相同。

36、字符数组中存放的字符串是以 为结束标志的。

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

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

39、以下程序是将字符串b的内容连接字符数组a的内容后面,形成新字符串a,请填空使程序完整。 #include "stdio.h" int main ( ) { char a[40]="Hello you!", b[ ]="World!"; int i=0,j=0; while (a[i]!='\0') 1 ; while ( b[j] ) { a[i]=b[j] ; i++ ; j++ ; } a[i]='\0'; printf("%s\n",a); }

40、若有定义语句“int a[5]={ 1,2,5};”则printf("%d",++a[3])的输出值是( )。

41、若有定义语句”int a[3][4]={ { 1,2},,{ 6,4,7,10}};”则初始化后,a[1][2]的值为( ).

第9周 模块化程序设计——函数(一)

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语言程序设计_59

《学习通C语言程序设计_59》是一门针对C语言编程初学者的课程。这门课程由北京理工大学计算机学院的教授主讲,涵盖了C语言的基本语法、程序逻辑、函数及指针、文件操作等内容。

课程内容概述

这门课程共分为13章,涵盖了C语言的基础知识和应用。以下是每章的主要内容:

  1. 第一章:计算机基本概念、编程语言和C语言介绍。
  2. 第二章:C语言基础语法、运算符和表达式。
  3. 第三章:分支结构和循环结构。
  4. 第四章:数组和字符串。
  5. 第五章:函数。
  6. 第六章:指针。
  7. 第七章:结构体和联合体。
  8. 第八章:文件操作。
  9. 第九章:内存管理。
  10. 第十章:数据结构简介。
  11. 第十一章:位运算。
  12. 第十二章:函数指针。
  13. 第十三章:C语言程序设计样例。

学习方法

学习这门课程需要有一定的编程经验和计算机基础知识。对于初学者来说,建议先学习一些基础的编程语言(比如Python或Java),并掌握基本的编程思维方法。

在学习过程中,可以边看视频边跟着教授的例子敲代码,这样可以更好地理解C语言的基本语法和程序逻辑。同时,还可以找一些练习题来巩固所学知识,比如LeetCode和牛客网等在线编程练习平台。

此外,建议多看一些优秀的C语言程序,并尝试自己编写类似的程序。这样可以提高自己的编程能力,同时也可以学习到其他程序员的编码技巧和经验。

学习效果

学习本门课程后,学生能够熟练掌握C语言的基本语法和程序逻辑,能够编写一些简单的C语言程序,并具备自学C语言深入知识的能力。

此外,学生还能够了解到一些C语言的进阶知识,如函数指针、数据结构等,这些知识是C语言编程的重要基础。

总结

《学习通C语言程序设计_59》是一门适合初学者的C语言课程。通过学习该课程,学生可以掌握C语言的基本语法和程序逻辑,具备自学深入知识的能力,并了解到一些进阶的C语言知识。如果你想学习编程,尤其是想学习C语言编程,可以考虑学习这门课程。