东北大学c语言题库及答案Word格式文档下载.docx

上传人:b****5 文档编号:17212168 上传时间:2022-11-28 格式:DOCX 页数:38 大小:21.81KB
下载 相关 举报
东北大学c语言题库及答案Word格式文档下载.docx_第1页
第1页 / 共38页
东北大学c语言题库及答案Word格式文档下载.docx_第2页
第2页 / 共38页
东北大学c语言题库及答案Word格式文档下载.docx_第3页
第3页 / 共38页
东北大学c语言题库及答案Word格式文档下载.docx_第4页
第4页 / 共38页
东北大学c语言题库及答案Word格式文档下载.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

东北大学c语言题库及答案Word格式文档下载.docx

《东北大学c语言题库及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《东北大学c语言题库及答案Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。

东北大学c语言题库及答案Word格式文档下载.docx

,a);

2

编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。

intx=0,y=0,i;

请输入"

%d"

i);

while(i!

=0)

if(i>

0)x++;

elsey++;

正整数%d,负整数%d"

x,y);

3

统计100-500之间各个数字之和为9的三位数,输出这些三位数。

例如351的各个数字之和为9。

inta,b,c,d;

for(a=100;

a<

500;

a++)

b=a/100;

c=(a%100)/10;

d=a%10;

if(b+c+d==9)

printf("

%d\n"

4

编程求1-1000之间的所有完数(完数定义:

一个数恰好等于它的除自身外的所有因子之和)。

inta,b,c;

for(a=1;

=1000;

c=0;

for(b=1;

b<

a;

b++)

{

if(a%b==0)

c=c+b;

}

if(a==c)

5

已知银行整存整取存款不同期限的利率分别为:

3.30%期限半年;

3.50%期限一年;

4.40%期限二年;

5.00%期限三年;

5.50%期限五年;

到期利息税为5%。

要求输入存取的本金和期限,求到期能从银行得到的利息、本金及总和。

floata,b,c;

请输入存款年数"

a);

输入本金\n"

c);

if(a<

=0.5)b=0.033;

elseif(a>

=1&

&

2)b=0.035;

=2&

3)b=0.044;

=3&

5)b=0.05;

elseb=0.035;

利息为%f"

b*c*0.95);

总和%f"

c*(1+b*0.95));

6

输入三角形的三边长,判断这个三角形是否是直角三角形。

inta,b,c,temp;

输入三边"

);

%d%d%d"

a,&

b,&

if(a+b>

c&

a+c>

b&

b+c>

a)

temp=b;

b=a;

a=temp;

if(c>

temp=c;

c=a;

a=temp;

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

直角三角形\n"

一般三角形\n"

不能组成三角形\n"

7

输入一串字符(以回车键结束),统计其中数字、大写字母、小写字母以及其他字符的个数。

charstr[200];

char*p;

inta=0,b=0,c=0,d=0;

p=str;

gets(p);

while(*p)

if(*p>

='

A'

*p<

Z'

a++;

elseif(*p>

a'

z'

b++;

0'

9'

c++;

d++;

p++;

大写字母%d\n,小写字母%d\n,数字个数%d\n,其它字符个数%d\n"

a,b,c,d);

8

编写程序:

找出不超过1000的十位数字为1,个位数字为3或7的所有数。

例如:

13、17、113、317等。

b=((a%1000)%100)/10;

c=a%10;

if((c==3||c==7)&

b==1)

9

某企业利润提成的规则如下:

1)利润低于或等于10万元的,可提成奖金%10;

2)利润高于10万元,低于20万元时,低于10万元的部分按%10提成,另外部分可以提成7.5%;

3)利润高于20万低于40万元的,其中20万元按前面的方法发放,另外的部分按5%提成;

4)利润高于40万元的,40万元按前面的方法提成,高于部分按3%提成。

从键盘输入利润,输出应发的提成。

floata;

输入利润"

if(a<

=100000)printf("

%.2f"

0.1*a);

elseif(a>

100000&

=200000)printf("

10000+(a-100000)*0.075);

200000&

=400000)printf("

10000+7500+(a-200000)*0.05);

else

10000+7500+1000+(a-400000)*0.03);

10

利用公式e=1/1!

+1/2!

+1/3!

+…+1/n!

计算e的值并输出(要求:

误差小于10-5)。

floate=1,d;

inta,b,c=1,n;

输入阶数"

n);

=n;

c=c*a;

e=e+1.0/c;

e);

11

从键盘输入一个字符串str,统计其中大写英文字母A,B,C,D出现的次数。

要求输出原始字符串,以及统计的结果。

charstr[10];

inti,a=0,b=0,c=0,d=0;

gets(str);

for(i=0;

str[i]!

=0;

i++)

if(str[i]=='

)a++;

elseif(str[i]=='

B'

)b++;

C'

)c++;

D'

)d++;

A=%dB=%dC=%dD=%d"

12

将字符串a中的每个字符用加3的方法加密并存入数组b中,再对b中的字符串解密存入数组c。

要求:

初始化字符串a,依次输出字符串a、b、c。

chara[100]={"

wangshenghao"

};

inti;

charb[100],c[100];

puts(a);

a[i]!

b[i]=a[i]+3;

b[i]=0;

puts(b);

b[i]!

c[i]=b[i]-3;

c[i]=0;

puts(c);

13

输入两个字符串str1和str2,计算并输出str2在str1中出现的位置(提示:

从位置0开始计算,例如输入str1为”howareyou”,str2为”are”,则位置结果为3),要求初始化字符串str1和str2,输出原始字符串str1和str2,以及位置结果值。

intmain()

chars1[100],s2[100];

inti,j,ans=-1;

//ans=-1意味着没有完成匹配

%s"

s1);

s2);

s1[i]!

\0'

;

ans=i;

//假设这次比较可以完成匹配

for(j=0;

s2[j]!

j++)

if(s1[i+j]=='

||s1[i+j]!

=s2[j])

ans=-1;

break;

if(ans!

=-1)

%s\n"

ans);

return0;

14

从键盘输入一个字符串str和一个字符ch,删除字符串str中和输入字符ch相同的所有字符,输出原始字符串str以及删除字符ch后的字符串str。

charch,str[100];

输入字符串"

输入字符"

%c"

ch);

{

if(str[i]==ch)

for(;

{

str[i]=str[i+1];

}

i=0;

str[i]=0;

puts(str);

15

从具有10个元素的一维整型数组中查找最小值的元素,然后与数组的第一个元素对调。

初始化一维数组,输出该数组以及对调元素的数组。

intstr[10]={1,2,3,4,5,6,7,8,9,0};

inti,j,min,k;

min=str[0];

i<

10;

%d"

str[i]);

\n"

if(str[i]<

min)

min=str[i];

j=i;

k=str[0];

str[0]=min;

str[j]=k;

16

在一个具有10元素的整型数组a中,删除数组元素值为奇数的所有数组元素。

初始化数组a,输出原始数组以及删除数据的数组。

inta[10],b[10],i=0,j=0;

scanf("

a[i]);

a[i]);

for(i=0;

if(a[i]%2==0)

b[j]=a[i];

j++;

=j;

b[i]);

17

将10个整数存入数组,删除数组中指定的第n个元素。

(要求:

数组初始化定义)

intstr[10],i,n;

\n请输入10个数字:

"

str[i]);

\n请输入要删除的数字:

for(i=n;

str[i-1]=str[i];

str[10]=0;

9;

18

初始化一个4x5的矩阵,求其中最大元素和最小元素所在的行号,对调最大最小元素,输出行号、列号、对调后的矩阵。

intstr[4][5]={{2,1,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}};

inti,j,max,min,a,b,c,d,temp;

max=str[0][0];

min=str[0][0];

4;

j<

5;

if(str[i][j]>

max)

max=str[i][j];

a=i;

b=j;

if(str[i][j]<

min=str[i][j];

c=i;

d=j;

temp=max;

str[a][b]=min;

str[c][d]=max;

最大元素行号列号%d%d\n"

a+1,b+1);

最小元素行号列号%d%d\n"

c+1,d+1);

printf("

str[i][j]);

19

编写函数intfun(intn),判定n是否为十位数字为1,个位数字为3或7的数。

若是,函数返回1,否则返回0。

(提示:

13、17、113、317都是这样的数。

在主函数中调用fun函数,并在主函数中输出1000之间的所有十位数字为1,个位数字为3或7的数。

intfun(intn)

inta,b;

a=(n%100)/10;

b=n%10;

if((b==3||b==7)&

a==1)

return1;

inti,j;

j=fun(i);

if(j==1)

{

%d\n"

i);

20

初始化数组为10个学生的某门课成绩,求出其中最高成绩、最低成绩及平均值,统计成绩低于60分的人数、高于平均值的人数和低于平均值的人数。

输出原始成绩、最高成绩、最低成绩、平均成绩、低于60分的人数、高于平均值的人数、低于平均值的人数。

inta[10]={30,40,50,60,70,80,85,90,95,100};

inti,max,min;

floataverage,sum=0;

max=a[0];

min=a[0];

sum=sum+a[i];

if(a[i]<

min=a[i];

if(a[i]>

max=a[i];

average=sum/10;

max=%d,min=%d,average=%.2f"

max,min,average);

低于60分"

60)

高于平均分"

average)

21

已知矩阵a[4][4],交换矩阵中最大元素所在的列与次大元素所在的列。

(1)编写函数voidchange(inta[4][4])交换最大元素所在的列与次大元素所在的列;

(2)在主函数中初始化原始矩阵,输出原始矩阵以及交换发生后的矩阵。

初始化矩阵为:

交换后矩阵为:

14581548

3267

voidchange(inta[4][4])

inti,j,m,n;

intmax1,max2,temp;

max1=a[0][0];

max2=a[0][0];

for(j=0;

if(max1<

a[i][j])

max1=a[i][j];

m=j;

if(max2<

a[i][j]&

a[i][j]<

max1)

max2=a[i][j];

n=j;

temp=a[i][m];

a[i][m]=a[i][n];

a[i][n]=temp;

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

change(str);

 

22

编写函数voidfun(charstr[30],chara),删除字符串str中所有a代表的字符,被删除后的字符依次向前移动。

在主函数中初始化字符数组,并输入字符a,输出原字符数组及删除结果。

初始化字符数组str[30]=”ThisisatestofClanguage.”,输入字符a=‘t’,则删除之后的结果为”ThisisaesofClanguage.”。

voidfun(charstr[30],chara)

if(str[i]==a)

str[i]=str[i+1];

charstr[30]={"

ThisisatestofClanguage."

chara='

t'

fun(str,a);

23

编写函数intStrCount(char*str1,char*str2)。

Str1和str2为两个输入的字符串。

函数统计str2在str1中出现的次数,返回该数值。

在主函数main中初始化str1和str2,调用函数StrCount(str1,str2)后输出结果。

如输入str1为"

howareyouareGGGare"

,str2为"

are"

,那么调用函数StrCount后函数返回3。

string.h>

intstrcount(char*str1,char*str2)

inti,j,count=0;

str1[i]!

str2[j]!

if(str1[i]==str2[j])

count=count+1;

returncount;

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

当前位置:首页 > 经管营销 > 公共行政管理

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

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