⑴ 简单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,(-
-!汗,你可找c\c++程序设计的书,那里可以找到数据类型的数值范围)因为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&%d\n",(++x+y++),z+2);
#d&是字符输出,%d是输出第一个表达式(自左向右),即是(++x+y++),先执行自增运算符++x值为4,(原理看第一题的说明),y++的值为3,所以(++x+y++)
=7,所以程序执行结果是#d&7;
第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题:因为a>b>C是真,在C中都用数值1表达真,0表达假,所以m=1,所以表达式m=a>b>c的值是1;
第9题:又抄错题?-
-!“b=2”?
先执行!,在执行关系运算符,a>b为真,c>a为假,ab为假,在执行逻辑运算符a>b&&c>a为假,a>b&&c>a‖ab&&c>a‖ab为假,所以a>b&&c>a‖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语言题的答案3
1.D 题目中j应该为i,可能是笔误.当i=0时,s=s+a[0][0]=0+1=1;当i=1时,s=s+a[1][1]=1+2=3;当i=2时,s=s+a[2][2]=3+7=10;当i=3时,s=s+a[3][0]=10+3=13.
2.A While(1+3)这个是成立的,里面的表达式是算术表达式,这样下面选项就不攻自破了.
3.C 运行过程是:s=s+t=0.0+0.0=0.0;t被附值为1.0/(i*i)的值,此时i==1,t就是1.0,i自加1,i的值变为2.while(i<=2)判断为真再执行一次do后语句.s=s+t=0.0+1.0=1.0;t=0.25;i自加1,值变为3.while判断为假,跳出语句.
4.C 整型变量i初始化为010,这是个八进制表示形式.转化为十进制值为8.printf输出语句各变量输出是按照从右到左的方式输出,也就是先输出i++的值,(%d是使变量的值按照十进制的形式输出)后面那个就是8,同时i的值自加为9,再输出++i的值,先自加1,变为10输出.
5.C 这里要注意的是含参数的宏定义,把参数一成不变地代进去,象该题D(a+b)*c,把a+b代替x,表达式就是a+b*a+b*c=4+5*4+5*2=34;如果你要得到(a+b)*(a+b)*c这种格式的话,在宏定义时就要改为#define D(x) (x)*(x)
6.A 这是概念性问题.找书看就知道了.
7.D x?a=b这个条件表达式就是当x为真时,值是a,假时为b 而x!=0这个关系表达式,就是当x不等于0时,为真.
8.D 指针变量p还没有指向一个确定的整型变量,不能附值.
9.B 规定的格式 就是将字符串的首地址附给p.
10.A 这题和第三题类似,就是在do后语句中,顺序变了.基本思路一样.
⑶ 求C语言经典例题与答案
我这里有一份
是基础的
传你邮箱了
⑷ 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,%d\n",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:
ch>0
&&&&
ch<9
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;i<5;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;i<10;i++)scanf("%d",a[i]);D:for(i=0;i<10;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]
⑸ 求一道C语言题的答案
#include<stdio.h>
int
main()
{char
s[]="I
am
a
***student,you
***are
**a
teach*****er.";
char
*p,*q;
for(p=q=s;*p;p++)
if(*p!='*')*q++=*p;
*q='