欢迎来到四川自考网,今天是2020年8月21日

自考资讯热线:028-65656189

距离自考还有28

当前位置:首页 > 自学考试 > 历年试题 > 理工类专业 >

2011年4月全国自考计算机基础与程序设计试题

发布时间:2011-04-27 14:13:01

全国20114月高等教育自学考试

计算机基础与程序设计试题

课程代码:02275

一、单项选择题 (本大题共20小题,每小题1分,共20分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.计算机处理信息时,CPU一般是以一组二进制数码为单位进行处理的,这组二进制数码称 为(      )

A.word  B.MB 

C.KB  D.bit

2.下列不属于计算机硬件系统的是 (      )

A.操作系统  B.控制器 

C.存储器  D.运算器

3.下面转义字符中,表示换页的是 (      )

A.\0  B.\n 

C.\r  D.\f

4.在Turbo C 2.O中,保存源程序在主菜单File项中可选择(      )

A.Load  B.New 

C.Save  D.Quit

5.下面表达式结果为3的是 (      )

A.(-7)%4  B.(-7.O)%4.0 

C.7%(-4)  D.7.O%4.O

6.设有int x=2,y,z;执行z=y=x++;后变量z的值是 (      )

A.0  B.1 

C.2  D.3

7.下面不正确的关系表达式是 (      )

A.a=3  B.a

C.a=b D.abc

8.设有声明int x=1,y=2,z;执行z=x>y?x+2:y-2后变量z的值是 (      )

A.0  B.1 

C.2  D.3

9.设有int b=-1;则执行printf("%u\n”,b);后的输出是 (      )

A.-1  B.ffff 

C.177777  D.65535

10.下面程序段的输出结果是 (      )

 main()

 { int a=3,b=5,c;

 c=a+b;a=b;b=c;

 printf("%d,%d",a,b);}

A.3,5  B.5,3 

C.5,8  D.8,13

11.设有声明int x=-1;执行if(x<0)x=-x-1;后变量x的值是 (      )

A.-1  B.0 

C.1  D.2

12.关于break语句,以下说法不正确的是 (      )

A.它可以用于循环语句中

B.它可以用于switch语句中

C.可以从最内层循环结构中直接跳出最外层循环结构

D.可以从当前switch结构中跳出

13.下面能正确将字符串"Boy"进行完整赋值操作的语句是(      )

A.char s[3]={B′,′o′,′y′};  B.char s[]="Boy";

C.char s[3]={"Boy"};  D.char s[3];

 s[O]=′B′;s[1]=′o′;s[2]=′y′;

14.下列函数中向文件一次读一串字符的函数是 (      )

A.fgetc  B.fgets 

C.fputc  D.fputs

15.在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是 (      )

A.extern  B.register 

C.auto  D.static

16.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是 (      )

A.地址传递  B.单向值传递

C.由实参传给形参,再由形参传回给实参  D.由用户指定方式

17.设有声明语句int a[2][3],(*p)[3]=a;则对a数组元素正确引用的是 (      )

A.(p+1)[O]  B.*(*(p+2)+1)

C.*(p[1]+1)  D.p[1]+2

18.设有下面的结构体和结构变量定义: (      )

struct car

{

long id:

char*name;

};

struct car carl;

 关于结构体类型变量赋值不正确的是

A.carl.id=10101;  B.carl.name="BlueSky";

C.carl.* name="BlueSky";  D.carl.id=123456L;

19.设有声明和语句: (      )

unsigned int x=1,y=2;

x<<=y+1;

则x的值是

A.1  B.4 

C.5  D.8

20.设有下面程序: (      )

 #include"stdio.h"

 void main(void)

 {

 unsigned x=1,y=3,z=5;

 printf("%d\n",x | y);

 

 该程序的运行结果是

A.1  B.3 

C.5  D.7

二、多项选择题 (本大题共5小题,每小题2分,共10分)

在每小题列出的五个备选项中至少有两个是符合题目要求的, 请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。

21.与十进制10.625等值的数有 (          )

A.(10.101)2  B.(1010.101)2 

C.(12.101)8  D.(12.5)8 

E.(A.A)16

22.下面合法的C语言用户定义的标识符有 (          )

A.auto  B._123 

C.ABC  D.Turbo_c 

E.int

23.下面属于Turbo C 提供的数学函数有 (          )

A.acos  B.tan 

C.puts  D. sqrt 

E.exp

24.自定义函数有n1,n2,n3三个形式参数且为整型,函数正确的定义形式有(          )

A.int fun(int nl,n2,n3) {…}

B.int fun(int nl,int n2,int n3){…}

C.int fun(nl,n2,n3)

 int nl,n2,n3;{…}

D.int fun(n1,n2,n3)

 {int nl,n2,n3;…}

E.int fun(nl,n2,n3)

 {int n1,int n2,int n3;…}

25.设有关于结构体类型的定义:(          )

 struct mankind

 {

 char name[20];

 int age;

 float weight:

}person,*p;

下面各个供选项中语句都正确的有

A.person.name="Li";

 person.age=15;

B.strcpy(person.name,"Wang");

 Person->age=15;

C.p=&person;

 p->age=25;

D.strcpy(person.name,"Tom");

 p=&person;

E.strcpy(person.name,"Tom"),p=&person;

 p->weight=97.2;

三、简答题 (本大题共4小题,每小题4分,共16分)

26.设有下面程序:

 void main(void)

 {

 int x:

      x=1:

 while(x<20){

 printf("x=%d\n",x);

 x+=2:

 }

 }

请把程序改写为for结构。

27.声明语句char s[20]="computer";

 能用下面的语句替代吗?为什么?

 char s[20];

 s="computer";

28.设有说明:

struct node{

int num;

char name[12];

char sex;

float income;

}a,*ptr=&a;

 写出对ptr所指成员num,name,sex,income分别赋值123,"zhang",m′,654.25的赋值语句。

29.设有说明:unsigned x=10;试写出通过仅对x进行移位操作的表达式,使表达式的值为 16。

四、阅读分析题 (本大题共6小题,每小题5分,共30分)

30.阅读下列程序并写出运行结果。

void main(void)

{

 int x=1,y=2;

 char ch=′a′:

 x++;y-=2;++ch;

 printf("%c,%d,%d\n",ch,x,y);

}

31.阅读下列程序并写出运行结果。

void main(void)

{

int x=11;

switch(x-1){

case O:

printf("x=%d\n",x++);

break:

case 10:

printf("x=%d\n",x*2);

case 20:

printf("x=%d\n",x*4);

default:

printf("x=%d\n",x);

}

}

32.阅读下列程序,当依次输入11,l2,l3,14,16这5个数时,请写出程序的运行结果。

void main(void)

{

int x,i,s=O;

for(i=O;i<5;i++){

scanf("%d",&x);

if(x%2)continue;

printf("%d\t",x);

s+=x;

}

printf("\n");

printf("s=%d\n",s);

}

33.阅读下列程序并写出运行结果。

void main(void)

{

int x=3,y[7]={1,3,5,8,9,11,12};

int t=O,b=7,f=O,m;

m=(b+t)/2;

while(b-t>=O)

if(y[m]==x){f=1;

printf("\ny[%d]=%d\n",m,y[m]);

break;

}

else if(y[m]>x)

{

b=m-1;printf("%d\t",y[m]);

m=(b+t)/2;}

else{

t=m+1;printf("%d\t",y[m]);

m=(b+t)/2;}

if(! f)

printf("\n not find!\n");

34.阅读下列程序序并写出运行结果。

int fun(int y);

void main(void)

{

int x[4]={3,5,7,O},s=0,i=0;

while(x[i]){

s+=fun(x[i]);

i++;

printf("s=%d\n",s);

}

}

int fun(int y)

{

static int a=O;

a=a+y;

return a;

}

35.阅读下列程序并写出运行结果。

void f1(char*t,char*s);

void main(void)

{

char s1[20]="abcdl2345",t1[20]="xyz";

printf("%s\n%s\n",s1,t1);

f1(t1,s1);

printf("%s\n",t1);

}

void f1(char*t,char*s)

{

while((*t=*s)!=′\0′){

t++;

s++;

}

}

五、编程题 (本大题共2小题,每小题12分,共24分)

36.从键盘输入20个整数存放到数组a 中,计算数组a中下标为奇数的所有元素的和。

37.从键盘上输入20个字符存放到一个字符数组s中。对数组s中的元素按升序(由小到大)排序,再将排序后的结果写到c:\abc.dat文本文件中。