计算机基础与程序设计2009年4月真题试题与答案解析(02275)
-
有若干个学生(不超过50人)的某一门课的成绩放在文件c:\cj.dat中,要求编程统计出90~100分,80~89分,70~79分,60~69分,0~59分的人数各有多少人。
-
阅读分析下面部分程序:
struct cjd
{
char name[9];
float score[2][2];
} x;
float t[2][2]={70.5,65.0,83.0,92.5};
int j,k;
请用for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素。
-
请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。
-
阅读下面程序,分析cat函数的功能并写出程序的运行结果。
#include″stdio.h″
void cat(char * s,char * t)
{
while(*s) s++;
while((* s++=* t++)!=′\0′);
}
main( )
{
char s1[80]=″computer″,s2[80]=″Pentium_″;
cat(s2,s1);
printf(″% s\n″,s2);
}
-
阅读分析下面程序后,写出程序的运行结果。
#include″stdio.h″
int fun(int x)
{
int p;
if(x==0||x==1)
return(3);
p=x-fun(x-2);
printf(″%5d″,p);
return (p);
}
main( )
{
fun(9);
}
-
阅读分析下面程序后,写出程序的运行结果。
# include ″stdio.h″
main( )
{
int n,m;
for(n=1;n﹤=5;n++)
{
for(m=1;m﹤=4;m++)
printf(″%4d″,m*n);
printf(″\n″);
}
}
-
阅读分析下面程序后,写出程序的运行结果。
#include″stdio.h″
main ( )
{
int arr[10],i,k=0;
for(i=0;i﹤10;i++)
arr[i]=i;
for(i=1;i﹤=4;i++)
{
k+=arr[i]+i;
printf(″%5d″,k);
}
}
-
设有说明:
struct vegetable
{
char *part;
char * color;
} clove;
Char * color _ of _ vegetable [3]={″AA″,″BB″,″CC″};
char *seven _ color={″11″,″22″,″33″,″44″,″55″,″66″,″77″};
请分别写出将clove的成员part指向″BB″,成员color指向″55″的C语句。
-
阅读分析下面程序后,写出程序的运行结果。
# include ″stdio.h″
main ( )
{
int a=978,x,y,z,i,j,w;
x=a/100;
y=(a-100*x)/10;
z=a-10*y-100*x;
i=y﹥z? z:y;
j=y﹤=z? z:y;
w=100 *x+10 *i+j;
printf(″%d,%d,%d,%d\n″,x,y,z,w);
}
-
定义 char a[ ]=″I am a student.″, *str=a;
等价于char a[ ]= ″I am a student.″, * str;str=a;吗?
为什么?
-
有无default对switch语句有什么不同的影响?
-
写出do-while语句的一般形式及其执行过程。
-
设有关于结构体类型的定义:
struct worker{int id;char *name;float salary;}
wl={102035,″Lihua″,2560.50},*p;
下列选项中语句语法正确的有( )
- A.p=wl;
- B.p=&wl;
- C.p-﹥id=wl-﹥id
- D.p-﹥id=wl.id;
- E.p.salary=wl.salary;
-
若有定义:int y[4][4],( *p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是( )
- A.printf (″%d\n″,&y[2][0]);
- B.printf (″%d\n″, y[2][0]);
- C.printf (″%d\n″,p[2][0]);
- D.printf (″%d\n″, y[2]);
- E.printf (″%d\n″, * (* (y+2));
-
设有int a=3,b=-5;下列表达式的值等于1的有( )
- A.a&&b﹤0
- B.fabs(b)-a-1﹥0
- C.a﹥b&&b﹤0
- D.(a,2,-5)==(b,2,a)
- E.a+b﹤0
-
下列关于break、goto、continue语句的说法中正确的是( )
- A.break语句能够用于循环语句中
- B.break语句不能用于switch语句中
- C.goto语句可以用于直接从多层循环中退出
- D.continue语句可用于跳出循环体
- E.continue语句不能用于switch语句中
-
下列关于计算机的叙述中正确的是( )
- A.CPU是计算机系统的部件
- B.I/O设备不是计算机系统的部件
- C.计算机区别于其他计算工具的本质特点是能存储数据
- D.“裸机”是指不配置任何软件的计算机
- E.计算机指令是控制计算机进行操作的命令
-
在语句fgets(str,n,p);中,下列说法不正确的是( )
- A.str是字符指针
- B.一次可以读n个字符
- C.str是字符数组名
- D.一次可以读n-1个字符
-
若有定义∶# define P(x) x*x*x+1和说明语句:int a=2;则表达式P(2)的值是( )
- A.6
- B.8
- C.9
- D.10
-
下列各个位运算符的优先级从左到右依次降低的是( )
- A.| & ? ﹥ ﹥
- B.? & ﹥ ﹥ |
- C.~ ﹥ ﹥ ? |
- D.~ ﹥ ﹥ | ?
-
设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是( )
- A.3
- B.5
- C.6
- D.8
-
设有下列程序:( )
#include″stdio.h″
main( )
{
unsigned x=8,y=2;
printf(″%d\n″,y|~(x&y));
}
该程序的运行结果是
- A.-1
- B.0xff
- C.127
- D.65535
-
下列关于结构体类型的定义正确的是( )
- A.
- B.
- C.
struct tree
- D.
- A.
-
设有char *s=″\ta\017bc″;则指针变量s指向的字符串在内存中所占的字节数是( )
- A.5
- B.6
- C.7
- D.9
-
若有定义:int a[5];则a数组中首元素的地址可以表示为( )
- A.&a
- B.a+1
- C.a
- D.&a[1]
-
已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是( )
- A.puts (str1,str2)
- B.puts (str2)
- C.putchar (strl)
- D.putchar (str1,str2)
-
下列关于函数的说明中不正确的是( )
- A.函数名后面可以不要一对圆括号
- B.函数参数类型必须作说明
- C.函数形参个数可以是一个、多个或没有
- D.空函数被调用时不做任何工作
-
下列程序段的输出结果是( )
i=1;
while(i﹤3){
j=1;
while(j﹤=i){
printf(″%d″,i+j);
j++;
}
i++;
printf(″\n″);
}
- A.2 3 3 4
- B.2 3 4
- C. 2 3 3 4
- D. 2 3 4
-
下列程序的输出结果是( )
main( )
{ int x=5,y;
if(x﹤0)y=-1;
if(x==0)y=0;
y=1;
printf(″%d″,y);
}
- A.-5
- B.-1
- C.0
- D.1
-
以指数形式输出实型数的格式说明符是( )
- A.%u
- B.%x
- C.%f
- D.%e
-
设有int a=3,b=-4,c=5;表达式(a﹤b)?a:b&&c﹤0的值是( )
- A.0
- B.1
- C.3
- D.4
-
下列是合法C语言常量的是( )
- A.e
- B.7E4.0
- C.E4
- D.-9.13E-30
-
下列数据中最大数是( )
- A.(1010010)2
- B.(123.4)8
- C.(84.5)10
- D.(55)16
-
在Turbo C 2.0中,运行一个程序后,要查看运行结果可按键( )
- A.Alt+F1
- B.Alt+F5
- C.Alt+F9
- D.Alt+F10
-
衡量存储器的基本单位是( )
- A.bit
- B.byte
- C.KB
- D.word
-
Windows操作系统是( )
- A.单用户、单任务
- B.单用户、多任务
- C.多用户、单任务
- D.多用户、多任务
-
组成微机主存储器的是( )
- A.CD—ROM和RAM
- B.硬盘和RAM
- C.硬盘和CD—ROM
- D.ROM和RAM