当前位置:首页 » 编程语言 » c语言入门编程题目
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言入门编程题目

发布时间: 2022-08-12 15:49:24

㈠ C语言入门编程题,题目如图所示。给点思路方法

  1. 可以确定的5个变量:3个系数 a,b,c, 2个根 x1, x2,都是double类型

  2. 输入a,b,c

  3. a=0的情况 (b=0,无解, b!=0, x1 = -c/b)

  4. 计算delta = b*b - 4ac

  5. if delta >0

    x1 = ..., x2 = ... ;

  6. else if delta == 0

    x1 = x2 = -b/(2a)

  7. else 无实数解。

  8. 各种情况下的输出。

㈡ C语言入门题

首先说明一下,这道题目的答案却是是 3。

我在编译器运行了一下你的代码:

接下来分析一下这个题目的流程:

1、在if(x < y)这个判断条件中,x==1, y==-1,条件是不成立的,所以走else分支。

2、在else分支中,z==2,现在 z+=1之后, z==3。

3、在最后一步printf中打印最终结果z == 3。

如果以上回答对你有帮助,请采纳下,谢谢。

㈢ C语言初学编程题目

直角三角形杨辉三角:
#include<stdio.h>
#define M 10
void main()
{
int a[M][M], i , j ;
for(i=0;i<M;i++)
for(j=0;j<=i;j++)
{
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
printf("%5d",a[i][j]);
if(i==j)printf("\n");
}
}
金字塔型杨辉三角:
#include<stdio.h>
void main()
{
int a[10][10],i,j;
for(i=0;i<10;i++)
{
for(j=10;j>=i;j--)
printf("%2c",' ');/*两个空格*/
for(j=0;j<=i;j++)
{
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
printf("%3d ",a[i][j]); /*%3d后一个空格*/
if(i==j)
printf("\n");
}
}
}
不用数组输出金字塔形杨辉三角:
#include<stdio.h>
#define N 10
void main()
{
unsigned int i,j,k;
unsigned int b,c;
for(i=0;i<N;i++)
{
for(j=N;j>i;j--)
printf(" ");
for(j=0;j<=i;j++)
{
b=c=1;
if(j>=1)
{
for(k=i-j+1;k<=i;k++)
b*=k;
for(k=1;k<=j;k++)
c*=k;
}
printf("%4d",b/c);
}
printf("\n");
}
}
注解:
在打印杨辉三角时通常用到杨辉三角的两个性质。
第一个就是杨辉三角中除了最外层(不包括杨辉三角底边)的数为1外,其余的数都是它肩上两个数之和。用数组输出杨辉三角就用这个性质。
第二个性质是杨辉三角的第n行恰好是C(n,0)~C(n,n)。这里的C表示组合。不用数组输出杨辉三角就用这个性质。
把杨辉三角的前15行保存在文本文件中:
#include<stdio.h>
#include<stdlib.h>
#define M 15
void main()
{
FILE *out;
if((out=fopen("D:\\text_1.txt","w"))==NULL)
{
printf("Error!\n");
exit(0);
}
int a[M][M],i,j;
for(i=0;i<M;i++)
for(j=0;j<=i;j++)
{
if(i==j||j==0)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
fprintf(out,"%5d",a[i][j]);
if(i==j)
fputc('\n',out);
}
fclose(out);
}

㈣ 求解一道C语言基础编程题。

首先看一下程序的逻辑(虽然貌似题主应该不是在这一块有问题:

首先得知道每个字符和数值的对应关系(图不清晰可看戳这里:ascii编码对应表

好了,现在看程序中的第一个if语句,在用大于、小于这些运算比较符比较char的时候,会自动转换为整数比较,也就是说‘0’会转换成48,‘1’转换成49……以此类推,最后是‘9’转换成57,你会发现把这些char减去48就会得到它们各自相对应的整数数值,这就是第一个if里面减去48的目的。同理,接下来的else-if语句,‘A’到‘F’也会转换成整数数值,具体对应的数值可以参看ascii表,一样的道理减去‘A’然后加10的目的也是转换成数值,因为在大于10的进制下,A代表10,B代表11……以此类推,因为这个程序最高就16进制了,所以判断到F就可以了。

然后我们来看进制的解释:

所谓进制,其实就是组合数字的方式,理解了这一点就很好说了。比如说10进制,为什么198等于198(好像很傻一问题)?其实是因为在十进制下,198 (10) = 1 * 10^2 + 9 * 10^1 + 8 * 10^0 = 198(好像是这么回事,(。ì _ í。)),同一个数字,放在不同的位置,它所代表的分量也不一样,即组合数字的方式会影响数字的值,1后面还有2个数字,所以这个1实际上是1 * 10^2 = 100,而不是1,其它位置的数字同理,然后把这些值加起来,就得到了整个数字所代表的最终的值,因此我们才有了 198 = 198(好像很有道理)。

但是,198也可能不等于198,什么时候不等于呢?在不同的进制下。比如说假如我们的这个198是在16进制下的198,那么 198 (16) = 1 * 16^2 + 9 * 16^1 + 8 * 16^0 = 408 (10) = 408。

为什么会产生这种差别呢?因为16进制下的那个1代表的分量是1 * 16^2了,而不是1 * 10^2了,同理,在其它进制下只需要把乘的数字换成对应的进制的数就好了,比如在9进制下那个1就是1 * 9^2等等。

这样一来上面程序里面的for语句就好理解了,之所以用for是因为要算出次方(这个应该不用解释),一个数要乘的次方是它后面跟着的数字的个数,所以是“j = 0; j < len - 1”。

然后把这些值加起来,就得到这个数字对应的十进制下的数值,也就完成了最终的转换。

题主可以随便写些不同进制下的数字,然后自己算出十进制下对应的数值,和网站上得出的结果比较比较,这样也可以加深对进制的理解,同时提高计算能力。

戳这里:在线进制转换

这里给出了一个链接,这种网页到处都是,随便搜一下就可以找到。

㈤ 基础C语言编程题

2.status IsPrime(int num) { int i; for(i=2;i<num;i++) { if(!num%i) return TRUE; } return FALSE; } 3.int gcd(int a,int b) { int i,num; for(i=1;i<=a;i++) { if(a%i) continue; if(!b%i) num=i; } return num; } 第一题第四题不会……不好意思

㈥ 求解C语言基础编程题

#include <stdio.h>

int main()

{ int i,j,x,a[11]= {0};

char c='n';


do

{ scanf("%d%c",&x,&c);

a[x]++;

}

while(c!=' ');

for(i=1; i<11; i++)

{ printf("%d %d ",i,a[i]);

for(j=0; j<a[i]; j++)

printf("*");

printf(" ");

}

return 0;

}

㈦ 求道C语言基础编程题

//第一题:
#include<stdio.h>
main()
{
int
a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
//输入三个数a,b,c
if(a<b)
{
t=a;a=b;b=t;
}
if(a<c)
{
t=a;a=c;c=t;
}
if(b<c)
{
t=b;b=c;c=t;
}
printf("%d>%d>%d\n",a,b,c);
}
//第二题:
#include<stdio.h>
#include<math.h>
void
main()
{
float
a,b,c,s,k;
printf("请输入三边的值:");
scanf("%f%f%f",&a,&b,&c);
k=(a+b+c)/2.0;
s=sqrt(k*(k-a)*(k-b)*(k-c));
printf("面积为:%.3f\n",s);
}
这两个题目很简单啊!
不知道是否合你要求??
呵呵,给我分吧!