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

%d"
a[i]);
3.利用数组来处理求Fibonaai数列问题。
{inti;
intf[20]={1,1};
for(i=2;
20;
f[i]=f[i-1]+f[i-2];
{if(i%5==0)printf("
%12d"
f[i]);
4.求100-999之间的水仙花数。
{inti,k,m,n;
for(i=100;
1000;
{k=i%10;
m=i/10%10;
n=i/10/10;
if(i==k*k*k+m*m*m+n*n*n)
%d\n"
i);
5.求二维数组的最大值。
{inta[4][4];
inti,j;
intmax(inta[4][4]);
4;
a[i][j]);
max=%d\n"
max(a));
intmax(inta[4][4])
{inti,j,b;
b=a[0][0];
if(a[i][j]>
b)
b=a[i][j];
returnb;
6.求字符串逆序。
{inti,n;
chars[80],temp;
%s"
s);
n=strlen(s);
n/2;
{temp=s[i];
s[i]=s[n-1-i];
s[n-1-i]=temp;
%s\n"
7.求字符串长度。
{chars[80];
intstr(char*s);
thsstringnumberis:
str(s));
intstr(char*s)
s[i]!
='
\0'
;
i++);
returni;
8.写一函数,将两个字符串连接。
voidfun(chars[],chart[])
{inti=0,j=0;
while(s[i])i++;
while(t[j])
{s[i]=t[j];
i++;
j++;
s[i]='
{chars[80],t[80];
gets(s);
gets(t);
fun(s,t);
9.求同时能被2、3、5、7整除的数(1-500)。
{inti;
for(i=1;
=500;
if(i%2==0&
&
i%3==0&
i%5==0&
i%7==0)
}
10.求3-100的素数。
{inti,j,w;
for(i=3;
=100;
{w=0;
j=2;
do
{if(i%j==0)w=1;
j++;
}while(j<
i&
w==0);
if(w==0)printf("
%3d"
11.回文数问题。
intfun(intn)
{intn1,n2;
n1=n;
n2=0;
while(n!
=0)
{n2=n2*10+n%10;
n/=10;
if(n1==n2)return1;
return0;
{intnum;
num);
if(fun(num))printf("
yes\n"
elseprintf("
no\n"
12.判断一个字符串是否为回文。
string.h>
{intfunc(chars[]);
charstr[100];
gets(str);
if(func(str)==1)printf("
yes!
no!
intfunc(chars[])
{intl,i;
l=strlen(s);
l/2;
if(s[i]!
=s[l-i-1])return0;
return1;
13.将字符串中的小写英文字母转换为大写英文字母。
char*p(char*s)
if(s[i]>
a'
s[i]<
z'
)
s[i]-=32;
returns;
{chars[100];
puts(p(s));
14.一维数组有10个元素,将其逆序存放。
{inta[10]={1,2,3,4,5,6,7,8,9,10},i,t;
5;
a[i]=a[10-i-1];
a[10-i-1]=t;
a[%d]=%d\n"
i,a[i]);
15.输入两个整数m和n,求其最大公约数和最小公倍数。
{intm,n,p,r,t;
%d%d"
m,&
n);
if(m>
n){t=m;
m=n;
n=t;
p=m*n;
while(m!
{r=n%m;
n=m;
m=r;
%d,%d\n"
n,p/n);
16.用
/4≈1-1/3+1/5-1/7+…公式求
的近似值直到最后一项的绝对值小于10-6为止。
math.h>
{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;
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)
longf1=1,f2=1;
=20;
%12ld%12ld"
f1,f2);
if(i%2==1)printf("
f1=f1+f2;
f2=f2+f1;
18.求1!
+2!
+3!
+4!
+……20!
floatt=1,s=0;
{t*=i;
s+=t;
%f\n"
19.以下程序的功能是:
输出以下图案
*
***
*****
*******
{inti,j,k;
=4;
{for(j=1;
=4-i;
"
for(k=1;
k<
=2*i-1;
k++)
*"
i>
i--)
20.求一个3×
3的整型矩阵对角线之和
{inta[3][3],i,j,sum=0;
3;
sum=sum+a[i][i];
sum);
21.输出以下的杨辉三角的前10行
1
11
121
1331
14641
……………………………
………………………………
{inta[10][10],i,j,t;
{a[i][0]=1;
a[i][i]=1;
for(j=1;
i;
a[i][j]=a[i-1][j]+a[i-1][j-1];
=i;
%4d"
22.写一个判断素数的函数,在主函数中输入一个整数,输出是否是素数的信息。
intfun(intx)
{inti,t=1;
x;
if(x%i==0)t=0;
returnt;
{intx;
x);
if(fun(x))printf("
Yes\n"
No\n"
23.写一函数,使给定的一个二维整型数组数组(3×
3)转置,即行列互换
voidfun(inta[3][3])
{inti,j,t;
{t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
{inta[3][3]={1,2,3,4,5,6,7,8,9},i,j;
fun(a);
24.利用递归方法求数组的最大值
intfun(inta[],intn)
{intmax;
if(n==1)max=a[0];
elsemax=fun(a,n-1);
if(max<
a[n-1])max=a[n-1];
returnmax;
{inta[]={1,2,3,4,5};
fun(a,5));
25.用递归法求m!
longf(intm)
{returnm==0?
1:
m*f(m-1);
{intm;
m);
%ld\n"
f(m));
26.写出程序的运行结果。
{intt,x,y,z;
x=y=z=1;
t=++x||++y||++z;
%d,%d,%d,%d\n"
x,y,z,t);
答案:
2,1,1,1
27.写出程序的运行结果。
intm=3;
intf(intx,inty)
{intm=27;
return(x*y-m);
{inta=7,b=5;
f(a,b)/m);
2
28.写出程序的运行结果。
{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
inti,(*b)[4];
2;
{b=a+i;
*(b[i]+1));
210
29.写出程序的运行结果。
{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},i,j;
int(*p)[4]=a;
i++,p++)
*(*p+j));
123456789101112
30.写出程序的运行结果。
a
b
c
\0
d
e
f
g
h
i
j
main()s->
{char*s="
abc"
*t="
defghij"
strcpy(s,t);
t);
hijt->
注:
此题属于变量连续的存储空间。
31.下列给定表达式与(m)?
a++:
b++等价的是
A.m==0?
b++B.m==1?
b++
C.m!
=0?
b++D.m!
=1?
答案:
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="
C.p="
D.*p="
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[]="
*p=str;
则p和str是完全相同两个指针变量(×
p指针名,str是数组名
40.被调用函数结束后系统回收函数中所有变量占据的内存空间(×
不回收函数有效的静态变量的内存空间