30、 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,j=0;
for(i=0;a[i]!='\0';i++)
if(a[i]==ch)
j++;
re
31、turn 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ù):%d\n",j);
}
21、輸入一行字符,分別統(tǒng)計(jì)出其中的大小寫字母、空格、數(shù)字和其他字符的個(gè)
數(shù)。
32、#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(" 大 小 寫 字 母 數(shù) :i=%3d\n 數(shù) 字 數(shù) :j=%3d\n 空 格 數(shù) :k=%3d\n 其
33、他 符 號
數(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++)
{
for(i=0;i<5;i++)
{
b[k++]=a[i][j];
}
}
printf(" 二維
34、數(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)
{
int i,j,k=0;
for(j=0;j<4;j++)
for(i
35、=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(" 按列的順序依次放到一個(gè)一維數(shù)組 b: \n");
for(i=0;i<12;i+
36、+)
printf("%3d",a[i]);
printf("\n\n");
}
23、求兩個(gè)2X3和3X2的矩陣之積,并把結(jié)果顯示出來
#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][j]);
}
printf("\n");
}
printf("
37、 輸入一個(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");
}
}
24、定義了一個(gè)6X6
38、的二維數(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)過處理后的數(shù)組元素 array a:\n");
for(i=0;i<6;i+
39、+)
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++)
{
for(j=0;j<6;j+
40、+)
{
a[i][j]=i+j+1;
printf("%3d",a[i][j]);
}
printf("\n");
}
printf(" 經(jīng)過處理后的數(shù)組元素 array a:\n");
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}} ;
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 中。合并的方式是:將
數(shù)的十位和個(gè)位依次放在c 數(shù)的千位和十位上, b 數(shù)的十位和個(gè)位數(shù)依次放在
數(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*100+j*1
43、0+l;
printf(" 兩個(gè)兩位數(shù)的正整數(shù)a,b 合并成一個(gè)整數(shù)為: c=%d\n",c);
}
27、編寫一個(gè)函數(shù)fun ,它的功能是:實(shí)現(xiàn)兩個(gè)字符串的連接( 不使用庫函數(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');
return (a[i
44、]);
}
int main()
{
char a[100],b[100];
printf(" 請輸入一串字符a:");
gets(a);
printf("\n");
printf(" 請?jiān)佥斎胍淮址鸼:");
gets(b);
printf("\n");
fun(a,b);
printf("新字符串為 :");
puts(a);
printf("\n");
}
28、 請編寫函數(shù)fun, 該函數(shù)的功能是: 實(shí)現(xiàn)b=a+aT, 即把矩陣 a 加上 a 的轉(zhuǎn)置,
存放在矩陣b 中。 計(jì)算結(jié)果在main 函數(shù)中輸出 ( a 為一個(gè) 3 行 3 列的整型數(shù)組)
45、#include
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("
46、輸出一個(gè) 3*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
47、; i++)
{
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、:");
n=fun(a,n);
for(i=0;i
void fun( in
50、t 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
51、[5]+=1;
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,
52、56,67,68,78,89,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 ag
53、e[30],i,d[11]={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ī)定所有單詞由小寫字母組成, 單詞
54、之間
由若干個(gè)空格格開,一行的開始沒有空格。
#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\
55、n",num);
}
33、 計(jì)算并輸出給定整數(shù)n 的所有因子( 不包括 1 與自身 ) 之和。 規(guī)定 n 的值不大
于 1000( n 由鍵盤輸入)。
#include
void main()
{
int i,n,sum=0;
printf(" 請輸入 :n=");
scanf("%d",&n);
while(n>1000)
{
printf(" 輸入錯(cuò)誤,請重新輸入 :n=");
scanf("%d",&n);
}
for(i=2;i
56、",sum);
}
34、計(jì)算并輸出下列級數(shù)和: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
57、
void main()
{
char str[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);
58、
for(i=0;i
59、 符串。
#include void main()
{
char a[100];
printf("請輸入字符串:\n");
scanf("%s",a);
if(fun(a)==1) printf("Yes'n");
else printf("No'n");
}
int fun(char str[])
{int i,n;
n=strlen(str); //n表示字符串中字符的個(gè)數(shù)
for(i=0; i<=n/2;i++)
{ if(str[i]!=str[n-i-1]) 〃比較字符串中相對稱的字符是否相同
return 0;
}
return
60、1;
}
n 一一
37、編程實(shí)現(xiàn)由主函數(shù)輸入成n并輸出最終結(jié)果,按下述公式計(jì)算cm的值:
n m!
cm…
n!(m n)!,其中函數(shù)f的功能是計(jì)算階乘,函數(shù)g的功能是求cm的值。 #include
void main()
{
int g(int m, int n);
int m,n,c;
printf("輸入 m,n 的值:\n");
scanf("%d%d",&m,&n);
c=g(m,n);
printf("c=%d\n",c);
}
int g(m,n)
{
int f(n);
int b;
b=f(m)/f(n)/f(m-
61、n);
return 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ù)只能用來輸入輸出字符 串。
#include
#include void fun ( char *a)
{
int i,n;
n=strlen(a);
for(i=1;i='a'&&a[i]<=
62、'z') a[i]= 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ù)組(長度為 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、用指針方法編寫程序,輸入3 個(gè)整數(shù),將它們按由小到大的順序排列輸出。
#include
void main()
{
void fun(int *q1,int *q2,int *q3);
int a,b,c,*p1,*p2,*p3;
printf(" 請輸入 a,b,c 的數(shù)值 :");
scanf("%d%d%d",&a,&b,&c);
p1=&a;
p
64、2=&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=
65、*pt2;
*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
66、、有一函數(shù)
x (x 1)
y 2x 1 (1 x 10)
3x 11 (x 10)
用 scanf 函數(shù)輸入 x 的值,求 y 值。
#include
void main()
{
float x,y;
printf(" 請輸入 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("請輸入 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("\