天津理工C语言期末考试上机题大全Word格式文档下载.docx
- 文档编号:19380625
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:16
- 大小:22.66KB
天津理工C语言期末考试上机题大全Word格式文档下载.docx
《天津理工C语言期末考试上机题大全Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《天津理工C语言期末考试上机题大全Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
if((i%7==0)&
&
(i%13==0))
printf("
%d\n"
i);
(3)有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,编程求出这个数列的前n项之和,其中n为运行时输入的正整数(n>
=1)。
#include<
inti,n;
floata=1,b=2,s=0,t;
n="
n);
for(i=1;
i<
=n;
i++)
s+=b/a;
t=b;
b+=a;
a=t;
sum=%4.2f\n"
s);
(4)程序,求s=1-1/3+1/5-1/7+…..,直到最后一项的绝对值小于0.00001为止。
输出:
0.78538447618
math.h>
intc;
floatn,t,s;
t=1;
c=1;
n=1.0;
s=0;
while(fabs(t)>
=1e-5)
s=s+t;
n=n+2;
c=-c;
t=c/n;
s=%10.11f\n"
(5)编程序,求1+(1+2)+(1+2+3)+……..+(1+2+3+….+n)的值。
其中,n由键盘输入。
输入:
20
1540
voidmain()
intp,q,t=0,n;
for(p=1;
p<
p++)
for(q=1;
q<
=p;
q++)
t=t+q;
}
t);
(6)编程序,输出满足以下条件的最大的n:
12+22+32+……n2<
=1000
输出:
13
inti=1,s=0,t,p;
while(s<
=1000)
{
t=i*i;
s+=t;
i++;
}
i-=2;
n=%d\n"
(7)一个素数,当它的数字位置对换以后仍为素数,这样的数称为绝对素数。
编写一个程序,求出所有的两位绝对素数。
intisprime(intn);
voidabsprimetens();
intisprime(intn)
inti=2;
for(;
(n/2);
if(n%i==0)
n=0;
else
n=n;
return(n);
voidabsprimetens()
inti=10;
100;
inta,b,j;
a=i/10;
b=i-a*10;
j=b*10+a;
if(isprime(i)&
isprime(j))
absprimetens();
(8)写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
实验六
intgcd(intm,intn);
intlcd(intm,intn);
intgcd(intm,intn)
intr,t;
if(m<
n)
t=m;
m=n;
n=t;
while(m%n)
r=m%n;
n=r;
returnn;
intlcd(intm,intn)
return(m*n/gcd(m,n));
inta,b;
%d,%d"
a,&
b);
%d%d"
gcd(a,b),lcd(a,b));
(9)求阶乘问题。
要求定义函数fact(n)计算n!
,主函数中输入一个正整数n,输出n!
,要求函数fact(n)分别采用递归和非递归两种形式实现。
intfact1(intn);
intfact2(intn);
intfact1(intn)
inti,x=1;
for(i=1;
x*=i;
return(x);
intfact2(intn)
intx;
if(n==1)
x=1;
x=n*fact2(n-1);
no-recursiveedition:
%d\n"
fact1(x));
recursiveedition:
fact2(x));
(10)以下程序的功能是:
用函数实现a,b两个整数的交换。
程序的部分语句如下,请先仔细读程序及注释,然后在此基础上写出完整的程序,最后上机调试通过。
voidswap(int*p1,int*p2);
voidswap(int*p1,int*p2)
intt;
t=*p1;
*p1=*p2;
*p2=t;
int*pa,*pb,a,b;
pa=&
a;
pb=&
b;
%d,%d\n"
a,b);
swap(pa,pb);
(11)定义具有n个元素的数组a[],从键盘输入各个数值,编写函数invert(inta[],intn),将其中的整数按照相反的顺序存放。
voidinvert(int*a,intn);
voidinvert(int*a,intn)
inti,t;
for(i=0;
t=*(a+i);
*(a+i)=*(a+n-1-i);
*(a+n-1-i)=t;
inta[5],i,*p;
a[5]=0;
p=a;
5;
p++);
%d\t"
a[i]);
invert(p,5);
(12)写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。
voidstr_abc(int*a,int*b,int*c,int*d,int*e,chararr[]);
voidstr_abc(int*a,int*b,int*c,int*d,int*e,chararr[])
while(*arr!
='
\n'
)
if(('
A'
<
=*arr)&
(*arr<
Z'
))
++(*a);
elseif(('
a'
z'
++(*b);
elseif(*arr=='
'
++(*c);
0'
('
9'
>
=*arr))
++(*d);
else
++(*e);
arr++;
intupper=0,lower=0,space=0,digit=0,other=0,i=0;
chars[20];
intput:
while((s[i]=getchar())!
)i++;
str_abc(&
upper,&
lower,&
space,&
digit,&
other,s);
uppercase:
%dlowercase:
upper,lower);
space:
%ddigit:
%dother:
space,digit,other);
(13)定义一个函数search(intlist[],intn,intx),在数组list中查找元素x,若找到则返回相应下标,否则返回-1。
要求,在main函数中调用search函数。
search(intlist[],intn,intx);
search(intlist[],intn,intx)
intk=0;
inti=0;
for(;
10;
if(list[i]==x)
list[i]=x;
k=i;
elsek=-1;
returnk;
inta[10],i,t,x=3;
input:
a[i]);
search(a,10,x);
t=search(a,10,x);
(13)编写一个函数delchar(char*s,charc),该函数将字符串s中出现的所有c字符删除。
自己定义main函数,并在其中调用delchar函数。
voidreplace_char(char*str,charc);
voidreplace_char(char*str,charc)
char*p1,*p2;
while(*str)
if(*str==c)
p1=str;
p2=str+1;
while(*p1)
{
*p1++=*p2++;
}
str++;
chars[20]="
Thisisapple"
;
charch='
i'
replace_char(s,ch);
%s\n"
(14)请编写函数intfun(intx),该函数的功能是判断x是否出现在它的平方数的右边。
例如,5出现在5**2=25的右边,则即是一个满足要求的x。
若满足要求,函数fun返回1,否则返回0。
x不大于100。
intfun(intx);
intfun(intx)
intm=x*x;
if(x/10==0)//0<
=x<
10
if(x==m%10)
return1;
return0;
else//100>
x>
=10
if(x==m%100)
return1;
%d--%d\n"
i,fun(i));
(15).编写函数fun,函数fun的功能是:
输入一行字符,将此字符串中最长的单词输出。
例如,输入一行字符iamastudent,输出最长的单词:
student
注意:
请勿改动主函数mian和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句
voidfun(char*str);
chars[100];
Pleaseinputastring:
gets(s);
fun(s);
voidfun(char*str)
char*p;
//指向单词内各个字符进行
char*q;
//指向当前最长单词的开始
intcnt=0;
//当前单词内字符计数
intmax=0;
//当前最长单词的长度
while(*str)
while(*str=='
)str++;
p=str;
//str指向当前正在处理单词的开始
while(*p!
*p!
\0'
cnt++;
p++;
if(cnt>
=max)
max=cnt;
q=str;
str=p;
cnt=0;
//输出q开始的字符,直到出现空格或者结束符
while(*q!
*q!
{
putchar(*q);
q++;
(16)编一函数intfun(intm),该函数的功能,求出满足不等式1+2+3+...+n≥m的最小值n,该值为该函数的返回值。
例如m为5时,输出n=3。
intfun(intm)
inti=0,s=0;
m)
s+=i;
i++;
returni-1;
{intx;
fun(x));
(17)编写函数longfun(longx),它的功能是:
将长整型参数x中每一位上为奇数的数依次取出,构成一个新数返回。
高位仍在高位,低位仍在低位。
例如:
下面程序运行时输入:
124578902,程序输出:
1579
longfun(longx)
longa,b,c;
c=1;
b=0;
while((x%10)||(x/10))
a=x%10;
x=x/10;
if(a%2)
b+=a*c;
c*=10;
returnb;
longa,b;
Enteranumber:
%ld"
a);
b=fun(a);
b=%ld\n"
b);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天津 理工 语言 期末考试 上机 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)