C语言程序设计智慧树知到课后章节答案2023年下海南科技职业大学_第1页
C语言程序设计智慧树知到课后章节答案2023年下海南科技职业大学_第2页
C语言程序设计智慧树知到课后章节答案2023年下海南科技职业大学_第3页
C语言程序设计智慧树知到课后章节答案2023年下海南科技职业大学_第4页
C语言程序设计智慧树知到课后章节答案2023年下海南科技职业大学_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计智慧树知到课后章节答案2023年下海南科技职业大学海南科技职业大学

第一章测试

C语言是一种(

)。

A:高级语言B:低级语言C:汇编语言D:机器语言

答案:高级语言

C语言程序总是从(

)。

A:源代码的第一条可执行语句B:源代码的第一个函数C:源代码的第一行D:主函数

答案:主函数

C语言程序是由(

)构成。

A:若干过程B:若干对象C:若干子程序D:一个主函数和若干函数

答案:一个主函数和若干函数

在C语言程序中,主函数的位置(

)。

A:一定放在所有代码最后B:一定放在所有代码最前面C:可以放在代码的任何位置D:一定放在所有代码中间

答案:可以放在代码的任何位置

以下叙述正确的是(

)。

A:C语言程序每个语句结束都要写分号B:C语言程序每行结束都要写分号C:C语言程序不区分大小写D:C语言程序一行只能写一条语句

答案:C语言程序每个语句结束都要写分号

要把高级语言编写的源程序转换为目标程序,需要使用(

)。

A:

编译程序B:

驱动程序C:

编辑程序D:

诊断程序

答案:

编译程序

若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(

)。

A:scanf("%d%d%d",a,b,*c)B:scanf("%d%d%d",&a,&b,c);C:scanf("%d%d%d",&a,&b,&c);D:scanf("%d%d%d",a,b,c);

答案:scanf("%d%d%d",&a,&b,&c);

以下选项中合法的用户标识符是(

)。

A:datB:3DmaxC:long

D:_2Test

答案:_2Test

下列说法中正确的是(

)。

A:

C程序书写时,一个语句可分成几行书写B:

C程序书写时,一行只能写一个语句C:

C程序书写时,不区分大小写字母D:

C程序书写时每行必须有行号

答案:

C程序书写时,一个语句可分成几行书写

英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为(

)。

A:52B:68C:50D:66

答案:68

第二章测试

C语言中的注释(

)。

A:不运行B:运行C:其他情况D:有的运行有的不运行

答案:不运行

设变量定义为“inta,b;”,执行下列语句时,输入(

),则a和b的值都是10。scanf("a=%d,b=%d",&a,&b);

A:10

10

B:a=10

b=10

C:10,10D:a=10,b=10

答案:a=10,b=10

)是不正确的字符常量。

A:’’B:’n’

C:’1’D:”a”

答案:”a”

若变量已正确定义并赋值,表达式(

)错误。

A:3.14%2B:a/b/cC:a*b/cD:2,b

答案:3.14%2

)是合法的用户自定义标示符。

A:<fr>

B:floatC:b-bD:_isw

答案:_isw

(

)是C语言提供的合法的数据类型关键字。

A:Float

B:signedC:CharD:integer

答案:integer

在C语言中,要求参加运算的数必须时整数的运算符是(

)。

A:=B:%

C:/D:*

答案:%

与代数式(x*y)/(u*v)不等价的C语言表达式是(

)。

A:x*y/(u*v)

B:x/(u*v)*y

C:x*y/u*vD:x*y/u/v

答案:x*y/u*v

对于charcx='9';语句,正确的是(

)。

A:cx的ASCII值是33B:cx的值为三个字符

C:不合法

D:cx的值为四个字符

答案:不合法

若intk=7,x=12;则能使值为3的表达式是(

)。

A:x%=(k-k%5)

B:x%=(k%=5)

C:x%=k-k%5

D:(x%=k)-(k%=5)

答案:(x%=k)-(k%=5)

第三章测试

若变量已正确定义,表达式(

)的值不是2。

A:1<1+1B:5%3

C:a=2

D:7/3

答案:1<1+1

在C程序中,用(

)表示逻辑值“真”。

A:非1的数

B:0C:大于1的数D:非0的数

答案:非0的数

下面程序的正确输出结果是(

)。main(){

int

a=2,b=-1,c=2;

if(a<b)

if(b<0)

c=1;

else

c++;

printf(“%d”,c);}

A:2

B:0

C:3D:1

答案:2

下面程序的正确输出结果是(

)。main(){

int

a=1,b=3,c=5,d=4,x;

if(a<b)

if(c<d)

x=1;

else

if(a<c)

if(b<d)

x=2;

else

x=3;

else

x=6;

else

x=7;

printf(“%d”,x);}

A:3

B:6C:0D:2

答案:2

下面程序的正确输出结果是(

)。main(){

int

x=1,y=0,a=0,b=0;

switch(x){

case

1:switch(y)

{

case

0:a++;break;

case

1:b++;break;}

case

2:a++;b++;break;

case

3:a++;b++;

}

printf(“%d

%d\n”,a,b);}

A:1

1B:2

1C:2

2D:1

0

答案:2

1

能正确表示"当x的值在[1,10]和[200,210]范围内为真,否则为假"的是(

)。

A:(x>=1)&&(x<=10)&&(x>=200)||(x<=210)

B:(x>=1)&&(x<=10)||(x>=200)&&(x<=210)C:(x>=1)||(x<=10)&&(x>=200)||(x<=210)D:(x>=1)||(x<=10)||(x>=200)||(x<=210)

答案:(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

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

)。

A:

('A'<=ch)AND('Z'>=ch)B:

'A'<=ch<='Z'

C:

(ch>='A')&(ch<='Z')D:

(ch>='A')&&(ch<='Z')

答案:

(ch>='A')&&(ch<='Z')

请阅读以下程序:main(){inta=5,b=0,c=0;if(a=b+c)printf("***");elseprintf("$$$");}以上程序(

)。

A:输出***B:可以通过编译但不能通过连接C:输出$$$D:有语法错误不能通过编译

答案:输出$$$

阅读以下程序,程序运行后,如果从键盘上输人5,则输出结果是(

)。main(){intx;scanf("%d",&x);if(x--<5)printf("%d",x);elseprintf("%d",x++);}

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

答案:4

若执行以下程序时从键盘上输入9,则输出结果是(

A:11

B:9C:8D:10

答案:10

第四章测试

下列for循环语句书写格式中,错误的是(

A:i=9;for(;i>=1;){i--;}B:i=9;for(;i<20;i++)

{......}C:for(i=9;i>1;i--);{......}

D:for(i=9;i<20;i++){......}

答案:for(i=9;i>1;i--);{......}

程序执行后输出的结果是:voidmain(){

inti;

for(i=1;i<20;i=i+2)

printf("%d",i);}

A:135791113151719B:1234567891011121314151617181920C:12345678910111213141516171819D:246891012141618

答案:135791113151719

求0+5+10+15+...+55的结果,下列循环语句中条件设置正确的是(

A:inta=0,s=0;do{s=s+a;a=a+5;}while(a<=55);B:inta=1,s=0;while(a<55){s=s+a;a++;}

C:inta,s=0;for(a=0;a<55;a=a+5){s=s+a;}D:inta,s=1;for(a=0;a<=55;a++){s=s+a;}

答案:inta=0,s=0;do{s=s+a;a=a+5;}while(a<=55);

关于循环嵌套的描述,错误的是(

A:循环次数=外层循环次数*内层循环次数B:内层循环每走一步,外层循环走一圈C:走得慢的循环放在外层,走得快的放内层D:外层循环每走一步,内层循环走一圈

答案:内层循环每走一步,外层循环走一圈

关于break语句和continue语句的使用结果,正确的是(

A:inta=1;while(a<10){while(a>6){continue;}printf("%d",a);a++;}执行结果是123456789B:inta=1;while(a<10){while(a>6){break;}printf("%d",a);a++;}执行结果是123456C:inta=1;for(;a<10;a++){if(a%3==0)break;printf("%d",a);}执行结果是123D:inta=1;for(;a<10;a++){if(a%3==0)continue;printf("%d",a);}执行结果是124578

答案:inta=1;for(;a<10;a++){if(a%3==0)continue;printf("%d",a);}执行结果是124578

以下程序的输出结果是(

)main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}

A:10,99,0B:10,109,1C:10,19,2D:9,87,6

答案:10,109,1

以下程序的输出结果是(

)main(){intn=4;while(n--)printf("%d",--n);}

A:321

B:210C:31D:20

答案:20

以下程序的输出结果是(

)main(){inti;for(i=1;i<6;i++){if(i%2){printf("#");continue;}printf("*");}}

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

答案:#*#*#

以下循环体的执行次数是(

)main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d",i);}

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

答案:1

以下程序段的执行结果是(

)inta,y;a=10;y=0;do{a+=2;y+=a;printf("a=%dy=%d",a,y);if(y>20)break;}while(a=14);

A:a=12y=12a=14y=16

a=16y=20B:a=12y=12

a=16y=28a=18y=24C:a=12y=12a=14y=26

D:a=12y=12a=14y=44

答案:a=12y=12

a=16y=28a=18y=24

第五章测试

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

)。

A:整型常量B:整型表达式C:整型常量或整型表达式D:任何类型的表达式

答案:整型常量或整型表达式

下面正确的定义语句是(

)。

A:doubley[][3]=0;B:longb[2][3]={{1},{1,2},{1,2,3}}C:inta[3]={1,2,3,4,5};D:floatx[3][2]={{1},{2},{3}}

答案:floatx[3][2]={{1},{2},{3}}

int

a[10];则对a数组元素的正确引用是(

)。

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

答案:a[10-10]

下面的程序有错误,发生在(

)。

main(){

float

a[3]={3*0};

inti;

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

scanf(“%d”,&a[i]);

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

a[0]=a[0]+a[i];

printf(“%d”,a[0]);}

A:第五行B:没有错误C:第三行D:第七行

答案:第三行

若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(

)。

A:i*m+j+1B:i*m+j-1C:i*m+jD:j*m+i

答案:i*m+j+1

int

a[4]={5,3,8,9};其中a[3]的值为(

)。

A:3

B:8

C:9

D:5

答案:9

以下4个字符串函数中,(

)所在的头文件与其他3个不同。

A:strlen

B:strcmp

C:gets

D:strcpy

答案:gets

对字符数组进行初始化,(

)形式是错误。

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

B:charc4[]="123";

C:charc3[]={'1','2','3',''};D:charc2[]=123;

答案:charc2[]=123;

若有以下说明,则数值为4的表达式是(

)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;

A:a['d'-'c']

B:a[4]

C:a[g-c]

D:a['d'-c]

答案:a['d'-c]

下列定义的字符数组中,输出printf("%s",str[2]);的输出是(

)。staticstr[3][20]={"basic","foxpro","windows"};

A:basic

B:foxpro

C:windows

D:输出语句出错

答案:windows

第六章测试

下列程序的输出结果是(

)。fun(inta,intb,intc)

{

c=a*b;

}voidmain()

{

intc;

fun(2,3,c);

printf(”%d”,c);

}

A:6

B:1C:0D:无法确定

答案:无法确定

C语言中,函数返回值的类型是由(

)。

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

答案:在定义该函数时所指定的函数类型所决定

以下不正确的说法是(

)。

A:形参可以是常量、变量或表达式B:如果形参和实参的类型不一致,以形参类型为准C:实参可以是常量、变量或表达式D:实参和形参的个数要一致

答案:形参可以是常量、变量或表达式

以下正确的说法是(

)。

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

答案:函数的定义不可以嵌套,函数的调用可以嵌套

以下正确的函数定义是(

)。

A:doublefun(intx,y){intz;returnz;}B:doublefun(intx,inty){doublez;returnz;}C:doublefun(intx,inty){z=x+y;returnz;}D:fun(x,y){intx,y;doublez;z=x+y;returnz;}

答案:doublefun(intx,inty){doublez;returnz;}

以下关于函数的叙述中不正确的是(

)。

A:在C语言程序中,函数的定义不能嵌套

B:C程序是函数的集合,包括标准库函数和用户自定义函数

C:在C语言程序中,被调用的函数必须在main函数中定义

D:在C语言程序中,函数的调用可以嵌套

答案:在C语言程序中,被调用的函数必须在main函数中定义

在一个C程序中,(

)。

A:main函数必须出现在所有函数之后B:main函数可以在任何地方出现

C:main函数必须出现在所有函数之前

D:main函数必须出现在固定位置

答案:main函数可以在任何地方出现

若在C语言中未说明函数的类型,则系统默认该函数的数据类型是(

)。

A:int

B:floatC:double

D:long

答案:int

C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是(

)。

A:函数返回值

B:参数的形实结合

C:同名的局部变量

D:全局变量

答案:同名的局部变量

定义一个void型函数意味着调用该函数时,函数(

)。

A:返回一个不确定的值

B:通过return返回一个用户所希望的函数值

C:没有返回值

D:返回一个系统默认值

答案:没有返回值

第七章测试

若需要建立如图所示的存储结构,且已有说明double*p,x=0.2345;则正确的赋值语句是(

)。

A:p=x;

B:*p=&x;C:p=&x;

D:*p=x;

答案:p=&x;

若有说明语句:inta,b,c,*d;c=100;d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(

)。

A:scanf("%d,%d,%d",&a,&b,d);B:scanf("%d,%d,%d",a,b,*d);C:scanf("%d,%d,%d",a,b,d);D:scanf("%d,%d,%d",&a,&b,&d);

答案:scanf("%d,%d,%d",&a,&b,d);

下面代码

#include<stdio.h>

voidmain(){

inta=511;

int*b;

b=&a;

printf("%p",b);

}的输出结果为:

A:511B:无确定值C:512D:a的地址

答案:a的地址

下面程序段的运行结果是(

)。char*s="abcde";

s+=2;

printf("%d",*s);

A:字符'c'的地址

B:无确定的输出结果C:cdeD:字符'c'

答案:字符'c'

下列程序的输出结果是(

)。#include"stdio.h"voidmain(){

inta[]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

printf("%d",*p);}

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

答案:1

若有说明:inta=2,*p=&a,*q=p;,则以下非法的赋值语句是(

)。

A:p=q;

B:*p=*q;

C:q=a;

D:a=*q;

答案:q=a;

变量的指针,其含义是指该变量的(

)。

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

D:名

答案:地址

若有语句int*p,a=10;p=&a;下面均代表地址的一组选项是(

)。

A:&*a,&a,*p

B:&a,&*p,p

C:*&p,*p,&a

D:a,p,*&a

答案:&a,&*p,p

有如下语句:intm=6,n=9,*p,*q;p=&m;q=&n;如图1所示,若要实现下图所示的存储结构,可选用的赋值语句是(

)。

A:p=*q;

B:

*p=q;C:*p=*q;

D:p=q;

答案:p=q;

以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是(

)。

#include<stdio.h>

main(){int*p,*q,a,b;p=&a;printf("inputa:");scanf("%d",*p);…

}

A:*p表示的是指针变量p的值

B:*p表示的是变量a的值,而不是变量a的地址

C:*p表示的是指针变量p的地址

D:*p只能用来说明p是一个指针变量

答案:*p表示的是变量a的值,而不是变量a的地址

第八章测试

根据下面的定义,能输出Mary的语句是(

)。structperson

{

charname[9];

intage;

};structpersonclass[5]={"John",17,"Paul",19,"Mary",18,"Adam",16};

A:printf("%s",class[2].name);B:printf("%s",class[3].name);C:printf("%s",class[1].name);D:printf("%s",class[0].name);

答案:printf("%s",class[2].name);

定义以下结构体数组

structc{intx;inty;}s[2]={1,3,2,7};语句printf("%d",s[0].x*s[1].x)的输出结果为(

)

A:14B:2

C:21D:6

答案:2

下面程序的运行结果是(

)。struct

KeyWord{

charKey[20];

intID;}kw[]={"void",1,"char",2,"int",3,"float",4,"double",5};main(){

printf("%c,%d",kw[3].Key[0],kw[3].ID);}

A:l,4B:i,3

C:f,4D:n,3

答案:f,4

若有如下声明:uniondata{char*p;

intn;};以下初始化正确的是(

)。

A:uniondataa="Mary";B:uniondataa=10;

C:uniondataa={"Mary"};

D:uniondataa={10};

答案:uniondataa={"Mary"};

以下对枚举类型名的定义中正确的是(

A:enums={′a′,′b′,′c′}B:enums{′a′,′b′,′c′}C:enums{a=9,b=2,c}D:enums={a,b,c}

答案:enums{a=9,b=2,c}

设有以下说明语句structex{

intx;

floaty;

charz;}example;则下面的叙述中不正确的是(

)

A:struct是结构体类型的关键字B:x,y,z都是结构体成员名

C:example是结构体类型名

D:structex是结构体类型

答案:example是结构体类型名

已知字符0的ASCII码为十六进制的30,下面程序的输出是(

)。main(){union{unsignedcharc;unsignedinti[4];}z;z.i[0]=0x39;z.i[1]=0x36;printf("%c",z.c);}

A:

9B:

3C:

6

D:

0

答案:

3

有以下程序:#include<stdio.h>union

pw{

inti;

char

ch[2];

}a;main(){

a.ch[0]=13;

a.ch[1]=0;

温馨提示

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

评论

0/150

提交评论