搜索
您的当前位置:首页正文

02275计算机基础与程序设计最新全国自考真题汇编(2012年珍藏级)(答案随后整理公布)

来源:好走旅游网
页眉内容

02275计算机基础与程序设计最新全国自考真题汇编 (新版2007~2012珍藏级)

(答案随后整理公布上传)

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

课程代码:02275

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.存储容量1KB等于 ( ) A.23字节 C.220字节

B.210字节 D.230字节

2.下面哪种设备是输出设备? ( ) A.扫描仪 C.鼠标

B.键盘 D.显示器

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

B.-5 D.-3

4.设有int x,y;表达式y=(x=1,++x,x+2)的值是 ( ) A.1 C.3

B.2 D.4

5.以十六进制形式输出整型数的格式说明符是 ( ) A.%x C.%o

B.%u 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页脚内容

页眉内容

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 C.

2334 D.

234

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 C.3

B.1 D.8

19.如果将文件指针fp指向文件末尾,正确的语句是 ( ) A.feof(fp); C.fseek(fp,0L,0);

B.rewind(fp); 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.表达式语句 C.子程序调用语句 E.循环语句

22.下面循环语句中,没有“无限循环”错误的循环语句有 ( ) ..A.for(;;); C.while(1);

E.do{循环体)while(1);

23.设有声明:int a[5]={1,3,5,7,9);下面表达式的结果为10的有 ( ) A.a[l]+a[3] C.2*a[2] E.a[1]+[-a[2]+a[3] 24.若有如下定义及赋值: int x=5,*p,*pl; p=&x; pl=p;

B.a[2]-2*a[1] D.a[0]+a[4]

B.for(i=1;i<10;i++); D.while(0); B.函数调用语句 D.空语句

页脚内容

页眉内容

则可以输出变量x的值的语句有 ( ) A.printf(″%d\n″,x); C.printf(″%d\n″,p1); 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

B.printf(″%d\n″,*p); D.printf(″%d\n″,&x);

页脚内容

页眉内容

{ long bh; long int xq; char xm[9]; float score[3];

}x={,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 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中。

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

课程代码:02275

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.I/O设备指的是计算机的( B ) A.存储设备

B.输入和输出设备

C.控制器

D.运算器

2.具有只读功能的内存储器是指( A ) A.ROM

B.RAM

C.硬盘

D.CD-ROM

3.十进制数-5在八位的微机内的存储形式是( D ) A.

B.

C.

D.

4.C语言源程序的基本单位是( B ) A.过程

B.函数

C.子程序

D.语句

5.设有int p,q;以下不正确的语句是(D ) ...A.p *=3;

B.p/=q;

C.p+=3;

D.p&&=q;

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

( A )

页脚内容

页眉内容 int a,b

scanf("%d%d",&a,&b); A.2 B.a=2 b=3

3 C.a=2,b=3

D.2,3 7.设有说明 int x=0,y=2; 则执行 if(x=0) y=1+x;

else y=x-1;

后,变量y的值是( A ) A.-1

B.0

C.1

8.下面程序的输出结果是( B ) 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

9.执行下面程序段后,输出字符B的个数是( B ) x=0; while(x<=5){ printf("B"); x+=2; } A.0个

B.3个

C.5个

10.在下述程序中,for循环执行的次数是( C ) 页脚内容

D.2

D.5

D.6个

页眉内容 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];则数组元素的下标的下限和上限分别是( C ) A.0和1

B.1和9

C.0和9

D.1和10

12.下列说法不正确的是( C ) ...A.一个源程序文件由一个或多个函数组成

B.一个C程序由一个或多个源程序文件组成 C.一个C程序以函数为独立的编译单位 D.一个C程序必须有一个main( )函数

13.在C语言中,确定函数返回值的类型由( D ) A.return语句中的表达式类型决定 C.调用函数时临时决定

B.调用该函数的主函数类型决定 D.定义函数时所指定的函数类型决定

14.若有以下定义和语句,且0≤i<10,则对数组元素地址的正确表示是( D ) int a [ ]={0,1,2,3,4,5,6,7,8,9},*p; p=a; A.&(a+1)

15.若有以下说明: 页脚内容

B.a++ C.&p D.&p[i]

页眉内容

char s[10]=“ABCDEFGH”,*p=s; 不能表示字符C的是( B ) ..A.s[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);} 则其运行结果是( C ) A.0,0

B.10,3

C.13,7

D.7,13

B.s[3]

C.s['c'-'a'] D.*(p+2)

17.设有结构体的定义如下: struct data{ int n; char c; float f; };

则sizeof (struct data)的值是( C ) A.1

B.3

C.7

D.11

18.如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是(B ) A.#include C.#include

B.#include D.#include

19.设有说明:int x=12,y=3;则x¦y的值是( D ) A.0

B.3

C.12

D.15

20.测试文件是否结束函数的函数名是( A ) A.feof

B.EOF

C.eof

D.FEOF

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

在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后页脚内容

页眉内容

的括号内。错选、多选、少选或未选均无分。 21.下列设备中属于外存储设备的有( BCDE ) A.RAM D.软盘

B.光盘 E.磁带

C.硬盘

22.设a=1,b=3,c=0;下面表达式的值为1的有( ABCE ) A.!a&&b| |a&&(c+1) D.(a=0)&&(b=10)

B.a-b+3 E.b>a&&a>c

C.(a>b)==c

23.设有说明:char s[20];( BCD )

下面各项中能够正确的将一个字符串"abcd"赋给s数组的有 A.s="abcd"; D.strcpy(s,"abcd");

B.gets(s);

E.strcpy("abcd",s);

C.scanf("%s",s);

24.关于结构体,下面各项中不正确的有( AC ) ...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的有( ACDE ) A.x&y&z D.z>>y

B.x¦y¦z E.x&0xff00

C.x^x+y^y

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

26.C语言中的运算符“=”与运算符“= =”的意义相同吗?为什么?不同。C语言中“=”

称为赋值号,赋值号左边只能是变量不能是表达式或常量。赋值号两侧不能互换,不表页脚内容

页眉内容

示相等,而“= =”称为等号,与数学中的“=”意义相同,符号两侧都可以使表达式 27.变量的存储类别分为哪几种?它们分别存储在什么区域?Aotu,static,extern,register四种。Aotu类型的局部变量存储在动态存储区。Static类型的静态变量和extern类型的外部变量存储在静态存储区。Register类型的变量存储在寄存器中。

28.试定义一个三行的二维字符数组s,并用"I am a boy", "you are a girl", "he is a teacher"对其进行初始化。char s【3】【20】={"I am a boy", "you are a girl", "he is a teacher"}; 29.设有说明:int a[2][3];

请用四种方式来表示数组元素a[1][2]。a[1][2],*(&a【0】【0】+1x3+2),*(a【0】+1x3+2),*(*a+1x3+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);A,66,102,a }

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!"); }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 #include void f(char *s) {

char *t, c, *p=s;

for(t=s+strlen(s)-1;sc=*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”

页脚内容

页眉内容

页脚内容

页眉内容

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

课程代码:02275

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.微机中信息的最小单位是( B ) A.bit C.KB

2.组成计算机硬件系统的是(A ) A.控制器、运算器和内存储器 C.I/O设备、CPU和内存储器

3.(75)10的二进制的表示是( D ) A.()2 C.()2

B.()2 D.()2

B. CPU、显示器和键盘 D. 控制器、内存储器和I/O设备 B. byte D. word

4.字符串常数“CHINA”在内存中存储时占的字节数是( B ) A.5个 C.7个

B.6个 D.8个

5.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c6.输出字符串的格式说明符是( A ) A.%c C.%u

7.设有说明int x=0,y=0; 则执行if(x++)y=1+x; 页脚内容

B.2 D.4

B.%s D.%g

页眉内容

else y=2+x;

后,变量y的值是( A ) A.0 C.2

B.1 D.3

8.以下程序段所表示的数学函数关系是( B ) y=-1

if(x!=0) if(x>0) y=1;else y=0; 1(x0)A.y0(x0)

1(x0)1(x0)B.y1(x0)

0(x0)0(x0)C.y1(x0)

1(x0)1(x0)D.y1(x0)

0(x0)9.执行下面程序段后,输出字符A的个数是( B ) for(i=0;i<=5;i+=2) printf(″A″); A.0个 C.5个

B.3个 D.6个

10.若有定义char a[ ]= ″computer″;则存储字符m的数组元素是( C ) A.a[1] C.a[3]

B.a[2] D.a[4]

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

B.2 D.4

12.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( C ) A.自动(auto) C.外部(extern)

B.静态(static) D.寄存器(register)

13.如果一个C程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为

( D )

A.源文件的全部范围

B.本程序的全部范围

页脚内容

页眉内容

C.本函数的全部范围

D.从定义该变量的位置开始至本文件末尾

14.下列定义中,不是指针数组定义的是( D ) ..A.int*p[5]; C.int(*r)[6];

B.float*q[4]; D.char*w[7];

15.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是( B ) A.a,point,*&a C.*&point,*point,&a

16.下列程序的运行结果是(C ) #difine N 9 fun (char s[ ]) {

char*p=s+4,*q=s; int i;

for(i=0;i<4;i+ +,p+ +,q + +) {

s[i]=*p; s[i+4]=*q } }

main( ) {

char ss[N]= ″ABCDEFGH″; fun(ss)

printf(″%s\\n″,ss); } A.EFGHABCD C.ABCDEFGH

17.设有结构体的定义如下:( C ) struct cjd {long bh;int*q;char xm[9];}; 则sizeof(struct cjd)的值是 页脚内容

B.&*a,&a,*point D.&a,&*point,point

B.EFGHEFGH D.ABCDABCD

页眉内容 A.14 C.16

B.15 D.17

18.设有说明:int x=0x15,y=0x0f;则x&y的结果是( B ) A.0x5 C.0xf0

B.0x15 D.0xf5

19.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是( D ) A.#include C.#incLude

B.#include D. #incLude

20.由FILE*fp;fp=\\fopen(″a:\\\\abc.txt″,″r+″);可以推知fopen 函数的原型是( A ) A.char *fopen(char,char); C.int fopen (char*,char*);

B.FILE*fopen(char*,char*); D.FILF fopen(char* ,char*);

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

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

21.下面基本结构和特性中符合结构化程序设计的要求的有( BCDE ) A.选择结构 C.顺序结构

D.各结构之间只有一个入口,至多两个出口 E.各结构之间只有一个入口,一个出口

22.若有int x;float;y下面结果为整型数的表达式有(ABCE ) A.(int)(x+y) C.´a´+x E.x*y

23.设有定义:int a[2][3];下面关于数组元素引用正确的有(BCD ) A.a[0][3] C.a[2][1] E.a[2][3]

24.设有关于结构体类型的定义:( AC ) struct car { 页脚内容

B.循环结构

B.(int)x+y D.x+(int)y

B.a[0][0] D.a[1][2]

页眉内容

char*name; float price; struct car *next; }*p,*head=NULL; 下面各选项中正确的有

A.p=(struct car*)MALLOC(sizeof (struct car); B.p=(struct car*)malloc (sizeof (struct car); C.p.next=head; D.p->next=head;

E.p=(struct car *)malloc (sizeof(car);

25.设有说明:int u=1,v=5;则下列表达式的值为1的有( ACDE ) A.u&v C.u^u E.(u<<3)/5

三、简答题(本大题共4小题,每小题4分,共16分) 26.什么是常量?C语言中常量有哪几种类型? 27.用while循环结构完成下面程序段的功能。 s=0

for(i=1;i<=10;i++) s+=i;

28.若在一个函数中对变量a,b有如下定义:

static int a; auto int b;

简述它们之间的异同。

29.设有说明:int a[3][4],(*p )[ 4]=a;请解释p的含义,并用p给出数组元素a[2][1]的二种表

示。

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

30.从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65) #include ″stdio.h″ main() 页脚内容

B.v>>2 D.u¦v

页眉内容 {

int k;

k=getchar();putchar(k);

printf(″,%d,%x,%c″,k,k,k+32); }

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

int x,sum=0; loop1:

scanf(″%d″,&x); if(x!=8)

{

if(x%2= =0)

{

sum+=x;

printf(″sum =%d\\n″,sum); } goto loopl; } sum-=x;

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

当程序执行时输入数据1 2 3 32.阅读下面程序,写出运行结果。 main() {

int a[3][3],i,j; for (i=0;i<3,i+ +)

页脚内容

4 5 6 7 8 ↙ ,写出程序运行结果。 页眉内容

for(j=0,j<3;j+ +) a[i][j]=i+j for(i=0;i<3;i++) {

for(j=0;j<=i;j+ +) printf(″%2d″,a[i][j]); printf(″\\n″); } }

33.阅读下面程序,写出运行结果。 long factor (int m) {

long int fc; if(m= =0¦¦m= =1) fc=1; else

fc=factor(m-1)*m; return(fc); } main() { int n; long int fac; for(n=1;n<5;n++) {

fac=factor(n); printf(″% Id\\n″,fac); } } 页脚内容

页眉内容

34.阅读下面程序,写出运行结果。 void fl(char a[ ],char b[ ]) {

int i;

for(i=0;a[i];i+ +) b[i]=a[i]; b[i]=´ \\0 ´; }

void f2(char *c,char*t) {

while(*c+ + = * t+ +); } main() {

char a[20]= ″basic″,b[20]= ″fortran″,c[20]= ″pascal″; char*p=b,*q=c; fl(b,a);

printf(″%s\\n″,b); f2(p,q);

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

35.阅读下面程序段: struct number { int u[2]; }v={11,15},*p=&v; int x;

请分析下面语句的含义:

x=(*p),u[0]>p->u[1]?(*p).u[0]:p->u[1]; 页脚内容

页眉内容

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

36.用以下近似公式编一个求的近似值的程序。

4

11111,其中n的值由键盘输入。 (1)n13572n137.用循环语句编程打印下列图案,并以ASCII码的形式写到c盘根目录下的lx.dat文

件中。(第一行的″$″在第20列) $ $ $ $ $ $ $ $ $ $ $ $ $

页脚内容

页眉内容

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

课程代码:02275

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的页脚内容

页眉内容

括号内。错选、多选或未选均无分。 1.存储容量1KB等于( B ) A.23字节 C.220字节

2.在计算机中,指令通常是由( A ) A.操作码、操作数组成 C.反码、补码组成

B.源操作数、目标操作数组成 D.直接寻址、目的寻址组成 B.210字节 D.230字节

3.与十进制数39等值的二进制数是( A ) A. C.

B. D.

4.下列设备中属于输出设备的是( D ) A.扫描仪 C.鼠标

B.键盘 D.显示器

5.整数-2在机器内存中的表示是( B ) A.00010 C.

B.11110 D.11111

6.下列运算符中优先级最低的是( D ) A.> C.%

B.! D.= =

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

B.-5 D.-3

8.以十进制无符号形式输出整数的格式说明符是( A ) A.%u C.%o

9.下列程序段的输出结果是( B )

void main(void) {

iny y=1,x=5; 页脚内容

B.%x D.%d

页眉内容

if(x<0)y=-1; if(x>=0)y=0; printf("%d\\n",y); } A.-1 C.1

10.执行如下程序段后,x的值是( D )

int x=1,y=-1; if(y<0)x-=y; else x+=y; A.-1 C.1

B.0 D.2 B.0 D.5

11.执行while(表达式)循环的条件是( C ) A.当表达式的值为0时 C.当表达式的值非0时

12.下列程序段输出的结果是( A ) for(i=1;i<3;i+ +) for(j=1;j<3;j+ +) printf("%d",i+j); A.2 3 3 4 C.2 3 3 4

B.2 3 4 D.2 3 4

B.仅当表达式的值为1时 D.当表达式的值不为1时

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

B.2 D.4

14.下列关于C语言程序说法正确的是( D ) A.C语言程序总是从有定义的函数起顺序执行 B.在C语言程序中,被调用函数必须在main函数中定义 C.C语言程序中的main函数必须放在程序的开始部分 D.C语言程序总是从main函数起开始执行 页脚内容

页眉内容

15.若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是

A.&a+1 B.&a+ + C.&a

D.&a[i]

16.下列关于结构体类型定义正确的是( C ) 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, };

};

17.下列位运算符中,表示按位异或操作的是( C ) A.~ B.│ C.^

D.&

18.下列各个位运算符的优先级从左到右依次升高的是( C )A.>>│& ~ B.│>> & ~ C.│& >> ~

D.~│& >>

19.设有说明:int u=1,v=3;则表达式u<<= v的值是( D ) A.0 B.1 C.3

D.8

20.如果文件存储的是数据在内存中存放的字节形式,则该文件是(A.ASCII文件 B.文本文件 C.二进制文件

D.设备文件

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

(D )

C ) 页眉内容

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

21.存储在下列哪些设备中的信息可以长期保存?( BCDE ) A.RAM B.ROM C.硬盘 D.软盘

E.光盘

22.下列语句中正确的有( ACD ) A.if(x>y);

B.if(x=y)&&(x!=0)x+=y;

C.if(x! =y)scanf(“%d,&x);else scanf(“%d”,&y); D.if(xE.if(x23.下列循环将会产生死循环的有( ACDE ) A.while(1); B.do{ }while(0); C.do{ }while(1);

D.for(k=1;k>―10;k+ +);

E.for(k=1;k=10;k+ +,k――);

24.设有二维数组int a[4][3];下列表示数组元素a[0][2]地址的有( CDE A.a[2] B.*a C.*a+2 D.a[0]+2

E.&a[0][2]

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

int num; struct data *next; } *p,* head=NULL; 下列语句中正确的有

A.p=(struct data *)malloc(sizeof(struct data)); B.p=(struct data )malloc(sizeof(struct data)); C.p=(struct data *)malloc(sizeof(data)); 页脚内容

)页眉内容

D.p->next=head; E.p.next=head;

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

26.C语言中的运算符“=”与数学中的“=”的意义相同吗?为什么?

27.简述C语言标准库函数strcpy 的格式(或函数原型)与功能。格式:strcpy(字符数组1.,字符数组2)功能:把字符数组2中的字符串复制到字符数组1中 28.请按照下列要求写出相应的C语句。

假设float类型的变量x1和x2已经定义过,且x1已经初始化为7.3。 (1)定义指向float类型变量的指针变量fpt;float*fpt (2)使fptr指向x1;fptr=&x1

(3)利用fptr,将fptr指向变量的值赋给x2;x2=*fptr (4)利用fptr,输出fptr指向变量的值。printf=(\"%f\

29. fread(stu,size,n,fp);中stu、size、n和fp的含义各是什么?Stu是内存中存放读取数据的首地址;size是预读取的一个数据块的字节数;n指一次读取数据块的个数;fp指文件指针 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.请阅读分析下列程序,然后写出运行结果。 main( ) {

int a=0,b=1;

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

printf("a=%d,b=%d\\n",a,b); }a=0,b=1 a=1,b=2

31.若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结 果。 main ( ) {

int x,y;

scanf("%d",&x); 页脚内容

页眉内容

if(x>2&&x<=10) y=x *(x+2); else if(x>-1&&x<=2) y=2*x; else if(x<-1)y=x-1; if(y!=-1)

printf("%d,y); else

printf("error"); }0 35

32.请阅读分析下列程序,然后写出程序的循环次数和运行结果。 main(void) {

int i;

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

if(i%2) {

printf("@");continue; }

printf("*"); }

printf("\\n");

}循环5次 @*@*@

33.请阅读分析下列程序,然后写出程序的运行结果。 void fun( ); void main(void) { 页脚内容

页眉内容

fun( ); fun( );

}

void fun( ) {

static int a[3]={0,1,2},b=10; int i; if(b= =10) {

for(i=0;i<3;i+ +) a[i]+=a[i];

for(i=0;i<3;i+ +)

printf("%d,",a[i]); printf("b=%d\\n",b); b+ +; } else {

for(i=0;i<3;i+ +) a[i]*=a[i]; for(i=0;i<3;i+ +)

printf("%d,"a[i]); printf("b=%d\\n",b); }

} 0,2,4,b=10 0,4,16,b=11

34.请阅读分析下列程序,然后写出程序的运行结果。 void main(void) {

int a[ ]={1,2,3,4,5,6},*p;

页脚内容

页眉内容

p=a; p+ +; *(p+3)+=2; printf("%d\\n",*p); printf("%d\\n",*(p+3));

}2 7

35.设有下列创建单向链表的部分程序: #include"malloc.h" #include"string.h" struct automobile {

char type[20]; int load;

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

struct automobile *p;

char * automobile_type[3]={"Red_Rock",Yellow_River","East_Wind"}; int automobile_load[3]={24,18,42},j; for(j=0;j<3;j+ +) {

p=(①______struct automobile *________)malloc(sizeof(struct automobile)); strcpy(②___ p->type_______,automobile_type[j]); p->load=automobile_load[j]; p->next=head; head=p; } } 页脚内容

页眉内容

请阅读分析程序,然后写出①和②下划线处应该填写的内容。 五、程序设计题(本大题共2小题,每小题12分,共24分)

36.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。

37.设在c盘根目录下有一个ASCII码文件zm.dat,且文件中有10个字符。请编程将文件中的字符读出,再按照从大到小的次序排序并将排序结果在屏幕上显示出来。

页脚内容

页眉内容

页脚内容

页眉内容

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

课程代码:02275

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

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

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

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

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

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.以十六进制无符号形式输出整数

页脚内容

C ) 页眉内容

8.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是(D ) if(aB.5 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 C.3

B.2 D.4

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

B.15

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;

D.*p1=&m;

C.pl=&m;p2=p1;

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 C.-1

B.1

D.不能确定的值

页脚内容

页眉内容

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

在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下列数据数值相等的有( ) A.()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);} 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 C.9 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) E.*(p+5)

25.设有说明:int u=1,v=3,w=7;下列表达式的值为7的有( ) A.u&v|w C.u^v|w 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++; w=++a;

页脚内容

B.7 D.11

D.p[5]

B.u|v|w D.w&v|u

页眉内容

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%10;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]); }

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)把该二维数组中大于平均值的元素的值、以及它们行列下标打印出来。

页脚内容

页眉内容

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

课程代码:02275

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.衡量存储器的基本单位是( ) A. bit B. byte C. KB D. word

2.Windows操作系统是( ) A. 单用户、单任务 B. 单用户、多任务 C. 多用户、单任务 D. 多用户、多任务 3.组成微机主存储器的是( ) A. CD—ROM和RAM B. 硬盘和RAM C. 硬盘和CD—ROM D. ROM和RAM 4.下列数据中最大数是( ) A. ()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;表达式(a8.以指数形式输出实型数的格式说明符是( ) A. %u B. %x C. %f D. %e

9.下列程序的输出结果是( ) main( ) { 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.下列关于函数的说明中不正确的是( ) A. 函数名后面可以不要一对圆括号 B. 函数参数类型必须作说明

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

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

14.设有char s=″\a\\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分)

在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 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={,″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″};

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(″%4d″,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(″%5d″,k); } }

33.阅读分析下面程序后,写出程序的运行结果。 #include″stdio.h″ 页脚内容

页眉内容 int fun(int x) { int p; if(x==0||x==1) return(3); p=x-fun(x-2); printf(″%5d″,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分的人数各有多少人。

页脚内容

页眉内容

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

课程代码:02275

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

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

1.内存每个基本单元都有唯一的序号,这个序号称为( ) A.地址 B.字节 C.代码 D.字

2.计算机对编译型高级语言的执行方式是( ) A.逐条语句边解释边执行,即解释一条就执行一条 B.将整个程序编译完成后再执行,不生成目标代码 C.将源程序编译成目标程序,执行连接后的程序 D.将源程序解释完毕后再执行

3.下列转义字符中,表示换行的是( ) A.\0 C.\r

B.\n D.\f

4.unsigned long型数的取值范围是( ) A.-215~(215-1) B.-231~(231-1) C.0~(216-1) D.0~(232-1)

5.设有int a=3;表达式a十=a *=a *=a的值是( ) A.3 B.9 C.81 D.162

6.下列四种运算符中,优先级最低的是( ) 页脚内容

页眉内容 A.>=

B.!

C.&& D.||

7.下列程序段的输出结果是( ) 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.下列程序段所表示的逻辑关系是( if(aD.x=

9.执行下列程序段后,i的结果是( 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 C.120

B.101 D.121

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

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.数组的首地址 17.设有函数( ) void print _value(int * x) {printf(″%d\\n″,+ + * x);}

执行程序段int a=25;print_value(&a);的正确输出是 A.23 B.24 C.25

D.26

D.数组元素的个数

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.打开二进制文件只读 二、多项选择题(本大题共5小题,每小题2分,共10分)

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

页眉内容

内。错选、多选、少选或未选均无分。

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

22.下列有关switch语句的说法中正确的有( ) 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++ 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 页脚内容

D.(0.625)10

D.&a[i]

页眉内容

{ {

int branch; int branch; char name[20]; char name[20]; }; struct river * next; };

三、简答题(本大题共4小题,每小题4分,共16分) 26.假设字长为8位,请写出-1的原码和补码。

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; y=b; x=a/b;

print (\"%d,%d\\n\}

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

scanf (\"%d,%d\&x,&y); if(x32.下列程序的功能和输出结果是什么? void main(void) { int k=0,total=0; 页脚内容

页眉内容 while(k<=100){ total+=k; k++;}

print(\"total=%d\\n\}

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(\"%s\\n\}

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(\"f0=%d,fl=%d\\n\} return(f); }

void main(void) {

printf(\"%d\\n\} 页脚内容

页眉内容

35.阅读下列程序并写出程序的运行结果。 #include\"string.h\" #include\"malloc.h\" struct planet {

char name[20]; double weight; struct planet * next; } * head=NULL; void main(void) {

struct planet * p;

char * planet_name[3]={\"earth\double planet_weight[3]={.565,.437,.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(\"%s,%lf\\n\}

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

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

页眉内容

页脚内容

页眉内容

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

课程代码:02275

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

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

1.在Turbo C 2.0中,可激活主菜单的键是( ) A.F1 C.F9

B.F5 D.F10

2.在Turbo C 2.0中,若定义char ch;则变量ch在内存中分配的字节数是( ) A.1个 C.4个

B.2个 D.8个

3.若有下列程序段,欲使x=5,y=6,对应正确的输入方法是(其中表示回车)( ) int x,y;

scanf(″%d%d″,&x,&y); A.x=5 y=6 B.x=5,y=6 C.5 D.5,6 6

4.下面程序段的输出结果是( ) main() {int a=2,b=5;

printf(″a=%d%%,b=%d%%″,a,b);} A.a=2,b=5 B.a=2%,b=5% C.a=%2,b=%5 D.a=%d,b=%d

5.设有条件表达式(exp)? a++:b--,则下列表达式中能够与该表达式完全等价的表达式是( )

A.(exp!=0)? a++∶b-- C.(exp==1)? a++∶b--

B.(exp==0)? a++∶b-- D.(exp!=1)? a++:b--

6.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是( ) 页脚内容

页眉内容 A.表达式1

B.表达式2

C.表达式3 D.表达式l和表达式3 7.设有下列程序:( ) void main(void) {

int x[4]={1,3,5,7},i; i=0:

printf(\"%d\",x[i++]); }

其输出结果是 A.1 B.3 C.5 D.7

8.下列关于函数的说法中,不正确的是( ) A.函数名后面一定要一对圆括号 B.空函数被调用时不做任何工作 C.函数形参个数可以是一个、多个或没有 D.函数参数类型可不作说明

9.指向与文件参数有关的结构体类型的指针变量称为( ) A.函数指针 B.整型指针 C.字符型指针 D.文件指针

10.计算机对解释型高级语言的执行方式是( ) A.逐条语句边解释边执行,即解释一条就执行一条 B.将整个程序编译完成后再执行,不生成目标程序 C.将源程序编译成目标程序,生成并保留目标程序然后执行 D.将源程序解释完毕后再执行

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

12.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是(void main(void) 页脚内容

) 页眉内容 { int x;

scanf(\"%d\",&x);

if(x + + >5)printf(\"%d\); else printf(\"%d\n\",x——); }

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

13.在下列选项中,没有构成死循环的程序段是( ) A.int i=100; B.for(;;); while(1) { i=i%100+1; if(i>100) break;} C.int k=1000;

D.int s=36;

do{++k;}while(k>10000); while(s);一一s; l4.定义如下变量和数组 int k;

int x[3][3]={9,8,7,6,5,4,3,2,l}; 则执行下面语句 for(k=0;k<3;k++)

if(k%2)printf(\"%5d\",x[k][k]); 后输出结果是( ) A.3 B.5 C.7 D.9

l5.设有下列程序: ff( ) {int c=9;

static int a=1,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=10,b=5 B.a=10,b=4

a=19,b=5 a=l9,b=5 C.a=10,b=4 D.a=10,b=5

a=19,b=4 a=19,b=4 16.下面能正确进行字符串赋值操作的是( ) A.char s[5]={\"ABCDE\

B.char s[5]={′A′,′B′,′C′,′D′,′E′};

C.char *s;s=\"ABCDE\"; D.char *s;scanf(\"%s\",s); 17.下面程序段的运行结果是( ) chars *s=\"abcde\";

s+=2 printf(\"%d\",s); A.cde

B.字符′c′

D.无确定的输出结果

C.字符′c′的地址

18.下面关于结构体类型变量定义正确的是( ) A.struct bunding { int area=12345;

char *name=\"No1 Hotel\"; } bl;

B.struct building{ int area=12345;

char *name=\"Nol Hotel\"; } b1;. C.building { int area=12345;

char *name=\"No1 Hotel\"; } b1;

D.STRUCT building { 页脚内容

页眉内容 int area=12345; char *name=\"Nol Hotel\"; } b1;

19.设有下面程序: # include\"stdio.h\" void main(void) {

unsigned x=1,y=3,z=5; printf(\"%d\n\",z^x&y); }

该程序的运行结果是( ) A.0 B.3 C.4 D.5 20.设有说明: int u=l,v=3,w=5;

表达式:u<<=(v|w)的值是( ) A.1 B.5 C.13

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

在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.下面能执行循环结构的语句有( ) A.if语句 B.while语句 C.do—while语句 D.for语句 E.switch语句

22.下面合法的C语言转义字符有( ) A.\\123 B.\\xab C.\\\\ D.\88 E.\n 页脚内容

D.128

页眉内容

23.以下关于函数和变量的说法中正确的有( ) A.不同函数中可以使用相同名字的变量 B.形式参数是局部变量

C.一个函数内部定义的变量只能在本函数范围内有效

D.在一个函数内部的复合语句中定义的变量可在本函数范围内有效 E.如果全局变量与函数内定义的局部变量同名,则在函数内局部变量无效

24.设变量Vo5的地址已赋给指针变量inV,则下列关系表达式的值为1的有( ) A.Vo5==&inV

B.Vo5==* inV

C.inV==* Vo5 D.inV==&Vo5 E.Vo5==inV

25.设有说明:int u=0,v=l,z=2; 则下列表达式中结果为-l的有( ) A.v=~u B.u=u|~(v&z) C.v=(u|z)<<1 D.u=~(u|z) E.v&=(~u)

三、简答题(本大题共4小题,每小题4分,共16分) 26.函数fclose()的功能是什么?

27.简述break语句和continue语句在循环体中的功能。 28.简述机器语言、汇编语言和高级语言各自的特点。

29.将下面的各种运算符按优先级从高到低排列出来。(要同优先级的用“、”号分隔,不同优先级的由高向低用“→”号分隔) ,、<=、>=、[ ]、++、%、+、&&、/

四、阅读理解题(本大题共6小题,每小题5分,共30分) 30.写出以下程序的功能。如果输入14,写出程序的输出结果。 void main(void) { int x;

scanf(″%d″,&x); if(x%5==0&&x%7==0) 页脚内容

页眉内容

printf(″yes″); else

printf(″no″); }

31.阅读下面的程序并回答问题 main( ) { char a[20]=″″; int i; i=8;

printf(″%s\n″,&a[i-3]); }

(1)数组中a[10]号元素中存储的是什么字符? (2)请写出程序的运行结果。 32.写出下面程序的运行结果。 main( ) { fun( ); fun( );} fun( )

{ int a[3]={0,1,2},b=10;int i; if (b==10){ for(i=0;i<3;i++) a[i]+=a[i];

for(i=0;i<3;i++) printf(″%d,″,a[i]); printf(″b=%d\n″,b);b++; } else

{ for(i=0;i<3;i++) a[i]*=a[i];

for(i=0;i<3;i++) 页脚内容

页眉内容

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

33.写出下面程序的运行结果。 main( )

{ int x=1987,a,b,c,y; a=x/100; b=x%100/10; c=x%100%10; y=100*c+l0*b+a;

printf(″c=%d,b=%o,a=%x,y=%d″,c,b,a,y); }

34.分析下列两个程序的区别,并写出它们的运行结果。 void main(void) void main(void) { {

int y=0,s,k; int y=0,s,k;

for(k=0;k<6;k++) for(k=0;k<6;k++){ s=k*k; s=k*k; y+=s; y+=s; }

printf(″y=%d\n″,y); printf(″y=%d\n″,y); } } 35.写出下面程序的功能以及程序的运行结果。 swap(int.*p1,int*p2)

{int p;p=*pl;*p1=*p2;*p2=p;} main( )

{ int a=5,b=7,*ptrl,*ptr2; ptrl=&a;ptr2=&b; swap(ptrl,ptr2); 页脚内容

页眉内容

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

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

36.从键盘输入10个整数,编程求其中大于3且小于100的数的平均值并输出结果。 37.从键盘上输入10个字符串(每个串不超过8个字符),将这些字符串按从小到大的次序排列出来并输出排序后的结果。

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

课程代码:02275

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号页脚内容

页眉内容

内。错选、多选或未选均无分。

1.与十进制数49等值的二进制数是( ) A. B. C. D.

2.编译程序的功能是( )

A.修改并建立源程序 B.将源程序翻译成目标程序 C.调试程序 D.命令计算机运行可执行程序

3.Turbo C 2.0中,若定义long b;则变量b在内存中分配的字节数是(A.1个 B.2个 C.4个 D.8个

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

B.while语句

C.do—while语句 D.for语句 5.以下程序的输出结果是( ) main() { int y=10; while(y——); printf(\"y=%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); A.2 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; 页脚内容

B.a=2,b=3

页眉内容

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(aprintf(″%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.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为字符型变量,则以下不能正确执行的赋值语句是( ) 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.下列属于计算机的输入设备的有( ) A.CD—ROM C.键盘 D.鼠标 E.扫描仪

22.设有int a=3,b=-5;下面表达式值等于0的有( ) A.!a

B.!b&&b

D.a%3!=0

B.打印机

C.5/6 !=0 E.b+a ==-2

23.下列有关函数的说法中不正确的有( ) 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.将下面的各种运算符按优先级从高到低排列出来。(相同优先级的用“、”号分隔,不同优先级的按由高到低的顺序用“→”号分隔) ,、?:、>=、==、/、()、!、||、&&、=

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

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{ char*s1=″″; reverse(s1);

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

五、编程题 (本大题共2小题,每小题12分,共24分) 36.编程求20至100之间素数的累加和并输出该累加和。

37.编程生成以下A、B两个数组(不得使用输入语句输入数据或对数组初始化),将两数组对应元素相加写入C数组中,最后并排输出A、B、C三个数组。

页脚内容

页眉内容

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

课程代码: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<3 C.a>=b>c D.a>b>c

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. 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′}; 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.由用户指定方式 B.char s[]=\"Boy\";

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

B.*(*(p+2)+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=L; 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文本文件中。

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

课程代码:02275

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

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

1.下列存储设备中,属于主机范畴的是( ) A.光盘 B.硬盘 C.内存 D.U盘

2.下列属于计算机软件系统的是( ) A.内存储器 B.操作系统 C.显示器 D.CPU

3.在Turbo C2.0中,在主菜单File项中选择Os Shell后,要重新回到Turbo C2.0,应使用的命令是( ) A.Return B.Exit C.Quit D.New

4.下面合法的C语言标识符是( ) A.int_ B.int C.π D.file.c 页脚内容

页眉内容

5.若有int a,b;下面正确使用变量a,b的表达式是( ) A.7.0%3.0 B.(a+b)++ C.7++ D.a+′a′+b

6.下面几种运算符中,优先级最低的是( ) A.| | B., C.= D.?:

7.设有int a=3,b=-4,c=5;表达式(a>b)?a&&c<0:b的值是( A.0 B.1 C.3 D.-4

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

9.若有int a=8,b=5;语句printf(“%d”,a>b);的执行结果是( A.0 B.1 C.5 D.8

10.下面程序的输出结果是( ) main( ) {int a=3,b=5; a+=b;b+=a;

printf(“%d,%d”,a,b);} A.3,5 B.5,3 C.8,13 D.13,21

11.若有int a=8,b=12,max,min;执行语句 if(a>b){max=a;min=b;} else{max=b;min=a;} 的结果是( )

A.max的值是8,min的值是12 B.max的值是8,min的值是8 C.max的值是12,min的值是8 D.max的值是12,min的值是12 12.执行下面程序段后,a的值是 int a=100; 页脚内容

) ) 页眉内容 do

{a++;}while(a>120);( ) A.100 B.101 C.120 D.121

13.若有定义int ch[5][4];则数组ch中的元素的个数是( ) A.9 B.12 C.15 D.20

14.若有定义char str[20];能使数组str得到字符串\"I am a boy\"的正确输入方法是( ) A.gets(str); B.str=getchar( );

C.scanf(\"%c\",str); D.scanf(\"%s\",str);

15.若主函数调用funl函数,而funl函数调用fun2函数,这种逐级调用称为( ) A.直接递归调用 B.间接递归调用 C.并行调用 D.嵌套调用

16.下面关于函数参数的说法中,不正确的是( ) A.实参可以是常量、变量或表达式 B.形参可以是常量、变量或表达式 C.实参可以是数组元素或数组名 D.形参应与其对应的实参类型一致

17.若有定义int b[2][3] ={0},(*p)[3]=b;对b数组第i行第j列(设i,j已正确说明并赋 值)元素的不正确的引用是( ) A.*(*(p+i)+j) B.*(p[i]+j) C.*(p+i)+j D.(*(p+i))[j]

18.设有下面的结构体和结构变量定义: Struct tea {

char*name; float price,weight; };

struct tea teal={\"green_tea\",2.0,28.5}; struct tea *p_struct=&teal; 页脚内容

页眉内容 语句:

printf(\"%s,%.1f \",p_struct—>name,p_struct—>price*p_struct—>weight); 的输出结果是( ) A.57.0 B.57.0,green_tea C.green_tea,57.0 D.green_tea

19.若有定义int x=5,y=6;下面表达式值为0的是( ) A.x^x B.x&y C.x|y D.y>>2

20.下列函数中向文件一次读一个字符的函数是( ) A.fgetc B.fputc C.fgets D.fputs

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

在每小题列出的五个备选项中至少有两个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。 21.与十进制100等值的数有( ) A.()2 B.()2 C.(144)8 D.(64)16 E.(5F)16

22.下面合法的C语言常量有( ) A.′tc′ B.3e2.5 C.0xfde D.1e8 E.′\\n′

23.下面属于C语言中输入或输出函数的有( ) A.scanf B.printf C.putchar D.main E.pow

24.下面关于函数的说法中,不正确的有( ) A.定义函数时,形参的类型说明可以放在函数体内 B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以函数值类型为准 页脚内容

页眉内容

D.如果形参与实参的类型不一致,以实参类型为准 E.形参与实参的对应关系由形参名和实参名决定 25.设有关于结构体类型的定义: struct database {

char name[20]; float speed;

}dbl={\"Oracle\",.56},db2,*p=&db2; 下面选项中语句正确的有( ) A.p=&dbl; B.p=dbl;

C.strcpy(p—>name,\"Sybase\"); D.p—>speed=dbl.speed; E.strcpy(p—>name,dbl.name)

三、简答题(本大题共4小题,每小题4分,共16分) 26.下面是求1到100之和的程序 main( )

{ int i,sum=0; for(i=1;i<=100;i++) sum+=i;

printf(\"%d\\n\}

问如何修改循环体,使其仅求前10个数之和。 27.若有下面定义:

int num[10]={0,1,2,3,4,5,6,7,8,9),*p=num; 设数组num的首地址是65484。

问:(1)表达式p+8表示什么?其值是多少? (2)表达式*(p+8)表示什么?其值是多少?

28.设有说明:unsigned x=0x1234;下面表达式(1)、(2)的运算结果的十六进制值是什么? (1)(x&0xff00)>>8|(x&0xff)<<8 (2)x&0xff00>>8|x&0xff<<8 29.设有说明: 页脚内容

页眉内容

struct island {int id;char name[10]; float area;}a,*p=&a;写出对p所指的成员id、area分别赋值101、34521.65,使p所指的指针成员name指向\"Wang\"的C语句分别是: 四、阅读分析题(本大题共6小题,每小题5分,共30分) 30.阅读下列程序并写出运行结果。 main( )

{ int a=55,x,y; x=(int)(a/8.0); y=a-8*x;

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

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

{ float x;int a=0; scanf(\"%f \",&x); switch(x/10-5) { case 7: a++;

case 6:a++;printf(\"%d,\",a); case 5:a++;break; case 4:a++;

default:a++;printf(\"%d,\",a); case 1:a+=2: }

printf(\"%d\n\",a); }

(1)当程序运行后输入115.5后,写出程序的执行结果。 (2)当再次运行程序后输入45后,写出程序的执行结果。 32.阅读下列程序并写出运行结果。 main( )

{ int s=0,k=1,i; 页脚内容

页眉内容

for(i=0;i<10;i++) { k=k+i; s+=k; if(i>3) break; s+=2*k:

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

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

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

{ int a[4][4],i,j; for( i=1;i<=3;i++) for( j=1;j<=3;j++) a[i][j]=i+j; for(i=1;i<4;i++){ for(j=1;j<=i;j++) printf(\"%3d\",a[i][j]); printf(\"\n\"); } }

34.阅读下列程序并写出运行结果。 int sum1; main( )

{ int sum2=0,i,f1(int),f2(int); for(i=1;i<=5;i++) sum1+=f1(i); for(i=1;i<=5;i++) sum2+=f2(i);

printf(\"sum1=%d\n\",sum1); 页脚内容

页眉内容

printf(\"sum2=%d\n\"sum2); }

int f1(int a) { static int s1=1; s1*=a; return s1; }

int f2(int a) { auto int s2=1; s2*=a; return s2; }

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

{ char s[]=\"abcdel2345\",*q=s; int a=0;

for(;qprintf(\"\na=%d\n\",a); }

int f(char*p) { int x=0;

while(*p++!=′\\0′) x++; return x; }

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

36.从键盘上输入30个整数,输出其中能被3整除的数,并求出所有能被3整除的数之和。 37.从二进制文件c:\\abc.dat中读出10个float型数据存放于数组a中,然后将数组a中的数页脚内容

页眉内容

据按从小到大的次序输出在屏幕上。 2007 04 2007 07 2008 04 2009 04 2009 07 2010 04 有答案 2010 07 2011 04 有答案 2011 07

页脚内容

因篇幅问题不能全部显示,请点此查看更多更全内容

Top