c语言题解
⑴ c语言问题解答
#include <iostream.h>
struct
{ int year;
int month;
int day;
}date;
int main()
{int days;
cout<<"input year,month,day:";
char ch=' ';
cin>>date.year>>ch>>date.month>>ch>>date.day;
switch(date.month)
{ case 1: days=date.day; break;
case 2: days=date.day+31; break;
case 3: days=date.day+59; break;
case 4: days=date.day+90; break;
case 5: days=date.day+120; break;
case 6: days=date.day+151; break;
case 7: days=date.day+181; break;
case 8: days=date.day+212; break;
case 9: days=date.day+243; break;
case 10: days=date.day+273; break;
case 11: days=date.day+304; break;
case 12: days=date.day+334; break;
}
if ((date.year %4== 0 && date.year % 100 != 0
||date.year % 400 == 0) && date.month >=3)
days+=1;
cout<<date.month<<"/"<<date.day<<" is the "<<days
<<"th day in "<<date.year<<"."<<endl;
return 0;
}
⑵ c语言的题,求大神解答
解:1、A项错误:有些不可见字符可放入缓冲区,例如:回车、空格。
B项错误:有些输入函数有缓冲区,有些没有,例如:getchar() 有缓冲区,getch() 无缓冲区,getche() 无缓冲区。
C项错误:缓冲区不需要定义。
所以选D。
2、getchar()函数有缓冲区。getchar函数的返回值是用户输入的字符的ASCII码,若文件结尾则返回-1(EOF),且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完后,才等待用户按键。
该程序调用getchar()函数三次,所以getchar()函数依次读取前三个输入的数据,空格也算,所以选B。
3、回车是用\n表示,且((c=getchar())!='\n')注意这里的圆括号不能丢,因为!=的优先级比=高,如果去掉了外面的括号就等价于 c = (getchar()!='\n')。所以选C。
⑶ C语言题的解法
首先对其进行算法分析,再写伪代码进行详细解答,最后再用C语言详细解答。(中间一步可以省略)
编译运行后如果错了可以进行调试或对拍。
如果您想要某道特定题的解法,可以将题目贴出。
⑷ C语言题目 如何解
设置两个字符数组,然后字符串的形式读入两个姓名,再使用输出语句进行输出就可以了,程序代码和运行结果如下:
#include
int main()
{ char s1[30],s2[30];
gets(s1);
gets(s2);
printf("%s: Good morning, %s! ",s1,s2);
printf("%s: Good morning, %s! ",s2,s1);
return 0;
}
⑸ 求C语言题解
2.#include <stdio.h>
#include <math.h>
void main()
{
int i,j,count=0;
printf("the primes are:\n");
for(i=2;i<1000;i++)
{
for(j=2;j<sqrt(i);j++)
if(i%j==0)
break;
if(j>=sqrt(i))
{printf("%4d",i);count++;if(count%10==0)
printf("\n");}
}
}
3.#include <stdio.h>
int string_long(char str[]);
void string_(char *s1,char *s2);
int main(void)
{
char str1[20], str2[20], str3[40];
int n1, n2;
printf("Enter string 1 (least 20):");
scanf("%s",str1);
printf("Enter string 2 (least 20):");
scanf("%s",str2);
n1=string_long(str1);
n2=string_long(str2);
string_(str3,str1);
string_(str3+n1,str2);
printf("%s", str3);
system("pause");
return 0;
}
void string_(char *s1,char *s2)
{
for (;*s2!='\0';s1++,s2++)
*s1=*s2;
*s1='\0';
}
int string_long(char str[])
{ int i;
for (i=0;str[i]!='\0';i++);
return i;
}
4.#include<stdio.h>
#include<math.h>
double value(double a,double b,double c,double d,double x)
{
return (a*x*x*x+b*x*x+c*x+d);
}
double value(double a,double b,double c,double d,double x)
{
return (3*a*x*x+2*b*x+c);
}
int main()
{
double x1=0,x2,a,b,c,d;
printf("Please insert the value of a,b,c,d:");//a,b,c,d赋值
scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
printf("Please insert the intial value of x:"); //输入X的初值(你输入的是1).
scanf("%lf",&x2);
x1=x2-value(a,b,c,d,x2)/value(a,b,c,d,x2);
while(fabs(x1-x2)>=10e-6)
{
x2=x1;
x1=x2-value(a,b,c,d,x2)/value(a,b,c,d,x2);
}
printf("%lf\n",x1);
return 0;
}
5.#include<stdio.h>
int gcd(int n, int m)
{
if (m==0)
return n;
else
return gcd( m, n % m );
}
int bei( int m,int n )
{
return m * n/ gcd( m, n) ;
}
void main()
{
int a,b,c,d;
printf("输入两个数\n");
scanf("%d%d",&a,&b);
c=gcd(a,b);
d=bei(a,b);
printf("最大公约数为:%d\t\n最小公倍数为:%d\n",c,d);
}
记得给分哦…………第6题没做出来………
⑹ 这道C语言的题怎么解
本题在循环中出现了四个逗号表达式。其实只要记住逗号表达式中最后一个表达式的值,才是逗号表达式的最终结果。所以,循环条件中只有y<10,才是判断循环是否进行的条件。所以循环体每次结束后,x和y的值如下:
15 2
7 4
3 6
1 8
0 10
0 12
退出循环结后的输出果就是图中红色显示的内容
⑺ c语言题目求详解
这是一个数组的初始化代码,第一个空代表的是数组的第二行第三列的数据,直接就是取默认值1。
⑻ C语言题目,急求解,求助
#include<stdio.h>
intmain()
{
intm,n;
scanf("%d%d",&m,&n);
printf("%d%d ",sizeof(int),sizeof(char));
printf("%c%c ",m,n);
return0;
}