全国2013年7月高等教育自学考试
计算机基础与程序设计试题
课程代码:02275
一、单项选择题 (本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相代码涂黑。错涂、多涂或未涂均无分。
1.一个完整的计算机系统应该包括
A.主机和外设 B.主机和操作系统
C.硬件系统和系统软件 D.硬件系统和软件系统
2.内存中每个基本单元都有唯一的序号,这个序号称为
A.地址 B.字节
C.代码 D.字
3.计算机对编译型高级语言的执行方式是
A.逐条语句边解释边执行,即解释一条就执行一条
B.将整个程序编译完成后再执行,不生成目标程序
C.将源程序编译成目标程序,执行连接后的程序
D.将源程序解释完毕后再执行
4.下面几种运算符中,优先级最高的是
A.|| B.,
C.= D.?:
5.设有int x=2, y, z;执行z=y=x――;后变量x的值是
A.0 B.1
C.2 D.3
6.若有下列程序段,欲使a=2, b=3,对应正确的数据输入方式是(其中<CR>表示换行)。
int a,b;
scanf("a= %d,b= %d", &a, &b);
A.2<CR> B.a=2 b=3<CR>
3<CR>
C.a=2, b=3<CR> D.2,3<CR>
7.设有声明int a=5,b=10;
执行a=a+b,b=a-b,a=a-b之后,变量a和b的值是
A.5和5 B.5和-5
C.5和10 D.10和5
8.下面程序段输出的结果是
main()
{int x=5,y;
if(x<0)y=l;
if(x==0)y=0;
y=l;
printf("%d",y);}
A.-5 B.-1
C.0 D.1
9.若执行下列程序时,从键盘输入数据3和4,则程序的输出结果是
main()
{ int a,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a<b) s=b;
s=s*s;
printf("%d" ,s);
}
A.14 B.16
C.18 D.20
10.只能在循环语句中用于结束本轮循环,即跳过循环体中它下面的语句的语句是
A. break; B. continue;
C. goto D. if
11.下面程序段的输出结果是
for(i=1;i<3;i++)
{for(j=1;j<3;j++)
printf (" %d ",i+j);
printf("\n");}
A.2 3 3 4 B.2 3 4
C.2 3 D.2
3 4 3 4
12.已知strl和str2是字符串,下面函数调用中能正确地完成字符串的输出的是
A. puts(strl,str2) B. puts(str2)
C. putchar(strl) D. putchar(strl,str2)
13.下列程序的输出结果是
# include<stdio.h>
main()
{ char s[10] ={′a′, ′b′, ′c′,}; s[3]= ′\0′;
printf("%d\n" , strlen(s));
}
A.3 B.4
C.10 D.输出值不确定
14.设有声明int a[5]=(1,2,3,4,5),b[3]={2,4,6);则表达式a[b[2]一b[1]]的值是
A.1 B.2
C.3 D.4
15.若没有定义局部变量的存储类别,则系统默认的存储类别是
A. register B. static
C. auto D. extern
16.执行下面代码片段之后,变量x的值是
int x=1, *p;
p=&x;++x;*p=5;
A.1 B.2
C.4 D.5
17.执行下面代码片段之后,表达式*(p+1)的值是
int x[5]={1,3,5,7,9},*p;
p= &x[0];
*(p+1)=*(p+3)+x[2];
A.3 B.7
C.10 D.12
18.下面关于结构体类型的定义中,正确的定义是
A. struct student B. struct student
{ {
int xh, int xh;
char name [10], char name [10];
int n1, int n1;
}, };
C. struct student D. struct student
{ {
int xh, int xh;
char name [10], char name[10];
int n1, int n1;
}; },
19.设有声明int a=l,b=2;执行:b=a<<3;之后,变量b的值是
A.1 B.2
C.6 D.8
20.设有声明int u=15,v=2,w=3;执行表达式u= u>>v|w<<v之后,变量u的值是
A.3 B.5
C.12 D.15
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂、少涂或未涂均无分。
21.对于下面的for循环结构
for(表达式1;表达式2;表达式3)
语句
以下叙述正确的有
A.表达式1最先求值;
B.表达式3最先求值;
C.语句在表达式2求值之后才有可能执行;
D.语句在表达式2求值之后肯定能够执行;
E.语句执行后才对表达式3求值
22.对于下面的do- while循环结构
do
语句
while(x&&!y| |z);
其语句仅仅执行1次的条件有
A.x等于0或者z等于0 B.x等于0且z等于0
C.y不等于0且z等于0 D.y不等于0且z不等于0
E.x,y,z都等于0
23.设有声明int x[4][5];且整型变量i和j满足:,则下面能够
表示数组元素x[i][j]的有
A.*(*(x+i)+j) B.(*(x+i)+j)
C.*(x[i]+j) D.(x[i]+j)
E.*(*(x+i))+j
24.关于结构体类型,下面叙述正确的有
A.结构体类型是由用户定义的
B.结构体类型是由系统定义的
C.结构体类型的成员允许是不同的数据类型
D.定义结构体类型之后才能定义该结构体类型的变量
E.定义结构体类型变量之后才能定义结构体类型
25.设有声明int x=1,y=2,z=3;下面表达式的值为0的有
A.x<<z B.z>>2
C.y^y D.x&y
E.z&y&x
三、简答题(本大题共4小题,每小题4分,共16分)
26.C语言规定对程序中所用的变量必须“先定义,后使用”,主要目的是什么?
27.设有程序
int main(void)
{
int a,b,c,m;
scanf("%d%d%d",&a,&b,&c);
if(c>a+b)
if(a>b)m=a;
else m=b;
else
if(b>a) m=a;
else m=b;
printf("m= %d\n",m);
return 0;
}
请简述程序的功能。
28.简述下面程序的功能。
int main(void)
{
int i,n;
scanf( " %d" , &n) ;
for(i=l;i<=n; i++)
printf( " % d\n", f(i) );
return 0;
}
int f(int x)
{
static int u=1;
u=u*x;
return u;
}
2 9.设p是一个有5个元素的指针数组,它的每一个元素是一个指向char型变量的指针变量;请写出对应的声明语句。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.请写出下面程序的运行结果。
#include "stdio.h"
int main(void)
{
int a=l,b=3,c=5,s=0;
s= a++ ;
printf( "l:s= %d\n" , s) ;
s= a+b+c;
printf( "2:s= %d\n" , s) ;
return 0;
}
31.当输入2时,请写出下面程序的运行结果。
# include " stdio.h"
int main(void)
{
int x,y=1;
scanf( " %d" , &x) ;
switch(x)
{
case 1:
y= y+1;
printf( "y= % d\n" , y) ;
case 2:
y= y+2 ;
printf( "y= % d\n" , y) ;
default :
y= y+5 ;
printf( "y= % d\n" ,y) ;
}
return 0;
}
32.请写出下面程序的运行结果。
# include "stdio. h"
int main(void)
{
char ch='Y';
int i=0;
while ( ch>='A')
{
printf( " %C" , ch) ;
ch――;
i++;
if(i%5= =0)
printf( "\n") ;
}
}
33.请写出下面程序的运行结果。
# include "stdio.h"
# include "string.h"
int main(void)
{
char ch,s[30] = "tneduts a era uoy" ;
int i=0,j ;
j = strlen(s) -1;
for( ;i<j; i++ , j――)
{
ch=s[i];s[i]=s[j];s[j]=ch;
}
printf( " % s\n" ,s) ;
}
34.请写出下面程序的运行结果。
# include "stdio. h"
int main(void)
{
int i,n;
for(i=10;i<15 ; i+=4)
{
n=i- 4 ;
printf( "\n% d, % d\tgcd= % d\n" ,i,n,gcd(i, n) );
}
return 0;
}
int gcd(int a, int b)
{
int t;
while(b)
{
t=a%b;a=b;b=t;
}
return a;
}
35.请写出下面程序的运行结果。
# include " stdio. h"
int main(void)
{
int i,score[10] = {88,78,46,91,43,32,63,72,21,83 } ;
bob_sort(score,10) ;
for(i= 0; i<10, i++)
printf( "%d," , score[i]) ;
printf( "\n") ;
return 0;
}
int bob_sort(int * p,int n)
{
int t,i,j;
for(i=0;i<n-2;i++)
for(j =0;j<n-2-i;j++)
if(* (p+j)> * (p+j+l))
{t= * (p+j); * (p+j) = * (p+j+l) ; * (p+j+l)=t; }
}
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.输入10个整数,先求后面9个数中大于第1个数的那些数的累加和,再输出这10个数以及累加和。
37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的1x.dat文件中。
(第一行的"$"在第20列)
$
$ $ $
$ $ $ $ $
$ $ $ $ $ $ $
自考试题下载地址: