程序设计基础C语言入门篇知到智慧树章节测试课后答案2024年秋山东理工大学_第1页
程序设计基础C语言入门篇知到智慧树章节测试课后答案2024年秋山东理工大学_第2页
程序设计基础C语言入门篇知到智慧树章节测试课后答案2024年秋山东理工大学_第3页
程序设计基础C语言入门篇知到智慧树章节测试课后答案2024年秋山东理工大学_第4页
程序设计基础C语言入门篇知到智慧树章节测试课后答案2024年秋山东理工大学_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

程序设计基础(C语言)入门篇知到智慧树章节测试课后答案2024年秋山东理工大学第一章单元测试

下列哪一个不是C语言的的主要特点(

)。

A:能完成任何功能B:数据类型丰富C:运算符丰富D:语言简洁、紧凑、方便、灵活

答案:能完成任何功能一个C语言程序总是从(

)函数开始。

A:maxB:main

C:scanfD:printf

答案:main

计算机高级语言程序的运行方法有编译执行和解释执行两种,下列叙述中正确的是(

)。

A:C语言程序仅可以解释执行B:C语言程序仅可以编译执行C:C语言程序既可以编译执行又可以解释执行

答案:C语言程序仅可以编译执行下列叙述中正确的是(

)。

A:C语言程序中每一行只能写一条语句B:C语句必须在一行内写完C:每个C语句必须以分号结束

D:C语言程序的只有一个函数

答案:每个C语句必须以分号结束

程序是一组计算机能识别和执行的指令集合。

A:错B:对

答案:对计算机语言是一种只有计算机才能识别的语言。

A:对B:错

答案:错一个C语言程序是由一个或多个函数组成的,其中必须包含一个函数,函数名是main。

A:对B:错

答案:对C语句是以()表示结束

A:分号B:逗号C:句号D:回车

答案:分号C语言区分大小写。

A:错B:对

答案:对C语言只有一个标准。

A:对B:错

答案:对

第二章单元测试

算法的特点不包括(

)。

A:可行性B:有穷性C:多个输入D:确定性

答案:多个输入算法的有穷性是指(

)。

A:算法包含的操作步骤是有限的B:算法只能被有限的用户使用C:算法的程序运行时间是有限的D:算法的程序所处理的数据量是有限的

答案:算法包含的操作步骤是有限的在计算机中,算法是指(

)。

A:解答方案的准确而完整的描述B:查询方法C:加工方法D:排序方法

答案:解答方案的准确而完整的描述算法的特点包括穷性、确定性、可行性、有一个或多个输入和有一个或多个输出。

A:对B:错

答案:错在程序设计中,符合结构化原则的三种基本控制结构是顺序结构、选择结构、循环结构。

A:对B:错

答案:对传统的流程图只有一个入口,多个出口。

A:错B:对

答案:错所谓算法的有穷性是指算法要在合理有限的时间内结束。

A:对B:错

答案:对算法是程序的具体实现。

A:对B:错

答案:错算法分为数值算法和非数值算法两大类。

A:错B:对

答案:对算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。

A:错B:对

答案:对

第三章单元测试

表达式25/3%3的值为2.

A:对B:错

答案:对若有定义:inty=2;则计算表达式y+=y后的y值是2()

A:错B:对

答案:错下列不正确的叙述是(

)。

A:在C语言程序中,SUM和sum是两个不同的变量。B:若a和b类型相同,在计算了赋值表达式a=b后b中的值将复制到a中,而b中的值不变。C:在C语言程序中,进行赋值运算时,先将右侧表达式的值转化左侧变量的类型再赋给变量。D:在C语言程序中,%运算符的优先级高于/运算符。

答案:在C语言程序中,%运算符的优先级高于/运算符。在C语言中,要求运算对象必须是整型的运算符是(

)。

A:%

B:/C:*

D:-

答案:%

下列选项中正确的定义语句是(

)。

A:double

,a,b;B:double

a=b=7;

C:double

a=7,b=7;

D:double

a;b;

答案:double

a=7,b=7;

输入一个3位正整数n,分别输出n的个位a、十位b、百位c。下面程序的语句填空应为:()#include<stdio.h>intmain(){

intn,a,b,c;scanf("%d",&n);a=____;;b=n/10%10;c=n/100;printf("a=%d

b=%d

c=%d",a,b,c);

return0;}

A:a%10

B:n%10C:n/10

D:b/10

答案:n%10有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>intmain(){inta=1,b=0;

printf("%d,",b=a+b);printf("%d\n",a=2*b);return0;}

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

答案:1,2数据在计算机中是以二进制的形式存储的。()

A:错B:对

答案:对变量定义后,如果没有赋值,那变量多表示的存储单元是空的。

A:对B:错

答案:错定义符号常量的名字用命令#define。

A:对B:错

答案:对

第四章单元测试

有下列程序,已知字母A的ASCII码为65,程序运行后的输出结果是(

)。#include<stdio.h>intmain(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf("%c,%d\n",c1,c2);return0;}

A:E,DB:E,68C:D,69D:输出无定值

答案:E,68有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>int

main(){

inta=14,b=12;a=a+b;b=a-b;a=a-b;printf("a=%d,b=%d",a,b);

return0;}

A:a=14,b=14B:a=26,b=26

C:a=12,b=14

D:a=14,b=12

答案:a=12,b=14

若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是(

)。

A:scanf("%d%d%d",a,b,c);

B:read(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);编写程序,输入3个整数a、b、c,输出时:a的值是b,b的值是c,c的值是a。下面程序可以正确实现题目要求:#include<stdio.h>intmain(){inta,b,c,tscanf("%d%d%d",&a,&b,&c);t=a;a=b;b=c;c=t;

//顺序交换a、b、c

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

return0;}

A:错B:对

答案:对已知银行一年定期存款利率r是2.25%,若存款本金是c元,编程计算一年期满是本金之和d(保留两位小数)。下面程序可以正确实现题目要求:#include<stdio.h>intmain(){

double

r=0.0255,c,d;scanf("%f",&c);d=c+c*r;printf("x=%.2lf",d);

return0;}

A:错B:对

答案:错用getchar()从键盘上输入一个字符,用putchar()打印出来!参考程序1与参考程序2都可以实现题目要求。#include<stdio.h>intmain(){

chara;

a=getchar();

putchar(a);return0;}

参考程序2:#include<stdio.h>intmain(){

charch;scanf(“%c”,&ch);printf(“%c\n”,ch);

return0;}

A:错B:对

答案:对下列程序运行结果为:#include<stdio.h>int

main(){

chara,b,c;

a='r';b='e';c='d';

putchar(a);putchar(b);putchar(c);putchar('\n');

return0;

A:red\n

B:‘r’’e’’d’

C:‘r’’e’’d’’\n’D:red

答案:red

如果要求按照12:31:12格式输入数据,那么下面哪个输入语句是正确的:()

A:scanf("%d:%d:%d",&num1,&num2,&num3);B:scanf("%d,%d,%d",&num1,&num2,&num3);C:scanf("%d%d%d",&num1,&num2,&num3);

答案:scanf("%d:%d:%d",&num1,&num2,&num3);在格式化输入scanf函数中,如何%后面跟有*,表示抑制符,输入的数据不会赋值给相应的变量。()

A:错B:对

答案:对putchar()函数属于无参函数。()

A:对B:错

答案:错

第五章单元测试

在C语言中,逻辑运算符“&&”比“||”的优先级高(

)。

A:对B:错

答案:对将数学式:a=b或a<c,写为C语言的表达式为a=b||a<c(

)。

A:错B:对

答案:错已知字母’A’的ASCll码值为65,若变量c为char型,下列不能正确判断出c为大写字母的表达式是(

)。

A:!(c>=’A’||c<=’Z’)

B:c>=’A’&&c<=’Z’C:(c+32)>=’a’&&(c+32)<=’z’

D:(c>=65)&&(c<=91)

答案:!(c>=’A’||c<=’Z’)

有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>intmain(){intx=1,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

printf("%d",y);

return0;}

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

答案:0有下列程序,程序运行后的输出结果是(

)。inta=3,b;if(a>0)b=1;elseb=-1;b++;printf("%d",b);

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

答案:2有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>intmain(){intx=0,y=2,z=3;switch(x){

case0:switch(y==2)

{

case1:printf("*");break;

case2:printf("%");break;

}

case1:switch(z)

{

case1:printf("$");

case2:printf("*");break;

default:printf("#");

}}}

A:**

B:*%C:*$

D:*#

答案:*#

C语言中条件表达式结果为0表示假,为1表示真。

A:对B:错

答案:错除了最后一个分支,switch语句要求每一个分支后加上一个break语句。

A:错B:对

答案:对C可保证复杂的逻辑表达式是从左至右计算的。

A:错B:对

答案:对有下列程序,程序运行后的输出结果是(

)。int

a=3,b=5,c=7;

if(a>b)a=b;c=a;

if(c!=a)c=b;

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

A:程序段有语法错B:3,5,3

C:3,5,5D:3,5,7

答案:3,5,3

第六章单元测试

有下列程序段,程序段运行后的输出结果##2##3##4##5(

)。intk;for(k=2;k<6;k++,k++)printf("##%d",k);

A:错B:对

答案:错在循环结构中break是终止循环,跳出循环体。

A:对B:错

答案:对以下不构成无限循环的语句组是(

)。

A:intn=0,i;for(n=0,i=1;

;i++)n+=i;B:intn=10;

while(n);

n--;C:intn=0

do

{++n;}

while(n<=0);

D:intn=0;

while(1)n++;

答案:intn=0

do

{++n;}

while(n<=0);

在C语言中有关for循环,下列正确的说法是(

)。

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

答案:for循环的循环体语句中,可以包含多条语句,但必须用花括号写成复合语句。有下列程序,程序运行后的输出结果是(

)。#include

<stdio.h>

intmain()

{

int

i,sum;

for(i=1;i<6;i++)sum+=sum;

printf("%d",sum);

return0;}

A:0B:不确定C:15D:14

答案:不确定有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>intmain(){inti,j,a=0;for(i=0;i<2;i++){for(j=0;j<4;j++){

if(j%2)break;a++;}a++;}printf("%d",a);return0;}

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

答案:4while与do-while在任何时候都可以互换。

A:对B:错

答案:错下面程序可以正确求出1+2+3+。。。+n的和。()#include<stdio.h>intmain(){

inti=1,sum=0,n;scanf(“%d”,&n);while(i<=n)

sum=sum+i;

++i;

printf("sum=%d",sum);return0;

}

A:错B:对

答案:错以下程序中的变量已正确定义,程序段的输出结果是(

)。for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");

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

D:****

答案:*有下列程序,程序运行后的输出结果是(

)。#include

<stdio.h>intmain(){int

i,j;

for(i=3;i>=1;i--)

{

for(j=1;j<=2;j++)

printf("%d",i+j);

printf("\n");

}

return0;}

A:234345B:23

3445C:432

543D:45

3423

答案:45

3423

第七章单元测试

在C语言中,数组元素的最小下标是1。

A:对B:错

答案:对在C语言中,数组名代表首地址。

A:错B:对

答案:对在C语言中,数组一般针对批量数据的处理,这些数据必须具有相同的类型()。

A:对B:错

答案:对假设有一定义语句inta[][3]={1,2,3,4,5,6};那么数组的行数是不确定的。

A:对B:错

答案:错有下列程序,程序运行后的输出结果是0(

)。

#include<stdio.h>

intmain(){

inta[5]={1,2,3};

printf("%d\n",a[3]);

return0;}

A:对B:错

答案:对若有说明:inta[10];则对a数组元素的正确引用是(

)。

A:a[10]

B:a[10-10]

C:a(5)D:a[3.5]

答案:a[10-10]

有下列程序段,运行后的输出结果是(

)。

inti;intx[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);

A:3

6

9

B:3

5

7

C:1

5

9D:1

4

7

答案:1

4

7

有下列程序,运行后的输出结果是(

)。#include

<stdio.h>intmain(){

int

a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);

return0;}

A:输出值B:0650C:1470D:5430

答案:0650有下列程序,运行后的输出结果是(

)。#include

<stdio.h>

intmain()

{

int

s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;

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

c[s[i]]++;

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

printf("

%d",c[i]);

printf("\n");

return0;

}

A:2344B:4332

C:1123

D:1234

答案:4332

若有定义:intb[3][4]={0};则下述正确的是(

)。

A:b[0][0]的值是0,其他元素值未知B:数组b中各元素均为0C:没有元素能得初值0D:不正确的定义

答案:数组b中各元素均为0

第八章单元测试

有如下函数调用语句:

fun(r1,r2+r3,(r4,r5));该函数调用语句中,含有的实参个数是3个。

A:对B:错

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

A:对B:错

答案:对mian函数可以自己调用自己。

A:对B:错

答案:对以下正确的函数定义是(

)。

A:fun(intx,y)

{intz;returnintz;}B:fun(x,y)

{intx,y;

z=x+y;retunz;}

C:doublefun(intx,inty){z=x+y;returnz;}

D:doublefun(intx,inty){doublez;z=x+y;returnz;}

答案:doublefun(intx,inty){doublez;z=x+y;returnz;}在C语言函数中,下面说法正确的是(

)。

A:一个函数中只能有一个return语句。B:一个函数中可以有多个return语句,可能多个return语句全部执行C:一个函数中可以有多个return语句,但是最多执行其中一个return语句。D:一个return语句可以返回多个值。

答案:一个函数中可以有多个return语句,但是最多执行其中一个return语句。在C语言函数中,以下说法正确的是(

)。

A:如果形参与实参的类型不一致以实参类型为准B:如果函数值的类型与return返回值类型不一致,以函数值类型为准C:定义函数时,形参的类型说明可以放在函数体内。D:return后边的值不能为表达式

答案:如果函数值的类型与return返回值类型不一致,以函数值类型为准在C语言程序中,以下正确的描述是(

)。

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

答案:函数的定义不可嵌套,但函数的调用可以嵌套有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>intf(inta){intb=0,c=3;

b++;c++;

return(a+b+c);}intmain(){inta=2,i;

for(i=0;i<3;i++)printf("%4d",f(a));

return0;}

A:789

B:7911

C:71013

D:777

答案:777有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>intfunc(inta,intb);intmain(){

intk=4,m=1,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

return0;}intfunc(inta,intb){

intm=0,i=2;

i+=m+1;

m=i+a+b;return(m);}{

intm=0,i=2;i+=m+1;m=i+a+b;return(m);}

A:817B:816C:8

8

D:820

答案:8

8

有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>intfun(intx,inty);intmain(){inta=4,b=5,c=6;

printf("%d\n",fun(2*a,fun(b,c)));return0;

}intfun(intx,inty){if

(x!=y)return((x+y)/2);

elsereturn(x);}

A:6B:8C:3

D:12

答案:6

第九章单元测试

若有下列语句:inta[4]={1,2,3,4},*p;p=&a[2];则*p的值是3

A:错B:对

答案:对int*p;此时*是一个运算符号,表示间接访问p所指向的变量。

A:对B:错

答案:错有下列程序段,程序段运行后的输出结果是10(

)。

int*p,n;

n=10;p=&n;n=*p+10;

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

A:对B:错

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

)。

A:p=qB:a=*qC:q=aD:*p=*q

答案:q=a变量的指针是指该变量的(

)。

A:首地址B:别名C:值D:名

答案:首地址若已定义inta=5;下列对(1)、(2)两个语句的正确解释是(

)(1)int*p=&a;

(2)*p=a;

A:语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给p指的空间。B:语句(1)和语句(2)中的*p含义相同,都表示给指针变量p赋值。C:语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给指针变量p。D:语句(1)和语句(2)语句都是把变量a的地址值赋给指针变量p。

答案:语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给p指的空间。下列程序中,主函数调用findmax函数返回数组中的最大值。在下划线处应填入的是(

)。#include<stdio.h>findmax(int*a,intn){

int*p,*s;

for(p=a,s=a;p-a<n;p++)

if(__________)s=p;

return(*s);}intmain(){

intx[5]={12,21,13,6,18};

printf("%d\n",findmax(x,5));

return0;}

A:a[p]>a[s]B:*p>*s

C:p-a>p-s

D:p>s

答案:*p>*s

有下列程序,程序运行后的输出结果是(

)。#include<stdio.h>voidfun(int*x,int*y);intmain(){

intx=1,y=2;

fun(&y,&x);

printf("%d

%d",x,y);

return0;}voidfun(int*x,int*y){

printf("%d%d",*x,*y);

*x=3;*y=4;}

A:214

3B:121

2

C:123

4

D:211

2

答案:214

3有下列程序段,程序段运行后的输出结果是(

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

p=t;

printf("%d\n",*p+9);

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

答案:9若有下列语句:inta[4]={1,2,3,4},*p;p=a;则*p的值是3。

A:错B:对

答案:错

第十章单元测试

若给出下列定义:

charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};

则正确的叙述为(

)。

A:数组x和数组y的长度相同B:数组x的长度大于数组y的长度C:

温馨提示

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

评论

0/150

提交评论