C语言程序设计智慧树知到课后章节答案2023年下安徽水利水电职业技术学院_第1页
C语言程序设计智慧树知到课后章节答案2023年下安徽水利水电职业技术学院_第2页
C语言程序设计智慧树知到课后章节答案2023年下安徽水利水电职业技术学院_第3页
C语言程序设计智慧树知到课后章节答案2023年下安徽水利水电职业技术学院_第4页
C语言程序设计智慧树知到课后章节答案2023年下安徽水利水电职业技术学院_第5页
已阅读5页,还剩9页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

C语言程序设计智慧树知到课后章节答案2023年下安徽水利水电职业技术学院安徽水利水电职业技术学院

第一章测试

以下选项中不合法的标识符是()。

A:&aB:FORC:printD:_00

答案:&a

按照C语言规定的用户标识符命名规则,不能出现在用户标识符中的是()。

A:大写字母B:连接符C:下划线D:数字

答案:连接符

以下正确的字符串常量是()。

A:‘abc’B:HelloC:“”D:“\”

答案:“”

以下关于注释的叙述中错误的是()。

A:注释的边界符号“/”和“*”之间不允许加入空格B:注释的边界符号“/*”和“*/”必须成对出现且可以嵌套C:C语言允许注释出现在程序中任意合适的地方D:注释的内容仅用于阅读,对程序的运行不起作用

答案:注释的边界符号“/*”和“*/”必须成对出现且可以嵌套

以下可以正确且安全地用作用户标识符的一组选项是()。

A:Switch,unsignedB:3break,enterC:Abc,getchD:_32int,long64

答案:_32int,long64

第二章测试

以下选项中非转义字符的是()。

A:‘’B:‘’C:‘d’D:‘’

答案:‘\d’

C语言常量的类型从字面形式上可区分,以下判断中正确的是()。

A:2E3——整型B:“a”——字符型C:2.0E3——实型D:‘25’——字符串

答案:2.0E3——实型

表达式“(int)((double)9/2-9%2”的值是()。

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

答案:3

若有定义“intx,y;”,并已正确给变量赋值,则以下选项中与表达式“(x-y)?(x++):(y++)”中的条件表达式“(x-y)”等价的是()。

A:(x-y>0)B:(x-y==0)C:(x-y<0)D:(x-y<0||x-y>0)

答案:(x-y<0||x-y>0)

若变量已正确定义并赋值,以下符合C语言语法的表达式是()。

A:++x,y=x--B:x+1=yC:double(x)/10D:x=x+10=x+y

答案:++x,y=x--

第三章测试

若变量已正确定义,在“if(W)printf(“%d\n”,k);”中,以下不可替代W的是()。

A:-20B:10C:-10D:a<>b+c

答案:a<>b+c

对于“if(表达式)语句”,以下叙述正确的是()。

A:“表达式”中不可以出现字符型变量的比较B:“表达式”不能是变量C:“表达式”可以是变量D:“表达式”的值只能是整数值

答案:“表达式”可以是变量

有以下程序:

#include<stdio.h>

main()

{inta=10,b=11;

if(++a==b++)

printf(“T”);

else

printf(“F”);

printf(“a=%d,b=%d\n”,a,b);

}

是()。

A:Fa=10,b=12B:Fa=11,b=11C:Ta=10,b=11D:Ta=11,b=12

答案:Ta=11,b=12

下列选项中与“if(a==1)a=b;elsea++;”语句功能不同的switch语句是()。

A:switch(a==1){case0:a=b;break;case1:a++;}B:switch(a==1){case1:a=b;break;case0:a++;}C:switch(a){case1:a=b;break;default:a++;}D:switch(a){default:a++;break;case1:a=b;}

答案:switch(a==1){case0:a=b;break;case1:a++;}

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

#include<stdio.h>

main()

{intx,y,m;

scanf("%d%d",&x,&y);

m=x;

if(x<y)m=y;

m*=m;

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

}

A:36B:14C:20D:18

答案:36

第四章测试

在以下给出的表达式中,与“while(E)”中的“(E)”不等价的表达式是()。

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

答案:(E==0)

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

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

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

printf(“*”);

是()。

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

答案:*

有以下程序段:

charc1,c2;

for(c1=’0’,c2=’9’;c1<c2;c1++,c2--)

printf(“%c%c”,c1,c2);

程序段的执行结果是()。

A:0123498765B:9876543210C:0123456789D:0918273645

答案:0918273645

以下程序拟实现计算s=1+2*2+3*3+……+n*n+…,直到s>1000为止

#include<stdio.h>

main()

{ints,n;

s=1;n=1;

do{n=n+1;s=s+n*n;}

while(s>1000);

printf(“s=%d\n”,s);

}

程序运行后,不能得到正确结果,以下修改方案正确的是()。

A:把“while(s>1000);”改为“while(s<=1000);”B:把“n=n+1;”改为“n=n*n;”C:把“s=1;”改为“s=0;”D:把“n=1;”改为“n=0;”

答案:把“while(s>1000);”改为“while(s<=1000);”

下列关于do…while语句和while语句的叙述中错误的是()。

A:while语句是先进行条件判断,满足条件才去执行循环体B:while语句至少要执行一次循环语句C:do…while语句至少要执行一次循环语句D:do…while语句先执行循环体中的语句,然后再判断表达式

答案:while语句至少要执行一次循环语句

第五章测试

下列定义数组的语句中正确的是()。

A:intN=10;intx[N];B:intx[0..10];C:#defineN10intx[N];D:intx[];

答案:#defineN10intx[N];

若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是()。

A:#defineN10inta[N];B:intn=10,a[n];C:inta[5+5];D:#definen5inta[2*n];

答案:intn=10,a[n];

若有定义“intx[10],*pt=x;”,则对x数组元素的引用正确的是(

)。

A:*&x[10]B:

pt+3C:

*(pt+10)D:*(x+3)

答案:*(x+3)

下列定义数组的语句中错误的是(

)。

A:

intx[2][3]={{1,2},{3,4},{5,6}};B:

intx[][3]={{1,2,3},{4,5,6}};C:intx[2][3]={0};D:intx[2][3]={1,2,3,4,5,6};

答案:

intx[2][3]={{1,2},{3,4},{5,6}};

若有以下定义和语句:#include<stdio.h>chars1[10]=“abcd!”,*s2=“\n123\\”;printf(“%d%d\n”,strlen(s1),strlen(s2));程序的运行结果是(

)。

A:55B:105C:58D:107

答案:55

第六章测试

下列叙述中错误的是()。

A:可以给指针变量赋一个整数作为地址值B:当程序的开头包含头文件stdio.h时,可以给指针变量赋NULL值C:改变函数形参的值,不会改变对应实参的值D:函数可以返回地址值

答案:可以给指针变量赋一个整数作为地址值

设有如下函数定义:

#include<stdio.h>

intfun(intk)

{if(k<1)return0;

elseif(k==1)return1;

elsereturnfun(k-1)+1;

}

若执行调用语句“n=fun(3);”,则函数fun总共被调用的次数是()。

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

答案:3

在一个C语言源程序中定义的全局变量,其作用域为()。

A:由具体定义位置和extern说明来决定范围B:所在程序的全部范围C:所在函数的全部范围D:所在文件的全部范围

答案:由具体定义位置和extern说明来决定范围

以下叙述中错误的是()。

A:不同函数中的形式参数可以同名B:凡是带有返回值的库函数,都不能通过加分号而作为独立的语句出现C:返回基本数据类型的库函数的调用,均可以出现在赋值号右边的表达式中D:在同一源文件中,函数名必须唯一

答案:凡是带有返回值的库函数,都不能通过加分号而作为独立的语句出现

在下列关于C函数的叙述中,正确的是()。

A:函数不可以嵌套定义,但可以嵌套调用B:函数可以嵌套定义,但不可以嵌套调用C:函数不可以嵌套定义,也不可以嵌套调用D:函数可以嵌套定义,也可以嵌套调用

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

第七章测试

设已定义“floatx;”,则下列对指针变量p进行定义且赋初值的语句正确的是()。

A:int*p=(float)x;B:float*p=&x;C:float*p=1024;D:floatp=&x;

答案:float*p=&x;

有以下程序:

#include<stdio.h>

{

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

int*p1=&a,*p2=&b,*p=&c;

*p=*p1*(*p2);

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

程序的运行结果是()。

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

答案:3

下列程序段中完全正确的是()。

A:int*p;scanf(“%d”,&p);B:int*p;scanf(“%d”,p);C:intk,*p=&k;scanf(“%d”,&p);D:intk,*p;*p=&k;scanf(“%d”,&p);

答案:intk,*p=&k;scanf(“%d”,&p);

设有定义“char*c;”,以下选项中能够使c正确指向一个字符串的是()。

A:c=getchar();B:scanf(“%s”,c);C:*c=“string”;D:charstr[]=“string”;c=str;

答案:charstr[]=“string”;c=str;

设有定义语句“int(*f)(int);”,则下列叙述中正确的是()。

A:f是基类型为int的指针变量B:f是指向int类型一维数组的指针变量C:f是函数名,该函数的返回值是基类型为int类型的地址D:f是指向函数的指针变量,该函数具有一个int类型的形参

答案:f是指向函数的指针变量,该函数具有一个int类型的形参

第八章测试

设有定义“struct{charmark[12];intnum1;doublenum2;}t1,t2;”,若变量均已正确赋初值,则下列赋值语句中错误的是()。

A:t2.num1=t1.num1;B:t2.mark=t1.mark;C:t1=t2;D:t2.num2=t1.num2;

答案:t2.mark=t1.mark;

设有定义:

structcomplex

{intreal,unreal;}data1={1,8},data2;

则以下赋值语句中错误的是()。

A:data2.real=data1.real;B:data2=data1;C:data2.real=data1.unreal;D:data2=(2,6);

答案:data2=(2,6);

有以下结构体说明、变量定义和赋值语句:structSTD{charname[10];intage;charsex;}s[5],*ps;ps=&s[0];则下列scanf函数调用语句有错误的是(

)。

A:scanf(“%c”,&(ps->sex);B:scanf(“%s”,s[0].name);C:scanf(“%d”,ps->sex);D:scanf(“%d”,&s[0].age);

答案:scanf(“%d”,ps->sex);

设有如下类型说明语句:typedefstruct{

intnum;struct{inty,m,d;}date;}P;则以下定义结构体数组并赋初值的语句中错误的是(

)。

A:Pst[2]={{1001,2008,8,1},{1002,2006,5,20}};B:Pst[2]={1001,2008,8,1,1002,2006,5,20};C:

Pst[2]={{1001},2008,8,1,{1002},2006,5,20};D:Pst[2]={1001,{2008,8,1},1002,{2006,5,20}};

答案:

Pst[2]={{1001},2008,8,1,{1002},2006,5,20};

已知定义如下,则下列赋值语句中错误的是()。

structcomplex

{intreal,unreal;

}

data1={1.8},data2;

A:data2.real=data1.unreal;B:data2.real=data1.real;C:data2=data1;D:data2=(2,6);

答案:data2=(2,6);

第九章测试

下列关于宏的叙述中正确的是()。

A:宏替换没有数据类型限制B:宏定义必须位于源程序中所有语句之前C:宏名必须用大写字母表示D:宏调用比函数调用耗费时间

答案:宏替换没有数据类型限制

下列叙述中错误的是()。

A:C语言程序对预处理命令行的处理是在程序执行过程中进行的B:“#defineMAX”是合法的宏定义命令行C:在程序中,凡是以“#”开始的语句行都是预处理命令行D:预处理命令行的最后不能以分号表示结束

答案:C语言程序对预处理命令行的处理是在程序执行过程中进行的

有以下程序:

#include<stdio.h>

#defineS(x)x*x/x

main()

{intk=6,j=3;

printf(“%d,%d\n”,S(k+j+2),S(j+k+2);

}

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

A:29,29B:11,11C:121,121D:26,29

答案:29,29

下面关于编译预处理的命令行中,正确的是()。

A:##defineeps0.001B:#defineintINTC:#defineE2.88D:##DEFINETRUE

答案:#defineE2.88

以下程序的输出结果是()。

#include<stdio.h>

#defineM(x,y,z)x*y+z

main()

{inta=1

温馨提示

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

评论

0/150

提交评论