C上机题加答案Word文件下载.docx

上传人:b****5 文档编号:19973861 上传时间:2023-01-13 格式:DOCX 页数:31 大小:107.04KB
下载 相关 举报
C上机题加答案Word文件下载.docx_第1页
第1页 / 共31页
C上机题加答案Word文件下载.docx_第2页
第2页 / 共31页
C上机题加答案Word文件下载.docx_第3页
第3页 / 共31页
C上机题加答案Word文件下载.docx_第4页
第4页 / 共31页
C上机题加答案Word文件下载.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C上机题加答案Word文件下载.docx

《C上机题加答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C上机题加答案Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。

C上机题加答案Word文件下载.docx

n

%d="

n);

i=2;

while(i<

n)

if(n%i==0)

%ld*"

i);

n=___;

/*$BLANK2$*/

else

i++;

%ld\n"

/*$BLANK3$*/

程序设计:

有100匹马驮100担货,大马驮4担,中马驮3担,5匹小马驮1担.问三种马各有几匹?

注意:

1.大、中、小马都必须有;

2.问题的解只有一种

输出格式:

big=30,mid=40,small=30

voidPRINT(inta,intb,intc)

FILE*out;

big=%d,mid=%d,small=%d\n"

a,b,c);

if((out=fopen("

C:

\\24000101\\RESULT.DAT"

"

w+"

))!

=NULL)

fprintf(out,"

big=%d,mid=%d,small=%d."

fclose(out);

{inta,bc;

for(a=1;

a<

=25;

a++)

for(b=1;

b<

=33;

b++)

for(c=5;

c<

=100;

c=c+5)

if(a*4+b*3+c/5)==100&

&

a+b+c==100)

PRINT(a,b,c);

第二套

从键盘输入一个不多于4位的十进制正整数,求出它是几位数.如输入528,则结果为n=3。

intx,n;

%d"

x);

/*$ERROR1$*/&

x

if(x<

=0||x>

=10000)

DataError!

\n"

=10)n=1;

/*$ERROR2$*/x<

10

elseif(x<

100)n=2;

1000)n=3;

n=4;

/*$ERROR3$*/elsen=4;

n=%d\n"

n);

}

输出以下图形(字符*之间没有空格,第一行之前有一个空格)。

请填空。

*

***

*****

*******

*********

程序如下:

inti,j;

for(i=1;

i<

=___;

i++)/*$BLANK1$*/5

for(j=1;

j++)/*$BLANK2$*/i

"

j++)/*$BLANK3$*/2*i-1

*"

计算并输出Fibonacci数列中小于30000的最大一项。

说明:

Fibonacci数列的前两项均为1,从第3项开始每一项都是其前两项的和。

数列如下:

1,1,2,3,5,8,13,21,……

f=2345678

voidPRINT(longf)

f=%ld\n"

f);

\\24000102\\RESULT.DAT"

f=%ldd"

{longf1,f2,f,I;

f1=f2=1;

for(i=2;

i++)

{f=f1+f2;

if(f>

30000)break;

f1=f2;

f2=f;

f=f2;

PRINT(f);

第三套

在屏幕上输出以下图形(说明:

第一行之前有3个空格,星号之间无空格).

*******

#include<

math.h>

for(i=-3;

=3;

j=1;

/*$ERROR1$*/j=0;

while(j<

abs(i))

j++;

j=0;

=7-2*abs(i))/*$ERROR2$*/j<

7-2abs(i))

/*$ERROR3$*/j++

以下程序的功能是:

输出所有的"

水仙花数"

并输出"

的个数.所谓"

是指一个三位数,其各位数字的立方和等于该数本身.请填空.

inti,a,b,c,n;

/*$BLANK1$*/0

=999;

{

a=i%10;

b=i/10%10;

c=___;

/*$BLANK2$*/i/100

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

%6d"

___;

\nn=%d\n"

求出1900~2010之间个位数不是7的所有素数之和.

s=23456

voidPRINT(longs)

s=%ld\n"

\\24000103\\RESULT.DAT"

s=%ldf"

{longs=0;

inti,j;

for(j=2;

if(i%j==0)break;

if(j>

i/2&

i%10!

=7)s=s+i;

PRINT(s);

第四套

计算100~300之间满足下列条件的数之和.

(1)能被3整除

(2)个位数是7

inti,sum;

sum=1;

/*$ERROR1$*/

for(i=100;

=300;

if(i%3==0)

if(i%10==7)

sum=i;

/*$ERROR2$*/

print("

sum);

/*$ERROR3$*/

求满足条件1+2+3+……+n>

=1000的最小n的值。

请填空

inti,n,s;

s=___;

/*$BLANK1$*/

i=1;

while(s<

1000)

/*$BLANK2$*/

编写程序,计算各位数字之和等于15的三位数之和。

s=1234

printf("

s=%ldn"

第五套

输出一维数组中的最大元素及其下标值。

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

inti,max,addr;

max=a[0];

addr=1;

=10)/*$ERROR2$*/

if(max<

a[i])

max=a[i];

i=addr;

max=%d,address=%d\n"

max,addr);

下面程序功能是:

从键盘输入一个学生成绩,输出对应的等级(100分为A,90~99为B,80~89为C,70~79为D,60~69为E,小于60为F),如果输入成绩小于0分或大于100分,输出提示信息“InputError!

:

intg;

Enteramark:

/*$BLANK1$*/

if(g<

0||g>

100)

InputError!

else

g=%d:

g);

switch(___)/*$BLANK2$*/

case10:

printf("

A\n"

break;

case9:

B\n"

case8:

C\n"

case7:

D\n"

case6:

E\n"

___:

F\n"

编写程序,计算900到2010之间所有能被11整除的奇数之和。

(要求用循环实现)

sum=2345678

voidPRINT(longsum)

sum=%ld\n"

sum=%ldt"

PRINT(sum);

或者

第六套

计算1-2/(1+2)+3/(1+2+3)-4/(1+2+3+4)+……+n/(1+2+3+……+n)的值。

(假设本题中的n的值从键盘输入,且大小在10以内。

inti,j,n,a;

doubles=0;

pleaseentern="

/*$ERROR1$*/

=n;

a=1;

/*$ERROR2$*/

=i;

j++)

a=a+j;

if(i%2==0)/*$ERROR3$*/

s=s+1.0*i/a;

s=s-1.0*i/a;

%f\n"

学生的记录由学号和成绩组成,以下程序在10名学生记录中找出最低成绩并输出该学生的信息(如果存在多名学生成绩并列最低,则均输出)。

#defineN10

structstudent

charnum[20];

intscore;

};

voidmain()

structstudentst[N]=

{{"

0906050401"

99},{"

0906050402"

76},

{"

0906050501"

80},{"

0906050502"

68},

0906050503"

76},{"

0906050504"

64},

0906050506"

98},{"

0906050508"

79},

0906050509"

64},{"

0906050510"

98}};

inti;

int___;

min=st[0].score;

N;

if(min>

___)/*$BLANK2$*/

min=st[i].score;

for(i=0;

___;

i++)/*$BLANK3$*/

if(min==st[i].score)

%s\t\t%d\n"

st[i].num,st[i].score);

根据下式求出s的值(要求使用循环实现):

s=1/2-2/3+3/4-4/5+……+99/100

s=0.1234

voidPRINT(doubles)

s=%.4f\n"

s=%.4ff"

第七套

将数组中的数按从小到大排序后输出,要求:

所有数据输出在一行,且每个数据占5列.

inta[11]={7,9,-6,10,50,32,24,-15,1,88,29};

inti,j,k;

for(j=0;

10;

10-j;

if(a[i]<

a[i+1])/*$ERROR1$*/

k=a[i+1];

a[i]=a[i+1];

a[i+1]=k;

11;

i++)

%5d"

&

a[i])/*$ERROR3$*/

9个评委给某个参赛选手打分(分数存于数组a中),去掉一个最高分和一个最低分,求该参赛选手的平均分.请填空.

floata[9],max,min,ave;

Inputarray:

9;

%f"

max=min=ave=___;

ave+=a[i];

a[i])

elseif(min>

ave=(ave-max-min)/7;

Mark=%.3f\n"

ave);

根据下式求s的值(要求使用循环实现):

s=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+……+n)

本题以n=30为例

{FILE*out;

s=%.5f\n"

s=%.5fl"

PRINT(s);

第八套

计算1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值。

(本题中的n从键盘输入,且假设在20以内。

longs,t;

inti,j,n;

t=0;

=n)/*$ERROR3$*/

t+=j;

s=s+t;

下列程序的功能是:

从键盘输入10个数存入数组a中,求最大数和次最大数(假设10个数各不相同)。

inti,max1,max2,a[10];

if(a[0]>

a[1])

max1=a[0];

max2=a[1];

max1=a[1];

max2=a[0];

for(i=2;

if(max1<

max2=___;

max1=a[i];

if(max2<

max1=%d,max2=%d\n"

max1,max2);

某果农有一车苹果,第一天卖掉三分之二,并吃了两个,第二天卖掉了剩下的三分之二,并吃了两个,第三天到第七天都如此,到第八天一看只剩了五个苹果。

求此车共装有多少个苹果(要求用循环实现)。

voidPRINT(ints)

s=%ds"

第九套

将字符串str1和str2合并成一个新的字符串str,然后输出字符串str.

string.h>

charstr1[30],str2[30],str[80];

inti=0,j=0;

Enterthefirststring:

gets(str1);

Enterthesecondstring:

gets(str2);

while(str1[i])

str[i]=str1[i];

while(str2[j])

str[i++]=str2[j];

str[i]="

\0"

str:

%c\n"

str);

下列程序功能是调用swap()函数交换两个变量的值.请填空.

voidswap(int*x,int*y)

t=*x;

*x=___;

*y=t;

inta,b;

Inputa,b:

%d,%d"

a,&

b);

a=%d,b=%d\n"

a,b);

swap(&

a,___);

编程求满足下列条件的最小的正整数.

(1)大于400;

(2)加上2是6的倍数;

(3)加上3是7的倍数.

n=789

voidPRINT(intn)

{FILE*out;

n=%dn"

PRINT(n);

第十套

下面给定程序中,fun()函数的功能是:

判断字符串s中是否包含字符ch,若不包含则其插入到字符串s的最后.

voidfun(chars,charch)/*$ERROR1$*/

while(*s&

*s!

=ch)

s++;

if(*s=="

)/*$ERROR2$*/

s[0]=ch;

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

当前位置:首页 > 人文社科 > 文学研究

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

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