c语言数组排序ABBCC,C语言复习卷带答案.docx

姓名:__________________年级专业:__________________ 学号:__________________

凡年级专业、姓名、学号错写、漏写或字迹不清者,成绩按零分记。

…………………………密………………………………封………………………………线…………………………

《复习卷》试卷

总分

题号

题分

得分

得分

一、单选题(每题1分,共计30分)

1、下列选项中,不合法的变量是(D)。

A、int x = 3;

B、char ch = 'c'

C、float f ;

D、case c;

2、下列选项中,不合法的常量是(D)。

A、2

B、'\n'

C、'a'

D、'\483'

3、关于#include这句代码,下列描述中错误的是(C)

A、"#"是预处理标志,用来对文本进行预处理操作

B、include是预处理指令

C、一对尖括号可以去掉

D、stdio.h是标准输入输出头文件

4、假设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,那么逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(  C )。

A、0

B、1

C、2

D、3

5、C语言程序的三种基本结构是( A  )。

A、顺序结构,选择结构,循环结构

B、递归结构,循环结构,转移结构

C、嵌套结构,递归结构,顺序结构

D、循环结构,转移结构,顺序结构

6、​关于下面的for循环语句 int i,k; for(i = 0,k = -1;k = 1;i++,k++)  printf(“*****”); 下列选项中,描述正确的是(B  )

A、判断循环结束的条件非法

B、是无限循环

C、只循环一次

D、一次也不循环

7、以下定义语句中,错误的是( D  )。

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

B、char *a[3];

C、char s[10]="test";

D、int n=5,a[n];

8、下列描述中不正确的是(C   )。

A、字符型数组中可以存放字符串

B、可以对字符型数组进行整体输入、输出

C、可以对整型数组进行整体输入、输出

D、不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值

9、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为(   D)。

A、该数组的长度

B、该数组的元素个数

C、该数组中各元素的值

D、该数组的首地址

10、在C语言中,引用数组元素时,其数组下标的数据类型允许是( C)

A、整型常量

B、整型表达式

C、整型常量或整型表达式

D、任何类型的表达式

11、若有定义double x = 12.2;则表达式int a = x;则a的值为(C)。

A、0

B、0.0

C、12

D、12.2

12、若有定义: char *a= "China"; , 则 a+3 表示  (C)      。

A、该字符串的首地址

B、该字符串中字符 n 的值

C、该字符串中字符 n 的地址

D、该字符串中字符 i 的地址

13、下述对C语言字符数组的描述中错误的是(  C )。

A、字符数组可以存放字符串

B、字符数组中的字符串可以整体输入、输出

C、可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D、不可以用关系运算符对字符数组中的字符串进行比较

14、C语言中数组下标的下限是(B)。

A、1

B、0

C、视具体情况

D、无固定下限

15、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是( C)。

A、1

B、2

C、2.0

D、2.5

16、关于结构体作为函数参数,下列描述中错误的是(D )

A、结构体可以作为函数参数

B、结构体数组可以作为函数参数

C、结构体指针可以作为函数参数

D、结构体成员变量不可以作为函数参数

17、若有定义: struct  KeyWord { char Key[20]; int ID; }kw[] = { "void", 1, "char", 2, "int", 3, "float", 4, "double", 5 }; 则printf("%c,%d\n", kw[3].Key[0], kw[3].ID);语句的输出结果为(C )

A、i 3

B、n 3

C、f 4

D、l 4

18、下列关于指针变量的描述,不正确的是(C )

A、在没有对指针变量赋值时,指针变量的值是不确定的

B、同类指针类型可以进行相减操作

C、在使用没有赋值的指针变量时,不会出现任何问题

D、可以通过指针变量来取得它指向的变量值

19、关于C语言中print()函数与scanf()函数,下列描述中正确的是( B )

A、printf()函数可以向任何地方输出数据

B、printf()只向控制台输出数据

C、scanf()只能输入英文字母和数字

D、scanf()函数可以识别输入的空格

20、表示关系X<=Y<=Z的C语言表达式为(  A )。

A、(X<=Y)&&(Y<=Z)

B、(X<=Y)AND(Y<=Z)

C、(X<=Y<=Z)

D、(X<=Y)&(Y<=Z)

21、下列是多行注释的符号是(D)

A、//

B、/

C、/*

D、/**/

22、在以下定义中,正确的说明语句为(D  )。

A、int a[b]

B、int a[3,4]

C、int a[][]

D、int *a[10]

23、关于指针定义,下列选项中正确的是(B )

A、int x; int p = &x;

B、int x; int *p = &x;

C、int x; int p = *x;

D、int x; int *p = *x;

24、以下说法正确的是(C)

A、c语言程序总是从第一个函数开始执行

B、在c语言程序中,要调用的函数必须在main()函数中定义

C、c语言程序总是从main()函数开始执行

D、c语言程序中的main()函数必须放在程序的开始部分

25、要为字符型变量a赋初值,下列语句中哪一个是正确的(B )。

A、char a = "3";

B、char a = '3';

C、char a = %;

D、char a = *;

26、以下对C语言字符数组描述     (B)    是正确的。

A、可以用length函数计算字符数组中字符串的长度

B、使用printf函数整体输出字符数组中的字符串时,输出到字符’\0’结束输出

C、可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值

D、字符数组只能存放字符串,不能存放字符

27、若有定义char s[5] = { 'h', 'e', 'l', 'l', 'o' };则printf(“%s”,s);的输出结果为(A )

A、输出字符串hello后乱码

B、hello

C、h

D、输出数组s的地址

28、sizeof(float)是( C  )。

A、一种函数调用

B、一个不合法的表示形式

C、一个整型表达式

D、一个浮点表达式

29、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( B )。

A、input x,y,z;

B、scanf("%d%d%d",&x,&y,&z);

C、scanf("%d%d%d",x,y,z);

D、read("%d%d%d",&x,&y,&z);

30、​以下循环体的执行次数是( C  )。 void main() { int i,j; for (i=0,j=1; i<=j+1; i+=2,j--) printf("%d\n",i); }

A、3

B、2

C、1

D、0

得分

二多选题(每题2分,共计8分)

1、在调用外部函数时,下列描述中正确的是(B.D )(多选)

A、只要有函数名,就能调用外部函数

B、调用外部函数要包含外部函数所在的头文件

C、外部函数与调用者定义在同一个源文件下

D、在声明外部函数时,外部函数与原函数定义的返回值类型、函数名称和参数列表必须一致

2、下列语句哪些属于循环语句(A.B.C)。

A、for语句

B、do-while语句

C、while语句

D、switch语句

3、关于数组类型的定义,下列描述中正确的是(A.C )

A、数组的大小一旦定义就是固定的

B、一个数组中的各元素类型可以不一样

C、数组的下标类型为整型

D、数组元素的下标从1开始

4、C语言的程序结构语句包括(A.B.C)。

A、顺序结构语句

B、循环结构语句

C、选择结构语句

D、逻辑结构语句

得分

三、判断题(对的打“√”,错的打“×”;每题1分,共20分)

1、对于一维数组,例如int arr[3];则arr[2]表示数组的第2个元素。(X)

2、注释在编译时也会被编译到程序中(X)

3、标识符只能由字母和数字组成。(X)

4、结构体指针存储的是结构体在内存中的首地址。(√)

5、在C语言程序中,以分号“;”作为结束标记的代码都可称为语句(√)

6、sizeof运算符的功能是获取某一数据或数据类型在内存中所占的字节数。(X)

7、标识符命名有一定规范,它不能以数字作为第一个字符。(X)

8、局部变量只有当它所在的函数被调用时才会被使用,当函数调用结束时局部变量还会一直存在。(X)

9、在C语言中,strncmp()函数可以用来比较两个字符串中前n个字符是否完全一致。(√)

10、数组中的元素可以通过数组名和下标来引用。(√)

11、数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等。(√)

12、strcpy()函数实现字符串的复制,没有返回值。(X)

13、在C语言中,strcmp()函数用于比较两个字符串的内容是否相等。(√)

14、若有定义int x = 1,y = 2;则表达式x==y是将y的值赋值给x。(X)

15、常量指针的作用是使当前指针所指向变量的地址在程序运行时不能被修改。(X)

16、结构体指针变量用于存放结构体变量的首地址,所以将指针作为函数参数传递时,其实就是传递结构体变量的首地址。(√)

17、表达式是一长串式子,常量与变量并不是表达式。(X)

18、用于存放其他变量的地址的变量称为指针变量。(√)

19、取指针所指向的地址中的值可以取值符号&。(x)

20、当字符数组中的初值个数小于数组长度时,没有赋值的元素会默认赋值为空字符。(√)

得分

四、填空题(每题2分,共计60分)

1、单行注释用_____//___符号表示。

2、C语言的比较运算中,“真”用数字____1____来表示,“假”用数字____0____来表示。

3、假设定义一个3行4列的二维数组,那么共包含___12____个元素。

4、___数组名_____ 默认指向数组在内存中的首地址。

5、在C语言中,____&___运算符可以获取内存地址。

6、指针变量作为函数的参数,是将一个变量的____地址____传递给函数。

7、定义结构体类型的关键字是___surecr_____。

8、C语言中数组必须先____定义____再使用。

9、操作字符串的函数有很多,其中____)strlen()____函数是求字符串的长度。

10、我们通常使用的英文字符编码是___ascll_____码。

11、若定义二维数组int arr[5][6];则数组的列下标的取值范围为___05_____ 。

12、常量指针的作用是使当前指针所指向变量的____值____在程序运行时不能被修改。

13、宏定义是在程序___预处理_____的时候开始执行。

14、数组是一组具有____相同____类型的数据的集合。

15、假设定义数组int a[3][4],数组a可用的行下标范围是____0~2____,列下标范围是 ____0~3____。

16、在C语言中,运算符都有一定的优先级,其中___()_____和[]的优先级最高。

17、在C语言中根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和___三目_____运算符。

18、操作字符串的函数很多,其中____strcmp____函数用于比较两个字符串内容是否相等。

19、在C语言中,______siezof__运算符可以求算出数据字节数。

20、在C语言中,运算符都有一定的结合性,则赋值运算符的结合性为__重右到左______。

21、在C语言中,常量包括____整型____、浮点数常量、字符常量等。

22、C语言中的注释有两种类型,分别单行注释和__多行______。

23、___define_____是定义宏的关键字。

24、比较运算符中表示不等于的运算符是__!=______。

25、运算符“||”表示或操作,当且仅当运算符两边的表达式结果都为假时,其结果为___假_____。

26、若有定义int x = 7;则表达式x/=3;的值为____2____。

27、二进制是一种“逢二进一”的机制,它用0和____1____ 两个符号来描述。

28、由字符类型的元素所组成的数组是____字符____数组。

29、逻辑运算符&&表示与操作,当其左边表达式为____假____时,右边的表达是不会进行运算的。

30、标识符只能由字母、___数字_____和下划线组成。

答案

一、单选题(每题1分,共计30分)

1、 D

2、 D

3、 C

4、 C

5、 A

6、 B

7、 D

8、 C

9、 D

10、 C

11、 C

12、 C

13、 C

14、 B

15、 C

16、 D

17、 C

18、 C

19、 B

20、 A

21、 D

22、 D

23、 B

24、 C

25、 B

26、 B

27、 A

28、 C

29、 B

30、 C

二、多选题(每题2分,共计8分)

1、 B D

2、 A B C

3、 A C

4、 A B C

三、判断题(每题1分,共计20分)

1、 false

2、 false

3、 false

4、 true

5、 true

6、 true

7、 true

8、 false

9、 true

10、 true

11、 true

12、 false

13、 true

14、 false

15、 false

16、 true

17、 false

18、 true

19、 false

20、 true

四、填空题(每题2分,共计60分)

1、 (1)//

2、 (1)1 (2)0

3、 (1)12

4、 (1)数组名

5、 (1)&

6、 (1)地址

7、 (1)struct

8、 (1)定义

9、 (1)strlen()

10、 (1)ASCII

11、 (1)0-5

12、 (1)值

13、 (1)预处理

14、 (1)相同

15、 (1)0~2 (2)0~3

16、 (1)()/括号

17、 (1)三目

18、 (1)strcmp()

19、 (1)sizeof()

20、 (1)从右向左

21、 (1)整型常量

22、 (1)多行注释

23、 (1)define

24、 (1)!=

25、 (1)假

26、 (1)2

27、 (1)1

28、 (1)字符

29、 (1)假

30、 (1)数字

《复习卷》试卷第9页

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值