2006辽宁省专升本计算机试卷(C语言)第二部分:计算机高级语言部分(C语言)
四、填空题(每小题2分,共10分)
41.实数有两种表示形式,分别是十进制小数形式和___________。
42.字符串的结束标志是___________。
43.定义一维数组int a[5]; 则数组a的最后一个元素的下标是___________。
44.C程序的基本单位是___________。
45.设int a=9,b=8;则表达式a = = b+1的值是___________。
五、阅读程序题(阅读下列程序,将正确的运行结果填写到答题卡相应的位置上。每小题3分,共24分)
46.下面程序运行结果是__________________。
#include
main()
{
int x=1, y=2, z=3, sum;
sum=x+y+z;
printf("x=%d, y=%d, z=%d, sum=%d\n",x,y,z,sum);
}
x=1,y=2,z=3,sum=6
47.下面程序运行结果是__________________。
#include
main()
{
int x=-10;
int y;
if(x<0) y=-x;
else y=x;
printf("%d\n", y);
}
48.下面程序运行结果是__________________。
#include
main()
{
int i, sum=0;
for(i=1;i<=20;i++)
if(i%5==0)
sum+=i;
printg("%d\n",sum);
}
49.下面程序运行结果是__________________。
#include
void swap(int *p1, int*p2)
{
int tmp;
tmp=*p1;
*p1=*p2;
*p2=tmp;
}
main()
{
int x=10, y=20;
printf("%d,%d ",x,y);
swap(&x,&y);
printf("%d,%d\n",x,y);
}
50.下面程序运行结果是__________________。
#include
main()
{
int x=2, y=3;
printf("%d,",x>y?x:y);
printf("%d,",(x<=y)+2);
printf("%d",(x,y));
}
51.下面程序运行结果是__________________。
#include
main()
{
int a[]={2,4,6,8,10}, y=1, x;
for(x=0;x<3;x++) y+=a[x+1];
printf("%d\n", y);
}
52.下面程序运行结果是__________________。
#include
int_f (int x)
{
static int a=3;
a+=x;
return a;
}
main()
{
n=f(k);
n=f(m);
printf("%d\n", n);
}
53.下面程序运行结果是__________________。
#include
main()
{
int i;
for(i=0;i<2;i++)
switch(i)
{
case 0:printf("%d,",i);
case 2:printf("%d,",i);dreak;
default:printf("%d,",i)
}
}
六、完善程序题(每小题3分,共24分)
54.从键盘上输入若干个学生的成绩,统计并输出最高成绩和平均成绩,当输入负数时结束输入。
#include
main()
{
float avg=0.0;
int x, amax, count=0;
scanf("%d",&x);
amax=x;
while(______________){
if (x>amax) amax=x;
avg+=x;
count++;
scanf("%d",&x);
}
printf("\namax=%d\navg=%f\n",amax,avg/count);
}
55.下面程序功能是将两个字符串连接起来(每个字符串长度不超过40个字符)。
#include
main()
{
char sl[80],s2[40];
printf("\nInput stringl:");
scanf("%s",s1);
printf("Input string2:");
scanf("%s",s2);
while(s1[i]!='\0') i++;
while(s2[j]!='\0')
_________________________;
s1[i]='\0';
printf("%s\n",s1);
}
56.以下程序是用来统计一个正整数中零的个数。
#include
main()
{
unsigned long num,t;
int count;
count=0;
scanf("%1d",&num);
do{
t=num%10;
if(t==0) ++count;
num/=10;
}while(_______________);
printf("count=%d\n",count);
}
57.下面的程序的功能是把100-200之间的不能被3整除的数显示在屏幕上。
#include
main()
{
int i;
for (i=100;i<=200;i++)
{
if (i%3==0)
_____________;
printf("%d ",i);
}
}
58.下面程序的功能是计算数组中最小的下标。
#include
int findmin(int *s,int n)
{
int i,k=0;
for(i=1;i if(s[i] _____________; return k; } main() { int a[10],j,k; for(j=0;j<10;j++) scanf("%d",&a[j]); k=findmin(a,10); printf("%d",k); } 59.Fibonacci数列中的头两个数是1和1,从第三个数开始,每个数等于前两个数之和。 下述程序计算此数列的前20个数,且每行输出4个数。 #include main() { int f,f1=1,f2=1; int i; printf("%6d%6d",f1,f2); for (i=3;i<=20;i++) { f=f1+f2; printf("%6d",f); if(_______________) printf("\n"); f1=f2; f2=f; } } 60.本程序演示打印如下图案(菱形)。 * *** ***** ******* ***** *** * #include main() { int i,j,k; for(i=0;i<=3;i++) { for(j=0;j<=2-i;j++) printf(" "); for(k=0;k<=2*i;k++) printf("*"); printf("\n"); } for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf(" "); for(k=0;____________;k++) printf("*"); printf("\n"); } } 61.函数inv(int x[], int n)将长度为n的数组x中的元素按相反顺序存放。 void inv(int x[], int n) { int t,i,j,m=(n-1)/2; for(i=0;i<=m;i++) { j=_______________; t=x[i]; x[i]=x[j]; x[j]=t; } } 七、程序改错题(每小题3分,共12分) 62.输入三角形的三边长,求三角形面积。 (1)#include (2)#include (3)main() (4){ (5)float a,b,c,s,area; (6)scanf("%f,%f,%f",a,b,c); (7)s=1.0/2*(a+b+c); (8)area=aqrt(s*(s-a)*(s-b)*(s-c)); (9)printf("a=%f,b=%f,c=%f,area=%f\n",a,b,c,area); (10)} 错误的行是:________________________________________ 改为:__________________________________________ 63.从键盘输入100个字符,分别统计其中字母(不区分大、小写)、数字字符和其它字符的个数。 (1)#include (2)main() (3){ (4)char c; (5)int i, letter,digit,other; (6)letter=digit=other=0; (7)for(i=0;i<100;i++){ (8)c=getchar(); (9)if(c>='a' && c<='z' && c>='A' && c<='Z') (10)letter++; (11)else if (c>='0' && c<='9') (12)digit++; (13)else (14)other++; (15)} (16)printf("%d\n%d\n%d\n",letter,digit,other); (17)} 错误的行是:________________________________________ 改为:__________________________________________ 64.下面是有关结构体的定义和引用。 ()struct node (){ int data; ()struct node *next; ()} *p; ()*pdata=34; 错误的行是:________________________________________ 改为:__________________________________________ 65.从键盘输入一些字符,逐个把它们送到磁盘文件myfile.txt上去,直到输入一个'#'为止。(1)#include (2)#include (3)main() (4){ (5)FILE *fp; (6)char ch; (7)if((fp=fopen("myfile.txt","w"))!=NULL) { (8)printf("cannot open file\n"); (9)exit(0); (10)} (11)ch=getchar(); (12)while(ch!='#'){ (13)fputc(ch,fp); (14)putchar(ch); (15)ch=getchar() (16)} (17)fclose(fp); (18)} 错误的行是:________________________________________ 改为:__________________________________________ 扫描二维码立即获取答案