几个C语言问题,请高手解答

作者&投稿:察哗 (若有异议请与网页底部的电邮联系)
c语言问题,请高手解答!!!~

//代码:#includevoid main(){int val;int m=1,n=1;printf("请输入一个数: ");scanf("%d",&val);while(m){if(m<val/2+1){if(val%m==0)printf("%4d X %-4d
",m,val/m);}elsebreak;m=m+1;}printf("%4d X %-4d
",val,n);}结果:

printf("e1=%d,e2=%d,p1=%d,p2=%d",&e1,&e2,&p1,&p2);这里吧&都去掉 还有P1和P2是不是整形
用lf%输出
还有注意格式 P2应该改成32.0/e1
大概是这样了

1.
就说说B和C的区别吧
B中,if(a=b)这个语句也是合法的,
只不过不是一个判断a,b是否相等的语句,
而是一个将b值赋给a,并判断返回值的语句。
“=”处理的返回值就为所赋的值,所以a=b的返回值为5,
if条件成立。
C中,a<=b是不能这么写的,应该写为(a<b)||(a==b)

2.
a
b
cdef
由于在输入时有回车的(回车也是作为char输入的),上面这个输入其实是:
a 回车
b 回车
cdef 回车
由于N为6,所以c[N]的成员就为:
c[0]:a
c[1]:\n
c[2]:b
c[3]:\n
c[4]:c
c[5]:d
其他的字符由于超出数组c的存储范围,就忽略了。
所以,输出为:
a
b
cd

3.
do/while循环,由于一开始是do语句,必然执行,所以至少执行一次。
do执行完毕后,判断while条件不成了,跳出循环。
所以执行了一次。

4.
不说明数组的行数是符合语法的,因为可以根据列数和数组成员个数推算出,而只有行数,是不行的,就会出现类似于变量声明数组的错误。

至于书籍,就仁者见仁,智者见智吧:)

第一题:C答案的a=<b语法不对,B答案的a=b是赋值语句,返回true
第二题:最多6个字母,但是都是一个i来计数a,回车,b,回车,c,d就是六个
第三题:非0是true,0就是false
第四题:第一个方框可以省略,第二个不可以
有些东西就是常识,规定了这样

1:设int a=0,b=5,c=2,可执行x++的语句是(B)
A:if(a)x++ B:if(a=b)x++
C:if(a=<b) x++ D:if(!(b-c)) x++

B选项的意思是先将b的值赋给a,然后判断a是否为0,赋值之后,a为5,不是0,素以执行x++,

2:
有以下程序:
# include<stdio.h>
# define N 6
void main ()
{
char c[N];
int i=0;
for( ;i<N;c[i]=getchar( ),i++);
for(i=0;i<N;putchar(c[i]),i++);
}
输入以下3行,每行输入都是在第一列上开始的:
a
b
cdef
程序的输出结果是(C)
A:abcdef B:a C:a D:a
b b b
c cd cdef
d
e
f

看课本……

3:
以下程序段(C)
x=-1;
do
{
x=x*x;
}
while(!x);

A:是死循环 B:循环执行3次
C:循环执行1次 D:有语法错误

为什么是C?
第一次执行:x=x*x=1
那么while(!x)应该就表示while(0),就不执行了?
while括号里是0就不执行??
对啊 你理解对了

4:
对以下二围数组a进行正确的初始化的是 (B)
A:int a[2][3]={{1,2},{3,4},{5,6}};
B:int a[ ][3]={1,2,3,4,5,6}
C:int a[2][ ]={1,2,3,4,5,6}
D:int a[2][ ]={{1,2},{3,4}}

A我知道是错的int a[2][3]表示2行3列,而{{1,2},{3,4},{5,6}};是3行两列的.
但是BCD答案就晕了,我觉得都是对的,而且B和C应该是1个类型的吧,B对,C为什么就不对?
初始化的时候只允许省略第一维的大小

1.c中=<错了 应该是<= b是对的 应该判断时先将b的值赋给a 然后用a的值作判断条件 a=5不为0
2.从输入来看
输入以下3行,每行输入都是在第一列上开始的:
a //这里 输入了a之后 按了回车 程序会把回车作为一个符号存入数组 最后的 ef由于空间不够未能存入
b
cdef
3.do while会先执行一次 然后while中的条件为假时跳出 c中为0是为假 非0为真
x=1 为真 !(x)则为假 所以程序执行一次后跳出
4.c中可以不说明数组的行数 程序可以自动调节 但是必须说明列数
b中是3列的数组 程序填满一行之后会自动填下一行.但是如果连列数都不知道 程序就没法判断没一行是多少数了
-----------------
买清华版的 我计算机学院的 我们是用这做教材

第一题:
C选项中因为其《=写成了=《故不对,B中b赋值给a,a!=0,为真,所以选B
第二题:
中getchar输入包含回车键;
因此要打出回车键,知道六个字符;选C
第三题:
这个循环时直到型循环,要先执行后判断的
第四题:
C:int a[2][ ]={1,2,3,4,5,6} 中起码有了六个列数而规定的为两列

好有这么拉的人,我初2都考进省队了


C语言问题,%运算符没有用,请高手指教出错在哪里,总是等于0
if(ch[i]=='%')(int)a[j++]=(int)(b)%(int)(c);\/\/保证结果正确性 都强制类型转换 if(ch[i]=='%')printf("%d\\n",(int)a[i]);输出的时候最好把a[i]强制类型转换一下 因为你定义的a是浮点型数组

新手C语言一些简单题目向高手大侠请教
1,(int)(x*1000+0.5)\/(float)1000中 (int)(x*1000+0.5)= 5169 除以1000,为5.169000(小数点后保留6位)2,int型中没有小数点,1\/2=0.5直接显示为0 3,c为数组名。表示的是C数组的头地址,就不用加地址符号了 4,%10.5f表示的是10位有效数字和小数点后保留5位 5,printf("...

C语言的几个题目。请教高手。高分高分100,再追加。
int n;int i, j;char c;scanf("%d", &n);for(i=0; i<n; i++){ for(j=0; j<=i; j++){ c = 'A'+j;printf("%c ", c);} for(j=i; j>0; j--)printf("%c ", c-j);printf("\\n");}

恳请C语言高手帮我看几个C程序设计的题目,谢谢
cout<<"请输入两个整数\\n";cin>>a>>b;while(a[m]!='\\0')m++;while(b[n]!='\\0')n++;if(m<n){ for(i=m-1,j=n-1;i>=0;i--,j--){ c[j+1]=(a[i]-48)+(b[j]-48)+flag;if(c[j+1]>9){ c[j+1]=c[j+1]-10;flag=1;} else flag=0;} for(;j>=0;...

c语言问题,正在复习国二,请高手帮我解决疑问,不胜感激
while(k++ && n++>2);等价于while((k++) && (n++>2));因为k的值为零,那么表达式k && "任意数"的结果都为假,所以不会执行&&右边的运算。然后k的值自增,所以结果k = 1,n = 2

请C语言高手帮忙解决一个问题,求源程序清单!!!
printf("请输入第%d个整数\\n",i+1);scanf("%d",&a[i]);} for(i=1;i<5;i++){ for(j=0;j<5-i;j++){ if(a[j]>a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } } for(i=0;i<5;i++){ printf("排序后的整数:%d\\t",a[i]);} } 现在是升序的。。

请高手用C语言帮忙做个编程的题目,谢谢了!
include <stdio.h> int IsDevided(int number,int dev){ if(number %dev == 0){ return 1;} return 0;} void EasyDone(int a){ int chose;int i,j;printf("Input your chose\\n1>能被3整除的"<Enter 1>","\\n2>能被5整除的<Enter 2>","\\n3>能被3或5整除的<Enter 3>\\n");s...

C语言问题,高手进
选择题(每小题1.5分,共24分)1、以下不C语言关键字的是( )。A、是student B、break C、select D、int AC都不是 2、已知a,b是整形变量,则以下合法的表达式为( A )。A、a+=a+1 B、a=b=b+a C、a=5++ D、a+b=2.5 3、C语言规定,在一个源程序中,main函数的...

c语言的问题~~请高手帮忙解答~~
10f表示在10的宽度内右对齐,即如果f长度不够10,则在前面空格 -10f表示在10的宽度内左对齐,即如果f长度不够10,则在后面空格 你可以添一句对比一下区别 include<stdio.h> void main(){ float x,z;x=1.2;z=-3.6;printf("x=%-10f z=%-10f\\n",x,z);printf("x=%10f z=%10f\\n"...

c语言问题,为什么exit(1)中的 exit 会显示错误,说还没有定义,请高手帮...
include <stdlib.h> ---> 要include 这个头文件 stdlib.h void exit( int exit_code );The exit() function stops the program. exit_code is passed on to be the return value of the program, where usually zero indicates success and non-zero indicates an error....

剑阁县15646675569: 高分急求!C语言编程问题,求高手解答 -
纳昆天麻: 1、首先第四行是定义的一个子函数,在主函数内部定义的所以后面要加分号2、设定abc三个变量是题目所需,因为比较大小两个数来比较第三个变量来保存比较结果,你也可以设定两个变量,把比较结果保存到输入值中不过就会覆盖原来的值3、Z是一个子函数变量,设定在主函数中在子函数不能使用,z的生存期只有在那个max函数中才会分配内存空间4、第18行没有出来,第16行倒是可以给你解释哈,在16行他是返回比较值保存在z当中的然后在第7行那个c就会接收到max的比较结果

剑阁县15646675569: 急急急!请教高手几个C语言问题.感激不尽!!! -
纳昆天麻: 说实话,这些题要是多看几遍书的话,是挺简单的.(上面的是要让填空吧.)1.不好意思,学公约数的时候在几年级来着,真给忘了公约数是干啥的.2.(4)*p++!=0//我觉的...

剑阁县15646675569: c语言编程问题,请高手解答!!问题是这样的—— 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行.你的程序还需支持大小写敏感选项... -
纳昆天麻:[答案] #include //转小写char tolower( char c){ if( c >='A'&& c<='Z') return c-'A'+'a';}//大小写敏感bo...

剑阁县15646675569: 几道C语言的题,希望高手帮我解决哈. -
纳昆天麻: 这样跟楼主说、1题是这样的、 最开始a = 1; b = 2; c=2; 由于a<b<c 这个时候 a<b 也就是1<2 成立、那么久返回一个 值 1 注:C语言里面如果 表达式为真 那么 返回1 如果表达式为假 那么 返回 0 此时 0<c很明显、这个是成立的然后进入循环执...

剑阁县15646675569: C语言问题,求高手解答,谢谢! -
纳昆天麻: 这是基本递归方法.你做这题可以用排除法吧A 这个printf每次会输出一串,肯定不行了B fun函数传入参数其实是字串指针,fun(*(s+1))传入的是char类型,好歹也得char *的指针类型啊C 和A一样 每次必定输出一个字串.我们应该每次输出一个字符.那就D吧关于D,fun(s+1)肯定传入了字符指针,fun里面最后那句是 printf("%c",*s); 递归传入s+1,则最后会变成fun(s+strlen(s)-1),这个时候就可以输出最后一个字符了.最好是上机跟踪调试一下.

剑阁县15646675569: 请教C语言高手几个简单的问题 -
纳昆天麻: C语言是从B语言发展来的:(1)ALGOL60语言:1960年出现的ALGOL60语言是一种面向问题的高级语言,他距硬件比较远,不宜用来编写系统软件.(2)CPL语言:1963年英国的剑桥大学推出了CPL...

剑阁县15646675569: 求高手解答!几个C语言题.用循环.
纳昆天麻: 第一个: #include <stdio.h> int main() { int s=1; for(int i=2;i<=100;i++,s=1) { for(int j=2;j<i;j++) if(i%j==0){s=0;break;} if(s==1)printf("%d ",i); } } 第二个: #include <stdio.h> int main() { int tmp; for(int i=2;i<=100;i++) { tmp=i; printf("%d的质因数为...

剑阁县15646675569: 请c语言高手帮我解决问题? -
纳昆天麻: 第四题的执行过程已经加上,在第四题部分! 第一题: 先计算a-1,然后计算a++,最后将开始计算的a-1的值赋值给c; 例如:a=6,则执行此条语句后a的值为7,c的值为5; 第二题: ?:即条件运算符,是c中唯一的三目运算符. 说明:表达式...

剑阁县15646675569: C语言问题,求高手解答.
纳昆天麻: 如果只是单纯的实现问题的功能. goto语句就可以了.(虽然goto有点不利于程序可读.但是这里用goto是最直接的方法.) 下面是伪代码: firstFor: for(参数)//第一个for循环 { for(参数)//第2个for循环 { for(参数)第3个for循环 { if(条件) { goto:firstFor; } } } }不明白的再Q问吧

剑阁县15646675569: 求解几个C语言问题,请高手回答 -
纳昆天麻: 我不喜欢给人代码,所以只说思路.1. 你做一个循环,N作为个counter.倒数至0,每次做一个printf.2. 设一个counter.把10个数挨个比一遍,大于等于的话counter++.3. 1)直方法.拼一起,然后排序. 2)因为是有序的,用a的最大和b的最大比,因为如果a[x]比b[x]大,那么a[x]就比b[0]至b[x]都大. 然后a的index--, 这么往里塞.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网