30、,str);
}
20、 求出字符數(shù)組 ss 中存儲(chǔ)的字符串中指定字符的個(gè)數(shù)。
#include
void main()
{
int fun(char a[],char ch);
char a[100],ch;
printf("\nPlease enter a string:");
gets(a);
printf("\nPlease enter a char:");
ch=getchar();
printf("The number is:%d\n",fun(a,ch));
}
int fun(char a[],char ch)
{
int i,
31、j=0;
for(i=0;a[i]!='\0';i++)
if(a[i]==ch)
j++;
return j;
}
#include
void main()
{
char a[100],ch;
int i,j=0;
printf(" 輸入字符串: ");
gets(a);
printf("\n");
printf(" 輸入要查找的字符 :");
ch=getchar();
for(i=0;a[i]!='\0';i++)
if(a[i]==ch)
j++;
printf("\n");
printf(" 字符串 a 中指定字符的個(gè)數(shù) :%
32、d\n",j); }
21、輸入一行字符,分別統(tǒng)計(jì)出其中的大小寫字母、空格、數(shù)字和其他字符的個(gè) 數(shù)。
#include
void main()
{
int i=0,j=0,k=0,l=0;
char c;
printf(" 輸入一行字符: \n");
while((c=getchar())!='\n')
{
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
i++;
else
if(c>='0'&&c<='9')
j++;
else
if(c==' ')
k++;
else
l++;
}
printf("
33、大 小 寫 字 母 數(shù) :i=%3d\n 數(shù) 字 數(shù) :j=%3d\n 空 格 數(shù) :k=%3d\n 其 他 符 號(hào)
數(shù):l=%3d\n",i,j,k,l); }
22、將 5 行 6 列的二維數(shù)組中的數(shù)據(jù),按列的順序依次放到一個(gè)一維數(shù)組中。
#include
void main()
{
int a[5][6]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
1,2,3,4,5,6,7,8,9,10};
int b[30];
int i,j,k=0;
for (j=0;j<6;j++)
{
f
34、or(i=0;i<5;i++)
{
b[k++]=a[i][j];
}
}
printf(" 二維數(shù)組: \n");
for (i = 0; i < 5; i++)
{
for(j=0;j<6;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
printf("\n");
printf(" 一維數(shù)組 :\n");
for (i= 0;i
void fun( int (*s)[4], int *b)
{
35、
int i,j,k=0; for(j=0;j<4;j++) for(i=0;i<3;i++)
{
b[k]=*(*(s+i)+j);
k++;
}
b[k]= '\0';
}
main()
{
int a[30],w[3][4]={{1,2,3,4},{4,5,6,7},{6,7,8,9}};
int i,j;
printf(" 輸出數(shù)組 w:\n");
for(i=0; i<3; i++)
{
for(j=0;j<4; j++) printf("%3d",w[i][j]);
printf("\n");
}
fun(w,a);
printf(" 按列的順
36、序依次放到一個(gè)一維數(shù)組 b: \n");
for(i=0;i<12;i++) printf("%3d",a[i]);
printf("\n\n");
}
23、求兩個(gè)2X 3和3X 2的矩陣之積,并把結(jié)果顯示出來(lái)
#include
void main()
{
int a[2][3],b[3][2],c[2][2]={0},i,j,x;
printf(" 輸入一個(gè) 2 行 3 列的矩陣 a:\n"); for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{ scanf("%d",&a[i][j]); printf("%5d",a[i]
37、[j]);
}
}
printf(" 輸入一個(gè) 3 行 2 列的矩陣 b:\n");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",&b[i][j]); printf("%5d",b[i][j]);
}
printf("\n");
}
printf("a*b=:\n");
for(i=0;i<2;i++)
{ for(j=0;j<2;j++)
{
for(x=0;x<3;x++) c[i][j]+=a[i][x]*b[x][j];
printf("%5d",c[i][j]);
}
printf("\n")
38、;
}
}
24、定義了一個(gè)6X6的二維數(shù)組,并進(jìn)行初始化。將數(shù)組右上半三角元素中的 值乘以 10。
#include
void fun(int a[][6]);
void main()
{
int i,j;
int a[6][6];
printf("array a:\n");
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
a[i][j]=i+j+1;
printf("%3d",a[i][j]);
}printf("\n");
}
fun(a);
printf(" 經(jīng)過(guò)處理后的數(shù)組元素 array a:\n
39、");
for(i=0;i<6;i++)
for(j=0;j<6;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
}
void fun(int a[][6])
{
int i,j;
for(i=0;i<6;i++)
for(j=0;j<6;j++)
{
if(i
void main()
{
int i,j;
int a[6][6];
printf("array a:\n");
for(i=0;i<6;i++)
40、
{
for(j=0;j<6;j++)
{ a[i][j]=i+j+1;
printf("%3d",a[i][j]);
}
printf("\n");
}
array a:\n");
printf(" 經(jīng)過(guò)處理后的數(shù)組元素
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(i
void main()
{
int i,
41、j;
int
a[5][6]={{4,5,7,8,1,6},{8,4,6,5,1,5},{7,8,9,4,5,6},{1,2,3,4,5,6},{1,2,3,6,5,2}}
J
int b[6][5];
printf("array a:\n");
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
printf("%3d",a[i][j]); b[j][i]=a[i][j];
}
printf("\n");
}
printf("a 的轉(zhuǎn)置矩陣 array b:\n");
for(i=0;i<6;i++)
{
for(j=0;j<5;j+
42、+)
{
printf("%3d",b[i][j]);
}
printf("\n");
}
}
26、將兩個(gè)兩位數(shù)的正整數(shù) a,b 合并成一個(gè)整數(shù)放在 c 中。合并的方式是:將 a 數(shù)的十位和個(gè)位依次放在 c 數(shù)的千位和十位上, b 數(shù)的十位和個(gè)位數(shù)依次放在 c 數(shù)的百位和個(gè)位上。
#include
void main()
{
int a,b,c,i,j,k,l;
printf(" 輸入 a,b 的值: ");
scanf("%d%d",&a,&b);
i=a/10;
j=a%10;
k=b/10;
l=b%10;
c=1000*i+k*1
43、00+j*10+l;
printf(" 兩個(gè)兩位數(shù)的正整數(shù) a,b 合并成一個(gè)整數(shù)為: c=%d\n",c);
}
27、編寫一個(gè)函數(shù) fun ,它的功能是:實(shí)現(xiàn)兩個(gè)字符串的連接 ( 不使用庫(kù)函數(shù)
strcat) ,即把 p2 所指的字符串連接到 p1 所指的字符串后。主函數(shù)中僅僅輸入 和輸出。
#include
#include
int fun(char a[],char b[])
{
int i=0,j=0;
while(a[i++]!='\0');
i--;
while((a[i++]=b[j++])!='\0');
ret
44、urn (a[i]);
}
int main()
{
char a[100],b[100];
printf(" 請(qǐng)輸入一串字符 a:");
gets(a);
printf("\n");
printf(" 請(qǐng)?jiān)佥斎胍淮址?b:");
gets(b);
printf("\n");
fun(a,b);
printf(" 新字符串為 :");
puts(a); printf("\n");
}
28、請(qǐng)編寫函數(shù)fun,該函數(shù)的功能是:實(shí)現(xiàn)b=a+aT,即把矩陣a加上a的轉(zhuǎn)置, 存放在矩陣b中。計(jì)算結(jié)果在main函數(shù)中輸出(a為一個(gè)3行3列的整型數(shù)組)< #include
45、
void fun( int a[3][3], int b[3][3])
{
int i,j, at[3][3];
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
at[i][j]=a[j][i];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[i][j]=a[i][j]+at[i][j];
}
main( )
{
int a[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}, t[3][3] ;
int i, j,at[3][3];
printf(" 輸出一個(gè) 3*
46、3 的矩陣 a:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",a[i][j]);
at[i][j]=a[j][i];
}
printf("\n");
}
printf(" 輸出 a 的轉(zhuǎn)置矩陣 at:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%5d",at[i][j]);
}
printf("\n");
}
printf("\n a+at=\n");
fun(a, t) ;
for (i = 0 ; i < 3 ; i++)
47、
{
for (j = 0 ; j < 3 ; j++)
printf("%7d", t[i][j]) ;
printf("\n") ;
}
}
29、依次輸出 200 以(包含 200)能被 5 整除但不能被 15整除的自然數(shù)。
#include
void main()
int i;
for(i=1;i<=200;i++)
{
if(i%5==0&&i%15!=0)
printf("i=%d\n",i);
}
}
30、編寫函數(shù) fun ,該函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩 一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列, 函數(shù)返
48、回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
#include
int fun(int a[],int n)
{
int i,j;
for(i=1,j=0;i
49、組中數(shù)據(jù) :");
n=fun(a,n);
for(i=0;i
void fun( int
50、 a[], int b[])
{
int i,j;
for(j=0;j<11;j++)
b[j]=0;
for(i=0;i<30;i++)
if(a[i]>=0&&a[i]<=9)
b[0]+=1;
else
if(a[i]>=10&&a[i]<=19)
b[1]+=1;
else if(a[i]>=20&&a[i]<=29) b[2]+=1;
else if(a[i]>=30&&a[i]<=39) b[3]+=1;
else
if(a[i]>=40&&a[i]<=49)
b[4]+=1;
else if(a[i]>=50&&a[i]<=59) b[5]+=1;
51、
else if(a[i]>=60&&a[i]<=69) b[6]+=1;
else
if(a[i]>=70&&a[i]<=79)
b[7]+=1;
else if(a[i]>=80&&a[i]<=89) b[8]+=1;
else if(a[i]>=90&&a[i]<=99) b[9]+=1;
else
b[10]+=1;
}
void main()
{
int i, d[11];
int age[30]={1,2,56,78,10,25,87,96,31,110,45,65,42,73,23, 118,90,1,10,23,34,45,56,67,68,78,89
52、,91,46,97}; printf(" 輸出 30 個(gè)年齡數(shù) :\n");
for(i=0; i<30; i++) printf("%4d",age[i]);
printf("\n\n");
printf(" 各年齡段的人數(shù)為: \n");
fun( age, d);
for(i=0;i<10;i++)
printf("%3d--%3d: %2d\n", i*10, i*10+9, d[i]);
printf("Over 100: %2d\n", d[10]);
}
#include
void main()
{
int age[30],i,d[11]
53、={0};
printf(" 輸入 30 個(gè)數(shù)據(jù): ");
for(i=0;i<30;i++)
scanf("%d",&age[i]);
for(i=0;i<30;i++)
{
if(age[i]>99)
d[10]++;
else
d[age[i]/10]++;
}
printf(" 額度按人數(shù): \n");
for(i=0;i<11;i++)
printf("%3d",d[i]);
}
32、編寫函數(shù) fun ,該函數(shù)的功能是:統(tǒng)計(jì)一行字符串中單詞的個(gè)數(shù),作為函數(shù) 值返回。 一行字符串在主函數(shù)中輸入, 規(guī)定所有單詞由小寫字母組成, 單詞之間 由若干個(gè)空格格開,
54、一行的開始沒有空格。
#include
#include
int fun(char *s)
{
int i=1,c=0;
while(s[i])
{
if(s[i]==' '&&s[i-1]!=' ')
c++;
i++;
}
return c;
}
main()
{
char b[100];
int num=0; printf("Enter a string :\n"); gets(b);
num=fun( b );
printf("The number of word is : %d\n\n",num);
}
55、33、 計(jì)算并輸出給定整數(shù)n的所有因子(不包括1與自身)之和。規(guī)定n的值不大 于 1 000( n 由鍵盤輸入)。
#include
void main()
{
int i,n,sum=0;
printf(" 請(qǐng)輸入 :n="); scanf("%d",&n);
while(n>1000) { printf(" 輸入錯(cuò)誤,請(qǐng)重新輸入 :n=");
scanf("%d",&n);
}
for(i=2;i
56、s=1/1*2+1/2*3+…+1/n( n+1)。
#include
void main()
{
float i,n,t,s=0;
printf(" 輸入 n 的數(shù)值: \n"); scanf("%f",&n);
for(i=1;i<=n;) { t=1/(i*(i+1)); s=s+t; i++;
} printf("s=%f\n",s);
35、將字符數(shù)組 s 中字符串中下標(biāo)為偶數(shù)的字符刪除, 并用字符串的形式輸出結(jié) 果。
#include
#include
void main()
{
char str
57、[100];
int i,j=0;
printf(" 輸入字符串: \n");
gets(str);
for(i=0;i
#include
void fun(char *s,char t[])
{
int i,j=0,n;
n=strlen(s);
for(i=0;i
58、[j]=s[i];
j++;
}
t[j]='\0';
}
void main()
{
char s[100], t[100];
printf("\nPlease enter string S:");
gets(s);//scanf("%s", s);
fun(s, t);
printf("\nThe result is : %s\n", t);
}
36、編程序:通過(guò)一個(gè)函數(shù)判斷字符串是否為回文 ?若是則函數(shù)返回 1,主函數(shù)
中輸出yes,否則返回0,主函數(shù)中輸出no?;匚氖侵疙樧x和倒讀都是一樣的字 符串。
#include
void ma
59、i n()
{
char a[100];
printf(" 請(qǐng)輸入字符串:\n”);
sca nf("%s",a);
if(fun( a)==1)
prin tf("Yes\n ”);
else
prin tf("No\n");
}
int fun( char str[])
{int i,n;
n=strle n(str); 〃n 表示字符串中字符的個(gè)數(shù)
for(i=0; i<=n/2;i++)
{ if(str[i]!=str[ n-i-1]) // 比較字符串中相對(duì)稱的字符是否相同
return 0;
}
return 1;
}
n
37、編程實(shí)現(xiàn)由
60、主函數(shù)輸入 m, n并輸出最終結(jié)果,按下述公式計(jì)算 5的值:
n
cm
m!
n!(m n)!,其中函數(shù)f的功能是計(jì)算階乘,函數(shù)g的功能是求cm的值
#i nclude
void mai n()
{
int g(i nt m, int n);
int m,n,c;
printf("輸入 m,n 的值:\n"); scan f("%d%d",&m,&n);
c=g(m, n);
prin tf("c=%d\n",c);
}
in t g(m, n)
{
int f(n);
int b;
b=f(m)/f( n) /f(m-n);
retu
61、rn b;
}
int f(n)
{
int a=1,i;
for(i=1;i<=n;i++)
a*=i;
return a;
}
38、編寫一個(gè)函數(shù) fun ,它的功能是:將字符串 a 中所有下標(biāo)為奇數(shù)位置上的字 母轉(zhuǎn)換為大寫 (若該位置上不是字母, 則不轉(zhuǎn)換 ) 。主函數(shù)只能用來(lái)輸入輸出字符 串。
#include
#include
void fun ( char *a)
{
int i,n;
n=strlen(a);
for(i=1;i='a'&&a[i]<='z')
a[i
62、]= a[i]-32;
}
void main( )
{
char b[81];
printf("\n 輸入一行字符串 a:\n");
gets( b );
fun( b );
printf( "\n 將字符串 a 中所有下標(biāo)為奇數(shù)位置上的字母轉(zhuǎn)換為大寫 : \n%s\n", b );
}
39、計(jì)算并輸出給定數(shù)組 ( 長(zhǎng)度為 5) 中每相鄰兩個(gè)元素之平均值的平方根之和。
#include
#include
void main()
{
int i;
double s;
double a[5]={1,7,11,21,29};
63、
for(i=0,s=0;i<4;i++)
{ s+=sqrt((a[i]+a[i+1])/2);
}
printf(" 每相鄰兩個(gè)元素之平均值的平方根之和為: s=%f\n",s);
}
40、用指針?lè)椒ň帉懗绦?,輸?3 個(gè)整數(shù),將它們按由小到大的順序排列輸出
#include
void main()
{
void fun(int *q1,int *q2,int *q3); int a,b,c,*p1,*p2,*p3;
printf(" 請(qǐng)輸入 a,b,c 的數(shù)值 :"); scanf("%d%d%d",&a,&b,&c);
p1=&a;
p2=
64、&b;
p3=&c; fun(p1,p2,p3); printf("\n");
printf(" 由小到大的順序排列為: %5d%5d%5d\n",a,b,c);
}
void fun(int *q1,int *q2,int *q3)
{
void swap(int *pt1,int *pt2);
if(*q1>*q2) swap(q1,q2);
if(*q1>*q3) swap(q1,q3);
if(*q2>*q3) swap(q2,q3);
}
void swap(int *pt1,int *pt2)
{
int t;
t=*pt1;
*pt1=*pt2;
65、*pt2=t;
}
41、計(jì)算并輸出 100(包括 100)以能被 3或 4整除的所有自然數(shù)之和
#include
void main()
{
int i,n=0,sum=0; for(i=1;i<=100;i++)
{ if((i%3==0)||(i%4==0)) {
printf("i=%d ",i); n=n+1; sum=sum+i;
}
if(n%10==0)
printf("\n");
}
printf("\n100
}
以所有可以整除 '3' 或'4' 的自然數(shù)之和為 :sum=%d\n",sum);
42、有一函數(shù)
x
66、 (x
1)
y 2x 1 (1 x
10)
3x 11 (x
10)
用 scanf 函數(shù)輸入 x 的值,求 y 值。
#include
void main()
{
float x,y;
printf(" 請(qǐng)輸入 x 的數(shù)值 :"); scanf("%f",&x);
if(x<1)
y=x;
else
if(x>=10) y=3*x-11;
else
y=2*x-1; printf("y=%f\n",y);
}
43、輸入兩個(gè)正整數(shù)m和n,求它們的最大公約數(shù)和最小公倍數(shù)
#include
void main()
{
int m,n,i,s,j;
printf(" 請(qǐng)輸入 m,n 的數(shù)值 :"); scanf("%d%d",&m,&n); for(i=1;i<=m&&i<=n;i++) {
if(m%i==0&&n%i==0)
s=i;
if(m>=n)j=m;
else
j=n;
for(;!(j%m==0&&j%n==0);j++);
printf("\n 最大公約數(shù)為 :s=%4