全国2012年4月高等教育自学考试计算机基础与程序设计真题(清晰word版)

时间:2015-02-09 19:28:19

微信搜索关注"91考试网"公众号,领30元,获取事业编教师公务员等考试资料40G

一、单项选择题 (本大题共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!=′′)t++;

   while(*s!= ′′)

   {

     *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中。


微信搜索关注"91考试网"公众号,领30元,获取公务员事业编教师考试资料40G
【省市县地区导航】【考试题库导航】
 ★ 自学考试省级导航 ★ 
全国 A安徽 B北京 C重庆 F福建 G广东 广西 甘肃 贵州 H河南 河北 湖南 湖北 黑龙江 海南 J江苏 江西 吉林 L辽宁 N内蒙古 宁夏 Q青海 S山东 山西 陕西 四川 上海 T天津 X新疆 西藏 Y云南 Z浙江 历年真题分类检索
 ★ 自学考试导航 ★ 
 ★ 自考报名 ★ 

电脑版  |  手机版  |  返回顶部