最新版C语言模拟试题打印复习版.docx

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

最新版C语言模拟试题打印复习版.docx

《最新版C语言模拟试题打印复习版.docx》由会员分享,可在线阅读,更多相关《最新版C语言模拟试题打印复习版.docx(50页珍藏版)》请在冰点文库上搜索。

最新版C语言模拟试题打印复习版.docx

最新版C语言模拟试题打印复习版

模拟1

1.改错

计算大于100的前10个素数之和。

#include

voidmain()

{

inti,j,n,s;

n=0;

s=1;/*$ERROR1$*/

for(i=101;;i+=2)

{

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

if(i%j==0)

{

continue;/*$ERROR2$*/

}

if(j>i/2)

{

s+=i;

n++;

if(n!

=10)/*$ERROR3$*/

break;

}

}

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

}

参考答案:

$1$:

s=0;

$2$:

break;

$3$:

if(n==10)

}

2填空

将自然数1~100以及它们的平方根以只写方式写入到新建的文本文件data.txt中。

#include

#include

#include

voidmain()

{

inti;

FILE___;/*$BLANK1$*/

if((fp=fopen("data.txt","____"))==NULL)/*$BLANK2$*/

{printf("Cannotcreatethefile!

");exit(0);}

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

{fprintf(fp,"%d,%f\n",i,sqrt(i));

printf("%d,%f\n",i,sqrt(i));

}

fclose(___);/*$BLANK3$*/

}

参考答案:

$1$:

FILE*fp;

$2$:

if((fp=fopen("data.txt","w"))==NULL)

$3$:

fclose(fp);

3程序设计

求所有水仙花数之和。

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

例如:

153是一个水仙花数,因为153等于1*1*1+5*5*5+3*3*3

输出格式:

s=23456

参考程序一:

#include

voidPRINT(ints)

{

FILE*out;

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

if((out=fopen("C:

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

=NULL)

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

fclose(out);

}

voidmain()

{

ints,a,b,c;

s=0;

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

for(b=0;b<=9;b++)

for(c=0;c<=9;c++)

if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)s+=a*100+b*10+c;

PRINT(s);

}

参考程序二:

#include

voidPRINT(ints)

{

FILE*out;

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

if((out=fopen("C:

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

=NULL)

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

fclose(out);

}

voidmain()

{

inti,a,b,c;

ints=0;

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

{

a=i%10;

b=i/10%10;

c=i/100;

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

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

}

PRINT(s);

}

模拟2

1改错

输入一个百分制的成绩,根据成绩输出相应的等级,等级的划分如下:

90分以上为A,80~89分为B,70~79为C,60~69分为D,60分以下为E。

例如输入75,则显示C。

#include

voidmain()

{

inta;

scanf("%d",a);/*$ERROR1$*/

if(a<0||a>100)

printf("dataerror\n");

else

{

elseif(a>=90)printf("A\n");/*$ERROR2$*/

elseif(a>=80)printf("B\n");

elseif(a>=70)printf("C\n");

elseif(a>=60)printf("D\n");

printf("E\n");/*$ERROR3$*/

}

}

参考答案:

$1$:

scanf("%d",&a);

$2$:

if(a>=90)printf("A\n");

$3$:

elseprintf("E\n");

2填空

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

例如:

Intput:

90

Output:

90=2*3*3*5

#include

voidmain()

{

longi,n;

printf("Inputn:

");

scanf("%ld",___);/*$BLANK1$*/

printf("Output:

%d=",n);

i=2;

while(i

{

if(n%i==0)

{

printf("%ld*",i);

n=___;/*$BLANK2$*/

}

else

i++;

}

printf("%ld\n",___);/*$BLANK3$*/

}参考答案:

$1$:

&n;

$2$:

n/i;

$3$:

i;

3程序设计

百马百担问题

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

注意:

大中小马必须有,只有一个解

参考程序一:

#include

voidPRINT(inta,intb,intc)

{

FILE*out;

printf("big=%d,mid=%d,small=%d\n",a,b,c);

if((out=fopen("K:

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

=NULL)

fprintf(out,"big=%d,mid=%d,small=%d",a,b,c);

fclose(out);

}

voidmain()

{

inta,b,c;

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);

}

参考程序二(*):

#include

voidPRINT(inta,intb,intc)

{

FILE*out;

printf("big=%d,mid=%d,small=%d\n",a,b,c);

if((out=fopen("K:

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

=NULL)

fprintf(out,"big=%d,mid=%d,small=%d",a,b,c);

fclose(out);

}

voidmain()

{

inta,b,c;

for(a=1;a<=25;a++)

for(b=5-a%5;b<=33;b+=5)

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

PRINT(a,b,c);

}

模拟3

1改错

在屏幕上输出以下图形(*字符之前没有空格)。

*

***

*****

*******

*********

#include

voidmain()

{

inti,j;

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

{

for(j=1;j<=___;j++)/*$BLANK2$*/

printf("");

for(j=1;j<=___;j++)/*$BLANK3$*/

printf("*");

printf("\n");

}

}

参考答案:

$1$:

5

$2$:

i

$3$:

2*i-1

2填空

从键盘上输入一个十进制整数,统计数码为2的个数。

如输入32202,则2的膈腧为3;输入-6242,则2的个数为2

#include

voidmain()

{

longcount,n,t;

count=___;/*$BLANK1$*/

printf("Inputn:

");

scanf("%ld",&n);

n=(n>=0?

n:

-n);

do

{

t=n___10;/*$BLANK2$*/

if(t==2)

count++;

n=n/10;

}

while(___);/*$BLANK3$*/

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

}

参考答案:

$1$:

count=0;

$2$:

t=n%10;

$3$:

while(n>0);

3程序设计

计算10000以内9的偶数倍数之和,即:

sum=18+36+54+~+9990

其中18,36,54,。

9990等分别是2,4,6。

1110倍。

输出格式sum=2345678

参考程序一:

#include

voidPRINT(longsum)

{

FILE*out;

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

if((out=fopen("K:

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

=NULL)

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

fclose(out);

}

voidmain()

{

longsum=0;

inti;

for(i=18;i<=10000;i=i+18)

sum=sum+i;

PRINT(sum);

}

参考程序二:

#include

voidPRINT(longsum)

{

FILE*out;

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

if((out=fopen("K:

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

=NULL)

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

fclose(out);

}

voidmain()

{

longsum=0;

inti;

for(i=18;i<=10000;i++)

{

if(i%9==0&&i/9%2==0)

sum=sum+i;

}

PRINT(sum);

}

参考程序三:

#include

voidPRINT(longsum)

{

FILE*out;

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

if((out=fopen("K:

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

=NULL)

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

fclose(out);

}

voidmain()

{

longsum=0;

inti;

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

sum=sum+i*9;

PRINT(sum);

}

模拟4

1改错

统计所有的三位正整数中各个数位上数字之和是11的数的个数。

如:

119,128,245等死满足该条件的数。

#include

voidmain()

{

inti,j,k,l,s,count;

count=1;/*$ERROR1$*/

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

{

s=0;j=i;

while(j>1)/*$ERROR2$*/

{

s=s+j/10;/*$ERROR3$*/

j=j/10;

}

if(s==11)count=count+1;

}

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

}

参考答案:

$1$:

count=0;

$2$:

while(j>0)

$3$:

s=s+j%10;

2填空

求100~400之间不能被5整除且个位是3的数之和。

#include

voidmain()

{

inti,s;

s=____;/*$BLANK1$*/

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

if(i%5!

=0)

if(i%10==____)/*$BLANK2$*/

{

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

s=____;/*$BLANK3$*/

}

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

}

参考答案:

$1$:

s=0;

$2$:

if(i%10==3)

$3$:

s=s+i;

3程序设计

根据下列式子,计算F10的值(要求使用循环实现)

F1=1

F2=2

F3=3*F2-F1

F4=3*F3-F2

F10=3*F9-F8

输出格式

F10=2134

参考程序一:

#include

voidPRINT(longf)

{

FILE*out;

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

if((out=fopen("C:

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

=NULL)

fprintf(out,"F10=%ld",f);

fclose(out);

}

voidmain()

{

longf,f1,f2;

inti;

f1=f2=1;

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

{

f=3*f2-f1;

f1=f2;

f2=f;

}

PRINT(f);

}

参考程序二:

#include

voidPRINT(longf)

{

FILE*out;

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

if((out=fopen("C:

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

=NULL)

fprintf(out,"F10=%ld",f);

fclose(out);

}

voidmain()

{

longf,g[10];

inti=2;

g[0]=g[1]=1;

while(i<10)g[i++]=3*g[i-1]-g[i-2];

f=g[9];

PRINT(f);

}

模拟5

1改错

输出数组中的最小元素及其下标值(数组中元素各不相同)。

#include

voidmain()

{

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

intt,min,i;

min=0;/*$ERROR1$*/

t=1;/*$ERROR2$*/

i=1;

while(i<10)

{

if(min>a[i])

{

min=a[i];

i=t;/*$ERROR3$*/

}

i++;

}

printf("min=%d,address=%d\n",min,t);

}

参考答案:

$1$:

min=a[0];

$2$:

t=0;

$3$:

t=i;

2填空

从键盘输入10个整数并存入一维数组中,查找其中第一个负数。

如果能找到则输出这个负数及其下标,否则输出NotFound!

#include

voidmain()

{

inti,a[10];

printf("Inputarray:

\n");

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

scanf("%d",___);/*$BLANK1$*/

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

{

if(a[i]<0)

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

___;/*$BLANK2$*/

}

}

if(i___)/*$BLANK3$*/

printf("NotFound!

\n");

}

参考答案:

$1$:

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

$2$:

break;

$3$:

if(i>=10)

3程序设计

计算1+2+3+4+。

+n<2000的最大的n的值(要求使用循环实现)。

输出格式n=23

参考程序一:

#include

voidPRINT(intn)

{

FILE*out;

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

if((out=fopen("C:

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

=NULL)

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

fclose(out);

}

voidmain()

{

intn=0,s=0;

while(s<2000)

s=s+(++n);

n--;

PRINT(n);

}

参考程序二:

#include

voidPRINT(intn)

{

FILE*out;

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

if((out=fopen("C:

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

=NULL)

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

fclose(out);

}

voidmain()

{

intn=100;/*只要大于4000,n(n+1)/2<(n+1)*(n+1)/2的平方根即可*/

while(--n*(n+1)/2>2000);

PRINT(n);

}

模拟6

1改错

将数组中的数按从小到大排序后输出。

(说明:

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

#include

voidmain()

{

inta[11]={3,9,-5,20,80,42,28,-19,0,90,22};

inti,j,k;

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

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

{

if(a[i]

{

k=a[i+1];/*$ERROR2$*/

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

a[i+1]=k;

}

}

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

printf("%5d",a+i);/*$ERROR3$*/

printf("\n");

}

参考答案:

$1$:

if(a[i]>a[i+1])

$2$:

k=a[i];

$3$:

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

2填空

将3x3的矩阵值(从键盘输入)存于数组a中,计算并输出该矩阵两条对角线元素的总和s。

#include

voidmain()

{

inta[3][3],i,j,s=0;

printf("Inputarray:

\n");

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

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

scanf("%d",___);/*$BLANK1$*/

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

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

{

if((i==j)___(i+j==2))/*$BLANK2$*/

s+=___;/*$BLANK3$*/

}

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

}

参考答案:

$1$:

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

$2$:

if((i==j)||(i+j==2))

$3$:

s+=a[i][j];

3程序设计

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

S=1/2-2/3+3/4-4/5+5/6-6/7+…+99/100

输出格式s=0.1234

参考程序:

#include

voidPRINT(floats)

{

FILE*out;

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

if((out=fopen("C:

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

=NULL)

fprintf(out,"s=%.4f",s);

fclose(out);

}

voidmain()

{

floats;

inti,flag=1;

s=0;

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

{

s=s+1.0*i/(i+1)*flag;

flag=-flag;

}

PRINT(s);

}

模拟7

1改错

对学生的记录数据统计不及格的人数并输出不及格学生的信息(说明:

num域代表学号,name域代表姓名,score域代表成绩)。

#include

structstudent

{intnum;

charname[12];

intscore;

};

voidmain()

{

structstud[5]={{101,"Liping",45},/*$ERROR1$*/

{102,"Huhua",62},

{103,"Hefang",92},

{104,"Chengli",87},

{105,"Liuzhi",58}};

inti,n=0;

printf("num\tname\tscore\n");

i=0;

while(i<5)

{

if(score<60)/*$ERROR2$*/

{printf("%d\t%s\t%d\n",stud[i].num,stud[i].name,stud[i].score);

n--;/*$ERROR3$*/

}

i++;

}

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

}

参考答案:

$1$:

structstudentstud[5]={{101,"Liping",45},

$2$:

if(stud[i].score<60)

$3$:

n++;

2填空

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

#include

voidmain()

{

inti;

floata[9],max,min,ave;

printf("Inputarray:

\n");

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

scanf("%f",___);/*$BLANK1$*/

max=min=ave=___;/*$BLANK2$*/

for(i=1;i<9

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

当前位置:首页 > 经管营销 > 经济市场

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

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