c語言x21
㈠ 關於c語言的問題
給你個系統的例子,當然你要的也在裡面,看了之後你對pringf語句會有更深的理解
int a=123,b=12345,c=-1; 變數定義,整型,賦初值
float f=123; 變數定義,浮點實數,賦初值
printf("%4d,%4d,%d,%o,%x,%X\n",a,b,c,c,c,c);
printf("%f,%10f,%10.2f,%-10.2f,%e\n",f,f,f,f,f);
printf("%3s,%7.2s\n","hello","HELLO");
printf("%.4s,%-5.3s\n","HELLO","hello");
printf("\"\x48\x65\x6c\x6c\x6f\x2c\x57\x6f\x72\x6c\x64\x21\"\n");
後面五行都是輸出,不過格式不同,其具體含義如下(注意:C語言的輸出格式非常復雜):
d格式符,用來輸出十進制整數.
⑴%d,按整型數據的實際長度輸出.
⑵%md,m為指定的輸出欄位的寬度,數據位數小於m,左邊補空格,若大於m,按實際長度輸出
⑶%ld,輸出長整型數據(long)
o格式符,以八進制輸出整數(不帶符號,他將符號位也作為八進制數的一部分了)
⑴%o,參考%d的解釋.
⑵%lo,參考%ld的解釋.
⑶%mo,參考%md的解釋.
X格式符,以十六進制輸出整數
也是3種參考%d的解釋.
★u格式符,用來將unsigned型數據,既無符號數,以十進制形式輸出
★c格式符,輸出一個字元.
★s格式符,輸出一個字元串.
⑴%s,如printf("%s","CHINA")
⑵%ms,輸出的字元串佔m列,字元串長度小於m,左邊補空格,如果超出則全部輸出.
⑶%-ms,串小於m,則在m列范圍內字元串左靠,右補空格.
⑷%m.ns,輸出佔m列,但只取字元串左端n個字元.這n個字元輸出在m列的右邊,然後左邊補空格.
⑸%-m.ns,和上面的放下,就是n個字元輸出在m列的左側,右邊補空格.n>m,那麼m自動取n的值,既保證n個字元正常輸出.
printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA","CHINA","CHINA");
★f格式符,用來輸出實數,以小數形式輸出.
⑴%f,全部輸出,而且輸出6位小數.
⑵%m.nf,輸出數據共佔m列,n位小數,如果數據長度小於m那麼左邊補空格
⑶%-m.nf,和上面的m.nf相反,為左靠齊,右補空格.
★e,E格式符,以指數形式輸出實數
⑴%e,不指定輸出數據所佔的寬度和數字部分的小數位數.
⑵%m.ne和%-m.ne,這里n指小數部分的位數
★g,G格式符,用來輸出實數,它根據數值大小,自動選擇f格式還是e格式,(選占寬最少的一種),且不輸出無意義的0.這種格式用的不多.
那麼,對照以上內容,這個程序的輸出就應該是:
第一行 123,12345,-1,177777,ffff,ffff
第二行123.000000,123.000000, 123.00,123.00 ,1.23000e+2
第三行hello, HE
第四行HELL,hel
第五行"Hello,World"
㈡ 設計C語言程序,輸出值為33~127的ASCII碼碼值,字元對照表
樓上用<stdlib.h>幹嘛,又沒有用到動態分配空間;main默認是int型,沒必要加個int吧;題中的賦值沒有負數,沒必要把c定義成unsigned吧?循環條件寫的也很垃圾……沒必要用16進制
#include <stdio.h>
main()
{
char c;
int n=0;
printf("ASCII table:\n");
for(c=33; c<=127; c++)
{
printf("symble:%c value:%d",c,c);
n++;
if(n%5==0)
printf("\n");
}
}
鄙視為了點分瞎回答別人問題的!
㈢ C語言a\x21\\\tp\202q的長度是
一共有如下字元
a
\x21
\\
\t
p
\202
q
所以長度是7
㈣ C語言基本類型的問題
下面是我從我的講義上復制下來的,你看看吧,應該能有些幫助。
第2章 數據類型、運算符與表達式
本章主要介紹C語言的各種數據類型、運算符和表達式。
2.1 C語言的數據類型
C語言的數據類型具體分類如下:
基本類型:分為整型、實型(又稱浮點型)、字元型和枚舉型四種。
構造類型:分為數組類型、結構類型和共用類型三種。
指針類型
空類型
2.2 常量和變數
2.2.1 常量
1、常量的概念:在程序運行過程中,其值不能被改變的量稱為常量
2、 常量的分類:
整型常量
實型常量
字元常量
符號常量
3、常量的類型,可通過書寫形式來判別。
2.2.2 變數
1、變數的概念:在程序運行過程中,其值可以被改變的量稱為變數
2、變數名:每個變數都必須有一個名字——變數名,變數命名遵循標識符命名規則
3、變數值:在程序運行過程中,變數值存儲在內存中。在程序中,通過變數名來引用變數的值
4、標識符命名規則:
只能由字母、數字和下劃線組成,且以字母或下劃線開頭
有效長度:隨系統而異,但至少前8個字元有效。如果超長,則超長部分被舍棄
C語言的關鍵字不能用作變數名
注意:C語言對英文字母的大小敏感,即同一字母的大小寫,被認為是兩個不同的字元。
習慣上,變數名和函數名中的英文字母用小寫,以增加可讀性。
5、變數的定義與初始化
在C語言中,要求對所有用到的變數,必須先定義、後使用;且稱在定義變數的同時進行賦初值的操作為變數初始化。
(1)變數定義的一般格式
數據類型 變數名[, 變數名2……];
例如,float radius, length, area;
(2)變數初始化的一般格式
數據類型 變數名[=初值][, 變數名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型數據
2.3.1 整型變數
1、分類
根據佔用內存位元組數的不同,整型變數又分為4類:
(1)基本整型(類型關鍵字為int)。
(2)短整型(類型關鍵字為short [int])。
(3)長整型(類型關鍵字為long [int])。
(4)無符號整型。無符號型又分為無符號基本整型(unsigned [int])、無符號短整型(unsigned short)和無符號長整型(unsigned long)三種,只能用來存儲無符號整數。
2、佔用內存位元組數與值域
上述各類型整型變數佔用的內存位元組數,隨系統而異。在16位操作系統中,一般用2位元組表示一個int型變數,且long型(4位元組)≥int型(2位元組)≥short型(2位元組)。
顯然,不同類型的整型變數,其值域不同。佔用內存位元組數為n的(有符號)整型變數,其值域為:-2n*8-1~(2n*8-1-1);無符號整型變數的值域為:0~(2n*8-1)。
例如,PC機中的一個int型變數,其值域為-22*8-1~(22*8-1-1),即-32768~32767;一個unsigned型變數的值域為:0~(22*8-1),即0~65535。
第2章 數據類型、運算符與表達式
本章主要介紹C語言的各種數據類型、運算符和表達式。
2.1 C語言的數據類型
C語言的數據類型具體分類如下:
基本類型:分為整型、實型(又稱浮點型)、字元型和枚舉型四種。
構造類型:分為數組類型、結構類型和共用類型三種。
指針類型
空類型
2.2 常量和變數
2.2.1 常量
1、常量的概念:在程序運行過程中,其值不能被改變的量稱為常量
2、 常量的分類:
整型常量
實型常量
字元常量
符號常量
3、常量的類型,可通過書寫形式來判別。
2.2.2 變數
1、變數的概念:在程序運行過程中,其值可以被改變的量稱為變數
2、變數名:每個變數都必須有一個名字——變數名,變數命名遵循標識符命名規則
3、變數值:在程序運行過程中,變數值存儲在內存中。在程序中,通過變數名來引用變數的值
4、標識符命名規則:
只能由字母、數字和下劃線組成,且以字母或下劃線開頭
有效長度:隨系統而異,但至少前8個字元有效。如果超長,則超長部分被舍棄
C語言的關鍵字不能用作變數名
注意:C語言對英文字母的大小敏感,即同一字母的大小寫,被認為是兩個不同的字元。
習慣上,變數名和函數名中的英文字母用小寫,以增加可讀性。
5、變數的定義與初始化
在C語言中,要求對所有用到的變數,必須先定義、後使用;且稱在定義變數的同時進行賦初值的操作為變數初始化。
(1)變數定義的一般格式
數據類型 變數名[, 變數名2……];
例如,float radius, length, area;
(2)變數初始化的一般格式
數據類型 變數名[=初值][, 變數名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型數據
2.3.1 整型變數
1、分類
根據佔用內存位元組數的不同,整型變數又分為4類:
(1)基本整型(類型關鍵字為int)。
(2)短整型(類型關鍵字為short [int])。
(3)長整型(類型關鍵字為long [int])。
(4)無符號整型。無符號型又分為無符號基本整型(unsigned [int])、無符號短整型(unsigned short)和無符號長整型(unsigned long)三種,只能用來存儲無符號整數。
2、佔用內存位元組數與值域
上述各類型整型變數佔用的內存位元組數,隨系統而異。在16位操作系統中,一般用2位元組表示一個int型變數,且long型(4位元組)≥int型(2位元組)≥short型(2位元組)。
顯然,不同類型的整型變數,其值域不同。佔用內存位元組數為n的(有符號)整型變數,其值域為:-2n*8-1~(2n*8-1-1);無符號整型變數的值域為:0~(2n*8-1)。
例如,PC機中的一個int型變數,其值域為-22*8-1~(22*8-1-1),即-32768~32767;一個unsigned型變數的值域為:0~(22*8-1),即0~65535。
實型數據
2.4.1 實型變數
C語言的實型變數,分為兩種:
(1)單精度型:類型關鍵字為float,一般佔4位元組(32位)、提供7位有效數字。
(2)雙精度型:類型關鍵字為double,一般佔8個位元組、提供15~16位有效數字。
2.4.2 實型常量
1、表示形式
實型常量即實數,在C語言中又稱浮點數,其值有兩種表達形式:
(1)十進制形式:例如3.14、9.8。
(2)指數形式:<尾數>E(e)<整型指數>。例如3.0E+5等。
2、關於類型
實型常量不分float型和double型。一個實型常量,可以賦給一個實型變數(float型或double型)。
2.5 字元型數據
2.5.1 字元常量
1、字元常量的定義
用一對單引號括起來的單個字元,稱為字元常量。
例如,『A』、『1』、『+』等。
2、轉義字元
C語言還允許使用一種特殊形式的字元常量,就是以反斜杠「\ 」開頭的轉義字元。
注意:如果反斜杠或單引號本身作為字元常量,必須使用轉義字元:『\\』、『\』『。
[案例2.1] 用轉義字元輸出可列印字元和不可列印字元。
main()
{
printf(「\x4F\x4B\x21\n」); /* 等價於printf(「OK!\n」); */
printf(「\x15 \xAB\n」);
}
程序運行結果如下:
OK!
2.5.2 字元變數
字元變數的類型關鍵字為char,一般佔用1位元組內存單元。
1.變數值的存儲
字元變數用來存儲字元常量。將一個字元常量存儲到一個字元變數中,實際上是將該字元的ASCII碼值(無符號整數)存儲到內存單元中。
例如,
char ch1, ch2; /*定義兩個字元變數:ch1,ch2*/
ch1=』a』; ch2=』b』; /*給字元變數賦值*/
2.特性
字元數據在內存中存儲的是字元的ASCII碼—— 一個無符號整數,其形式與整數的存儲形式一樣,所以C語言允許字元型數據與整型數據之間通用。
(1)一個字元型數據,既可以字元形式輸出,也可以整數形式輸出。
[案例2.2] 字元變數的字元形式輸出和整數形式輸出。
main()
{
char ch1,ch2;
ch1='a'; ch2='b';
printf(「ch1=%c,ch2=%c\n」,ch1,ch2);
printf(「ch1=%d,ch2=%d\n」,ch1,ch2);
}
程序運行結果:
ch1=a,ch2=b
ch1=97,ch2=98
(2)允許對字元數據進行算術運算,此時就是對它們的ASCII碼值進行算術運算。
[案例2.3] 字元數據的算術運算。
main()
{
char ch1,ch2;
ch1=『a』; ch2=『B』;
printf(「ch1=%c,ch2=%c\n」,ch1-32,ch2+32); /*字母的大小寫轉換*/
/*用字元形式輸出一個大於256的數值*/
printf("ch1+200=%d\n", ch1+200);
printf("ch1+200=%c\n", ch1+200);
printf("ch1+256=%d\n", ch1+256);
printf("ch1+256=%c\n", ch1+256);
}
程序運行結果:
ch1=A,ch2=b
ch1+200=297
ch1+200=)
ch1+256=353
ch1+256=a
㈤ 求c語言題庫
編程題:
用編寫C語言程序實現下面目的:
鍵盤輸入圓柱的底半徑r和高h,計算表面積S和體積V並輸出。輸入輸出時要有文字說明,輸出數取小數點後2位數字。
鍵盤輸入三個數,編寫程序將他們從大到小輸出。
鍵盤輸入一個字元,如果它是大寫字母,則把它變成小寫字母輸出;若它是小寫字母,則變成大寫字母輸出;其它字元不改變輸出。編寫程序實現這一過程。
編寫程序實現以下函數功能:(求平方函數sqrt()在頭文件math.h中包含,a的值用scanf函數從鍵盤輸入)
編程實現:鍵盤輸入一個整數,判斷它是否能被3,5,7整除,並輸出以下信息之一:
(1) 能同時被3,5,7整除;
(2) 能被其中兩個數(要指出那兩個)整除;
(3) 能被其中一個數(要指出那個數)整除;
(4) 不能被3,5,7整除。
編程實現:鍵盤讀入兩個數(data1和data2)及一個運算符(op),計算表達式
data1 op data2
的值,其中op可以是 +、-、*、/中的一種。例如:
輸入: 1+2
輸出:1.000000+2.000000=3.000000
輸入: 1.0/2
輸出:1.000000/2.000000=0.500000
輸入: 3*2.5
輸出:3.000000*2.500000=7.500000
等等
有1020個西瓜,第一天賣出一半多兩個,以後每天賣剩下的一半多兩個,編程求到第幾天賣完。
鍵盤輸入一串字元,計算其中的母音字元的個數和輔音字母的個數。例如輸入:
I am a boy. You are a girl. 則母音有10個,輔音有8個,等等。輸入時以回車(『\n』)作為結束。
編程計算1-3+5-7+…-99+101的值。
從鍵盤輸入6名學生的各5科成績,分別統計並輸出每個學生的平均成績。
(每輸入一個學生的5科成績,就要輸出他的平均成績,輸入輸出要有提示。
例如:
請輸入第1個人的成績:
34
45
67
78
79
他的平均成績為:?
請輸入第2個人的成績:………………)
從鍵盤輸入若干整數(數據至多100個),其值在0至4范圍,用-1作為輸入結束標志,統計每個整數的個數。
輸出完整的乘法九九表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
……
13. 鍵盤輸入一個字元串,反序輸出。
例如輸入: "How are you!"
則輸出: "!uoy era woH"
若輸入: "Holle the world!"
則輸出: "!dlrow eht elloH"
等等
14. 編寫程序,將鍵盤輸入的兩個字元串(str1和str2)連接起來,不要用strcat函數。
例如輸入:str1:"I am a boy."
str2:"You are a girl."
連接後輸出:
"I am a boy. You are a girl ."
15. 鍵盤輸入十個數,用起泡法對它們由小到大排序。
16. 輸出ASCII碼為33~127字元的列表。輸出方式:每行輸出5個字元信息;對於每個字元,先輸出十六進制轉義字元方式,再輸出普通字元方式。例如:
』\x21』 ! 『\x22』 「 『\x23』 # 『\x24』 $ 『\x25』 %
等等。其中』\x21』中,單引號(』)、斜線(\)和字元x也要輸出。
17. 輸入某一科學生成績,學生數少於100人,當輸入成績為0時結束輸入。然後:
(1) 求成績平均值xx;
(2) 求平均相對誤差wucha_x。方法:wucha_x=(|x[0]-xx|+|x[1]-xx|+…+|x[n-1]-xx|)/n
其中n是學生個數,求絕對值函數fabs()在頭文件math.h中包含。
第八章函數:
已有變數定義和函數調用語句:
int a, b, h, l;
h=hcf(a, b); l=lcd(a,b);
hcf函數的作用是求兩個數的最大公約數,lcf函數的作用是求兩個數的最小公倍數。要求在主函數中從鍵盤輸入兩個整數分別賦值給變數a,b,然後調用兩個函數求出最大公約數和最小公倍數,最後由主函數輸出結果。
已有變數定義和函數調用語句:
char str1[80],str2[80];
cpy(str1,str2);
cpy函數的作用是找出str1中的母音字母然後復制到str2中。要求在主函數中實現字元串的輸入,並存放到字元數組str1中,函數調用後輸出字元數組str1和str2中的內容。
給出年、月、日,計算該日是該年中的第多少天。其中計算過程由函數實現。
輸入長方形的長a和寬b的值,通過一個函數調用計算出長方形的周長c和面積s,在主函數中輸出長方形的周長和面積值。
已有變數定義語句
double a;int n;
和函數調用語句
mypow(a,b);
要求編寫程序,用遞歸法求出a的n次方的值
寫一個函數,實現用「選擇法」對輸入的10個字元按由小到大的順序排列。在主函數中調用該函數並輸出排序後的結果。
寫一個函數,實現用「起泡法「對輸入的10個字元按由大到小的順序排列。在主函數中調用該函數並輸出排序後的結果。
編寫程序,要求從鍵盤輸入月份號,輸出該月的英文名字。例如,輸入『3』,則輸出「Match」,輸出要求用函數實現。
第十章指針
編一程序,將字元串中的第m個字元的全部字元復製成另一個字元串。要求在主函數中輸入字元串及m的值並輸出復制結果,在被調用函數中完成復制。(形參與實參均用指針變數)
用「起泡法」對輸入的十個整數按由小到大的順序排序。(對數組中各元素的操作要求用指針的方法)
編一程序,統計從鍵盤輸入的命令行中第二個參數所包含的英文字元個數。
輸入一行字元,要求找出其中大寫字母、小寫字母、空格、數字以及其他字元各有多少個?(要求用指針方法實現)
輸入10個數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換,要求寫3個函數,分別實現
①輸入10個數,
②進行處理,
③輸出10個數。
編一程序,將字元串computer賦給一個字元指針,然後從第一個字母開始間隔地輸出該串。要求用指針完成。
編一程序,要求從鍵盤輸入兩個數,通過函數調用比較兩個數的大小,並把大數返回給主調函數,輸出這個數。(要求兩個變數的地址作為實參)
補充題目:
編寫一個函數,統計出一個整數中包含的某一個數字的個數,例如:11254中包含有1個2。
求100以內的全部素數,每行輸出10個數。要求判斷一個數是否是素數由函數實現。
有36塊磚,共36人搬,成年男子一次搬4塊磚,成年女子一次搬3塊磚,兒童兩人抬1塊磚,恰好一次全部搬完,編程求出成年男子、成年女子和兒童各多少人。
程序的功能是求三個數的最小公倍數。
max(int x,int y,int z)
{
If(x>y&&x>z) return(x);
else if(y>=x&&y>z) ;
else return(z);
}
main()
{
int a,b,c,i=1,j,s;
scanf(「%d%d%d」,&a,&b,&c);
s= ;
while(1)
{
j=s*i;
if( )
break;
i++;
}
printf(「%d」,j);
}
下面程序用於計算n!的值
main()
{
int i,s,n;
s=1;
printf(「enter n:」);
scanf(「%d」,&n);
for(i=1;i<=n;i++)
;
printf(「s=%d」,s);
}
閱讀下面的程序,其結果為( )。
#include <stdio.h>
main()
{
char c=』A』;
if(『0』<=c<=』9』)
printf(「YES」);
else
printf(「NO」);
}
A.YES B.NO
C.YESNO D.語句錯誤