y=0(x>10或x<=-10)
2sinx(0<=x<=10)
--------------------------------------------------------*/
#include
#include
intmain()
{
doublex,y;
/***********FOUND************/
scanf("%d",x);
/***********FOUND************/
if(0>x>-10)
y=-1;
if(x>=0&&x<=10)
/***********FOUND************/
y=2sinx;
/***********FOUND************/
if(x>10,x<=-10)
y=0;
printf("y=%f\n",y);
return0;
}
答案scanf(“%lf”,&x)
if(x<0&&x>-10)
y=2*sin(x)
if(x>10||x<=-10)
答案;scanf(“%d”,&n);
Doublefun(intn)
for(i=1;i<=n;i++)
s=s+1.0/t或s=s+1.0/(float)t
【程序设计】
功能:
编写函数fun对主程序中用户输入的具有10
个数据的数组a按由大到小排序,并在主程序中输出
排序结果。
------------------------------------------------*/
#include
voidwwjt();
voidfun(intarray[],intn)
{
/**********Program**********/
/**********End**********/
}
intmain()
{
inta[10],i;
printf("请输入数组a中的十个数:
\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
printf("由大到小的排序结果是:
\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
wwjt();
return0;
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[10];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
fun(i,10);
for(n=0;n<10;n++)
{
fprintf(OUT,"%d\n",i[n]);
}
fclose(IN);
fclose(OUT);
}
C语言模拟试题8352
第一题选择题答案BCCBCDCBAD
1.已知梯形的上底为a,下底为b,高为h,用c语言写的正确的面积公式是()
(A)1/2*(a+b)*h
(B)1.0/2*(a+b)*h
(C)1.0/2.0(a+b)h
(D)1.0/2*a+b*h
2.若有定义:
doublex;则能正确输入X值的语句是()
(A)scanf(“%f”,x)
(B)scanf(“%f”,&x)
(C)scanf(“%lf,&x”)
(D)scanf(“%5.1f”,&x)
3.以下叙述正确的是()
(A)在C程序中,main函数必须位于程序的最前面
(B)C程序的每行中只能写一条语句
(C)c语言本身没有输入输出语句
(D)在对一个C程序进行编译的过程中,可以发现注释中的拼写的错误
4.下列字符序列中,不可用作c语言标示符的是()
(A)b70(B)#ab(C)symbol(D)a_1
5.以下常量中,能够代表逻辑“真”值的常量是()
(A)‘/0’(B)0(C)‘0’(D)NULL.
6.charstr[10]=”China”;数组元素个数为()
(A)5(B)6(C)9(D)10
7.在c语言中,调用函数除函数名外,还必需有()
(A)函数预说明
(B)实际参数
(C)()
(D)函数返回值
8.以下不正确的说法是:
c语言规定()
(A)实参可以是常量,变量或表达式
(B)形参可以是常量,变量或表达式
(C)实参可以可以为任何类型
(D)形参应与其对应的实参类型一致
9.已知year为整型变量,不能使表达式(year%4==0&&year%100!
=0)||year%400==0的为“真”的数据是()
(A)1990(B)1992(C)1996(D)2000
10.已知p,p1为指针变量,a为数组名,j为整形变量,下列赋值语句不正确的是()
(A)p=&j,p=p1(B)p=a(C)p=&a[j](D)10
第二题程序填空
【程序填空】
功能:
输出1到1000之间满足如下条件的整数,该数各数位上的数字之乘积大于该数各
数位上的数字之和。
例如:
整数126,各数位上的数字之乘积12大于各数位上的数字之和9。
-------------------------------------------------------*/
#include
voidmain()
{intn,k=1,s=0,m,temp;
for(n=1;n<=1000;n++){
k=1;
s=0;
/***********SPACE***********/
【?
】;
while(m>0){
/***********SPACE***********/
temp=【?
】;
k*=temp;
s+=temp;
/***********SPACE***********/
【?
】
}
if(k>s)
printf("%d",n);
}
答案m=nm%10m=m/10
第三题程序改错
功能:
输入10个数,要求输出这10个数的平均值
例如:
从键盘输入:
12345678910,输出的平均值:
5.5
#include
doubleaverage(doublearray[],intn)
{
inti;
doubleaver,sum=array[0];
/*************FOUND*********/
for(i=0;i>n;i++)
sum=sum+array[i];
aver=sum/10.0;
return(aver);
}
intmain()
{
/*********FOUND*******/
intscore[10],aver;
inti;
printf(“input10scores:
\n”);
for(i=0;i<10;i++)
/*********FOUND*******/
Scanf(“%f”,scores);
Printf(“\n”);
/*********FOUND*******/
aver=average(score[10]);
printf(“averagescoreis%5.2lf”,aver);
return0;
}
答案:
for(i=1;i<10;i++)缺答案
【程序改错】2
功能:
学习成绩>=90分的同学用A表示,70-89分之间的用B表示,60-69分之间的用C表示,60分以下的用D表示。
#include
intmain()
{
intscore;
/**********FOUND**********/
char*grade;
printf("pleaseinputascore\n");
/**********FOUND**********/
scanf("%d",score);
if(score<0&&score>100)
printf("超出范围!
");
else
{
/**********FOUND**********/
switch(score)
{
case9:
case10:
grade='A';
break;
case7:
case8:
grade='B';
break;
case6:
grade='C';
break;
/***********FOUND***********/
caseelse:
grade='D';
}
}
printf("%dbelongsto%c\n",score,grade);
return0;
}
答案:
chargrade;或intgrade;
scanf(“%d”,score)
switch(score/10)
default:
或case0:
case1:
case2:
case3:
case4:
case5:
:
第四题程序设计
功能:
用函数将第2个串连接到第1个串之后,不允许使用strcat函数。
#include
voidwwjt();
voidlen_cat(charc1[],charc2[])
{
/**********Program**********/
/**********End**********/
}
main()
{
chars1[80],s2[40];
gets(s1);gets(s2);
len_cat(s1,s2);
printf("stringis:
%s\n",s