天津工业大学计算机专业C语言经典笔记.docx

上传人:b****9 文档编号:26169242 上传时间:2023-06-17 格式:DOCX 页数:20 大小:19.33KB
下载 相关 举报
天津工业大学计算机专业C语言经典笔记.docx_第1页
第1页 / 共20页
天津工业大学计算机专业C语言经典笔记.docx_第2页
第2页 / 共20页
天津工业大学计算机专业C语言经典笔记.docx_第3页
第3页 / 共20页
天津工业大学计算机专业C语言经典笔记.docx_第4页
第4页 / 共20页
天津工业大学计算机专业C语言经典笔记.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

天津工业大学计算机专业C语言经典笔记.docx

《天津工业大学计算机专业C语言经典笔记.docx》由会员分享,可在线阅读,更多相关《天津工业大学计算机专业C语言经典笔记.docx(20页珍藏版)》请在冰豆网上搜索。

天津工业大学计算机专业C语言经典笔记.docx

天津工业大学计算机专业C语言经典笔记

天津工业大学计算机专业C语言经典笔记

天津工业大学计算机专业C语言经典笔记

1.将一个二维数组的行和列的元素互换存到另一个数组里。

#include

main()

{inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2],i,j;

printf("arraya:

\n");

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

{for(j=0;j<=2;j++)

{printf("%5d",a[i][j]);

b[j][i]=a[i][j];

}

printf("\n");

}

printf("arrayb:

\n");

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

{for(j=0;j<=1;j++)

printf("%5d",b[i][j]);

printf("\n");

}

}

2.利用冒泡法对输入的10整数进行从小到大排序。

#include

main()

{inta[10];

inti,j,t;

printf("inputnumbers:

\n");

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

scanf("%d",&a[i]);

for(j=0;j<9;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("thesortednumbers:

\n");

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

printf("%d",a[i]);

printf("\n");

}

3.利用数组来处理求Fibonaai数列问题。

#include

main()

{inti;

intf[20]={1,1};

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

f[i]=f[i-1]+f[i-2];

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

{if(i%5==0)printf("\n");

printf("%12d",f[i]);

}

printf("\n");

}

4.求100-999之间的水仙花数。

#include

main()

{inti,k,m,n;

for(i=100;i<1000;i++)

{k=i%10;

m=i/10%10;

n=i/10/10;

if(i==k*k*k+m*m*m+n*n*n)

printf("%d\n",i);

}

}

5.求二维数组的最大值。

#include

main()

{inta[4][4];

inti,j;

intmax(inta[4][4]);

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

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

printf("max=%d\n",max(a));

}

intmax(inta[4][4])

{inti,j,b;

b=a[0][0];

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

for(j=0;j<4;j++)

if(a[i][j]>b)

b=a[i][j];

returnb;

}

6.求字符串逆序。

#include

main()

{inti,n;

chars[80],temp;

scanf("%s",s);

n=strlen(s);

for(i=0;i

{temp=s[i];s[i]=s[n-1-i];s[n-1-i]=temp;}

printf("%s\n",s);

}

7.求字符串长度。

#include

main()

{chars[80];

intstr(char*s);

scanf("%s",s);

printf("thsstringnumberis:

%d\n",str(s));

}

intstr(char*s)

{inti;

for(i=0;s[i]!

='\0';i++);

returni;

}

8.写一函数,将两个字符串连接。

#include

voidfun(chars[],chart[])

{inti=0,j=0;

while(s[i])i++;

while(t[j])

{s[i]=t[j];i++;j++;}

s[i]='\0';

}

main()

{chars[80],t[80];

gets(s);

gets(t);

fun(s,t);

printf("%s\n",s);

}

9.求同时能被2、3、5、7整除的数(1-500)。

#include

main()

{inti;

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

if(i%2==0&&i%3==0&&i%5==0&&i%7==0)

printf("%d\n",i);

}

10.求3-100的素数。

#include

main()

{inti,j,w;

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

{w=0;j=2;

do

{if(i%j==0)w=1;

j++;

}while(j

if(w==0)printf("%3d",i);

}

printf("\n");

}

11.回文数问题。

#include

intfun(intn)

{intn1,n2;

n1=n;n2=0;

while(n!

=0)

{n2=n2*10+n%10;

n/=10;

}

if(n1==n2)return1;

return0;

}

main()

{intnum;

scanf("%d",&num);

if(fun(num))printf("yes\n");

elseprintf("no\n");

}

12.判断一个字符串是否为回文。

#include

#include

main()

{intfunc(chars[]);

charstr[100];

gets(str);

if(func(str)==1)printf("yes!

\n");

elseprintf("no!

\n");

}

intfunc(chars[])

{intl,i;

l=strlen(s);

for(i=0;i

if(s[i]!

=s[l-i-1])return0;

return1;

}

13.将字符串中的小写英文字母转换为大写英文字母。

#include

char*p(char*s)

{inti;

for(i=0;s[i]!

='\0';i++)

if(s[i]>='a'&&s[i]<='z')

s[i]-=32;

returns;

}

main()

{chars[100];

gets(s);

puts(p(s));

}

14.一维数组有10个元素,将其逆序存放。

#include

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10},i,t;

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

{t=a[i];a[i]=a[10-i-1];a[10-i-1]=t;}

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

printf("a[%d]=%d\n",i,a[i]);

}

15.输入两个整数m和n,求其最大公约数和最小公倍数。

#include

main()

{intm,n,p,r,t;

scanf("%d%d",&m,&n);

if(m>n){t=m;m=n;n=t;}

p=m*n;

while(m!

=0)

{r=n%m;

n=m;

m=r;

}

printf("%d,%d\n",n,p/n);

}

16.用

/4≈1-1/3+1/5-1/7+…公式求

的近似值直到最后一项的绝对值小于10-6为止。

#include

#include

main()

{inti=1,j=1;

floatpi=0;

while(fabs(1.0/i*j)>=0.000001)

{pi+=1.0/i*j;

i+=2;

j=-j;

}

pi*=4;

printf("pi=%f\n",pi);

}

17.以下程序的功能是:

求斐波那契数列的:

1,1,2,3,5,8,………的前40个数,即

F1=1(n=1)

F2=1(n=2)

Fn=Fn-1+Fn-2(n>=3)

#include

main()

{inti;

longf1=1,f2=1;

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

{printf("%12ld%12ld",f1,f2);

if(i%2==1)printf("\n");

f1=f1+f2;

f2=f2+f1;

}

}

18.求1!

+2!

+3!

+4!

+……20!

#include

main()

{inti;

floatt=1,s=0;

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

{t*=i;

s+=t;

}

printf("%f\n",s);

}

19.以下程序的功能是:

输出以下图案

*

***

*****

*******

*****

***

*

#include

main()

{inti,j,k;

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

{for(j=1;j<=4-i;j++)

printf("");

for(k=1;k<=2*i-1;k++)

printf("*");

printf("\n");

}

for(i=3;i>=1;i--)

{for(j=1;j<=4-i;j++)

printf("");

for(k=1;k<=2*i-1;k++)

printf("*");

printf("\n");

}

}

20.求一个3×3的整型矩阵对角线之和

#include

main()

{inta[3][3],i,j,sum=0;

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

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

scanf("%d",&a[i][j]);

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

sum=sum+a[i][i];

printf("%d\n",sum);

}

21.输出以下的杨辉三角的前10行

1

11

121

1331

14641

……………………………

………………………………

#include

main()

{inta[10][10],i,j,t;

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

{a[i][0]=1;a[i][i]=1;}

for(i=2;i<10;i++)

for(j=1;j

a[i][j]=a[i-1][j]+a[i-1][j-1];

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

{for(j=0;j<=i;j++)

printf("%4d",a[i][j]);

printf("\n");

}

}

22.写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。

#include

intfun(intx)

{inti,t=1;

for(i=2;i

if(x%i==0)t=0;

returnt;

}

main()

{intx;

scanf("%d",&x);

if(fun(x))printf("Yes\n");

elseprintf("No\n");

}

23.写一函数,使给定的一个二维整型数组数组(3×3)转置,即行列互换

#include

voidfun(inta[3][3])

{inti,j,t;

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

for(j=0;j

{t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}

}

main()

{inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;

fun(a);

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

{for(j=0;j<3;j++)

printf("%3d",a[i][j]);

printf("\n");

}

}

24.利用递归方法求数组的最大值

intfun(inta[],intn)

{intmax;

if(n==1)max=a[0];

elsemax=fun(a,n-1);

if(max

returnmax;

}

main()

{inta[]={1,2,3,4,5};

printf("%d\n",fun(a,5));

}

25.用递归法求m!

#include

longf(intm)

{returnm==0?

1:

m*f(m-1);}

main()

{intm;

scanf("%d",&m);

printf("%ld\n",f(m));

}

26.写出程序的运行结果。

#include

main()

{intt,x,y,z;

x=y=z=1;

t=++x||++y||++z;

printf("%d,%d,%d,%d\n",x,y,z,t);

}

答案:

2,1,1,1

27.写出程序的运行结果。

#include

intm=3;

intf(intx,inty)

{intm=27;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",f(a,b)/m);

}

答案:

2

28.写出程序的运行结果。

#include

main()

{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

inti,(*b)[4];

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

{b=a+i;

printf("%d",*(b[i]+1));

}

printf("\n");

}

答案:

210

29.写出程序的运行结果。

#include

main()

{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},i,j;

int(*p)[4]=a;

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

for(j=0;j<4;j++)

printf("%d",*(*p+j));

printf("\n");

}

答案:

123456789101112

 

30.写出程序的运行结果。

a

b

c

\0

d

e

f

g

h

i

j

\0

d

e

f

g

h

i

j

\0

h

i

j

\0

main()s->

{char*s="abc",*t="defghij";

strcpy(s,t);

printf("%s\n",t);

}

答案:

hijt->

注:

此题属于变量连续的存储空间。

 

31.下列给定表达式与(m)?

a++:

b++等价的是

A.m==0?

a++:

b++B.m==1?

a++:

b++

C.m!

=0?

a++:

b++D.m!

=1?

a++:

b++

答案:

C

32.下列不是死循环的是

A.i=100;

while

(1)

{i=i%100;

i++;

if(i>100)break;

}

B.for(;;);

C.intk=32764;

do

{k++;k++;}

while(k<0);

D.ints=32764;

while((s++%2)||(s%2)s++;

答案:

C

33.在C语言中,若有以下语句:

charb[5],*p=b;

正确的赋值语句是

A.b="abcd";B.*b="abcd";

C.p="abcd";D.*p="abcd";

答案:

C

34.在C语言中,若有以下语句:

structst

{intn;

structst*next;

};

structsta[3]={5,&a[1],7,&a[2],9,’\0’},*p;

p=&a[0];

则表示式值为6的是

A.p++->nB.p->n++

C.(*p).n++D.++(p->n)

答案:

D

35.在不同函数中可以使用的相同的变量(√)。

36.形参为局部变量(√)。

37.一个函数内定义的变量,只在函数内有效(√)。

38.一个函数内的复合语句中定义的变量在本函数内有效(×)。

注:

只是在复合语句内部有效。

39.charstr[]="abc",*p=str;则p和str是完全相同两个指针变量(×)。

注:

p指针名,str是数组名

40.被调用函数结束后系统回收函数中所有变量占据的内存空间(×)。

注:

不回收函数有效的静态变量的内存空间

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1