當前位置:首頁 » 編程語言 » c語言入門100題的答案

c語言入門100題的答案

發布時間: 2023-02-26 20:53:47

❶ 求幾道簡單c語言編程題答案

1.
#include
<stdio.h>
int
main()
{
int
y0,
m0,
d0,
y1,
m1,
d1,
age;
while
(
scanf("%d%d%d%d%d%d",
&y0,
&m0,
&d0,
&y1,
&m1,
&d1
)
){
age
=
y1
-
y0
-
1;
if
(
m1
>
m0
||
m1
==
m0
&&
d1
>=
d0
)
++age;
printf("年齡為:%d周歲!\n",
age);
}
return
0;
}
4.
#include
<stdio.h>
#include
<memory.h>
int
main()
{
char
p[500];
int
i,
count;
while
(
scanf("%s",
&p)
){
count
=
0;
for
(
i
=
0;
i
!=
strlen(p);
++i
)
if
(
p[i]
>=
'a'
&&
p[i]
<=
'z'
)
++count;
printf("%d\n",
count);
}
return
0;
}
2.
#include
<stdio.h>
int
main()
{
int
n;
while
(
scanf("%d",
&n)
){
if
(
(
n
&
1
)
==
0
)
printf("%d是偶數!\n",
n);
else
printf("%d,是奇數!\n",
n);
}
return
0;
}
第三題(用EFO結束)?EOF吧?EOF已經是文件尾,怎樣輸出結果?

❷ C語言入門題

首先說明一下,這道題目的答案卻是是 3。

我在編譯器運行了一下你的代碼:

接下來分析一下這個題目的流程:

1、在if(x < y)這個判斷條件中,x==1, y==-1,條件是不成立的,所以走else分支。

2、在else分支中,z==2,現在 z+=1之後, z==3。

3、在最後一步printf中列印最終結果z == 3。

如果以上回答對你有幫助,請採納下,謝謝。

❸ C語言解答!

源程序運行結果:c
分析:定義一個字元型 c1 和 一個整型變數 a
執行c1+=a時 運算為保證其精度會自動將c1轉換成整型變數 也就是c1=97(十進制ASCII碼) 然後加2等於99
輸出是以字元格式輸出 所以輸出為字元 c
1)、運行結果:c
分析:在計算機中 當執行c1 = 'a'時內存存儲的數值就是61(16進制) 10進制就為97 所以運行的結果沒有變化
2)、c1 = "a" 是錯誤的賦值方法
分析:給字元數組賦值才用 " 在有些編譯器(VC++)裡面編譯可以通過 但是會提示警告 最後運行的結果是不可靠的 所以字元賦值用'號
3)、運行結果:99
分析:%d代表以十進制形式輸出帶符號的整數 由上面的分析 c1 = 99 所以輸出99
4)、間接訪問也就是運用指針
#include<stdio.h>
void main()
{
char c1,*p = &c1;
int a;
c1 = 'a';
a = 2;
c1 += a;
printf("%c\n",*p);
}

❹ C語言試題及答案(2)

main()

{ int k, a[10]={1,2,3,4,5};

for(k=1; k<3; k++) fun(a);

for(k=0; k<5; k++) printf("%d", a[k]);

}

上面程序的輸出結果是

A.34756

B.23445

C.35743

D.12345

(40) 請讀程序:

#include

#define SUB(X,Y) (X)*Y

main()

{ int a=3, b=4;

printf("%d", SUB(a++, b++));

}

上面程序的輸出結果是

A.12

B.15

C.16

D.20(41) 請讀程序:

#include

main()

{ int mun=0;

while(num<=2)

{ num++; printf("%d ",num);}

}

上面程序的輸出結果是

A.1

B.1

C.1

D.1

2 2 2

3 3

4

(42) 請讀程序:

#include

main()

{ float x,y;

scan("%f",&x);

if(x<0.0) y=0.0

else if((x<5.0)&&(x!=2.0))

y=1.0/(x+2.0);

else if (x<10.0) y=1.0/x;

else y=10.0;

printf("%f ",y);

}

若運行時從鍵盤上輸入2.0(表示回車),則上面程序的輸出結果是

A.0.000000

B.0.250000

C.0.500000

D.1.000000

(43) 請讀程序:

#include

main()

{ int x=1, y=0, a=0, b=0;

switch(x)

{ case 1:

switch(y)

{ case 0: a++;break;

case 1: b++;break;

}

case 2:

a++; b++; break;

}

printf("a=%d, b=%d ",a,

B.;

}

上面程序的輸出結果是

A.a=2, b=1

B.a=1, b=1

C.a=1, b=0

D.a=2, b=2

(44) 若有下面的程序片段:

int a[12]={0}, *p[3], **pp, i;

for(i=0; i<3; i++)

p[i]=&a[i*4];

pp=p;

則對數組元素的錯誤引用是

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)

(45) 請讀程序:

#include

#include

main()

{ float x,y,z;

scan("%f%f",&x,&y);

z=x/y;

while(1)

{ if(fabs(z)>1.0)

{ x=y; y=z; z=x/y;

}

else break

}

printf("%f ",y);

}

若運行時從鍵盤上輸入3.6 2.4(表示回車),則輸出的結果是

A.1.500000

B.1.600000

C.2.000000

D.2.400000

(46) 請讀程序:

#include

f(in b[], int n)

{ int i, r;

r=1;

for(i=0; i<=n; i++) r=r*b[i];

return r;

}

main()

{ int x, a[]={ 2,3,4,5,6,7,8,9};

x=f(a, 3);

printf("%d ",x);

}

上面程序的輸出結果是

A.720

B.120

C.24

D.6

(47) 請讀程序:

#include

#include

void fun( char *s)

{ char a[10];

strcpy( a, "STRING");

s=a;

}

main()

{ char *p;

fun(p);

x=f(a, 3);

printf("%s ",p);

}

上面程序的輸出結果是(└┘表示空格)

A.STRING└┘└┘└┘└┘

B.STRING

C.STRING└┘└┘└┘

D.不確定的值

(48) 若已建立下面的鏈表結構,指針p、s分別指向圖中所示的結點,則不能將s所指的結點插入到鏈表末尾的語句組是

A.s->next=NULL; p=p->next; p->next=s;

B.p=p->next; s->next=p->next; p->next=s;

C.p=p->next; s->next=p; p->next=s;

D.p=(*p).next; (*s).next=(*p).next; (*p).next=s;

(49) 請讀程序:

#include

void fun(float *pl, float *p2, float *s)

{ s=( float * )calloc( 1, sizeof(float));

*s=*p1+ *(p2++);

}

main()

{ float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a;

fun(a, b, s)

printf("%f ",*s);

}

上面程序的輸出結果是

A.11.100000

B.12.100000

C.21.100000

D.1.100000

(50) 請讀程序:

#include

#include

void fun( char *w, int m)

{ char s, *p1, *p2;

p1=w; p2=w+m-1;

while (p1{ s=*p1++; *p1=*p2--; *p2=s;}

}

main()

{ char a[]="ABCDEFG";

fun( a, strlen(a));

puts(a);

}

上面程序的輸出結果是

A.GFEDCBA

B.AGADAGA

C.AGAAGAG

D.GAGGAGA

二、填空題(每空2分,共40分)

請將每空的正確答案寫在答題卡上【1】-【20】序號後的橫線上,答在試卷上不得分。

(1) DOS命令分為內部命令與外部命令,XCOPY命令是 【1】 命令

(2) 為了列出當前盤當前目錄中所有第三個字元為C的文件名的有關信息,應該用命令 【2】 。

(3) 設當前盤為A盤,當前目錄為XY,A盤上的一個文件QR.C在當前目錄下的子目錄W中。現已將A盤的當前目錄改為DXY,當前盤改為C盤,如需指定A盤上該文件應寫成 【3】 。

(4) 用十六進制給存儲器中的位元組地址進行編號,其地址編號是從0000到FFFF,則該存儲器的容量是【4】KB。

(5) 設有兩個八位二進制數00010101與01000111相加,其結果的十進製表示為 【5】 。

(6) 數學式子 寫成C語言表達式是 【6】 。

(7) 下面程序的輸出結果是 【7】 。

#include

main()

{ static char b[]="Goodbye";

char *chp=&b[7];

while( --chp >=&b[0]) putchar( *chp);

putchar(’ ’);

}

(8) 下面程序的輸出結果是 【8】 。

#include

void as( int x, int y, int *cp, int *dp)

{ *cp=x+y;

*dp=x-y;

}

main()

{ int a=4, b=3, c, d;

as( a, b, &c, &d);

printf( ’%d %d ", c, d);

}

(9) 請讀程序:

#include

main( int argc, char *argv[])

{ int i;

printf( ’%d ", argc);

for( i=0; i<=argc+1; i++) printf( "%s ", argv[i]);

printf(" ");

}

若上面的程序編譯、連接後生成可執行文件ABC.EXE,則輸入以下命令行

abc file1 file2(表示回車)

程序執行後的輸出結果是 【9】 。

(10) 條件“20(11) 設二進制數a是00101101,若想通過異或運算a^b使a的高4位取反,低4位不變,則二進制數b應是 【11】 。

(12) 若有以下說明和定義語句,則變數w在內存中所佔的位元組數是 【12】 。

union aa

{ float x, y;

char c[6];

};

struct st { union aa v; float w[5]; double ave; } w;

(13) 下面程序的輸出結果是 【13】 。

#include

#define N 5

fun( char *s, char a, int n)

{ int j;

*s=a; j=n;

while( ereturn j;

}

main()

{ char s[N+1];

int k, p;

for( k=1; k<=N; k++)

s[k]=’A’+k+1;

printf( "%d ", fun(s, ’E’, N));

}(14) 下面程序的輸出結果是 【14】 。

#include

void fun( char *a1, char *a2, int n)

{ int k;

for( k=0; ka2[k]=( a1[k]-’A’-3+26)&+’A’;

a2[n]=’’;

}

main()

{ char s1[5]="ABCD", s2[5];

fun( s1, s2, 4);

puts( s2);

}

(15) 下面的findmax函數返回數組s中最大元素的下標,數組中元素的個數由t傳入,請填空。

findmax( int s[], int t)

{ int k, p;

for( p=0, k=p; pif( s[p]>s[k]) 【15】 。

return k;

}

(16) 下面程序的輸出結果是 【16】 。

#include

fun( int x)

{ int p;

if( x==0||x==1) return(3);

p=x-fun( x-2);

return p;

}

main()

{ printf( "%d ", fun(9));}

(17) 下面程序的輸出結果是 【17】 。

#include

funa( int a, int b)

{ return a+b;}

funb( int a, int b)

{ return a-b;}

sub( int (*t)(), int x, int y)

{ return((*t)( x,y));}

main()

{ int x, (*p)();

p=funa;

x=sub(p,9,3);

x+=sub(funb, 8, 3);

printf("%d ", x);

}

(18) 下面程序的輸出結果是 【18】 。

#include

main()

{ char *p[]={ "BOOL", "OPK", "H", "SP"};

int i;

for(i=3; i>=0; i--,i--) printf( "%c", *p[i]);

printf(" ");

}

(19) 為了建立如圖所示的存儲結構(即每個結點含兩個域,data是數據域,next是向結點的指針域),請填空。

data next

struct link { char data; 【19】 } node;

(20) 下面的程序用來統計文件中字元的個數,請填空。

#include

main()

{ FILE *fp;

long num=0;

if(( fp=fopen("fname.dat","r"))==NULL)

{ printf( "Can’t open file! "); exit(0);}

while 【20】

{ fgetc(fp); num++;}

printf("num=%d ", num);

fclose(fp);

}

參考答案

一`選擇題((1)~(40)題每題1分,(41)~(50)題每題2分,共60分)

(1)C (2)A (3)B (4)D (5)D (6)A (7)C (8)B (9)D (10)C

(11)B (12)D (13)A (14)C (15)B (16)A (17)B (18)A (19)C (20)C

(21)D (22)B (23)B (24)A (25)C (26)D (27)D (28)B (29)C (30)A

(31)B (32)B (33)D (34)C (35)A (36)C (37)A (38)B (39)C (40)A

(41)C (42)C (43)A (44)C (45)B (46)B (47)D (48)C (49)D (50)C

二` 填空題(每空2分,共40分)

(第(2)`(3)空允許小寫或大小寫混合使用,其它空均須與答案一樣)

(1) 外部

(2) DIR ?? C*.*

(3) A:XYWQR.C

(4) 64

(5) 92

(6) pow(sin(x),2) * (a+b)/(a-b) 或 sit(x) * sit(x) * (a+b)/(a-b)

(7) eybdooG

(8) 7 1

(9) 3 abc.exe file1 file2 (注:兩個答案,每個1分)

(10) ((20 (11) 11110000

(12) 34

(13) 3

(14) XYZA

(15) k=p

(16) 7

(17) 17

(18) SO

(19) struct link *next

(20) (!feof(fp))或(feof(fp)==0)

❺ C語言選擇題及答案

選擇題

1.在深度為5的滿二叉樹葉中,葉子結點的個數為( )。

A.32

B.31

C.16

D.15

2.軟體生命周期中,花費最多的階段是( )。

A.詳細設計

B.軟體編碼

C.軟體測試

D.軟體維護

3.視圖設計一般有3種設計次序,下列不屬於視圖設計次序的是( )。

A.自頂而下

B.由內向外

C.由外向內

D.自底向上

4.下列數據結構中,能用二分法進行查找的是( )。

A.順序存儲的有序線性表

B.結性鏈表

C.二叉鏈表

D.有序線性鏈表

5.以下敘述中錯誤的是( )。

A.對於double類型數組,不可以直接用數組名對數組進行整體輸入或輸出

B.數組名代表的是數組所佔存儲區的首地址,其值不可改變

C.當程序執行中,數組元素的下標超出所定義的下標范圍時,系統將給出“下標越界”的出錯信息

D.可以通過賦初值的方式確定數組元素的個數

6.以下只有在使用時才為該類型變數分配內存的存儲類型說明是( )。

A.auto和static

B.auto和register

C.register和static

D.extern和register

7.下列可作為C語言賦值的語句的是( )。

A.x一3,y=5

B.a=b=6

C.i--;

D.a,c

8.若整型變數a、b、c、d中的值依次為2、2、3、4,則條件表達式aA.1

B.2

C.3

D.4

9.下列敘述中錯誤的是( )。

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結構

C.線性表的所有結點有且僅有一個前件和後件

D.線性表可以是空表

10.以下程序執行後sum的值是( )。

main()

{ int i,sum;

for(i=1;i<6;i++)sum+=i:

printf("1%d ",sum):

}

A.15

B.14

C.不確定

D.0

11.設j為Int型變數,則下面for循環語句的執行結果是( )。

for(j=10;j>3;j--)

{ if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.6 3

B.7 4

C.6 2

D.7 3

12.表示關系X<=Y<=Z的C語言表達式為( )。

A.(X<=Y)&&(Y<=Z)

B.(X<=Y)AND(Y<=Z)

C.(X<=Y<=Z)

D.(X<一Y)&(Y<一Z)

13.設有如下定義:

int arr[]={6,7,8,9,10);

int*ptr:

ptr=arr;

*(ptr2)=2;

printf("%d,%d ",*ptr,*(ptr2)):

則下列程序段的輸出結果為( )。

A.8,10

B.6,8

C.7,9

D.6,2

14.設有定義語句:

int x[-6]={2,4,6,8,5,7),*p=X,i;

要求依次輸出X數組6個元素中的值,不能完成此操作的語句是( )。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(pq-i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",*(p)++);

15.數字字元0的ASCII值為48,運行以下程序的輸出結果是( )。

main()

( char a=’1’,b=’2’;

printf("%C,",b++);printf("%d ",b—a);}

A.3,2

B.50,2

C.2,2

D.2,50

16.設有如下定義:

int(*ptr)();

則以下敘述中正確的是( )。

A.ptr是指向一維組數的指針變數

B.ptr是指向int型數據的指針變數

C.ptr是指向函數的指針,該函數返回一個int型數據

D.ptr是一個函數名,該函數的返回值是指int型數據的指針

17.設有定義的語句:“char c1=92,c2=92;”,則以下表達式中的值為零的是( )。

A.c1^c2

B.c1&c2

C.~c2

D.c1 | c2

18.以下程序的輸出結果是( )。

void fun(int*a,int i,int i)

{int t;

if(i { t=a[i[;a[i]=a[j];a[j]一t;

i++;j--;

fun(a,i,j);

}

}

main()

{ int K[]={2,6,1,8},i;

fun(x,0,3);

for(i=0;i<1;i++)printf("%2d",x[i]);

printf(" ");

}

A.1,2,6,8

B.8,6,2,1

C.8,1,6,2

D.8,6,1,2

19.有以下程序:

main()

{int i,j;

for(j=10;j<11;j++)

{ for(i=9;i if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結果是( )。

A.11

B.10

C.9

D.10 11

11.設j為Int型變數,則下面for循環語句的執行結果是( )。

for(j=10;j>3;j--)

{ if(j%3)j--;

--j;--j;

printf("%d",j);

}

A.6 3

B.7 4

C.6 2

D.7 3

12.表示關系X<=Y<=Z的C語言表達式為( )。

A.(X<=Y)&&(Y<=Z)

B.(X<=Y)AND(Y<=Z)

C.(X<=Y<=Z)

D.(X<一Y)&(Y<一Z)

13.設有如下定義:

int arr[]={6,7,8,9,10);

int*ptr:

ptr=arr;

*(ptr2)=2;

printf("%d,%d ",*ptr,*(ptr2)):

則下列程序段的輸出結果為( )。

A.8,10

B.6,8

C.7,9

D.6,2

14.設有定義語句:

int x[-6]={2,4,6,8,5,7),*p=X,i;

要求依次輸出X數組6個元素中的值,不能完成此操作的語句是( )。

A.for(i=0;i<6;i++)printf("%2d",*(p++));

B.for(i=0;i<6;i++)printf("%2d",*(pq-i));

C.for(i=0;i<6;i++)printf("%2d",*p++);

D.for(i=0;i<6;i++)printf("%2d",*(p)++);

15.數字字元0的ASCII值為48,運行以下程序的輸出結果是( )。

main()

( char a=’1’,b=’2’;

printf("%C,",b++);printf("%d ",b—a);}

A.3,2

B.50,2

C.2,2

D.2,50

16.設有如下定義:

int(*ptr)();

則以下敘述中正確的是( )。

A.ptr是指向一維組數的指針變數

B.ptr是指向int型數據的指針變數

C.ptr是指向函數的指針,該函數返回一個int型數據

D.ptr是一個函數名,該函數的返回值是指int型數據的指針

17.設有定義的語句:“char c1=92,c2=92;”,則以下表達式中的值為零的是( )。

A.c1^c2

B.c1&c2

C.~c2

D.c1 | c2

18.以下程序的輸出結果是( )。

void fun(int*a,int i,int i)

{int t;

if(i { t=a[i[;a[i]=a[j];a[j]一t;

i++;j--;

fun(a,i,j);

}

}

main()

{ int K[]={2,6,1,8},i;

fun(x,0,3);

for(i=0;i<1;i++)printf("%2d",x[i]);

printf(" ");

}

A.1,2,6,8

B.8,6,2,1

C.8,1,6,2

D.8,6,1,2

19.有以下程序:

main()

{int i,j;

for(j=10;j<11;j++)

{ for(i=9;i if(!(j%i))break;

if(i==j-1)

printf("%d",j);

}

}

輸出結果是( )。

A.11

B.10

C.9

D.10 11

20.有以下程序.

#include

main()

{ char c1,c2,c3,c4,c5,c6;

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

c5=getchar(); c6=getchar();

putchar(c1);putchar(c2);

printf("%c%c ",c5,c6);

}

程序運行後,若從鍵盤輸入(從第l列開始)

123<回車>

45678<回車>

則輸出結果是( )。

A.1267

B.1256

C.1278

D.1245

❻ c語言經典100題,要過程

您好,c語言經典100題:
【程序1】
題目:有1,2,3,4個數字,能組成多少個互不相同且無重復數字的三位數
都是多少
1.程序分析:可填在百位,十位,個位的數字都是1,2,3,4.組成所有的排列後再去
掉不滿足條件的排列.
2.程序源代碼:
main()
{
int
i,j,k;
printf("\n");
for(i1;i<5;i++)
/*以下為三重循環*/
for(j1;j<5;j++)
for
(k1;k<5;k++)
{
if
(i!k&&i!j&&j!k)
/*確保i,j,k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
【程序2】
題目:企業發放的獎金根據利潤提成.利潤(i)低於或等於10萬元時,獎金可提10%;利潤高
於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提
成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於
40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於
100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤i,求應發放獎金總數
1.程序分析:請利用數軸來分界,定位.注意定義時需把獎金定義成長整型.
2.程序源代碼:
main()
{
long
int
i;
int
bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1100000*0.1;bonus2bonus1+100000*0.75;
bonus4bonus2+200000*0.5;
bonus6bonus4+200000*0.3;
bonus10bonus6+400000*0.15;
if(i<100000)
bonusi*0.1;
else
if(i<200000)
bonusbonus1+(i-100000)*0.075;
else
if(i<400000)
bonusbonus2+(i-200000)*0.05;
else
if(i<600000)
bonusbonus4+(i-400000)*0.03;
else
if(i<1000000)
bonusbonus6+(i-600000)*0.015;
else
bonusbonus10+(i-1000000)*0.01;
printf("bonus%d",bonus);
}
【程序3】
題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少
1.程序分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後
的結果滿足如下條件,即是結果.請看具體分析:
2.程序源代碼:
#include
"math.h"
main()
{
long
int
i,x,y,z;
for
(i1;i2)/*如果是閏年且月份大於2,總天數應該加一天*/
sum++;
printf("it
is
the
%dth
day.",sum);}
【程序4】
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊
情況,閏年且輸入月份大於3時需考慮多加一天。
2.程序源代碼:
main()
{
int
day,month,year,sum,leap;
printf("\nplease
input
year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先計算某月以前月份的總天數*/
{
case
1:sum0;break;
case
2:sum31;break;
case
3:sum59;break;
case
4:sum90;break;
case
5:sum120;break;
case
6:sum151;break;
case
7:sum181;break;
case
8:sum212;break;
case
9:sum243;break;
case
10:sum273;break;
case
11:sum304;break;
case
12:sum334;break;
default:printf("data
error");break;
}
sumsum+day;
/*再加上某天的天數*/
if(year%4000||(year%40&&year%100!0))/*判斷是不是閏年*/
leap1;
else
leap0;
if(leap1&&month>2)/*如果是閏年且月份大於2,總天數應該加一天*/
sum++;
printf("It
is
the
%dth
day.",sum);}
【程序5】
題目:輸入三個整數x,y,z,請把這三個數由小到大輸出.
1.程序分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,
然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小.
2.程序源代碼:
main()
{
int
x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if
(x>y)
{tx;xy;yt;}
/*交換x,y的值*/
if(x>z)
{tz;zx;xt;}/*交換x,z的值*/
if(y>z)
{ty;yz;zt;}/*交換z,y的值*/
printf("small
to
big:
%d
%d
%d\n",x,y,z);
}
【程序6】
題目:用*號輸出字母c的圖案.
1.程序分析:可先用'*'號在紙上寫出字母c,再分行輸出.
2.程序源代碼:
#include
"stdio.h"
main()
{
printf("hello
c-world!\n");
printf("
****\n");
printf("
*\n");
printf("
*
\n");
printf("
****\n");
}
【程序7】
題目:輸出特殊圖案,請在c環境中運行,看一看,very
beautiful!
1.程序分析:字元共有256個.不同字元,圖形不一樣.
2.程序源代碼:
#include
"stdio.h"
main()
{
char
a176,b219;
printf("%c%c%c%c%c\n",b,a,a,a,b);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",a,a,b,a,a);
printf("%c%c%c%c%c\n",a,b,a,b,a);
printf("%c%c%c%c%c\n",b,a,a,a,b);}
【程序8】
題目:輸出9*9口訣.
1.程序分析:分行與列考慮,共9行9列,i控制行,j控制列.
2.程序源代碼:
#include
"stdio.h"
main()
{
int
i,j,result;
printf("\n");
for
(i1;i<10;i++)
{
for(j1;j<10;j++)
{
resulti*j;
printf("%d*%d%-3d",i,j,result);/*-3d表示左對齊,佔3位*/
}
printf("\n");/*每一行後換行*/
}
}
【程序9】
題目:要求輸出國際象棋棋盤.
1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格.
2.程序源代碼:
#include
"stdio.h"
main()
{
int
i,j;
for(i0;i<8;i++)
{
for(j0;j<8;j++)
if((i+j)%20)
printf("%c%c",219,219);
else
printf("
");
printf("\n");
}
}
【程序10】
題目:列印樓梯,同時在樓梯上方列印兩個笑臉.
1.程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數.
2.程序源代碼:
#include
"stdio.h"
main()
{
int
i,j;
printf("\1\1\n");/*輸出兩個笑臉*/
for(i1;i<11;i++)
{
for(j1;j<i;j++)
printf("%c%c",219,219);
printf("\n");
}
}
【程序11】
題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月
後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少
1.程序分析:
兔子的規律為數列1,1,2,3,5,8,13,21....
2.程序源代碼:
main()
{
long
f1,f2;
int
i;
f1f21;
for(i1;i<20;i++)
{
printf("%12ld
%12ld",f1,f2);
if(i%20)
printf("\n");/*控制輸出,每行四個*/
f1f1+f2;
/*前兩個月加起來賦值給第三個月*/
f2f1+f2;
/*前兩個月加起來賦值給第三個月*/
}
}
【程序12】
題目:判斷101-200之間有多少個素數,並輸出所有素數.
1.程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,
則表明此數不是素數,反之是素數.
2.程序源代碼:
#include
"math.h"
main()
{
int
m,i,k,h0,leap1;
printf("\n");
for(m101;m<200;m++)
{
ksqrt(m+1);
for(i2;i<k;i++)
if(m%i0)
{leap0;break;}
if(leap)
{printf("%-4d",m);h++;
if(h%100)
printf("\n");
}
leap1;
}
printf("\nthe
total
is
%d",h);
}

熱點內容
上課用平板是什麼配置 發布:2024-05-17 05:29:51 瀏覽:565
linux指定組 發布:2024-05-17 05:04:39 瀏覽:86
魯班演算法 發布:2024-05-17 04:59:46 瀏覽:489
分布鋼筋配置有哪些 發布:2024-05-17 04:51:57 瀏覽:148
軒逸寶來朗逸配置一樣哪個平易 發布:2024-05-17 04:48:59 瀏覽:433
c盤刪除緩存文件對系統有影響嗎 發布:2024-05-17 04:27:47 瀏覽:340
python不能輸入中文 發布:2024-05-17 04:27:34 瀏覽:111
小米電視密碼設置在哪裡 發布:2024-05-17 04:06:12 瀏覽:426
java正則sql 發布:2024-05-17 04:05:52 瀏覽:620
51單片機c語言教程郭天祥 發布:2024-05-17 03:46:13 瀏覽:890