c++题库简版.docx

上传人:b****1 文档编号:2301998 上传时间:2022-10-28 格式:DOCX 页数:79 大小:47.04KB
下载 相关 举报
c++题库简版.docx_第1页
第1页 / 共79页
c++题库简版.docx_第2页
第2页 / 共79页
c++题库简版.docx_第3页
第3页 / 共79页
c++题库简版.docx_第4页
第4页 / 共79页
c++题库简版.docx_第5页
第5页 / 共79页
点击查看更多>>
下载资源
资源描述

c++题库简版.docx

《c++题库简版.docx》由会员分享,可在线阅读,更多相关《c++题库简版.docx(79页珍藏版)》请在冰豆网上搜索。

c++题库简版.docx

c++题库简版

第1题〔10.0分〕题号:

664

题目:

有结构体类型定义:

structnode

{intdata;

structnode*nextPtr;

};

编写函数voidprintList(structnode*head),对head指向

的单向链表,找出data成员值为正数的所有结点,输出这些结

点在链表中的序号〔第1个结点序号为1〕和data成员值。

答案:

voidprintList(structnode*head)

{

structnode*p;

inti=1;

p=head;

while(p!

=NULL)

{

if(p->data>0)cout<<"\n数据:

"<data<<"序号:

"<

i++;

p=p->nextPtr;

}

}

第2题〔10.0分〕题号:

693

题目:

编写一段程序,计算输入流input中第一个$之前的

字符数目,存入count变量。

答案:

while(input.get(ch)&&ch!

='$')

count++;

第3题〔10.0分〕题号:

592

题目:

用“辗转相除方法〞计算两个数x,y的最大公约

答案:

n=x%y;

while(n!

=0)

{x=y;y=n;n=x%y;}

第4题〔10.0分〕题号:

708

题目:

从文件中读入n个字符串,将其中以字母A开头的字符串复制

到二维字符数组str1中。

答案:

for(i=0;i

{

if((strcmp(str[i],"A")>=0)&&(strcmp(str[i],"B")<0))

{strcpy(str1[j],str[i]);

j++;

}

}

第5题〔10.0分〕题号:

639

题目:

从键盘输入一个正整数n,该正整数可以分解成两个正整数k1

和k2之和〔允许k1和k2相等〕。

请编写一个函数求使两个正

整数的乘积最大的分解方案,并返回乘积max。

答案:

inti,max;

max=1*(n-1);

for(i=2;i

if(i*(n-i)>max)

{

max=i*(n-i);

}

第6题〔10.0分〕题号:

686

题目:

写一个函数统计字符串中,大写字母和小写字母

的个数,并分别保存在全局变量Supper和Low中。

答案:

inti=0;

while(input[i]!

='\0')

{

if(input[i]<='Z'&&input[i]>='A')

Supper++;

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

Low++;

i++;

}

第7题〔10.0分〕题号:

628

题目:

求100以(不含100)能被3整除且个位数为6的所有整数,

答案:

inti,count=0;

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

if(i%3==0&&i%10==6)

{

a[count++]=i;

cout<

}

第8题〔10.0分〕题号:

647

题目:

下面程序中的函数voidins(inta[],intlen,intn);

将n插入到一个包含len个从小到大排好序的整数数组a中,插入

后保证数组的有序性。

完成该函数的编写。

例如:

a)调用ins(a,0,3)后,数组a中为3

b)调用ins(a,1,2)后,数组a中为2,3

c)调用ins(a,2,6)后,数组a中为2,3,6

答案:

inti;

for(i=len;i>0;i--)

{

if(i>0&&a[i-1]>n)

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

else

break;

}

a[i]=n;

第9题〔10.0分〕题号:

704

题目:

编写函数,把一个数字字符组成的字符串转换为相应的整数〔如"1234"转换为1234〕。

答案:

inta2i(chards[])

{

intv=0;

for(inti=0;ds[i]!

='\0';i++)

{

v=v*10+ds[i]-'0';

}

returnv;

}

第10题〔10.0分〕题号:

728

题目:

求400之的一对亲密对数。

所谓亲密对数A和B,即A不等于B,且A的所有因子(如,6的因子是1、2、3〕

之和等于B,B的所有因子之和等于A。

求出的亲密对数存放在A和B中,且A

答案:

for(intn=1;n<400;n++)

{intsum_a=0,sum_b=0;

inta=n,b;

for(inti=1;i<=a/2;i++)

{

if(a%i==0)

sum_a+=i;

}

b=sum_a;

if(b<=400)

{

for(intj=1;j<=b/2;j++)

{

if(b%j==0)

sum_b+=j;

}

if(sum_b==a&&a!

=b)

{

A=a;

B=b;

break;

}

}

}

第11题〔10.0分〕题号:

696

题目:

请输出个、十、百位数字各不一样的所有三位数,

结果写入f2.txt中,一个数一行。

要求:

输出时按从小到大的顺序输出。

答案:

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

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

for(k=1;k<10;k++)

{

if(i!

=j&&j!

=k&&i!

=k)

{

output<

count++;

if(count==60)

{

count=0;

output<

}

else

output<<"";

}

}

第12题〔10.0分〕题号:

635

题目:

3025这个数具有一种独特的性质:

将它平分为二段,即30和25,

使之相加后求平方,即(30+25)*(30+25),恰好等于3025本身。

请求出具有abcd=(ab+cd)*(ab+cd)这样性质的全部四位数并使用变

量num记录满足条件的数的总个数。

要求:

调用output()函数将求出的数写入文件f2.txt中,例如output(3025)。

答案:

intn,a,b;

for(n=1000;n<10000;n++)

{

a=n/100;

b=n%100;

if((a+b)*(a+b)==n)

{

cout<

output(n);

num++;

}

}

第13题〔10.0分〕题号:

621

题目:

假设文件"f1.txt"和"f2.txt"以文本方式分别

存放着两个长度一样的实数向量,但是具体长度未知。

请编写函数

doubleprod(char*s1,char*s2)

求二向量的积。

其中,s1和s2分别是存放两个向量的文件名。

(向量的积公式如图)

答案:

ifstreaminf1(s1,ios:

:

in);

ifstreaminf2(s2,ios:

:

in);

doublem,n;

doubles=0;

while(inf1>>m&&inf2>>n)

s+=m*n;

inf1.close();

inf2.close();

returns;

第14题〔10.0分〕题号:

623

题目:

试编写一个判断6位密码是否正确的函数codec,

假如密码正确返回1,密码不正确返回0,出现错误返回-1。

密码规如此是:

第i位数字是第i-1位数字加1后的3次方的个位数〔2<=i<=6〕。

比如:

密码272727中第2位的'7'是第1位的'2'加1后的3次方的个位数

〔(2+1)的3次方为27,其个位数为7〕,第3位的'2'是第2位的'7'加1后的3次方

的个位数〔(7+1)的3次方为512,其个位数为2〕,以此类推。

答案:

if(result!

=-1)

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

if(a[i]!

=((a[i-1]+1)*(a[i-1]+1)*(a[i-1]+1))%10)result=0;

第15题〔10.0分〕题号:

616

题目:

请编写函数

intnum_of_facs(intn);

计算一个正整数n的因子个数〔包括1和自身〕。

答案:

intm=0;

for(inti=1;i

if(!

(n%i))

m++;

m++;

returnm;

第16题〔10.0分〕题号:

634

题目:

马克思手稿中的数学题

马克思手稿中有一道趣味数学问题:

有30个人,其中可能有男

人、女人和小孩,准备在一家饭馆花50先令吃饭;规定每个男

人可花3先令,每个女人可花2先令,每个小孩可花1先令;

问:

男人、女人和小孩可各有几人?

要求将求出的每一组解以与解的总个数都通过调用output()函

数写入文件f2.txt中。

例如0、20、10是一组解,如此应使用

output(0);output(20);output(10)三条语句将这组解写入结果

答案:

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

{

f=20-2*m;

c=30-m-f;

if(3*m+2*f+c==50)

{

cout<

output(m);

output(f);

output(c);

num++;

}

}

第17题〔10.0分〕题号:

263

题目:

n,计算n以的所有素数之和sum。

提醒:

在写程序时,可自己输入n。

但是最终提交时,请

从给定的文件读入n,即不要修改不允许修改的代码。

答案:

for(outerindex=2;outerindex

{

prime=true;

temp=(int)sqrt((float)outerindex);

for(innerindex=2;innerindex<=temp;innerindex++)

if(outerindex%innerindex==0)

{

prime=false;

break;

}

if(prime)

{

sum+=outerindex;

}

}

第18题〔10.0分〕题号:

722

题目:

编写函数countWeek,根据给定的星期数〔其中星

期日用0表示、星期一用1表示、......,以此类推

〕,请计算n天后是星期几,并将结果返回。

答案:

return(week+n)%7;

第19题〔10.0分〕题号:

266

题目:

100个数求最大值与最小值以与它们的差。

例如

8,43,7,18,2,56,37,123,25,26如此

max=132,min=

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

当前位置:首页 > 求职职场 > 简历

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

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