C语言程序设计(山东联盟)智慧树知到答案2024年菏泽学院_第1页
C语言程序设计(山东联盟)智慧树知到答案2024年菏泽学院_第2页
C语言程序设计(山东联盟)智慧树知到答案2024年菏泽学院_第3页
C语言程序设计(山东联盟)智慧树知到答案2024年菏泽学院_第4页
C语言程序设计(山东联盟)智慧树知到答案2024年菏泽学院_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计(山东联盟)菏泽学院智慧树知到答案2024年第一章测试

能将高级语言编写的源程序转换为目标程序的是()。

A:编辑程序B:链接程序C:编译程序D:解释程序

答案:CC语言的注释定界符是()。

A:[]B:/**/C:()D:{}

答案:B以下标识符中,不能作为合法的C用户定义标识符的是()。

A:voidB:_123C:a3_b3D:IF

答案:AC语言源程序的基本单位是()。

A:子程序B:过程B、函数C、子程序D、标识符

C:函数D:标识符

答案:C计算机能直接执行的程序是用(

)程序设计语言编写的。

A:C语言

B:C++C:汇编语言D:机器语言

答案:DC程序中main函数的位置是(

)。

A:可以任意位置B:必须在程序的最后C:必须在程序的开始D:必须在程序的中间位置

答案:AC语言程序上机调试步骤是(

)。

A:编写源程序、执行B:编写源程序、编译、组建、执行C:编写源程序、组建、执行D:编写源程序、编译、执行

答案:B语句的结束标志是冒号“:”。

A:错B:对

答案:AC程序中1条语句必须写在1行。

A:对B:错

答案:B属于低级语言的是()。

A:C语言B:JAVA语言C:机器语言D:汇编语言

答案:CD

第二章测试

C语言中,最基本的数据类型是()

A:整型,实型,逻辑型B:整型,字符型,逻辑型C:整型,实型,字符型,逻辑型D:整型,实型,字符型

答案:D以下不合法的整型常量是(

)。

A:68B:0xabcC:147D:12345

答案:B以下浮点数的表示不正确的是(

)。

A:7.19E21B:12.E2C:e23D:22.3

答案:CC程序中变量可以不定义而直接使用。

A:错B:对

答案:A不能将字符串赋给字符变量。

A:对B:错

答案:A以下不合法的实型常量是(

)。

A:.5B:5.0C:5D:0.5

答案:C以下哪个是字符数据类型关键字(

)。

A:stringB:charC:cD:CHAR

答案:B在程序运行期间,变量可以多次被赋值。

A:对B:错

答案:A以下关于符号常量的说法正确的是(

)。

A:符号常量是以标识符形式出现的常量,一经定义,它所代表的常量值在其作用域内不能改变B:使用符号常量不仅便于程序的调试和维护,还能大大提高程序的运行速度C:符号常量名可以不遵循C语言的标识符和命名规则D:可以将圆周率这个常量值定义为符号常量,定义方法为:#define

PI=3.1415926

答案:A以下定义变量的语句错误的是(

)。

A:float

y1;B:double

z1;C:int

x1;D:Double

a1;

答案:D以下能正确定义变量并给变量赋值的是(

)。

A:inta=5,b;

b=5;B:inta,b;

a=b=6;C:inta=5,b=5;D:inta=b=5;

答案:ABC以下是合法C语言常量的是(

)。

A:“a”B:012C:‘a’D:e-2

答案:ABC以下合法的C语言整型常量是(

)。

A:01aB:011C:-0xffffD:160

答案:BCD若已定义inta=11;执行printf("a=%d,a=%o,a=%x",a,a,a);语句后的输出结果是(

)。

A:a=11,a=12,a=13B:a=11,a=13,a=cC:a=11,a=11,a=bD:a=11,a=13,a=b

答案:D函数putchar(65)的功能是向终端输出(

)。

A:65B:AC:6D:有编译错误

答案:B

使用scanf()函数,在输入数据时,若遇非法输入则认为该数据输入结束。

A:对B:错

答案:Agetchar()和scanf()均为输入函数,它们之间可通用,没有任何区别。

A:对B:错

答案:B

第三章测试

若变量已正确定义,表达式(j=3,j++)的值是____。

A:4B:6C:5D:3

答案:D若"intn;floatf=13.8;",则执行"n=(int)f%3"后,n的值是()。

A:4.6B:1C:4.33333D:4

答案:B若有定义“chara;intb;floatc;doubled;”,则表达式“a*b+d-c”值的类型为____。

A:floatB:charC:intD:double

答案:D若x为浮点型,则表达式x=10/4为()。

A:2.0B:3C:2D:2.5

答案:A假设字符变量ch中存放有小写英文字母,将其转换为相应的大写英文字母的表达式是()。

A:ch=ch+32B:tolower(ch)C:ch-='a'+'A'D:ch=ch-'a'+'A'

答案:DC语言中,要求运算对象只能为整数的运算符是()。

A:/B:>C:%

D:*

答案:C为了确保表达式n/2的值为float型,可写成float(n/2)。

A:对B:错

答案:B若有定义:inta=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()。

A:1.4B:1C:2D:2.0

答案:B设有i=10,在表达式j=i--,则j的值是()。

A:8B:9C:11D:10

答案:D在C语言程序中,表达式5%2的结果是()。

A:3B:1C:2D:2.5

答案:B若x、i、j和k都是int型变量,则计算x=(i=4,j=16,k=32)表达式后,x的值是()。

A:32B:4C:16D:52

答案:A设x和y都是int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是交换x和y的值。

A:对B:错

答案:A若变量已正确定义,以下合法的赋值表达式是()。

A:a=a/(b=5)B:++(a+b)C:y=int(a)D:a=1/b=2

答案:A逻辑运算符两侧运算对象的数据类型()。

A:可以是任何类型的数据B:只能是0或非0正数C:只能是0或1D:只能是整型或字符型数据

答案:A在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。

A:错B:对

答案:A若a为int型,且其值为3,则执行完表达式:

a+=6后,a的值是()。

A:3B:6C:12D:9

答案:D单目运算符、赋值运算符和条件运算符均为右结合性。

A:对B:错

答案:A能表示x为偶数的表达式是().

A:x%2==0B:x%2==1C:x%2!=0D:x%2

答案:A已知inti=10;表达式'3<=i<=5'的值是()

A:0B:20C:1D:19

答案:C能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()

A:(x>=1)&&(x<=10)||(x>=200)&&(x<=210)B:能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()C:(x>=1)||(x<=10)&&(x>=200)||(x<=210)D:(x>=1)||(x<=10)||(x>=200)||(x<=210)

答案:A

第四章测试

以下程序运行时,输入的x值在()范围时才会有输出结果。

A:不等于10的整数B:大于3且不等于10的整数C:大于3且等于10的整数D:小于3的整数

答案:B若a是基本整型变量,c是单精度实型变量,输入语句____是错误的。

A:scanf("%d,%f”,&a,&c);B:scanf("%d%f”,a,c);C:scanf("%d%f”,&a,&c);D:scanf("d=%d,c=%f”,&a,&c);

答案:Bmain()

{inta=2,b=-1,c=2;

if(a<b)

c=0;

else

c++;

printf(“%d”,c);

}

该程序的输出结果是()

A:3B:2C:1D:0

答案:A有以下程序

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)

printf(“%d”,++z);

else

printf(“%d”,++y);

printf(“%d”,x++);

}

程序的运行结果是()

A:321B:3C:1D:31

答案:C若x=0,y=3,z=3,以下表达式值为0的是()。

A:!xB:x<y?1:0

C:y=x||z/3D:x%2&&y==z

答案:D在C程序中,运算符%仅能用于整型数的运算。

A:对B:错

答案:A有以下程序

voidmain()

{inta;

scanf(“%d”,&a);

if(a<9)printf(“%d”,a);

elseprintf(“%d”,a--);

}程序运行时键盘输入9<回车>,则输出的结果是()

A:8B:10C:9D:11

答案:C为了避免嵌套的if—else语句的二义性,C语言规定else总是与()组成配对关系。

A:在其之前未配对的ifB:同一行上的ifC:缩排位置相同的ifD:在其之前未配对的最近的if

答案:D赋值运算符的结合性为左结合。

A:对B:错

答案:Bif语句的基本形式是:if(表达式)语句,以下关于“表达式”值的叙述中正确的是()

A:可以是任意合法的数值B:必须是正数C:必须是整数值D:必须是逻辑值

答案:A

第五章测试

设有程序段intm=20;

while(m=0)m=m++;以下说法正确的是()

A:循环体语句执行一次B:while循环执行10次C:循环体语句一次也不执行D:循环是无限循环

答案:C以下叙述正确的是()。

A:用do-while语句构成的循环,在while后的表达式为零时结束循环B:do-while语句构成的循环只能用break语句退出.C:do-while语句构成的循环不能用其它语句构成的循环来代替.D:用do-while语句构成的循环,在while后的表达式为非零时结束循环.

答案:A在以下给出的表达式中,与do--while(E)语句中的(E)不等价的

表达式是()。

A:(E>0||E<0)B:(E!=0)C:(E==0)D:(!E==0)

答案:C对for(表达式1;;表达式3)可理解为()。

A:for(表达式1;0;表达式3)B:for(表达式1;表达式3;表达式3)C:for(表达式1;1;表达式3)D:for(表达式1;表达式1;表达式3)

答案:C从循环体内某一层跳出,继续执行循环外的语句是()。

A:return语句B:break语句C:continue语句D:空语句

答案:B下列程序的输出为()。

main()

{

int

y=10;

while(y--);

printf(“y=%d

”,y);

}

A:while构成无限循环B:y=1C:y=0D:y=-1

答案:D若i为整型变量,则以下循环执行次数是()。

for(i=2;i==0;)printf(“%d”,i--);

A:0次B:1次C:无限次D:2次

答案:AC语言中while和do-while循环的主要区别是()。

A:while的循环控制条件比do-while的循环控制条件更严格B:do-while的循环体不能是复合语句C:do-while的循环体至少无条件执行一次D:do-while允许从外部转到循环体内

答案:C有以下程序

main()

{inta=1,b=2;

while(a<6){b+=a;a+=2;}

printf(“%d,%d”,a,b);

}程序运行后的输出结果是(

)

A:7,11B:6,1C:5,11D:7,1

答案:A有以下程序段

intn=0,p;

do

{

scanf(“%d”,&p);

n++;

}while(p!=12345&&n<3);

此处do-while循环的结束条件是______。

A:p的值不等于12345或者n的值小于3B:p的值等于12345或者n的值大于等于3C:p的值等于12345并且n的值大于等于3D:p的值不等于12345并且n的值小于3

答案:B以下程序段中的变量已正确定义

for(i=0;i<4;i=i+2)

for(k=1;k<3;k++)printf('*');

程序段的输出结果是()

A:****B:*C:**D:********

答案:A以下程序的运行结果是()。

main()

{

int

i,b,k=0;

for(i=1;i<=5;i++)

{b=i%2;

while(b>0){b--;k++;}}

printf(“k=%d,b=%d”,k,b);}

A:k=3,b=0B:k=3,b=-1C:k=8,b=-1D:k=8,b=-2

答案:A循环结构中的continue语句是使整个循环终止执行

A:对B:错

答案:Bwhile和do…while循环不论什么条件下它们的结果都是相同的.

A:错B:对

答案:A

第六章测试

在一个被调用函数中,关于return语句使用的描述,错误的是()

A:被调用函数中可以使用多个return语句B:被调用函数中可以不用return语句C:被调用函数中,一个return语句可以返回多个值给调用函数D:被调用函数中,如果有返回值,就一定要有return语句

答案:C以下()函数的定义是错误的?

A:voidf(){}B:voidf(inti){}C:voidf(inti){returni+1;}D:intf(){return0;}

答案:CC语言中函数返回值的类型是由()决定的。

A:调用该函数的主调函数的类型B:定义函数时所指定的函数类型C:调用函数时临时决定D:return语句中的表达式类型

答案:BC语言规定,必须用(

)作为主函数名。

A:stdioB:mainC:FunctionD:include

答案:B下列说法正确的是(

)。

A:main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的B:main函数必须放在C程序的开头C:main函数必须放在C程序的最后D:main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的

答案:A以下程序的输出结果是()。

voidfun(intx,inty,intz)

{z=x*x+y*y;}

main()

{inta=31;

fun(5,2,a);

printf(“%d”,a);

}

A:无定值B:29C:0D:31

答案:DC语言规定,简单变量作实参,它与对应形参之间的数据传递方式是:(

)。

A:地址传递B:双向值传递C:由用户指定传递方式D:单向值传递

答案:D以下函数头定义正确的是:(

)。

A:double

fun(intx,inty);B:double

fun(int

x,y)C:double

fun(intx,inty)D:double

fun(intx;inty)

答案:C现有如下程序

#include“stdio.h”

intfun(intx)

{printf(“x=%d”,++x);

}

intmain()

{fun(12+5);return0;}

则程序的输出结果是(

)。

A:x=17

B:x=12

C:x=13

D:x=18

答案:D有以下程序,执行后输出的结果是(

)。

voidf(intx,inty)

{intt;

if(x<y){t=x;x=y;y=t;}

}

main()

{inta=4,b=3,c=5;

f(a,b);

f(a,c);

f(b,c);

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

A:4,3,5B:5,4,3C:5,3,4D:3,4,5

答案:A以下关于C语言程序中函数的说法正确的是:(

)。

A:函数的定义和调用都可以嵌套B:函数的定义可以嵌套,但函数的调用不可以嵌套C:函数的定义和调用均不可以嵌套D:函数的定义不可以嵌套,但函数的调用可以嵌套

答案:Dreturn语句在一个函数体内只能有一个。

A:对B:错

答案:B在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。

A:对B:错

答案:A

第七章测试

凡是函数中未指定存储类别的局部变量,其隐含的存储类别是____。

A:autoB:staticC:registerD:extern

答案:A下列程序的输出结果是()。

#include<stdio.h>intf(intn){

staticintk,s;

n--;for(k=n;k>0;k--)s+=k;

returns;}intmain(void){

intk;

k=f(3);printf("(%d,%d)",k,f(k));

return0;}

A:(6,12)B:(3,6)C:(6,6)D:(3,3)

答案:B在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(

)。

A:registerB:staticC:autoD:extern

答案:B以下程序的输出结果是(

)。

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{

inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

printf('%d',t);

}

A:6B:70C:7D:60

答案:C变量的有效范围与其定义的位置有关,(

)的作用域在整个源程序文件中都有效。

A:在函数中定义的静态变量B:在定义第一个函数之前所定义的变量C:在主函数中定义的变量D:在第一个函数中定义的变量

答案:B以下关于编译预处理的叙述中错误的是(

)。

A:预处理命令行必须以#开始B:一条有效的预处理命令必须单独占据一行C:预处理命令行只能位于源程序中的所有语句之前D:预处理命令不是C语言本身的组成部分

答案:C如果在一个函数中的复合语句中定义了一个变量,则该变量(

)。

A:在本程序范围内有效B:只在该复合语句中有效C:在该函数中有效D:为非法变量

答案:B进行宏定义时,宏名必须使用大写字母表示。

A:对B:错

答案:B在C语言中,在register寄存器中存储变量比在内存中存储变量运算速度快。

A:错B:对

答案:B

第八章测试

下面的程序段将输出▁▁▁▁▁。doublea[]={1,2,3,4,5};

printf("%d",sizeof(a));

A:40B:0C:5D:48

答案:A下面程序的运行结果是()#include<stdio.h>intmain(){

inta[]={2,3,5,4},i;

for(i=0;i<4;i++)

switch(i%2)

{

case0:

switch(a[i]%2)

{

case0:

a[i]++;

break;

case1:

a[i]--;

}

break;

}

for(i=0;i<4;i++)

printf("%2d",a[i]);

printf("");

return0;}

A:0304B:3040C:3344D:2050

答案:C以下正确地定义了一维整型数组a的语句组是()

A:inta[SIZE];(在程序开始有#defineSIZE10)B:intn;scanf(“%d”,&n);inta[n];C:intn=10,a[n];D:inta(10);

答案:A假定int类型变量占用两个字节,其有定义:intx[10]={0,2,4};则数组x在内存中所占字节数是()。

A:3B:6C:20D:10

答案:C在C语言中,一维数组的定义方式为:类型说明符数组名().

A:[整型变量]B:[整型常量]或[整型表达式]C:[整型常量表达式]D:[整型表达式]

答案:C若有说明:inta[10];,则对a数组元素的正确引用是().

A:a[10-10]B:a[3.5]C:a[10]D:a(5)

答案:A下面关于数组的描述不正确的是().

A:同一个数组共用一个数组名B:数组是构造数据类型C:数组是相同数据类型的集合D:数组是基本数据类型

答案:D以下能对一维数组a进行正确初始化的语句形式是().

A:inta[]={0};B:inta[3]=(10,5,8);C:inta[10]={};D:inta[10]=(0,0,0,0,0);

答案:A若有定义:intx[10]={1,2,4};则数组元素x[4]的值是()。

A:2B:4C:1D:0

答案:D若有说明:inta[5];,则下面可以输出数组a中所有元素值的是()。

A:while(b[i]!='')

printf("%d",a[i]);B:printf(“%d”,a);C:for(i=1;i<=5;i++)

printf(“%d”,a[i]);D:for(i=0;i<5;i++)

printf("%d",a[i]);

答案:D下列不是给数组的第一个元素赋值的语句是().

A:inta[4]={2*3};B:inta[4];

scanf("%d",a);C:a[1]=2;D:inta[4]={1};

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

A:错B:对

答案:A一般地,一维数组各元素分配在连续地内存单元之中。

A:对B:错

答案:A

第九章测试

有两个字符数组s1,s2,则以下正确的输入格式是(

)

A:gets("s1"),

gets("s2");B:scanf("%s%s",&s1,

&s2);C:scanf("%s%s",s1,

s2);D:gets(s1,s2);

答案:C以下不能对二维数组a进行正确初始化的语句是(

)

A:int

a[2][3]={0};B:int

a[2][3]=

{{1,2},{3,4},{5,6}};C:int

a[

][3]={1,2,3,4,5,6};D:int

a[

][3]={{1,2},{0}};

答案:B以下对二维数组a的正确说明是(

)

A:float

a(3,4);B:float

a(3)(4);C:float

a[3][4];D:int

a[3][

];

答案:C若有说明:inta[][3]={1,2,3,4,5,6,7};,则a数组第一维的大小是()

A:2B:4C:3D:无确定值

答案:C有以下程序段:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};printf(“%d”,a[1][5]);,执行后输出的结果是(

A:编译有错误B:4C:11D:10

答案:A若有初始化语句:inta[3][4]={0};,则下面正确的叙述是()。

A:数组a中各元素都可得到初值,但其值不一定为0B:数组a中每个元素均可得到初值0C:只有元素a[0][0]可得到初值0D:此初始化语句不正确

答案:B如有说明:inta[3][4];,则对a数组元素的正确引用是()。

A:a[3][4]B:a[1+1][0]C:a(2)(1)D:a[1,3]

答案:B对两个数组a和b进行初始化:chara[]=“ABCDEF";

charb[]={'A','B','C','D','E','F'};

则以下叙述正确的是()

A:a与b数组完全相同B:a与b中都存放字符串C:a的长度比b长D:a与b长度相同

答案:C下列能正确定义二维实型数组a的选项是().

A:floata(3,4);B:floata[3][]={{1},{0}};C:floata[3][];D:floata[3][4];

答案:D下面描述正确的是().

A:两个字符串所包含的字符个数相同时,才比较字符串B:字符串"STOP□"与“STOP"相等(其中□表示1个空格)C:字符个数多的字符串比字符个数少的字符串大D:字符串"That"小于字符串"The"

答案:D若有定义:chara[4]="abc",b[20]="Hello";,则执行语句strcat(b,a);后,数组b中的内容为().

A:abcB:abcHelloC:HelloabcD:Hello

答案:C字符数组中的数据存储时必须以'\0'结尾。

A:错B:对

答案:A有定义:chara[]="1";则a数组的长度是2。

A:对B:错

答案:A下列字符串赋值语句中,能正确把字符串Cprogram赋给数组的语句是()

A:chara[10]={'C','','p','r','o','g','r','a','m',''};B:chara[]={'C','','p','r','o','g','r','a','m'};C:chara[10];

strcpy(a,"Cprogram");D:chara[10]={"Cprogram"};

答案:ACD如有说明:inta[3][4];,则对a数组元素的合法引用是()

A:a[2][0]B:a[0][4]C:a[1][3]D:a[0][2]

答案:ACD

第十章测试

for(j=h+1;j<=max-1;j++)printf("%04d",a[j]);输出结果中,若数组小于1000则前面显示前导字符0.

A:对B:错

答案:A程序能实现求20的阶乘值。ints=1;n=1;for(n=1;n<=20;n++)s=s*n;

A:对B:错

答案:B对数组下标的访问规律变化,可用数组赋指定值实现。

A:对B:错

答案:A扫雷游戏设计数据结构只能用二维数组。

A:对B:错

答案:B程序设计基本过程包括:

A:确定数据的组织形式即数据结构。B:代码的编写、调试、运行。C:理解题意,分析需求。D:总体设计和详细设计E:界面设计。

答案:ABCDE一个递归算法必须包括()。

A:递归部分B:终止条件和循环部分C:终止条件和递归部分D:循环部分

答案:C对于递归函数f,调用f(4),其返回值为()。

intf(intn)

{

if(n)

returnf(n-1)+n;

elsereturnn;

}

A:0B:4C:10D:其余选项均不是

答案:C调用函数f(27)的输出结果是()。

voidf(intn)

{

if(n<5)

printf("%d",n);

else{

printf("%d",n%5);

f(n/5);

}

}

A:201B:21C:20D:102

答案:A有如下函数调用语句:func(rec1,rec2+rec3,(rec4,rec5));则该函数调用语句中,含有的实参个数是()。

A:4B:有语法错C:3D:5

答案:C在C语言中,下列错误的说法是。

A:对于continue语句,可以通过改变程序的结构而不使用它B:不允许在函数定义中再定义函数C:函数可以递归调用D:递归程序不可能用非递归算法实现

答案:D对于以下递归函数f,调用f(4),其返回值为()。

intf(intn)

{returnf(n-1)+n;}

A:其余选项均不是B:0C:10D:11

答案:A有两个字符数组a,b,则以下正确的输入语句是().

A:scanf("%s%s",a,b);B:gets("a"),gets("b");C:scanf("%s%s",&a,&b);D:gets(a,b);

答案:A若用数组名作为函数调用时的实参,则实际上传递给形参的是()。

A:数组的第一个元素值B:数组首地址C:数组元素的个数D:数组中全部元素的值

答案:B对字符串进行输入输出操作时,只能对字符串整体进行输入输出。

A:对B:错

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

A:对B:错

答案:A

第十一章测试

使用指针变量访问目标变量,也称为对目标变量的()访问。

A:一般性B:直接C:一次性D:间接

答案:D若有说明:int

i,j=7,*p=&i;则与i=j;等价的语句是().

A:i=**p;B:*p=*&j;C:i=p;D:i=&j;

答案:Binta=2,*p=&a,*q=p,则以下非法赋值语句是()。

A:*p=*q;B:q=a;C:p=q;D:a=*q;

答案:B若有定义“int*p,m=5,n;”,则下列选项中正确的是().

A:p=&n;

*p=m;B:p=&n;

scanf(“%d”,&p);C:p=&n;

scanf("%d",*p);D:scanf("%d",&n);

*p=n;

答案:A若定义:inta=5,*b=&a;则printf(“%d”,*b);的输出结果是()。

A:a的地址B:5C:无确定值D:6

答案:B下列关于指针概念的描述,错误的是().

A:指针的值是可以改变的B:指针的类型是他所存放的数值的类型C:指针中存放的是某变量或对象的地址值D:指针是变量,它也具有一个内存地址值

答案:B如果x是整型变量,则合法形式为()。

A:&(x+5)B:&*xC:*&xD:*x

答案:C变量的指针,其含义是指该变量的()。

A:名B:一个标志C:地址D:值

答案:C系统对变量的直接访问是将变量的地址放在另一个内存单元中。

A:对B:错

答案:B“inti,k,*p=&i;”中定义的“*p=&i;”等价于“int*p;p=&i;”。

A:错B:对

答案:B

第十二章测试

假设scanf语句执行时输入ABCDE<回车>,能使puts(s)语句正确输出ABCDE字符串的程序段是__。

A:char*s;scanf("%s",s);puts(s);B:chars[5]={"ABCDE"};puts(s);C:chars[5]={'A','B','C','D','E'};puts(s);D:char*s;s="ABCDE";puts(s);

答案:D下面程序的运行结果是()。

#include<stdio.h>intmain(void){

intx[5]={2,4,6,8,10},*p,**pp;

p=x;

pp=&p;

printf(“%d”,*(p++));

printf(”%d”,**pp);

return0;}

A:22B:46C:24D:44

答案:C根据声明inta[10],*p=a;,下列表达式错误的是()。

A:a[9]B:*p++C:p[5]D:a++

答案:D若有定义“inta[10]={1,2,3,4,5,6,7,8,9,10},*p;”,则下列语句正确的是()。

A:for(p=a;p<(a+10);++a)B:for(p=a,a=a+10;p<a;p++)C:for(p=a;a<(p+10);a++)D:for(p=a;p<(a+10);p++)

答案:D若有定义“inta[10],*p=a;”,则p+5表示()。

A:a[5]的值B:a[6]的值C:a[4]的地址D:a[5]的地址

答案:D若有定义chara[]="Iamaboy",*b="Iamaboy";,则下列叙述错误的是()。

A:b中存放的地址值可以改变B:b指向其他字符串时,字符串的长度不受限制C:b中存放的地址就是数组a的首地址D:a+3表示的是字符m的地址

答案:C若有语句inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a,则()不是对a数组元素的正确引用(0<=i<=10)。

A:*(&a[i])B:*(*(a+i))C:a[p-a]D:p[i]

答案:B若有定义“inta[5],*p=a;”,能正确引用a数组元素的是()。

A:&a[5]B:*(p+5)C:*(a+2)D:a+2

答案:C设有定义语句“floats[10],*p1=s,*p2=s+5;”,下列表达式错误的是()。

A:p2--B:p1-p2C:p1=0xffffD:p1<=p2

答案:C以下程序段的输出结果是()。

char*p[]={"ABC","DEF","GHI"};

intj;

puts(p[1]);

A:BB:DEFC:CD:ABC

答案:B用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。

A:对B:错

答案:A数组名代表数组的起始地址。

A:错B:对

答案:B有如下说明:int

a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(p+8)。

A:对B:错

答案:A

第十三章测试

以下程序运行后的输出结果是____。

#include<stdio.h>structs{

intx;

inty;}data[2]={10,100,20,200};intmain(){

structs*p=data+1;

printf("%d",p->x);

return0;}

A:10B:20C:21D:11

答案:B有如下定义:

structStudent{

charname[10];

intage;

chargender;}std[3],*p=std;则以下各输入语句中错误的是:

A:scanf("%s",&);B:scanf("%c",&(p->gender));C:scanf("%d",&(*p).age);D:scanf("%c",&std[0].gender);

答案:A有如下定义:struct

date{intyear;intmonth;

intday;};struct

{charname[20];charsex;structdatebirthday;}person;下面正确的赋值语句是()。

A:person.year=1980;B:birthday.year=1980

;C:person.birthday.year=1980;D:year=1980

;

答案:C共用体变量在程序执行期间()。

A:没有成员一直驻留在内存中B:只有一个成员一直驻留在内存中C:部分成员一直驻留在内存中D:所有成员一直驻留在内存中

答案:C设有以下定义:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正确的赋值语句是()。

A:p=&data.a;B:p=data.a;C:*p=data.a;D:p=&a;

答案:A对于结构体变量的引用,下列叙述正确的是()。

A:两个同一类型的结构体变量之间不能整体赋值。B:对结构体成员可以进行各种运算,其中“.”优先级最低。C:只能引用结构体变量成员的地址,不能引用结构体变量的地址。D:如果成员本身就是一个结构体,只能对最低级的成员进行赋值等引用和运算。

答案:D以下叙述错误的是()。

A:用typedef可以为各种类型起别名,但不能为变量起别名B:可以通过typedef增加新的类型C:用typedef定义新类型后,原有类型名仍有效D:可以用typedef将已存在的类型用一个新的名字代表

答案:B在一个单链表head中,若要在指针p所指结点后插入一个q指针所指结点,则执行

温馨提示

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

评论

0/150

提交评论