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