计算机技术基础C知到智慧树章节测试课后答案2024年秋山东交通学院_第1页
计算机技术基础C知到智慧树章节测试课后答案2024年秋山东交通学院_第2页
计算机技术基础C知到智慧树章节测试课后答案2024年秋山东交通学院_第3页
计算机技术基础C知到智慧树章节测试课后答案2024年秋山东交通学院_第4页
计算机技术基础C知到智慧树章节测试课后答案2024年秋山东交通学院_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

计算机技术基础(C)知到智慧树章节测试课后答案2024年秋山东交通学院第一章单元测试

下面标识符,错误的是()。

A:sumB:forC:student_nameD:no*3

答案:for;no*3C语言中的标识符可以使用的字符包括()。

A:$B:下划线C:数字D:字母

答案:下划线;数字;字母以下注释中,合法的是()

A:/*这是注释*/B:/这是注释/C://这是注释D:/*这是多行

注释*/

答案:/*这是注释*/;//这是注释;/*这是多行

注释*/若有C语言源程序文件f.cpp,被成功编译和连接后,将生成可执行文件f.exe。()

A:对B:错

答案:对算法就是对解决问题过程的描述。编程解决问题的过程中,可以不需要设计算法而直接编写C语言程序。()

A:错B:对

答案:对注释对程序的运行结果没有影响,只是为了提高程序的可读性。()

A:对B:错

答案:对在规范的程序设计风格中,必须根据程序的结构合理使用缩进,否则会导致程序结构错误。()

A:错B:对

答案:对C语言规定,在一个源程序中,main函数的位置()。

A:必须在最后B:必须在系统调用的库函数的后面C:必须在最开始D:可以任意

答案:可以任意一个C程序的执行起止位置是()。

A:从本程序的main函数开始,到本程序文件的最后一个函数结束B:从本程序的main函数开始,到main函数结束C:从本程序的第一个函数开始,到本程序main函数结束D:从本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

答案:从本程序的main函数开始,到main函数结束以下叙述不正确的是()。

A:一个C源程序可由一个或多个函数组成B:C程序的基本组成单位是函数C:在C程序中,注释说明只能位于一条语句的后面D:一个C源程序必须包含一个main函数

答案:在C程序中,注释说明只能位于一条语句的后面

第二章单元测试

floata=2.5,b=3.5,则表达式(int)a+b/b的值是()

A:3.500000B:3.000000C:2.000000D:3

答案:3.000000圆的周c=2*PI*r中,PI为圆周率,r为半径,那么变量是()

A:rB:cC:PID:c和r

答案:c在C语言的变量类型说明中,int,char,float等类型的长度是()

A:用户自己定义的B:任意的C:固定的D:与机器字长有关的

答案:与机器字长有关的C语言中,要求运算对象只能是整数的运算符是()

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

答案:%以下选项中非法的表达式是()

A:(char)(65+32)B:(i+1)++C:i>-10&&i<10D:i=i+=i*i

答案:(i+1)++若a为int类型,且其值为6,则执行完表达式a+=a-=a*a后,a的值是()

A:0B:60C:-60D:1

答案:-60二进制加法10010100+00110010的和是()

A:11100110B:10110110C:11000110D:10100110

答案:11000110在C语言中,字符型数据在计算机内存中,以字符的()形式存储

A:原码B:ASCII码C:反码D:补码

答案:ASCII码以下表达式的值为3的是()

A:16-3%10B:(2+6)/(12-9)C:2+3/2D:14/3-2

答案:2+3/2如有语句:charc=’\72’;则对变量c的描述正确的是()

A:包含2个字符B:说明不合法,C的值不确定C:包含1个字符D:包含3个字符

答案:包含1个字符

第三章单元测试

inta=4;floatb=7.4;printf(“a=%d,b=%4.2f\n”,a,b);打印的结果为()。

A:47.4B:a=4,b=7.40C:a=4,b=7.4D:a=%d,b=%f\n

答案:a=4,b=7.40printf(“%c+%c”,65,66);可以输出()。

A:6+5B:6566C:65+66D:A+B

答案:A+Bscanf(“%f”,&a);可以()。

A:输入一个整数B:有语法错误C:输入一个小数D:输入一个字符

答案:输入一个小数有以下程序

#include<stdio.h>

intmain()

{inta,b,sum;

scanf(“%f%f”,a,b);sum=a+b;

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

}程序运行后的输入34,则输出结果是()。

A:7.000000B:7.0C:有语法错误D:7

答案:有语法错误执行scanf(“%d+%d”,&a,&b);时能正确将5输入给a,6输入给b则,正确输入方式为()。

A:5,6B:56C:56D:5+6

答案:5+6printf(“%0.4f”,7.34567);的运行结果为()。

A:7.3457B:7.345670C:7.346D:0.3457

答案:7.3457putchar(‘a’-32)出结果是()。

A:97B:65C:aD:A

答案:A以下关于getchar();的说法中正确的是()。

A:可以中断程序的执行B:可以输出一个字符C:可以输入一行数据D:可以结束程序执行

答案:可以中断程序的执行程序putchar(getchar()+3);运行后输入65后回车,则输出结果为()。

A:68B:DC:语法错误D:9

答案:9

第四章单元测试

若x为int型,则下面与逻辑表达式!x等价的C语言关系表达式是()。

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

答案:x==0以下程序的运行结果是()。#include<stdio.h>voidmain(){

inta=16,b=21,m=0;

switch(a%3)

{

case0:m++;break;

case1:m++;

switch(b%2)

{

case0:m++;break;

default:m++;

}

}

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

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

答案:2以下程序的输出结果是()voidmain(){intm=5;if(m++>5)

printf("%d",m);else

printf("%d",m-1);}

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

答案:5

A:aB:AC:hD:H

答案:H设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是()

A:a==11||a==12||a==13||a==14B:!(a<=10)&&!(a>=15)C:a>10anda<15D:a>10&&a<15

答案:a>10anda<15设intx=2,y=1;则表达式(!x||y--)的值是()。

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

答案:1

A:5B:10C:8D:3

答案:8执行下列程序段后,w的值为()intw='A',x=14,y=15;w=(x||y)&&w<='a';

A:-1B:0C:NULLD:1

答案:1实现输入两个数a、b,判断如果a<b,则交换两数,否则保持两数值不变,这样可以使得a始终大于b的值。最后按照先a后b的顺序输出。程序填空处应依次填入()#include

<stdio.h>

int

main()

{

float

a,b,t;

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

if(【1】)

{

t=a;a=b;【2】;

}

printf("%5.2f,%5.2f\n",a,【3】);

return

0;

}

A:1)a<b2)t=b3)bB:1)a<b2)b=t3)bC:1)b<a2)t=b3)bD:1)b<a2)b=t3)b

答案:1)a<b2)b=t3)b“a和b中只有一个为0”的逻辑表达式为()

A:(a==0)||(b==0)B:(a==0&&b!=0)||(a!=0&&b==0)C:a+b!=0&&a*b==0D:(a==0)&&(b==0)

答案:(a==0&&b!=0)||(a!=0&&b==0);a+b!=0&&a*b==0

第五章单元测试

关于以下程序段描述正确的是()。int

x=-1;

do

{

x=x*x;

}

while

(!x);

A:是死循环B:有语法错误C:循环执行二次D:循环执行一次

答案:循环执行一次有以下程序

#include

<stdio.h>

main()

{

int

x;

for(

x=3;

x<6;

x++

)

printf(

(x%2

)

?

("*%d")

:("#%d"),x);

printf("\n");

}

程序的输出结果是()。

A:*3#4*5B:#3*4#5C:*3*4#5D:*3#4#5

答案:*3#4*5下列描述正确的是()。

A:do-while语句构成的循环,当while语句中的表达式值为零时结束循环B:do-while语句构成的循环,当while语句中的表达式值为非零时结束循环C:不能使用do-while语句构成的循环D:do-while语句构成的循环必须用break语句才能退出

答案:do-while语句构成的循环,当while语句中的表达式值为零时结束循环有以下程序

#include

<stdio.h>

main()

{

int

i,

sum;

for(

i=1;

i<6;

i++

)

sum+=i;

printf("%d\n",

sum);

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

A:随机值B:0C:16D:15

答案:随机值以下叙述中正确的是()。

A:循环发生嵌套时,最多只能两层B:循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误C:for语句的圆括号中的表达式不能都省略掉D:三种循环for,while,do-while可以互相嵌套

答案:三种循环for,while,do-while可以互相嵌套下面有关for循环的正确描述是()。

A:for循环只能用于循环次数已经确定的情况B:for循环是先执行循环体语句,后判定表达式C:在for循环中,不能用break语句跳出循环体D:for循环体语句中,可以包含多条语句,但要用花括号括起来

答案:for循环体语句中,可以包含多条语句,但要用花括号括起来C语言中while和do-while循环的主要区别是()。

A:do-while允许从外部转到循环体内B:do-while的循环体不能是复合语句C:while的循环控制条件比do-while的循环控制条件严格D:do-while的循环体至少无条件执行一次

答案:do-while的循环体至少无条件执行一次以下叙述中正确的是()。

A:break语句不能用于提前结束for语句的本层循环B:在for语句中,continue与break的效果是一样的,可以互换C:使用break语句可以使流程跳出switch语句体D:continue语句使得整个循环终止

答案:使用break语句可以使流程跳出switch语句体若变量已正确定义

for(

x=0,y=0;

(

y!=99

&&

x<4

);

x++

)则以上for循环()。

A:执行无限次B:执行次数不定C:执行3次D:执行4次

答案:执行4次有以下程序

#include

<stdio.h>

main()

{

int

a,

b;

for(

a=1,b=1;

a<=100;

a++

)

{

if(b>=20)

break;

if(b

%

3==1)

{

b=b+3;

continue;

}

b=b-5;

}

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

}程序的输出结果是()。

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

答案:8

第六章单元测试

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

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

答案:整型常量或整型表达式以下对二维整型数组a进行正确说明是()。

A:doublea[3][]B:floata(3)(4)C:floata(3,4)D:inta[3][4]

答案:inta[3][4]下面程序的执行结果是(

#include

<stdio.h>

void

main()

{

char

a[]="morming",t;

int

i,j=0;

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

if(a[j]<a[i])j=i;

t=a[j];a[j]=a[7];

a[7]=a[j];

puts(a);

}

A:mogninrB:moC:morningD:mornin

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

#include

<stdio.h>

void

main()

{

int

i,k,a[10],p[3];

k=5;

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

a[i]=i;

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

p[i]=a[i*(i+1)];

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

k+=p[i]*2;

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

}

A:22B:23C:21D:20

答案:21以下对一维整型数组a的说明正确的是()。

A:intn=10,a[n]B:inta[10]C:intn;scanf(“%d”,&n);inta[n]D:inta(10)

答案:inta[10]下面程序的执行结果是(

)。

#include<stdio.h>

#include<string.h>

void

main()

{

char

a[80]="AB",b[80]="LMNP";

int

i=0;

strcat(a,b);

while(a[i++]!='\0')b[i]=a[i];

puts(b);

}

A:LBLMNPB:ABLMNPC:LBD:AB

答案:LBLMNP设有数组定义:chararray[]="Chinese";则数组array所占的空间为7个字节。()

A:对B:错

答案:对设有定义inta[3][4];则a[1+1][0]对二维整型数组a的元素的引用是正确的。()

A:对B:错

答案:对设有如下定义,则下面叙述不正确的是()。

char

s1[

]=”TECHNOLOGY

”;

char

s2[

]={‘T’,

‘E’,

‘C’,

‘H’

,

‘N’,

‘O’

,

‘L’,

‘O’,

‘G’,

‘Y’};

A:a和b只是长度相等B:a和b不同,a是指针数组C:a和b完全相同D:a数组长度比b数组大1

答案:a和b只是长度相等;a和b不同,a是指针数组;a和b完全相同下列描述中正确的是()。

A:不能在赋值语句中通过复制运算符“=”对字符型数组进行整体赋值B:可以对字符型数组中的字符串进行整体输入输出C:字符型数组中可以存放字符串D:可以对实型数组进行整体输入输出

答案:不能在赋值语句中通过复制运算符“=”对字符型数组进行整体赋值;可以对字符型数组中的字符串进行整体输入输出;字符型数组中可以存放字符串

第七章单元测试

设函数sum定义如下,则其中void的含义是()。void

sum(){

}

A:函数没有返回值B:函数返回值为任意类型C:其余选项都不对D:函数执行后不再返回

答案:函数没有返回值关于return语句,下列正确的说法是()。

A:只能在除主函数之外的函数中出现一次B:只能在主函数和其他函数中均可出现一次C:可以在同一个函数中出现多次D:必须在每个函数中出现

答案:可以在同一个函数中出现多次在C语言程序中,关于函数的定义和调用,以下描述正确的是()。

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

答案:函数的定义不可以嵌套,但函数的调用可以嵌套以下程序的运行结果是()#include

<stdio.h>

void

main()

{

int

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

int

x=f(a,4);

printf(“%d”,x);

}

int

f(int

x[

],int

n)

{

int

k,s=1;

for(k=0;k<=n;k++)

s*=x[k];

return

s;

}

A:720B:120C:24

答案:120以下程序的运行结果是()

#include

<stdio.h>

long

f(int

n)

{

long

t;

if(n==1)

t=1;

else

t=n*f(n-1);

return

t;

}

int

main()

{

long

s=0;

int

i;

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

s+=f(i);

printf("%ld\n",s);

}

A:33B:120C:10D:24

答案:33C语言中关于函数的定义,下列说法正确的是()。

A:要调用的函数必须在main()函数中定义B:C语言程序中必须要有return语句C:被调用的函数在调用之前必须已经定义或者声明D:main()函数必须放在程序开始的部分

答案:被调用的函数在调用之前必须已经定义或者声明下面叙述不正确的是()。

A:在一个函数内的复合语句中定义的变量只在本函数范围内有效B:函数中的形参相当于局部变量C:在不同的函数中可以使用相同名字的变量D:在一个函数内定义的变量只在本函数范围内有效

答案:在一个函数内的复合语句中定义的变量只在本函数范围内有效设有如下函数定义。调用函数fun()时,关于实参(a,b)和形参(x,y),下面说法正确的是()。int

fun(int

x,

int

y)

{

int

z;

z=(x<y)?x:y;

return

z;

}

void

main()

{

int

a=2,b=4,c;

c=f(a,b);

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

}

A:由计算机系统自动确定是否共用存储单元B:可以由用户指定是否共用存储单元C:实参与形参共用存储单元D:实参与形参各占用独立的存储单元

答案:实参与形参各占用独立的存储单元以下程序的运行结果是()。

#include

<stdio.h>

int

f(int

x,

int

y)

{

int

z;

z=(x<y)?x:y;

return

z;

}

void

main()

{

int

a=2,b=4,c;

c=f(a,b);

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

}

A:1B:2C:4D:不确定

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

#include

<stdio.h>

int

f(int

x[

],int

n);

int

main()

{

int

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

int

x=f(a,6);

printf("%d",x);

return

0;

}

int

f(int

data[

],int

n)

{

int

k,sum=0;

for(k=0;k<n;k++)

sum

+=

data[k];

return

sum;

}

A:20B:6C:15D:21

答案:21

第八章单元测试

C语言中格式化输入函数是()。

A:getchar()B:scanf()C:printf()D:putchar()

答案:scanf()有char

c[]=”good

good

study!”;char

*s=c+2;则以下可以打印study!的语句为()。

A:printf(“%s”,s+10);B:printf(“%s”,c+8);C:puts(s+8);D:puts(s+10);

答案:puts(s+8);若int**p=&p1;正确,p1则应该是一个()。

A:整型变量B:执行整型指针的指针C:整型指针变量D:任意类型

答案:整型指针变量以下关于指针作为函数参数的说法正确的是()。

A:被调函数对“*指针”做出的赋值不能影响主调函数中的变量值B:被调函数通过指针可以获取指针指向的值,但不可修改这个值C:被调函数可以通过“&指针”来获取变量的值D:指针作为参数可以将一个地址传递给被调函数

答案:指针作为参数可以将一个地址传递给被调函数以下关于指针的说法错误的是()。

A:变量的指针就是变量的地址B:通过“&变量”可以获得变量的指针C:“*指针”与“&变量”所代表含义相同D:通过“*指针”可以获得指针指向的内容

答案:“*指针”与“&变量”所代表含义相同scanf(“%d”a);若可以正确编译运行,则a变量的正确定义应该是()。

A:inta*;B:int*a;C:inta;D:int&a;

答案:int*a;定义char*a=”china”;则*a+3的值为()。

A:iB:fC:nD:e

答案:finta[5]={1,3,5,7,9};中的数组名a就是一个指针,则以下语句不符合语法的为()。

A:printf(“%d\n”,*a);B:printf(“%d\n”,*a+2);C:printf(“%d\n”,*(a+2));D:printf(“%d\n”,*(a++));

答案:printf(“%d\n”,*(a++));已知有如下函数定义:int

func

(

int

*a,

int

n)

{

return

*a;

}则该函数的返回值是()

A:指向整型变量的指针B:指向整型指针的指针C:整型变量D:不确定什么类型

答案:整型变量inta=5,b=6,t;int*p1=&a,*p2=&b;则交换a、b的值正确的语句为()。

A:t=*p1;*p1=*p2;*p2=t;B:t=p1;p1=p2;p2=t;C:t=*a;*a=*b;*b=t;D:*t=*p1;*p1=*p2;*p2=*t;

答案:t=*p1;*p1=*p2;*p2=t;

第九章单元测试

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

A:enuma={one,two,three};B:enuma={"one","two","three"};C:enuma{one=9,two,three};D:enuma{"one","two","three"};

答案:enuma{one=9,two,three};下列程序的执行结果为()。main()

{

union

bt

{

int

k;

char

c[2];

}a;

a.k=-7;

printf("%o,%o\n",a.c[0],a.c[1]);

}

A:177777,177777B:177771,177777C:177771,177771D:177777,177771

答案:177771,177777当定义一个结构体变量时,系统为它分配的内存空间是()。

A:结构体中所有成员所需内存空间之和B:结构体中第一个成员所需的内存空间C:结构体中最后一个成员所需的内存空间D:与结构体中占用最大内存空间的成员一致

答案:结构体中所有成员所需内存空间之和执行语句enummoney{Fen,Jiao,Yuan=100,Tenyuan};过后,每个枚举量对应的实际值为()。

A:0,1,100,101B:0,1,2,3C:1,2,3,4D:100,101,102,103

答案:0,1,100,101定义以下结构体类型struct

s

{

int

a;

char

b;

float

f;

};则语句printf("%d\n",sizeof(structs))的输出结果是()。

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

答案:7下列程序中,变量a所占的内存字节数是()

union

u

{

char

st[4];

int

i;

long

l;

};

struct

A

{

int

c;

union

u;

}a;

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

答案:6下列程序的执行结果为()。main(

)

{

union

example

{

struct

{

int

x;

int

y;

}in;

int

a;

int

b;

}e;

e.a=1;

e.b=2;

e.in.x=e.a*e.b;

e.in.y=e.a+e.b;

printf("%d,%d\n",e.in.x,e.in.y);

}

A:3,8B:4,8C:8,4D:4,7

答案:4,8下面有关结构体的正确描述是()。

A:结构体类型占用的内存空间与其占用最大内存空间的成员一致B:结构体的成员必须是相同的数据类型C:在定义结构体类型时,可以递归定义D:结构体类型可以嵌套定义,但不能递归定义

答案:结构体类型可以嵌套定义,但不能递归定义以下哪种说法是对共用体类型正确的描述()。

A:一个共用体变量中可以同时存放其所有成员B:一个共用体变量中不能同时存放其所有成员C:共用体类型可以出现在结构体类型定义中,但结构体类型不能出现在共用体类型定义中D:一旦定义了共用体变量,即可引用该变量或其中的任意成员

答案:一个共用体变量中不能同时存放其所有成员定义以下结构体类型,则stu1占用内存的字节数是()struct

student

{

char

name[10];

int

score[50];

float

aver;

}stu1;

A:114B:228C:7D:64

答案:114

第十章单元测试

十进制数25转换为二进制数是()。

A:10010001B:00101001C:00011001D:10011001

答案:00011001设整型变量a的值为二进制的1011,执行a=a<<1;后,变量a的值为()。

A:1010B:10110C:0111D:10111

答案:10110以下不属于按位运算符的是()

A:|B:&&C:^D:!

答案:&&十六进制数0x25转换为二进制数是()。

A:00101001B:01000101C:00100011D:00100101

答案:00100101设变量a和b的值分别为二进制数0011和0101,则表达式a&b的二进制表示的值是()。

A:0001B:1C:0111D:0

答案:0001设变量x是无符号整数,则表达式~x&x的值是()。

A:0B:1C:xD:~x

答案:0设变量a和b的值分别为二进制数1011和1001,则表达式a|b的二进制表示的值是()。

A:110

温馨提示

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

评论

0/150

提交评论