首页 > 编程知识 正文

简单的c语言题,C语言的题

时间:2023-12-29 20:31:40 阅读:330492 作者:QXUV

本文目录一览:

c语言简单的题

第一题:

赋值符号"="右边是由常量,变量,运算符,和函数组成的表达式.A,B中第一个"="右边不是一个表达式.

逗号表达式形式是:表达式1,表达式2,..,表达式n;按从左到右的顺序逐个求解表达式.整个表达式的值就是最后一个表达式n的值.所以C是一个逗号表达式;加一个阔号可以与周围其他逗号区分开,在这里不会有错.

一条语句必须加分号,复合语句必须加中括号.明显D错了.

正确选C

第二题.

自加自减运算符优先与加减运算符;

并且按自右向左顺序执行,显然--i,被先合并了.被执行了,那么此刻i就是等于2,所以再执行-的时候变成了2-2,答案自然是A啦.哈

说明下++,--只能和变量组合,当然右边优先.

+++,---你要怎么拆,首先给我拆给变量,两边都是变量当然又是右边优先啦

简单c语言题目

第一题:a*=16+(b++)-(++c)等价于a=a*

(16+(b++)-(++c));

"()"优先级最高,所以先执行:(b++),在使用b之后,使b加一,因此(b++)=3;(++C),在使用c之前,使C加一,因此(++C)=5。然后将按照加减的结合性."自左向优"计算,因此16+(b++)-(++c)=14;之后

执行a*(16+(b++)-(++c))=28,所以a=28;

第2题:结果应该是1,因为unsigned

short类型的数值范围是0到65535,(-

-!汗,你可找cc++程序设计的书,那里可以找到数据类型的数值范围)因为int是范围要大多,又因为signeed是以补码形式存放,而unsigned是全部2进制位都用本身表示自己,所以

程序的输出结果是-1;

第3题:x/y=0.5,但要自动转换成int类型,因此x/y=0

,所以1.0+x/y的值为1.0;

第4题:x-=y-z等价于x=x-(y-z),用小学的算法计算x-(y-z)=5,

x的值为5;

x%=y+z等价于x=x%(y+x),因为x%(y+x)=0.5,又因为x,y都为整形(int),所以x的值为0;

第5题;在此语句中printf("#d%dn",(++x+y++),z+2);

#d是字符输出,%d是输出第一个表达式(自左向右),即是(++x+y++),先执行自增运算符++x值为4,(原理看第一题的说明),y++的值为3,所以(++x+y++)

=7,所以程序执行结果是#d7;

第6题:我觉得你这个题目是你抄错题"a=2,b=3,c=4.5,y=1.6,"中的c应该为x,这题是这样的,先执行(int)x=4,(int)=1,再执行(int)x%(int)y=4(注意,这里4是float类型),在执行(float)(a+b)/2=2.5,所以此表达式的值为6.5

第7题:-

-!你有抄错题没有?

main()

{int

i,j,m,n;

i=8;

j=3;

m=++i;

n=j--;

printf("%d,%d,%d,%d,i,j,m,n);}

/*觉得是printf("%d,%d,%d,%d",i,j,m,n);

*/

m=++i;因此m=9,这里i为9,这个容易理解(第一题);j第一次执行的时候n=j--,这里n=3,j=3;到第2次执行J的时候,即是执行printf("%d,%d,%d,%d,i,j,m,n)语句,这里的j就为2

因此执行结果为:9,2,9,3

第8题:因为abC是真,在C中都用数值1表达真,0表达假,所以m=1,所以表达式m=abc的值是1;

第9题:又抄错题?-

-!“b=2”?

先执行!,在执行关系运算符,ab为真,ca为假,ab为假,在执行逻辑运算符abca为假,abca‖abca‖ab为假,所以abca‖ab的值是0;

第10题:答案肯定为0;"设a=3,b=4,c=5,则表达式!(x=a)(y=b)0的值是"这题你做的出请告诉我,我也不会。(但可以敢肯定的是他的值为0,因为这个表达式的后面那个数据为0)如果将这题这样改写的话“10.设a=3,b=4,c=5,则表达式!(c=a)(c=b)0的值是”,我就有感觉怎做,首先(c=a)为假,!(c=a)为真,(c=b)为假,!(c=a)(c=b)为假,!(c=a)(c=b)0为假,即是0;

几道简单的C语言选择题,帮忙做一下

1、

为表示关系x≥y≥z,应使用C语言表达式

(A)2、

执行下面程序段

(B)3、

若有以下定义:

float

x;

int

a,b;

则正确的switch

语句是

(C)4、

能正确表示a和b同时为正或同时为负的逻辑表达式是(D)5、

选择出合法的判断a和b是否相等的if语句(C)6、

已知

int

x=10,y=20,z=30,则执行(如果那些语句是在if里面的话,那就选A,如果不是,那就选B)7、

运行下面程序后,输出是(B)8、

执行下列程序后的输出结果是(D)9、

如果c为字符型变量,下面________可以判断c是否为空格(A)10、

如果c为字符型变量,判断c是否为空格不能使用(C)

简单的c语言题

你原来的程序

#includestdio.h

#includestring.h

typedef struct{char name[9];char sex;float score[2];}STU;

void f(STU a)

{

STU b={"Zhao",'m',85.0,90.0}; int i;

strcpy(a.name,b.name);

a.sex=b.sex;

for(i=0;i2;i++) a.score[i]=b.score[i];

}

main()

{ STU c={"Qian",'f',95.0,92.0};

f(c);//c传递的是c的值,而不是c的地址,值是不能被赋值的,所以不管函数里发生什么变化,c的值都不会变

printf("%s,%c,%2.0f,%2.0fn",c.name,c.sex,c.score[0],c.score[1]);

}

我把程序改成这样的话

#includestdio.h

#includestring.h

typedef struct{char name[9];char sex;float score[2];}STU;

void f(STU *a) //*a定义的是接收地址的指针

{

STU b={"Zhao",'m',85.0,90.0}; int i;

strcpy((*a).name,b.name);

(*a).sex=b.sex;

for(i=0;i2;i++) (*a).score[i]=b.score[i];

}

main()

{ STU c={"Qian",'f',95.0,92.0};

f(c);//这里是把c的地址传进函数,所以c会被改成函数里的值

printf("%s,%c,%2.0f,%2.0fn",c.name,c.sex,c.score[0],c.score[1]);

}

这个输出就是:Zhao,m,85,90

希望能帮到你,可以加我,继续为你解答

简单的C语言题

第一题:a*=16+(b++)-(++c)等价于a=a*

(16+(b++)-(++c));

"()"优先级最高,所以先执行:(b++),在使用b之后,使b加一,因此(b++)=3;(++C),在使用c之前,使C加一,因此(++C)=5。然后将按照加减的结合性."自左向优"计算,因此16+(b++)-(++c)=14;之后

执行a*(16+(b++)-(++c))=28,所以a=28;

第2题:结果应该是1,因为unsigned

short类型的数值范围是0到65535,(-

-!汗,你可找cc++程序设计的书,那里可以找到数据类型的数值范围)因为int是范围要大多,又因为signeed是以补码形式存放,而unsigned是全部2进制位都用本身表示自己,所以

程序的输出结果是-1;

第3题:x/y=0.5,但要自动转换成int类型,因此x/y=0

,所以1.0+x/y的值为1.0;

第4题:x-=y-z等价于x=x-(y-z),用小学的算法计算x-(y-z)=5,

x的值为5;

x%=y+z等价于x=x%(y+x),因为x%(y+x)=0.5,又因为x,y都为整形(int),所以x的值为0;

第5题;在此语句中printf("#d%dn",(++x+y++),z+2);

#d是字符输出,%d是输出第一个表达式(自左向右),即是(++x+y++),先执行自增运算符++x值为4,(原理看第一题的说明),y++的值为3,所以(++x+y++)

=7,所以程序执行结果是#d7;

第6题:我觉得你这个题目是你抄错题"a=2,b=3,c=4.5,y=1.6,"中的c应该为x,这题是这样的,先执行(int)x=4,(int)=1,再执行(int)x%(int)y=4(注意,这里4是float类型),在执行(float)(a+b)/2=2.5,所以此表达式的值为6.5

第7题:-

-!你有抄错题没有?

main()

{int

i,j,m,n;

i=8;

j=3;

m=++i;

n=j--;

printf("%d,%d,%d,%d,i,j,m,n);}

/*觉得是printf("%d,%d,%d,%d",i,j,m,n);

*/

m=++i;因此m=9,这里i为9,这个容易理解(第一题);j第一次执行的时候n=j--,这里n=3,j=3;到第2次执行J的时候,即是执行printf("%d,%d,%d,%d,i,j,m,n)语句,这里的j就为2

因此执行结果为:9,2,9,3

第8题:因为abC是真,在C中都用数值1表达真,0表达假,所以m=1,所以表达式m=abc的值是1;

第9题:又抄错题?-

-!“b=2”?

先执行!,在执行关系运算符,ab为真,ca为假,ab为假,!cb为假,在执行逻辑运算符abca为假,abca‖ab为假,abca‖ab!cb为假,所以abca‖ab!cb的值是0;

第10题:答案肯定为0;"设a=3,b=4,c=5,则表达式!(x=a)(y=b)0的值是"这题你做的出请告诉我,我也不会。(但可以敢肯定的是他的值为0,因为这个表达式的后面那个数据为0)如果将这题这样改写的话“10.设a=3,b=4,c=5,则表达式!(c=a)(c=b)0的值是”,我就有感觉怎做,首先(c=a)为假,!(c=a)为真,(c=b)为假,!(c=a)(c=b)为假,!(c=a)(c=b)0为假,即是0;

C语言几道简单的题目

【B】2.变量a与b分别初始为10与20,正确的语句是:

A:

int

a=10,

int

b=20;

B:

int

a=10,

b=20;

C:

int

a=10;

b=20;

D:

int

a=10;

b=20,

【C】3.以下选项中正确的C语言常量是:

A:

0xEfGh

B:

'XYZ'

C:

12.34e5

D:

'5A'

【A】4.设有double

x;char

s[50];输出双精度浮点数x和字符串s,正确的语句是:

A:

printf("%lf

%s",x,s);

B:

printf("%ld

%s",x,s);

C:

printf("%lf

%s",x,s);

D:

printf("%lf

%s",x,s[50]);

【B】5.语句printf("%.1f,%dn",10./4,10/8);的输出是:

A:

2.5,1.25

B:

2.5,1

C:

1,1.25

D:

2,1.25

【B】6.设有char

ch;

与语句“ch=getchar();”等价的语句是:

A:

scanf("%c",ch)

B:

scanf("%c",ch);

C:

printf("%c",ch);

D:

printf("%c",ch);

【C】7.

设int

n,m;

使m为n的十进制百位数的语句是:

A:

m

=

n/100;

B:

m

=

n%100;

C:

m

=

n/100%10;

D:

m

=

n%10/100;

【C】8.设float

x,y;

使y为x的小数部分的语句是:

A:

y

=

(int)x;

B:

y

=

int(x);

C:

y

=

x-(int)x;

D:

y

=

x-int(x);

【C】9.

与语句“m

+=

(x=5)

+

(--y);”等价的语句序列是:

A:

m=m+x+y;

x=5;

y=y-1;

B:

x=5;

m=m+x+y;

y=y-1;

C:

x=5;

y=y-1;

m=m+x+y;

D:

y=y-1;

m=m+x+y;

x=5;

【B】10.

设int

n;

对应“n为二位数(10至99)”的判断表达式是:

A:

10=n=99

B:

10=n

n=99

C:

10=n

||

n=99

D:

10=n,

n=99

【A】11.

设char

ch;

判断“ch为数字字符”的表达式是:

A:

ch='0'

ch='9'

B:

ch0

ch9

C:

ch='0'

||

ch='9'

D:

ch=0

||

ch=9

【A】12.

与语句“x+=(a++==b)?c:--d;”功能等价的语句段是:

A:

if

(a==b)

{

a=a+1;

x=x+c;

}

else

{

a=a+1;

d=d-1;

x=x+d;

}

B:

a=a+1;if

(a==b)

{

x=x+c;

}

else

{

d=d-1;

x=x+d;

}

C:

if

(a==b)

{

a=a+1;

x=x+c;

}

else

{

a=a+1;

x=x+d;

d=d-1;

}

D:

if

(a==b)

{

a=a+1;

x=c;

}

else

{

a=a+1;

d=d-1;

x=d;

}

【C】13.

设有in

i;

写出下列语句的运行结果:

for

(i=0;i5;i++)

printf("%d",i);

A:

0123456

B:

012345

C:

01234

D:

0123

【C】14.

设有char

ch;

写出下列语句的运行结果:

for

(ch='B';ch='F';ch++)

putchar(ch);

A:

ABCDEFG

B:

ABCDEF

C:

BCDEF

D:

BCDEFG

【A】15.

以下一维数组定义中,正确的是:

A:

int

a[5]

=

{

1,2,3,4,5

};

B:

int

a[5]

=

1,2,3,4,5;

C:

int

a[1

to

5];

D:

int

a[]

【D】16.以下字符串定义与赋值中,正确的是:

A:

char

s[80];

s

=

{'A',

'B',

'C'};

B:

char

s[80];

s

=

"ABC";

C;

char

s[80]

=

{"A",

"B",

"C"};

D:

char

s[80]

=

"ABC";

【B】17.

在字符串常用函数中,用于复制字符串的函数是:

A:

strlen

B:

strcpy

C:

strcat

D:

strcmp

【B】18.

设有定义:int

i,

a[10];

能正确输入a数组各元素的语句是:

A:

i=10;

scanf("%d",

a[i]);

B:

for(i=0;

i=9;

i++)

scanf("%d",

a+i);

C:for(i=0;i10;i++)scanf("%d",a[i]);D:for(i=0;i10;i++)scanf("%d",

a);

【B】19.

设有定义:int

a[10]={6,7,8,9,10};正确的解释是:

A:

将5个初值依次赋给a[1]至a[5]

B:

将5个初值依次赋给a[0]至a[4]

C:

将5个初值依次赋给a[6]至a[10]

D:

将5个初值依次赋给a[5]至a[9]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。