嗯...我太閒了= =
下午沒事做就衝去爬天母古道
冷死了 還下雨
下次要去可能要找天氣好的日子~
拍了幾張照
相簿
看看吧= =
2008年1月24日 星期四
2008年1月10日 星期四
C檢定題庫
輸出從1*1=1 到 n*9=(n*9)的九九乘法表
參考輸出:1X1=1 1X2=2 1X3=3 1X4=4 1X5=5 1X6=6 1X7=7 1X8=8 1X9=9
輸出格式:printf("%dX%d=%d ",變數,變數,變數);
請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int n=atoi(argv[1]);
int x,t;
for(x=1,t=1;x<=n;++t){
printf("%dX%d=%d ",x,t,x*t);
if(t==9){
t=0;
x=x+1;
}
}
}
輸出首項為a,末項為an且公差為d的等差級數
例如:數列 1 2 3 4 5,他首項a=1,末項為an=5,公差為d=1
輸出格式:printf("%d ",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int a=atoi(argv[1]);
int an=atoi(argv[2]);
int d=atoi(argv[3]);
while(a<=an){
printf("%d ",a);
a=a+d;
}
}
輸出首項為a,末項小於an且公比為d的等比級數例如:當a=1,an=10,d=2的數列為 1 2 4 8,因為an為10所以此數列只印到8輸出格式:printf("%d ",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int a=atoi(argv[1]);
int an=atoi(argv[2]);
int d=atoi(argv[3]);
while(a
a=a*d;
}
}
輸出費氏級數 2 3 5 8 .......直到大於n
參考輸入:n=10
輸出:2 3 5 8 13
輸出格式:printf("%d ",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int n=atoi(argv[1]);
int x=1,y=1,z=0;
while(z<=n){
z=x+y;
x=y;
y=z;
printf("%d ",z);
}
}
輸出從第ㄧ階到第X階層且第X階小於n
參考輸入:n=10
輸出:1!=1 2!=2 3!=6
輸出格式:printf("%d ",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int n=atoi(argv[1]);
int x,y;
for(x=y=1;x*y
printf("%d!=%d ",x,y);
}
}
任意輸入一個數字 n,計算 1*1 + 2*2 + 3*3 + ... + n*n
當n=10
輸出:385
輸出格式:printf("%d",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int n=atoi(argv[1]);
int x=0,t=0;
while(x<=n){
t=t+(x*x);
x=x+1;
}
printf("%d ",t);
}
任意輸入一個數字 n,計算 1 到 n 的所有能被 m 整除的所有數的總和 。
例如:當n=10,m=3,即計算3+6+9,(因為3,6,9可被3整除),所以輸出為18
輸出格式:printf("%d",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int n=atoi(argv[1]);
int m=atoi(argv[2]);
int x=0,t=0;
while(t+m
x=x+t;
}
printf("%d ",x);
}
任意輸入一個數字 n,列出其所有因數。
參考輸入:n=10
輸出:1 2 5 10
輸出格式:printf("%d ",變數);注意:結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int n=atoi(argv[1]);
int x=0;
while(x
if(n%x==0)
printf("%d ",x);
}
}
請寫出一個函數,用來計算以下的數學式:
輸出格式:printf("%d",變數);
#include
double abc(int);
main(int argc,char*argv[])
{
int n=atoi(argv[1]);
printf(“%lf “,abc(n));
}
double abc(int n)
{
double x,y;
for(x=0,y=1;n>0;n--){
y*=2;
x+=1/y;
}
return x;
}輸入兩個數字n,m求其最大公因數EX:參數代24 30則輸出6輸出格式:printf("%d",變數);請按照格式輸出,避免批改錯誤!!#include
main(int argc, char *argv[]){int n,m;n = atoi(argv[1]);
m = atoi(argv[2]);
int x=1;
while(x>0){
x=m%n; m=n;
n=x;
}
printf("%d ",m);
}
將輸入之秒數轉換成「時:分:秒」。如輸入10000,則輸出02:46:40。
輸出格式:printf("%02d:%02d:%02d ",變數,變數,變數);請按照格式輸出,避免批改錯誤!!結尾請用空白區隔,非\n
#include
main(int argc,char*argv[])
{
int time=atoi(argv[1]);
printf("%02d:%02d:%02d ",time/3600,time/60%60,time%60);
}輸入四個數字,找出最大與最小值。EX:輸入1 25 3 4,則輸出25 1。輸出格式:printf("%d %d ",變數,變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n#include
main(int argc, char *argv[]){int n[argc],i;for(i=1;i
int max,min;
for(max=min=0,i=1;i
}
printf("%d %d ",n[max],n[min]);
} 假設一條繩子有n公尺長,每天減去一半的長度,請問需要花費幾天的時間,繩子的長度會短於5公尺?EX:代入數值3000則輸出10輸出格式:printf("%d",變數);請按照格式輸出,避免批改錯誤!!#include
main(int argc, char *argv[]){int n = atoi(argv[1]);
int x=1;
while(n>5){
n=n/2;
x=x+1;
}
printf("%d",x);
} 請寫出一個函數,把整數轉成2進位數字。如輸入 192,則輸出 11000000。輸出格式:printf("%s",變數);請按照格式輸出,避免批改錯誤!!#include
void itob( int num , char b[] ){
int x,y,z;
for(x=0;num>0;num/=2,x++) b[x]=num%2==0?0x30:0x31;
b[x]=0;
for(x--,y=0;y
b[x]=b[y];
b[y]=z;
}
} 請寫出將攝氏溫度n轉換為華氏溫度公式:
EX:代入數值30則輸出62.000000輸出格式:printf("%f",變數);請按照格式輸出,避免批改錯誤!!#include
main(int argc, char *argv[]){
int n = atoi(argv[1]);
float f;
f=9.0/5*n+32;
printf("%f",f);
} 寫一支程式來輸出從n到m年有潤年的年份Hint:能被400整除或者能被4整除而不能被100整除的年份EX:參數代1960 1970則輸出1960 1964 1968輸出格式:printf("%d ",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n#include
main(int argc, char *argv[]){int n = atoi(argv[1]);int m = atoi(argv[2]);
for(;n<=m;n++) if(n%4==0&&n%100!=0n%400==0) printf("%d ",n);
} 輸出數值n的所有質因數代入數值 :34輸出數值:2 17輸出格式:printf("%d ",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n#include
main(int argc, char *argv[]){
int n = atoi(argv[1]);
int x,y;
for(x=2;x<=n;x++) for(y=0;n%x==0;n/=x,y++) if(y==0) printf("%d ",x);
} 計算 1 + 2 + ... + n = ﹖EX:輸入10,則輸出 55。輸出格式:printf("%d ",變數);請按照格式輸出,避免批改錯誤!!注意:結尾請用空白區隔,非\n#include
main(int argc, char *argv[]){
int n = atoi(argv[1]);
int x,y;
while(x
y=y+x;
}
printf("%d ",y);
}
輸出1+3+5+....+n的總和
EX:參數代27則輸出196
輸出格式:printf("%d",變數);請按照格式輸出,避免批改錯誤!!
#include
main(int argc, char *argv[]){
int n = atoi(argv[1]);
int x=1,y;
while(x<=n){
y=y+x;
x=x+2;
}
printf("%d",y);
}
請寫出一個函數,把字串數字轉成真正數字,即atoi()函式功能。如輸入 192,則輸出 192。
輸出格式:printf("%d",變數);請按照格式輸出,避免批改錯誤!!
#include
int abc(char s[]);
main(int argc, char *argv[]){
int i = abc(argv[1]);
printf("%d ",i);}
int abc(char s[]){
int x,y=0;
for(x=0;s[x]>='0'&&s[x]<='9';x++) y=10*y+(s[x]-'0');
return y;
}
請寫出一個函數,把整數轉成8進位數字。如輸入 192,則輸出 300。
輸出格式:printf("%s",變數);請按照格式輸出,避免批改錯誤!!
#include
void itoo( int num , char o[] );
main(int argc, char *argv[]){
int number = atoi(argv[1]);
char o[33];
itoo(number,o);
printf("%s",o);
}
void itoo(int num,char o[]){
int x,y,z;
for(x=0;num;num/=8,x++) o[x]='0'+num%8;
o[x]=0;
for(x--,y=0;y
o[x]=o[y];
o[y]=z;
}
}
請自行編寫相加函數,計算a+b
EX:代入數值:3 5
則輸出:8
printf("%d",變數);請按照格式輸出,避免批改錯誤!!
#include
int add(int,int);
main(int argc, char *argv[]){
int a,b;
a = atoi(argv[1]);
b = atoi(argv[2]);
printf("%d",add(a,b));
}
int add(int a,int b){
return a+b;
}
請寫出一個函數,用來把數字3位為一個逗號。如輸入12345,則輸出12,345。
#include
void comma(int num,char str[] );
main(int argc, char *argv[]){
int number = atoi(argv[1]);
char num[32];
comma(number,num);
printf("%s",num);
}
void comma(int num,char str[]){
int x,y,z;
for(x=0;num;x++,num/=10){
if((x+1)%4==0) str[x++]=',';
str[x]='0'+num%10;
}
str[x]=0;
for (y=0,--x; y
str[x]=str[y];
str[y]=z;
}
}
