计算机程序设计(C语言)智慧树知到课后章节答案2023年下广州新华学院_第1页
计算机程序设计(C语言)智慧树知到课后章节答案2023年下广州新华学院_第2页
计算机程序设计(C语言)智慧树知到课后章节答案2023年下广州新华学院_第3页
计算机程序设计(C语言)智慧树知到课后章节答案2023年下广州新华学院_第4页
计算机程序设计(C语言)智慧树知到课后章节答案2023年下广州新华学院_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

计算机程序设计(C语言)智慧树知到课后章节答案2023年下广州新华学院广州新华学院

第一章测试

C语言属于()。

A:高级语言

B:低级语言

C:机器语言

D:汇编语言

答案:高级语言

C语言的三种基本结构是()。

A:循环结构、嵌套结构、转移结构

B:嵌套结构、递归结构、顺序结构

C:递归结构、循环结构、转移结构

D:顺序结构、选择结构、循环结构

答案:顺序结构、选择结构、循环结构

以下注释正确的是()。

A:/*这是注释

B:/*这是注释/*

C://这是注释

D:/*这是注释/

答案://这是注释

C语言中main函数可以有多个。()

A:对B:错

答案:错

机器语言是由二进制数0和1组成的一串指令。()

A:错B:对

答案:对

流程线可以不化箭头,默认从上到下从左到右的依次执行。()

A:错B:对

答案:错

N-S结构化流程图适于结构化程序设计,因而很受欢迎。()

A:对B:错

答案:对

C语言的特点有执行效率高、可移植性好、应用领域广。()

A:错B:对

答案:对

计算机真正能识别的语言只有机器语言,所以需要编译器将高级语言翻译成机器语言。()

A:错B:对

答案:对

C语言编译后生成的可执行程序的后缀为.obj

A:对B:错

答案:错

第二章测试

在C99中两大基本数据类型中属于整数类型的是()。

A:intdoublelongchar

B:shortintlongchar

C:charfloatlongshort

D:intshortfloatdouble

答案:shortintlongchar

下列表达式中,不正确的是()。

A:a=intb;

B:a=b=2;

C:i++;

D:a-=1;

答案:a=intb;

以下均为合法用户标识符的是()。

A:void,we,world

B:do,a1,go

C:ID,-ch,printf

D:a1_b1,_x,adc1

答案:a1_b1,_x,adc1

以下均是非法常量的是()。

A:“a”,5,’’

B:1.0,2,1.565

C:‘\’,‘a’,1

D:‘asd‘,-0fff,’a’

答案:‘asd‘,-0fff,’\0a’

设n=10,i=3,则执行赋值运算n%=i+2后,n的值是()。

A:3

B:6

C:0

D:7

答案:0

以下与i=n++完全等价的表达式是()。

A:i=n,n=n+1

B:n=n+1,i=n

C:i=++n

D:i+=n+1

答案:i=n,n=n+1

若有intx=19,则表达式(x--%5*3/4)的值是()。

A:1

B:2

C:3

D:无正确答案

答案:3

已知inta,charb,floatc,doubled;执行语句c=a+b+c+d后,变量c的数据类型是()。

A:int

B:double

C:char

D:float

答案:float

已知intx,y;doublez;则以下语句中正确的函数调用是()。

A:scanf("%d,%d,%6.2f",&x,&y,&z);

B:scanf("%1d,%d,&1f",&x,&y,&z);

C:scanf("%x,%d,%o",&x,&y);

D:scanf("%d,%x,%e",&x,&y,&z);

答案:scanf("%d,%d,%6.2f",&x,&y,&z);

下面程序段inti1=20,i2=50;printf(“i1=%d,i2=%d“,i1,i2);运行后的输出结果是()。

A:i1=20,i2=50

B:i1=%%d,i2=%%d

C:i1=%20,i2=%50

D:i1=%d,i2=%d

答案:i1=20,i2=50

第三章测试

C语言对于嵌套if语句的规定是:else语句总是与()配对。

A:缩进位置相同的if

B:其之前最近的if

C:其之前最近且尚未配对的if

D:第一个if

答案:其之前最近且尚未配对的if

设在语句“intx=9,y=6,z=7,k=-1;”中,逻辑表达式(x>0&&y||k>0&&z<6)的值是()。

A:出错

B:-1

C:0

D:1

答案:1

下列说法中正确的是()。

A:break用在循环语句中,而continue用在switch语句中

B:break能结束循环,而continue只能结束本次循环

C:continue能结束循环,而break只能结束本次循环

D:break用在switch语句中,而continue用在循环语句中

答案:break能结束循环,而continue只能结束本次循环

下列条件语句中,输出结果与其他语句不同的是()。

A:if(a==0)printf("%d",x);elseprintf("%d",y);

B:if(a)printf("%d",x);elseprintf("%d",y);

C:if(a==0)printf("%d",y);elseprintf("%d",x);

D:if(a!=0)printf("%d",x);elseprintf("%d",y);

答案:if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

intmain()

{

intx,y;

scanf(“%d”,&x);

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

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

return0;

}

若运行时给变量x输入14,则以下程序的运行结果是()

A:1

B:4

C:3

D:2

答案:2

switch(i)

{

case9:i+=1;

case10:i+=1;

case11:i+=1;

case12:i+=1;

default:i+=1;

};

若inti=10,执行下面程序段后,变量i的值为()

A:12

B:14

C:11

D:13

答案:14

intmain()

{

intx;

scanf("%d",&x);

if(x>200)printf("**");

if(x<200)printf("##");

elseprintf("*");

return0;

}

执行下面语句序列时,不可能出现的情况是()

A:显示*

B:显示**

C:显示#

D:显示*#

答案:显示*#

switch语句中的default必须出现在所有case之后,否则case不起作用。()

A:对B:错

答案:对

switch后面园括号内的表达式的值和case后面的常量表达式的值都必须是整型或字符型。()

A:对B:错

答案:对

switch语句可以完全用if语句代替。

A:对B:错

答案:对

第四章测试

有以下程序:

inta=0;

do{a++;}while(a<9);

printf("%d",a);

则正确的执行结果是()。

A:9

B:10

C:11

D:8

答案:9

有以下程序:

chara=64;

do{a++;}while(a<9);

printf("%d",a);

则正确的执行结果是()。

A:73

B:65

C:74

D:64

答案:65

有以下程序:

inta,sum=0;

for(a=0;a<=5;a+=2)

{sum-=a;}

printf("%d",sum);

正确的执行结果是()。

A:-6

B:-5

C:-15

D:15

答案:-6

有以下程序:

charc;inti;for(i=0;i<2;i++){scanf("%c",&c);printf("%c",c);}若输入abc回车,正确的执行结果是()。

A:输入过多无法执行

B:abc

C:ac

D:ab

答案:ab

有以下程序:

charc='a';

inti;

for(i=0,i=1,c='h';i<3;i++)

{printf("%c",c);}

正确的执行结果是()。

A:HHH

B:hh

C:HH

D:hhh

答案:hh

有以下程序:charc;inti;for(i=0;i<2;i++){scanf("%c",&c);printf("%c",c);}若输入a回车c回车,正确的执行结果是(

)。

A:先输出输入c后再输出cB:c无法输入输出只有aC:cD:ac

答案:c无法输入输出只有a

do…while的作用是先执行,后检查。()

A:对B:错

答案:对

即使条件为false,do-while至少执行一遍其中的代码,因为代码执行后才会进行条件验证。()

A:错B:对

答案:对

switch语句可以完全用if语句代替。()

A:错B:对

答案:对

for可以省略三个表达式的任意一个,但“;”不可省略。()

A:对B:错

答案:对

第五章测试

编译器为数组开辟的内存空间是()。

A:连续的

B:有些连续有些不连续

C:未知的

D:不连续的

答案:连续的

数组访问越界后会发生什么(

A:都有可能发生B:计算出错误的数值C:程序崩溃D:访问失败

答案:都有可能发生

以下正确的数组声明是()。

A:int[2]arr

B:intarr[2]

C:int(2)arr

D:intarr(2)

答案:intarr[2]

以下数组初始化正确的是()。

A:intarr[4]={1,2,3,4};

B:voidarr[4]={1,2,3,4};

C:intarr[4]=1,2,3,4;

D:intarr[0]={1,2,3,4};

答案:intarr[4]={1,2,3,4};

以下数组初始化正确的是()。

A:intarr[2]={1,2,3,4};

B:intarr[2][]={1,2,3,4};

C:intarr[][2]={1,2,3,4};

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

答案:intarr[][2]={1,2,3,4};

已知一维数组arr[6]={1,5,9,3,8,2},其中大于5的元素是(

A:arr[6]B:arr[1]C:arr[3]D:arr[2]

答案:arr[2]

在定义数组intarr[10]后,下列选项中对arr的引用正确的是()。

A:arr[10]

B:arr[0]

C:arr[6.3]

D:arr(6)

答案:arr[0]

关于数组类型的定义,下列描述中正确的是()。

A:数组的大小一旦定义就是固定的

B:数组的下标类型为整型

C:数组元素的下标从1开始

D:一个数组中的各元素类型可以不一样

答案:数组的大小一旦定义就是固定的

;数组的下标类型为整型

已有int型一维数组arr[10],可以通过intb[10]=arr[10]的方式复制整个数组。()

A:对B:错

答案:错

可以对整型数组进行整体输入、输出。()

A:对B:错

答案:错

第六章测试

有以下程序:

inta=100,*p=&a;

printf("%d",*p);

则正确的执行结果是()。

A:其他选项不正确

B:有语法错误

C:1519191

D:100

答案:100

有以下程序:

chara='1';

char*p1=&a;

printf("%d",*p1);

则正确的执行结果是()。

A:49

B:1

C:有语法错误

D:其他选项不正确

答案:49

有以下程序:

inta=0;

int*p1;

p1=&a;

int*p2;

p2=p1;

printf("%d",*p2);

则正确的执行结果是()。

A:a

B:其他选项不正确

C:有语法错误

D:0

答案:0

设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则下列不能正确执行的选项是()。

A:p2=k

B:k=*p1+*p2

C:k=*p1*(*p2)

D:p1=p2

答案:p2=k

有如下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;那么数值为9的表达式是()。

A:*p+=9

B:*p+9

C:*(p+8)

D:p+8

答案:*(p+8)

intmain()

{

char*s="abcde";

s+=2;

printf("%d\n",*s);

return0;

}

以下程序运行后,输出结果是()。

A:出错

B:字符c的地址

C:字符c的ASCLL码值

D:cde

答案:字符c的ASCLL码值

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

A:=

B:+

C:-

D:<

答案:+

在定义指针变量时不一定要指定基类型。()

A:错B:对

答案:错

直接按变量名进行访问,称“直接访问”。()

A:对B:错

答案:对

指针的加减运算实质上是在内存中移动某个数据类型所占的字节数。()

A:错B:对

答案:对

第七章测试

若用数组名做函数参数调用的实参,实际上传递给实参的是()。

A:数组的全部数值

B:数组的首地址

C:数组的第一个元素

D:数组元素的个数

答案:数组的首地址

已知函数声明为intfun_1(intarray[],intn);若想把arr[5]数组传入函数,以下正确做法为()。

A:fun_1(arr,5);

B:fun_1(intarr[],int5);

C:fun_1(arr[5],5);

D:fun_1(*arr,5);

答案:fun_1(arr,5);

关于函数声明intfun(intarr[]);说法正确的是()。

A:fun函数要传入一整个数组

B:fun函数只能传入一个数组名

C:fun函数要传入一个指针数组

D:fun函数要传入一个指针

答案:fun函数要传入一个指针

所有在函数中定义的变量都称为()。

A:全局变量

B:局部变量

C:寄存器变量

D:简单变量

答案:局部变量

#include<stdio.h>

inta=10;

voidf(inta)

{a=20;}

intmain()

{a=15;f(a);printf(“%d”,a);}

打印出来的结果为()。

A:20

B:15

C:程序报错

D:10

答案:15

若程序中定义了局部变量与全局变量,则()。

A:局部变量与全局变量的名字不得相同

B:若一个函数被多次调用,则其定义的局部变量必定分配同一个存储单元

C:在函数内只能访问局部变量,而不能访问全局变量

D:函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量

答案:函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量

以下哪种是正确的函数定义方式()。

A:intsum(a,b){return(a+b);}

B:intsum(inta,b){return(a+b);}

C:voidsum(inta,intb){return(a+b);}

D:intsum(inta,intb){return(a+b);}

答案:intsum(inta,intb){return(a+b);}

已知sum函数有两个int形参,以下哪种是正确的函数声明方式()。

A:intsum(int,int);

B:intsum(int);

C:intsum(inta,b);

D:intsum(a,b);

答案:intsum(int,int);

已知sum函数有两个int形参,以下哪种是正确的函数调用方式(

)

A:sum(int1,int2);B:sum(int1,2);C:intsum(1,2);D:sum(1,2);

答案:sum(1,2);

有下列程序:

intb=2;intfunc(int*a){

b+=*a;

returnb;}intmain(){

inta=2,res=2;

res+=func(&a);

printf("%d\n",res);

return0;}输出结果是(

)。

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

答案:6

第八章测试

若有以下声明:structperson{charname[20];intage;charsex;}a={“lining”,20,‘m’},*p=&a;则对字符串lining的引用方式不可以是(

)。

A:p->nameB:C:D:(*p).name

答案:

若有如下定义:structsk{inta;floatb;}data,*p=&data;

则对data中的成员a正确引用是(

A:p->data.aB:(*p).data.aC:p.data.aD:(*p).a

答案:(*p).a

链表中的指针表示的是()。

A:数组下标

B:下一元素地址

C:内存地址

D:左、右结点地址

答案:下一元素地址

设有以下说明语句:

structstu{inta;floatb;}suttype;则下面叙述不正确的是()。

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

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

C:suttype是用户定义的结构体类型名

D:a和b都是结构体成员

答案:suttype是用户定义的结构体类型名

若程序中有下面的说明和定义:

structabc

{intx;chary;}

structabcs1,s2;

则会发生的情况是()。

A:编译出错

B:能顺利通过编译、连接,但不能执行

C:程序将顺利编译、连接、执行

D:能顺利通过编译,但连接出错

答案:编译出错

在一个单链表中,在指针q指的结点后插入指针p指向的结点,则下列代码正确的是()。

A:p->next=q->next;q->next=p;

B:q->next=p->next;p=q;

C:q->next=p->next;p->next=q;

D:p->next=q->next;q=p;

答案:p->next=q->next;q->next=p;

关于结构体作为函数参数,下列描述中错误的是()。

A:结构体数组可以作为函数参数

B:结构体可以作为

温馨提示

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

评论

0/150

提交评论