一道C语言题目

若有定义:int x,y; char a,b,c;并有以下输入数据(此处<CR>代表换行符,△代表空格):
1△2<CR>
A△B△C<CR>
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是
A.scanf("x=%d y=%d",&x,&y);a=getchar();b=getchar();c=getchar();
B.scanf("%d %d",&x,&y);a=getchar();b=getchar();c=getchar();
C.scanf("%d%d%c%c%c",&x&y&a&b&c);
D.scanf("%d%d%c%c%c%c%c%c",&x&y&a&a&b&b&c&c);
答案是D,我不懂的是为什么A错了,谢谢指导。

#include<stdio.h>

#include<stdlib.h>//头文件 

#include <time.h>//头文件 

int main()

{

int a[111],b[100],c[111],n,m,k=0,t,l=0,s;

scanf("%d%d",&n,&m);

    srand((unsigned)time(NULL));//srand()就是给rand()提供种子

    for(int i=0;i<50;i++)

    {

        a[i]=rand()%101;//对101取余; 

    }

for(int i=0;i<50;i++)

{

if(a[i]>n&&a[i]<=m)

{

c[l++]=a[i];//这个供冒泡排序用; 

b[k++]=a[i];//这个供选择排序用; 

printf("%d ",a[i]);//未排序前的序列; 

}

printf("\n");

for(int i=0;i<k-1;i++)//选择排序 

{

for(int j=i+1;j<k;j++)

{

if(b[i]>b[j])

{

t=b[i];

b[i]=b[j];

b[j]=t;

}

}

}

for(int i=0;i<l;i++)//冒泡排序 

{

for(int j=0;j<l-i-1;j++)

{

if(c[j]>c[j+1])

{

s=c[j];

c[j]=c[j+1];

c[j+1]=s;

}

}

}

for(int i=0;i<k;i++)

{

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

}

printf("\n");

for(int i=0;i<l;i++)

{

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

    return 0;

}

根据你给的信息,代码大致就是这样;可能有些瑕疵,你再根据原题修改一下;希望能帮到你,望采纳;

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-07
排除法。A错。按这种格式应该这样输入:x=1,y=2(只是前面两个int型的)
B、C不对。我只说D为什么对。因为按照题干这种输入,其输入中有空格,而getchar()把空格也当成字符来处理,所以应按D这种形式。希望对你有所帮助。本回答被提问者采纳
第2个回答  2010-09-08
1、格式不对,scanf("x=%d y=%d",&x,&y);里面不能增加x= y= 这样的字符
2、第一行输入的回车<CR>也是字符会进入a,而b获得A; c获得空格
第3个回答  2010-09-07
A有2个错误:
1.scanf("x=%d y=%d",&x,&y);里面不能增加x= y= 这样的字符
2.第一行的<CR>会进入a,b获得A
第4个回答  2010-09-07
getchar()会读取换行符和空格符赋给变量

有一道C语言的题目:已知:char a; int b; float c; double d;则计算表...
该题选择D答案:1、a定义的是char型,实际上他也可以看做是int型,你试过没有将一个char型的变量用%d的格式输出后,为一个整数,该整数是该字符的ASCII码,是十进制而已。所以a*c之后的类型为float型 2、a*c+c自然也就是float型了。。那么最后就变为float减去一个double型,因为double型表示的...

一道C语言
答案C char str[][20]={"Hello","Beijing"} 这表示str是个二维数组,由两个一维数组构成,每个一维数组是20个字节构成。p=str 这表示p是指针,指向二维数组str的首地址 p+20 这表示由p指向的地址向后偏移20个字节,刚好指向了第二个一维数组“Beijing”了 strlen()它是字符数组长函数,对“Beij...

C语言的,帮我编一下.谢谢了
主要是1、2题哇???那我就开工了,直接输入的,没经过编译,自己查一下错。第一题:define MAX 0 define MIN 1 float fun(float a[],float maxmin[]){int i;float average,s=0.;maxmin[MAX]=maxmin[MIN]=a[0];for(i=0;i<N;i++){s+=a[i];if(a[i]>maxmin[MAX])maxmin[...

一道c语言体(求1到1000之内能被7或11整除但不能同时被7和11整除的所有...
1、首先在电脑中找到DEV C++软件打开,在编辑页面输入以下源代码。2、在判断时,直接用IF判断语句来进行判断,也刚好符合题目要求的用IF语句来完成这个程序。3、因为此次程序需要进行多次不同的判断,所以可以在进行判断时,全部用IF来完成,也可以用IF结合ELSE来完成。4、在编程中否是“!=”表示,“=...

c语言的一道填空题 很简单
执行顺序从右向左进行。首先,计算表达式a*a,结果为36。此时,a的值被更新为36。接着,执行a=a-36,即36-36,结果为0。因此,a的值变为0。最后,执行a=a+(-30),即0-30,结果为-30。最终,a的值为-30。

一道C语言题目,看图~大神帮忙解答下吧!急急急急急!!在线等
答案是D 在C语言中数组赋值可以如A,那样,【】里面定义了长度5{}中有最大不超过5个值,则赋值成功 B在5个数值之内所以也是正确的 答案C,就是另外中赋值方法,在【】中不定义长度,因此数组a[]的实际长度取决于{}中的值的数量,也就是说在C答案中有5个0作为数值,因此C答案中的a[]的实际...

一道c语言题目
char范围: -128~127 int 范围:-32768 ~32767 short范围:-32768~32767 A B C赋值都超出数据范围 ,故错误。double d;d=1;d=1.0 以上等价,因为无论赋的值是1还是1.0,通过赋值号=赋值后,d的值都是1.0, 会进行类型转换,类型由double决定.float 与此一样。故答案选D ...

一道C语言题目 有3个整数a,b,c,由键盘输入,输出其中最大的数,请编写...
你要输入整数,所以要定义a,b,c为整数,而不是float,输入输出不能用%f,应用%d,还有t未使用而使用了未定义的max故应把t改为max;所以是 int main (void){ int a,b,c,max;printf("请输入三个任意整数:\\n");scanf("%d%d%d",&a, &b, &c);if(a>=b) max=a;else max=b;if(b...

C语言的一道题~求解~最好有原因***
正确答案是B。A和D都很明显,c 不在赋值符号最左边,所以不可能正确把值赋给a,b。对于c,是一个逻辑与表达式,一旦运算符&&前面值为假(值为0)则不会继续运算后面部分,这里c为0 ,所以后面 b = c不会执行。综上,答案为B。

一道c语言的题目(40
答案是1、a^b 1、^运算是按位来对比,如果不一样的话,就为1,一样就为0.所以,当执行完a^b 的时候,就可以得到10101101;(高位取反,低位不变,)2、| 是或运行,有1 的话就得到 1, 两种为0 则为0;所以,执行a|b 的话,得到的是 11111101;(高位置1)3、 &与运算,两种为1则为1,...

相似回答
大家正在搜