C语言程序设计(黑龙江工程学院)智慧树知到答案2024年黑龙江工程学院_第1页
C语言程序设计(黑龙江工程学院)智慧树知到答案2024年黑龙江工程学院_第2页
C语言程序设计(黑龙江工程学院)智慧树知到答案2024年黑龙江工程学院_第3页
C语言程序设计(黑龙江工程学院)智慧树知到答案2024年黑龙江工程学院_第4页
C语言程序设计(黑龙江工程学院)智慧树知到答案2024年黑龙江工程学院_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计(黑龙江工程学院)黑龙江工程学院智慧树知到答案2024年第一章测试

人类通过不同的语言进行交流,人与计算机的交流是通过()来实现的。

A:自然语言B:机械操作C:文字D:程序设计语言

答案:D高级语言处于程序设计语言发展的第()个阶段。

A:四B:二C:一D:三

答案:DC语言的创始人是()。

A:冯·诺依曼B:比尔·盖茨C:肯·汤普逊D:丹尼斯·里奇

答案:DC语言源程序中main函数()。

A:有且只能有一个B:可以有一个C:可有可无D:可有多个

答案:AC语言源程序文件扩展名为()。

A:cppB:exeC:objD:c

答案:D下列说法中不正确的是(

)。

A:C程序书写时,一行可以写多个语句B:C程序书写时,区分大小写字母C:C程序书写时每行必须有行号D:C程序书写时,一个语句可分成几行书写

答案:CC语言是结构化语言。

A:对B:错

答案:AC语言是面向对象语言。

A:对B:错

答案:BC语言是面向过程语言。

A:错B:对

答案:B开发C语言程序包括编辑源程序、编译、运行三个步骤。

A:错B:对

答案:A

第二章测试

表达式:(int)((double)9/2)-9%2的值是_____

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

答案:C以下选项中关于C语言常量的叙述错误的是_______

A:常量可分为数值型常量和非数值型常量

B:经常被使用的变量可以定义成常量

C:所谓常量,是指在程序运行过程中,其值不能被改变的量

D:常量分为整型常量、实型常量、字符常量和字符串常量

答案:B以下选项中,能用作用户标识符的是________

A:8_8

B:_0_

C:unsigned

D:void

答案:B以下选项中能表示合法常量的是______

A:3lf

B:1.5E2.0

C:‘’

D:1,200

答案:C按照C语言规定的用户标识符命名规则,不能出现在标识符中的是___________

A:大写字母

B:下划线

C:连接符

D:数字字符

答案:C以下选项中正确的定义语句是__________

A:double,a,b;

B:doublea;b;

C:doublea=b=7;

D:doublea=7,b=7;

答案:D设有定义intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是______

A:++k

B:k+1

C:k+=1

D:k++

答案:D以下叙述中正确的是_____

A:字符常量可以参与整数运算

B:转义字符用@符号开头

C:同一英文字符的大写和小写形式代表的是同一字符常量

D:字符变量在定义时不能赋初值

答案:AC语言中依据程序编译器的不同,int定义的字节数不同,不短于short,不长于long,一般为2或4个字节。

A:错B:对

答案:BC语言的整型常量有二进制、八进制、十进制和十六进制四种表示方式。

A:错B:对

答案:A

第三章测试

以下不属于结构化程序设计中基本结构的是_________。

A:跳转结构B:选择结构

C:循环结构D:顺序结构

答案:A以下类型的C语句中,不属于简单语句的是_________。

A:复合语句

B:空语句C:表达式语句

D:条件语句

答案:D若int类型数据占2个字节,则下列语句的输出结果为________。

intk=-1;printf(“%d,%u,%o”,k,k,k);

A:-1,32767,-177777B:-1,65535,177777

C:-1,-1,-1

D:-1,32768,177777

答案:B下列程序的输出是_______。#include<stdio.h>main(){printf(“%d”,null);}

A:变量无定义B:0C:1

D:-1

答案:A以下关于结构化程序设计中的三种基本结构,叙述不正确的是________。

A:每种基本结构均有唯一的一个入口和唯一的一个出口。B:选择结构也叫做分支结构,在该结构下只能选择程序的一条分支来执行,同时该分支可以为空。C:顺序结构是最简单的一种基本结构。D:循环结构中,需先对循环条件进行判断,条件成立才执行循环体。

答案:D在scanf函数中,附加格式字符h表示输入短整型数据,不能与其共同使用的格式字符是_______。

A:xB:fC:dD:o

答案:Bprintf(“%5.3s,%-5.3s,%2.3s”,“China”,“China”,“China”);以上语句的运行结果是_______。

A:□□Chi,Chi□□,ChB:Chi□□,□□Chi,Chi

C:□□Chi,Chi□□,Chi

D:□□ina,ina□□,ina

答案:Cfloata=1234.56;printf(“%e,%9e,%9.1e”,a,a,a);以上语句的运行结果是_______。

A:1.23456e+003,1.23456e+003,□1.2e+003B:1.234560e+003,1.234560e+003,□□1.2e+003

C:1.234560e+003,1.234560e+003,□1.2e+003D:1.234560e+3,1.234560e+3,□□□1.2e+3

答案:Cscanf(“%3d%*3d%3d”,&x,&y);当输入数据3456789012时,x,y的取值分别为________。

A:x=456,y=012B:x=345,y=678C:x=789,y=012D:x=345,y=901

答案:D以下字符输入输出函数中,用于输入单个字符的函数是gets()。

A:错B:对

答案:A

第四章测试

已知语句“if(w)…;else…;”,与表达式w的等价表示是:()

A:w!=0B:w==0C:w!=1D:w==1

答案:A设x,y,z为int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(

)。

A:x<=yB:

'x'&&'y'

C:!((x<y)&&!z||1)D:x||y+z&&y-z

答案:C表示算术关系12<=x<=y的C语言表达式为()

A:(12<=x)&(x<=y)B:(12<=x)|(x<=y)C:(12<=x)||(x<=y)D:(12<=x)&&(x<=y)

答案:D判断char型变量ch是否为大写字母的正确表达式是()

A:A’<=ch<=‘Z’B:(ch>=‘A’)&(ch<=‘Z’)

C:

(ch>=‘A’)&&(ch<=‘Z’)

D:(‘A’<=ch)AND(‘Z’>=ch)

答案:C若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是()

A:!(A%2)B:

A%2==1

C:

!(A%2==0)

D:A%2

答案:A设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()

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

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

intm=5;

if(m++>5)

printf(“%d\n”,m);

else;

printf(“%d\n”,m--);

}

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

答案:A若运行时给变量x输入12,则以下程序的运行结果是()main(){

intx,y;

scanf(“%d”,&x);

y=x>12?x+10:x-12;

printf(“%d\n”,y);}

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

答案:Dmain(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是()

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

答案:D逻辑运算符两侧运算对象的数据类型可以是任何类型的数据。

A:对B:错

答案:A

第五章测试

以下程序的运行结果是()main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+=1;printf("%d\n",c);}

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

答案:Cmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d",a,b);}运行改程序后a和b的值分别为()

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

答案:A有以下程序#include<stdio.h>main(){inta=1,b=0;if(!a)b++;elseif(a==0)

if(a)b+=2;elseb+=3;printf(“%d\n”,b);}程序运行后的输出结果是()

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

答案:C若整数x分别等于95、87、100、43、66、79,则以下程序段运行后屏幕显示是什么?     switch(x/10)    

 { case 6:       

case 7:         printf("Pass\n");  break;       

case 8:         printf("Good\n");  break;       

case 9:       

case 10:        printf("VeryGood\n");  break;       

default:        printf("Fail\n");

     } 1.x等于 95时,程序段运行后屏幕上显示()                2. x等于 87时,程序段运行后屏幕上显示()      3.x等于100时,程序段运行后屏幕上显示()                 4.x等于 43时,程序段运行后屏幕上显示()    5.x等于 66时,程序段运行后屏幕上显示   ()6.x等于 79时,程序段运行后屏幕上显示()A.Pass

B.Good

C.VeryGood

D.Fail

A:BCDCDAB:CBCDAAC:ABCDAAD:DCCDAC

答案:B分析以下程序, 下列说法正确的是()main()   { int x=5,a=0,b=0; 

if(x=a+b)

 printf("* * * *"); 

else   

printf("# # # #");   

} 

A:输出* * * *B:有语法错,不能通过编译C:输出# # # #D:通过编译,但不能连接

答案:C有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序的输出结果是()

A:1.000000B:0.000000

C:0.250000D:0.500000

答案:D以下不正确的if语句形式是()

A:if(x<y){x++;y++;}B:if(x>y&&x!=y);C:if(x==y)x+=y;D:if(x!=y)scanf("%d",&x)elsescanf("%d",&y);

答案:Dinta=3,b=2,c=1;if(a>b>c)a=b;elsea=c;则a的值是()

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

答案:D有以下程序main(){inta=5,b=4,c=3,d=2;if(a>b>c)printf("%d\n",d);elseif((c-1>=d)==1)printf("%d\n",d+1);elseprintf("%d\n",d+2);}执行后输出结果是()

A:3

B:2C:4D:编译时出错

答案:AC语言的if语句嵌套时,if与else的配对关系是:每个else总是与它上面的if配对。

A:错B:对

答案:A

第六章测试

以下叙述中正确的是________。

A:continue语句的作用是:在执行完本次循环体中剩余语句后,终止循环

B:在while语句和do-while语句中无法使用continue语句

C:只能在循环体内和switch语句体内使用break语句

D:当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并终止循环

答案:C以下不构成无限循环的语句或者语句组是_________。

A:n=0;while(1){n++;}

B:for(n=0,i=1;;i++)n+=i;

C:n=0;

do{++n;}while(n<=0);

D:n=10;while(n);{n--;}

答案:C下列语句中,有语法错误,不能编译的是_____。

A:dox++while(x==10);

B:do2;while(a==b);

C:while(0);

D:while(x=y)5;

答案:A以下程序段中,while循环执行的次数是________。intk=0;while(k=1){

k++;}

A:执行一次

B:有语法错误,不能执行

C:无限次

D:一次也不执行

答案:C以下程序段执行后,输出结果是inti,sum=0;for(i=1;i<6;i++){

sum+=i;}printf("%d",sum);

A:14B:0C:不确定D:15

答案:D循环语句“for(x=0,y=0;(y!=123))||(x<4);x++);”的循环次数为________。

A:4次B:不确定C:无限次D:3次

答案:C下述程序代码段输出的结果是________。for(k=1;k<10;k++);printf("k=%d,k=%o,k=%x",k,k,k);

A:k=10,k=12,k=13

B:k=11,k=12,k=11

C:k=11,k=13,k=b

D:k=11,k=013,k=0xb

答案:C以下程序段中,while循环的循环次数是________。inti=0;while(i<10){

if(i<1)

{

continue;

}

if(i==5)

{

break;

}

i++;}

A:1B:6C:死循环D:10

答案:C对于“for(表达式1;表达式2;表达式3)循环体”,当表达式2的值为真时,会重复执行表达式1,循环体和表达式3。

A:错B:对

答案:A在循环语句“do

语句while(条件);”中,当条件为0时结束循环。

A:错B:对

答案:B

第七章测试

程序功能:输入n的值(n<10),计算1!+2!+3!+......+n!,并输出计算结果。程序中空白处应该填________。#include<stdio.h>intmain(){

inti,n;

longsum=0,fac=1;

//fac存储每个加项(阶乘)的值

printf("请输入n的值:");

scanf("%d",&n);

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

{

___________

//后一加项与前一加项的关系

sum=sum+fac;

}

printf("和为%ld",sum);

return0;}

A:fac++;B:fac=fac*i;C:fac=fac+sum;D:sum=sum*i;

答案:B若有整型变量i,j,则以下程序段中内循环体“printf("ok");”的循环次数为________。for(i=5;i;i--){

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

{

printf("ok");

}}

A:30B:20C:25D:24

答案:B以下程序段的输出结果是________。inti=0,a=0;

while(i<20){

for(;;)

{

if(i%10==0)

{

break;

}

else

{

i--;

}

}

i+=11;

a+=i;}printf("%d",a);

A:21B:33C:11D:32

答案:D假定a和b为int型变量,则执行以下语句后b的值为________。a=1;b=10;do{

b-=a;

a++;}while(b--<0);

A:-1B:-2C:8D:9

答案:C设x和y均为int型变量,则执行下面的循环后y的值为for(y=1,x=1;y<=50;y++){

if(x>=10)

{

break;

}

if(x%2==1)

{

x+=5;

continue;

}

x-=3;}

A:4B:2C:8D:6

答案:D设i,j,k均为整型变量,则执行如下语句后,k的值为________。for(i=0,j=10;i<=j;i++,j--){

k=i+j;}

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

答案:C以下程序段的输出结果是________。inta=0,i;

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

switch(i)

{

case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

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

A:13B:10C:31D:20

答案:C以下程序段运行时,如果从键盘输入1298再回车,则输出结果为intn1,n2;

scanf("%d",&n2);while(n2!=0){

n1=n2%10;

n2=n2/10;

printf("%d",n1);}

A:1298B:8921C:1D:9

答案:B以下程序段的输出结果是________。inti=10,j=0;do{

j=j+i;

i--;}while(i>2);printf("%d",j);

A:25B:48C:52D:54

答案:Cfor(;;)和while(1)构成的都是无限循环。

A:对B:错

答案:A

第八章测试

如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};,则数组a的大小是________。

A:不定B:11C:10D:8

答案:C有如下说明:

inta[10]={0,1,2,3,4,5,6,7,8,9};则数值不为9的表达式是________。

A:a[10-1]B:a[9]-a[0]C:a[9]-0D:a[8]

答案:D下列程序执行后的输出结果是__________。

main()

{inta,b[5];

a=0;b[0]=3;

printf("%d,%d",b[0],b[1]);

}

A:3,0B:3

0C:0,3D:3,不定值

答案:D以下程序输出的结果是________。#include

<stdio.h>main(){inta[]={1,2,3,4,5},i,j,s=0;

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

s=s*10+a[i];

printf("s=%d",s);

}

A:s=1,2,3,4,5B:s=5,4,3,2,1C:s=12345

D:s=54321

答案:C执行下面的程序段后,变量k中的值为__________。intk=3,s[2];

s[0]=k;k=s[1]*10;

A:33B:10C:不定值D:30

答案:C假定一个int型变量占用四个字节,若有定义:intx[10]={0,2,4};则数组x在内存中所占字节数是

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

答案:Ainta[3]定义了一个整型数组,它的3个元素是a[1],a[2]和a[3]。

A:对B:错

答案:B可以在定义数组时只给一部分数组元素赋值。

A:对B:错

答案:A对数组元素赋予的初值可以依次放在一对圆括号内。

A:对B:错

答案:Binta[3]定义了一个整型数组,它的3个元素是a[0],a[1]和a[2]。

A:对B:错

答案:A

第九章测试

在定义intn[5][6];后,若认为n[0][0]为第1个元素,则第10个元素是________。

A:n[2][4]B:n[1][4]C:n[1][3]D:n[2][5]

答案:C下列二维数组初始化语句中,正确的是__________。

A:inta[][3]={8,0,7,0,3,l,2,5};B:floata[2][3]={{l,2},{3,4},{5,6}};C:floata[3][]={{1,2,3},{4,5,6},{7,8,9}};D:inta[][]={{9,3,1},{8,4,2},{3,5,7}};

答案:A若定义chara[]="Hello!";则strlen(a)、sizeof(a)的值分别为

A:78B:77C:67D:76

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

)。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};

printf("%d%d%d%d",a[0][3],a[1][2],a[2][1],a[3][0]);}

A:输出值不定B:5430C:1470D:0650

答案:D若有定义:inta[2][4];,则引用数组元素正确的是

A:a[2][2+1]B:a[0][4]C:

a[0][3]D:a[2][2]

答案:C若定义一个名为s且初值为"123"的字符数组,则下列定义错误的是________。

A:chars[]={’1','2','3',''};

B:chars[]={"123"};C:chars[]={‘123’};

D:chars[4]={'1','2','3'};

答案:C设有定义:chars[12]="string";则printf("%d",strlen(s));的输出结果是________。

A:12B:7C:6D:11

答案:C语句printf("%d",strlen("abs\101"));的输出结果是________。

A:10B:8C:4D:7

答案:C在用字符数组来处理字符串时,应始终保证数组的长度大于字符串的实际长度。

A:错B:对

答案:B使用字符串连接函数strcat(字符数组1,字符数组2)时,字符数组1要定义足够的长度,才能装入全部被连接的字符串,而使用strcpy(字符数组1,字符数组2)函数时,无需考虑字符数组1的长度问题。

A:对B:错

答案:A

第十章测试

在C语言中,若定义函数时对函数类型未加显式说明,则函数的隐含类型为_______。

A:double

B:void

C:char

D:int

答案:D在C语言的函数调用中,如果普通变量作为函数的参数,则调用函数时_______。

A:实参和形参共用一个存储单元

B:由用户确定是否共用一个存储单元

C:实参和形参分别占用一个独立的存储单元

D:由计算机系统确定是否共用一个存储单元

答案:C在C语言的函数调用中,如果普通变量作为函数的实参,则它与对应形参之间的传递方式是_______。

A:地址传递

B:由用户指定传递方式

C:单向值传递

D:由实参传递给形参,再由形参传递给实参

答案:C下面对函数的叙述,正确的是_______。

A:函数不能嵌套定义

B:函数中没有return语句,说明函数不带值

C:函数中的返回值,是通过return语句获得的

D:函数中无论是否有return语句,都能返回正确值

答案:C在C语言中规定,函数返回值的类型由_______。

A:return语句中的表达式类型决定

B:调用该函数时系统临时决定

C:调用该函数的主调函数决定

D:定义该函数时所指定的函数类型决定

答案:D函数调用在程序中出现的位置一般有3种方式,下面叙述中错误的是_______。

A:函数调用可以出现在表达式中

B:函数调用可以作为独立的语句存在

C:函数调用可以作为一个函数的实参

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

答案:D下面程序的输出结果是_______。#include<stdio.h>doublefunc(intx,inty,intz);intmain(void){

doublex;

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

x=func(a,b,c);

printf("%f",x);

return0;}doublefunc(intx,inty,intz){

doublet;

t=x%y*z;

returnt;}

A:3.000000

B:15.000000

C:3

D:15

答案:B在C语言中,函数调用语句function((a,b,c),(d,e));中参数的个数是_______。

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

答案:B在C语言中,程序的基本单位是文件。

A:对B:错

答案:B在C语言中,程序进行编译的单位是文件。

A:错B:对

答案:B

第十一章测试

下面叙述中不正确的是_______。

A:在一个函数内的复合语句中定义的变量只在本函数范围内有效

B:在不同的函数中可以使用相同名字的变量,它们在内存中占用不同的单元

C:在一个函数中定义的变量只在本函数范围内有效

D:函数中的形参是函数自己的局部变量

答案:A下面叙述中不正确的是_______。

A:在C语言中,不能在一个函数的内部再定义函数

B:函数可以没有形参,可是函数名后的一对括号却不能省略

C:函数的类型可以是整型、实型、字符型,但不可以是指针型

D:在没有声明函数返回值类型时,函数返回值的类型默认为int

答案:C下面程序的输出结果是_______。#include<stdio.h>intfunction(inta,intb);intmain(void){

intx=5,y=3,s;

s=function(x,y);

printf("%d",s);

return0;}

intfunction(inta,intb){returna*a-b*b;}

A:32B:16C:8D:2

答案:B下面程序的输出结果是_______。#include<stdio.h>longfunc(intn);intmain(void){

printf("%ld",func(5));

return0;}

longfunc(intn){

if(n>2){returnfunc(n-1)+func(n-2);}

else{return1;}}

A:8B:5C:7D:6

答案:B下面程序的输出结果是_______。#include<stdio.h>intfunc(void);

intmain(void){

inti,s;

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

printf("%d",s);

return0;}

intfunc(void){

staticintx=6;

x++;

returnx;}

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

答案:C下面程序中应该补充(填写在横线位置)的代码是_______。#include<stdio.h>intmax(intx,inty);

//函数功能:求两数中的较大数

intmain(void){

inta,b,c;

scanf("%d,%d",&a,&b);

c=__________________;

printf("maxis%d",c);

return0;}

intmax(intx,inty){

intz;

if(x>y)

z=x;

else

z=y;

returnz;}

A:max(x,y)

B:max(a,b)

C:intmax(inta,intb)

D:max(&a,&b);

答案:B下面程序中应该补充(填写在横线位置)的代码中,有错的是#include<stdio.h>______________________________

intmain(void){

inta,b,c;

scanf("%d,%d",&a,&b);c=min(a,b);

printf("minis%d",c);

return0;}

//函数功能:求两数中的较大数intmin(intx,inty){

intz;

z=x<y?x:y;

returnz;}

A:intmin(int,int);

B:intmin(intx,inty);

C:min(intx,inty);

D:intmin(intx,inty)

答案:D下面程序的输出结果是_______。#include<stdio.h>voidincrement(void);

intmain(void){

increment();

increment();

increment();

return0;}

voidincrement(void){

intx=0;

x+=1;

printf("%d",x);}

A:1

2

3B:3

3

3C:1D:1

1

1

答案:D在函数调用中,若funA调用了函数funB,函数funB又调用了函数funA,则这是一个不合法的调用。

A:错B:对

答案:A在一个源程序文件中定义的全局变量的作用域为从定义该变量的位置开始至本文件结束。

A:错B:对

答案:B

第十二章测试

若有定义inta[]={2,4,6,8,10},p=a;a的值是数组首地址,则*(p+1)的值是4。

A:对B:错

答案:A关于C语言指针的运算:指针只有加减操作,没有乘除操作。指针可以加常数、减常数;相同类型的指针可以相加、相减。

A:错B:对

答案:A已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是

A:ptr1=ptr2B:k=*ptr1+*ptr2C:ptr2=k

D:k=*ptr1*(*ptr2)

答案:C若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是

A:&*a,&a,*pointB:a,point,*&aC:*&point,*point,&aD:&a,&*point,point

答案:D若有说明;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若已定义chars[10];则在下面表达式中不表示s[1]的地址是

A:s+1B:&s[0]+1

C:&s[1]D:s++

答案:D若有定义:inta[5],*p=a;则对a数组元素的正确引用是

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

D:*(a+2)

答案:D有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值

A:5

B:6C:9D:8

答案:C若有以下定义,int

a[10],*p=a;则p+5表示

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

答案:A设已有定义:inta[10]={15,12,7,31,47,20,16,28,13,19},*p;下列语句中正确的是

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

答案:A

第十三章测试

指针数组的每个元素都是一个指针变量。

A:对B:错

答案:A可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。

A:错B:对

答案:B下面程序段的运行结果是

chara[]=”language”,*p;

p=a;

while(*p!=’u’){printf(“%c”,*p-32);p++;}

A:langUAGEB:LANGC:LANGUAGE

D:language

答案:B设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是

A:p2=cB:c=*p1*(*p2);C:p1=p2D:c=*p1+*p2;

答案:A已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是

A:*p=max;

B:p=max;

C:p=max(a,b);D:*p=max(a,b);

答案:B若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是

A:(*p)(a,b);

B:(*p)max(a,b);

C:*p(a,b);D:*pmax(a,b);

答案:A下面选项属于函数指针的是

A:两者都不是B:int*p(int,int)C:(int*)p(int,int)

D:两者都是

答案:A若有以下函数首部

int

fun(double

x[10],int

*n),则下面针对此函数的函数声明语句中正确的是

A:int

fun(doublex,int*n);

B:int

fun(double

,int);C:int

fun(double*,

int*);D:int

fun(double*x,intn);

答案:C已定义以下函数

fun(int

*p)

{

return

*p;

}

该函数的返回值是

A:形参p所指存储单元中的值B:形参p的地址值C:不确定的值D:形参p中存放的值

答案:A以下正确的程序段是

A:charstr[20];scanf("%s",&str);

B:char*p;scanf("%s",p);C:charstr[20];

scanf("%s",&str[2]);D:charstr[20],*p=str;scanf("%s",p[2]);

答案:C

第十四章测试

预处理命令的前面必须加一个“#”号。

A:错B:对

答案:B宏定义不是C语句,不必在行末尾加分号。

A:错B:对

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

。  #define PT 5.5  #define S(x) PT*x*x  main(){int a=1,b=2;    printf(“%4.1f”,S(a+b));  } 

A:12.5B:9.5C:12.0D:33.5

答案:B以下程序的运行结果是。

#defineMIN(x,y)(x)<(y)?(x):(y)

main()

{

inti=10,j=15,k;

k=10*MIN(i,j);

printf(“%d”,k);

}

A:15B:10C:100D:150

答案:A若有以下宏定义如下:

#defineN2

#defineY(n)((N+1)*n)

则执行语句z=2*(N+Y(5));后的结果是。

A:z=70B:z=34C:z无定值D:语句有错误

答案:BC语言的编译系统对宏命令的处理是。

A:和C程序中的其它语句同时进行编译的B:在对源程序中其它成份正式编译之前进行的C:在程序运行时进行的D:在程序连接时进行的

答案:B以下有关宏替换的叙述不正确的是。

A:宏替换只是字符替换B:宏替换不占用运行时间C:宏名无类型D:宏名必须用大写字母表示

答案:D在宏定义#definePI3.14159中,用宏名PI代替一个。

A:单精度数B:字符串

C:双精度数D:常量

答案:B请读程序:#defineADD(x)x+xmain(){

intm=1,n=2,k=3;

intsum=ADD(m+n)*k;

printf(“sum=%d”,sum);

}上面程序的运行结果是。

A:sum=10B:sum=12C:sum=9D:sum=18

答案:A以下叙述中不正确的是。

A:预处理命令行都必须以#号开始B:在程序中凡是以#号开始的语句行都是预处理命令行C:C程序在执行过程中对预处理命令行进行处理D:以下是正确的宏定义#defineIBM_PC

答案:C

第十五章测试

下面结构体的定义语句中,错误的是()。

A:structord{intx;inty;intz;}structorda;

B:structord{intx;inty;intz;}a;

C:structord{intx;inty;intz;};structorda;

D:struct{intx;inty;intz;}a;

答案:A有以下的结构体变量定义语句:structstudent{

intnum;

charname[9];}stu;则下列叙述中错误的是()。

A:struct是C的关键字

B:结构体名为student

C:num是结构体成员名

D:结构体类型名为stu

答案:D设有定义:struct{charmark[12];

intnum1;

doublenum2;}t1,t2;若变量均已正确赋初值,则以下语句中错误的是()。

A:t2.num1=t1.num1;

B:t1=t2;

C:t2.num2=t1.num2;

D:t2.mark=t1.mark;

答案:B若有如下说明语句,则下面叙述中不正确的是()。structstudent{

longnum;

charname[20];

charsex;

intage;}stu;

A:struct是结构体类型关键字

B:structstudent是结构体类型

C:stu是结构体类型名

D:num,name,sex,age都是结构体成员名

答案:C若有如下说明语句,则定义了()。unionstudent{

longnum;

charname[20];

charsex;

intage;};

A:结构体类型

B:共用体变量

C:结构体变量

D:共用体类型

答案:D当定义一个结构体变量时,系统分配给它的内存空间字节数是()。

A:各成员所需内存字节数的总和

B:结构体中最后一个成员所需内存字节数

C:成员中占内存字节数最大的

D:结构体中第一个成员所需内存字节数

答案:A以下程序在VC6.0

温馨提示

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

评论

0/150

提交评论