① c语言 编程
1、
#include “stdio.h”
main()
{
double r;
double pi=3.14159;
printf("请输入圆的半径:");
scanf("%lf",&r);
printf("圆的周长为:%.2lf",2*pi*r);
printf("圆的面积为:%.2lf",pi*r*r);
getch();
}
2、
#include “stdio.h”
main()
{
char c;
printf("请输入一个大写字母:");
scanf("%c",&c);
printf("小写字母为:%c",c+32);
getch();
}
3、
#include “stdio.h”
#include "math.h"
main()
{
double a,b,c;
double p;
double area;
printf("请分别输入三条边的长度:");
scanf("%lf %lf %lf",&a,&b,&c);
p=(a+b+c)/2;
area=sqrt( p*(p-a)*(p-b)*(p-c));
printf("三角形的面积为:%.2lf",area);
getch();
}
② C语言编程问题
#include<stdio.h>
#include<conio.h>
void main(int argc,char*argv[])
{
while(argc>1)
{printf("%c",**++argv);argc--;}
getch();
}
注意:
getch()是一个函数,要包括头文件的!
因为你主函数就用了形参,没有输入,argc被默认为0.所以不满足while的循环条件!没有输出。所以运行之后是一个空白的黑色界面,随便按一个键之后,就调用了getch()函数,然后程序就退出了!不知道你想实现什么。没法改···
③ C语言问答,并给出说明!谢谢!!!
我觉得D是错误的,这不一定,完全取决于编译器,请看下列简单程序:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0;
++a;
++a;
++a;
printf("fuck me");
return 0;
}
再看这段代码的Release版的反汇编:
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0;
++a;
++a;
++a;
printf("fuck me");
00BD1000 push offset string "fuck me" (0BD20F4h)
00BD1005 call dword ptr [__imp__printf (0BD20A0h)]
00BD100B add esp,4
return 0;
00BD100E xor eax,eax
}
00BD1010 ret
可以发现 ++a;是可执行的语句,但是编译器把他们忽略了,因为这些语句对输出没有影响。
再看下列代码:
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0;
++a;
printf("a is %d", a);
return 0;
}
反汇编为:
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0;
++a;
printf("a is %d", a);
00EB1000 push 1
00EB1002 push offset string "a is %d" (0EB20F4h)
00EB1007 call dword ptr [__imp__printf (0EB20A0h)]
00EB100D add esp,8
return 0;
00EB1010 xor eax,eax
}
00EB1012 ret
可见,编译器直接把
int a = 0;
++a;
替换为了
push 1
也可以看成是对
int a = 0;
++a;
的一种编译。
所以D错误,并非每条语句都会被编译为二进制代码.
④ C语言所有格式控制串详细介绍
1.转换说明符
%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
%c 字符
%d 有符号十进制整数
%f 浮点数(包括float和doulbe)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零"0"
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数 e.g. 0123
%x(%X) 十六进制整数0f(0F) e.g. 0x1234
%p 指针
%s 字符串
%% "%"
2.标志
左对齐:"-" e.g. "%-20s"
右对齐:"+" e.g. "%+20s"
空格:若符号为正,则显示空格,负则显示"-" e.g. "% 6.2f"
#:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;
对e,g,f 类当结果有小数时才给出小数点。
3.格式字符串(格式)
〔标志〕〔输出最少宽度〕〔.精度〕〔长度〕类型
"%-md" :左对齐,若m比实际少时,按实际输出。
"%m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n
e.g. "%7.2s" 输入CHINA
输出" CH"
"%m.nf":输出浮点数,m为宽度,n为小数点右边数位
e.g. "%3.1f" 输入3852.99
输出3853.0
长度:为h短整形量,l为长整形量
文章出处:http://www.diybl.com/course/3_program/c++/cppjs/200869/123898.html
⑤ 小小编程题(C语言)
咯咯
排列组合问题
将
数学思想
转化为
编程代码
即可
//以下为程序代码 参考
#include<stdio.h>
#include <string.h>
#include <malloc.h>
void main()
{
int front,rear,temp,n,m,i,j,k,l,group,pre,result[100],newer[100],r[100][100]={0};/*front为队列当前元素在队列中的序号,rear为队尾元素在队列中的序号,temp为当前 元素在direction中的序号,group为组号,pre为前一出列元素在direction中的序号。 */
char **direction,*p1,*p2;//direction为方向集合。
printf("请输入可以通行的方向的个数:\n");
scanf("%d",&n);
printf("请输入各个方向:\n");
direction=(char **)malloc(2*n*n);
for(i=0;i<n;i++)
{
*(direction+i)=(char *)malloc(2);
scanf("%s",*(direction+i));
}
printf("请输入不能同时通行的两个方向的个数:\n");
scanf("%d",&m);
printf("请输入各个方向:\n");
for(i=0;i<m;i++)
{
p1=(char*)malloc(2);
p2=(char*)malloc(2);
scanf("%s%s",p1,p2);
k=-1;
l=-1;
for(j=0;j<n;j++)
{
if(!strcmp(*(direction+j),p1))
k=j;
if(!strcmp(*(direction+j),p2))
l=j;
if(k>=0&&l>=0)
break;
}
free(p1);
free(p2);
r[k][l]=1;
r[l][k]=1;
}
front=n-1;
rear=n-1;
for(i=0;i<n;i++)
{
*(newer+i)=0;
}
group=1;
pre=0;
do
{
front++;
if(front==rear+1)
front=0;
for(i=0;i<n;i++)
{
if(!strcmp(*(direction+i),*(direction+front)))
{
temp=i;
break;
}
}
if(temp<pre)
{group++;
*(result+temp)=group;
for(i=0;i<n;i++)
{
*(newer+i)=r[temp][i];
}
}
else if(*(newer+temp)!=0)
{
rear++;
if(front==rear)
{
for(i=n;i<n+rear;i++)
free(*(direction+i));
rear=0;
}
else
*(direction+rear)=(char *)malloc(2);
*(direction+rear)=*(direction+temp);
}
else
{
*(result+temp)=group;
for(i=0;i<n;i++)
*(newer+i)=*(newer+i)+r[temp][i];
}
pre=temp;
}while(front!=rear);
printf("所需要的信号灯数目为%d个\n",group);
for(i=1;i<group+1;i++)
{
printf("%d ",i);
for(j=0;j<n;j++)
{
if(*(result+j)==i)
printf("%s ",*(direction+j));
}
printf("\n");
}
free(direction);
}
//调试成功!
⑥ 用C语言编写程序,输出ASCII码
下面的程序打印输出所有的ASCII代码表:
#include
main()
{
int
c;
for
(c=0;c<=255;c++)
printf("ASCII:%d\tHEX:%x\tCHAR:%c\n",c,c,c);
}
经过上机调试,输出如下图所示:
(6)c语言au003eb写法对吗扩展阅读
一、ASCII
码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码使用7位二进制数(剩下的1位二进制为0来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。
二、LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
三、ASCII值为8、9、10
和13
分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
参考资料:网络-SSCII