C语言习题级解答3.docx

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

C语言习题级解答3.docx

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

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

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

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

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)

25.若有定义:

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

则不能正确赋值的程序语句为(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、

 

判断

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+");打开的文件"file"可以进行修改。

T

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

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

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

实现的。

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

T

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

T

程序设计

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

%d\n",t);

TestFunc();

}

TestFunc()

{

FILE*IN,*OUT;

intn;

inti[10];

into;

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

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

#include"stdlib.h"

#include

voidbky();

floatmul(intarr[][N])

{

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

 

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

}

main()

{

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

for(i=0;i

for(j=0;j

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

当前位置:首页 > 解决方案 > 学习计划

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

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