全国2012年4月自考计算机基础与程序设计试题
课程代码:02275
一、单项选择题 (本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.存储容量1KB等于 ( )
A.23字节 B.210字节
C.220字节 D.230字节
2.下面哪种设备是输出设备? ( )
A.扫描仪 B.键盘
C.鼠标 D.显示器
3.设有int a=3,b=-4,c=5;表达式++a-c+b++的值是 ( )
A.-6 B.-5
C.-4 D.-3
4.设有int x,y;表达式y=(x=1,++x,x+2)的值是 ( )
A.1 B.2
C.3 D.4
5.以十六进制形式输出整型数的格式说明符是 ( )
A.%x B.%u
C.%o D.%d
6.下列语句中,有语法错误的是 ( )
A.if(x>y);
B.if(x= =y)x+y;
C.if(x!=y) scanf(″%d″,&x)else scanf (″%d″,&y);
D.if(x<y){x++;y++;}
7.设有程序段 int x=1,y=-1;
if(y<0)x-=y;
else x+=y;
执行完该程序段后,x的值为 ( )
A.-1 B.0
C.1 D.2
8.下面程序段的循环次数是( )
int k=2;
while(k= =0) printf (″%d″,k);
k--;printf (″\n″);
A.0次 B.1次
C.2次 D.无限次
9.下面程序段的输出结果是( )
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
10.若有定义int a[4]={1,2,3,4};则表达式a[a[2]- 3*a[0]+1]的值是( )
A.1 B.2
C.3 D.4
11.在C语言程序中,关于函数的定义和调用,以下描述正确的是( )
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
12.关于main函数,以下说法中正确的是 ( )
A.C语言程序总是从有定义的函数起顺序执行,在main函数中结束
B.在C语言程序中,被调用的函数必须在main函数中定义
C.C语言程序中的main函数必须放在程序开始部分
D.C语言程序总是从main函数开始执行
13.若要定义一个长整型的变量a和一个指向变量a的指针变量q,下面正确的定义语句是( )
A.long a,*q=a; B.long a,*q=&a;
C.long*q=&a,a; D.long a,q=&a;
14.若有说明long int x[5];下面能正确表示数组元素地址的是( )
A.&x[3] B.&x
C.&x+1 D.*x
15.下面关于结构体类型的定义正确的是( )
A.struct ABC B.struct ABC
{ {
int a int a;
char b char b;
char *p char *p;
} }
C.struct ABC D.struct ABC
{ {
int a; int a,
char b; char b,
char *p; char *p,
}; };
16.下面列出的位运算符中,表示按位与操作的是 ( )
A.~ B.!
C.& D.^
17.下面各个位运算符优先级从左到右依次升高的是 ( )
A.> > | & ~ B.| > > & ~
C.| & > > ~ D.~ | & > >
18.设有说明:int u=1,v=3;表达式:u<<=v的值是( )
A.0 B.1
C.3 D.8
19.如果将文件指针fp指向文件末尾,正确的语句是 ( )
A.feof(fp); B.rewind(fp);
C.fseek(fp,0L,0); D.fseek(fp,0L,2);
20.若要在C盘TC目录下,建立一个a1.dat的文本文件,正确使用打开文件的函数是( )
A.fopen(″C:\\ TC \\ a1.dat″,″r″) B.fopen(″C:\ TC \ a1.dat″,″r″)
C.fopen(″C:\\ TC \\ a1.dat″,″w″) D.fopen(″C:\ TC \ a1.dat″,″w″)
二、多项选择题 (本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下面属于合法的C语句的有 ( )
A.表达式语句 B.函数调用语句
C.子程序调用语句 D.空语句
E.循环语句
22.下面循环语句中,没有“无限循环”错误的循环语句有 ( )
A.for(;;); B.for(i=1;i<10;i++);
C.while(1); D.while(0);
E.do{循环体)while(1);
23.设有声明:int a[5]={1,3,5,7,9);下面表达式的结果为10的有 ( )
A.a[l]+a[3] B.a[2]-2*a[1]
C.2*a[2] D.a[0]+a[4]
E.a[1]+[-a[2]+a[3]
24.若有如下定义及赋值:
int x=5,*p,*pl;
p=&x;
pl=p;
则可以输出变量x的值的语句有 ( )
A.printf(″%d\n″,x); B.printf(″%d\n″,*p);
C.printf(″%d\n″,p1); D.printf(″%d\n″,&x);
E.printf(″%d\n″,*p1);
25.设有关于结构体类型的定义:
struct boat
{ char name[10];
int weight;
}myboat,*ps;
下面各项中语句都正确的有 ( )
A.myboat.name=″Li″。
myboat.weight=1600;
B.ps=&myboat;
strcpy(ps->name,″Wuhan″);
C.ps=&myboat; ‘
Ps->weight=2700;
D.strcpy(myboat.name,″Wine″);
ps=&myboat;
E.ps=&myboat,strcpy(myboat.name,″Shanghai″);
Ps->weight=5512;
三、简答题 (本大题共4小题,每小题4分,共16分)
26.写出将x,y,z,w分别声明为整型变量、短整型变量、长整型变量和无符号整型变量的语句。
27.将下面for循环的程序段,用含while循环的程序段实现。
for(s=0,i=1;i<=10;i++)
s+=i;
28.简述声明语句:char *p[4];的含义。
29.设有声明:
struct cjd
{ long bh;
long int xq;
char xm[9];
float score[3];
}x={201101,2,″张大力″,76,85.0,90);
简单回答(1)结构体名;(2)结构体类型变量;(3)结构体类型变量所占字节数;(4)结构体成
员x.score[2]的值。
四、阅读分析题 (本大题共6小题,每小题5分,共30分)
30.写出下面程序的运行结果
main
{
int a=1,b=2,c=3;
++a;
b=b+a:
c=c/2;
printf(″%d,%d,%d\n″,a,b,c);
}
31.写出下面程序的运行结果
main
{
char ch;
ch=′a′;
switch(ch)
{
case′a′:printf(″*\n″);
case′b′:printf(″**\n″);
case′c′:printf(″***\n″);
}
ch=′b′;
switch(ch)
{
case ′b′:printf(″**\n″);
case ′a′:printf(″*\n″);break;
case ′c′:printf(″***\n″);
}
}
32.写出下面程序的运行结果
void main(void)
{
int x;
for(x=1;x<10;x+=2)
printf(″%d\t%d\n″,x,x*x);
}
33.写出下面程序的运行结果
#include<string.h>
main
{
char a[5][8]={ ″java″,″fortran″,″basic″,″cobol″,″pascal″},b[8],c[8];
int i;
strcpy(b,a[0]);
strcpy(c,a[0]);
for(i=1;i<5;i++)
{
if(strcmp(b,a[i])<0)strcpy(b,a[i]);
if(strcmp(c,a[i])>0)strcpy(c,a[i]);
}
printf(″%s\n″,b);
printf(″%s\n″,c);
}
34.写出下面程序的运行结果
void main(void)
{
int x;
for(x=1;x<=5;x++)
printf(″%d,%d\n″,x,fun(x));
}
int fun(int x)
{
static int fac=1;
fac*=x;
return fac;
}
35.写出下面程序的运行结果
void f2(char*t,char*s)
{
while(*t!=′\0′)t++;
while(*s!= ′\0′)
{
*t=*s:
s++;t++;
}
*t=*s;
}
void main(void)
{
char s[80]= ″ ″,*ps[3]={ ″there″,″is a″,″car″};
int i;
for(i=0; i<3;i++)
f2(s,ps[i]);
printf(″%s\n″,s);
}
五、编程题 (本大题共2小题,每小题12分,共24分)
36.从键盘输入10个整数并存放到一维数组中,计算下标为奇数的元素的累加和并输出运行结果。
37.从键盘上输入10个浮点型数,求出10个数的总和与平均值,并将总和与平均值写到d盘根目录下的文本文件array.dat中。