C语言习题级答案3Word格式.docx

上传人:b****5 文档编号:20614597 上传时间:2023-01-24 格式:DOCX 页数:20 大小:36.15KB
下载 相关 举报
C语言习题级答案3Word格式.docx_第1页
第1页 / 共20页
C语言习题级答案3Word格式.docx_第2页
第2页 / 共20页
C语言习题级答案3Word格式.docx_第3页
第3页 / 共20页
C语言习题级答案3Word格式.docx_第4页
第4页 / 共20页
C语言习题级答案3Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言习题级答案3Word格式.docx

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

C语言习题级答案3Word格式.docx

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<

stdio.h>

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

D、23

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

A、char*a="

china"

等价于char*a;

*a="

B、charstr[10]={"

等价于charstr[10];

str[]={"

C、charc[4]="

abc"

d[4]="

等价于charc[4]=d[4]="

D、char*s="

等价于char*s;

s="

12.设b的值为二进制数,b=;

表达式(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("

a,b);

C、gets("

a"

),gets("

b"

);

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、不能得到确定的初值

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

C、可在程序的运行阶段得到初值0

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

19.下面四个选项中,均是不合法的用户标识符的选项是(D)。

A、_123tempint

B、AP_0do

C、floatla0_A

D、b-agotoint

20.以下不能对二维数组a进行正确初始化的语句是(B)。

A、inta[][3]={{1,2},{0}};

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

C、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

D、-3

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

中错误的是(B)。

A、有穷性

B、有零个或多个输出

C、可行性

D、有零个或多个输入

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

A、staticchara[2]={'

1'

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

C、staticchara[2]={'

2'

3'

D、staticinta[2]={'

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

inta[5],*p=a;

A、*(p+5)

B、*&

a[5]

C、*p+2

D、*(a+2)

25.若有定义:

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

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

A、p4=&

ch;

*p4=getchar();

B、p2=(char*)malloc

(1);

scanf("

%c"

p2);

scanf("

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、

 

判断

1.C语言规定,必须用main作为主函数名T

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("

file"

"

r+"

打开的文件"

可以进行修改。

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

7.在C语言中,对于数组的定义chara[8]="

computer"

是错误的.T

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

实现的。

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

10.#define和printf都不是C语句。

程序设计

1./*------------------------------------------------

【程序设计】

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

功能:

给定n个数据,求最大值出现的位置(如果最大值出

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

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

#include<

intstation(ints[],intn)

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

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

inta[100],n,i,t;

&

n);

for(i=0;

i<

n;

i++)

a[i]);

t=station(a,n);

themax_valuepositionis:

%d\n"

t);

TestFunc();

TestFunc()

FILE*IN,*OUT;

intn;

inti[10];

into;

IN=fopen("

in.dat"

r"

if(IN==NULL)

ReadFileError"

OUT=fopen("

out.dat"

w"

if(OUT==NULL)

WriteFileError"

for(n=0;

n<

10;

n++)

{

fscanf(IN,"

i[n]);

o=station(i,10);

fprintf(OUT,"

o);

fclose(IN);

fclose(OUT);

答案

inti,k;

k=0;

for(i=1;

=n;

if(s[i]>

s[k])k=i;

return(k+1);

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

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

#defineN4

#include"

stdlib.h"

voidbky();

floatmul(intarr[][N])

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

N;

for(j=0;

j<

j++)

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

%4d"

a[i][j]);

\n"

Thesumis%d\n"

mul(a));

bky();

voidbky()

intm,n;

inti[4][4];

floato;

ReadFILEError"

WriteFILEError"

for(m=0;

m<

100;

m++)

i[m][n]);

o=mul(i);

%f\n"

答案【参考代码】

inti,j;

floatt=1;

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

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

return(t);

改错

1【程序改错】

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

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

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

由于营

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

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

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

统计营业员一天营业额

营业额清0;

输入第一笔交易额;

while(交易额>

0.0)

累计营业额;

输入下一笔交易额;

输出营业额;

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

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

voidmain()

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

floatsale,sigma

sigma=0.0;

Entersaledata.\n"

%f"

sale);

while(sale>

sigma+==sale;

Enternextsaledata(<

=0tofinish).\n"

sale);

Sigmaofsaleis%.2f\n"

sigma);

答案【改错1】错误

【学生答案】

floatsale,sigma

【参考答案】

floatsale,sigma;

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

【改错2】错误

【改错3】错误

sigma+==sale;

sigma+=sale;

sigma=sigma+sale;

2.【程序改错】

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

它的功能是:

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

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

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

注意:

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

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

{

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

floatav=1;

inti,n=0;

m;

i++)

av+=score[i];

av\=m;

if(av<

=score[i])above[n++]=score[i];

returnabove;

}

main()

{inti,n;

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

n=intfun(score,9,above);

printf("

\nAbovetheaveragescoreare:

"

);

for(i=0;

i<

n;

i++)printf("

%f"

above[i]);

floatav=1;

floatav=0;

av\=m;

av=av/m;

av/=m;

returnabove;

returnn;

return(n);

【改错4】错误

n=intfun(score,9,above);

n=fun(score,9,above);

填空

1.【程序填空】

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

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

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

string.h"

JOIN(s1,s2)

chars1[80],s2[40];

inti,j;

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

_____

for(i=0;

_____'

\0'

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

s1[i+j]=_____;

main()

charstr1[80],str2[40];

gets(str1);

gets(str2);

puts(str1);

puts(str2);

答案【空1】错误

_____

j=strlen(s1)

for(j=0;

s1[j]!

='

10'

j++);

s1[j];

【空2】错误

for(i=0;

s2[i]!

=

*(s2+i)!

*(i+s2)!

【空3】错误

s1[i+j]=_____;

'

NULL

【空4】错误

JOIN(str1,str2)

2.【程序填空】

题目:

<

题干内容>

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

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

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

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

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

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

stdlib.h>

#defineN5

typedefstruct

{intnum;

charname[10];

chartel[10];

}STYPE;

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

intfun(_____*std)

FILE*fp;

inti;

if((fp=fopen("

myfile5.dat"

_____))==NULL)

return(0);

\nOutputdatatofile!

i<

i++)

fwrite(&

std[i],sizeof(STYPE),1,fp);

_____;

return

(1);

{STYPEs[10]={{1,"

aaaaa"

"

},{2,"

bbbbb"

},{3,"

ccccc"

},

{4,"

ddddd"

},{5,"

eeeee"

}};

intk;

k=fun(s);

if(k==1)

Succeed!

else

Fail!

【空1】错误

STYPE

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

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1