① 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