C语言程序设计知到智慧树章节测试课后答案2024年秋武昌工学院_第1页
C语言程序设计知到智慧树章节测试课后答案2024年秋武昌工学院_第2页
C语言程序设计知到智慧树章节测试课后答案2024年秋武昌工学院_第3页
C语言程序设计知到智慧树章节测试课后答案2024年秋武昌工学院_第4页
C语言程序设计知到智慧树章节测试课后答案2024年秋武昌工学院_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计知到智慧树章节测试课后答案2024年秋武昌工学院第一章单元测试

C语言属于()。

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

答案:高级语言程序语言按其与计算机硬件系统接近的程度可分为机器语言、()语言和高级语言。

A:BASIC语言B:编译C:汇编D:指令描述

答案:汇编以下叙述中正确的是()。

A:C语言出现的最晚,具有其他语言的一切优点B:C语言可以不用编译就能被计算机识别执行C:C语言比其他语言高级D:C语言以接近英语国家的自然语言和数学语言作为语言的表达形式解释程序.exe

答案:C语言以接近英语国家的自然语言和数学语言作为语言的表达形式解释程序.exe能把高级语言源程序变成机器可执行的程序或目标程序的方法有()。

A:汇编和计算B:解释和连接C:解释和编译D:解释和汇编

答案:解释和编译描述算法的方法有()。

A:流程图B:其他三个都是C:伪代码D:自然语言

答案:其他三个都是下列不属于算法的基本特性的是()。

A:有穷性B:复杂性C:可行性D:确定性

答案:复杂性C语言属于语言面向过程的语言。()

A:错B:对

答案:对C语言是一种非结构化程序设计语言。()

A:错B:对

答案:错c语言中的算法是指:一系列解决问题的清晰指令。()

A:对B:错

答案:对软件的开发与运行经常受到硬件的限制和制约。()

A:错B:对

答案:对

第二章单元测试

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

A:解释程序.exeB:编译程序C:链接程序.cD:编辑程序

答案:编译程序一个C程序的执行是从()。

A:第一条语句开始,直到最后一条语句结束B:第一个函数开始,直到最后一个函数结束C:main函数开始,直到main函数结束D:main函数开始,直到最后一个函数结束

答案:main函数开始,直到main函数结束C语言的源程序通常的扩展名是()。

A:.cB:.exeC:.objD:.cpp

答案:.cC程序的基本结构单位是()。

A:函数B:文件C:语句D:表达式

答案:函数关于编译预处理命令:#include<stdio.h>的说明不正确的是()。

A:这一命令行最后应该加上英文分号,表示结束B:符号#是不可以缺少的C:编译程序安装目录下可以找到include文件夹D:stdio.h是标准输入输出头文件,主要包含输入输出函数

答案:这一命令行最后应该加上英文分号,表示结束C语言程序中,关于主函数的表述正确的是()。

A:主函数位置必须在所有函数的前面B:主函数个数可有1或2个C:有且仅有一个主函数D:主函数名称是intmain

答案:有且仅有一个主函数关于语句:printf("你好,嘉兴学院!");的功能描述正确的是()。

A:屏幕输出:你好嘉兴学院B:屏幕输出:"你好,嘉兴学院!"C:屏幕输出:你好,嘉兴学院!D:屏幕输出:“你好,嘉兴学院!”

答案:屏幕输出:你好,嘉兴学院!表示C语言语句结束的符号是什么()。

A:英文分号“;”B:实心句号“.”C:中英文分号都可以D:空心句号“。”

答案:英文分号“;”C语句以冒号作为结束。()

A:对B:错

答案:错C源程序的扩展名为.c。()

A:错B:对

答案:对

第三章单元测试

下列属于C语言关键字的是()。

A:typedefB:ENUMC:IntD:unien

答案:Int下面四个选项中,合法的用户标识符的选项是()。

A:B.C.TomB:3a6bC:#ABCD:_6a7b

答案:_6a7b下列不合法的字符常量是()。

A:'2'B:'\n'C:'\101'D:'ab'

答案:'ab'设有语句:charc=’\102’;则变量c中包含的字符个数是()。

A:2个字符B:3个字符C:4个字符D:1个字符

答案:1个字符以下不能正确定义变量并给变量赋值的是()。

A:inta=5,b;

b=5B:inta=5,b=5C:inta,b;

a=b=6D:inta=b=5

答案:inta=b=5以下关于符号常量的说法正确的是()。

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

答案:符号常量是以标识符形式出现的常量,一经定义,它所代表的常量值在其作用域内不能改变以下四个选项中不合法的浮点数是()。

A:.18B:160.C:123D:0.02

答案:123在C语言中,unsignedint型数据的取值范围是0-255。()

A:错B:对

答案:错C语言中常量是没有类型之分的。()

A:对B:错

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

A:错B:对

答案:对

第四章单元测试

经过下述赋值后,变量x的数据类型是()。

floatx=21.0;

inty;

y=(int)x;

A:doubleB:intC:charD:float

答案:float若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是()。

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

答案:2.0执行语句“x=(a=5,b=a--)”后,x,a,b的值分别是()。

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

答案:5,4,5intm=5,n=10;printf(“%d,%d\n”,m++,--n);运行结果是()。

A:5,10B:5,9C:6,9D:6,10

答案:5,9能表示x为偶数的表达式是()。

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

答案:x%2==0C语言中,要求运算对象只能为整数的运算符是()。

A:>B:/C:%D:*

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

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

答案:1在C程序中,逗号运算符的优先级最低。()

A:错B:对

答案:对不同类型的变量可以在一个表达式中。()

A:错B:对

答案:对已有定义:floatf=13.8;,则表达式:(int)f%3的值是1。()

A:对B:错

答案:对

第五章单元测试

若变量x,y均定义为int型,z定义为double型,下列不合法的scanf语句是()。

A:scanf("%x,%o,%6.2f",&x,&y,&z);B:scanf("%d,%x,%lf",&x,&y,&z);C:scanf("%x,%o",&x,&y);D:scanf("%d%d%lf",&x,&y,&z);

答案:scanf("%x,%o,%6.2f",&x,&y,&z);以下程序的输出结果是()。

#include<stdio.h>

voidmain(){

inta=010,b=0x10,c=10;

printf("%d,%d,%d",a,b,c);

}

A:8,16,10B:16,8,10C:10,10,10D:8,10,10

答案:8,16,10输入“12345,xyz<回车>”,下列程序的输出结果是()。

#include<stdio.h>

voidmain(){

inta;

charc;

scanf("%3d%3c",&a,&c);

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

}

A:123,4B:12,4C:12,34D:1234

答案:123,4使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是()。

A:a=25,b=25B:25,25C:a=25b=25(空格分开)D:2525(空格分开)

答案:a=25,b=25以下可以实现“输入一个字符到变量ch”的语句是()。

A:getchar(ch);B:scanf("%d",ch);C:ch=getchar();D:scanf("%c",ch);

答案:ch=getchar();putchar()函数可以向终端输出一个()。

A:字符或字符型变量值B:字符串C:实型变量值D:浮点型变量值

答案:字符或字符型变量值x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是()。

A:read("%d%d%d",&x,&y,&z);

B:INPUTx、y、z;C:scanf("%d%d%d",x,y,z);

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

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

调用gets和puts函数时,必须包含的头文件是stdio.h。()

A:错B:对

答案:对执行语句“printf("%x",-1);”屏幕显示-ffff。()

A:错B:对

答案:错C语言中,使用getchar函数可以获得输入字符。()

A:错B:对

答案:对

第六章单元测试

以下程序正确的说法是()。

#include<stdio.h>

voidmain(){

intx=0,y=0;

if(x==y)printf("*****\n");

elseprintf(";##\n");

}

A:输出*****B:输出;##C:可以通过编译,但不能通过连接,因此不能运行D:有语法错误不能通过编译

答案:输出*****与语句y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。

A:if(x)

if(x>0)y=1;

elseif(x<0)

y=-1;

else

y=0B:if(x>0)

y=1;elseif(x<0)y=-1;elsey=0;C:y=-1;if(x)

if(x>0)y=1;

else

if(x==0)

y=0;

else

y=-1;D:y=0;if(x>=0)if(x>0)

y=1;

else

y=-1;

答案:if(x>0)

y=1;elseif(x<0)y=-1;elsey=0;以下程序的输出结果为()。

#include<stdio.h>

voidmain(){

inta=30;

printf("%d",(a/3>0)?a/10:a%3);

}

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

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

#include<stdio.h>

intmain(void){

intm,k=0,s=0;

for(m=1;m<=4;m++)

switch(m%4){

case0:

case1:s+=m;break;

case2:

case3:s-=m;break;

k+=s;}

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

return0;}

A:-4B:10C:-12D:-2

答案:-4以为了避免嵌套的条件分支语句if-else二义性,C语言规定,C程序中的else总是与()组成配对关系。

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

答案:在其之前未配对的最近的ifC语言的switch语句中,case后()。

A:只能为常量或常量表达式B:其他三个都不对C:可为常量及表达式或有确定值的变量及表达式D:只能为常量

答案:只能为常量或常量表达式下列选项中用于判断ch是否是字符的表达式是()。

A:('a'<=ch<='z')&&('A'<=ch<='Z')B:(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')C:('a'<=ch<='z')||('A'<=ch<='Z')D:(ch>='a'&&ch<='z')&&(ch>='A'&&ch<='Z')

答案:(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')if(a=5)是允许的。()

A:错B:对

答案:对表达式5>3>1值是1。()

A:错B:对

答案:错在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。()

A:对B:错

答案:对

第七章单元测试

若输入字符串:abcde<回车>,则以下while循环体将执行多少次()。

while((ch=getchar())!='e')printf("*");

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

答案:4若K为整型,以下while循环执行()次。

K=0;

while(K=0)

K=K-1;

A:一次也不执行B:执行10次C:无限循环D:执行一次

答案:一次也不执行定义如下变量:intn=10则下列循环的输出结果是()。

while(n>7)

{n--;

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

}

A:10987B:9876C:987D:1098

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

intx=3;

do

{printf("%3d",x-=2);}

while(!(--x));

A:3,0B:死循环C:1,-2D:1

答案:1,-2以下程序段中的变量已正确定义

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

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

printf(“*”);

该程序段的输出结果是()。

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

答案:********如果c是大于1的正整数,与以下程序段功能相等的赋值语句是()。

s=a;

for(b=1;b<=c;b++)

s=s+1;

A:s=a+c;B:s=a+b;C:s=b+c;D:s=s+c;

答案:s=a+c;以下程序段的输出结果是()。

intn=10;

while(n>7){

printf("%d,",n);

n--;

}

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

答案:10,9,8,for语句中的表达式可以部分或全部省略,但是两个分号不能省略。()

A:错B:对

答案:对语句while(!y)中的!y等价于y!=0。()

A:错B:对

答案:错用于直接中断最内层循环的语句是break。()

A:对B:错

答案:对

第八章单元测试

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

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

答案:整型常量若有定义:inta[10],则对数组a元素的正确引用是()。

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

答案:a[10-10]以下能对一维数组a进行正确初始化的语句是()。

A:inta[10]=(0,0,0,0,0);B:inta[10]={10*1}C:inta[10]={}D:inta[10]={0}

答案:inta[10]={0}如有定义语句inta[]={1,8,2,8,3,8,4,8,5,8};则数组a的大小是()。

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

答案:10inta[5]={1,2,3,4};那么a[3]和a[4]的值是()。

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

答案:4,0若定义以下变量和数组:

inti;

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

则下列语句的输出结果是()。

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

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

A:369B:159C:357D:147

答案:357以下合法的数组定义是()。

A:chara[]="CProgramLanguage.";B:inta[5]={0,1,2,3,4,5};C:chara="CProgram";D:inta[]="Language";

答案:chara[]="CProgramLanguage.";数组名实际是该数组首元素的起始地址。()

A:对B:错

答案:对一个字符数组就是一个字符串。()

A:对B:错

答案:错调用strlen("abcd\0ed\0g")的返回值为4。()

A:错B:对

答案:对

第九章单元测试

一个完整的C源程序是()。

A:由一个主函数和一个以上的非主函数构成B:由一个且仅由一个主函数和零个以上的非主函数构成C:由一个且只有一个主函数或多个非主函数构成D:由一个主函数或一个以上的非主函数构成

答案:由一个且仅由一个主函数和零个以上的非主函数构成在C语言中,函数的数据类型是指()。

A:函数形参的数据类型B:任意指定的数据类型C:调用该函数时的实参的数据类型D:函数返回值的数据类型

答案:函数返回值的数据类型以下正确的函数原型声明是()。

A:doublefun(intx,inty);B:doublefun(intx,y);C:doublefun(intx,inty)D:doublefun(intx;inty)

答案:doublefun(intx,inty);以下关于return语句的叙述中正确的是()。

A:定义成void类型的函数中可以有带返回值的return语句B:没有return语句的自定义函数在执行结束时不能返回到调用处C:一个自定义函数中可以根据不同情况设置多条return语句D:一个自定义函数中必须有一条return语句

答案:一个自定义函数中可以根据不同情况设置多条return语句C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是()。

A:由用户指定传递方式B:单向值传递C:地址传递D:由实参传给形参,再由形参传回给实参

答案:单向值传递有如下函数调用语句func(rec1,rec2+func(rec3,rec4));该函数调用语句中,func函数的实参个数是()。

A:3B:有语法错误C:2D:1

答案:2以下程序的执行结果是()。

#include<stdio.h>

longff(intn){

if(n>3)

return(ff(n-1)+ff(n-2));

elsereturn(3);

}

voidmain(){

printf("%d\n",ff(4));

}

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

答案:6C语言中的函数可以嵌套调用,但不可以嵌套定义。()

A:对B:错

答案:对C语言中,若未说明函数的类型,则系统默认该函数的类型是void。()

A:错B:对

答案:错为提高程序的运行速度,在函数中对于自动变量和形参可用register型的变量。()

A:错B:对

答案:对

第十章单元测试

若有说明:inti,j=7,*p=&i;则与i=j;等价的语句是()。

A:i=pB:i=&jC:i=**pD:*p=*&j

答案:*p=*&j下列关于指针概念的描述,错误的是()。

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

答案:指针的类型是他所存放的数值的类型若有语句:floata=4.8,*p=&a;,下面均代表地址的一组选项是()。

A:*&p,*p,&aB:a,p,&*aC:*&a,&a,*pD:&a,p,&*p

答案:&a,p,&*p以下对指针变量的操作中,不正确的是()。

A:int

*p,*q;

q=p=NULL;B:int

a=5,*p,*q=&a;

p=q;C:int

a=5,*p;

*p=a;D:int

p,*q;

q=&p;

答案:int

a=5,*p;

*p=a;设有语句:intk=1,*p1=&k,*p2=&k;,以下不能正确执行的赋值语句是()。

A:*p1=*p2B:k=*p1+*p2C:p1=kD:p1=p2

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

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

答案:*&x若有程序段“int*p,a=5;p=&a;”,则下列选项中均代表地址的是()。

A:a,p,*&aB:*&p,*p,&aC:&a,&*p,pD:&*a,&a,*p

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

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

答案:b中存放的地址就是数组a的首地址若有说明语句:inta[10],*p=a;则对数组元素的正确引用是()。

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

答案:*(p+2)若有定义“int*p,a;”且“p=&a”,则语句“scanf("%d",*p)”一定是错误的,其错误原因是()。

A:*p表示的是目标变量a的值,而不是目标变量a的地址B:*p表示的是指针变量p的值C:*p表示的是指针变量p的地址D:*p只能用来说明p是一个指针变量

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

第十一章单元测试

若有以下说明:

structst{

inta;

intb[2];

}a;

则下列叙述正确的是(已知int型变量占2个字节)()。

A:类型名structst可以通过extern关键字提前引用B:程序只在执行到该定义时才为结构体变量a分配存储单元C:结构体变量a与结构体成员a同名,定义非法D:程序运行时为结构体变量a分配6个字节存储单元

答案:程序运行时为结构体变量a分配6个字节存储单元typedefintinteger;的作用是()。

A:建立了一种新的数据类型B:定义了一个整型变量C:定义了一个长整型变量D:说明了一个新的数据类型说明符

答案:说明了一个新的数据类型说明符若有以下定义和语句:

structstudent{

intnum;

charname[12];

struct{

intyear;

intmonth;

intday;

}birth;

};

structstudents;

设变量s中的“生日”是“2000年1月1日”,下列对“生日”的正确赋值方式是()。

A:year=2000;month=1;day=1;

B:s.year=2000;s.month=1;s.day=1;

C:s.birth.year=2000;s.birth.month=1;s.birth.day=1;

D:birth.year=2000;birth.month=1;birth.day=1;

答案:s.birth.year=2000;s.birth.month=1;s.birth.day=1;

若有以下定义,则能打印出字母M的语句是()。

structperson

{charname[12];

intnum;

};

structpersonclass[8]={"Linan",20,"zhanghai",18,"Maming",23,"wanghua",25,"chenqi",17};

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

答案:printf("%c",class[2].name[0]);有如下定义:structStudent{

charname[10];

intage;

chargender;

}std[3],*p=std;

则以下各输入语句中错误的是:()。

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

答案:scanf("%s",&);若有下列语句,则以下引用方式不合法的是()。

structstudent

{intnum;

intage;

};

structstudentstu[3]={{101,20},{102,19},{103,20}},*p=stu;

A:(p++)->numB:(*p).numC:p++D:p=&stu.age

答案:p=&stu.age定义下列结构体(联合)数组:

structst{charname[15];

intage;}

a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};

执行语句printf["%d,%c",a[2].age,*(a[3].name+2))的输出结果为()。

A:16,HB:15,AC:16,AD:17,H

答案:16,A用typedef可以说明各种类型名,但不能用来定义变量。()

A:对B:错

答案:对C语言结构体类型变量在程序执行期间,所有成员一直驻留在内存中。()

A:错B:对

答案:对当说明一个结构体变量时系统分配给它的内存是各成员所需内存量的总和。()

A:错B:对

答案:对

第十二章单元测试

直接使文件指针重新定位到文件读写的首地址的函数是()。

A:ftell()函数B:ferror()函数C:rewind()函数D:fseek()函数

答案:rewind()函数若以“a+”方式打开

温馨提示

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

评论

0/150

提交评论