C语言习题级答案2.docx

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

C语言习题级答案2.docx

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

C语言习题级答案2.docx

C语言习题级答案2

选折题

1.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A)。

A、1

B、不一定

C、3

D、2

2.以下选项中不合法的用户标识符是B

A、Dim

B、printf

C、_123

D、A$

3.inti,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数

1,2,3,4,5,6存入a数组的是(C)。

A、for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1;

B、for(i=0;i<6;i++)a[i/3][i%3]=i+1;

C、for(i=1;i<=6;i++)a[i][i]=i;

D、for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1;

4.以下所列的C语言常量中,错误的是___A___。

A、、0xFF

C、2L

D、'\72'

5.若有说明:

inta[3][4]={0};则下面正确的叙述是(A)。

A、数组a中每个元素均可得到初值0

B、只有元素a[0][0]可得到初值0

C、此说明语句不正确

|

D、数组a中各元素都可得到初值,但其值不一定为0

6.以下正确的字符串常量是D

A、'abc'

B、'A'

C、OlympicGames

D、"\\\"

7.C语言中,char类型数据占(C)。

A、8个字节

$

B、4个字节

C、1个字节

D、2个字节

8.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表

示的字符常量'\101'是____D__。

A、非法的常量

B、字符a

C、字符e

D、字符A

9.以下函数的类型是(D)

fff(floatx)

{

return5;

}

A、与参数x的类型相同

B、void类型

C、无法确定

~

D、int类型

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

A、静态(static)类别变量的生存期贯穿于整个程序的运行期间

B、全局变量的作用域一定比局部变量的作用域范围大

C、函数的形参都属于全局变量

D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值

11.下列运算符中是C语言关系运算符的是(C)。

A、&

[

B、~

C、!

=

D、!

12.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用

八进制表示的字符常量'\101'是(D)。

A、字符e

B、字符a

C、非法的常量

D、字符A

:

13.若有floatx=;,则执行下列程序段的输出结果为(B)。

printf("%3d",(int)x);

A、

B、213

C、

D、

14.全局变量的定义不可能在(A)。

A、函数内部

B、文件外面

C、最后一行

D、函数外面

15.C语言中函数调用的方式有(A)。

A、函数调用作为语句、函数表达式或函数参数三种

B、函数调用作为语句一种

C、函数调用作为函数表达式一种

D、函数调用作为语句或函数表达式两种

16.字符串"\\\"WWW\123\xCC\t"的长度为(A)

:

A、8

B、9

C、10

D、14

17.若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为(D)。

A、p=x;

B、p=x[i];

C、p=&(x+i)

D、p=&x[i];

18.以下程序的执行结果是___A____.

main()

{intnum=0;

while(num<=2){num++;printf("%d,",num);}}

A、1,2,3,

B、1,2,3,4,

C、1,2,

D、0,1,2

`

19.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数D

feof(fp)的值为()。

A、一个非0值

B、-1

C、1

D、0

20.以下对枚举类型名的定义中正确的是(D)。

A、enuma{"sum","mon","tue"};

*

B、enuma={sum,mon,tue};

C、enuma={"sum","mon","tue"};

D、enuma{sum=9,mon=-1,tue};

21.在执行fopen函数时,ferror函数的初值是(D)。

A、TRUE

B、1

C、-1

D、0

22.以下能正确进行字符串赋值的语句是D

A、chars[5]=“good!

”;

B、chars[5]={‘a’,‘e’,‘i’,‘o’,‘u’};

C、chars[5];s=“good!

”;

D、char*s;s=“good!

”;

23.已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中

不正确的是(C)。

A、p=&a[j];

B、p=a;

{

C、p=10;

D、p=&j,p=p1;

24.若有intx,y,z;,则执行以下程序段后的输出结果为:

C

x=1;y=5;z=3;

if(x>y)x=y;

y=z;

printf("x=%d,y=%d,z=%d",x,y,z);

A、x=5,y=3,z=5

B、x=1,y=5,z=3

C、x=1,y=3,z=3

D、x=5,y=3,z=3

25.当顺利执行了文件关闭操作时,fclose函数的返回值是(D)。

A、TRUE

B、1

C、-1

D、0

26.以下能正确定义数组并正确赋初值的语句是(D)。

A、intc[2][]={{1,2},{3,4}};

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

C、intN=5,b[N][N];

D、intd[3][2]={{1,2},{34}};

27.以下程序的执行结果是_____B___.

main()

{intw=1,x=2,y=3,z=4;

w=(w

w;

w=(w

w;

~

w=(w

w;

printf("%d",w);}

A、2

B、4

C、3

D、1

28.以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);(A)。

A、4次

B、是无限循环

C、3次

D、循环次数不定

29.以下函数的类型是__B____。

fff(floatx)

{

return5;

}

>

A、无法确定

B、int类型

C、与参数x的类型相同

D、void类型

30.关于建立函数的目的,以下正确的说法是(C)。

A、减少程序文件所占内存

B、提高程序的执行效率

C、提高程序的可读性

>

D、减少程序的篇幅

判断

1.若有intⅰ=10,j=0;则执行完语句

if(j=0)ⅰ++;elseⅰ--;ⅰ的值为11。

F

2.inti=20;switch(i/10){case2:

printf("A");

case1:

printf("B");}的输出结果为A。

F

3.C语言的函数可以嵌套定义.F

4在程序中定义了一个结构体类型后,可以多次用它来定义具有

该类型的变量。

T

5.在C语言中,对于数组的定义chara[8]="computer"是错误的.T

6.结构体类型只有一种。

F

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

8.在C语言中charstr[6]="hello",可以将字符串"hello"正确赋给数组.T

9.C语言中只能逐个引用数组元素而不能一次引用整个数组。

T

|

10.在C语言中charstr[]={'h','e','l','l','o'}不能将字符串"hello"正确赋给数组.T

程序设计1

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

【程序设计】

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

功能:

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

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

-

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

#include<>

voidbky();

intstation(ints[],intn)

{

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

inti,k;

k=0;

for(i=1;i

if(s[i]

return(k);

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

}

程序设计2

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

【程序设计】

|

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

功能:

请编一个函数voidfun(inttt[M][N],intpp[N]),

tt指向一个M行N列的二维数组,求出二维数组每列

中最小元素,并依次放入pp所指一维数组中。

二维

数组中的数已在主函数中赋予。

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

#include<>

~

#include<>

#defineM3

#defineN4

voidbky();

voidfun(inttt[M][N],intpp[N])

{

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

inti,j;

for(j=0;j

{

pp[j]=tt[0][j];

for(i=1;i

if(tt[i][j]

pp[j]=tt[i][j];

>

}

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

}

main()

{

intt[M][N]={{22,45,56,30},

{19,33,45,38},

{20,22,66,40}};

intp[N],i,j,k;

printf("Theoriginaldatais:

\n");

for(i=0;i

{

for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

?

printf("\nTheresultis:

\n");

for(k=0;k

printf("\n");

bky();

}

voidbky()

{

inti,j,array[3][4],p[4];

FILE*rf,*wf;

rf=fopen("","r");

wf=fopen("","w");

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

for(j=0;j<4;j++)

fscanf(rf,"%d",&array[i][j]);

fun(array,p);

for(j=0;j<4;j++)

{

fprintf(wf,"%7d",p[j]);

fprintf(wf,"\n");

}

fclose(rf);

fclose(wf);

}

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

【程序改错】

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

|

功能:

为一维数组输入10个整数;将其中最小的数与第一个数

对换,将最大的数与最后一个数对换,输出数组元素。

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

#include<>

main()

{

inta[10];

voidinput();

$

voidoutput();

voidmax_min();

input(a,10);

max_min(a,10);

output(a,10);

}

voidinput(int*arr,intn)

{

int*p,i;

p=arr;

printf("pleaseenter10integers:

\n");

for(i=0;i

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

scanf("%d",p);

}

voidmax_min(int*arr,intn)

{

int*min,*max,*p,t;

>

min=max=arr;

for(p=arr+1;p

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

if(*p<*max)

max=p;

elseif(*p<*min)min=p;

t=*arr;*arr=*min;*min=t;

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

if(max=arr)max=min;

t=*(arr+n-1);

*(arr+n-1)=*max;

*max=t;

}

voidoutput(int*arr,intn)

{

int*p,i;

p=arr;

printf("Thechangedarrayis:

\n");

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

{

while(i=0;i

printf("%3d",*p++);

printf("\n");

}

【改错1】错误

【学生答案】

scanf("%d",p);

【参考答案】

scanf("%d",p★++);

scanf("%d",arr[i]);

scanf("%d",p+i);

scanf("%d",arr+i);

 

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

【改错2】错误

【学生答案】

{

if(*p<*max)

【参考答案】

if(*p>*max)

if(*max<*p)

 

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

【改错3】错误

$

【学生答案】

if(max=arr)max=min;

【参考答案】

if(max==arr)

if(arr==max)

 

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

'

【改错4】错误

【学生答案】

while(i=0;i

【参考答案】

for(i=0;i

for(i=0;n>i;i++)

for(p=arr;p

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

for(i=0;n-1>=i;i++)

[

for(p=arr;p<=arr+n-1;)

for(p=arr;arr+n-1>=p;)

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

【程序改错】

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

功能:

有n个整数,使其前面各数顺序向后移m个位置,最后m个

数变成最前面的m个数。

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

#include""

main()

{

intnumber[20],n,m,i;

printf("thetotalnumbersis:

");

|

scanf("%d",&n);

printf("backm:

");

scanf("%d",&m);

for(i=0;i

scanf("%d,",&number[i]);

scanf("%d",&number[n-1]);

move(number,n,m);

for(i=0;i

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

printf("%d",number[n-1]);

}

move(array,n,m)

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

intn,m,array(20);

{

int*p,array_end;

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

array_end=(array+n-1);

for(p=array+n-1;p>array;p--)

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

*p==*(p-1);

*array=array_end;

m--;

if(m>0)move(array,n,m);

}

【改错1】错误

·

【学生答案】

intn,m,array(20);

【参考答案】

intn,m,array[20];

 

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

【改错2】错误

<

【学生答案】

array_end=(array+n-1);

【参考答案】

array_end=*(array+n-1);

 

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

【改错3】错误

【学生答案】

*p==*(p-1);

【参考答案】

*p=*(p-1);

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

【程序填空】

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

\

功能:

从键盘输入若干行字符,输入后把他们存储到一磁盘文件

中。

在从该文件中读出这些数据,将其中的小写字母转换

成大写字母后在屏幕上输出。

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

#include""

#defineN100

main()

{

FILE*fp;

charc,*p,s[N][20];

inti,n;

printf("n=");scanf("%d",&n);

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

if(n<1_____n>N)exit(0);

printf("Input%dstring:

\n",n);

for(i=0;i

}

scanf("%s",s[i]);

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

fp=fopen("text",_____);

for(i=0;i

{

p=s[i];

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

while(*p!

='\0')

if(!

ferror(fp))fputc(_____,fp);

}

%

fclose(fp);

printf("\n");

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

fp=fopen("text",_____);

while((c=fgetc(fp))!

=EOF)

{

if(c>'a'&&c<='z')c-+32;

putchar(c);

}

printf("\n");

|

fclose(fp);

}

【空1】错误

【学生答案】

if(n<1_____n>N)exit(0);

【参考答案】

||

{

 

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

【空2】错误

【学生答案】

fp=fopen("text",_____);

【参考答案】

"w"

#

 

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

【空3】错误

【学生答案】

while(*p!

='\0')

【参考答案】

*p++

?

 

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

【空4】错误

【学生答案】

fp=fopen("text",_____);

【参考答案】

"r"

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

【程序填空】

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

功能:

数组名作为函数参数,求平均成绩。

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

floataver(floata[])/*定义求平均值函数,形参为一浮点型数组名*/

{

inti;

floatav,s=a[0];

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

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

s+=_____[i];

av=s/5;

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

return_____;

}

voidmain()

{

floatsco[5],av;

inti;

printf("\ninput5scores:

\n");

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

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

scanf("%f",_____);

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

av=aver(_____);

printf("averagescoreis%\n",

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

当前位置:首页 > PPT模板 > 其它模板

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

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