下半年C上机模拟题.docx

上传人:b****4 文档编号:11559603 上传时间:2023-03-19 格式:DOCX 页数:18 大小:19.87KB
下载 相关 举报
下半年C上机模拟题.docx_第1页
第1页 / 共18页
下半年C上机模拟题.docx_第2页
第2页 / 共18页
下半年C上机模拟题.docx_第3页
第3页 / 共18页
下半年C上机模拟题.docx_第4页
第4页 / 共18页
下半年C上机模拟题.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

下半年C上机模拟题.docx

《下半年C上机模拟题.docx》由会员分享,可在线阅读,更多相关《下半年C上机模拟题.docx(18页珍藏版)》请在冰豆网上搜索。

下半年C上机模拟题.docx

下半年C上机模拟题

模拟试卷一

改错题

输出大于100的前10个素数,如101,103,107,……等。

#include

voidmain()

{inti,j,flag,n;

n=0;

i=101;

while(n<=10)/*$ERROR1$*/n<10

{flag=0;

for(j=2;j

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

{flag=1;break;}

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

{n=n+1;

printf("%d\n",i);}

i=i+2;

}

}

程序填空题

输出以下图形(数字之间没有和,每行第一个数字前也没有空格)。

0001000

0011100

0111110

1111111

0111110

0011100

0001000

#include

#include

voidmain()

{inti,j;

for(i=-3;i<=___;i++)/*$BLANK1$*/3

{j=1;

while(j<=abs(i))

{printf("0");j++;}

j=1;

while(j___7-2*abs(i))/*$BLANK2$*/<=

{printf("1");j++;}

j=1;

while(j<=abs(i))

{printf("0");

___;/*$BLANK3$*/j++

}

printf("\n");

}

}

程序设计题

计算700到2000之间所有能被9整除或能被13整除的自然数之和。

#include

voidPRINT(longs)

{FILE*out;

printf("s=%ld\n",s);

if((out=fopen("C:

\\24000101\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"s=%ld",s);

fclose(out);

}

voidmain()

{longs=0;

inti;

for(i=700;i<=2000;i++)

if(i%9==0||i%13==0)

s=s+i;

PRINT(s);}

模拟试卷二

改错题

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

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

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

#include

voidmain()

{inti,g,s,b,sum;

sum=1;/*$ERROR1$*/sum=0;

for(i=200;i<=500;i++)

{g=i/10;/*$ERROR2$*/g=i%10;

s=i/10%10;

b=i/100;

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

{printf("%5d",i);

sum=sum+i;}

}

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

}

程序填空题

下列程序输出200到300之间的全部素数的和。

#include

voidmain()

{inti,j,f,s;

s=__;/*$BLANK1$*/0

for(i=201;i<300;i+=2)

{f=1;

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

if(i%j___)/*$BLANK2$*/==0

{f=0;break;}

if(f___)/*$BLANK3$*/==1

s+=i;}

printf("s=%d\n",s);

}

程序设计题

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

#include

voidPRINT(longf)

{FILE*out;

printf("f=%ld\n",f);

if((out=fopen("C:

\\24000102\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"f=%ldd",f);

fclose(out);}

voidmain()

{longf,f1=1,f2=1;

do{f=f1+f2;

f1=f2;

f2=f;

}while(f<30000);

f=f1;

PRINT(f);

}

模拟试卷三

改错题

有N个数据存放在a数组中,请求出这N个数据的最大数(假设只有唯一一个),并与数组中第一个位置上的数进行交换。

#defineN12

#include

voidmain()

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

intmax,i,t;

max=a[0];/*$ERROR1$*/max=0;

for(i=1;i

{if(a[i]>a[max])

max=a[i];/*$ERROR2$*/max=i;

}

a[0]=t;/*$ERROR3$*/t=a[0];

a[0]=a[max];

a[max]=t;

for(i=0;i

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

printf("\n");

}

程序填空题

以下程序判断输入的字符串是否“回文”。

#include

#include

voidmain()

{chars[100];

intleft,right,middle,lenth;

printf("Pleaseinputastring:

");

gets(s);

lenth=strlen(s);

left=____;/*$BLANK1$*/0

middle=lenth/2;

while(left<=middle)

{right=lenth-1-left;

if(s[left]____s[right])/*$BLANK2$*/==

left++;

else

break;

}

if(left____middle)/*$BLANK3$*/<=

printf("No\n");

else

printf("Yes\n");

}

程序设计题

求s=1+(2*2)+(3*3*3)+(4*4*4*4)+……+(9*9*9*9*9*9*9*9*9)

#include

voidPRINT(longs)

{FILE*out;

printf("s=%ld\n",s);

if((out=fopen("C:

\\24000103\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"s=%ld.ld",s);

fclose(out);}

voidmain()

{longs=0,s1;

inti,j;

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

{for(s1=j=1;j<=i;j++)s1=s1*i;

s=s+s1;

}

PRINT(s);}

模拟试卷四

改错题

从键盘输入n(设n小于或等于50的正整数)个成绩,将成绩小于60的保存在数组aa中,如果存在满足条件的成绩,则输出这些成绩,否则输出Allover60!

说明:

每行输出10个数据。

#include

voidmain()

{inti,n,m,count;

intaa[50];

count=1;/*$ERROR1$*/count=0;

printf("pleaseinputn:

");

scanf("%d",&n);

printf("pleaseinputscore:

");

for(i=0;i

{scanf("%d",&m);

if(m<60)

{aa[count]=m;

n++;/*$ERROR2$*/count++;

}

}

if(count>0)

{printf("\n*************number*************");

for(i=0;i

{if(i%10==0)printf("\n");

printf("%d",aa);/*$ERROR3$*/printf("%d",aa[i]);

}

printf("\n");

}

elseprintf("\nAllover60!

\n");

}

程序填空题

根据给定的数组a,求出其中值最大的那个元素(假设只有唯一一个),以及它所在数组的行村和列标。

#include

voidmain()

{inti,j,row,col;

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

row=col=0;

for(i=0;i<___;i++)/*$BLANK1$*/3

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

if(a[row][col]<______)/*$BLANK2$*/a[i][j]

{row=i;col=j;}

printf("max=%d,row=%d,col=%d\n",______,row,col);/*$BLANK3$*/a[row][col]

}

程序设计题

某果农有一车苹果,第一天卖掉三分之二后吃了两个,第二天卖掉了剩下的三分二后又吃掉了两个,第三天到第七天都如此,到第八天一看只剩了五个苹果,求此车共装有多少个苹果?

要求用循环实现。

#include

voidPRINT(ints)

{FILE*out;

printf("s=%d\n",s);

if((out=fopen("C:

\\24000104\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"s=%d",s);

fclose(out);

}

voidmain()

{ints=5,i;

for(i=7;i>=1;i--)

s=(s+2)*3;

PRINT(s);

}

模拟试卷五

改错题

输入年/月/日,输出该日期是该年的第几天,如输入2013/6/22,则输出173。

#include

voidmain()

{intt[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

inty,m,d,i,date;

date=1;/*$ERROR1$*/date=0;

printf("pleaseinputyear/month/day:

");

scanf("%d/%d/%d",&y,&m,&d);

if(y%4==0&&y%100!

=0||y%400==0)

t[3]=29;/*$ERROR2$*/t[2]=29;

t[0]=d;

for(i=0;i

date=t[i];/*$ERROR3$*/date+=t[i];

printf("date=%d\n",date);

}

程序填空题

定义求n!

的递归函数f(),并调用函数f()求1!

+2!

+3!

+4!

+5!

#include

longf(intn)

{if(n==1||n==0)

return

(1);

else

return(n*f(___));/*$BLANK1$*/n-1

}

voidmain()

{inti;

longs;

s=___;/*$BLANK2$*/0

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

s+=f(i);

printf("1!

+2!

+3!

+4!

+5!

=%ld\n",___);/*$BLANK3$*/s

}

程序设计题

求满足下列条件的三位数之和,条件如下:

(1)各位数字只能从5、6、7、8中选;

(2)各位数字互不相同。

#include

voidPRINT(longs)

{FILE*out;

printf("s=%ld\n",s);

if((out=fopen("C:

\\24000105\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"s=%ld",s);

fclose(out);

}

voidmain()

{longs=0;

inta,b,c;

for(a=5;a<=8;a++)

for(b=5;b<=8;b++)

for(c=5;c<=8;c++)

if(a==b||a==c||b==c)continue;

elses=s+100*a+10*b+c;

PRINT(s);

}

模拟试卷六

改错题

下面程序通过指针操作,将由八进制数字组成的字符串“77777”转换为对应的十进制整数。

#include

voidmain()

{charstr[6]="77777",*p;

intn,t;

n=1;/*$ERROR1$*/n=0;

p=str[0];/*$ERROR2$*/p=str

while(*p!

=0)

{t=*p-'0';

n=n*8+t;

p--;/*$ERROR3$*/p++;

}

printf("\n%sisconveredtointegernumber:

%d\n",str,n);

}

程序填空题

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

删除字符串str中所有的前导和尾部空格字符。

#include

voidtrim(chars[])

{inti,j,left,right;

right=strlen(s);

while(s[right-1]=='')_____;/*$BLANK1$*/right--

s[right]='\0';

left=0;

while(s[left]=='')left++;

for(i=0,j=0;s[i+left]!

='\0';i++)

s[j++]=s[i+left];

s[j]=_____;/*$BLANK2$*/‘\0’

}

voidmain()

{charstr[81];

printf("Inputastring:

\n");

gets(______);/*$BLANK3$*/str

trim(str);

puts(str);

}

程序设计题

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

(1)a<50,b<50;

(2)a+b*b等于1564;(3)a*a+b*b等于3370。

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

a和b的值唯一)

#include

voidPRINT(inta,intb)

{FILE*out;

printf("a=%d,b=%d\n",a,b);

if((out=fopen("K:

\\24000106\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"a=%d,b=%d",a,b);

fclose(out);

}

voidmain()

{inta,b;

for(b=1;b<50;b++)

{a=1564-b*b;

if(a<50&&a>0&&a*a+b*b==3370)break;}

PRINT(a,b);

}

模拟试卷七

改错题

Fun函数的功能是:

根据形参n,计算s=1+1/2+1/3+1/4+……+1/n的值,在主函数中输入一个正整数n,通过调用fun函数,求得计算结果。

#include

doublefun(intn)

{inti;

doubles;

s=1.0;

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

s+=1.0/i;

return;/*$ERROR1$*/returns;

}

voidmain()

{intn;

doubleresult;

printf("\npleaseenter1integernumbers:

\n");

scanf("%d",n);/*$ERROR2$*/&n

result=fun(&n);/*$ERROR3$*/n

printf("\ntheresultis%lf\n",result);

}

程序填空题

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

#include

#defineN10

voidyh(inta[][N])

{intj,k;

for(j=0;j

{a[j][0]=1;

a[j][j]=___;/*$BLANK1$*/1

}

for(j=2;j

for(k=1;k

a[j][k]=____+a[j-1][k];/*$BLANK2$*/a[j-1][k-1]

}

voidmain()

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

___;/*$BLANK3$*/yh(a);

for(i=0;i

{for(j=0;j<=i;j++)

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

printf("\n");

}

}

程序设计题

已知数列F(n):

当n=1时F

(1)=1,当n=2时F

(2)=2,当n>2时F(n)=2F(n-2)+3F(n-1),求该数列的第10项即F(10)的值,要求用循环实现。

#include

voidPRINT(longf)

{FILE*out;

printf("F(10)=%ld\n",f);

if((out=fopen("K:

\\24000107\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"F(10)=%ld",f);

fclose(out);

}

voidmain()

{longf,f1,f2;

inti;

f1=1;

f2=2;

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

{f=3*f2+2*f1;

f1=f2;

f2=f;}

PRINT(f);

}

模拟试卷八

改错题

下面程序的功能是:

第一个数是2,从第二个数起每个数都是它前一项加3,求第n个数是多少(n从键盘输入,用递归实现)

#include

longfun(intn)

{if(n=1)/*$ERROR1$*/if(n==1)

return2;

else

returnfun()+3;/*$ERROR2$*/returnfun(n-1)+3;

}

voidmain()

{longm;

intn;

scanf("%d",n);/*$ERROR3$*/scanf("%d",&n);

if(n>0)

{m=fun(n);

printf("%ld\n",m);

}

}

程序填空题

从键盘输入两个正整数,输出它们的最大公约数。

#include

intgcd(intm,intn)

{intr,t;

if(m

{t=m;

m=n;

___;/*$BLANK1$*/n=t

}

while(n>0)

{r=m%n;

m=n;

n=r;}

return(___);/*$BLANK2$*/m

}

voidmain()

{intm,n,result;

printf("Peaseinputtwonumber:

\n");

scanf("%d%d",___);/*$BLANK3$*/&m,&n

result=gcd(m,n);

printf("result=%d\n",result);

}

程序设计题

统计2013到20000之间素数的个数。

#include

voidPRINT(intcount)

{FILE*out;

printf("count=%d\n",count);

if((out=fopen("C:

\\24000108\\RESULT.DAT","w+"))!

=NULL)

fprintf(out,"count=%dg",count);

fclose(out);

}

voidmain()

{inti,j,count;

count=0;

for(i=2013;i<20000;i+=2)

{for(j=2;j<=i/2;j++)

if(i%j==0)break;

if(j>i/2)count++;

}

PRINT(count);

}

模拟试卷九

改错题

在主函数中输入一个正整数n,并通过调用fac()函数,求得n的阶乘,在主函数中输出n阶乘的值。

#include

longfac(intn)

{inti;

longs;

s=1;

i=0;/*$ERROR1$*/i=1;

while(i

{s=s*i;

i++;}

returns;

}

voidmain()

{intn;

longresult;

printf("Entern:

");

scanf("%d",n);/*$ERROR3$*/scanf("%d",&n);

result=fac(n);

printf("n!

=%ld\n",result);

}

程序填空题

小王去上车牌号,车管所同志告知车牌号必须满足:

(1)车牌号前两位必须是大写字母;

(2)车牌号后三位必须是数字;小王只喜欢字符W,不喜欢数字4,同时小王希望后三位数字之和正好等于10,请输出小王所有可能上的车牌号。

#include

voidmain()

{inti,j,k;

for(i=0;i<=____;i++)/*$BLANK

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

当前位置:首页 > 初中教育 > 语文

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

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