c语言例题
❶ c语言题目
char string[32];
int i;
/* 计算长度 */
itoa(abs(in), string, 16);
number=strlen(string);
/* 求和 */
sum=0;
for( i= 0, i< number; i++ )
sum += atoi( string[i]) ;
❷ C语言题目!!
D是错的,图片中的下面也有文字说明。下面看看我的详细解释:
A选项:
char *ch; ch="abc"; //ch是个指针,"abc"是一个字符串常量,常量是在内存中开辟的一个空间保存的,这个空间是只读的。语句中把ch指针指向这个常量的赋值是完全正确的。下面一段代码演示"abc"是只读常量:
void main()
{
char *ch; ch="abc";
*ch='d'; //程序可以编译链接通过,但是运行到这里程序会非法操作,出现系统提示,内存只能读
}
B选项:
char ch[]={'a','b','c'}; //这样赋值也没错,程序也能编译通过,但是你只能把ch当一个字符数组使用,而不能把它当字符串来使用,因为字符串必须用0结尾,你硬是要把它当字符串用,行,但是会出现很多不可意料的事情,比如printf(ch);屏幕上就可能出现:abc后面一堆其它的东西。这个选项错,是因为题目是问“能给字符串正确赋值”的语句,准确说这是给字符数组赋值而非字符串赋值。
C选项:
char ch[3]="abc";//这是字符串赋值语句,在B中也说了,字符串必须0结尾,但是空间只有3,放入了abc再放不下0了,空间不够,编译就不会通过,所以错了,char ch[4]="abc";就没问题。
D选项:
char ch[4];ch="abc";//ch空间够了,但是这是2条语句,char ch[4];已经开辟了空间,ch指向这个大小为4的空间,ch可以理解为一个指针,这个指针和这个4字节的空间捆绑在一起的,对应关系。ch="abc";同A要把这个指针重新指到另外一个字符串常量,那原先4字节空间就无主了,这编译怎么能让你通过。这是比较通俗的解释。正规的解释是:ch[4]是一个字符数组,字符串常量是不可以这样直接赋值给字符数组。除非是char ch[4]; strcpy(ch,"abc");这样拷贝过去才没问题。
解释不好,有问题可追问,谢谢采纳
❸ C语言题目
#include<stdio.h>
#include<stdlib.h>
int x,t;
int co(int a,int b,int c)
{
if(c>b&&b>=a)
{
if(a*a+b*b==c*c)
{
x=a+b+c;
if(t<x)
t=x;
}
}
return 0;
}
int main()
{
int a,b,c,d,e;
a=1;b=1;c=1;x=0,t=0;
while(a<=100)
{
while(b<=100)
{
while(c<=100)
{
co(a,b,c);
c+=1;
}
b+=1;
}
a+=1;
}
printf("%d\n\n\n\n",t);
system("pause");
return 0;
}
❹ c语言题目
严重怀疑这里的变量是写错了,原本应该是if(i==1)。如果这样写的话,它的功能就可以解释了。就是输出第一个数的时候,前面没有空格,在循环中遇到其他的数,如果满足给定的条件,再次输出时,前面就先输出一个空格,这样输出的各个数字之间就有空格分开,而第一个数字前面是没有空格。
❺ c语言例题
给你发个二级的上机题目吧!!以后要的话,留言吧!!!
请在函数fun的横线上填上若干表达式,使从键盘上输入一个整数n,输出斐波那契数列。此数列是一个整数数列,其中每数等于前两数之和,如:0 1 1 2 3 5 8 13。请勿改动主函数main和其他函数的任何内容,仅在fan函数的横线上填入所编写的若干表达式或语句!
#include <stdio.h>
int fun(int n);
main()
{
int i, n = 0;
scanf("%d", &n);
for (i=0; i<n; i++)
printf("%d ", fun(i));
}
int fun(int n)
{
if (___1___)
return 0;
else if (___2___)
return 1;
else
return ___3___;
}
第一处 n==0或!n
第二处 n==1
第三处 fun(n-1)+fun(n-2)
❻ C语言习题
先看for语句
1、当i=9,满足i<=11的条件,接下来就做switch语句,9/10等于0(int整型自动取整),满足case 0的条件,做m++;n++;这时m为1,n为1
2、当i=10,满足i<=11的条件,接下来就做switch语句,10/10等于1,不满足所给的条件,做default: k++;n++;这时k为1,n为2
3、当i=11,满足i<=11的条件,接下来就做switch语句,11/10等于1,不满足所给的条件,做default: k++;n++;这时k为2,n为3
4、当i=12,不满足i<=11的条件,跳出整个循环,做pringf
最后输出结果为:1 3 2
❼ C语言练习题
原因是int型的数据范围为2^31-1到-2^31,你输入的数字超过了那个范围,因此溢出了
其实你完全可以按字符串数组的方式输入,一位一位减掉'0'就是数字的十进制值了
❽ c语言习题及答案
就买二级C的试题书吧。
另外,怎么在“高考”里看到了这个问题??
❾ c语言题目
#include "stdio.h"
void main()
{int x,sum=0;
printf("输入整数的值\n");
scanf("%d",&x);
while(x)
{
sum=sum+(x%10)*(x%10);
x=x/10;
}
if(sum%5==0)
printf("1");//如果要返回的话就用return但那样看不到结果
else
printf("0");
}
第二题:
#include "stdio.h"
void main()
{int i,x,sum=0;
printf("输入整数的值\n");
scanf("%d",&x);
for(i=1;i<=x;i=i+2)
sum=sum+i;
printf("%d",sum);
}
第三题
#include "stdio.h"
int Sum(int x)
{
int i,sum=0;
for(i=1;i<=x;i++)
sum=sum+i;
return sum;
}
void main()
{
int n ,sum;
printf("输入自然数的值\n");
scanf("%d",&n);
sum= Sum(n);
printf("%d",sum);
}
四题
#include "stdio.h"
void main()
{long int a,i,n=1;
printf("输入整数:");
scanf("%ld",&a);
for(i=1;i<=a;i++)
{
if(a%i==0)
n=n*i;
}
printf("%d",n);
}
第五题
#include "stdio.h"
void main()
{long int a,i,n=1;
printf("输入整数:");
scanf("%ld",&a);
while(a)
{
n=n*(a%10);
a=a/10;
}
printf("%d",n);
}
❿ 一个简单的C语言例题
看意思你想实现这样的功能:
1、接收键盘输入两个数字,逗号分隔输入;
2、比较大小,输出大的那个数字。
我改了改,你瞅瞅:
int max(int x,int y)
{
int z;
if ( x > y )
z = x;
else
z = y;
return z;
}
#include <stdio.h>
int main()
{
int a, b, c;
scanf( " %d,%d", &a, &b );
printf( "%d", max( a, b ) );
}
另外提醒你注意以下书写格式,这是良好的编程习惯。现在程序很小,看不出什么。如果以后写上几十行的代码,你就该晕了。注意代码换行、缩进和空格的使用,尽量让你写出来的代码美观易读。