一、填空题(10)
1、 是指向含有10个字符元素的一维数组的指针变量的指针变量 2、 1
3、
123456.123 4、 4
5、
900
6、 存储单元
, 指向的单元大小
7、 4
8、 8
9、
非0 10、 y<=x && y>=z
二、单项选择题(20)
(把正确答案填入下表各对应的题号下)
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
C |
D |
C |
A |
A |
D |
D |
A |
B |
D |
三、写出程序的输出结果(20)
1、 The output of 5.1.is 2、The output of 5.3 is: 3、The
output of 5.5
i=6 j=120 21->2101
1207654300
123->7B 6702154300
四、根据各编程题意填空(25)
1、 t=-t*x*x/(n*(n+1)) 、 n+=2 、 epsil>0
2、 i=j 、 i-- 、
j++
3、 "r" 、 "w" 、 !feof(fp1)
五、编程题(20)
1.编一个C函数是将字符数组中的小写字母转换成大写字母,或者将字符数组中的大写字母转换成小写字母。
void struplw(char *pc)
{ while (*pc!='0')
{ if (*pc>='A' &&
*pc<='Z') *pc+=32;
elseif (*pc>='a' && *pc<='z') *pc-=32;
pc++;
}
}
1.请编一个函数int fun(float s[], int n),它的功能是:求高于平均分的人数,并作为函数值返回。数组s中存放n位学生的成绩。数组s的值由主函数从键盘读入,用-1来结束输入。
int fun(float s[], int n)
{ int i,k=0; float aver,y=0;
for(i=0;i<n;i++)
y=y+s[i];
aver=y/n;
for(i=0;i<n;i++)
if( s[i]>y ) k++;
return k;
}
main()
{ float s[100],x,m,n=0;
scanf("%f",&x)
while(x!=-1&&n<100)
{ s[n]=x;
n++;
scanf("%f",&x);
}
m=fun(s,n);
printf("m=%d",m);
}
一、单项选择题(14)
(把正确答案填入下表各对应的题号下)
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
|
D |
A |
A |
C |
B |
B |
D |
C |
C |
B |
B |
D |
D |
A |
二、填空题(14)
1、 69
2、 0.5*a*b
3、 fabs(a+b)*fabs(a-b) 4、 a>b && a>c
5、
m%n==0 或 !(m%n) 6、 9、 9 、 3
7、 -17 8、 m=1F
9、 5*3=15 10、 int a[5],*p=a
11、 0 12、 4
13、 fopen("a.txt","rw")
14、 地址传递
三、写出程序的输出结果(20)
1、 1
0 2 2 5 7 13 20 2、 bcdefga 3 2
cdefgab
3
defgabc
5
7
四、根据各编程题意填空(22)
1、 int s1=0,s2=0; 、 ch=getchar() 、 || ch> 'A' && ch<'Z'
、 printf("%d,%d",s1,s2)
2、int n, char *ch 、 printf(" ") 、
printf("%c",ch[i]) 、 printf("\n")
3、
head!=NULL
、 p=p.next 、 no==p.num
五、编程题(30)
1. 输入20个整数,输出其中能被组中其它元素整除的那些数组元素。
main()
{int a[20],i,j,k;
printf("Enter the number=\n");
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{ k=1; /*用k判断a[i]是否被其它元素整除,首先设为1,即表示能被其它元素整除*/
for (j=0;j<20;j++) /*
判断a[i]是否被其它元素整除*/
if (i!=j) /*此条件可以不要;即此语句可以不用,因为自身除自身一定能整除*/
if(a[i]%a[j]!=0) /*如果被其中一个整除了则k=0,并中断j的循环,判断下一个a[i]*/
{ k=0; break; }
if (k==1)
printf("%d ",a[i]);
}
}
2. 编写一个函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a[0]和a[n–1]),要求以指针变量而不是数组名作参数。
int count(float *a,int n)
{ int
i,num;
num=0; /*置num的初值为0*/
for (i=1;i<n-1;i++) /* 依次比较a[i]与相邻元素的关系*/
if(a[i]>a[i-1] && a[i]>a[i+1]) /*如果比相邻元素大,则计数*/
num++;
return num;
}
3. 把文本文件d1.dat复制到文本文件d2.dat中,要求仅复制d1.dat中除英文字符和数字以外的其它内容。
#include
"stdio.h"
main()
{ FILE
fp1,fp2;/*定义两个文件类型指针变量*/
char ch;
fp1=fopen("d1.dat","r");/*以读方式打开文件d1.dat*/
fp2=fopend("d2.dat","W");/*以写方式打开文件d2.dat*/
while(!feof(fp1))/*如果没遇到文件结束标志,则循环地读一个字符*/
{ch=fgetc(fp1);/* 从文件d1.dat中读出一个字符*/
if (!((ch>="A"
&& ch<="Z") || (ch>="a" &&
ch<="z")||(ch>="0" && ch<="9"))
fputc(ch,fp2);/* 如果不是字母或数字字符,则写入到文件d2.dat中*/
}
fclose(fp1);/* 关闭文件d1.dat
*/
fclose(fp2);
}
一、填空题(15)
1、 (-b+sqrt(b*b-4*a*c))/(2*a) 2、 (ch>=65 && ch<=90)
3、 2.4
4、 10
5、 int (或 整型) 6、 10,12
7、 12
8、 0,-1
9、 8,u
10、 our
11、 3
12、 5
13、 3
二、单项选择题(20)
(把正确答案填入下表各对应的题号下)
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
C |
C |
B |
C |
A |
B |
D |
D |
C |
B |
三、写出程序的输出结果(20)
1、18—26 2、 3,2,5—3,3,5——4,2,6—3,4,6
3、 14 4、 4321
四、根据各编程题意填空(22)
1、 s[k].aver 、 s[k].aver>s[maxsub].aver 、 maxsub=k
2、
int *m
、 k>=0 && x<v[k] 、 v[k]
3、
char *s 、 sign=-1;k++; 、 digit=0 、 digit=10*digit+s[k]-'0'
五、编程题(30)
1.输入m和n(m≥n≥0)后,计算
表达式的值并输出。 要求将计算阶乘的运算写成函数fact (n), 函数返回值的类型为float。
float fact( int n)
{int i; float
s=1.0
for
(i=1;i<=n;i++)
s=s*i;
return s;
}
main()
{ int n,m;float y
do /*输入m,n ,如果m<n 或 n<0,则重输入: 即要求m>=n>=0*/
{
scanf("%d%d",&m,&n)
} while (m<n ||
n<0);
y=fact(m)/(fact(n)*fact(m-n));
printf("%f\n",y);
}
3.统计当前目录下文本文件data.txt中字符'$'出现的次数,并将统计结果写入当前目录下的文本文件res.txt。
#include "stdio.h"
main()
{ FILE fp1,fp2;
char ch ;
int n;
fp1=fopen("data.txt","r");
fp2=fopen("res.txt","w");
while((ch=fgetc(fp1))!=EOF)
if (ch=='$' ) n++;
fprintf(fp2;"%d",n);/*把数值数据写入文本文件中要用fprintf()函数*/
fclose(fp1);fcolse(fp2);
}
一、单项选择题(14)
(把正确答案填入下表各对应的题号下)
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
|
C |
D |
D |
B |
B |
C |
D |
C |
C |
A |
A |
B |
A |
B |
二、填空题(14)
1、 16 &n