计算机基础与程序设计2008年4月真题试题与答案解析(02275)
-
设在c盘根目录下有一个ASCII码文件zm.dat,且文件中有10个字符。请编程将文件中的字符读出,再按照从大到小的次序排序并将排序结果在屏幕上显示出来。
-
设有下列创建单向链表的部分程序:
#include"malloc.h"
#include"string.h"
struct automobile
{
char type[20];
int load;
struct automobile *next;
} * head=NULL;
void main(void)
{
struct automobile *p;
char * automobile_type[3]={"Red_Rock",Yellow_River","East_Wind"};
int automobile_load[3]={24,18,42},j;
for(j=0;j﹤3;j+ +)
{
p=(①______________)malloc(sizeof(struct automobile));
strcpy(②_____________,automobile_type[j]);
p->load=automobile_load[j];
p->next=head;
head=p;
}
}
请阅读分析程序,然后写出①和②下划线处应该填写的内容。
-
若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。
-
请阅读分析下列程序,然后写出程序的循环次数和运行结果。
main(void)
{
int i;
for(i=1; i﹤6; i+ +)
{
if(i%2)
{
printf("@");continue;
}
printf("*");
}
printf("\n");
}
-
请阅读分析下列程序,然后写出程序的运行结果。
void main(void)
{
int a[ ]={1,2,3,4,5,6},*p;
p=a;
p+ +;
*(p+3)+=2;
printf("%d\n",*p);
printf("%d\n",*(p+3));
}
-
请阅读分析下列程序,然后写出程序的运行结果。
void fun( );
void main(void)
{
fun( );
fun( );
}
void fun( )
{
static int a[3]={0,1,2},b=10;
int i;
if(b= =10)
{
for(i=0;i﹤3;i+ +)
a[i]+=a[i];
for(i=0;i﹤3;i+ +)
printf("%d,",a[i]);
printf("b=%d\n",b);
b+ +;
}
else
{
for(i=0;i﹤3;i+ +)
a[i]*=a[i];
for(i=0;i﹤3;i+ +)
printf("%d,"a[i]);
printf("b=%d\n",b);
}
}
-
请阅读分析下列程序,然后写出运行结果。
main( )
{
int a=0,b=1;
printf("a=%d,b=%d\n",a,b);
a+=b;b+=a;
printf("a=%d,b=%d\n",a,b);
}
-
若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结果。
main ( )
{
int x,y;
scanf("%d",&x);
if(x﹥2&&x﹤=10)
y=x *(x+2);
else if(x﹥-1&&x﹤=2)
y=2*x;
else if(x﹤-1)y=x-1;
if(y!=-1)
printf("%d,y);
else
printf("error");
}
-
简述C语言标准库函数strcpy 的格式(或函数原型)与功能。
-
请按照下列要求写出相应的C语句。假设float类型的变量x1和x2已经定义过,且x1已经初始化为7.3。
(1)定义指向float类型变量的指针变量fpt;
(2)使fptr指向x1;
(3)利用fptr,将fptr指向变量的值赋给x2;
(4)利用fptr,输出fptr指向变量的值。
-
fread(stu,size,n,fp);中stu、size、n和fp的含义各是什么?
-
C语言中的运算符“=”与数学中的“=”的意义相同吗?为什么?
-
设有关于结构体类型的定义:( )
struct data
{
int num;
struct data *next;
} *p,* head=NULL;
下列语句中正确的有
- A.p=(struct data *)malloc(sizeof(struct data));
- B.p=(struct data )malloc(sizeof(struct data));
- C.p=(struct data *)malloc(sizeof(data));
- D.p->next=head;
- E.p.next=head;
-
下列循环将会产生死循环的有( )
- A.while(1);
- B.do{ }while(0);
- C.do{ }while(1);
- D.for(k=1;k﹥―10;k+ +);
- E.for(k=1;k=10;k+ +,k――);
-
设有二维数组int a[4][3];下列表示数组元素a[0][2]地址的有( )
- A.a[2]
- B.*a
- C.*a+2
- D.a[0]+2
- E.&a[0][2]
-
下列语句中正确的有( )
- A.if(x﹥y);
- B.if(x=y)&&(x!=0)x+=y;
- C.if(x! =y)scanf(“%d,&x);else scanf(“%d”,&y);
- D.if(x﹤y){x+ +;y+ +;}
- E.if(x﹤y)x+ +;y+ +;else x――;y――;
-
如果文件存储的是数据在内存中存放的字节形式,则该文件是( )
- A.ASCII文件
- B.文本文件
- C.二进制文件
- D.设备文件
-
存储在下列哪些设备中的信息可以长期保存?( )
- A.RAM
- B.ROM
- C.硬盘
- D.软盘
- E.光盘
-
设有说明:int u=1,v=3;则表达式u﹤﹤= v的值是( )
- A.0
- B.1
- C.3
- D.8
-
下列位运算符中,表示按位异或操作的是( )
- A.~
- B.│
- C.^
- D.&
-
下列各个位运算符的优先级从左到右依次升高的是( )
- A.﹥﹥│& ~
- B.│﹥﹥ & ~
- C.│& ﹥﹥ ~
- D.~│& ﹥﹥
-
若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是( )
- A.&a+1
- B.&a+ +
- C.&a
- D.&a[i]
-
下列关于结构体类型定义正确的是( )
- A.
- B.
- C.
- D.
-
若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是( )
- A.1
- B.2
- C.3
- D.4
-
下列关于C语言程序说法正确的是( )
- A.C语言程序总是从有定义的函数起顺序执行
- B.在C语言程序中,被调用函数必须在main函数中定义
- C.C语言程序中的main函数必须放在程序的开始部分
- D.C语言程序总是从main函数起开始执行
-
执行如下程序段后,x的值是( )
int x=1,y=-1;
if(y﹤0)x-=y;
else x+=y;
- A.-1
- B.0
- C.1
- D.2
-
下列程序段输出的结果是( )
for(i=1;i﹤3;i+ +)for(j=1;j﹤3;j+ +)printf("%d",i+j);
- A.2 3 3 4
- B.2 3 4
- C.2 3
- D.23 4 3 4
-
执行while(表达式)循环的条件是( )
- A.当表达式的值为0时
- B.仅当表达式的值为1时
- C.当表达式的值非0时
- D.当表达式的值不为1时
-
以十进制无符号形式输出整数的格式说明符是( )
- A.%u
- B.%x
- C.%o
- D.%d
-
下列程序段的输出结果是( )
void main(void)
{
iny y=1,x=5;
if(x﹤0)y=-1;
if(x﹥=0)y=0;
printf("%d\n",y);
}
- A.-1
- B.0
- C.1
- D.5
-
整数-2在机器内存中的表示是( )
- A.1000000000000010
- B.1111111111111110
- C.11111111111111101
- D.1111111111111111
-
设有int a=3,b=-4,c=5;表达式++a-c+b++的值是( )
- A.-6
- B.-5
- C.-4
- D.-3
-
下列运算符中优先级最低的是( )
- A.﹥
- B.!
- C.%
- D.= =
-
下列设备中属于输出设备的是( )
- A.扫描仪
- B.键盘
- C.鼠标
- D.显示器
-
与十进制数39等值的二进制数是( )
- A.00100111
- B.01001001
- C.10100111
- D.01011000
-
存储容量1KB等于( )
- A.23字节
- B.210字节
- C.220字节
- D.230字节
-
在计算机中指令通常是由( )
- A.操作码、操作数组成
- B.源操作数、目标操作数组成
- C.反码、补码组成
- D.直接寻址、目的寻址组成