C语言程序设计基础智慧树知到答案2024年临沂大学_第1页
C语言程序设计基础智慧树知到答案2024年临沂大学_第2页
C语言程序设计基础智慧树知到答案2024年临沂大学_第3页
C语言程序设计基础智慧树知到答案2024年临沂大学_第4页
C语言程序设计基础智慧树知到答案2024年临沂大学_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计基础临沂大学智慧树知到答案2024年绪论单元测试

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

A:机器语言B:汇编语言

C:高级语言

答案:A

第一章测试

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

A:3%5B:3/5.0C:3<5D:3/5

答案:D下列变量定义中合法的是()。

A:doubleStu-score=98;B:shortint2_num=79;C:doubleAve=0.0;D:intf(x)=1;

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

A:a的值是浮点型

B:a的值还是整型C:a的值是字符型D:不允许字符型和浮点型相加

答案:B若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);

答案:A下列说法正确的是()

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

B:const常量只能在定义时赋值C:一条变量定义语句不可以同时定义多个变量D:在C语言中,所有变量都必须在定义的同时初始化

答案:B

第二章测试

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

A:x-y>-10&&x-y<10B:(x-y)<-10||!(y-x)>10C:(x-y)*(x-y)<100D:fabs(x-y)<10

答案:B以下程序运行后的输出结果是()#include<stdio.h>intmain(){

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

d=(a>b>c);

printf("%d",d);

return0;}

A:3B:0

C:1D:5

答案:B执行以下程序后的输出结果为()#include<stdio.h>intmain(){

inta=1,b=0;

switch(a)

{

case

1:

switch(b)

{

case

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

case

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

}break;

case

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

}

return0;}

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

答案:A下面程序代码的功能是判断输入的整数能否被5或7整除,如果能够整除,则输出该整数。请将划线处代码填写完整。#include<stdio.h>intmain(){

intm;

printf("Inputm:");

scanf("%d",&m);

if(_______________)

//能够被5或7整除

{

printf("%d",m);

}

return0;}

A:m%5==0||m%7==0B:m/5==0||m/7==0

C:m%5==1&&m%7==1D:m/5==0&&m/7==0

答案:A计算1-1/2+1/3-1/4+.....+1/99-1/100+......直到最后一项的绝对值小于1e-4为止。代码如下,按要求在划线处填写适当的表达式或语句,使程序完整并符合题目要求。#include<stdio.h>#include<math.h>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):term=-termB:(1):floatsign=1(2):sign=-signC:(1):floatsign=-1(2):term=-termD:(1):floatsign=-1(2):sign=-sign

答案:B以下程序运行后的输出结果是()。#include<stdio.h>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,1,1B:10,0,1C:10,1,0D:10,0,0

答案:D

从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include

<stdio.h>

#include

<math.h>int

main(){

float

a,

b,

c;

float

s,

area;

printf("Input

a,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("It

is

not

a

triangle");

}

return

0;

}

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

答案:A执行下列代码的结果是()#include<stdio.h>intmain(){

inta=1234;

printf("%2d",a);

return0;}

A:12B:1234C:34D:程序出错,无结果

答案:B以下程序的输出结果是()。#include<stdio.h>

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:1B:3C:4D:2

答案:C#include<stdio.h>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:1B:3C:2D:4

答案:B

第三章测试

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

A:调用该函数的主调函数的类型B:定义函数时所指定的函数类型C:return语句中的表达式类型D:调用函数时临时决定

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

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

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

A:getchar()B:putchar()C:puts()D:gets()

答案:A以下叙述中不正确的是()。

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

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

A:doubleB:voidC:intD:float

答案:C下列程序的输出结果是()。#include<stdio.h>

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:12345B:543C:54321D:5432

答案:C下列程序的输出结果是()。#include<stdio.h>

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,30,40B:20,10,30,40C:10,20,40,40D:10,20,40,30

答案:C有以下程序#include<stdio.h>intfun(intx){printf("x=%d",++x);}

intmain(){

fun(12+5);

return0;}

A:x=18B:x=17C:x=13D:x=12

答案:A以下程序运行后的输出结果是()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:4B:有语法错C:3D:5

答案:C以下()不是正确的函数原型?

A:intf(int);B:intf(inti);C:intf(){}D:intf();

答案:C

第四章测试

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

A:5B:2C:0D:6

答案:A以下数组定义中错误的是()。

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

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

A:inta[2][3]={{1},{2},{3,4}}B:inta[][3]={2*3};C:inta[][3];D:inta[3][]={};

答案:B有如下程序#include<stdio.h>intmain(){

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

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

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

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

return0;

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

A:1B:2C:0D:不确定的值

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

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

答案:B以下程序中函数Fun的功能是对b所指数组中的第m至第n个数据取累加和,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include<stdio.h>intFun(______,intm,intn){

int

i,s=0;

for(______;i<n;i++)

s=s+b[i];

return_______;}intmain(){

int

x,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

答案:A以下程序中函数Sort的功能是对a所指数组中的数据进行由大到小的排序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include<stdio.h>voidSort(inta[],intn){

inti,j,t;

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

for(________;j<n;j++)

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

{

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<n第6行:

j=i+1第10行:

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

Sort(aa,10)

B:第5行:

i<=nj第6行:

=i第10行:

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

Sort(10,aa)

C:第5行:

i<n-1第6行:

j=i第10行:

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

Sort(aa[],10)

D:第5行:

i<n-1第6行:

j=i+1第10行:

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

Sort(aa,10)

答案:D以下程序中函数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<stdio.h>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第8行:

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

Reverse(b,9)

B:第5行:

i<=n/2第8行:

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

Reverse(b,9)

C:第5行:

i<=n/2第8行:

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

Reverse(b,9)

D:第5行:

i<=n/2第8行:

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

Reverse(9,b)

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

length[10];

A:10

B:0C:80D:160

答案:C以下程序的输出结果是()。#include<stdio.h>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:3553B:5353C:3535D:5335

答案:D

第五章测试

假设有下面定义语句:floata[10];float*p=a;则p++相当于是加上()个字节

A:sizeof(float)B:sizeof(a)C:1D:sizeof(float*)

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

A:char**p;B:给出的三项中,p都是指针C:char(*p)[10];D:char*p[6];

答案:D以下程序的执行结果是()。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,7B:-1,7C:1,5D:0,5

答案:A下面程序的运行结果是()。

#include<stdio.h>

intmain(void)

{

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

p=x;

pp=&p;

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

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

return0;

}

A:44B:22C:24D:46

答案:C已有如下代码:

chara[5],*p=a;则下面选项中正确的赋值语句是()

A:a=“abcd”B:*a=“abcd”C:*p=“abcd”D:p=“abcd”

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

#include

<stdio.h>

sub

(int

x,int

y,int*z)

{

*z=y-x;

}

int

main

(

)

{

inta,b;

sub(10,5,&a);

sub(7,a,&b);

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

return

0;

}

A:-5,-12B:5,-2C:5,2D:-5,-2

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

A:m=*p;B:m=&n;C:m=**p;D:*p=*&n;

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

A:定义了一个名为*p的整型数组,该数组含有三个int类型元素B:定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针C:定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素D:定义了一个基类型为int的指针变量p,该变量具有三个指针

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

A:num+1B:&num[0]+1C:num++D:&num[1]

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

A:c=*s;B:s=&a[1];C:s[0]=a[0];D:c=a;

答案:B

第六章测试

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

#include

<stdio.h>int

main(){

struct

student

{

int

age;

char

sex;

char

name[8];

};

struct

student

std;

struct

student

*p=&std;

.......

return0;}

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

B:scanf("%s",&);C:scanf("%d",&(*p).age);

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

答案:C定义以下结构体数组structc{

intx;

inty;}s[2]={1,3,2,7};语句printf("%d",s[0].x*s[1].x);的输出结果是()

A:21B:6C:14D:2

答案:D以下程序执行后的输出结果是#include

<stdio.h>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",a.num,b.num);

return0;}

A:20422044

B:20422043C:20412043D:20412044

答案:D若能使程序运行后的输出结果如下:201501则空白处填写的表达式或语句应该是#include<stdio.h>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("%s",(*p).num);D:printf("%d",p.age);

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

A:结构中第一个成员所需的内存容量B:结构体中占内存容量最大的成员所需的容量C:结构中一个成员所需的内存容量D:结构中各成员所需的内存容量综合

答案:D

第七章测试

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

A:"wb+"B:"w"C:"wb"D:"w+"

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

A:1B:-1C:ERRORD:NULL

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

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

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

A:非0B:0C:1D:EOF

答案:D阅读以下程序,对程序功能的描述中正确的是()#icnlude<stdio.h>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:程序完成将一个磁盘文件中的信息复制到

温馨提示

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

最新文档

评论

0/150

提交评论