C语言习题级参考答案.docx

上传人:b****8 文档编号:12117197 上传时间:2023-06-04 格式:DOCX 页数:21 大小:22.21KB
下载 相关 举报
C语言习题级参考答案.docx_第1页
第1页 / 共21页
C语言习题级参考答案.docx_第2页
第2页 / 共21页
C语言习题级参考答案.docx_第3页
第3页 / 共21页
C语言习题级参考答案.docx_第4页
第4页 / 共21页
C语言习题级参考答案.docx_第5页
第5页 / 共21页
C语言习题级参考答案.docx_第6页
第6页 / 共21页
C语言习题级参考答案.docx_第7页
第7页 / 共21页
C语言习题级参考答案.docx_第8页
第8页 / 共21页
C语言习题级参考答案.docx_第9页
第9页 / 共21页
C语言习题级参考答案.docx_第10页
第10页 / 共21页
C语言习题级参考答案.docx_第11页
第11页 / 共21页
C语言习题级参考答案.docx_第12页
第12页 / 共21页
C语言习题级参考答案.docx_第13页
第13页 / 共21页
C语言习题级参考答案.docx_第14页
第14页 / 共21页
C语言习题级参考答案.docx_第15页
第15页 / 共21页
C语言习题级参考答案.docx_第16页
第16页 / 共21页
C语言习题级参考答案.docx_第17页
第17页 / 共21页
C语言习题级参考答案.docx_第18页
第18页 / 共21页
C语言习题级参考答案.docx_第19页
第19页 / 共21页
C语言习题级参考答案.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言习题级参考答案.docx

《C语言习题级参考答案.docx》由会员分享,可在线阅读,更多相关《C语言习题级参考答案.docx(21页珍藏版)》请在冰点文库上搜索。

C语言习题级参考答案.docx

C语言习题级参考答案

测试题11

1.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(B)。

A、chars[10];strcpy(s,"abcdefg");

B、chars[10];s="abcdefg";

C、chars[10]="abcdefg";

D、chart[]="abcdefg",*s=t

2.下列语句的输出结果是(B)。

printf("%d\n",(int)(2.5+3.0)/3);

A、2

B、1

C、有语法错误不能通过编译

D、0

3.以下程序段的输出结果是A

main()

{charch1,ch2;

ch1=‘A’+‘5’-‘3’;

ch2=‘A’+‘5’-‘3’;

printf(“%d,%c\n”,ch1,ch2);

}

A、67,C

B、B,C

C、不确定的值

D、C,D

4.以下程序段的输出结果为(B)。

charc[]="abc";inti=0;do;while(c[i++]!

='\0');printf("%d",i-1);

A、abc

B、3

C、ab

D、2

5.相同结构体类型的变量之间,可以(C)。

A、比较大小

B、地址相同

C、赋值

D、相加

6.C语言源程序文件经过C编译程序编译连接之后生成一个后缀为(B)的可执行文件

A、.obj

B、.exe

C、.c

D、.bas

7.以下程序的输出结果是C

main()

{chars[]=“ABCD”,*p;

for(p=s;p

printf(“%s\n”,p);

}

A、

B、

C、

D、

8.当调用函数时,实参是一个数组名,则向函数传送的是(B)。

A、数组每一个元素的地址

B、数组的首地址

C、数组每个元素中的值

D、数组的长度

9.如果inta=2,b=3,c=0,下列描述正确的是(D)

A、a>b!

=c和a>(b!

=c)的执行顺序是一样的

B、a&&b>c的结果为假

C、a||(b=c)执行后b的值为0

D、!

a!

=(b!

=c)表达式的值为1

10.当调用函数时,实参是一个数组名,则向函数传送的是(B)。

A、数组每个元素中的值

B、数组的首地址

C、数组的长度

D、数组每一个元素的地址

11.C语言中,switch后的括号内表达式的值可以是C

A、只能为整型和字符型

B、只能为整型

C、任何类型

D、只能为整型,字符型,枚举型

12.定义语句int*swap();指的是D

A、以上说法均不对

B、swap是一个返回整型值的函数

C、swap是一个指向函数的指针

D、swaP是一个返回指向整型值指针的函数

13.若有定义inta=9;,则执行语句printf("%d\n",++a);后的输出结果是(C)。

A、11

B、9

C、10

D、12

14.以下数组定义中不正确的是(C)。

A、inta[2][3];

B、intb[][3]={0,1,2,3};

C、intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

D、intc[100][100]={0};

15.下列程序段的输出结果为(C)。

intx=3,y=2;printf("%d",(x-=y,x*=y+8/5));

A、5

B、1

C、3

D、7

16.下列四组选项中,均不是C语言关键字的选项是(C)。

A、getccharprintf

B、includescanfcase

C、defineIFtype

D、whilegopow

17.若用数组名作为函数的实参,传递给形参的是(C)。

A、数组元素的个数

B、数组第一个元素的值

C、数组的首地址

D、数组中全部元素的值

18.若变量a与i已正确定义,且i已正确赋值,合法的语句是(B)。

A、a=a++=5;

B、++i;

C、a==1

D、a=int(i);

19.指针变量p进行自加运算(即执行p++;)后,地址偏移值为2,则其

数据类型为(A)。

A、int

B、double

C、float

D、char

20.下面标识符中,不合法的用户标识符为A

A、m#n

B、x_22

C、Do

D、CHAR

21.下列数组说明中,正确的是(B)。

A、intarray[3][];

B、intarray[][4];

C、intarray[][][5];

D、intarray[][];

22.判断两个字符串是否相等,正确的表达方式是(C)

A、while(s1=s2)

B、while(s1==s2)

C、while(strcmp(s1,s2)==0)

D、while(strcmp(s1,s2)=0)

23.利用fseek函数可以实现的操作是(D)。

A、改变文件的位置指针

B、文件的随机读写

C、文件的顺序读写

D、以上答案均正确

24.下列关于单目运算符++、--的叙述中正确的是(A)

A、它们的运算对象可以是char型变量和int型变量

B、它们的运算对象可以是任何变量和常量

C、它们的运算对象可以是int型变量,但不能是char型变量

D、它们的运算对象可以是char型变量,但不能是int型变量

25.设有intx=11;则表达式(x++*1/3)的值是(C)。

A、12

B、11

C、3

D、4

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

A、short_a=1-.1e-1;

B、longdo=0xfdaL;

C、doubleb=1+5e2.5;

D、float2_and=1-e-3;

27.下列语句的结果是(B)。

main()

{intj;

j=3;

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

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

}

A、3,4

B、4,4

C、4,3

D、3,3

28.系统的标准输入文件是指(B)。

A、显示器

B、键盘

C、硬盘

D、软盘

29.设有intx=11;则表达式(x++*1/3)的值是(A)。

A、3

B、4

C、12

D、11

30.以下程序的输出结果是C

voidfun(int*s)

{staticintj=0;

do

s[j]+=s[j+1];

while(++j<2);

}

main()

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

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

fun(a);

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

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

}

A、34756

B、23445

C、35745

D、12345

判断

1.静态存储变量不随其所在函数的调用结束而被释放,其值会保留作为下一次调用的初值.T

2.若有说明intc;则while(c=getchar());是正确的C语句。

T

3.设有数组定义:

chararray[]="hello";则数组array所占的空间为5.F

4.经过下述赋值intx=3;doubley;y=(double)x;后,则x变量的数据类型为int。

T

5.char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。

F

6.integer是合法的关键字。

F

7.共同体变量所占的内存长度等于最长的成员的长度。

T

8.数组在内存中占一连续的存储区,数组名代表数组的首地址.T

9.若有定义:

intj;则表达式(j=3,j++,j=5,j+5)执行后,j的值为10。

F

10.++(i+1);是非法的赋值语句。

T

程序设计

/*------------------------------------------------

【程序设计】1

--------------------------------------------------

功能:

求一个四位数的各位数字的立方和。

-----------------------------------------------*/

#include

voidTestFunc();

intfun(intn)

{

/*********Begin**********/

intd,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;

}

returns;

/**********End**********/

}

main()

{

intk;

k=fun(1234);

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

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

intiIN,iOUT,i;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..itMayBeChanged");

}

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

{

fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

将tt数组中的小写字母都改为对应的大写字母,其它字符删除。

例如:

a4bdsk88*,结果:

ABDSK

------------------------------------------------*/

voidTestFunc();

#include

#include

voidfun(chartt[])

{

/*********Begin**********/

inti,j=0;

for(i=0;tt[i];i++)

if(('a'<=tt[i])&&(tt[i]<='z'))

tt[j++]=tt[i]-32;

tt[j]=0;

 

/**********End**********/

}

main()

{chartt[81];

printf("\nPleaseenterastring:

");

gets(tt);

fun(tt);

printf("\nTheresultstringis:

\n%s",tt);

TestFunc();

}

voidTestFunc()

{

FILE*IN,*OUT;

chars[100];

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFILEError");

}

fgets(s,100,IN);

fun(s);

fprintf(OUT,"%s",s);

fclose(IN);

fclose(OUT);

}

程序改错

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:

用下面的和式求圆周率的近似值。

直到最后一项的绝对值

小于等于0.0001。

π111

-=1--+---+...

4357

------------------------------------------------------*/

#include

/**********ERROR**********/

#include

fun()

{

inti=1;

/**********ERROR**********/

ints=0,t=1,p=1;

/**********ERROR**********/

while(fabs(t)<=1e-4)

{

s=s+t;

p=-p;

i=i+2;

t=p/i;

}

/**********ERROR**********/

printf("pi=%d\n",s*4);

}

main()

{

fun();

}

【改错1】错误

【学生答案】

#include

【参考答案】

#include"math.h"

#include

 

============================================================

【改错2】错误

【学生答案】

ints=0,t=1,p=1;

【参考答案】

floats=0,t=1,p=1;

floats=0,p=1,t=1;

floatp=1,s=0,t=1;

floatp=1,t=1,s=0;

floatt=1,p=1,s=0;

floatt=1,s=0,p=1;

 

============================================================

【改错3】错误

【学生答案】

while(fabs(t)<=1e-4)

【参考答案】

while(fabs(t)>1e-4)

while(0.0001

while(1e-4

while(fabs(t)>0.0001)

 

============================================================

【改错4】错误

【学生答案】

printf("pi=%d\n",s*4);

【参考答案】

printf("pi=%f\n",s*4);

printf("pi=%f\n",4*s);

/*------------------------------------------------------

【程序改错】2

--------------------------------------------------------

功能:

以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的

最大的n。

------------------------------------------------------*/

#include"string.h"

main()

{

intn,s;

/**********ERROR**********/

s==n=0;

/**********ERROR**********/

while(s>1000)

{

++n;

s+=n*n;

}

/**********ERROR**********/

printf("n=%d\n",&n-1);

}

【改错1】错误

【学生答案】

s==n=0;

【参考答案】

s=n=0;

 

============================================================

【改错2】错误

【学生答案】

while(s>1000)

【参考答案】

while(s<=1000)

 

============================================================

【改错3】错误

【学生答案】

printf("n=%d\n",&n-1);

【参考答案】

printf("n=%d\n",n-1);

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

统计字符s在字符串str中出现的次数。

例如:

若字符串为"aaaslkaaas",则应输出2。

-------------------------------------------------------*/

#include

/***********FILL***********/

intfun(chart,_____)

{

inti,num=0;

for(i=0;str[i];i++)

/***********FILL***********/

if(_____)

num++;

returnnum;

}

main()

{

charstr[80],s;

printf("inputastring:

");

gets(str);

printf("输入要查找的字符s:

");

/***********FILL***********/

s=_____;

printf("%d\n",fun(s,str));

}

【空1】错误

【学生答案】

intfun(chart,_____)

【参考答案】

charstr[]

char*str

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

从键盘上输入两个复数的实部与虚部,求出并输出它们的

和、差、积、商。

-------------------------------------------------------*/

#include

voidmain()

{

floata,b,c,d,e,f;

printf("输入第一个复数的实部与虚部:

");

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

printf("输入第二个复数的实部与虚部:

");

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

/**********FILL**********/

_____;

f=b+d;

printf("相加后复数:

实部:

%f,虚部:

%f\n",e,f);

e=a*c-b*d;

/**********FILL**********/

_____;

printf("相乘后复数:

实部:

%f,虚部:

%f\n",e,f);

e=(a*c+b*d)/(c*c+d*d);

/**********FILL**********/

_____;

printf("相除后复数:

实部:

%f,虚部:

%f\n",e,f);

}

【空1】错误

【学生答案】

_____;

【参考答案】

e=a+c

e=c+a

 

============================================================

【空2】错误

【学生答案】

_____;

【参考答案】

f=a*d+b*c

f=a*d+b*c

f=a*d+b*c

 

============================================================

【空3】错误

【学生答案】

_____;

【参考答案】

f=(b*c-a*d)/(c*c+d*d)

f=(b*c-a*d)/(c*c+d*d)

f=(b*c-a*d)/(c*c+d*d)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2