C语言习题级答案3.docx

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

C语言习题级答案3.docx

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

C语言习题级答案3.docx

C语言习题级答案3

测试题3

1.C语言中不合法的字符常量是C

A、'\65'

B、'\xff'

C、'\028'

D、'&'

2.具有相同类型的指针变量p与数组a,不能进行的操作是(C)。

A、p=&a[0];

B、p=a;

C、p=&a;

D、*p=a[0];

3.若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果是(B)

z=x>y?

x:

y

A、72

B、26

C、48

D、22

4.对于建立函数的目的,正确的说法是D

A、提高程序的执行效率

B、减少程序的篇幅

C、减少程序文件所占的内存

D、提高程序的可读性

5.有定义:

char*p1,*p2;则下列表达式中正确合理的是C

A、p1/=5

B、p1+=5

C、p1=&p2

D、p1*=p2

6.以下程序的运行结果是(B)。

main()

{

inti=1,sum=0;

while(i<10)sum=sum+1;i++;

printf(i=%d,sum=%d,i,sum);

}

A、i=10,sum=9

B、运行出现错误

C、i=2,sum=1

7.若变量已正确定义且k的值是4,计算表达式(j=4,k--)后,j和k的值为(C)

A、j=4,k=4

B、j=3,k=3

C、j=4,k=3

D、j=3,k=4

8.给出以下定义:

charx[]=abcdefg;

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

则正确的叙述为(A)

A、数组x的长度大于数组y的长度

B、数组x和数组y等价

C、数组x和数组y的长度相同

D、数组x的长度小于数组y的长度

9.在下述程序中,判断i>j共执行了多少次C

#include

main()

{

inti=0,j=10,k=2,s=0;

for(;;)

{

i+=k;

if(i>j)

{

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

break;

}

s+=i;

}

}

A、4

B、8

C、6

D、7

10.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(D)。

A、8

B、17

C、6

D、23

)。

D下面判断正确的是(11.

A、char*a=china;等价于char*a;*a=china;

B、charstr[10]={china};等价于charstr[10];str[]={china};

C、charc[4]=abc,d[4]=abc;等价于charc[4]=d[4]=abc;

D、char*s=china;等价于char*s;s=china;

12.设b的值为二进制数,b=00000010;表达式(b>>2)/(b>>1)的值是(A)。

A、0

B、2

C、8

D、4

13.以下叙述正确的是(A)。

A、用do-while语句构成的循环,在while后的表达式为零时结束循环

B、do-while语句构成的循环只能用break语句退出.

C、do-while语句构成的循环不能用其它语句构成的循环来代替.

D、用do-while语句构成的循环,在while后的表达式为非零时结束循环.

14.以下正确的说法是(D)。

A、如果形参与实参类型不一致,以实参类型为准

B、return后边的值不能为表达式

C、定义函数时,形参的类型说明可以放在函数体内

D、如果函数值的类型与返回值类型不一致,以函数值类型为准

15.已定义两个字符数组a,b,则以下正确的输入格式B

A、scanf(%s%s,&a,&b);

B、scanf(%s%s,a,b);

C、gets(a),gets();

D、get(a,b);

16.宏定义#definePI3.14中的宏名PI代替C

A、不确定类型的数

B、一个单精度实数

C、一个字符串

D、一个双精度实数

17.以下叙述中正确的是(A)。

A、C程序中注释部分可以出现在程序中任意合适的地方

B、分号是C语句之间的分隔符,不是语句的一部分

C、花括号“{“和”}”只能作为函数体的定界符

D、构成C程序的基本单位是函数,所有函数名都可以由用户命名

18.若有说明:

inta[3][4];则数组a中各元素(A)。

、不能得到确定的初值A.

0、可在程序的编译或运行阶段得到初值B0、可在程序的运行阶段得到初值C0

、可在程序的编译阶段得到初值D

)。

19.下面四个选项中,均是不合法的用户标识符的选项是(D_123tempint、AAP_0do、Bfloatla0_A、Cb-agotoint

D、

a进行正确初始化的语句是(B)。

20.以下不能对二维数组};

A、6}};、BC、inta[2][3]={0};

D、inta[][3]={1,2,3,4,5,6};

21.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的

值是(B)。

A、9

B、-12

C、6

D、-3

22.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述

中错误的是(B)。

A、有穷性

B、有零个或多个输出

C、可行性

D、有零个或多个输入

23.下列语句中,不正确的是(C)。

A、staticchara[2]={'1'};

B、staticchara[2]={1,2};

C、staticchara[2]={'1','2','3'};

D、staticinta[2]={'1','2'};

24.若有下列定义,则对a数组元素地址的正确引用是(D)。

inta[5],*p=a;

A、*(p+5)

B、*&a[5]

C、*p+2

D、*(a+2)

char*p1,*p2,*p3,*p4,ch;

若有定义:

25.

则不能正确赋值的程序语句为(D)。

A、p4=&ch;*p4=getchar();

B、p2=(char*)malloc

(1);scanf(%c,p2);

C、p1=&ch;scanf(%c,p1);

D、*p3=getchar();

26.以下选项中合法的实型常数是(A)。

A、.2E0

B、E-3

C、5E2.0

D、1.3E

27.若要说明一个类型名STP,使得定义语句STPs等价于char*s,

以下选项中正确的是(A)。

A、typedefchar*STP;

B、typedef*charSTP;

C、typedefstp*char;

D、typedefSTPchar*s;

28.sizeof(float)是(B)。

A、一种函数调用

B、一个整型表达式

C、一个不合法的表达式

D、一个双精度型表达式

29.下面程序的输出结果是

main(C)

{

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

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

}

A、2

B、4

C、3

D、1

30.以下四个程序中,不能对两个整型值进行交换的是D

、A.

、B

、C

、D

判断

T作为主函数名main1.C语言规定,必须用2.如果想使一个数组中全部元素的值为0,可以写成F

inta[10]={0*10};

3.若i=3,则printf(%d,-i++);输出的值为-4F

4.在C语言中,此定义和语句是合法的:

T

enumaa{a=5,b,c}bb;bb=(enumaa)5;

5.用fopen(

ile,

+);打开的文件晜汩履可以进行修改。

T

6.循环结构中的continue语句是使整个循环终止执行F

7.在C语言中,对于数组的定义档牡愠?

?

捜浯異整屲是错误的.T

8.C语言本身不提供输入输出语句,输入和输出操作是由函数来T

实现的。

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

9.T语句。

printf都不是C10.#define和

程序设计1./*------------------------------------------------

【程序设计】--------------------------------------------------

求最大值出现的位置(如果最大值出功能:

给定n个数据。

现多次,求出第一次出现的位置即可)

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

#include

intstation(ints[],intn)

{

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

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

}

main()

{

inta[100],n,i,t;

scanf(%d,&n);

for(i=0;i

scanf(%d,&a[i]);

t=station(a,n);

printf(hemax_valuepositionis:

%d\n,t);

TestFunc();

}

TestFunc()

{

FILE*IN,*OUT;

intn;

inti[10];

into;

IN=fopen(in.dat,

);

if(IN==NULL)

{

printf(ReadFileError);

}

OUT=fopen(out.dat,w);

if(OUT==NULL)

{

printf(WriteFileError);

}

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

{

fscanf(IN,%d,&i[n]);

}

o=station(i,10);

fprintf(OUT,%d\n,o);

fclose(IN);

fclose(OUT);

}

答案

inti,k;

k=0;

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

if(s[i]>s[k])k=i;

return(k+1);

2./*------------------------------------------------

【程序设计】

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

功能:

求n阶方阵主、副对角线上的元素之积。

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

#defineN4

#includestdlib.h

#include

ky();bvoid

floatmul(intarr[][N])

{

egin**********/B/**********

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

}

main()

{

inta[N][N],i,j;

for(i=0;i

for(j=0;j

a[i][j]=random(10);

for(i=0;i

{

for(j=0;j

printf(M,a[i][j]);

printf(\

);

}

printf(Thesumis%d\n,mul(a));

ky();b}

ky()bvoid

{

FILE*IN,*OUT;

intm,n;

inti[4][4];

floato;

IN=fopen(in.dat,

);

if(IN==NULL)

{

printf(ReadFILEError);

}

OUT=fopen(out.dat,w);

if(OUT==NULL)

{

printf(WriteFILEError);

}

for(m=0;m<100;m++)

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

{

fscanf(IN,%d,&i[m][n]);

}

o=mul(i);

fprintf(OUT,%f\n,o);

fclose(IN);

fclose(OUT);

}

答案【参考代码】

inti,j;

floatt=1;

for(i=0;i

for(j=0;j

if(i==j||i+j==N-1)

t=t*arr[i][j];

return(t);

改错

1【程序改错】

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

功能:

编制统计营业员一天的营业额的程序,设程序采用一个循环

实现,每次循环输入一笔交易金额并累计营业额。

由于营

业员一天完成的交易次数是不确定的,为此以最后附加输

入一笔0或负数交易额作为交易金额已全部输入结束的标志。

有以下统计营业员一天营业额的算法:

统计营业员一天营业额

{

营业额清0;

输入第一笔交易额;

while(交易额>0.0)

{

累计营业额;

输入下一笔交易额;

}

输出营业额;

}

记一笔交易额为变量sale,营业额为sigma。

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

#include

voidmain()

{

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

floatsale,sigma

sigma=0.0;

printf(Entersaledata.\n);

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

scanf(%f,sale);

while(sale>0.0)

{

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

sigma+==sale;

printf(Enternextsaledata(<=0tofinish).\n);

scanf(%f,&sale);

}

printf(Sigmaofsaleis%.2f\n,sigma);

}

答案【改错1】错误

【学生答案】floatsale,sigma

【参考答案】floatsale,sigma;

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

【改错2】错误

【学生答案】.

scanf(%f,sale);

【参考答案】

scanf(%f,&sale);

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

【改错3】错误

【学生答案】

sigma+==sale;

【参考答案】

sigma+=sale;

sigma=sigma+sale;

2.【程序改错】

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

功能:

m个人的成绩存放在score数组中,请编写函数fun,

它的功能是:

将高于和等于平均分的人数作为函数值返回,

将高于和等于平均分的分数放在above所指的数组中。

程序中共有4条错误语句,请改正错误。

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

注意:

不可以增加或删除程序行,也不可以更改程序的结构。

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

#include

intfun(floatscore[],intm,floatabove[])

{

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

floatav=1;

inti,n=0;

for(i=0;i

av+=score[i];

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

av\=m;

for(i=0;i

if(av<=score[i])above[n++]=score[i];

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

returnabove;

}

main()

{inti,n;

floatscore[9]={10,20,30,40,50,60,70,80,90},above[9];

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

n=intfun(score,9,above);

printf(\

Abovetheaveragescoreare:

);

for(i=0;i

}

答案【改错1】错误

【学生答案】floatav=1;

【参考答案】floatav=0;

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

【改错2】错误

【学生答案】

av\=m;

【参考答案】

av=av/m;

av/=m;

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

【改错3】错误

【学生答案】

returnabove;

【参考答案】

returnn;

return(n);

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

【改错4】错误

【学生答案】

n=intfun(score,9,above);

【参考答案】

n=fun(score,9,above);

填空

1.【程序填空】

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

功能:

是将两个字符串连接为一个字符串,不许使用库函数strcat。

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

#include

#includestring.h

JOIN(s1,s2)

chars1[80],s2[40];

{

inti,j;

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

_____

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

for(i=0;_____'\0';i++)

s1[i+j]=s2[i];

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

s1[i+j]=_____;

}

main()

{

charstr1[80],str2[40];

gets(str1);gets(str2);

puts(str1);puts(str2);

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

_____

puts(str1);

}

答案【空1】错误

【学生答案】_____

【参考答案】j=strlen(s1)

for(j=0;s1[j]!

='10';j++);

for(j=0;s1[j];j++);

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

【空2】错误

【学生答案】

for(i=0;_____'\0';i++)

【参考答案】

s2[i]!

=

*(s2+i)!

=

*(i+s2)!

=

【空3】错误

【学生答案】

s1[i+j]=_____;

【参考答案】

'\0'

NULL

0

【空4】错误

【学生答案】

_____

【参考答案】

JOIN(str1,str2)

2.【程序填空】

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

题目:

<<<题干内容>>>

给定程序的功能是调用fun函数建立班级通讯录。

通讯录中记录每位学生的编号、姓名和电话号码。

班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

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

#include

#include

#defineN5

typedefstruct

{intnum;

charname[10];

chartel[10];

}STYPE;

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

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

当前位置:首页 > 法律文书 > 调解书

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

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