智慧树知到《C语言编程新思路(山东理工大学)》章节测试附答案_第1页
智慧树知到《C语言编程新思路(山东理工大学)》章节测试附答案_第2页
智慧树知到《C语言编程新思路(山东理工大学)》章节测试附答案_第3页
智慧树知到《C语言编程新思路(山东理工大学)》章节测试附答案_第4页
智慧树知到《C语言编程新思路(山东理工大学)》章节测试附答案_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智慧树知到《C语言编程新思路(山东理工大学)》章

节测试附答案

第一章测试

1、关于一个c语言程序执行的起点和终点,以下选项正确的是

()。

A、mainmain

B、第一个最后一个

C、main任意

main最后一个

正确答案:A

2、C语句的程序一行写不下时,可以()。

A、用逗号换行

B、用分号换行

C、用任意空格换行

D、用回车换行

正确答案:D

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

A、C程序中,语句之间必须用分号分隔

B、C程序中,多行语句可以写在一行上

C、C程序中,可以不必包含主函数

D、一个C程序,可以由多个函数组成

正确答案:C

4、C语言规定,在一个源程序中,main函数的位置()。

A、必须在最开始

B、必须在系统调用库函数的后面

C、可以任意

D、必须在最后

正确答案:C

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

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

B、C程序的每行中只能写一个语句

C、C语言本身没有输入输出语句

D、在对C语言进行编译的过程中,不能发现注释中的错误

正确答案:D

6、函数的主体部分需要用一对()括起来。

A、{}

B.[]

C、()

D、<>

正确答案:A

7、以下叙述错误的是()。

A、一个C程序只有在编译、连接成.exe程序之后才能执行

B、C程序编译后生成.obj文件

C、C程序的每一条语句都必须用分号结束

D、只有一个分号的语句不是合法的C语句

正确答案:D

8、计算机能够直接识别和执行的计算机语言()。

A、汇编语言

B、机器语言

C、C语言

D、高级语言

正确答案:B

9、以下叙述错误的是()。

A、对于计算机而言,程序是指完成某一特定任务的一组指令序

B、一个C程序编译成功后在连接时发现错误,需要编辑修改,

然后不必重新编译和连接即可直接运行。

C、机器语言和汇编语言都是低级语言

D、C语言是一种函数型语言,每个C语言程序都是由若干个函

数组成

正确答案:B

10、对C程序的注释说明信息必须写在()之间。

A、'和'

B、〈和〉

C、/*和*/

D、{和}

正确答案:C

11、用C语言编写的源程序,必须翻译成用二进制指令表示的目

标程序,才能被计算机识别,这个过程称为()。

A、编辑

B、编译

C、汇编

D、解释

正确答案:B

12、关于C语言的特点,以下叙述错误的是()。

A、C语言一共只有32个关键字,9种控制语句,程序书写自由

B、C语言共有34种运算符,表达式类型多样化

c、c语言不能直接对硬件进行操作

D、C语言程序可以方便的在不同的计算机间和各种操作系统中

实现程序的移植

正确答案:C

13、C语言程序的基本构成单位是()。

A、语句

B、表达式

C、函数

D、运算符

正确答案:C

14、能够在编译过程中被检查出来,并给出提示信息的是()。

A、语法错误

B、逻辑错误

C、运行错误

D、注释错误

正确答案:A

15、以下叙述缙误的是()。

A、计算机语言大致可以分为三大类:机器语言、汇编语言和高

级语言

B、高级语言比低级语言更贴近人类使用的语言,易于理解和使

C、C语言是一种通用的、过程式编程语言,具有高效、灵活、

可移植等优点

D、C语言属于汇编语言

正确答案:D

16、C语言源程序文件的后缀名是()。

As.obj

B、.exe

C、.c

D、.vbp

正确答案:C

17、C语言编译程序是()。

A、C程序的机器语言版本

B、一组机器语言指令

C、将C源程序编译成目标程序

D、厂家提供的应用软件

正确答案:C

18、以下叙述错误的是()。

A、C语言的注释有两种类型:单行注释和多行注释

B、C程序的单行注释语句以开始

C、C语言的注释语句不影响编译结果

D、C语言程序中只要出现在“/*”和“*/”之间的就一定是注

释内容

正确答案:D

19、C语言源程序文件经过编译后的目标文件后缀名是()。

A、.exe

B、.obj

C、.c

D、.vbp

正确答案:B

20、C语言源程序编译、连接后的可执行文件后缀名是()。

A、.exe

B、.obj

C、.c

D、.bak

正确答案:A

第二章测试

1、下面4个选项中,均是不合法的用户标识符的选项的是()。

A、Datesumdo

B、charpao_123

C、b+aiffloat

D、_abcTempInt

正确答案:C

2、下面4个选项中均是合法常量的选项是()。

A、05812e-33.6

B、-12.80x9843.56e2'\n'

C、"w"0340xa3r\m,

D、4.450765.33E1.5"how"

正确答案:B

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

A、在C语言中,%运算符的优先级高于/运算符

B、在C语言中,area和AREA是两个不同的变量名

C、在C语言中,可以使用二进制整数

D、若a和b类型相同,在计算了赋值表达式a二b后,a得到b

的值,而b的值不变

正确答案:C

4、在C语言中,要求运算对象必须是整型的运算符是()。

A、/

B、*

c、+

D、%

正确答案:D

5、若有说明语句:charch=,\0x41';则变量ch包含()个字

符。

A、1

B、2

C、3

D、说明不合法,ch的值不确定

正确答案:A

6、若有定义:inta=7;floatx=2.5,y=4.5;则表达式

x+a%3*(x+y)/2的值是()。

A、2.500000

B、6.000000

C、5.500000

D、0.000000

正确答案:B

7、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f

值的数据类型为()。

A、int

B、float

C、double

D、不确定

正确答案:C

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

A、在C语言中,一行只能写一条语句

B、若a是实型变量,则在C语言中不允许用其他类型的数据对

其赋值

C、在C语言中,无论是整数还是实数,都能被准确无误地表示

D、在C语言中,%是只能用于整数运算的运算符

正确答案:D

9、在C语言中,int型数据在内存中的存储形式是()。

A、原码

B、反码

C、补码

D、ASCII码

正确答案:C

10、下列选项中可作为C语言的合法整数的是()。

A、a2

B、101011B

C、03845

D、0x4b5

正确答案:D

11、字符型数据在内存中是以()形式存储的。

A、ASCII码

B、补码

C、原码

D、BCD码

正确答案:A

12、下列叙述正确的是()。

A、C语言不允许混合类型数据间进行运算

B、在C语言中,'‘和“b”的含义是不同的

C、C语言中,任何类型的数据都可进行%运算

D、在C语言中,整型常量有二进制、八进制、十六进制和十进

制4种表示形式

正确答案:B

13、ttinclude<stdio.h>intmain(){charch;inti;i=65;

ch="a";printf(n%c,%c,%d,%d\n,r,i,ch,i,ch);return0;}这段

程序的运行结果是()。

A、A,a,65,97

B、a,A,97,65

C、a,A,65,97

D、编译错误,无法运行

正确答案:D

14、设整型变量a=2,则执行下列语句后,实型变量b的值不是

0.5的是()o

A、b=l.O/a

B、b=l/(float)a

C、b=l/(a*l.0)

D、b=(float)(1/a)

正确答案:D

15、下列叙述正确的是()。

A、不同类型的变量所占内存单元是相同的

B、C语言中,变量可以不经定义而直接使用

C、赋值表达式的左边只能是变量名

D、字符串常量"China!”在存储时,系统为其分配6个字节的空

正确答案:C

16、#include<stdio.h>intmain(){inta=b=5,c;c=a+b;

printf(1,c=%d\n,,,c);}这段程序的运行结果是()。

A、0

B、10

C、不确定

D、编译错误,无法运行

正确答案:D

17、C语言的标识符只能由字母、数字和下划线三种字符组成,

且第一个字符()。

A、必须是下划线

B、可以是这三种字符中的任一种

C、必须为字母或者下划线

D、必须是字母

正确答案:C

18、如果在一个C语言表达式中有多个运算符,则运算时应该()。

A、只考虑优先级

B、先考虑优先级,然后考虑结合性

C、只考虑结合性

D、先考虑结合性,然后考虑优先级

正确答案:B

19、已知字符A的ASCH值是65,若定义inti;则执行语句

i='A'+3;后,正确的叙述是()。

A、i的值是字符A的ASCII值加上3,即68

B、语句不合法

C、语句可以执行,但没有计算结果

D、i的值是字符E

正确答案:A

20、在C语言中常量'\n'和常量"ABC”在内存中占用的字节

数分别是()。

A、13

B、14

C、23

D、24

正确答案:B

第三章测试

1、若a、b、c、d都是int类型变量且初值为0,以下选项中不

正确的赋值语句是()。

A、a=b=c=d=100;

B、d=d-l;

C、a*b;

D、d=(c=30)+b;

正确答案:C

2、以下选项中不是C语句的是

A、{inti;printf("%d\nM,i);)

B、;

C、a=5,c=10

D、{;}

正确答案:C

3、以下程序的输出结果是()o#includeHstdio.h"intmain

(){intx=100,y=30;printf("%d\n",y=x/y);return(0);}

A、0

B、1

C、3

D、不确定的值

正确答案:C

4、若变量已正确说明为int类型,要给a、b、c输入数据,以

下正确的输入语句是()。

A、read(a,b,c);

B、get(,r%d%d%dw,a,b,c);

C、scanf(u%d%d%d",a,b,c);

D、scanf(tt%d%d%dw,&a,&b,&c);

正确答案:D

5、以下程序段的输出结果是()#include<stdio.h>int

main(void){inti;floatx;doubley;y=x=i=10/4;

printf(Hy=%.2f,x=%.2f,i=%d\nH,y,x,i):return(0);}

A、y=2.00,x=2.50,i=2

B、y=2.50,x=2.50,i=2

C、y=2.50,x=2.00,i=2

D、y=2.00,x=2.00,i=2

正确答案:D

6、若变量已正确定义,要将a和b中的数进行交换,下面不正

确的语句组是()o

A、a=a+b,b=a-b,a=a-b;

B、t=a,a=b,b=t;

C、a=t;t=b;b=a;

I)、t=b;b=a;a=t;

正确答案:C

7、以下程序的输出结果是()cttinclude<stdio.h>int

main(void){inta=4,b=8;printf(ffa=%%d,b=%%d\nM,a,b);/*注

意转义字符的作用*/return(0);}

A、a=%2,b=%5

B、a=2,b=5

C、a=%%d,b=%%d

D、a=%d,b=%d

正确答案:D

8、已知字母A的ASCH值为十进制数65,下面程序的输出是()。

Sinclude"stdio.h"intmain(void){charchl,ch2;chi=「A'+'5'

-r3,;ch2=,A,+,6,-,3';printf(n%d,%c\nH,chi,ch2);

return(0);}

A、67,D

B、67,C

C、B,C

D、C,D

正确答案:A

9、若从终端输入以下数据,要给变量c赋以340.25,则正确的

输入语句是()。

A、scanf(%fn,&c)

B、scanf(%.2f,f,&c);

C、scanf(%6.2f",&c);

D、scanf(%4fw,&c);

正确答案:A

10、以下程序运行时输入:25〈回车),执行后输出的结果是()。

Sinclude<stdio.h>intmain(void){charchi,ch2;intnl;

chl=getchar();ch2=getchar();nl=ch2-chl;printf(H%dn,nl);

return(0);}

A、3

B、-3

C、25

D、编译错误

正确答案:A

11、有以下程序#include<stdio.h>intmain(void){char

cl,c2,c3,c4,c5,c6;scanf(u%c%c%c%c,r,&c1,&c2,&c3,&c4);

c5=getchar();c:6=getchar();putchar(cl);putchar(c2);

printf(H%c%c\nn,c5,c6);return(0);)程序运行后,若从键盘输

入(从第一列开始)abc<回车>def<回车)则输出结果是()。

A、cdef

B、abef

C、abed

D、abde

正确答案:D

12、以下程序段的输出结果是()©#include<stdio.h>int

main(void){charcl='a',c2='c';

printf(H%d,%c\nH,c2-c1,c2-c1+1B1);return(0);}

A、2,b

B、3,B

C、2,D

D、类型不一致,出错

正确答案:C

13、若变量已正确定义为float类型,要通过语句

scanf(”,&a,&b,&c);给a赋值10.0,b赋值20.0,c赋值

30.0,不正确的输入形式是()。

A、102030

B、10,20,30

C、10.020.030.0

D、10,2030

正确答案:B

14、以下程序的输出结果是()o#include<stdio.h>int

main(void){inta,b;a=10;b=20;printf(,,a=%cl\nb=%d\nu,a,b);

return(0);}

A、10,20

B、a=10,b=20

C、a=10b=20

D、1020

正确答案:C

15、若变量已正确说明,要求用以下语句给a赋值2.0,给cl

赋值字符#,给b赋值4.0,则不正确的输入形式是()。

scanf(u%f%c%f,,,&a,&cl,&b);

A、2.0#4.0'

B、2.0#4.0'

C、2#4

D、2.0#4.0,

正确答案:A

16、以下说法错误的是()。

A、赋值表达式的功能是将赋值运算符右侧的值赋给其左侧的变

量。

B、若floatx=5;可以对变量x进行先操作,如x%2的值是1。

C、复合语句是用一对花括号括起来的若干条语句,从语法作用

上讲一条复合语句视为一条语句。

D、长整型(longint)变量,使用scanf函数输入时,需使用%Id

格式符。

正确答案:B

17、结构化程序设计由三种基本结构组成,下面哪个选项不属于

三种基本结构()。

A、顺序

B、选择

C、循环

D、向溯

正确答案:D

18、下面程序段功能是先输入一个整数,然后将输入的整数输出,

请指出哪部分有错()oSinclude<stdio.h>//1intmain(vcid)

{inti;//2scanfi);//3printf(Mi=%d\nw,i);//4

return(0);}

A、1

B、2

C、3

D、4

正确答案:C

19、设inta=10,b;,执行下列语句后,b的值不是2的是()。

A、b=a/4

B、b=a-8

C、b=a/4.0

D、b=a%4

正确答案:C

20、putchar()函数可以向终端输出一个()。

A、整型

B、实数

C、字符串

D、字符

正确答案:D

第四章测试

1、表示关系xWyWz的c语言表达式为()。

A、(x〈=y)&&(y<二z)

B、(x<=y)AND(y<=z)

C、(x<=y<=z)

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

正确答案:A

2、若a=5;b=6;c=7;d=8;m=2;n=2;则执行(m=a>b)&&(n二c>d)

后,m和n的值分别为()o

A、2,2

B、0,2

C、0,0

D、2.0

正确答案:B

3、在以下一组运算符中,优先级最高的运算符是()。

A、<=

B、=

C、%

D、&&

正确答案:C

4、若有intx,a,b;则下面if语句中,()是错误的。

A、if(a=b)x=x+l;

B、if(aOb)x=x+l;

C、if(a-b)x=x+l;

D、if(x)x=x+l;

正确答案:B

5、下列表达式中,()不满足“当x的值为偶数时值为真,为奇

数时值为假”的要求。

A、x%2==0

B、!x%2!=0

C、(x/2*2-x)=0

D、!(x%2)

正确答案:B

6、关于以下程序,正确的说法是()。^include<stdio.h>int

main(void){intx=0,y=0,z=0;if(x=y+z)printf("***n);else

printf("###");return(0);}

A、有语法错误,不能通过编译

B、输出:***

C、可以编译,但不能通过连接,所以不能运行

D、输出:###

正确答案:D

7、下列程序的输出结果是()。#include<stdio.h>int

main(void){floatx=4,y=l;if(x<0)y=0;elseif(x<10)y=l/x;

elsey=10;printf(,r%f\nn,y);return(0);}

A、0.000000

B、10.000000

C、0.250000

D、1.000000

正确答案:c

8、执行以下程序时,若输入3和4,则输出结果是()。Sinclude

<stdio.h>intmain(void){inta,b,s;scanf(H%d%dn,&a,&b);s=a;

if(a<b)s=b;s=s*s;printf,s);return(0);}

A、14

B、16

C、18

D、20

正确答案:B

9、下列程序的输出结果是()。itinclude<stdio.h>int

main(void){intx=l,a=0,b=0;switch(x){case0:b=b+l;case

1:a=a+l;case2:a=a+l;b=b+l;}printf("a=%d,b=%d\n,f,a,b);

return(0);}

A、a=2,b=l

B、a=l,b=l

C、a=l,b=0

D、a=2,b=2

正确答案:A

10、若有定义:inta=3,b=2,c=l;并有表达式:①a%b、②a>b〉c、

③b&&c+l、④c+=l,则表达式值相等的是()。

A、①和②

B、②和③

C、①和③

D、③和④

正确答案:C

11、当"1加=3,.57二4时,执行完下面一段程序后乂的值是()。

if(a<b)if(c<d)x=l;elseif(a<c)if(b<d)x=2;elsex=3;else

x=6;elsex=7;

A、1

B、2

C、3

D、4

正确答案:B

12、在下面的条件语句中(其中S1和S2表示C语言语句),只

有一个在功能上与其他3个语句不等价()。

A、if(a)SI;elseS2;

B、if(a==O)S2;elseSI;

C、if(a!=O)SI;elseS2;

D、if(a=0)SI;elseS2;

正确答案:D

13、若有inta=3,b;则执行下面程序段后b的值是()if(a>0)

b=l;elseb=-l;b=b+l;

A、1

B、2

C、-1

D、0

正确答案:B

14、假定所有变量均已正确定义,下面程序段执行后的x的值是

()oa=b=O;x=35;if(!a)x=x-l;if(b)x=3;elsex=4;

A、34

B、4

C、35

D、3

正确答案:B

15、若有说明语句inti=4,j=5,k=6;floatf;则执行

f=(i>k)?i:(j〈k)?j:k;语句后,f的值为()。

A、4.0

B、5.0

C、6.0

D、7.0

正确答案:B

16、下述程序的输出结果是()iiinclude<stdio.h>intmain

(void){inta=0,b=0,c=0;if((a+1)>0||(b>0))c=c+l;

printf(n%d,%d,%dn,a,b,c);return(0);}

A、0,0,0

B、1,1,1

C、1,0,1

D、0,0,1

正确答案:D

17、若x=0,则执行下面程序段后,屏幕上会显示()。if(x=0)

printf("***");elseprintf("&&&");

A、******

B、&&&

C、***&&&

D、&&&***

正确答案:B

18、若有inta=10,b=20,c=30;,执行下面程序段后a、b、c

的值分别是()。if(a>b)c=a;a=b;b=c;

A、10、20、30

B、20、10、10

C、20、30、30

D、20、10、30

正确答案:C

19、下列程序的输出结果是()。#include<stdio.h>int

main(void){intk=8;switch(k){case7:k+=l;case8:k+=l;case

9:k+=l;break;default:k+=l;}printf(,,%d\n'r,k);return(0);}

A、8

B、9

C、10

D、11

正确答案:C

20、若有floatx;inta,b;,下面四条switch语句中正确的

有()条。switch(x){casex=l.0:printf("Y");casex=2.0:

printf("N");}switch(a){casea=l:printf(uY,J);casea=2:

printf("N");}switch(b){caseb==l:printf("Y");case

b==2:printf("N");}switch(x){case1.0:printf("Y");

case2.0:printf("N”);}

A、1

B、2

C、3

I)、4

正确答案:A

第五章测试

1、以下程序段中while循环执行的次数是()。intk=0;

while(k=l)k++;

A、无限次

B、有语法错不能执行

C、一次也不执行

D、执行一次

正确答案:A

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

A、由于do-while循环中循环体语句只能是一条可执行语句,所

以循环体内不能使用复合语句

B、do-while循环中由do开始,用while结束,在while(表

达式)后面不能写分号

C、在do-while循环中,循环体至少执行一次

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

正确答案:C

3、在C语言中有关for循环,以下正确的说法是()。

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

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

C、在for循环不能break跳出循环体

I)、for循环的循环体语句中,可以包含多条语句,但必须用大

括号括起来

正确答案:D

4、以下下面程序的运行结果是()。ttinclude<stdio.h>int

main(){inta=l,b=2,c=2,t;while(a<b<c){t=a;a=b;b=t;c一;}

printf(a%d,%d,%dw,a,b,c);}

A、1,2,0

B、2,1,0

C、1,2,1

D、2,1,1

正确答案:A

5、若i,j已定义为int类型,则以下程序段中内循环体的总的执

行次数是()。for(i=5;i;i--)for(j=0;j<4;j++){...}

A、20

B、25

C、24

D、30

正确答案:A

6、下面程序的输出结果是()。ttinclude<stdio.h>intmain

(){inti,j;for(i=0,j=10;i<j;i+=2,j—);

printf(H%d%dH,i,j);}

A、48

B、67

C、86

D、105

正确答案:C

7、下面关于switch语句和break语句的结论中,说法正确的是

Oo

A、break语句是switch语句的一部分

B、在switch语句中,可以根据需要使用或者不使用break语句

C、在switch语句中,必须使用break语句

D、break语句是for语句的一部分

正确答案:B

8、以下不是死循环的语句是()。

A、for(;;x+=i)

B、while(1){x++;}

C、for(i=10;;i--)sum+=i;

D、for(;(c=getchar())!二'\n';)printf("%c",c);

正确答案:D

9、与语句头while(!x)等价的语句头是()。

A、while(x==0)

B、while(x!=0)

C、while(x!=l)

D、while(^x)

正确答案:A

10、在while(x)语句中的x与下列条件表达式等价的是()。

A、x==0

B、x!=0

C、x!=l

D、x=l

正确答案:B

11、下面程序的功能是:在输入的一批正数中求最大者,输入0

结束循环,选择()填空。ttinclude<stdio.h>intmain(){int

a,max=O;scanf(n%dn,&a);while(){if(max<a)max=a;scanf

("%d",&a);}printf(w%dff,max);}

A、a==0

B、a

C、!a=l

D、!a

正确答案:B

12、下面程序的功能是从键盘输入一行字符,从中统计大写字母

和小写字母的个数,选择()填空。Sinclude<stdio.h>intmain

(){intm=0,n=0;charc;while(()!='\n'){if(c>='A'

&&c<=,Z')m++;if(c>='a/&&c<=,z'jn++;}

printf(Hm=%d,n=%d\nH,m,n);}

A、c=getchar()

B、getchar()

C、c==getchar()

D、scanf(u%cn,&c)

正确答案:A

13、下面程序的输出结果是()。Sinclude<stdio.h>intmain

(){intk=O,m=O,i,j;for(i=0;i<2;i++){for(j=0;j<3;

j++)k++;k-=j;}m=i+j;printf(Mk=%d,m=%dn,k,m);}

A、k=0,m=3

B、k=0,m=5

C、k=l,m=3

D、k=l,m=5

正确答案:B

14、下面程序的输出结果是()。#include<stdio.h>intmain

(){charc='A';intk=0;do{switch(c++){case'A':k++;

break;case*Br:k--;case1C':k+-2;break;caserD*:k%=2;

continue;case'E':k*=10;break;default:k/=3;}k++;}while

(c<'G,);printf(Hk=%d",k);}

A、k=3

B、k=4

C、k=2

D、k=0

正确答案:B

15、下面程序的运行结果是()。Sinclude<stdio.h>intmain

(){inti;for(i=l;i<=5;i++){if(i%2)printf("*");else

continue;printf("#");}printf("$\n");}

A、*#*#*$

B、***$

C、*#*#*#$

D、*#*#$

正确答案:C

16、下面程序段的运行结果是()。intx=3;do

{printf(n%d\nM,x-=2);}while(!(--x));

A、输出的是1

B、输出的是1和-2

C、输出的是3和0

D、是死循环

正确答案:B

17、下面程序段的运行结果是()。x=y=O;while(x<15)

y++,x+=++y;printf(H%d,%dw,y,x);

A、20,7

B、6,12

C、20,8

D、8,20

正确答案:C

18、下面程序的功能是将从键盘输入的一对数,由小到大排序输

出。当输入一对相等数时结束循环,请选择1)填空:#indude<Stdio.h>

intmain(){inta,b,t;scanf(H%d%dH,&a,&b);while([1])

{if(a>b){t=a;a=b;b=t;}printf(r,%d,%dM,a,b);

scahf(吗d%d",&a,&b);人}

A、!a=b

B、a!=b

C、a==b

D、a=b

正确答案:B

19、对for(表达式1;;表达式3)可理解为()。

A、for(表达式1;0;表达式3)

B、for(表达式1;1;表达式3)

C、for(表达式1;表达式1;表达式3)

D、for(表达式1;表达式3;表达式3)

正确答案:B

20、若i为整型变量,则以下循环执行次数是()。for(i=2;i==0;)

printf(n%d'*,i-);

A、无限次

B、0次

C、1次

D、2次

正确答案:B

第六章测试

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

是()。

A、整型常量

B、整型表达式

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

D、任何类型的表达式

正确答案:C

2、以下程序的瑜出结果是()。intmain(){inta[5]={l,2,3};

printf(^%d\nw,a[3]);}

A、0

B、1

C、3

D、随机值

正确答案:A

3、以下程序的输出结果是()。intmain(){inti,

k,a[10]={l,5,3,4,2,8,9,6,7,0};for(i=0,k=0;i<10;i++)

if(a[k]<a)k=i;printf(n%d,f,k);}

A、5

B、6

C、7

D、8

正确答案:B

4、以下程序的输出结果()。intmain(){int

i,j,s=0,a[2][3]={l,2,3,4,5,6};for(i=0;i<2;i++)for(j=0;

j<3;j++)s=s+a[j];printf(a%dv,s);)

A、10

B、15

C、20

D、21

正确答案:D

5、有以下程序运行后的输出结果是()。intmain(){int

aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int

i,s=0;for(i=0;i<4;i++)s+=aa[l];printf(u%d",s);}

A、11

B、19

C、13

D、20

正确答案:B

6、数组定义为inta[3][2]={1,3,4,6,8,10),数组元素()的

值为6o

A、a[3][2]

B、

C、a[2][l]

D、a[2][2]

正确答案:B

7、定义int则数组a有()个元素。

A、11

B、90

C、110

D、132

正确答案:C

8、以下不能对二维数组a进行正确初始化的语句是()o

A、inta[2][3]={0};

B、inta[][3]={{l,2},{0}};

C、inta[2][3]={{1,2},{3,4},{5,6]};

D、inta[][3]={1,2,3,4,5,6};

正确答案:C

9、若有定义语句:inta[3][5];,按在内存中的存放顺序,a

数组的第8个元素是()。

A、a[0][4]

B、a[l][2]

C、a[0][3]

D、a[l][4]

正确答案:B

10、若有定义inta[10];则对a数组元素的正确应用是()。

A、a[10.0]

B、a[l+2]

C、a(10)

D、a[10]

正确答案:B

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

A、inta[10]=(0,0,0,0,0)

B、inta[10]={}

C、inta[]={0};

D、inta[10]=10*l;

正确答案:C

12、以下对二维数组a的正确说明是()。

A、inta[3][];

B、floatfa(3,4);

C、doublea[l][4];

D、floata(3)(4);

正确答案:C

13、若有说明:inta[3][4]={0};则下面正确的叙述是()o

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

B、此说明语句不正确。

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

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

正确答案:D

14、若有定义:ints[3][4]={{l,2},{0},{3,4,5}}4iJs[2][l]

的值为()。

A、3

B、4

C、0

D、1

正确答案:B

15、若有定义inta[2][3];则合法引用数组元素的是()。

A、a[0][l/2]

B、a[l][2]

C、a[2][3]

D、

正确答案:B

16、在以下数组定义中,错误的是()。

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

B、inta[][2]={{0},⑴};

C、inta[2][2]={{1,2},{3}}

D、inta[][2]={1,2,3,4};

正确答案:A

17、以下程序段执行后p的值是()。int

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

j,k,p=l;for(j=0;j<2;j++)for(k=j;k<3;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

正确答案:C

18、以下程序段执行后p的值是()。int

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

j,k,P=l;for(j=0;j,<2;j++)for(k=j;k<4;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

正确答案:A

19、以下程序段运行后s的值是()。int

a[3][3]={l,2,3,4,5,l,2,3,4};int

i,j,s=l;for(i=0;i<3;i++)for(j=i+l;j<3;j++)s+=a[j];

A、6

B、120

C、7

D、240

正确答案:C

20、下面程序段的运行结果是()。int

m[]={5,8,7,6,9,2},i=l;for(i=0;i<6;i++){if(i%2!=0)

m+=10;}for(i=0;i<6;i++)printf(H%d11,m);

A.518716912

B、151817161912

C、158176192

D.587692

正确答案:A

第七章测试

1、变量的指针,其含义是指变量的()。

A、值

B、名称

C、地址

D、另一个名称

正确答案:C

2、以下叙述错误的是()。

A、指针变量可以与整数进行加、减算术运算

B、指针变量中存放的是地址值

C、指针变量不占用存储空间

D、多个同类型的指针变量可以指向同一个普通变量。

正确答案:C

3、已知指针变量P的指向如图1所示,则表达式*P++的值是()。

A、20

B、30

C、21

D、31

正确答案:A

4、已知指针变量P的指向如图1所示,则表达式*++P的值是()。

A、20

B、30

C、21

D、31

正确答案:B

5、已知指针变量P的指向如图1所示,则表达式++(*P)的值()。

A、20

B、30

C、21

D、31

正确答案:C

6、假设整型变量a的值为12,变量a的地址为2000,若欲使p

为指向a的指针变量,则以下赋值正确的是()c

A、&a=p;

B、*p=12;

C、*p=2000

D、p=&a;

正确答案:D

7、若有定义:intb,*pb;则下面正确的赋值表达式是()。

A、pb=&b

B、pb=b

C、*pb=&b

D、*pb=*b

正确答案:A

8、设inta[10],*p=a;,则下面()不是对a[3]的正确引用。

A、*(a+3)

B、p+3

C、p[3]

D、*(p+3)

正确答案:B

9、若有如下定义:int

a[10]={10,20,30,40,50,60,70,80,90,100},*p=a;,则执行p=p+5

后,*p的值是()。

A、10

B、50

C、60

D、100

正确答案:C

10、若int*p,i;执行i=100;p=&i;i=*p+10;后,*p的值是

Oo

A、100

B、10

C、0

D、110

正确答案:D

11、以下程序的输出结果是()。#include<stdio.h>intmain

(){inta[]={2,4,6,8,10},y=0,i,*p;p=a;for(i=0;i<3;i++)

y+=*(p+i);printf(,r%cl\nn,y);}

A、17

B、12

C、19

D、20

正确答案:B

12、以下程序的输出结果是()ottinclude<stdio.h>intmain

()(inta=l,b=2,c=3,*pl,*p2,*p3;pl=&a;p2=&b;p3=&c;

*p3=*pl;*pl=*p2;*p2=*p3;

printf(Ha=%d,b=%d,c=%d\n",a,b,c);}

A、a=l,b=2,c=3

B、a=2,b=l,c=3

C、a=2,b=l,c=l

D、a=3,b=2,c=l

正确答案:B

13、以下程序的输出结果是()oSinclude<stdio.h>intmain

(){intk=2,m=4,n=6;int*pk=&k,*p;

*(p=&n)=*pk*(*pm);printf(n%d\nn,n);return0;}

A、4

B、6

C、8

D、10

正确答案:C

14、以下程序的输出结果是()。ttinclude<stdio.h>intmain

()(int**k,*a,b=100;a=&b;k=&a;printf(w%d\nH,**k);

return0;)

A、编译出错

B、100

C、a的地址

D、b的地址

正确答案:B

15、对于基类型相同的两个指针变量之间,不能进行的运算时()。

A、<

B、二

c、+

D、-

正确答案:C

16、若有inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int

(*P)[3]=a;,则能正确表示数组元素的是()。

A、*(*(p+l)+2)

B、*(pi1)i2

C、(p+1)[2]

D、p[l]+2

正确答案:A

17、对于语句int*p[5];的正确描述是()。

A、p是一个指向数组的指针,所指向的数组含有5个int型元

素。

B、p是一个指向数组中第5个元素的指针,该元素是int型。

C、定义不合法

D、p是一个具有5个元素的指针数组,每个元素都是一个指向

int型对象的指针变量。

正确答案:D

18、若有inta[10],*p=a;,下列不能表示a数组首元素地址的

是()。

A、a

B、*p

C、p

D、&a[0]

正确答案:B

19、下列程序的运行结果是()。ttincludo<stdio.h>intmain

(){inta[5]=<1,2,3,4,5},*p,**pp;p=a;pp=&p;printf(H%d

M,*(p+3));printf(n%dn,**pp);return0;}

A、41

B、31

C、44

D、34

正确答案:A

20、若有inta[10],*p;,则下列语句中正确的是()。

A、for(p=a;£<p+10;a++)

B、for(p=a;p<a+10;p++)

C、for(p=a;p<p+10;p++)

D、for(p=a;p<a+10;a++)

正确答案:B

第八章测试

1、函数strcnp("ABCDDCBA","ABCDE")的返回值是()。

A、0

B、正数

C、负数

D、随机值

正确答案:C

2、以下程序运行后的输出结果是()。intmain()

chara[]={'a','b','c','d',,'f',

'g','h',''0'};i=sizeof(a);//sizeof返回数组a在内存

分配字节数j=strlen(a);pr配字("%d,%d\n”,i,j);)

A、9,9

B、8,9

C、1,8

D、9,8

正确答案:D

3、下列选项中,不正确的赋值方式是()。

A、charstr[]=

B、charstr[7]=

C、charstrl[10];strl="string”;

D、charstrl[]="string",str2[]="12345678”;

正确答案:C

4、若有以下的说明和语句,则它与()中的说明是等价的。char

s[3][5]={"aaaa","bbbb","cccc"};

A、charsi[][]={"aaaa","bbbb","cccc"};

B、chars2[3J[]={"aaaa","bbbb","cccc"};

C、chars3[][5]={"aaaa","bbbb","cccc"};

n,rwnMw

D、chars4[][4]={aaaa,bbbbfcccc};

正确答案:C

5、有以下程序:ttinclude"stdio.h"#include"string.h"int

main(){inti,j;char

t[10],p[5][10]二{"abc","aabdfg","abbd","dcdbe","cd"};

for(i=0;i<4;i++)for(j=i+l;j<5;j++)if(strcmp(p,p[j])>0)

{strcpy(t,p);strcpy(p,p[j]);strcpy(p[j],t);}

H

printf(%d\n\strlen(p[O]));)程序运行后的输出结果是()o

A、6

B、4

C、5

D、3

正确答案:A

6、下列选项正确的语句组是()。

A、chars[8];s={"China”};

B、char*s;s={"China”};

C、chars[8];s="China”;

D、char*s;s="China”;

正确答案:D

7、下面程序的运行结果是()。char

c[6]={'a','b',''0','c','d','\0'};printf("%su,c);

A、‘a''b'

B、ab

C、abc

D、abcd

正确答案:B

8、有两个字符数组a、b,则以下正确的输入语句是()。

A、gets(a,b);

B、scanf("%s%s,r,a,b);

C、scanf(n%s%s”,&a,&b);

D、gets("a");gets(Hbn);

正确答案:B

9、下面程序段的运行结果是()。chara[7]="abcdef";char

b[4]="ABC";strcpy(a,b);printf(M%cw,a[5]);

A、空格

B、c

C、e

D、f

正确答案:D

10、下面程序段的输出结果是()。^include<stdio.h>intmain

HM

(){charstr[]=Ilikeswimming!f*p=str;p=p+7;

printf(H%sM,p);}

A、程序有错误

B、Ilikeswimming!

C、swimming!

D、1ikeswimming!

正确答案:C

11、下面哪个选项不能将“hello”字符串存入字符数组str中()。

A、charstr口二"hello”;

B、charstr[30];strcpy(str,"hello");

C、charstr[30];str="hell。";

D、charstr[30],*ps=str;strcpy(ps,"hello");

正确答案:C

12、有以下定义,不能表示字符工'的表达式是()。char

str[]=,rABCDEFG\*p=str;

A、*(p+2)

B、str[2]

C、*(str+2)

D、*p+2

正确答案:D

13、程序段charc[]=,,abcdefg";printf(映s",c+4);的运行

结果是()。

A、abed

B、efg

C、abcdefg

D、defg

正确答案:B

14、有如下定义,不能给数组a输入字符串的是()。char

a[20],*p=a;

A、gets(p)

B、gets(a[0])

C、gets(&a[01)

D、gets(a)

正确答案:B

15、下面说法正确的是()。

A、若定.义chars[]=Hwel1'';chart□=

则数组s与数组t中内容相同。

B、当两个字符串所包含的字符个数相同时,才能比较两个字符

串的大小。

C、函数strcpy(strl,str2);的功能是将str2中字符串复制到

strl中o

D、定义chara[30],b□="China";后,可执行a二b;将数组b

中的字符串赋值给数组a。

正确答案:C

16、接受用户输入含有空格的字符串时,应使用()。

A、getchar()

B、gets()

C、scanf()

D、printf()

正确答案:B

17、列描述中错误的是()。

A、可以对字符数组进行整体输入、输出。

B、字符串可以存储在字符数组中。

C、不能对字符数组存储的字符串进行更改。

D、不能使用赋值运算符“=”,直接对字符数组名进行赋值。

正确答案:C

18、执行以下程序段后,输出结果是()。charstr[20]=HdoorH,t;

inti,j;i=0;j=strlen(str)-l;t=str;str=str[j];str[j]=t;

puts(str);

A、door

B、dood

C、rood

D、roor

正确答案:C

19、若有如下定义chara[30],b[30],则以下正确的输入语句

是()

A、gets(a,b);

B、gets(a);gets(b);

C、scanf("%s”,a,b);

D、scanf("%s%sn&a,&b);

正确答案:B

20、执行以下程序段后,输出结果是()ochars[20]=

"Good",t[]=nMoring!";strcat(s,t);puts(s);

A、GoodMoring!

B、Moring!

C、Good

D、Moring!Good

正确答案:A

第九章测试

1、在c语言中以下不正确的说法是()。

A、实参可以是常量、变量、或表达式

B、形参可以是常量、变量或表达式

C、实参可以为任意类型

D、形参应与其对应的实参类型一致

正确答案:B

2、以下程序有语法性错误,有关错误原因的正确说法是()。

#include<stdio.h>intmain(void)intG=5,k;

voidprt_char();k=prt_char(G);

return0;)

A、语句voidprt_char();有错,它是函数调用语句不能用

void说明

B、变量名不能使用大写字母

C、函数说明和函数调用语句之间有矛盾

D、函数名不能使用下划线

正确答案:C

3、下述函数定义形式正确的是()。

A、intf(intx;inty)

B、intf(intx,inty)

C、intf(intx,y)

D、intf(x,y:int)

正确答案:B

4、以下所列的各函数首部中,正确的是()。

A、voidplay(inta,b)

B、voidplay(var:Integer,varb:Integer)

C、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论