计算机基础与程序设计2008年7月真题试题与答案解析(02275)
-
由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。
(1)按n行m列输出该二维数组;
(2)求出该二维数组全部元素的平均值;
(3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。
-
阅读下面程序并说明语句:x=p-﹥d[0]﹥p-﹥d[1]?p-﹥d[0]:p-﹥d[1];的含义,然后写出程序的运行结果。
struct number
{
int d[2];
} n={12,8},*p=&n;
main()
{
int x;
x=p-﹥d[0]﹥p-﹥d[1]?p-﹥d[0]:p—>d[1];
printf(″%d″,x);
}
-
从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。
-
阅读下面程序并写出运行结果。
check(int n,int k)
{
int m;
do{
m=n%10;n=n/10;
}while(k- -);
return(m);
}
main()
{
int j,y=2345;
for(j=1;j﹤4;j++)
printf(″j=%d,number is %d\n″,j,check(y,j));
}
-
阅读分析下面程序并写出运行结果。
main()
{
char *a[]={″Pascal″,″C Language″,″dBase″,″Cobol″};
int j;
for(j=3;j﹥=0;j- -)
printf(″%s\n″,a[j]);
}
-
阅读下面程序并写出运行结果。
main()
{
static int a[]={5,3,7,2,1,5,4,10};
int s=0,k;
for(k=0;k﹤8;k+ =3)
{
s+ =a[k];
printf(″a[%d] =%d,s=%d\n″,k,a[k],s);
}
}
-
阅读分析下面程序,请说明程序的功能;然后写出当键盘输入14时,程序的运行结果。
main()
{
int x;
scanf(″%d″,&x);
if(x%5= =0 & & x%7= =0)
printf(″yes″);
else
printf(″no″);
}
-
阅读下面程序并写出运行结果。
main()
{
int a=47,x,y,z,w;
x=a/2;
y=a%2;
z=a++;
w=++a;
printf(″%d,%d,%d,%d″,x,y,z,w);
}
-
若定义char *str;然后用gets(str);输入字符串可以吗?为什么?
-
单个字符的读函数fgetc(fp),其中fp表示什么?该函数的功能是什么?
-
写出语句if(表达式)语句1 else语句2的执行过程。
-
C语言中整型常量有几种形式,它们是如何表示的?
-
设有说明:int u=1,v=3,w=7;下列表达式的值为7的有( )
- A.u&v|w
- B.u|v|w
- C.u^v|w
- D.w&v|u
- E.u^w|v
-
以下if语句中没有语法错误的有( )
- A.if(x﹥0)printf(″%f″,x);else printf(″%f″,x);
- B.if(x﹥0){x=x+y;printf(″%f″,x)}else printf(″%f″,x)
- C.if(x﹥0){x=x+y;printf(″%f″,x);}else printf(″%f″,x);
- D.if(x﹥0)x=x+y;printf(″%f″,x);else printf(″%f″,x)
- E.if x﹥y x++;else x--;
-
设有程序如下:
main()
{ int i,j,a[]={1,3,5,7,9,11,13,15};
i=5;
switch(i)
{ default;printf(″%d\n″,a[i]);
case 1:printf(″%d\n″,a[3]);
case 2:printf(″%d\n″,a[++i]);break;
case 3:printf(″%d\n″,a[--i]);
}
}
上述程序的输出结果不包括( )
- A.5
- B.7
- C.9
- D.11
- E.13
-
设有定义及赋值:( )
int a[10]={0,1,2,3,4,5,6,7,8,9},*p;
p=a;
则引用a中值为5的元素的正确形式是
- A.a[5]
- B.a[4]
- C.*(a+5)
- D.p[5]
- E.*(p+5)
-
ASCII码文件的结束可以用符号常量EOF表示。EOF的值是( )
- A.0
- B.1
- C.-1
- D.不能确定的值
-
下列数据数值相等的有( )
- A.(11111111)2
- B.(377)8
- C.(255)10
- D.(FF)16
- E.(256)10
-
下列为指针数组定义的是( )
- A.float(*)[6];
- B.float p[6];
- C.float(*)();
- D.float *p[6];
-
设有说明:FILE*fp;对于fp=fopen(″c:\\abc.dat″, ″rb″);语句,下列说法中不正确的是( )
- A.fp将指向abc.dat文件
- B.以只读方式打开二进制文件
- C.打开文件的文件名是abc.dat
- D.以读写方式打开ASCII码文件
-
设有下列程序,则( )
int d=10;
main()
{
int a=3;
printf(“%d,%d\n”,a,d);
}
- A.a是全局变量,d是全局变量
- B.a是局部变量,d是全局变量
- C.a是全局变量,d是局部变量
- D.a是局部变量,d是局部变量
-
若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是( )
- A.p1=m;
- B.&p2=n;
- C.pl=&m;p2=p1;
- D.*p1=&m;
-
下列关于函数的描述中正确的是( )
- A.C程序中有调用关系的所有模块必须放在同一个源文件中
- B.函数必须有返回值,否则不能使用函数
- C.C程序必须由一个或一个以上函数构成
- D.C函数既可以嵌套定义又可以嵌套调用
-
已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?( )
- A.gets(strl)
- B.gets(strl,str2)
- C.getchar(strl)
- D.getchar(strl,str2)
-
若有定义int a[3][5];则数组a在内存中分配的字节数是( )
- A.8
- B.15
- C.24
- D.30
-
只能在循环语句中用于结束本轮循环的语句是( )
- A.break;
- B.continue;
- C.goto
- D.if
-
若有定义int a[4]={1,2,3,4};则a[(a[1]*a[3]+a[0])/3-1)]的值是( )
- A.1
- B.2
- C.3
- D.4
-
对do语句while(表达式);结构的循环,下列说法正确的是( )
- A.当表达式的值为非零时不执行循环体
- B.循环体至少被执行一次
- C.当表达式的值为零时循环体一次也不执行
- D.循环体仅被执行一次
-
若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是( )
if(a﹤b)
{
if(c= =d)
x=c;
}
else
x=d++
- A.4
- B.5
- C.6
- D.7
-
关于switch中的表达式,正确的说法是( )
- A.它必须是算术表达式
- B.它必须是关系表达式
- C.它必须是逻辑表达式
- D.它可以是任意类型的表达式
-
在printf语句中,格式说明符u表示( )
- A.以十进制带符号形式输出整数
- B.以十六进制带符号形式输出整数
- C.以十进制无符号形式输出整数
- D.以十六进制无符号形式输出整数
-
下列表达式中运算结果为3的表达式是( )
- A.(-7)%4
- B.7/4+2
- C.7/4*4-4
- D.8/3+8/3
-
设有int a=3,b=-4,c=5;表达式a++-c+b++的值是( )
- A.-6
- B.-5
- C.-4
- D.-3
-
若定义double d;则d在内存中分配的字节数是( )
- A.1个
- B.2个
- C.4个
- D.8个
-
下列转义字符中,表示回车的是( )
- A.\0
- B.\n
- C.\r
- D.\f
-
若用八位二进制表示一个整数,则-4在计算机中的表示是( )
- A.11111100
- B.11111011
- C.10000100
- D.00000100
-
一个完整的计算机系统应该包括( )
- A.主机和外设
- B.主机和操作系统
- C.硬件系统和系统软件
- D.硬件系统和软件系统