C语言问题

#include<stdio.h>voidmain(){charc1,c2;scanf("%c",&c1);while(c1<65||c1>90){scanf("%c",... #include<stdio.h>
void main()
{
char c1,c2;
scanf("%c",&c1);

while(c1<65||c1>90)
{
scanf("%c",&c1);

}
c2=c1+32;
printf("%c,%c\n",c1,c2);
}

输入65明明不符合
while(c1<65||c1>90)
呀。为什么还不能输出啊
展开
 我来答
百度网友d57f639
2013-02-15 · TA获得超过2251个赞
知道大有可为答主
回答量:7475
采纳率:0%
帮助的人:2030万
展开全部
一个多的选择
C语言规定,在一个源中,main()函数的位置(C)。任何
A)必须在最开始B)必须在最后
C)D)必须在系统调用的库函数

这个问题,你死记硬背的背后,你看
任何一个C + +程序必须定义一个main函数,它的返回类型是int型的。这个函数被调用的操作系统

信主后程序终止。主也可以使用return返回一个值给操作系统,操作系统命令

主要的返回值可以被检测出来。一般约定在主函数返回0,表示没有程序中的错误,其他非0值表示异常情况。
没有指定的返回值,返回值是任意的。

2,x和y是int类型的变量= 100时,y = 200,以及下面的程序段输出(“%d”处,(的x,y)),然后它的输出是( A)。
A)200 B)100 C)100 200 D)不确定的值输出

(X,Y)是一个逗号表达式,该表达式的值是一个逗号后面的值,前面有一个%d输出Y,

价值

合法的C语法字符常量是(C)。
A)A“B)65 C)'\ t'D)A

字符括在两个单引号,死记硬背,一个字符串)

如图4所示,表达式“3! = 4“的值(A)。
A)1 B)0 C)TD)F

= c语言的逻辑运算符,3 = 4,获得1 3 = 4是假的,值0

5,INT A = 1,B = 2,C = 3,D = 4,请执行以下步骤x的值为( C)。
(A> B)x = 1;否则,如果(C> D)x = 2;否则x = 3;
A)1 B)2 C)3 D)4 BR />
如果> B> 2是假的,不执行X = 1,否则,如果执行(C> D)判断:3> 4是假的,不执行X = 2,执行= 3,成品

6,以下程序的输出是(D)。
INT X = 10,Y = 3,Z;的printf(“%d \ n”,Z =(X %Y,X / Y));
A)1 B)0 C)4 D)3

逗号表达式x%,10%,供应商3余1模采取的其余的X / Y,10/3,供应商3 I 1,分商逗号表达式,表达式是最后

1后的逗号表达式的值

7 ,你应该使用C语言表达式X≥Y≥于式(A)。
A)(x> = y)&&(Y = Z)B)(X> = Y)AND(Y> = Z)
C)(X> = Y = Z)D)(x> = y)&(Y = Z)

关系运算符,X> = Y和Y > = z必须设置在同一时间使用逻辑运算符&&,&&,平均

法律数组的定义是(A)。
A)诠释一个[] =“string”的B)INT A [5] = {0,1,2,3,4,5};
C)字符=“字符串”D)字符[] = {“01234; “};

一个没有指定长度的数组定义,纠正
b数组长度为5,是5个数组元素,多一个
c数组元素定义了一个不一个数组,但应该是一个变量永恩集团[]
D是错误的,则该字符串被定义为:CHAR A [] = {'0','1','2','3',' 4','\ 0'};

[4]中的数字是数组的长度,有几个要素

9设x y是int类型的变量,声明“X + = Y,Y = XY,X-Y;”的功能是(D)。
A)x和y从小到大排列B)x和y在降序
?)来确定结果的D)交换x和y的值吗?

X + X = X + Y,X加Y = y等价分配的x,x已保存现在的值是x和y,
为y = XY X保存的值和y YX保存现在和x和y(X + y)的-γ= x时,x的值?保存所述
X-= Y是X = XY,X,保存y的值赋给X(X + Y)-Y = X,现在后面的Y内存相当于是值Y,的x的值,该值存储在后的光洁度XY完整的交换

10,如果它被定义的x和y double类型,表达式“x = 1时,为y = x +3的/ 2的值是(C)。
A)1 B)2 C)2.0 D)1.0

逗号表达式,令x = 1,y的计算= X +3 / 2,2,因为它是一个双所以小数点

11,下面的条件语句和其他报表(D)
A)如果(a)的printf(“%d \ n”,X);输出(“%d \ n”,Y);
B)(A == 0)printf的(“%d \ n”,y); printf的(“%d \ N”, X);
C)如果(A! = 0)printf的(“%d \ n”,x)的所有输出(“%d \ n”,y);
e )(== 0)printf的(“%d \ n”,x)的所有输出(“%d \ n”,y);

一个如果,如果是真正的输出x A是错误的输出?
b如果A == 0是假的,输出y,一个
c如果一个真正的输出x! = 0为真,输出的x,?同上
d如果错误输出X,如果A是一个真正的输出y,和上面的不同

12,以下错误输出能源的正确定义的二维数组(C)
A)诠释一个[] [3] B)诠释一个[] [3] = {2 * 3};
C)诠释一个[] [3] = {0}; D)诠释一个[2] [3] = {{1},{2},{3,4}};
没有对数组初始
B {}不正确,请记住空的第一个[] *
C秒[]不能为空,死记硬背
DA [2] [3]装置有一个两维阵列中,每个三个元素的一维数组,{1},{2},{3,4}};她的意思三个数组{} {}表示一个数组的数组元素内的数量

13,C语言程序编写的代码(B)
A)可以立即执行,乙)是一个源
C)
/>死记硬背D)编译解释执行编译执行
风痕云迹_
2013-02-11 · TA获得超过5631个赞
知道大有可为答主
回答量:1676
采纳率:100%
帮助的人:980万
展开全部
char c1,c2;
scanf("%c",&c1);

上两行意味着, c1 是 char 型。 所以 输入65时,得到的 首先是 c1=‘6’,
而作比较: while(c1<65||c1>90) 时, 是把 c1的 ascii 码 与 65, 90 比较。

把 char 改成 int, %c 改成 %d 即可:

#include<stdio.h>
void main()
{
int c1,c2;
scanf("%d",&c1);
while(c1<65||c1>90)
{
scanf("%d",&c1);
}
c2=c1+32;
printf("%d,%d\n",c1,c2);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扛自凡K
2013-02-11
知道答主
回答量:3
采纳率:0%
帮助的人:4577
展开全部
额 错了。。 你可以将%c 改成 %d 这样你输入65时它就会输出a 或者 你直接输入字母 因为你定义的是字符 是以ASCLL码判断的 想输入数字你就要改成%d 这样就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
川行天下4
2013-02-11
知道答主
回答量:53
采纳率:0%
帮助的人:18万
展开全部
额我觉得程序应该是这样运行的 你输入65的时候先输入6字符比65小,然后在读入5字符应该是这样运行的 除非你定义c1为int类型到时候输出的时候用char类型输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l521088816
2013-02-11 · TA获得超过1772个赞
知道小有建树答主
回答量:780
采纳率:0%
帮助的人:1085万
展开全部
你输入 的65是int整形数,而while里的65指的ascii码
a的ascii码是65,所以只能输入小写英文字母
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式