计算机真题(珍藏版)(部分有答案)

2025-04-29

全国自考计算机基础与程序设计历年真题

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

课程代码:02275

一、单项选择题 (本大题共20小题,每小题1分,共20分) 1.与十进制数49等值的二进制数是(D ) A.101111 B.110000 C.110001 D.110010 2.编译程序的功能是(B )

A.修改并建立源程序 B.将源程序翻译成目标程序 C.调试程序 D.命令计算机运行可执行程序 3.Turbo C 2.0中,若定义long b;则变量b在内存中分配的字节数是(C ) A.1个 B.2个 C.4个 D.8个

4.下列语句中不能实现循环结构的语句是(A )

A.if语句 B.while语句 C.do—while语句 D.for语句 5.以下程序的输出结果是( ) main()

{ int y=10; while(y——); printf(\%d”,y); }

A.y=-1 B.y=0 C.y=1 D.y=随机值 6.下列程序的输出结果是( ) main()

{ int a[10]={l,2,3,4,5,6,7,8,9,10};

printf(″%d\n″,a[2]); }

A.1 B.2 C.3 D.4

7.下面程序的输出结果是( ) #include #include main()

{ char p1[10]= ″abc″,p2[]=″ABC″; strcat(p1,p2);

printf(″%s\n″,p1); }

A.abcabc B.abc C.ABC D.abcABC

8.设有int x=2,y,z;执行z=y=x++;后变量x的值是( ) A.0 B.1 C.2 D.3

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

{ int a=2,b=5;

printf(″a=%%%d,b=%%9%d″,a,b);}

A.a=2,b=5 B.a=2%,b=5% C.a=%2,b=%5 D.a=%d,b=%d

10.若有下列程序段,欲使a=2,b=3,对应正确的数据输入法是(其中表示回车) ( )

int a,b;

scanf(″%d,%d″,&a,&b);

1

A.2

B.a=2,b=3 3

C.a=2b=3 D.2,3

11.若运行时给变量x输入12,则以下程序的运行结果是( ) main()

{ int x,y;

scanf(″%d″,&x); y=x>12?x+10:x-12; printf(″%d\n″,y); }

A.0 B.10 C.12 D.22

12.若执行下列程序时,从键盘上输入3和4,则输出结果是( ) main()

{ int a,b,s;

scanf(″%d%d″,&a,&b); s=a:

if(a

printf(″%d\n″,s); }

A.9 B.16 C.18 D.20

13.C语言的auto型变量存储在( )

A.动态存储区中 B.静态存储区中 C.计算机CPU的寄存器中 D.外存储器中 14.以下程序的输出结果是( ) ff()

{ int a=l,c=8; static int b=4; if(b= =4) {a+=c;b++;} else

(a+=c;b--;)

printf(″a=%d,b=%d\n″,a,b); }

main()

{ff();ff();} A.a=9,b=5 B.B.a=9,b=4 a=9,b=5 a=9,b=4 C.a=9,b=4 D.a=9,b=5 a=9,b=5 a=9,b=4

15.设p1和p2是指向同一个字符串的指针变量,且c为字符型变量,则以下不能正确执行的赋值语句是( )

2

A.c=*p1+*p2; B.p2=*p1; C.p1=p2; D.c=*p1*(*p2); 16.以下选项中,对指针变量p的正确操作是( )

A.int a[5],*p;p=&a; B.int a[5],*p;p=a; C.int a[5];int *p=a[5];D.int a[5];int*p,p2=a;*p=*p2; 17.设有下面的结构体和结构变量定义: struct student {

long id: char*name; int math; };

struct student studl;

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

A.studl.id=1001;studl.name=″Tom″; B.id=1001;*studl. name=″Tom″;

C.studl.id=1001;studl.*name=″Tom″; D.studl.id=1001L;*studl.name=″Tom″; 18.设有说明:int x=7,y=1;表达式:x&~y的值是( ) A.0 B.2 C.4 D.6

19.设有说明:int u=1,v=14;表达式:u|v>>2的值是( ) A.-1 B.1 C.3 D.4

20.设有说明:FILE*fp;char filename[10]= ″myfile″;对于fp=fopen(filename, ″rb+″);语句,下面说法正确的是( )

A.打开名为myfile的文件读写 B.打开名为filename的文件读写 C.打开名为myfile的文件只读 D.打开名为filename的文件只读

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

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

21.下列属于计算机的输入设备的有(CDE ) A.CD—ROM B.打印机 C.键盘 D.鼠标 E.扫描仪

22.设有int a=3,b=-5;下面表达式值等于0的有( C) A.!a B.!b&&b C.5/6 !=0 D.a%3!=0 E.b+a ==-2 23.下列有关函数的说法中不正确的有(AB E)

A.C语言程序总是从首定义的函数起顺序执行 从主函数执行

B.在C语言程序中,被调用的函数必须在main()函数中定义 在定义部分定义 C.C语言程序中的main()函数必须放在程序开始部分 D.C语言程序总是从main()函数开始执行 E.定义函数时,参数表中可以没有任何参数

24.若有定义int a[5],i,*p=a;且0≤i<5,则对a数组元素的正确引用有( ) A.a[i] B.*(a+i) C.*(p+i) D.*(&a+i) E.p+i

25.设有说明:int x=0,y=1,z=2;则下列表达式中结果非0的有( ) A.~x&y B.x&y&z C.z>>2 D.(y<<1)&z E.y&z

三、简答题(本大题共4小题,每小题4分,共16分) 26.写出for语句的一般形式及执行过程。 27.函数fputc()的功能是什么?

28.将下面的各种运算符按优先级从高到低排列出来。(相同优先级的用“、”号分隔,不同优先级的按由高到低的顺序用“→”号分隔)

3

,、?:、>=、==、/、()、!、||、&&、=

29.若有char strl[20],str2[20];简述下面各函数调用的功能。 (1)gets(strl)

(2)strcmp(strl,str2)

四、阅读分析题 (本大题共6小题,每小题5分,共30分) 30.写出下列程序的运行结果。 main()

{ int a=10,b=8,c; c=a; a=b; b=c;

printf(″a=%d,b=%d\n″,a,b); }

31.写出下面程序的功能;如果输入6和9,写出程序的输出结果。 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); }

32.写出下面程序的功能及运行结果。 main() {

int n=1,sum=0; do{

sum=sum+n; n+=2;

}while(n<100);

printf(″sum=%d\n″,sum); }

33.写出下面程序的功能和运行结果。 int fun(int a[][4]) { int i,j,k,tem tem=a[0][0]; for(I=0;i<3;i++) for(j=0;j<4;j++)

if(a[i][j]

main()

{ int b[3][4]={{1,3,-5,7},{2,4,-6,8},{10,20,-30,40}}; printf(″%d\n″,fun(b)); }

4

34.下列程序中字符串中各单词之间有一个空格,写出程序的输出结果。 #include #include main()

{ char str1[]=″How do you do″; puts(str1);

strcpy(str1+str1en(str1)/2,″es she″); printf(″%s\n″,str1); }

35.写出下列程序的功能和运行结果。 #include reverse (char *s) { char*t,ch;

for(t=s+strlen(s)-1;s

main()

{ char*s1=″123456″; reverse(s1);

printf(″%s\n″,s1); }

五、编程题 (本大题共2小题,每小题12分,共24分) 36.编程求20至100之间素数的累加和并输出该累加和。 37.编程生成以下A、B两个数组(不得使用输入语句输入数据或对数组初始化),将两数组对应元素相加写入C数组中,最后并排输出A、B、C三个数组

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

课程代码:02275

一、单项选择题(本大题共20小题,每小题1分,共20分) 1.内存每个基本单元都有唯一的序号,这个序号称为( C ) A.地址 B.字节 C.代码 D.字 2.计算机对编译型高级语言的执行方式是( C ) A.逐条语句边解释边执行,即解释一条就执行一条 B.将整个程序编译完成后再执行,不生成目标代码 C.将源程序编译成目标程序,执行连接后的程序 D.将源程序解释完毕后再执行

3.下列转义字符中,表示换行的是( B ) A.\0 B.\n(回车换行) C.\r(回行不回车) D.\f 4.unsigned long型数的取值范围是( D )

15153131

A.-2~(2-1) B.-2~(2-1)

1632

C.0~(2-1) D.0~(2-1) 5.设有int a=3;表达式a十=a *=a *=a的值是( D ) A.3 B.9 C.81 D.162 6.下列四种运算符中,优先级最低的是( D )

5

A.>= B.! C.&& D.|| 7.下列程序段的输出结果是( A ) main( ) {

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

printf(″%d,%d\n″,a,b); }

A.3,5 B.5,3 C.5,8 D.8,3 8.下列程序段所表示的逻辑关系是( B ) if(a

2a?b且c?d??1a?b且c?d

2a?b且c?d?B.x=??1a?b且c?d ?2a?b ?1a?b且c?d ?2a?b C.x=?D.x=?9.执行下列程序段后,i的结果是( B )

int i=10; switch(i){

case 9:i+=l;break; case 10:i+=l;break; case 11:i+=1;break; default:i+=1;break; } A.10 B.1l C.12 D.13 10.下列程序段的输出结果是( ) a=100; do a=a+l;

while(a>120);

printf(″%d″,a); A.100 B.101 C.120 D.121

11.关于break和continue语句,下列说法正确的是( ) A.在循环体中可以用break语句结束本次循环 B.在循环体中可以用continue语句结束本次循环 C.break语句仅能使用在switch结构中 D.可以使用continue语句跳出switch结构

6

12.若有定义int a[4]={l,2,3,4};则a[a[0]+2 * a[2]-a[3]]等于( ) A.1 B.2 C.3 D.4

13.定义如下变量和数组,则下列程序段的输出结果是( ) int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

if(i % 2!=1) printf(″%d″,x[i][i]); A.19 B.17 C.37 D.39

14.若有定义static char str2[10],strl[ ]=″China″;欲将strl中的字符串拷贝到str2中去,下列正确的语句是( )

A.strcpy(str2,strl); B.strcpy(strl,str2); C.strcpy(″China″,str2); D.strl=str2; 15.下列关于C程序的说法中不正确...的是( ) A.一个源程序文件由一个或多个函数组成 B.一个C程序可以有多个名字为main的函数 C.一个C程序由一个或多个源程序文件组成 D.一个C程序必须有一个main函数

16.用数组名作为函数调用时的实参,实际上传递的是( ) A.数组全部元素的值 B.数组第一个元素的值 C.数组的首地址 D.数组元素的个数 17.设有函数( )

void print _value(int * x) {printf(″%d\\n″,+ + * x);}

执行程序段int a=25;print_value(&a);的正确输出是 A.23 B.24 C.25 D.26 18.语句float *p [6];的含义是( )

A.p是一个数组,有6个元素,每个元素都是浮点数 B.p是一个指针,指向有6个浮点数据的数组

C.p是一个指针数组,有6个元素,每个元素都是浮点型指针 D.p是一个指针,指向一个浮点数 19.设有下列程序( )

# include ″stdio.h″ void main(void) {

unsigned x=1,y=2;

printf(″%d\\n″,~(x&y)); }

该程序的运行结果是 A.-1 B.0 C.1 D.2

20.设有说明:FILE * fp;对于fp=fopen(″c:\\\\abc.dat″,″r+″);语句,下列说法正确的是A.打开ASCII文件读写 B.打开二进制文件读写 C.打开ASCII文件只读

D.打开二进制文件只读

7

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

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

21.下列数据中等值的有( ) A.(0.100)2 B.(0.101)2 C.(0.5)8 D.(0.625)10 E.(0.A)16

22.下列有关switch语句的说法中正确的有( A BDE ) A.switch后面的表达式可以为任意类型(整型、字符型) B.case后的每个常量表达式的值必须互不相同

C.若case后面有两个或两个以上的执行语句,必须加花括号

D.一个case对应一组执行语句,多个case不可共用同一组执行语句 E.default部分可有可无

23.下列对数组赋初值正确的有( ) A.int a[ ][ ]={l,2,5,8,3,7}; B.int a[ ][3]={1,2,5,8,3,7}; C.int a[2][3]={1,2,5,8,3,7}; D.int a[2][ ]={1,2,5,8,3,7}; E.int a[3][3]={l,2,5,8,3,7}; 24.若有说明:int a[ ]={1,2,3,4,5,6,7,8,9,0},i;当0≤i<10时,下列对数组元素地址正确的表示有(A.&a+l B.a+l C.a++ D.&a[i] E.a+i

25.下列关于结构体类型的定义正确的有( ) A.struct river B.struct river C.struct { { {

int branch; int branch; int branch; char name[20]; char name[20]; char name[20]; }; } } D.struct E.struct river { {

int branch; int branch; char name[20]; char name[20];

}; struct river * next;

};

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

26.假设字长为8位,请写出-1的原码和补码。原码;10000001 补码;11111111 27.写出for语句的一般形式并分析循环体被执行的条件。 28.字符数组的初始化与字符串指针变量的初始化有什么不同?

29.语句fwrite(stu,size,n,fp);中stu、size、n和fp的含义各是什么? 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下列程序并写出运行结果。 void main (void)

{ int a=987,b=l00,x,y;

8

y=b; x=a/b;

print (\

}

31.阅读下列程序,若输入0,3并回车,则程序的输出结果是什么? void main(void) { int x,y,z;

scanf (\&x,&y); if(x

{z=x;x=y;y=z;}

print (\}

32.下列程序的功能和输出结果是什么? void main(void)

{ int k=0,total=0; while(k<=100){

total+=k; k++;}

print(\}

33.阅读下列程序并写出运行结果(注:A的ASCII码值为65,a的ASClI码值为97)。 void main(void) { int i=64;

char s[20],* p=s; while(i++<=73){

* p=i%2==0? i+32:i; p++; }

* p=′\\0′;

printf(\}

34.阅读下列程序并写出运行结果。 int fib(int n) {

static int f0=0,fl=l,i,f; for(i=3;i<=n;i++){

f=f0+fl;f0=fl;fl=f;

printf(\}

return(f); }

void main(void) {

printf(\}

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

9

#include\#include\struct planet {

char name[20]; double weight;

struct planet * next; } * head=NULL; void main(void) {

struct planet * p;

char * planet_name[3]={\

double planet_weight[3]={25455700.565,11253300.437,7286320.512}; int j;

for(j=0;j<3;j++) {

p=(struct planet * )malloc(sizeof(struct planet)); strcpy(p->name,planet_name[j]); p->weight=planet_weight[j]; p->next=head; head=p; }

p=p->next;

printf(\}

五、程序设计题(本大题共2小题,每小题12分,共24分) 36.从键盘上输入20个整数,求其中正数的累加和并输出结果。

37.在文本文件c:\\pxl.dat中有10个实型数据(每两个数之间用逗号隔开),编程将这10个数按从小到大排序后,写到文本文件c:\\xpl.dat中。

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

课程代码:02275

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

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

1.衡量存储器的基本单位是(A ) A. bit B. byte C. KB D. word 2.Windows操作系统是( ) A. 单用户、单任务 B. 单用户、多任务 C. 多用户、单任务 D. 多用户、多任务

10

3.组成微机主存储器的是( ) A. CD—ROM和RAM B. 硬盘和RAM C. 硬盘和CD—ROM D. ROM和RAM 4.下列数据中最大数是( ) A. (1010010)2 B. (123.4)8 C. (84.5)10 D. (55)16

5.在Turbo C 2.0中,运行一个程序后,要查看运行结果可按键( ) A. Alt+F1 B. Alt+F5 C. Alt+F9 D. Alt+F10 6.下列是合法C语言常量的是( ) A. e B. 7E4.0 C. E4 D. -9.13E-30

7.设有int a=3,b=-4,c=5;表达式(a

{ int x=5,y; if(x<0)y=-1; if(x==0)y=0; y=1;

printf(″%d″,y); } A. -5 B. -1 C. 0 D. 1 10.下列程序段的输出结果是( )

i=1;

while(i<3){ j=1;

while(j<=i){

printf(″%d″,i+j); j++; } i++;

printf(″\\n″); }

A. 2 3 3 4 B. 2 3 4 C. 2 3 D.2

3 4 3 4

11.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是(A. puts (str1,str2) B. puts (str2) C. putchar (strl) D. putchar (str1,str2) 12.下列关于函数的说明中不正确...

的是( )

11

A. 函数名后面可以不要一对圆括号 B. 函数参数类型必须作说明

C. 函数形参个数可以是一个、多个或没有 D. 空函数被调用时不做任何工作

13.若有定义:int a[5];则a数组中首元素的地址可以表示为( ) A. &a B. a+1 C. a D. &a[1]

14.设有char ?s=″\\ta\\017bc″;则指针变量s指向的字符串在内存中所占的字节数是

( )

A. 5 B. 6 C. 7 D. 9 15.下列关于结构体类型的定义正确的是( ) A. struct tree B. struct tree { int branch; { int branch; char name[20]; char name[20], char ? relation; char ? relation, }; }; C. struct tree D. struct tree { int branch { int branch; char name[20] char name[20]; char ? relation char ? relation; } }

16.下列各个位运算符的优先级从左到右依次降低的是( ) A. | & ? > > B. ? & > > | C. ~ > > ? | D. ~ > > | ?

17.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是( ) A. 3 B. 5 C. 6 D. 8 18.设有下列程序:( ) #include″stdio.h″ main( ) {

unsigned x=8,y=2;

printf(″%d\\n″,y|~(x&y)); }

该程序的运行结果是 A. -1 B. 0xff C.127 D. 65535

19.若有定义∶# define P(x) x ? x ?x+1和说明语句:int a=2;则表达式P(2)的值是( ) A. 6 B. 8 C. 9 D. 10 20.在语句fgets(str,n,p);中,下列说法不正确的是( ) ...A. str是字符指针 B. 一次可以读n个字符 C. str是字符数组名 D. 一次可以读n-1个字符 二、多项选择题(本大题共5小题,每小题2分,共10分)

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

12

选或未选均无分。

21.下列关于计算机的叙述中正确的是( ) A. CPU是计算机系统的部件 B. I/O设备不是计算机系统的部件

C. 计算机区别于其他计算工具的本质特点是能存储数据 D. “裸机”是指不配置任何软件的计算机 E. 计算机指令是控制计算机进行操作的命令

22.设有int a=3,b=-5;下列表达式的值等于1的有( ) A. a&&b<0 B. fabs(b)-a-1>0 C. a>b&&b<0 D. (a,2,-5)==(b,2,a) E. a+b<0

23.下列关于break、goto、continue语句的说法中正确的是( ) A. break语句能够用于循环语句中 B. break语句不能用于switch语句中

C. goto语句可以用于直接从多层循环中退出 D. continue语句可用于跳出循环体

E. continue语句不能用于switch语句中

24.若有定义:int y[4][4],( ?p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是(A. printf (″%d\\n″,&y[2][0]); B. printf (″%d\\n″, y[2][0]); C. printf (″%d\\n″,p[2][0]); D. printf (″%d\\n″, y[2]); E. printf (″%d\\n″, ? (? (y+2)); 25.设有关于结构体类型的定义: struct worker {

int id;

char ? name; float salary;

} wl={102035,″Lihua″,2560.50},? p; 下列选项中语句语法正确的有( ) A. p=wl; B. p=&wl; C. p->id=wl->id D. p->id=wl.id; E. p.salary=wl.salary;

三、简答题(本大题共4小题,每小题4分,共16分) 26.有无default对switch语句有什么不同的影响? 27.写出do-while语句的一般形式及其执行过程。

28.定义 char a[ ]=″I am a student.″, ? str=a;等价于

char a[ ]= ″I am a student.″, ? str;

str=a; 吗?为什么?

29.设有说明:

struct vegetable {

char ? part; char ? color; } clove;

char ? part _ of _ vegetable [3]={″AA″,″BB″,″CC″};

13

char ? seven _ color={″11″,″22″,″33″,″44″,″55″,″66″,″77″}; 请分别写出将clove的成员part指向″BB″,成员color指向″55″的C语句。 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读分析下面程序后,写出程序的运行结果。 # include ″stdio.h″ main ( ) {

int a=978,x,y,z,i,j,w; x=a/100;

y=(a-100 ? x)/10; z=a-10? y-100 ? x; i=y>z? z:y; j=y<=z? z:y;

w=100 ? x+10 ? i+j;

printf(″%d,%d,%d,%d\\n″,x,y,z,w); }

31.阅读分析下面程序后,写出程序的运行结果。 # include ″stdio.h″ main( ) {

int n,m;

for(n=1;n<=5;n++) {

for(m=1;m<=4;m++)

printf(″M″,m ? n); printf(″\\n″); } }

32.阅读分析下面程序后,写出程序的运行结果。 #include″stdio.h″ main ( ) {

int arr[10],i,k=0; for(i=0;i<10;i++) arr[i]=i;

for(i=1;i<=4;i++) {

k+=arr[i]+i;

printf(″]″,k); } }

33.阅读分析下面程序后,写出程序的运行结果。 #include″stdio.h″ int fun(int x) {

int p;

14

if(x==0||x==1) return(3); p=x-fun(x-2);

printf(″]″,p); return (p); }

main( ) {

fun(9); }

34.阅读下面程序,分析cat函数的功能并写出程序的运行结果。 #include″stdio.h″

void cat(char ? s,char ? t) {

while(?s) s++;

while((? s++=? t++)!=′\\0′); }

main( ) {

char sl[80]=″computer″,s2[80]=″Pentium_″; cat(s2,s1);

printf(″% s\\n″,s2); }

35.阅读分析下面部分程序: struct cjd {

char name[9];

float score[2][2]; } x;

float t[2][2]={70.5,65.0,83.0,92.5}; int j,k;

请用for循环将t数组中的元素依次赋给结构变量x中score数组的对应元素。 五、程序设计题(本大题共2小题,每小题12分,共24分)

36.请编程从键盘上输入十个整数,计算其中大于零的奇数的平均值,并输出这些大于零的奇数以及它们的平均值。 37.有若干个学生(不超过50人)的某一门课的成绩放在文件c:\\cj.dat中,要求编程统计出90~100分,80~89分,70~79分,60~69分,0~59分的人数各有多少人。

全国2008年7月自考计算机基础与程序设计试卷

课程代码:02275

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

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

1.一个完整的计算机系统应该包括( B ) A.主机和外设 B.主机和操作系统

15

C.硬件系统和系统软件 D.硬件系统和软件系统

2.若用八位二进制表示一个整数,则-4在计算机中的表示是( C ) A.11111100 B.11111011 C.10000100 D.00000100

3.下列转义字符中,表示回车的是( C ) A.\\0 B.\\n C.\\r D.\\f

4.若定义double d;则d在内存中分配的字节数是( D ) A.1个 B.2个 C.4个 D.8个

5.下列表达式中运算结果为3的表达式是( B ) A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3

6.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是( C ) A.-6 B.-5 C.-4 D.-3

7.在printf语句中,格式说明符u表示( C ) A.以十进制带符号形式输出整数 B.以十六进制带符号形式输出整数 C.以十进制无符号形式输出整数 D.以十六进制无符号形式输出整数

8.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是(D )if(a

A.4 B.5 C.6 D.7

9.关于switch中的表达式,正确的说法是( D ) A.它必须是算术表达式 B.它必须是关系表达式

C.它必须是逻辑表达式 D.它可以是任意类型的表达式

10.对do语句while(表达式);结构的循环,下列说法正确的是( ) A.当表达式的值为非零时不执行循环体 B.循环体至少被执行一次

C.当表达式的值为零时循环体一次也不执行 D.循环体仅被执行一次

11.只能在循环语句中用于结束本轮循环的语句是( ) A.break; B.continue; C.goto D.if

12.若有定义int a[4]={1,2,3,4};则a[(a[1]*a[3]+a[0])3-1)]的值是(A.1 B.2 C.3 D.4

13.若有定义int a[3][5];则数组a在内存中分配的字节数是( ) A.8 B.15

16

C.24 D.30

14.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?( ) A.gets(strl) B.gets(strl,str2)

C.getchar(strl) D.getchar(strl,str2) 15.下列关于函数的描述中正确的是( )

A.C程序中有调用关系的所有模块必须放在同一个源文件中 B.函数必须有返回值,否则不能使用函数 C.C程序必须由一个或一个以上函数构成 D.C函数既可以嵌套定义又可以嵌套调用 16.设有下列程序,则( ) int d=10; main() {

int a=3;printf(“%d,%d\\n”,a,d); }

A.a是全局变量,d是全局变量 B.a是局部变量,d是全局变量 C.a是全局变量,d是局部变量 D.a是局部变量,d是局部变量

17.若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是( ) A.p1=m; B.&p2=n;

C.pl=&m;p2=p1; D.*p1=&m;

18.下列为指针数组定义的是( ) A.float(*)[6]; B.float p[6]; C.float(*)(); D.float *p[6];

19.设有说明:FILE*fp;对于fp=fopen(″c:\\\\abc.dat″, ″rb″);语句,下列说法中不正确的是( ) A.fp将指向abc.dat文件 B.以只读方式打开二进制文件

C.打开文件的文件名是abc.dat D.以读写方式打开ASCII码文件

20.ASCII码文件的结束可以用符号常量EOF表示。EOF的值是( ) A.0 B.1

C.-1 D.不能确定的值

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

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

21.下列数据数值相等的有( ) A.(11111111)2 B.(377)8 C.(255)10 D.(FF)16 E.(256)10

22.以下if语句中没有语法错误的有( ) A.if(x>0)printf(″%f″,x); else printf(″%f″,x);

B.if(x>0){x=x+y;printf(″%f″,x)} else printf(″%f″,x)

C.if(x>0){x=x+y;printf(″%f″,x);}

17

else printf(″%f″,x);

D.if(x>0)x=x+y;printf(″%f″,x); else printf(″%f″,x) E.if x>y x++; else x--;

23.设有程序如下: main()

{ int i,j,a[]={1,3,5,7,9,11,13,15}; i=5;

switch(i)

{ default;printf(″%d\\n″,a[i]); case 1:printf(″%d\\n″,a[3]);

case 2:printf(″%d\\n″,a[++i]);break; case 3:printf(″%d\\n″,a[--i]); } }

上述程序的输出结果不包括( ) A.5 B.7 C.9 D.11 E.13

24.设有定义及赋值:( )

int a[10]={0,1,2,3,4,5,6,7,8,9},*p; p=a;

则引用a中值为5的元素的正确形式是 A.a[5] B.a[4] C.*(a+5) D.p[5] E.*(p+5)

25.设有说明:int u=1,v=3,w=7;下列表达式的值为7的有( ) A.u&v|w B.u|v|w C.u^v|w D.w&v|u E.u^w|v

三、简答题(本大题共4小题,每小题4分,共16分) 26.C语言中整型常量有几种形式,它们是如何表示的? 27.写出语句if(表达式)语句1 else语句2的执行过程。

28.若定义char *str;然后用gets(str);输入字符串可以吗?为什么?

29.单个字符的读函数fgetc(fp),其中fp表示什么?该函数的功能是什么? 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下面程序并写出运行结果。 main() {

int a=47,x,y,z,w; x=a/2; y=a%2; z=a++;

18

w=++a;

printf(″%d,%d,%d,%d″,x,y,z,w); }

31.阅读分析下面程序,请说明程序的功能;然后写出当键盘输入14时,程序的运行结果。 main() {

int x;

scanf(″%d″,&x);

if(x%5= =0 & & x%7= =0) printf(″yes″); else

printf(″no″); }

32.阅读下面程序并写出运行结果。 main() {

static int a[]={5,3,7,2,1,5,4,10}; int s=0,k;

for(k=0;k<8;k+ =3) {

s+ =a[k];

printf(″a[%d] =%d,s=%d\\n″,k,a[k],s); } }

33.阅读下面程序并写出运行结果。 check(int n,int k) {

int m; do{

m=n;n=n/10; }while(k- -); return(m); }

main() {

int j,y=2345; for(j=1;j<4;j++)

printf(″j=%d,number is %d\\n″,j,check(y,j)); }

34.阅读分析下面程序并写出运行结果。 main() {

char *a[]={″Pascal″,″C Language″,″dBase″,″Cobol″}; int j;

for(j=3;j>=0;j- -) printf(″%s\\n″,a[j]);

19

}

35.阅读下面程序并说明语句:x=p->d[0]>p->d[1]?p->d[0]:p->d[1];的含义,然后写出程序的运行结果。 struct number {

int d[2];

} n={12,8},*p=&n; main() {

int x;

x=p->d[0]>p->d[1]?p->d[0]:p—>d[1]; printf(″%d″,x); }

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

36.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。

37.由键盘输入n*m个数,并把它们存放在一个n行m列的数组中(n、m均不超过20)。 (1)按n行m列输出该二维数组;

(2)求出该二维数组全部元素的平均值;

(3)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。

全国2008年4月自学考试历年试卷计算机基础与程序设计试题

课程代码:02275

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

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

1.存储容量1KB等于( B ) A.23字节 C.220字节

B.210字节 D.230字节

2.在计算机中,指令通常是由( A ) A.操作码、操作数组成 B.源操作数、目标操作数组成 C.反码、补码组成 D.直接寻址、目的寻址组成 3.与十进制数39等值的二进制数是( A ) A.00100111 B.01001001 C.10100111 D.01011000 4.下列设备中属于输出设备的是( D ) A.扫描仪 B.键盘 C.鼠标 D.显示器 5.整数-2在机器内存中的表示是( B ) A.1000000000000010 B.1111111111111110 C.11111111111111101 D.1111111111111111 6.下列运算符中优先级最低的是( D ) A.> B.! C.% D.= =

7.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是( B ) A.-6 B.-5

20

n++;

printf("s=%d,n=%d,even=%f\\n",s,n,1.0,*s/n); } if(x!=0)

goto label; else

printf("good bye!"); }s=12,n=1,even=12.0 s=17,n=2,even=8.5 s=30,n=3,even=10.0 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 ]); }10 210 3210 43210

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); }fac=1 fac=2 fac=6 fac=24

34.阅读下面程序,写出运行结果。 #include

36

#include void f(char *s) {

char *t, c, *p=s;

for(t=s+strlen(s)-1;s

c=*s,*s=*t,*t=c; printf("%s\\n",p); } }

void main (void) {

char a [20]="abcdefg"; f(a); }gbcdefa gfcdeba gfedcba

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);计算并输出从data,txt中读出的5个整型数据的累加和 五、程序设计题(本大题共2小题,每小题12分,共24分)

36.从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素

的累加和并输出该累加和。

37.在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12

月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字。若输入的整数不在1~12之间,则打印“Illegal month”

37

38


计算机真题(珍藏版)(部分有答案).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2024版中国医疗旅游行业发展趋势报告目录

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219