2020年智慧树知道网课《C语言程序设计基础(山东联盟)》课后章节测试满分

阅读: 评论:0

2024年1月31日发(作者:)

2020年智慧树知道网课《C语言程序设计基础(山东联盟)》课后章节测试满分

绪论单元测试

1

【单选题】(100分)

计算机能够直接识别的语言是()。

A.

汇编语言

B.

机器语言

C.

高级语言

第一章测试

1

【单选题】(20分)

下列表达式,值为0的是()。

A.

3/5.0

B.

3%5

C.

3/5

D.

3<5

2

【单选题】(20分)

下列变量定义中合法的是()。

A.

shortint2_num=79;

B.

doubleStu-score=98;

C.

intf(x)=1;

D.

doubleAve=0.0;

3

【单选题】(20分)

若变量a是int类型,并执行了语句:a='A'+1.6;,则正确的叙述是()。

A.

a的值是字符型

B.

a的值还是整型

C.

a的值是浮点型

D.

不允许字符型和浮点型相加

4

【单选题】(20分)

若a是基本整型变量,c是单精度实型变量,输入语句()是的。

A.

scanf("%d%f”,&a,&c);

B.

scanf("d=%d,c=%f”,&a,&c);

C.

scanf("%d%f”,a,c);

D.

scanf("%d,%f”,&a,&c);

5

【单选题】(20分)

下列说法正确的是()

A.

C程序中使用变量时,可以先使用,再定义

B.

在C语言中,所有变量都必须在定义的同时初始化

C.

一条变量定义语句不可以同时定义多个变量

D.

const常量只能在定义时赋值

第二章测试

1

【单选题】(10分)

若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是():

A.

(x-y)*(x-y)<100

B.

fabs(x-y)<10

C.

(x-y)<-10||!(y-x)>10

D.

x-y>-10&&x-y<10

2

【单选题】(10分)

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

#include

intmain()

{

inta=5,b=4,c=3,d;

d=(a>b>c);

printf("%d",d);

return0;

}

A.

5

B.

1

C.

3

D.

0

3

【单选题】(10分)

执行以下程序后的输出结果为()

#include

intmain()

{

inta=1,b=0;

switch(a)

{

case1:

switch(b)

{

case0:printf("**0**");break;

case1:printf("**1**");break;

}break;

case2:printf("**2**");break;

}

return0;

}

A.

**0**

B.

有语法

C.

**0****1****2**

D.

**0****2**

4

【单选题】(10分)

下面程序代码的功能是判断输入的整数能否被5或7整除,如果能够整除,则输出该整数。请将划线处代码填写完整。

#include

intmain()

{

intm;

printf("Inputm:");

scanf("%d",&m);

if(_______________)//能够被5或7整除

{

printf("%d",m);

}

return0;

}

A.

m%5==0||m%7==0

B.

m%5==1&&m%7==1

C.

m/5==0&&m/7==0

D.

m/5==0||m/7==0

5

【单选题】(10分)

计算1-1/2+1/3-1/4+.....+1/99-1/100+......

直到最后一项的绝对值小于1e-4为止。

代码如下,按要求在划线处填写适当的表达式或语句,使程序完整并符合题目要求。

#include

#include

intmain()

{

intn=1;

floatterm=1,sum=0;

_____(1)_________;

while(fabs(term)>=1e-4)//判末项大小

{

term=sign/n;//求出累加项

sum=sum+term;//累加

______(2)__________;//改变项的符号

n++;//分母加1

}

printf("sum=%f",sum);

return0;

}

A.

(1):floatsign=1

(2):sign=-sign

B.

(1):floatsign=-1

(2):term=-term

C.

(1):floatsign=-1

(2):sign=-sign

D.

(1):floatsign=1

(2):term=-term

6

【单选题】(10分)

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

#include

intmain()

{inta,b,c;

a=10;

b=20;

c=(a%b<1)||(a/b>1);

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

return0;

}

A.

10,0,0

B.

10,0,1

C.

10,1,0

D.

10,1,1

7

【单选题】(10分)

从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。

程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。

#include

#include

intmain()

{

floata,b,c;

floats,area;

printf("Inputa,b,c:");

scanf("%f,%f,%f",&a,&b,&c);//第1处

if(a+b>c&&b+c>a&&a+c>b)//第2处

{

s=1/2*(a+b+c);//第3处

area=sqrt(s*(s-a)*(s-b)*(s-c));//第4处

printf("area=%.2f",area);

}

else

{

printf("Itisnotatriangle");

}

return0;

}

A.

第4处

B.

第1处

C.

第3处

D.

第2处

8

【单选题】(10分)

执行下列代码的结果是()

#include

intmain()

{

inta=1234;

printf("%2d",a);

return0;

}

A.

程序出错,无结果

B.

1234

C.

34

D.

12

9

【单选题】(10分)

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

#include

intmain()

{

inta,b;

for(a=1,b=1;a<=100;a++)

{

if(b>=10)break;

if(b%3==1)

{

b+=3;

continue;

}

}

printf("%d",a);

return0;

}

A.

4

B.

3

C.

1

D.

2

10

【单选题】(10分)

#include

intmain()

{

ints=0,a=1,n;

scanf("%d",&n);

do

{

s+=1;

a=a-2;

}while(a!=n);

printf("%d",s);

return0;

}

以上代码,如果从键盘给n输入的值是-5,则程序的输出结果是()。

A.

1

B.

2

C.

4

D.

3

第三章测试

1

【单选题】(10分)

C语言中函数返回值的类型是由()决定的。

A.

调用函数时临时决定

B.

return语句中的表达式类型

C.

定义函数时所指定的函数类型

D.

调用该函数的主调函数的类型

2

【单选题】(10分)

对于C语言的函数,下列叙述中正确的是()。

A.

函数的定义可以嵌套,但函数调用不能嵌套

B.

函数的定义和调用都不能嵌套

C.

函数的定义和调用都可以嵌套

D.

函数的定义不能嵌套,但函数调用可以嵌套

3

【单选题】(10分)

下列函数中,能够从键盘上获得一个字符数据的函数是()。

A.

getchar()

B.

puts()

C.

gets()

D.

putchar()

4

【单选题】(10分)

以下叙述中不正确的是()。

A.

在一个函数内定义的变量只在本函数范围内有效

B.

在一个函数内的复合语句中定义的变量在本函数范围内有效

C.

在不同的函数中可以使用相同名字的变量

D.

函数中的形式参数是局部变量

5

【单选题】(10分)

C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。

A.

int

B.

double

C.

float

D.

void

6

【单选题】(10分)

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

#include

intMyFuntion(intn);

intmain()

{

intentry=12345;

printf("%5d",MyFuntion(entry));

return0;

}

intMyFuntion(intPar){

intresult;

result=0;

do{

result=result*10+Par%10;

Par/=10;

}while(Par);

returnresult;

}

A.

543

B.

12345

C.

5432

D.

54321

7

【单选题】(10分)

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

#include

intx1=30,x2=40;

sub(intx,inty){

x1=x;x=y;y=x1;

}

intmain()

{

intx3=10,x4=20;

sub(x3,x4);

sub(x2,x1);

printf("%d,%d,%d,%d",x3,x4,x1,x2);

return0;

}

A.

10,20,40,30

B.

10,20,30,40

C.

10,20,40,40

D.

20,10,30,40

8

【单选题】(10分)

有以下程序

#include

intfun(intx)

{printf("x=%d",++x);

}

intmain()

{

fun(12+5);

return0;

}

A.

x=12

B.

x=17

C.

x=13

D.

x=18

9

【单选题】(10分)

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

intf(intn)

{

if(n==1)return1;

elsereturnf(n-1)+1;

}

intmain()

{

inti,j=0;

for(i=1;i<3;i++)j+=f(i);

printf("%d",j);

return0;

}

A.

有语法错

B.

4

C.

5

D.

3

10

【单选题】(10分)

以下()不是正确的函数原型?

A.

intf();

B.

intf(){}

C.

intf(inti);

D.

intf(int);

第四章测试

1

【单选题】(10分)

在inta[][3]={{1,4},{3,2},{4,5,6},{0}};中,a[2][1]的值是()。

A.

0

B.

6

C.

2

D.

5

2

【单选题】(10分)

以下数组定义中的是()。

A.

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

B.

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

C.

intx[2][3]={0};

D.

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

3

【单选题】(10分)

以下能正确定义二维数组的是()。

A.

inta[2][3]={{1},{2},{3,4}}

B.

inta[3][]={};

C.

inta[][3]={2*3};

D.

inta[][3];

4

【单选题】(10分)

有如下程序

#include

intmain()

{

intn[5]={0,0,0},i,k=2;

for(i=0;i

n[i]=n[i]+1;

printf("%d",n[k]);

return0;

}

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

A.

2

B.

1

C.

不确定的值

D.

0

5

【单选题】(10分)

对一个含有100个元素的有序数组,用二分法查找某指定元素,最多需要比较()次?

A.

8

B.

7

C.

5

D.

6

6

【单选题】(10分)

以下程序中函数Fun的功能是对b所指数组中的第m至第n个数据取累加和,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

#include

intFun(______,intm,intn)

{

inti,s=0;

for(______;i

s=s+b[i];

return_______;

}

intmain()

{

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

x=Fun(a,3,7);

printf("%d",x);

return0;

}

A.

第2行:intb[]

第5行:i=m-1

第7行:s

B.

第2行:intb

第5行:i=0

第7行:s

C.

第2行:intb[]

第5行:i=n-1

第7行:b[i]

D.

第2行:intb[]

第5行:i=1

第7行:i

7

【单选题】(10分)

以下程序中函数Sort的功能是对a所指数组中的数据进行由大到小的排序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

#include

voidSort(inta[],intn)

{

inti,j,t;

for(i=0;_________;i++)

for(________;j

if(a[i]

{

t=a[i];

__________;

a[j]=t;

}

}

intmain()

{

intaa[10]={1,2,30,4,5,6,7,8,9,10},i;

__________;

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

printf("%d,",aa[i]);

printf("");

return0;

}

A.

第5行:i

第6行:j=i+1

第10行:a[i]=a[j]

第18行:Sort(aa,10)

B.

第5行:i

第6行:j=i+1

第10行:a[j]=a[i]

第18行:Sort(aa,10)

C.

第5行:i<=n

j第6行:=i

第10行:a[i]=a[j]

第18行:Sort(10,aa)

D.

第5行:i

第6行:j=i

第10行:a[i]=a[j]

第18行:Sort(aa[],10)

8

【单选题】(10分)

以下程序中函数Reverse的功能是对数组a中的前一半元素逆序、后一半元素逆序,再将逆序后的前、后两部分数据位置交换。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。

例如:主程序中数组b中的元素为{16,22,13,41,50,62,27,18,9,10},调用函数Reverse后,数组b中元素变为

{10,9,18,27,62,50,41,13,22,16}。

#include

voidReverse(inta[],intn)

{

inti,t;

for(i=0;________;i++)

{

t=a[i];

__________;

a[n-i]=t;

}

}

intmain()

{

intb[10]={16,22,13,41,50,62,27,18,9,10};

inti,s=0;

__________;

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

{

printf("%4d",b[i]);

}

return0;

}

A.

第5行:i<=n/2

第8行:a[i]=a[n-i]

第17行:Reverse(b,9)

B.

第5行:i<=n/2

第8行:a[n]=a[i]

第17行:Reverse(9,b)

C.

第5行:i<=n/2

第8行:a[i]=a[n]

第17行:Reverse(b,9)

D.

第5行:i<=n

第8行:a[n-i]=a[i]

第17行:Reverse(b,9)

9

【单选题】(10分)

假定double类型变量占用8个字节,且数组定义如下,则数组length在内存中所占字节数是()。

doublelength[10];

A.

160

B.

10

C.

80

D.

0

10

【单选题】(10分)

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

#include

voidswap1(intc[])

{

intt;

t=c[0];

c[0]=c[1];

c[1]=t;

}

voidswap2(intc0,intc1)

{

intt;

t=c0;

c0=c1;

c1=t;

}

intmain()

{

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

swap1(a);

swap2(b[0],b[1]);

printf("%d%d%d%d",a[0],a[1],b[0],b[1]);

return0;

}

A.

3535

B.

3553

C.

5335

D.

5353

第五章测试

1

【单选题】(10分)

假设有下面定义语句:

floata[10];

float*p=a;

则p++相当于是加上()个字节

A.

sizeof(float)

B.

sizeof(float*)

C.

1

D.

sizeof(a)

2

【单选题】(10分)

以下哪个定义中的p不是指针,请选择恰当的选项():

A.

给出的三项中,p都是指针

B.

char(*p)[10];

C.

char*p[6];

D.

char**p;

3

【单选题】(10分)

以下程序的执行结果是()。

intmain()

{

inta,b,k=4,m=6,*p1=&k,*p2=&m;

a=p1==&m;

b=(-*p1)/(*p2)+7;

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

return0;

}

A.

0,7

B.

1,5

C.

-1,7

D.

0,5

4

【单选题】(10分)

下面程序的运行结果是()。

#include

intmain(void)

{

intx[5]={2,4,6,8,10},*p,**pp;

p=x;

pp=&p;

printf(“%d”,*(p++));

printf(”%d”,**pp);

return0;

}

A.

46

B.

24

C.

22

D.

44

5

【单选题】(10分)

已有如下代码:

chara[5],*p=a;

则下面选项中正确的赋值语句是()

A.

p=“abcd”

B.

a=“abcd”

C.

*a=“abcd”

D.

*p=“abcd”

6

【单选题】(10分)

以下程序的运行结果是()

#include

sub(intx,inty,int*z)

{

*z=y-x;

}

intmain()

{

inta,b;

sub(10,5,&a);

sub(7,a,&b);

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

return0;

}

A.

5,-2

B.

5,2

C.

-5,-12

D.

-5,-2

7

【单选题】(10分)

如果有定义:intm,n=5,*p=&m;与m=n等价的语句是()。

A.

m=&n;

B.

m=*p;

C.

m=**p;

D.

*p=*&n;

8

【单选题】(10分)

若有定义:int*p[3];则以下叙述中正确的是()。

A.

定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

B.

定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

C.

定义了一个基类型为int的指针变量p,该变量具有三个指针

D.

定义了一个名为*p的整型数组,该数组含有三个int类型元素

9

【单选题】(10分)

若已定义intnum[10];,则下面表达式中不表示num[1]的地址的是()。

A.

num+1

B.

num++

C.

&num[0]+1

D.

&num[1]

10

【单选题】(2分)

对于如下说明,语法和语义都正确的赋值是_____。intc,*s,a[]={1,3,5};

A.

s[0]=a[0];

B.

c=a;

C.

s=&a[1];

D.

c=*s;

第六章测试

1

【单选题】(20分)

有以下说明和定义语句,下面各输入语句中的是()

#include

intmain()

{

structstudent

{

intage;

charsex;

charname[8];

};

structstudentstd;

structstudent*p=&std;

.......

return0;

}

A.

scanf("%d",&(*p).age);

B.

scanf("%c",&(p->sex));

C.

scanf("%s",&);

D.

scanf("%c",&std[0].sex);

2

【单选题】(20分)

定义以下结构体数组

structc

{

intx;

inty;

}s[2]={1,3,2,7};

语句printf("%d",s[0].x*s[1].x);的输出结果是()

A.

21

B.

14

C.

2

D.

6

3

【单选题】(20分)

以下程序执行后的输出结果是

#include

structSTU

{

charname[10];

intnum;

};

voidFun1(structSTUc)

{

structSTUb={"LiGuo",2042};

c=b;

};

voidFun2(structSTU*c)

{

structSTUb={"SunDan",2044};

*c=b;

};

intmain()

{

structSTUa={"YangHan",2041},b={"WangYi",2043};

Fun1(a);

Fun2(&b);

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

return0;

}

A.

20412044

B.

20422043

C.

20422044

D.

20412043

4

【单选题】(20分)

若能使程序运行后的输出结果如下:

201501

则空白处填写的表达式或语句应该是

#include

structstudent

{

intage;

charnum[8];

};

intmain()

{

structstudentstu[3]={{20,"201501"},{21,"201502"},{19,"201503"}};

structstudent*p=stu;

____________________

return0;

}

A.

printf("%s",(++p)->num);

B.

printf("%s",stu[1]->num);

C.

printf("%d",);

D.

printf("%s",(*p).num);

5

【单选题】(20分)

当定义一个结构体类型的变量时,系统为它分配的内存空间是()。

A.

结构体中占内存容量最大的成员所需的容量

B.

结构中第一个成员所需的内存容量

C.

结构中各成员所需的内存容量综合

D.

结构中一个成员所需的内存容量

第七章测试

1

【单选题】(10分)

如果二进制文件已经存在,现在要求写入全新数据,应以()方式打开。

A.

"wb+"

B.

"w"

C.

"wb"

D.

"w+"

2

【单选题】(10分)

若fopen()函数打开文件失败,其返回值是()。

A.

-1

B.

1

C.

ERROR

D.

NULL

3

【单选题】(10分)

若读文件还未读到文件末尾,feof()函数的返回值是()。

A.

非0

B.

1

C.

0

D.

-1

4

【单选题】(10分)

fputc(ch,fp)把一个字符ch写到fp所指示的磁盘文件中,若写文件失败则函数的返回值为()。

A.

非0

B.

1

C.

EOF

D.

0

5

【单选题】(20分)

阅读以下程序,对程序功能的描述中正确的是()

#icnlude

intmain()

{

FILE*in,*out;

charch,infile[10],outfile[10];

printf("Entertheinfilename:");

scanf("%s",infile);

printf("Entertheoutfilename:");

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)

{

printf("cannotopeninfile.");

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{

printf("cannotopenoutfile.");

exit(0);

}

while(!feof(in))

{

fputc(fgetc(in),out);

}

fclose(in);

fclose(out);

return0;

}

A.

程序完成将两个磁盘文件合二为一的功能。

B.

程序完成将两个磁盘文件合并并在屏幕上输出的功能。

C.

程序完成将磁盘文件的信息在屏幕上显示的功能。

D.

程序完成将一个磁盘文件中的信息复制到另一个磁盘文件中的功能。

第八章测试

1

【单选题】(20分)

若x=2,y=3,则x&y的结果是

A.

2

B.

3

C.

0

D.

5

2

【单选题】(20分)

设x=061,y=016,则z=x|y的值是

A.

00111111

B.

11000000

C.

11111111

D.

00001111

3

【单选题】(20分)

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

#include

voidmain()

{chara=3,b=1;

charc=a^b<<2;

printf("%d",c);

}

A.

2

B.

1

C.

3

D.

7

4

【单选题】(20分)

以下程序中c的二进制值是()。

chara=2,b=4,c;

c=a^b>>2

A.

00000011

B.

00010100

C.

00011000

D.

00011100

5

【单选题】(20分)

若x=3,y=5,则x^y的结果是

A.

2

B.

8

C.

6

D.

4

第九章测试

1

【单选题】(20分)

在一个以h为头的单向链表中,p指针指向链尾的条件是()。

A.

p->.data=-1

B.

p->next=NULL

C.

p->next=h

D.

p->next->next=h

2

【单选题】(20分)

在单链表指针为p的结点之后插入指针为s的结点,正确的操作是()。

A.

p->next=s->next;p->next=s;

B.

p->next=s;s->next=p->next;

C.

p->next=s;p->next=s->next;

D.

s->next=p->next;p->next=s;

2020年智慧树知道网课《C语言程序设计基础(山东联盟)》课后章节测试满分

本文发布于:2024-01-31 06:41:16,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170665447626328.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   定义   程序   数组   变量   输出
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23