【C语言编程新思路(山东理工大学)】试题及答案_第1页
【C语言编程新思路(山东理工大学)】试题及答案_第2页
【C语言编程新思路(山东理工大学)】试题及答案_第3页
【C语言编程新思路(山东理工大学)】试题及答案_第4页
【C语言编程新思路(山东理工大学)】试题及答案_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第第页《C语言编程新思路(山东理工大学)》章节测试题及答案第一章测试

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

A、mainmain

B、第一个最后一个

C、main任意

D、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语言源程序文件的后缀名是()。

A、.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、05812e33.6'd'

B、12.80x9843.56e2'\n'

C、w0340xa3'\m'

D、4.450765.33E1.5how

正确答案: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'和b的含义是不同的

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

D、在C语言中,整型常量有二进制、八进制、十六进制和十进制4种表示形式

正确答案:B

13、#includestdio.hintmain(){charch;inti;i=65;ch=a;printf(%c,%c,%d,%d\n,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的是()。

A、b=1.0/a

B、b=1/(float)a

C、b=1/(a*1.0)

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

正确答案:D

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

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

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

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

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

正确答案:C

16、#includestdio.hintmain(){inta=b=5,c;c=a+b;printf(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的ASCII值是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-1;

C、a*b;

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

正确答案:C

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

A、{inti;printf(%d\n,i);}

B、;

C、a=5,c=10

D、{;}

正确答案:C

3、以下程序的输出结果是()。#includestdio.hintmain(){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(%d%d%d,a,b,c);

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

D、scanf(%d%d%d,

正确答案:D

5、以下程序段的输出结果是()#includestdio.hintmain(void){inti;floatx;doubley;y=x=i=10/4;printf(y=%.2f,x=%.2f,i=%d\n,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中的数进行交换,下面不正确的语句组是()。

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

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

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

D、t=b;b=a;a=t;

正确答案:C

7、以下程序的输出结果是()。#includestdio.hintmain(void){inta=4,b=8;printf(a=%%d,b=%%d\n,a,b);/*注意转义字符的作用*/return(0);}

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

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

D、长整型(longint)变量,使用scanf函数输入时,需使用%ld格式符。

正确答案:B

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

A、顺序

B、选择

C、循环

D、回溯

正确答案:D

18、下面程序段功能是先输入一个整数,然后将输入的整数输出,请指出哪部分有错()。#includestdio.h//1intmain(void){inti;//2scanf(%d,i);//3printf(i=%d\n,i);//4return(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、表示关系xyz的c语言表达式为()。

A、(x=y)=z)

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

C、(x=y=z)

D、(x=y)=z)

正确答案:A

2、若a=5;b=6;c=7;d=8;m=2;n=2;则执行(m=ab)d)后,m和n的值分别为()。

A、2,2

B、0,2

C、0,0

D、2.0

正确答案:B

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

A、=

B、=

C、%

D、则下面if语句中,()是错误的。

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

B、if(ab)x=x+1;

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

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

正确答案:B

5、下列表达式中,()不满足"当x的值为偶数时值为真,为奇数时值为假'的要求。

A、x%2==0

B、!x%2!=0

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

D、!(x%2)

正确答案:B

6、关于以下程序,正确的说法是()。#includestdio.hintmain(void){intx=0,y=0,z=0;if(x=y+z)printf(***);elseprintf(###);return(0);}

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

B、输出:***

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

D、输出:###

正确答案:D

7、下列程序的输出结果是()。#includestdio.hintmain(void){floatx=4,y=1;if(x0)y=0;elseif(x10)y=1/x;elsey=10;printf(%f\n,y);return(0);}

A、10、20、30

B、20、10、10

C、20、30、30

D、20、10、30

正确答案:C

19、下列程序的输出结果是()。#includestdio.hintmain(void){intk=8;switch(k){case7:k+=1;case8:k+=1;case9:k+=1;break;default:k+=1;}printf(%d\n,k);return(0);}

A、8

B、9

C、10

D、11

正确答案:C

20、若有floatx;inta,b;,下面四条switch语句中正确的有()条。switch(x){casex=1.0:printf("Y');casex=2.0:printf("N');}switch(a){casea=1:printf("Y');casea=2:printf("N');}switch(b){caseb==1:printf("Y');caseb==2:printf("N');}switch(x){case1.0:printf("Y');case2.0:printf("N');}

A、1

B、2

C、3

D、4

正确答案:A

第五章测试

1、以下程序段中while循环执行的次数是()。intk=0;while(k=1)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跳出循环体

D、for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

正确答案:D

4、以下下面程序的运行结果是()。#includestdio.hintmain(){inta=1,b=2,c=2,t;while(abc){t=a;a=b;b=t;c--;}printf("%d,%d,%d',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;j4;j++){...}

A、20

B、25

C、24

D、30

正确答案:A

6、下面程序的输出结果是()。#includestdio.hintmain(){inti,j;for(i=0,j=10;ij;i+=2,j--);printf(%d%d,i,j);}

A、48

B、67

C、86

D、105

正确答案:C

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

D、*#*#$

正确答案:C

16、下面程序段的运行结果是()。intx=3;do{printf(%d\n,x-=2);}while(!(--x));

A、输出的是1

B、输出的是1和-2

C、输出的是3和0

D、是死循环

正确答案:B

17、下面程序段的运行结果是()。x=y=0;while(x15)y++,x+=++y;printf(%d,%d,y,x);

A、20,7

B、6,12

C、20,8

D、8,20

正确答案:C

18、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择()填空:#indudeStdio.hintmain(){inta,b,t;scanf(%d%d,while(【1】){if(ab){t=a;a=b;b=t;}printf(%d,%d,a,b);scahf(%d%d,人}

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(%d,i--);

A、无限次

B、0次

C、1次

D、2次

正确答案:B

第六章测试

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

A、整型常量

B、整型表达式

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

D、任何类型的表达式

正确答案:C

2、以下程序的输出结果是()。intmain(){inta[5]={1,2,3};printf("%d\n',a[3]);}

A、0

B、1

C、3

D、随机值

正确答案:A

3、以下程序的输出结果是()。intmain(){inti,k,a[10]={1,5,3,4,2,8,9,6,7,0};for(i=0,k=0;i10;i++)if(a[k]a)k=i;printf(%d,k);}

A、5

B、6

C、7

D、8

正确答案:B

4、以下程序的输出结果()。intmain(){inti,j,s=0,a[2][3]={1,2,3,4,5,6};for(i=0;i2;i++)for(j=0;j3;j++)s=s+a[j];printf("%d',s);}

A、10

B、15

C、20

D、21

正确答案:D

5、有以下程序运行后的输出结果是()。intmain(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i4;i++)s+=aa[1];printf("%d',s);}

A、11

B、19

C、13

D、20

正确答案:B

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

A、a[3][2]

B、a[1][1]

C、a[2][1]

D、a[2][2]

正确答案:B

7、定义inta[10][11],则数组a有()个元素。

A、11

B、90

C、110

D、132

正确答案:C

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

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

B、inta[][3]={{1,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[1][2]

C、a[0][3]

D、a[1][4]

正确答案:B

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

A、a[10.0]

B、a[1+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*1;

正确答案:C

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

A、inta[3][];

B、floatfa(3,4);

C、doublea[1][4];

D、floata(3)(4);

正确答案:C

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

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

B、此说明语句不正确。

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

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

正确答案:D

14、若有定义:ints[3][4]={{1,2},{0},{3,4,5}};则s[2][1]的值为()。

A、3

B、4

C、0

D、1

正确答案:B

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

A、a[0][1/2]

B、a[1][2]

C、a[2][3]

D、a[1][3]

正确答案:B

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

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

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

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

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

正确答案:A

17、以下程序段执行后p的值是()。inta[3][3]={3,2,1,3,2,1,3,2,1};intj,k,p=1;for(j=0;j2;j++)for(k=j;k3;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

正确答案:C

18、以下程序段执行后p的值是()。inta[3][3]={3,2,1,3,2,1,3,2,1};intj,k,p=1;for(j=0;j2;j++)for(k=j;k4;k++)p*=a[j][k];

A、108

B、18

C、12

D、2

正确答案:A

19、以下程序段运行后s的值是()。inta[3][3]={1,2,3,4,5,1,2,3,4};inti,j,s=1;for(i=0;i3;i++)for(j=i+1;j3;j++)s+=a[j];

A、6

B、120

C、7

D、240

正确答案:C

20、下面程序段的运行结果是()。intm[]={5,8,7,6,9,2},i=1;for(i=0;i6;i++){if(i%2!=0)m+=10;}for(i=0;i6;i++)printf(%d,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的指针变量,则以下赋值正确的是()。

A、

B、*p=12;

C、*p=2000

D、p=

正确答案:D

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

A、pb=,则下面()不是对a[3]的正确引用。

A、*(a+3)

B、p+3

C、p[3]

D、*(p+3)

正确答案:B

9、若有如下定义:inta[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=*p+10;后,*p的值是()。

A、100

B、10

C、0

D、110

正确答案:D

11、以下程序的输出结果是()。#includestdio.hintmain(){inta[]={2,4,6,8,10},y=0,i,*p;p=a;for(i=0;i3;i++)y+=*(p+i);printf(%d\n,y);}

A、17

B、12

C、19

D、20

正确答案:B

12、以下程序的输出结果是()。#includestdio.hintmain(){inta=1,b=2,c=3,*p1,*p2,*p3;p1=p2=p3=*p3=*p1;*p1=*p2;*p2=*p3;printf(a=%d,b=%d,c=%d\n,a,b,c);}

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

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

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

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

正确答案:B

13、以下程序的输出结果是()。#includestdio.hintmain(){intk=2,m=4,n=6;int*pk=*(p=printf(%d\n,n);return0;}

A、4

B、6

C、8

D、10

正确答案:C

14、以下程序的输出结果是()。#includestdio.hintmain(){int**k,*a,b=100;a=k=printf(%d\n,**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[1][2]的是()。

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

B、*(p+1)+2

C、(p+1)[2]

D、p[1]+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、stdio.hintmain(){inta[5]={1,2,3,4,5},*p,**pp;p=a;pp=printf(%d,*(p+3));printf(%d,**pp);return0;}

A、41

B、31

C、44

D、34

正确答案:A

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

A、for(p=a;ap+10;a++)

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

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

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

正确答案:B

第八章测试

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

A、0

B、正数

C、负数

D、随机值

正确答案:C

2、以下程序运行后的输出结果是()。intmain(){inti,j;chara[]={a,b,c,d,e,f,g,h,\0};i=sizeof(a);//sizeof返回数组a在内存分配字节数j=strlen(a);printf("%d,%d\n',i,j);}

A、9,9

正确答案:C

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

A、charstr[]=hello;

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

C、charstr[30];str=hello;

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

正确答案:C

12、有以下定义,不能表示字符'C'的表达式是()。charstr[]=ABCDEFG,*p=str;

A、*(p+2)

B、str[2]

C、*(str+2)

D、*p+2

正确答案:D

13、程序段charc[]=abcdefg;printf(%s,c+4);的运行结果是()。

A、abcd

B、efg

C、abcdefg

D、defg

正确答案:B

14、有如下定义,不能给数组a输入字符串的是()。chara[20],*p=a;

A、gets(p)

B、gets(a[0])

C、gets(well;chart[]={'w','e','l','l'};,则数组s与数组t中内容相同。

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

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

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]=door,t;inti,j;i=0;j=strlen(str)-1;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%s

正确答案:B

20、执行以下程序段后,输出结果是()。chars[20]=Good,t[]=Moring!;strcat(s,t);puts(s);

A、GoodMoring!

B、Moring!

C、Good

D、Moring!Good

正确答案:A

第九章测试

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

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

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

C、实参可以为任意类型

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

正确答案:B

2、以下程序有语法性错误,有关错误原因的正确说法是()。#includestdio.hintmain(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、voidplay(inta,intb)

D、Subplay(aasinteger,basinteger)

正确答案:C

5、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。

A、函数调用可以作为独立的语句存在

B、函数调用可以作为一个函数的实参

C、函数调用可以出现在表达式中

D、函数调用可以作为一个函数的形参

正确答案:D

6、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。

A、地址传递

B、单向值传递

C、由实参传给形参,再由形参传回实参

D、传递方式由用户指定

正确答案:B

7、有以下程序:#includestdio.hvoidfun(inta,intb,intc){a=11;b=22;c=33;}intmain(void){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n',x,y,z);return0;}该程序输出结果是()。

A、30,20,10

B、10,20,30

C、11,22,33

D、33,22,11

正确答案:B

8、关于函数参数,说法正确的是()。

A、实参与其对应的形参各自占用独立的内存单元

B、实参与其对应的形参共同占用一个内存单元

C、只有当实参和形参同名时才占用同一个内存单元

D、形参是虚拟的,不占用内存单元

正确答案:A

9、一个函数的返回值由()确定。

A、return语句中的表达式

B、调用函数的类型

C、系统默认的类型

D、被调用函数的类型

正确答案:D

10、下列程序的输出结果是()。fun(inta,intb,intc){c=a+b;}intmain(void){intc;fun(2,3,c);printf("%d\n',c);return0;}

A、2

B、3

C、5

D、不定

正确答案:D

11、有以下程序:#includestdio.hintfun(intx){printf("x=%d\n',++x);}intmain(){fun(12+5);return0;}程序的输出结果是()。

A、x=12

B、x=13

C、x=17

D、x=18

正确答案:D

12、有如下程序:#includestdio.hinti=1;intmain(){inti=i;printf(%d\n,i);return0;}程序的输出结果是()。

A、1

B、0

C、i

D、不确定

正确答案:D

13、有如下程序:#includestdio.hintf(intx){returnx+3;}intmain(void){inta=1;while(f(a)10)a++;return0;}程序执行后,变量a的值是()。

A、7

B、10

C、11

D、9

正确答案:A

14、以下说法中正确的是()。

A、形参是全局变量,其作用范围仅限于函数内部

B、形参是全局变量,其作用范围从定义之处到文件结束

C、形参是局部变量,其作用范围仅限于函数内部

D、形参是局部变量,其作用范围从定义之处到文件结束

正确答案:C

15、定义为void类型的函数,其含义是()。

A、调用函数后,被调用的函数没有返回值

B、调用函数后,被调用的函数不返回

C、调用函数后,被调用的函数的返回值为任意类型

D、其余选项都不对

正确答案:A

16、当全局变量和函数内部的局部变量同名时,在函数内部()。

A、全局变量有效

B、局部变量有效

C、全局变量和局部变量都有效

D、全局变量和局部变量都无效

正确答案:B

17、有如下程序:#includestdio.hfun(inta){autointb=0;staticintc=3;b=b+1;c=c+1;return(a+b+c);}intmain(void){inta=2,i;for(i=0;i3;i++)printf("%d",fun(a));return0;}它的输出结果是()。

A、789

B、777

C、999

D、8910

正确答案:A

18、有如下程序:#includestdio.hvoidfun(intx,inty){intt;if(xy){t=x;x=y;y=t;}}intmain(void){inta=4,b=7,c=5;fun(a,b);fun(a,c);fun(b,c);printf("%d,%d,%d\n',a,b,c);return0;}它的输出结果是()。

A、4,5,7

B、4,7,5

C、7,5,4

D、7,4,5

正确答案:B

19、有如下程序:#includestdio.hf(inta){intb=0;staticintc=3;a=c++;b++;return(a);}intmain(void){inta=2,i,k;for(i=0;i2;i++)k=f(a++);printf("%d\n',k);return0;}该程序的输出结果是()。

A、6

B、3

C、4

D、5

正确答案:C

20、凡是未指明存储类别的局部变量,其隐含的存储类别是()。

A、register

B、auto

C、static

D、extern

正确答案:B

第十章测试

1、若有数组名作为函数调用的实参,传递给形参的是()。

A、数组的首地址

B、数组第一个元素的值

C、数组中全部元素的值

D、数组元素的个数

正确答案:A

2、若使用一维数组名作为函数实参,则以下描述中正确的是()。

A、必须在调用函数中说明此数组的大小

B、实参数组类型与形参数组类型可以不匹配

C、在被调用函数中,不需要考虑形参数组的大小

D、实参数组名与形参数组名必须一致

正确答案:C

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

A、C语言中各函数(除主函数外)之间既允许直接递归调用也允许间接递归调用

B、C语言中各函数(除主函数外)之间既不允许直接递归调用也不允许间接递归调用

C、C语言中各函数(除主函数外)之间允许直接递归调用不允许间接递归调用

D、C语言中各函数(除主函数外)之间不允许直接递归调用允许间接递归调用

正确答案:A

4、下列程序的输出结果是()。#includestdio.hvoidsub(intx,inty,int*z){*z=y-x;}intmain(){inta,b,c;sub(10,5,sub(7,a,sub(a,b,printf(%d,%d,%d\n,a,b,c);return0;}

A、5,2,3

B、-5,-12,-7

C、-5,-12,7

D、5,-2,-7

正确答案:B

5、下列程序的输出结果是()。#includestdio.hvoidprtv(int*x){printf(%d\n,++*x);}intmain(){inta=25;prtv(return0;}

A、23

B、24

C、25

D、26

正确答案:D

6、下列程序的输出结果是()。#includestdio.hvoidfun(int*a,int*b){intw;*a=*a+*a;w=*a;*a=*b;*b=w;}intmain(){intx=2,y=3,*px=;fun(px,py);printf(%d,%d\n,x,y);return0;}

A、4,3

B、2,3

C、3,4

D、3,2

正确答案:C

7、以下程序运行时,若输入5103,则输出结果是()。#includestdio.hvoidswap(int*p1,int*p2){intt;t=*p1;*p1=*p2;*p2=t;return;}intmain(){inta,b,c;scanf(%d%d%d,if(ab)swap(if(ac)swap(if(bc)swap(printf(%d,%d,%d\n,a,b,c);return0;}

A、5,10,3

B、10,5,3

C、3,5,10

D、3,10,5

正确答案:C

8、以下程序运行时,若输入5,则输出结果是()。#includestdio.hintfac(intn){staticintk=1;k=k*n;returnk;}intmain(){intm,i,f;scanf(%d,for(i=1;i=m;i++){f=fac(i);printf(%d,f);}}

A、相互独立

B、完全重叠

C、部分重叠

D、随机存储

正确答案:B

17、若有以下程序:#includestdio.hint*fun(int*s,int*t){if(*s*t)s=t;returns;}intmain(void){inta=3,b=6,*p=r=fun(p,q);printf(%d,%d,%d\n,*p,*q,*r);return0;}则程序的输出结果是()。

A、3,3,6

B、3,6,6

C、6,3,3

D、6,6,3

正确答案:B

18、若有以下程序:#includestdio.hintfun(intx){if(x10){printf(%d-,x%10);fun(x/10);}elseprintf(%d,x);return;}intmain(void){intz=123456;fun(z);return0;}则程序的输出结果是()。

A、1-2-3-4-5-6-

B、1-2-3-4-5-6

C、6-5-4-3-2-1-

D、6-5-4-3-2-1

正确答案:D

第十一章测试

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

A、预处理命令行必须以#号开始

B、C程序在执行过程中对预处理命令行进行处理

C、在程序中凡是以#号开始的语句都是预处理命令行

D、以下宏定义是正确的:#defineIBM_PC

正确答案:B

2、在宏定义#definePI3.1415926中,用宏名PI代替一个()。

A、常量

B、单精度数

C、双精度数

D、字符串

正确答案:D

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

A、在程序的一行上可以出现多个有效的预处理命令行

B、使用带参数的宏时,参数的类型应与宏定义时一致

C、宏替换不占用运行时间,只占编译时间

D、宏名必须用大写字母表示

正确答案:C

4、以下在任何情况下计算平方数时,都不会引起二义性的宏定义是()。

A、#definePOWER(x)x*x

B、#definePOWER(x)(x)*(x)

C、#definePOWER(x)(x*x)

D、#definePOWER(x)((x)*(x))

正确答案:D

5、在"文件包含'预处理语句的使用形式中,当#include后面的文件名用''(双引号)括起时,寻找被包含文件的方式是()。

A、直接按系统设定的标准方式搜索目录

B、现在源程序所在目录搜索,再按系统设定的标准方式搜索

C、仅仅搜索源程序所在目录

D、仅仅搜索当前目录

正确答案:B

6、有以下程序:#defineADD(x)x+x#includestdio.hintmain(void){intm=1,n=2,k=3;intsum=ADD(m+n)*k;printf(sum=%d,sum);return0;}该程序的运行结果是()。

A、sum=9

B、sum=10

C、sum=12

D、sum=18

正确答案:B

7、若有如下宏定义:#defineX5#defineYX+1#defineZY*X/2则执行以下printf语句后,输出结果是()。inta;a=Y;printf(%d,Z);printf(%d,--a);

A、76

B、126

C、125

D、75

正确答案:D

8、以下程序的运行结果是()。#defineMAX(A,B)(A)(B)?(A):(B)#definePRINT(Y)printf("Y=%d',Y)#include"stdio.h'intmain(void){inta=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d)PRINT(t);return0;}

A、Y=3

B、Y=7

C、Y=0

D、存在语法错误

正确答案:B

9、以下程序的输出结果是()。#includestdio.h#defineMUL(x,y)(x)*y#include"stdio.h'intmain(void){inta=3,b=4,c;c=MUL(a++,b++);printf(%d,c);return0;}

A、12

B、15

C、20

D、16

正确答案:A

10、用宏替代计算多项式4*x*x+3*x+2之值的函数f,正确的宏定义是()。

A、#definef(x)4*x*x+3*x+2

B、#definef4*x*x+3*x+2

C、#definef(a)(4*(a)*(a)+3*(a)+2)

D、#define(4*a*a+3*a+2)f(a)

正确答案:C

第十二章测试

1、C语言规定结构体变量系统分配给它的存储空间是()。

A、该结构体中最后一个成员所需的存储空间

B、该结构体中所有成员所需存储空间的总和

C、该结构体中第一个成员所需的存储空间

D、该结构体中占用最大存储空间的成员所需的存储空间

正确答案:B

2、以下对结构体变量s中成员age的合法法引用是()。#includestring.hstructstudent{intage;intnum;}s,*p;p=

A、student.s.age

B、student.age

C、p-age

D、s-age

正确答案:C

3、有如下定义:structdate{inty;intm;intd;};structperson{charname[20];charsex;structdatebirthday;}a;对结构体变量a的出生年份进行赋值时,下面正确的赋值语句是()。

A、y=1958

B、birthday.y=1958

C、a.birthday.y=1958

D、a.y=1958

正确答案:C

4、设有以下说明语句structstu{inta;floatb;}stutype;则以下叙述不正确的是()。

A、struct是结构体类型的关键字

B、structstu是用户定义的结构体类型名

C、stutype是用户定义的结构体类型名

D、a和b都是结构体成员名

正确答案:B

5、以下结构体类型说明和变量定义中正确的是()。

A、typedefstruct{intn;charc;}REC;RECx,y;

B、structREC;{intn;charc;};RECx,y;

C、typedefstructREC;{intn=0;charc=A;}x,y;

D、struct{intn;charc;}RECx,y;

正确答案:A

6、下面程序的运行结果是()。structst{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;in;i++)a+=I;}intmain(){inti;structstx={10,{2,3,1,6,8,7,5,4,10,9}};f(x.a,x.n);for(i=0;is.n;i++)printf('%d,',x.a);}

A、80

B、a

C、0

D、97

正确答案:D

13、以下对C语言中共用体类型数据的叙述正确的是()。

A、可以对共用体变量名直接赋值

B、一个共用体变量中可以同时存放其所有的成员

C、一个共用体变量中不能同时存放其所有成员

D、共用体类型定义中不能出现结构体类型的成员

正确答案:C

14、若有以下说明和定义语句,则下面引用形式中不正确的是()。structstudent{intage;intnum;};structstudentstu[3]={{1001,20},{1002,19},{1003,21}};structstudent*p;p=stu;

A、(p++)-num

B、p++

C、(*p).num

D、p=intage;intsex;}pup[5],*p;p=pup;

A、scanf("%s",pup[0].name);

B、scanf("%d",

C、scanf("%d",

D、scanf("%d",P-age);

正确答案:C

16、当说明一个共用体变量时系统分配给它的内存是()。

A、各成员所需内存量的总和

B、结构中第一个成员所需内存量

C、成员中占内存量最大者所需的容量

D、结构中最后一个成员所需内存量

正确答案:C

17、设有以下说明,则下面不正确的叙述是()。uniondata{inti;charc;floatf;}un;

A、un所占的内存长度等于成员f的长度

B、un的地址和它的各成员地址都是同一地址

C、un可以作为函数参数

D、不能对un赋值,但可以在定义un时对它初始化

正确答案:C

18、定义结构体类型变量teach1,不正确的是()。

A、structteacher{intnum;intage;};structteacherteach1;

B、structteacher{intnum;intage;}teach1;

C、struct{intnum;intage;}teach1;

D、struct{intnum;intage;}teacher;structteacherteach1;

正确答案:D

19、下面程序的运行结果是()。#includestdio.huniondata{inti;charc;doubled;}a[2];voidmain(){printf(%d\n,sizeof(a));}

A、16

B、8

C、4

D、2

正确答案:A

20、以下对结构体变量stul中成员age的非法引用是()。structstudent{intage;intnum;}stul,*p;p=

A、stul.age

B、student.age

C、p-age

D、(*p).age

正确答案:B

第十三章测试

1、运行下列程序,输出结果为()。#includestdio.hintmain(){intx=040;printf(%d\n,x=x1);return0;}

A、100

B、160

C、120

D、64

正确答案:D

2、如有shortinta,b,若要通过a=a则执行a=a|0xff00后,a的值是()。

A、0x5500

B、0x0066

C、0x5566

D、0xff66

正确答案:D

5、a为任意整数,能将变量a清零的表达式为()。

A、a=~a

B、a=a^a

C、a=a,若要通过a=a|b使a的低8位置1,高8位不变,则b应该是()。

A、0xff00

B、0x0000

C、0x00ff

D、0xffff

正确答案:C

7、运行下列程序,输出结果为()。#includestdio.hintmain(){printf(%d\n,122);return0;}

A、0

B、1

C、3

D、4

正确答案:C

8、若有shortinta=0x5566;则执行a=a2的值为()。

A、32

B、17

C、16

D、11

正确答案:A

10、若

温馨提示

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

评论

0/150

提交评论