13年C语言上机真题Word格式.docx

上传人:b****4 文档编号:7634321 上传时间:2023-05-08 格式:DOCX 页数:27 大小:20.87KB
下载 相关 举报
13年C语言上机真题Word格式.docx_第1页
第1页 / 共27页
13年C语言上机真题Word格式.docx_第2页
第2页 / 共27页
13年C语言上机真题Word格式.docx_第3页
第3页 / 共27页
13年C语言上机真题Word格式.docx_第4页
第4页 / 共27页
13年C语言上机真题Word格式.docx_第5页
第5页 / 共27页
13年C语言上机真题Word格式.docx_第6页
第6页 / 共27页
13年C语言上机真题Word格式.docx_第7页
第7页 / 共27页
13年C语言上机真题Word格式.docx_第8页
第8页 / 共27页
13年C语言上机真题Word格式.docx_第9页
第9页 / 共27页
13年C语言上机真题Word格式.docx_第10页
第10页 / 共27页
13年C语言上机真题Word格式.docx_第11页
第11页 / 共27页
13年C语言上机真题Word格式.docx_第12页
第12页 / 共27页
13年C语言上机真题Word格式.docx_第13页
第13页 / 共27页
13年C语言上机真题Word格式.docx_第14页
第14页 / 共27页
13年C语言上机真题Word格式.docx_第15页
第15页 / 共27页
13年C语言上机真题Word格式.docx_第16页
第16页 / 共27页
13年C语言上机真题Word格式.docx_第17页
第17页 / 共27页
13年C语言上机真题Word格式.docx_第18页
第18页 / 共27页
13年C语言上机真题Word格式.docx_第19页
第19页 / 共27页
13年C语言上机真题Word格式.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

13年C语言上机真题Word格式.docx

《13年C语言上机真题Word格式.docx》由会员分享,可在线阅读,更多相关《13年C语言上机真题Word格式.docx(27页珍藏版)》请在冰点文库上搜索。

13年C语言上机真题Word格式.docx

printf("

pleaseinputmatrixa:

\n"

);

for(j=0;

j<

j++)

scanf("

%d"

&

a[i][j]);

sum=add(a[0][0]);

/*$ERROR3$*/

sum=%d\n"

sum);

}

2、题目:

有N个数据存放在a数组中,请求出这N个数据的最小数,并与数组中第一个位置上的数进行交换。

#defineN12

inta[N]={3,6,-5,15,7,-23,67,10,-34,24,-2,78};

intmin,i,t;

min=a[0];

/*$ERROR1$*/

for(i=1;

{if(a[i]<

a[min])

min=a[i];

/*$ERROR2$*/

a[0]=t;

/*$ERROR3$*/

a[0]=a[min];

a[min]=t;

%5d"

a[i]);

3、题目:

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

所有数据输出在一行,且每个数据占4列。

#defineN10

#include<

inta[N]={12,35,61,30,-62,75,-2,5,129,34};

inti,j,k;

for(j=1;

j++)

N-j;

{

if(a[i]>

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

k=a[i+1];

/*$ERROR2$*/

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

a[i+1]=k;

i++)

%4d"

a[i]);

4、题目:

计算200到500之间满足下列条件的数之和。

(1)这个数的三个数位上的数字积为42;

(2)这个数的三个数位上的数字和为12。

inti,g,s,b,sum;

sum=1;

for(i=200;

=500;

g=i/10;

s=i/10%10;

b=i/100;

if(g*s*b==42||g+s+b==12)/*$ERROR3$*/

{printf("

i);

sum=sum+i;

\nsum=%d\n"

5、题目:

6、题目:

删除一个给定的字符串中第p个字符起连续n个字符,输出删除后的字符串。

例如:

字符串s="

abcdefghi"

p=3,n=2,则输出结果是:

abefghi。

string.h>

voiddel(chars[],intp,intn)

inti,j;

if(p<

1||n<

0||p+n-1>

strlen(s))

inputerror!

return;

i=p;

/*$ERROR1$*/

j=p+n-1;

while(s[j]!

='

\0'

s[i]=s[j];

i++;

j++;

s[i]='

\n'

;

chars[]="

ABCDEFGHIJK"

intp,n;

pleaseinputbeginpositionandnumber:

"

%d%d"

p,&

n);

del(s[],p,n);

puts(s);

7、题目:

若有车的车牌号和罚分记录数据,统计罚分达到或超过12分的车辆总数并输出这些车辆的信息

(说明:

id域代表车牌号,score域代表罚分)。

structcar

{charid[12];

intscore;

};

{

inti,n=0;

carc[6]={{"

A-QQ111"

8},/*$ERROR1$*/

{"

A-TT222"

12},

B-WJ333"

C-LC444"

5},

F-PC555"

6},

B-MY666"

12}};

id\tscore\n"

i=0;

while(i<

6)

if(score>

=12)/*$ERROR2$*/

%s\t%d\n"

c[i].id,c[i].score);

n--;

n=%d\n"

n);

8、题目:

把字符串s中所有大写字母转换成小写字母,其它字符保持不变。

chars[81];

inti;

getchar(s);

while(s[i]!

{if(s[i]>

A'

&

s[i]<

Z'

s[i]=s[i]-32;

%c\n"

s);

9、题目:

输出大于100的前10个素数。

如101,103,107,......等。

inti,j,flag,n;

n=0;

i=101;

while(n<

=10)/*$ERROR1$*/

flag=0;

for(j=2;

i;

j++)

if(i/j==0)/*$ERROR2$*/

flag=1;

break;

if(flag==1)/*$ERROR3$*/

n=n+1;

%d\n"

i=i+2;

10、题目:

输入N个整数,输出其中最大值。

#defineN5

inti,x,max;

pleaseinput%dnum:

N);

x);

max=x;

i=1;

=N)

if(max>

x)/*$ERROR2$*/

i=i+1;

max=%d\n"

max);

/*$ERROR3$*/

二、改错题

注意事项:

1.请删除标有$BLANK?

$的程序行上的下划线,将正确的答案填在原下划线处;

2.请不要删除或修改$BLANK?

$标志;

3.请不要将需要填空的行分成多行;

4.请不要修改任何注释。

1、题目:

下列程序功能是实现计算1+(1+2)+(1+2+3)+...+(1+2+3+...+10),请填空。

{inttotal,sum,m,n;

total=___;

/*$BLANK1$*/

for(m=1;

m<

=10;

m++)

{sum=0;

for(n=1;

n___;

n++)/*$BLANK2$*/

sum=sum+n;

/*$BLANK3$*/

total=%d\n"

total);

}

下列程序功能是计算并输出a数组中所有元素的平方之和,数组元素由键盘输入。

请填空。

例如,输入数组的10个元素依次为1,2,3,4,5,6,7,8,9,10,输出应为:

s=385.0。

floata[10],s;

10;

%f"

_____);

_____;

/*$BLANK2$*/

______;

i++)/*$BLANK3$*/

s=s+a[i]*a[i];

s=%f\n"

3、题目:

voidmain()

m++)

下列程序的功能是将由数字字符'

0'

~'

9'

组成的字符串转换成整数。

#include"

stdio.h"

{charstr[]="

3250"

longvalue=0;

i=___;

/*$BLANK1$*/

while(str[i]!

=___)/*$BLANK2$*/

{value=value*10+str[i]-'

___;

/*$BLANK3$*/

%ld\n"

value);

下列程序的功能是分别统计字符串s中字母和数字字符的个数。

例如,若字符串s为:

WindowsXP2003SP3则输出结果应为:

alpha=11,digit=5

chars[81]="

WindowsXP2003SP3"

inti=0,alpha=0,digit=0;

=_____)/*$BLANK1$*/

if((s[i]>

&

s[i]<

)||(s[i]>

a'

z'

))

/*$BLANK2$*/

else

if(s[i]>

digit++;

alpha=%d,digit=%d\n"

alpha,digit);

6、题目:

以下程序的功能是:

输出所有的"

水仙花数"

,并输出"

的个数。

所谓"

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

例如153是一个"

,因为153=1*1*1+5*5*5+3*3*3。

inti,a,b,c,n;

n=___;

for(i=101;

=999;

a=___;

b=i/10%10;

c=i/100;

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

%6d"

\nn=%d\n"

下列程序功能是:

从键盘输入1个正整数,统计各位数字为1的个数,请填空。

如输入13121,则1的个数为3。

{intcount,n,t;

count___;

do

{t=n%10;

if(t___)/*$BLANK2$*/

count++;

n=n/10;

}while(___);

printf("

One=%d"

count);

8、题目:

下面程序的功能是输出杨辉三角形的前10行。

杨辉三角形如下:

1

11

121

1331

14641

......

每行第一列和最后一列元素均为1。

其他列元素为其所在位置的上一行对应列和上一行前一列元素之和。

voidyh(inta[][N])

{intj,k;

{a[j][0]=1;

a[j][j]=___;

for(k=1;

k<

j;

k++)

a[j][k]=____+a[j-1][k];

{inta[N][N],i,j;

{for(j=0;

=i;

%4d"

a[i][j]);

9、题目:

下列程序中函数fun的功能是:

计算正整数n的所有因子(n除外)之和作为函数值返回。

n=120时,函数值为240。

intfun(intn)

inti,sum=1;

for(i=2;

_____;

i++)/*$BLANK1$*/

if(_____)/*$BLANK2$*/

sum=sum+i;

returnsum;

intn,s;

Inputn:

s=_____;

10、题目:

输入一个大于1的正整数,将其分解成质因数的乘积(质因数即素数因子),并按下例中的格式输出。

126

Output:

126=2*3*3*7

longi,n;

%ld"

___);

%ld="

n);

i=2;

n)

if(n%i___)/*$BLANK2$*/

%ld*"

n=n/i;

11、题目:

[同构数问题]如果某整数能够在它的平方数的最右边出现,则该数就是"

同构数"

5是同构数,因为5的平方数是25,5是25中右侧的数。

下列程序的功能是:

调用函数fun判断整数x(0<

x<

100)是否是同构数。

若是同构数输出1,否则输出0。

intfun(intx)

inta,b;

a=_____;

if(x<

=9)

b=a%10;

else

b=a%100;

if(____)/*$BLANK2$*/

return1;

return0;

intx;

Inputx:

if(x>

0&

x<

100)

______);

Invalidnumber!

三、编程题

1.请不要修改题目中已经给出的任何语句,否则可能本题没有分数;

2.程序编辑确定后,必须运行一次;

3.只能在主函数main()的函数体内编写程序;

4.考生编写程序必须通过PRINT函数将计算结果存储到指定文件中。

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

s=1/2-2/3+3/4-4/5+5/6-6/7+...+999/1000

输出格式:

s=0.1234

voidPRINT(doubles)

FILE*out;

s=%.4f\n"

if((out=fopen("

K:

\\24000101\\RESULT.DAT"

"

w+"

))!

=NULL)

fprintf(out,"

s=%.4ff"

fclose(out);

PRINT(s);

设有正整数a和b,其中:

(1)a<

50,b<

50;

(2)a+b*b等于1564;

(3)a*a+b*b等于3370。

求满足条件的a和b的值(说明:

a和b的值唯一)。

a=13,b=24

voidPRINT(inta,intb)

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

a,b);

\\24000102\\RESULT.DAT"

a=%d,b=%d"

PRINT(a,b);

编程计算出30000以内所有Fibonacci数之和。

Fibonacci数列为:

1,1,2,3,5,8,13,21,......。

sum=123

voidPRINT(longsum)

\\24000103\\RESULT.DAT"

sum=%ds"

PRINT(sum);

求s=1+(2*2)+(3*3*3)+(4*4*4*4)+...+(9*9*9*9*9*9*9*9*9)的值(要求使用循环实现)。

输出格式:

s=123456789

voidPRINT(longs)

s=%ld\n"

\\24000104\\RESULT.DAT"

=NU

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2