(41)阅读下列程序,当运行函数时,输入asd af aa z67,则输出为
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
int fun (char *str)
{ int i,j=0;
for(i=0;str[i]!=′\0′;i++)
if(str[i]!=′ ′)str[j++]=str[i];
str[j]= ′\0′;
}
main()
{
char str[81];
int n;
clrscr();
printf("Input a string : ");
gets(str);
puts(str);
fun(str);
printf("%s\n",str);
}
A)asdafaaz67
B)asd af aa z67
C)asd
D)z67
正确答案: A
(42)下列程序的输出结果是
struct abc
{ int a, b, c, s;};
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
A)5
B)6
C)7
D)8
正确答案: B
(43)有以下函数:
fun(char *p)
{return p;}
该函数的返回值是
A)无确切值
B)形参p中存放的地址值
C)一个临时存储单元的地址
D)形参p自身的地址值
正确答案: B
(44)若有定义: char *st= "how are you "; 下列程序段中正确的是
A)char a[11], *p; strcpy(p=a+1,&st[4]);
B)char a[11]; strcpy(++a, st);
C)char a[11]; strcpy(a, st);
D)char a[], *p; strcpy(p=&a[1],st+2);
正确答案: A
(45)下列程序的运行结果是
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
printf("%d %d", a, b);
}
A)6 3
B)3 6
C)编译出错
D)0 0
正确答案: B
(46)表达式a<b||(c&d)中运算符优先级最高的是
A)||
B)&
C)<
D)()
正确答案: D
(47)fwrite函数的一般调用形式是
A)fwrite(buffer,count,size,fp);
B)fwrite(fp,size,count,buffer);
C)fwrite(fp,count,size,buffer);
D)fwrite(buffer,size,count,fp);
正确答案: D
(48)C语言中,文件组成的基本单位为
A)记录
B)数据行
C)数据块
D)字符序列
正确答案: D
(49)请选出正确的程序段
A)int *p;
scanf("%d",p);
…
B)int *s, k;
*s=100;
…
C)int *s, k;
char *p, c;
s=&k;
p=&c;
*p=′a′;
…
D)int *s, k;
char *p, e;
s=&k;
p=&c;
s=p;
*s=1;
…
正确答案: C
(50)若有下面的说明和定义,则sizeof(struct aa)的值是
struct aa
{ int r1; double r2; float r3;
union uu{char u1[5];long u2[2];}ua;
} mya;
A)30
B)29
C)24
D)22
正确答案: D
二 、填空题
(1)长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 【1】 。
正确答案: 1.(n/2)
(2)用树型结构表示实体类型及实体间联系的数据模型称为 【2】 。
正确答案: 1.(层次模型)
(3)类是一个支持集成的抽象数据类型,而对象是类的 【3】 。
正确答案: 1.(实例)
(4)数据流图的类型有 【4】 和事务型。
正确答案: 1.(变换型)
(5)当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 【5】 。
正确答案: 1.(物理独立性)
(6)使用结构体处理数据的场合是【6】 。
正确答案: 1.(把不同类型的数据作为整体处理。)
(7)有定义char a,b;若想通过&运算符保留a的第3位和第6位的值,则b的二进数应是【7】 。
正确答案: 1.(00100100)
(8)以下程序运行结果是【8】 。
long fib (int g)
{ switch (g)
{ case 0∶return 0;
case 1∶case2∶return 1;
}
return (fib (g-1)+fib(g-2));
}
main ()
{ long k;
k=fib (5);
printf ("k=%(d\n)",k);
}
正确答案: 1.(k=5)
(9)strcmp函数的功能是【9】 。
正确答案: 1.(字符串的比较)
(10)以下程序段中,错误的行号是【10】 。
① #include <stdio.h>
② main ()
③ { char str [14];str []={" I love China"};
④printf ("%s",str);
⑤ }
正确答案: 1.(3行)
(11)将以下程序写成三目运算表达式是【11】 。
if(a>b)max=a;
else max=b;
正确答案: 1.(max=(a>b)?a:b;)
(12)设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为【12】。
考生答案: 1.()
正确答案: 1.(1.000000)
(13)下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>s[k])【13】
printf("%d\n", k);
}
正确答案: 1.(k=p;)
(14)设有以下定义和语句,则*(*(p+2)+1)的值为【14】。
int a[3][2]={10, 20, 30, 40, 50, 60}, (*p)[2];
p=a;
正确答案: 1.(60)
(15)下面函数要求计算两个整数x,y之和,并通过形参返回该值,请填空。
add(int x, int y,【15】z)
{【16】= x+y; }
正确答案: 1.(int *) 2.(*z)
(16)下面程序的运行结果是【17】。
#define N 10
#define s(x)x*x
#define f(x)(x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
正确答案: 1.(1000 10)
(17)以下程序的输出结果是【18】。
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num%10;num/=10;}
while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
正确答案: 1.(12)
(18)以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后,数组中的内容应该是:
2 3 4 5 6 7 8 9 10。
请填空。
#include <stdio.h>
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i<n;i++)
if(a[j-1]【19】a[i])
a[j++]=a[i];
【20】;
}
main()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("The original data :\n");
for(i=0; i<n; i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThe data after deleted :\n");
for(i=0; i<n; i++)printf("%3d",a[i]); printf("\n\n");
}
正确答案: 1.(!=) 2.(return j)