C语言模拟练习排好版的打印Word下载.docx
《C语言模拟练习排好版的打印Word下载.docx》由会员分享,可在线阅读,更多相关《C语言模拟练习排好版的打印Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
![C语言模拟练习排好版的打印Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/6/8aa60823-1d1d-4443-b625-290d3e7a85ba/8aa60823-1d1d-4443-b625-290d3e7a85ba1.gif)
\nn=%d\n"
n);
}
程序编写题
计算1-500之间的全部“同构数”之和。
所谓“同构数”是指一个数。
它出现在它的平方数的右端。
如6的平方是36,6出现在36的右端,6就是同构数
voidPRINT(ints)
FILE*out;
s=%d"
s);
if((out=fopen("
C:
\\24000101\\RESULT.DAT"
"
w+"
))!
=NULL)
fprintf(out,"
n=%d"
fclose(out);
PRINT(s);
填空题答案:
1、n<
=9或n<
10
2、i%j
3、flag==0
改错题答案:
1、n=0
2、c=i/100
3、n++
编程题答案:
inti;
longt,s=0;
for(i=1;
=500;
t=i*i;
if(t%10==i||t%100==i||t%1000==i)
%d\t%d\n"
i,i*i);
s=s+i;
或
inti=1,s=0;
for(;
=10;
if(i*i%10==i)
s+=i;
=100;
if(i*i%100==i)
if(i*i%1000==i)
模拟2:
以下程序的功能是从键盘上输入一些字符,逐个把它们保存到abc.txt中,直到输入一个“#”为止
FILE*p1;
charch;
p1=fopen("
abc.txt"
r"
);
/*$ERROR1$*/
if(p1==0){printf("
cannotopenfile\n"
exit(0);
ch=getchar();
while(ch!
='
#'
)
fputc(ch);
/*$ERROR2$*/
putchar(ch);
fclose(abc.txt);
/*$ERROR3$*/
填空题题目:
求1-1、3+1、5-1、7+...1、97-1/99
inti=1;
doubles;
s=___;
while(i<
=50)
if(___)/*$BLANK2$*/
s=s+1.0/(2*i-1);
else
s=s-1.0/(2*i-1);
S=%f\n"
程序设计题
计算并输出Fibonacci数列中小于30000的最大一项。
说明:
Fibonacci数列的前两项均为1,从第3项开始每一项都是其前两项的和。
数列如下:
1,1,2,3,5,8,13,21,....
voidPRINT(longf)
f=%ld\n"
f);
\\24000102\\RESULT.DAT"
f=%ldd"
PRINT(f);
1、p1=fopen("
w"
2、fputc(ch,p1);
3、fclose(p1);
1、0
2、i%2==1或1%2
3、i++或++i
答案:
longf1,f2,f,i;
f1=f2=1;
for(i=2;
;
f=f1+f2;
if(f>
3000)break;
f1=f2;
f2=f;
f=f2;
模拟3:
以下程序的功能是输入正整数n后,输出n行由小写字母a开始构成的三角形字符阵列图形(n不得大于7)。
例如,输入整数4时的图形如下:
abcd
efg
hi
j
#include<
{inti,j,n;
charch='
a'
printf("
%d"
&
n);
if(n<
=7)
for(i=1;
n;
i++)/*$ERROR2$*/
{for(j=1;
=n-i+1;
{printf("
%2c"
ch);
ch--;
\n"
elseprintf("
nistoolarge!
输出以下图形
1
23
456
7890
inti,j;
ints=0;
___;
i++)/*$BLANK1$*/
for(j=1;
=i;
{s=s+1;
___);
}
___"
编写程序,计算由数字0,1,2和3组成不超过三位数的所有奇数之和(各位上的数字可以相同)
voidPRINT(longs)
s=%ld\n"
\\24000103\\RESULT.DAT"
s=%ld"
PRINT(s);
1、scanf("
2、for(i=1;
=n;
i++)
3、ch++;
1、i<
=4
2、s%10
3、\n
程序编写题答案:
longints=0;
inti,j,k;
for(i=0;
=3;
for(j=0;
for(k=1;
k<
k=k+2)
s=s+i*100+j*10+k;
模拟4:
以下程序的功能是输出一个数组中的最大元素及其下标值
inta[10]={-3,1,-5,4,9,0,-8,7,-6,2};
inti,max,addr;
max=a[0];
addr=1;
i=1;
=10)/*$ERROR2$*/
if(max<
a[i])
max=a[i];
i=addr;
i++;
max=%d,address=%d\n"
max,addr);
从键盘输入两个正整数,输出它们的最大公约数
intm,n,r,t;
Inputtwonumber,please!
scanf("
%d%d"
/*$BLANK1$*/
if(m<
n)
t=m;
m=n;
while(n>
0)
r=m%n;
n=r;
result=%d\n"
程序程序题
根据下列公式,计算A30的值(必需使用循环)
A1=1,A2=1,A3=3/(A1+A2),A4=4/(A3+A2),..A30=30/(A29+A28)
输出格式:
A30=7.235167
voidPRINT(floatf)
A30=%f\n"
\\24000104\\RESULT.DAT"
A30=%f"
1、addr=0;
2、while(i<
10)
3、addr=i;
1、&
m,&
n
2、n=t
3、m
floata,b,s;
a=1;
b=1;
for(i=3;
=30;
s=i/(a+b);
a=b;
b=s;
模拟5:
以下程序的功能是对学生的记录数据,统计不及格的人数并输出不及格学生的信息(说明:
num域代表学号,name域代表姓名,score域代表成绩)
structstudent
{intnum;
charname[12];
intscore;
};
{
studentstud[6]={{1001,"
PanDong"
48},/*$ERROR1$*/
{1002,"
ZhaoHua"
62},
{1003,"
HuLitai"
93},
{1004,"
ZhangLi"
85},
{1005,"
LiuMing"
58},
{1006,"
XinPeng"
37}};
inti,n=0;
num\tname\t\tscore\n"
i=0;
6)
if(score<
60)/*$ERROR2$*/
%d\t%s\t%d\n"
stud[i].num,stud[i].name,stud[i].score);
n--;
n=%d\n"
将3*3的矩阵值(从键盘输入)存于数组a中,计算并输出该矩阵两条对角线元素的总和s
inta[3][3],i,j,s=0;
Inputarray:
for(i=0;
3;
if((i==j)___(i+j==2))/*$BLANK2$*/
s+=___;
/*$BLANK3$*/
s=%d\n"
根据下式求s的值(要求使用循环实现)
s=1-2/3+3/5-4/7+5/9-6/11+...+49/97
s=1.23456
voidPRINT(doubles)
s=%.4f\n"
\\24000105\\RESULT.DAT"
s=%.4f"
1、structstudentstud[6]={{1001,"
48},
2、if(stud[i].score<
60)
a[i][j]
2、||
3、a[i][j]
程序设计题答案:
inti,flag=1;
doubles=0;
=49;
s+=flag*1.0*i/(2*i-1);
flag=-flag;
模拟6:
以下程序的功能是输入5名学生4门课的成绩,输出每门课的最高分
#defineN5
#defineM4
inti,j;
floatscore,firstscore,max;
M)/*$ERROR1$*/
printf("
\nPleaseinputscoreofcourseno%d:
"
scanf("
%f"
firstscore);
/*$ERROR2$*/
max=firstscore;
for(j=2;
=N;
j++)
{
scanf("
&
score);
if(score>
max)
score=max;
}
\nThemaxscoreofcourseno%dis:
%f"
i,max);
i++;
从键盘输入一个整数作为月份,输出其对应的英文季节单词。
若输入的整数在1-12之外,则输出“Error!
”
intn;
Inputn:
switch(n)
case3:
case4:
case5:
Spring\n"
break;
case6:
case7:
case8:
Summer\n"
case9:
case10:
case11:
Autumn\n"
case1:
case2:
case12:
Winter\n"
___:
Error!
计算1+2+3+4+...+n<
2000的最大的n的值(要求使用循环实现)
n=23456
voidPRINT(intn)
\\24000106\\RESULT.DAT"
n=%dd"
PRINT(n);
1、while(i<
=M)
2、scanf("
&
firstscore);
3、max=score;
2、break
3、default
intn=0,s=0;
while(s<
2000)
s=s+(++n);
n--;
模拟7:
以下程序的功能是通过指针操作,将由八进制数字组成的字符串“77777”转换为对应的十进制整数
charstr[6]="
77777"
p;
intn,t;
n=1;
p=str;
while(*p!
=0)
t=*p-'
0'
n=n*8+t;
p--;
\n%sisconveredtointegernumber:
%d\n"
str,n);
以下程序是将从键盘输入的字符串逆序存放,然后输出,(如:
输入ABCD1A,输出A1DCBA)
string.h>
main()
chars[81],t;
inti,j,n;
gets(s);
n=strlen(s);
j=n-1;
while(___)/*$BLANK2$*/
t=s[i];
s[i]=s[j];
s[j]=t;
%s"
统计并输出21世纪(2000年到2099年)闰年的个数。
符合以下条件之一即为闰年:
(1)是400的倍数,如2000年;
(2)是4的倍数但不是100的倍数,如2012年
n=16
\\24000107\\RESULT.DAT"
n=%dg"
1、charstr[6]="
*p;
2、n=0;
3、p++
1、i=0
2、j<
i
3、j—
intn,i;
n=0;
for(i=2000;
2100;
if(i%400==0||(i%4==0&
&
i%100!
=0))
n++;
模拟8:
下列程序功能是:
输入一个字符串,在指定的位置插入字符‘s’。
(插入的位置从键盘输入,且假设位置在字符串的长度以内)
chara[80];
a);
k=strlen(a);
j=k;
while(j>
=i)
{a[j+1]=a[j];
j++;
a[j]='
s'
;
删除已知字符串s中的所有ASCII码值为奇数的字符,形成新的字符串并输出
intn=0,i;
chars[]={"
asdgdfbsfj120mjd456m6m7n987nhyr"
s[i]!
=___;
if(s[i]%2___0)/*$BLANK2$*/
s[n++]=s[i];
s[n]=___;
puts(s);
根据下式求s的值(求前20项之和)
s=1/(1+2+3)-1/(2+3+4)+1/(3+4+5)-1/(4+5+6)+...+1/(19+20+21)+1/(20+21+22)
s=0.1234
\\24000108\\RESULT.DAT"
1、scanf("
i);
2、j--;
3、a[i]='
1、‘\0’
2、==
3、‘\0’
程序编写题答案:
floats=0;
=20;
s=s+1.0/(3*(i+1))*flag;
模拟9:
以下程序中,函数fun的功能是:
按以下递归公式求函数值。
fun(n)=0(n<
1或n>
100)
fun(n)=8(n=1)
fun(n)-fun(n-1)+3(n>
1并且n<
=100)
例如:
当n等于1时,函数值为8;
当n等于5时,函数值为20。
在主函数中输入n的值,并调用fun函数