理论考试.docx

上传人:b****5 文档编号:12123016 上传时间:2023-04-17 格式:DOCX 页数:47 大小:889.34KB
下载 相关 举报
理论考试.docx_第1页
第1页 / 共47页
理论考试.docx_第2页
第2页 / 共47页
理论考试.docx_第3页
第3页 / 共47页
理论考试.docx_第4页
第4页 / 共47页
理论考试.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

理论考试.docx

《理论考试.docx》由会员分享,可在线阅读,更多相关《理论考试.docx(47页珍藏版)》请在冰豆网上搜索。

理论考试.docx

理论考试

输入一批学生的成绩,遇负数表示输入结束,要求统计并输出各登记成绩的学生个数。

成绩等级分为三级,分别为A(90~100)、P(60~89)和F(0~59)。

运行示例:

Enterscore:

887168705981910607783-10

A:

1;P:

8;F:

2;

【程序】

#include

main()

{intmark,a,p,f;

A=p=f=0;

/*printf(“Enterscores:

”);*/

scanf(“%d”,&mark);

while(_____

(1)_______){

if(mark>=90)a++;

____

(2)_____p++;

____(3)_____f++;

____(4)_____

}

printf(“A:

%d;P:

%d;F:

%d;\n”,a,p,f);

}

【供选择的答案】

(1)A.mark>=0B.mark>0

C.mark<=0D.mark<0

(2)A.elseif(mark>=60)B.if(mark>=60)

C.else(mark>=60)D.if(mark<90)

(3)A.else(mark<60)B.else

C.if(mark>0)D.elseif(mark<=60)

(4)A.scanf(“%d”,mark);B.scanf(“%d”,&mark);

C.;D.mark=getchar();

输入样列

887168705981910607783-10

输出样例

A:

1;P:

8;F:

2;

提示

#include

main()

{intmark,a,p,f;

a=p=f=0;

/*printf("Enterscores:

");*/

scanf("%d",&mark);

while(mark>=0){

if(mark>=90)a++;

elseif(mark>=60)p++;

elsef++;

scanf("%d",&mark);

}

printf("A:

%d;P:

%d;F:

%d;\n",a,p,f);

}

2.求1~999之间所有满足各位数字的立方和等于它本身的数。

例如153的各位数字的立方和是1^3+5^3+3^3=153

【程序】

#include

main()

{intdigit,j,sum,x;

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

______(5)______

______(6)______

do{

______(7)_____

Sum=sum+digit*digit*digit;

x=x/10;

}while(_____(8)____)

if(sum==j)printf(“%d\n”,sum);

}

}

【供选择的答案】

(5)A.sum=0;B.sum=1;

C.sum=j;D.;

(6)A.x=1;B.x=j;

C.nD.x=sum;

(7)A.digit=x/10;B.;

C.digit=x%10;D.digit=x;

(8)A.x==0B.j!

=0

C.j==0D.x!

=0

输入样列

输出样例

提示

#include

main()

{intdigit,j,sum,x;

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

sum=0;

x=j;

do{

digit=x%10;

sum=sum+digit*digit*digit;

x=x/10;

}while(x!

=0);

if(sum==j)printf("%d\n",sum);

}

}

3.输入10个整数,将它们从大到小排序后输出。

【程序】

#include

____(9)______

voidsort(____(10)_____)

{inti,index,k,t;

for(k=0;k

index=k;

for(i=k+1;i

if(a[i]>a[index])index=i;

______(11)_______

}

}

voidswap(int*x,int*y)

{intt;

T=*x;*x=*y;*t=t;

}

main()

{inti,a[10];

/*printf(“Enter10integers:

”);*/

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

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

_____(12)________

/*printf(“Aftersorted:

”);*/

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

printf(“%d”,a[i]);

printf(“\n”);

}

(9)A.voidswap(int*x,int*y)B.;

C.voidswap(int*x,int*y);D.voidswap(int*x,*y)

(10)A.int&a,intnB.int*a,int*n

C.int*a,intnD.inta,int*n

(11)A.swap(*a[index],*a[k])B.swap(a[index],a[k])

C.swap(index,k)D.swap(&a[index],&a[k])

(12)A.sort(a)B.sort(a[10])

C.sort(a[],10)D.sort(a,10)

输入

输入10个整数

输出

从大到小输出10个整数,每个数后面一个格。

输入样列

1098-9369100-102

输出样例

100981096320-1-9

提示

#include

voidswap(int*x,int*y);

voidsort(int*a,intn)

{inti,index,k,t;

for(k=0;k

index=k;

for(i=k+1;i

if(a[i]>a[index])index=i;

swap(&a[index],&a[k]);

}

}

voidswap(int*x,int*y)

{intt;

t=*x;*x=*y;*y=t;

}

main()

{inti,a[10];

/*printf("Enter10integers:

");*/

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

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

sort(a,10);

/*printf("Aftersorted:

");*/

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

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

printf("\n");

}

4.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】

程序1

#include

main()

{intj,k,s1,s2;

s1=s2=0;

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

s1++;

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

s2++;

}

printf(“%d%d”,s1,s2);

}

程序2

#include

main()

{intj,k,s1,s2;

s1=0;

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

s1++;

for(k=1,s2=0;k<=j;k++)

s2++;

}

printf(“%d%d”,s1,s2);

}

程序3

#include

main()

{intj,k,s1,s2;

s1=0;

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

s1++;

for(k=1;k<=j;k++,s2=0)

s2++;

}

printf(“%d%d”,s1,s2);

}

程序4

#include

main()

{intj,k,s1,s2;

s1=s2=0;

for(j=1;j<=5;j++,s1=0){

s1++;

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

s2++;

}

printf(“%d%d”,s1,s2);

}

(13)程序1运行时,输出_____(13)_______

A.015B.50

C.55D.515

(14)程序2运行时,输出_____(14)_______

A.015B.50

C.55D.515

(15)程序3运行时,输出_____(15)_______

A.015B.50

C.55D.515

(16)程序4运行时,输出_____(16)_______

A.015B.50

C.55D.515

5.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】

程序1

#include

main()

{inti,m=15,y=-1;

for(i=2;i<=m/2;i++)

if(m%i==0)y=0;

elsey=1;

printf(“%d”,y);

}

程序2

#include

main()

{inti,m=15,y=-1;

for(i=2;i<=m/2;i++)

if(m%i==0){y=0;break;}

printf(“%d”,y);

}

程序3

#include

main()

{inti,m=15,y=-1;

for(i=2;i<=m/2;i++)

if(m%i==0)break;

if(i>m/2)y=1;

elsey=0;

printf(“%d”,y);

}

程序4

#include

main()

{inti,m=15,y=-1;

for(i=2;i<=m/2;i++)

if(m%i==0){break;y=0;}

printf(“%d”,y);

}

(17)程序1运行时,输出_____(17)_______

A.1B.0

C.15D.-1

(18)程序2运行时,输出_____(18)_______

A.15B.0

C.-1D.1

(19)程序3运行时,输出_____(19)_______

A.-1B.1

C.0D.15

(20)程序4运行时,输出_____(20)_______

A.0B.15

C.1D.-1

试题6(每小题3分,共12分)

阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序】

#include

main()

{intk;

charch,a[10],*s[10]={“one”,”two”,”three”,”four”};

k=0;

while((ch=getchar())!

=’\n’&&k<9)

if(cj>=’5’&&ch<=’8’)a[k++]=ch;

a[k]=’\0’;

for(k=0;a[k]!

=’\0’;k++)

printf(“%s”,s[(‘9’-a[k])-1]);

}

(21)程序运行时,输入5678,输出_____(21)_______

A.twothreeB.two

C.onefourthreeD.fourthreetwoone

(22)程序运行时,输入8561#,输出_____(22)_______

A.twothreeB.two

C.onefourthreeD.fourthreetwoone

(23)程序运行时,输入7902#,输出_____(22)_______

A.twothreeB.two

C.onefourthreeD.fourthreetwoone

(24)程序运行时,输入7633#,输出_____(22)_______

A.twothreeB.two

C.onefourthreeD.fourthreetwoone

6.问题描述

(1)定义函数fact(n)计算n的阶乘:

n!

=1*2*......*n,函数返回值类型是double。

(2)定义函数cal(e)计算下列算式的值,直到最后一项的绝对值小于eps,函数返回值类型是double。

s=1+1/2!

+1/3!

+1/4!

+……

(3)定义函数main(),输入正整数n,当精度e分别取值为10^-1、10^-2、10^-3、……、10^-n时,分别计算并输出下列算式的值,直到最后一项的绝对值小于精度e,以此较不同精度下计算出的结果。

要求调用函数cal(e)计算下列算式的值。

s=1+1/2!

+1/3!

+1/4!

+……

输入

输入n(1

输出

输出n个e的值

输入样列

5

输出样例

1.666667

1.708333

1.718056

1.718254

1.718279

提示

#include

#include

doublefact(intn)

{

doubles=1;

inti;

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

s=s*i;

returns;

}

doublef1(doublee)

{

intn=1;

doubles=0;

while

(1)

{

if(1/fact(n)

break;

s+=1/fact(n);

n++;

}

returns;

}

main()

{

intn,i;

scanf("%d",&n);

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

printf("%f\n",f1(pow(10,-i)));

}

7.问题描述

填空:

图1:

输入

输出

"%.4f\n"

输入样列

输出样例

提示

#include

#include

main()

{

intdenomintor=1,flag=1;

doubleitem,sum=0;

item=2;

while(fabs(item)>=1e-3)

{

item=flag*1.0/denomintor;sum+=item;

denomintor=denomintor+3;

flag=-flag;

}

printf("%.4f\n",sum);

}

8.问题描述

填空:

图1:

输入

输出

每个数后面有一空格,最后不换行。

输入样列

输出样例

提示

#include

main()

{

inti;

intis(intn);

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

if(is(i)==1)

printf("%d",i);

}

intis(intn)

{

inti,sum;

if(n==1)

return0;

sum=0;

for(i=1;i<=n/2;i++)

if(n%i==0)

sum=sum+i;

if(n==sum)

return1;

else

return0;

}

9.问题描述

填空:

图1:

输入

输出

"sum=%d"

输入样列

输出样例

提示

#include

main()

{

inti,sum,a[10];

voidfun(intfib[],intn);

fun(a,10);

sum=0;

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

sum=sum+a[i];

printf("sum=%d",sum);

}

voidfun(intfib[],intn)

{

inti;

fib[0]=fib[1]=1;

for(i=2;i

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

}

 

10.问题描述

程序阅读:

图1:

输入

输出

输入样列

输出样例

11.问题描述

程序阅读:

 

图1:

输入

输出

输入样列

输出样例

出处

12.问题描述

填空:

图1:

输入

输出

输入样列

输出样例

提示

#include

#include

main()

{

inti,j;

charstr[10],*s[10]={"SQL","hello","bear","zone"};

gets(str);

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

{

if(strcmp(str,s[i])>0)continue;

j=3;

while(j>=i)

{

s[j+1]=s[j];

j--;

}

s[i]=str;

break;

}

if(i==4)s[4]=str;

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

printf("%s",s[i]);

putchar('\n');

}

13.问题描述

(1)定义函数fact(n)计算n的阶乘:

n!

=1*2*…*n,函数形参n的类型是

int,函数类型是double。

(2)定义函数cal(x,e)计算下列算式的值,直到最后一项的值小于e,函数形参x

和e的类型都是double,函数类型是double。

要求调用自定义函数fact(n)计算n

的阶乘,调用库函数pow(x,n)计算x的n次冥。

(3)定义函数main(),输入两个浮点数x和e,计算并输出下列算式的值,直到最后一

项的值小于精度e。

要求调用自定义函数cal(x,e)计算下列算式的值。

图1:

输入

输入二个实型数

输出

保留5位小数。

输入样列

2.00.00001

输出样例

6.38905

提示

#include

#include

doublefact(intn)

{

doubles=1;

inti;

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

s=s*i;

returns;

}

doublecal(doublex,doublee)

{

doubles=0,item;

intn=1;

do

{

item=pow(x,n)/fact(n);

s=s+item;

n++;

}while(item>=e);

returns;

}

main()

{

doublex,e;

scanf("%lf%lf",&x,&e);

printf("%.5f\n",cal(x,e));

}

14.问题描述

输入1个正整数n(n>=2),输出菲波那契(Fibonacci)序列的前n项,每行输出6个数。

菲波那契(Fibonacci)序列:

1,1,2,3,5,8,13,……,数列的前两个数都是1,从第三个数开始,每个数是前两个数之和。

#include

main()

{

intcount,i,n,x1,x2,x;

scanf("%d",&n);

x1=x2=1;

printf("%d%d",x1,x2);

____

(1)___________;

for(i=1;i<=n-2;i++){

____

(2)_______;

printf("%d",x);

count++;

if(____(3)____)

printf("\n");

x1=x2;

____(4)____;

}

}

(1)A、count=2B、count=0

C、count=1D、count=-1

(2)A、x=x1-x2B、x=x1+x2

C、x=x1D、x=2

(3)A、count/6==0B、count%6!

=0

C、count%6==0D、count/6!

=0

(4)A、x=x1+x2B、x2=x1

C、x=x2D、x2=x

输入

一个整数数n

输出

每行6个,每个后面一个空格。

输入样列

10

输出样例

112358

13213455

提示

#include

main()

{

intcount,i,n,x1,x2,x;

scanf("%d",&n);

x1=x2=1;

printf("%d%d",x1,x2);

count=2;

for(i=1;i<=n-2;i++){

x=x1+x2;

printf("%d",x);

count++;

if(count%6==0)

printf("\n");

x1=x2;

x2=x;

}

}

15.问题描述

输入2个正整数m和n(1<=m

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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