西南交大上机考试必备c语言题目+源程序代码(精心总结)

2019-04-14 14:09

1.用π/4≈1-1/3+1/5-1/7+…公式求π的近似值,直到某一项的绝对值小于10-6为止 #include #include void main() { int s;

float n,t,pi;

t=1;pi=0;n=1.0;s=1; while(fabs(t)>1e-6) { pi=pi+t; n=n+2; s=-s; t=s/n; } pi=pi*4;

printf(\}

2.求Fibonacci数列前40个数 #include void main() {

long int f1,f2; int i;

f1=1;f2=1;

for(i=1; i<=20; i++)

{ printf(\ if(i%2==0) printf(\ f1=f1+f2; f2=f2+f1; } }

3.删除字符串中的数字字符,以‘#’作为字符串的结束标志 #include #include fun(char *p) { char a[100]; int i,j,k; for(i=0,j=0;*(p+i)!='#';i++) { if(*(p+i)<'0'||*(p+i)>'9')

/*(((s1[i]>='a')&&(s1[i]<='z'))||((s1[i]>='A')&&(s1[i]<='Z')))*/ { a[j++]=*(p+i); k=j; } } a[k]='\\0'; strcpy(p,a); }

void main() { char s1[100]; printf(\请输入随意字符:\\n\ gets(s1); fun(s1); puts(s1); printf(\}

4.输出10000—20000之间个位数是7的素数个数,并将其中最大的素数返回。 #include #include void main() { int i,j,n,word=0,max; for(i=10000;i<=20000;i++) { if(i==7) { n=sqrt(i); for(j=2;j<=n;j++) { if(i%j==0) break; } if(j>=n+1) { word=word+1; max=i; } } }

printf(\这样的素数有%d个,其中最大的一个是%d.\\n\}

5.统计输入英文字母的个数 #include

void fun(char *tt,int pp[]) { int i; for(i=0;i<26;i++) pp[i]=0; for(;*tt!='\\0';tt++) (pp[*tt-97])++; }

void main() { char aa[1000]; int bb[26],k; printf(\ scanf(\ fun(aa,bb); for(k=0;k<26;k++) printf(\ printf(\}

6.矩阵主对角线元素平方之和 #include int fun(int x[3][3],int y) { int i,j,k; y=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) if(i==j) k=x[i][j]*x[i][j]; y=y+k; } return(y); }

void main() { int i,j; int a[3][3],n; printf(\请输入一个3*3矩阵:\\n\ for(i=0;i<3;i++) { for(j=0;j<3;j++) {

scanf(\ printf(\ } printf(\ } n=fun(a,n); printf(\对角线平方和为:%d\\n\}

7.字符串倒序 #include #include

void fun (char *s, char *t) { int i,k; int s1=strlen(s); /*

for(i=0;i<=s1;i++) { *(t+i)=*(s+i); k=i; 必须在循环体内赋值 }

*/ strcpy(t,s); for(k=s1;k<=2*s1-1;k++) t[k]=s[2*s1-1-k]; t[2*s1]='\\0'; }

void main()

{ char s[100], t[100];

printf(\enter string s:\scanf(\ fun(s, t);

printf(\}

8.将字符串中的字母变成其后的字母,其中z变成a , Z变成A 程序如下:

#include #include void main() { void fun(char a[100],char b[100]); printf(\请输入一个字符串:\\n\ char str[100];char p[100]; gets(str); fun(str,p); puts(p); }

void fun(char a[100],char b[100]) { int i,k; for(i=0;*(a+i)!='!';i++) { if((*(a+i)>='a'&&*(a+i)<='z')||(*(a+i)>='A'&&*(a+i)<='Z')) { if(*(a+i)=='z') *(a+i)='a'; else if(*(a+i)=='Z') *(a+i)='A'; else *(a+i)=*(a+i)+1; } } *(a+i)='\\0'; strcpy(b,a); }

9.非零整数的最大公约数 #include void main() { int i,a,b,c,t; printf(\请输入两个非零正整数:\\n\ scanf(\ printf(\ c=a>b?a:b; for(i=1;i<=c;i++) if((a%i==0)&&(b%i==0))

t=i; printf(\最大公约数为:\\n\ printf(\}

10. 根据以下公式求π(要求满足精度0.0005)的近似值:π/2=1+1/3+(1*2)(/3*5)+(1*2*3)/(3*5*7)+??+(1*2*3*4*??*n)/(3*5*7*??*(2n+1)) #include void main() { float i,k,n,t; float pi,sum=1; for(i=1,k=1,t=1;;i++) { if(k/t<0.00000005) break; k=k*i; t=t*(2*i+1); sum=sum+k/t; } pi=sum*2; printf(\π的值为:%f\\n\}

11.将两个两位数的正整数a,b合并形成一个整数放在c中,合并的方式如:当a=45,b=12时,调用该函数后,c=4152 #include

void fun(int a, int b, long *c) { *c=(a/10)*1000+(b/10)*100+(a)*10+(b); }

main()

{ int a,b; long c;

printf(\a b:\ scanf(\&a, &b);

fun(a, b, &c);

printf(\}

12.初试矩阵加上转置矩阵 #include void main() { int a[3][3]={{1,1,1},{2,2,2,},{3,3,3}}; int b[3][3],c[3][3]; int i,j,t; printf(\初试矩阵为:\\n\ for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(\ printf(\ } printf(\ printf(\转置后的矩阵为:\\n\ for(i=0;i<3;i++) for(j=i;j<3;j++) { t=a[j][i]; b[j][i]=a[i][j]; b[i][j]=t; } for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(\ printf(\ } printf(\ printf(\初试矩阵加上转置矩阵后的矩阵为:\\n\ for(i=0;i<3;i++) { for(j=0;j<3;j++) { c[i][j]=a[i][j]+b[i][j]; printf(\ } printf(\ } printf(\} 13.从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。如当s中的数为:7654321时,t中的数为7531 #include

void fun (long s, long *t) { long i,k,n=10; k=s; for(i=0;i

main()

{ long s, t;

printf(\enter s:\scanf(\&s);

fun(s, &t);

printf(\}

14.冒泡法选择法 #include /*起泡法

void fun ( int n, int *a ) { int i,j,t; for(i=0;ia[j+1]) { t=a[j+1]; a[j+1]=a[j]; a[j]=t; } } */

/*选择法*/

void fun ( int n, int *a ) { int i,j,t; for(i=0;i

void putarr( int n, int *z ) { int i;

for ( i = 1; i <= n; i++, z++ ) { printf( \

if ( i==0 ) printf( \ } printf(\}

main()

{ int aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;

printf( \sorting %d numbers:\\n\n ); putarr( n, aa ); fun( n, aa );

printf( \sorting %d numbers:\\n\n ); putarr( n, aa ); }

15.将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中,高位仍在高位,低位仍在低位。如当s中的数为87653142时,t中的数为8642 #include

void fun (long s, long *t) { long k=1,n,j; for(*t=0,j=1;s>0;) { n=s; if(n%2==0) { *t=*t+n*k; k=k*10; }

s=s-n; /*出错在此处,写成了s=s-n*j; s=s/j; j=j*10 */ s=s/10; /*或者直接写成s=s/10;*/ } }

main()

{ long s, t;

printf(\enter s:\scanf(\&s);

fun(s, &t);

printf(\}

16.将字符串中除了下标为偶数同时asc值也为偶数的字符外,其余全部删除。 #include #include

void fun(char *s, char t[]) {

int k,i,j; k=strlen(s);

for(i=0,j=0;i

t[j]='\\0'; }

main() {

char s[100], t[100]; printf(\enter string S:\scanf(\ fun(s, t);

printf(\}


西南交大上机考试必备c语言题目+源程序代码(精心总结).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:重排反应

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: