请问一下这道C语言编程题怎么做?

请问这道c语言编程题怎么做?~

#include
#define N 6
void main() { int a[N],i,k;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]);
k=0; for ( i=1;ia[k] ) k=i;
i=a[k]; a[k]=a[N-1]; a[N-1]=i;
for ( i=0;i<N;i++ ) printf("%d
",a[i]);
}

经过在电脑上编程验证的。答案选B。
这是因为最开始x值为3,
首次执行printf函数中的x-=2后,值为1,输出为1
再执行while中的--x后值为0,
!0会使得循环再次执行一次,
再次执行printf中的x-=2后,值为-2.再输出一次-2。因为第一次执行printf没有换行,所以1和-2会连起来。
然后再次执行while条件中的--x,即-2再减1值为-3,不为0,会跳出循环。程序结束。

按照题目要求编写的用凯撒密码加密的C语言程序如下

#include<stdio.h>

int main(){

 char s[80];

 int offset,i;

 fgets(s,80,stdin);

 scanf("%d",&offset);

 for(i=0;s[i]!='\0';i++){

  if('A'<=s[i] && s[i]<='Z')

   if(offset>=0)

    s[i]='A'+(s[i]-'A'+offset)%26;

   else

    s[i]='A'+(s[i]-'A'+26+offset%26)%26;

  else if('a'<=s[i] && s[i]<='z')

   if(offset>=0)

    s[i]='a'+(s[i]-'a'+offset)%26;

   else

    s[i]='a'+(s[i]-'a'+26+offset%26)%26;

 }

 printf("%s
", s);

 return 0;

}



#include<stdio.h>
int main()
{
char str[80];
int offset;
int i;
scanf("%s", str);
scanf("%d", &offset);
for(i = 0; str[i]; i++)
if(str[i] != ' ')
str[i] += offset;
printf("%s\n", str);
return 0;
}

请问一下大佬们,这道C语言编程题我为什么错,还有这些监测点的划分依据是...
答:这段代码的问题在于图中红色框内jc数据类型不合适,不能定义为int,需为double。解释:C语言中一般int为32位,最大只能表示12的阶乘,超过12就会产生溢出,而题目中明确说明了数据会在double范围内,就是有可能超过int所表示范围。需要改为double类型。监测点划分依据:Cmn表示从n中选m个有多少情况,通...

请问一下这道C语言编程题怎么做?
答:按照题目要求编写的用凯撒密码加密的C语言程序如下 include<stdio.h> int main(){ char s[80];int offset,i;fgets(s,80,stdin);scanf("%d",&offset);for(i=0;s[i]!='\0';i++){ if('A'<=s[i] && s[i]<='Z')if(offset>=0)s[i]='A'+(s[i]-'A'+offset)%26;else s...

C语言 请问这道编程题哪里错了
答:char apace=' '; 和 printf("%c",space);两者变量名不同,统一一下就行。prinyf"\n");改成printf("\n");楼主是对着敲的时候敲错了吧。运行一下就行了,就提醒错误了。同时,写代码记得缩进,有助于查错。include<stdio.h>void main(){char a[5]={'*','*','*','*','*'};int...

请问下面这个实例用C语言程序怎样编程
答:} printf("成绩等级为:%c\n", grade);return 0;} 在程序中,先定义了一个整型变量 score 和一个字符型变量 grade,用来分别存储输入的成绩和计算出的等级。然后,使用 scanf 函数从键盘上读入成绩,使用除法运算将成绩转化为 1~10 的整数,并将其作为 switch 语句的选择器。根据成绩范围,使用不...

这道编程题用c语言怎样写?
答:这道题目,方法很多,True和False输入的是字符串,计算的其实是0和1,所以只要用1个字节记录每次输入的0和1就可以了。我这里代码用动态创建的字符串数组来记录输入,每一个字符串表示一组输入,每一个字符的值(0或者1)对应(True或者False)。包含输入验证。include<stdio.h> include<string.h> inc...

请问这道c语言题咋做,24题讲解一下...谢谢
答:由输入为2743可知:总共循环4次。到最后的回车程序停止。=== 第1次循环,输入的c为'2'。switch的判别值为0,,跳到case 0。说明:由于c语言中switch语句的特点case后面没有break的话会继续执行后面的case,所以本次循环依次执行case 0,1,2,直到遇见break才跳出switch语句。case 0: 无输出 case...

这道c语言怎么做,解析看不懂,谁能详细说一下
答:1、第一个scanf的函数,赋值的不是字符串,而是字符(%c),又因为它是for函数的执行语句,所以根据for函数,scanf函数一共要运行7次,分别给b字符串数组的前7位赋值,原b的前七位是:The空格shy。 而输入的语句的前七位是Fig空格flo。它将前者替换了,所以现在的:b[]="fig空格flo空格is空格blue....

请问一下这道c语言题目
答:这题的正确答案是y==14,所以B)正确,应该选B)——x+=x++,x+8,++x是逗号表达式,从左至右计算,取最后一个分表达式的值。过程是:x+=x++使x=5+5==10,然后x++使x==11;再计算x+8,它没有赋给x,所以不影响x的值,x还是11;最后计算++x使x由11变为12。最后加前面的2使y得到14...

如何用C语言编程解决这道题:有n个球,从外表上看不出差别,但有一个球...
答:比如10个球,先用天平一边放4个称,若平衡,则重球在剩下的2个中;将这两球用天平一边一个一称便知哪个重;总共称了2次便得到结果——这是“最少”题意。而如果每边4个不平衡,则将重的一边一个称,若不平衡,则重的便是,结果用了2次;但如果平衡,那就还得再称1次,总共3次才解决问题...

初学编程,大家帮忙看下这道c语言题怎么做?万分感谢
答:先给你第一题的,百度知道的这个编辑器真的不适合粘贴代码 include<stdio.h> include<string.h> define MAX_ARRAY_SIZE 1024 define MAX_MAP_SIZE 10 /* 输入数组,连续输入,如:aedabcdaeas */ int inputArray(char *buff) { int len = 0;/* 使用fgets来防止缓冲区溢出 */ if (NULL ...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网