现在的位置: 首页 > 综合 > 正文

全国2006年7月高等教育自学考试计算机基础与程序设计试题

2018年05月24日 ⁄ 综合 ⁄ 共 12889字 ⁄ 字号 评论关闭

http://dl2.csdn.net/down4/20070704/04235250842.doc

  

计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.存储量1MB等于(   )
A.23字节                                                 B.210字节
C.220字节                                                D.230字节
2.下面数据中最小数是(   )
A.(0.1100)2                                               B.(0.64)8
C.(0.8125)10                                             D.(0.D)16
3.在Turbo C 2.0中,寻求在线帮助可按键(   )
A.F1                                                        B.F5
C.F9                                                        D.F10
4.设有 int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是(   )
A.-4                                                         B.0
C.1                                                          D.3
5.若有下列程序段,欲使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>
6.下面程序段的输出结果是(   )
main( )
{  int s, p;
s=p=5;
p=--s;
p++;++p;
printf(″%d/n″,p);
}
A.5                                                          B.6
C.7                                                          D.8
7.关于if语句下面叙述正确的是(   )
A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句
B.只有当if语句中表达式的值为假时,才执行if的内嵌语句
C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句
D.只要if语句中表达式的值非0时,就执行if的内嵌语句
8.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是(   )
main( )
{    int a,b,s;
scanf(″%d″, &a,&b);
s=a;
if(a<b) s=b
s=s*s;
printf(″%d″,s);
}
A.9                                                          B.12
C.16                                                        D.25
9.若int x=0; 则while(x==0); 的循环次数是(   )
A.0                                                          B.1
C.2                                                          D.无限次
10.下面程序段的输出结果是(   )
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
11.下面程序的输出结果是(   )
mian ( )
{   int a[5]={2,4,6,8,10},i;
i=2;
printf(″%d″,a[i++]);
}
A.2                                                          B.4
C.6                                                          D.8
12.下面程序的输出结果是(   )
main( )
{ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
   int i,j,k=0;
   for(i=0;i<3;i++)
k=k+a[i][0];
   printf(″%d/n″,k);
}
A.27                                                        B.33
C.39                                                        D.45
13.以下正确的函数定义形式是(   )
A. double fun(int x, int y)                           B. double fun(int x; int y)
C. double fun(int x, int y);                          D. double fun(int x, y);
14.关于变量以下不正确的说法是(   )
A.在不同函数中可以使用相同名字的变量
B.形式参数是全局变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量是局部变量
15.设有语句int a[4][10],*p=*a;则下列表达式中不是地址表达式的是(   )
A.&a[1][2]                                               B.a[3]
C.*(p+1*10+2)                                         D.p+1*10+2
16.下面关于结构体类型变量定义不正确的是(   )
A. struct score                                          B. struct
   {                                                            {
int math;                                                 int math;
int Chinese;                                             int Chinese;
    }Li, Wang;                          }Li, Wang;
 
C. struct score                                          D. struct score
 {                                                             {
int math;                                                  int math;
int Chinese;                                              int Chinese;
   };                                                           };Li, Wang;
struct score Li, Wang;
17.下面各个运算符的优先级从左到右依次降低的是(   )
A.& >>   |   ^                                    B.~   & >> |
C.>>   & ^   |                                     D.~ >> & ^
18.设有说明:int u=1, v=2;表达式:u+v<<2的值是(   )
A.-1                                                         B.1
C.9                                                          D.12
19.下面程序段中,不能完成的功能是(   )
FILE *fp;
char ch;
fp=fopen(″file1″, ″rb+″);
ch=fgetc(fp);
A.建立文件指针fp与文件file1的联系      B.从file1文件中读一个字符
C.向file1文件中写一个字符                     D.打开名为file1的二进制文件
20.在格式:fread(stu,size,n,fp);中,下面说法不正确的是(   )
A.stu是内存中存放数据的首地址             B.n表示读n次
C.size是一个数据块的字节数                   D.fp表示文件指针
二、多项选择题(本大题共5小题,每小题2分,共10)
在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.微机系统的主机包含的部件有(     
A.输入设备                                              B.存储器
C.输出设备                                              D.运算器
E.控制器
22.下面各选项中,能正确进行字符串操作的有(     
A. char s[ ]={′a′, ′b′, ′c′, ′d′, ′e′, ′/0′};
B. char s[10];s=″abcde″;
C.char s[10];strcpy(s, ″abcde″)
D.char s[10];getchar(s);
E.char s[10];gets(s);
23.若有以下定义和语句,则能正确表示数组a首元素地址的表达式有(     
double a[5],*p1
p1=a;
A.a                                                          B.p1+1
C.*p1                                                       D.&a[1]
E.p1
24.设有说明: int u=1, v=3, w=7;下面表达式的值为3的有(     
A.w>>1&v|u                                            B.u&v&w
C.u|v&w                                                  D.w&v<<1
E.v^w|u
25.在C语言中,下面关于文件说法正确的有(     
A.按数据的组织形式,可分为文本文件和二进制文件
B.文件只能是ASCII码文件
C.文件能用fopen( )函数打开
D.文件只能是二进制文件
E.对打开的文件可以进行读或写操作
三、简答题(本大题共4小题,每小题4分,共16分)
26.简述C语言中标识符的命名规则并说明C语言中哪些名是用标识符来标识的?
27.变量有哪几种存储类别?指明它们存储数据的区域。
28.定义char*str=″computer″;是将字符串″computer″赋值给变量str,这种说法对吗?为什么?
29.设有说明:
struct flower {char *part; char * color;} mum;
char*part_of_flower[3]={ ″花″,″茎″,″叶″};
char*seven_color[7]={ ″赤″,″橙″,″黄″,″绿″,″青″,″蓝″,″紫″};
试写出将mum的成员part定义为″花″、成员color定义为″黄″的C语句。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.阅读下面程序,写出运行结果。
main( )
{ int a=789, x,y,z;
   x=a/100;
   y=a/10-10*x;
   z=a-10*y-100*x
printf(″%d,%o,%x,%d″, x,y,z,100*z+10*y+x);
}
31.阅读下面程序,并回答问题:
main( )
{ int a,b,x,y;
   scanf(″%d,%d″,&a,&b);
   x=a*a+b*b
   if(x>100)
   {y=x/100;printf(″%d″,y);}
   else printf(″%d″,a+b);
}
(1)若程序运行时,输入6和9,输出结果是什么?
(2)说明程序的功能。
32.阅读下面程序,并回答问题:
main( )
{ int u,v,a,b,t,r;
   u=24;v=16;
   if(u>v){t=u;u=v;v=t;}
   a=u;b=v;
   while ((r=b%a)!=0)
{b=a;a=r;}
   printf(″a=%d/n″,a);
}
(1)程序输出结果是什么?
(2)该程序完成什么功能?
(3)若将while循环替换为do-while循环,请写出相应的程序段。
33.阅读下面程序,写出运行结果。
int a=5, b=5;
chang1( )
{ int a=4;
   printf(″a1=%d,b1=%d/n″,a,b++);
}
chang2(int a, int b)
{ a++; b--;
}
main( )
{ chang1( );a++,b++;chang2(a,b);
   printf(″a2=%d,b2=%d/n″,a,b);
}
34.阅读下面程序,写出运行结果。
#include <stdio.h>
#include <string.h>
main( )
{ char p1,p2,srt[50]= ″abc″, str1[50];
   p1=″abc″;p2=″abc″;
   puts(str);
   strcpy(str1,p1);
   p1=str1;
   printf(″%s/n″,strcat(p1,p2));
   strcpy(str+1,p1);
   printf(″%s/n″,str);
}
35.设有说明语句int*p; 请分析下面语句的含义:
p=(int *)malloc(sizeof(int));
free(p);
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘输入n*n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。
37.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的1x.dat文件中。(第一行的″$″在第20列)
      $
    $ $ $
 $ $ $ $ $
$ $ $ $ $ $ $
2007-4
 

计算机基础与程序设计试题
课程代码:02275
一、单项选择题(本大题共20小题,每小题1分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.I/O设备指的是计算机的                                                        (   )
A.存储设备                B.输入和输出设备    C.控制器            D.运算器
2.具有只读功能的内存储器是指                                               (   )
A.ROM                       B.RAM                     C.硬盘               D.CD-ROM
3.十进制数-5在八位的微机内的存储形式是                                  (   )
A.00000101                B.10000101               C.11111010         D.11111011
4.C语言源程序的基本单位是                                                   (   )
A.过程                       B.函数                      C.子程序            D.语句
5.设有int p,q;以下不正确的语句是                                       (   )
A.p *=3;                   B.p/=q;                   C.p+=3;           D.p&&=q;
6.若有下列程序段,欲使a=2,b=3,对应正确的数据输入方法是(其中<CR>表示换行)
                                                                                                  (   )
    int a,b
    scanf("%d%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 x=0,y=2;
则执行 if(x=0) y=1+x;
else y=x-1;
后,变量y的值是                                                               (   )
A.-1                           B.0                           C.1                     D.2
8.下面程序的输出结果是                                                          (   )
main( )
{
int x=5,y;
if(x>0)
 y=1;
y=0;
if(x<0)
 y=-1;
printf("%d",y);
}
A.-1                           B.0                           C.1                     D.5
9.执行下面程序段后,输出字符B的个数是                              (   )
   x=0;
   while(x<=5){
     printf("B");
      x+=2;
}
A.0个                        B.3个                       C.5个                D.6个
10.在下述程序中,for循环执行的次数是                                  (   )
    main( )
{
int i =0,j=10,k=2,s=0;
for(; ;)
{
i+=k;
if(i>j)
{
printf("%d/n",s);
break;
}
s+=i;
}
}
A.4                             B.5                           C.6                     D.7
11.若有定义:int a[10];则数组元素的下标的下限和上限分别是(   )
A.0和1                      B.1和9                    C.0和9              D.1和10
12.下列说法不正确的是                                                            (   )
A.一个源程序文件由一个或多个函数组成    
B.一个C程序由一个或多个源程序文件组成
C.一个C程序以函数为独立的编译单位       
D.一个C程序必须有一个main( )函数
13.在C语言中,确定函数返回值的类型由                               (   )
A.return语句中的表达式类型决定                 B.调用该函数的主函数类型决定    
C.调用函数时临时决定     D.定义函数时所指定的函数类型决定
14.若有以下定义和语句,且0≤i<10,则对数组元素地址的正确表示是
                                                                                                  (   )
    int a [ ]={0,1,2,3,4,5,6,7,8,9},*p;
    p=a;
A.&(a+1)                    B.a++                       C.&p                  D.&p[i]
15.若有以下说明:
   char s[10]=“ABCDEFGH”,*p=s;
   不能表示字符C的是                                                             (   )
A.s[2]                         B.s[3]                       C.s['c'-'a']     D.*(p+2)
16.有下列程序:
    func(int x, int y, int*jia, int*jian)
    {*jia=x+y;
     *jian=x-y;}
    main( )
{int i =10,j=3,x1,x2;
   func( i ,j,&x1,&x2 );
   printf("%d,&d/n",x1,x2);}
则其运行结果是                                                                          (   )
A.0,0                       B.10,3                    C.13,7              D.7,13
17.设有结构体的定义如下:
    struct data{
      int n;
      char c;
      float f;
    };
则sizeof (struct data)的值是                                                         (   )
A.1                             B.3                           C.7                     D.11
18.如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是
                                                                                                  (   )
A.#include<stdio. h>          B.#include<math. h>                       
C.#include<string.h>          D.#include<malloc.h>
19.设有说明:int x=12,y=3;则x¦y的值是                                (   )
A.0                             B.3                           C.12                   D.15
20.测试文件是否结束函数的函数名是                                       (   )
A.feof                         B.EOF                      C.eof                  D.FEOF
二、多项选择题(本大题共5小题,每小题2分,共10分)
在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
21.下列设备中属于外存储设备的有                                          (     )
A.RAM                             B.光盘                C.硬盘
D.软盘                             E.磁带
22.设a=1,b=3,c=0;下面表达式的值为1的有                           (     )
A.!a&&b| |a&&(c+1)         B.a-b+3            C.(a>b)==c
D.(a=0)&&(b=10)             E.b>a&&a>c
23.设有说明:char s[20];                                                       (     )
    下面各项中能够正确的将一个字符串"abcd"赋给s数组的有
A.s="abcd";                  B.gets(s);            C.scanf("%s",s);
D.strcpy(s,"abcd");       E.strcpy("abcd",s);
24.关于结构体,下面各项中不正确的有                                   (     )
A.struct person{long bh; char *name; int age;}
   psl={9100,"wang",20},* pst;
   pst=psl; printf("%d",*pst→age);
B.struct my_data              
   {int num; struct my_data *next;};
C.struct test
   {char *course; char *class}
D.struct worker
   {char name[9]; float gz;}Li={"Li Ping",532.67};                   
E.struct int_num
{int i _num;struct int_num *next; }ione, *pi;
pi=&ione;
25.设有说明:int x=1,y=2,z=3;则下面表达式的值为0的有(     )
A.x&y&z                          B.x¦y¦z           C.x^x+y^y
D.z>>y                             E.x&0xff00
三、简答题(本大题共4小题,每小题4分,共16分)
26.C语言中的运算符“=”与运算符“= =”的意义相同吗?为什么?
27.变量的存储类别分为哪几种?它们分别存储在什么区域?
28.试定义一个三行的二维字符数组s,并用"I am a boy", "you are a girl", "he is a teacher"对其进行初始化。
29.设有说明:int a[2][3];
    请用四种方式来表示数组元素a[1][2]。
四、阅读分析题(本大题共6小题,每小题5分,共30分)
30.从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65)
 #include"stdio.h"
 main( )
{
char ch;
ch=putchar(getchar( ) );
printf(",%d,%o,%c",ch+1,ch+1,ch+32);
}
31.阅读下面程序:
   void main(void)
   {
    int s=0,n=0,x;
   label: scanf("%d",&x);
 if(x>0){
    s+=x;
   n++;
 printf("s=%d,n=%d,even=%f/n",s,n,1.0,*s/n);
   }
if(x!=0)
 goto label;
else
   printf("good bye!");
}
当依次输入12 -3 -6 5 13 0↙时,写出程序的运行结果。
32.阅读下面程序,写出程序的运行结果。
    char a [ ]={'9','8','7','6','5','4','3','2,'1','0','/0'};
    void main (void)
{
int i =8,j;
for(j=0;j<4;j++)
printf("%s/n",&a[i -j ]);
}
33.请写出下面程序的运行结果。
   long fun (int k )
{
 long fac;
 if(k= =0)
return 1;
else
{
fac=k* fun(k-1);
printf("fac=%ld/n",fac);
}
return fac;
}
void main(void)
{
int n=3;
printf("result=%ld/n",fun(n+1)/n);
}
34.阅读下面程序,写出运行结果。
 #include<stdio.h>
 #include<string.h>
 void f(char *s)
{
char *t, c, *p=s;
for(t=s+strlen(s)-1;s<t;s++,t――)
{
 c=*s,*s=*t,*t=c;
printf("%s/n",p);
}
}
void main (void)
{
 char a [20]="abcdefg";
f(a);
}
35.阅读下面程序段,说明其功能:
   int x, y=0,k; FILE* fp;
   fp=fopen("data.txt","rb");
for(k=0;k<5;k++)
 fread(&x,sizeof(int),1,fp),y+=x;
printf("%d,"y);
fclose(fp);
五、程序设计题(本大题共2小题,每小题12分,共24分)
36.从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素
的累加和并输出该累加和。
37.在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12
月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字。若输入的整数不在1~12之间,则打印“Illegal month”。

抱歉!评论已关闭.