计算机基础与程序设计试题及答案
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。
1.I/O设备指的是计算机的()
A、存储设备
B、输入和输出设备
C、控制器
D、运算器
2.具有只读功能的内存储器是指()
A、ROM
B、RAM
C、硬盘
D、CD-ROM
3.C语言源程序的基本单位是()
A、过程
B、函数
C、子程序
D、语句
4.字符串常数"CHINA"在内存中存储时占的字节数是()
A、5个
B、6个
C、7个
D、8个
5.设有int p,q;以下不正确的语句是()
A、p*=3
B、p/=q
C、p+=3
D、p&&=q
6.如果a=1,b=2,c=3,d=4,则表达式a>b?a:cA、1
B、2
C、3
D、4
7.下面程序段的运行结果是( )
main( )
{Int a=11,b=10
a-=b+1;
printf("%dn",a);
}
A、1
B、0
C、2
D、5
8.下列程序段执行后输出结果为()
int i=-1;
if(i<=0)printf("****n");
else printf("%%%%n");
A、****C
B、%%%%
C、%%%%C
D、****
9.若所用变量已正确地定义,则下列程序段输出结果为()
a=10;b=50;c=30;
if(a>b)a=b
b=c;c=a
printf("a=%d,b=%d,c=%dn",a,b,c);
A、a=10,b=50,c=10
B、a=10,b=30,c=10
C、a=50,b=30,c=10
D、a=50,b=3,c=50
10.下述循环的循环次数是()
int k=2;
while(k=0)printf("%d",k);
k--;printf("n")
A、无限次
B、0次
C、1次
D、2次
11.在下列选项中,没有构成死循环的程序段是()
A、int i=100;
while(1)
{i=i0+1;
if(i>100)break;
}
B、for(;;)
C、int k=1000;
do(++k;) while(k>=10000);
D、int s=36;
while(s);--s;
12.若有以下定义和语句,且0<=i<10,则对数组元素的错误引用是()
int a[]={0,1,2,3,4,5,6,7,8,9},*p,i;
p=a
A、*(a+i)
B、a[p-a]
C、p+i
D、*(&a[i])
13.下面能正确将字符串"Boy"进行完整赋值 *** 作的语句是()
A、char s[3]={'B','o','y'};
B、char s[ ]="Boy";
C、char s[3]={"Boy"};
D、char s[3];
s[0]='B';s[1]='o';s[2]='y'
14.以下程序段的输出结果是( )
char arr[ ]="ABCD";
char*ptr;
for(ptr=arr;ptrprintf("%sn",ptr);
A、ABCD
B、
A
C、
D
D、
ABCD
B
C
BCD
C
B
CD
D
A
D
15.下面说法不正确的是()
A、一个源程序文件由一个或多个函数组成。
B、一个C程序由一个或多个源程序文件组成。
C、一个C程序以函数为独立的编译单位。
D、一个C程序必须有一个main()函数。
16.C语言的auto型变量是()
A、存储在动态存储区中。
B、存储在静态存储区中。
C、存储在计算机CPU的寄存器中。
D、存储在外存储器中。
17.以下程序的运行结果是()
void swapl(x,y)
int x,y;
{int t;t=x;x=y;y=t;}
void swap2(p1,p2)
int *p1,*p2;
{*p1=*p2;*p2=*p1;}
main()
{int a=3,b=5,*x1=&a,*x2=&b;
swap1(a,b);
printf("a=%d,b=%dn",a,b);
swap2(x1,x2);
printf("a=%d,b=%dn",a,b);}
A、
a=5,b=3
B、
a=3,b=5
C、
a=5,b=3
D、
a=3,b=5
a=5,b=3
a=3,b=5
a=3,b=3
a=5,b=5
18.下列定义中,不是指针数组定义的是( )
A、int *p[5];
B、float *q[4];
C、int (*r)[6];
D、char *w[7];
19.以下程序的运行结果是()
#define sl(x)(3.14*(x)*(x))
#include
main()
{float x,s;
s=s1(10);
printf("%.2fn",s);}
A、3.14
B、31.40
C、314.00
D、6.28
20.测试文件是否结束函数的函数名是()
A、feof
B、EOF
C、eof
D、FEOF
二、多项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的五个选项中有二至五个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。多选、少选、错选均无分。
21.下列哪些设备属外存储设备()
A、RAM
B、光盘
C、硬盘
D、软盘
E、磁带
22.?X*.C可以代表的文件是()
A、AXCD.C
B、AXCD.D
C、ABX.C
D、RX.C
E、XX1234.C
23.若有int x;float y;指出下面结果为整型数的表达式()
A、(int)(x+y)
B、(int)x+y
C、'a'+x
D、x+(int)y
E、x*y
24.若所用变量已正确定义,下列for循环语句中语法正确的有()
A、for(x=0;i=0;i<=10;i++)
x++;
B、for(x=0,i=0,i<=10,i++)
x++;
C、for(x=0,i=0;i<=10;i++)
x++;
D、i=0;x=0;
for(i<=10;i++)
x++
E、i=0;x=0;
for(;i<=10;i++)
x++
25.若有定义及赋值:()
int y,*p,*p1;
p=&y;p1=p;*p1=4;
则可以输出变量y的地址的语句是
A、printf("%un",y);
B、printf("%un",p);
C、printf("%un",*p);
D、printf("%un",&y);
E、printf("%un",*p1);
26.若有定义及赋值:()
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+4)
27.若有定义及赋值:()
int a[6][6],*p;
p=*a;
则下列各式中表示地址的表达式是
A、a[1]
B、a[1]+1
C、a[3][3]
D、&a[1][3]
E、p[0][0]
28.若有定义及赋值:()
int x[5][6],*p;
p=*x;
则不能正确引用数组元素x[0][2]的值的表达式是
A、x[0][2]
B、p[0][2]
C、x[0]+2
D、*x+2
E、*(*x+2)
29.下面各式正确的是()
A、struct 1_num
{long num;struct 1_num*next;}num1,*p1;
p1=&num1;
B、struct animal
{char name [30],float weight,}rabbits;
C、struct star
{int bh,char name [20],}my_star;
my_star.name="moon";
D、struct {char x[20];char y[30];int u;}x1,y;
E、struct food
{int code;char name [30];struct food *p;};
struct food *tail;
30.设有int y,u=0,x=15,下列各项中能使y值为0的是()
A、y=x∧x;
B、y=x∣u;
C、y=x>>4;
D、y=x&u;
E、y=~u;
第二部分非选择题
三、填空题(本大题共10小题,每小题1分,共10分)
31.写出查看A盘TC子目录下扩展名为C的所有文件的目录 *** 作命令C:>____________。
32.组成C程序的基本单位是____________。
33.putchar()函数的功能是____________。
34.当s=7时,执行以下程序段后x=____________。
if((s>0)&&(s<=10))
if((s>=3)&&(s<=6))x=2;
else if((s>1)||(s>8))x=3;
else x=1;
else x=0;
35.设i和x都是int型,则for循环语句最多执行次数为____________。
for(i=0,x=0;I<=9&&x!=876;i++)scanf("%d",&x);
36.以下程序的输出结果是____________。
main()
{int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;
for(i=0;i<4;i++)p[i]=&a[i*3];
printf("%dn",p[3][2]);}
37.定义变量可以在函数内部,也可以在函数外部,在函数内部定义的变量称为____________。
38.若有定义int x=3,*p;则使p指向变量x的赋值语句为____________。
39.共用体的所有成员共享同一段存储空间,它的各个成员的数据类型可以是____________。
40.设有FILE*fp;则关闭fp所联系文件的C语句是____________。
四、简答题(本大题共4小题,第41、42每小题2分,第43、44每小题3分,共10分)
41.简述在Turbo C 2.0集成开发环境下完成一个C程序的全过程。
42.写出下列程序段所对应的数学式子。
if(x!=0)
if(x>0)y=1;
else y=-1;
else y=0;
43.定义char *string="I am a boy";
和定义char *string;
string="I am a boy";
等价吗?为什么?
44.简述C对ASCII码文件或二进制文件的 *** 作步骤。
五、阅读分析题(本大题共10小题,每小题2分,共20分)
45.阅读下列程序,写出运作结果
main()
{int a=100,b=-1;
printf("a=%d,%xn",a,a);
printf("b=%x,%un",b,b);}
46.下面是判断一个学生考试成绩及格与否的程序(成绩A,或B,或C者为及格;成绩为D者不及格):
main()
{char mark=''A'';
switch(mark)
{case''A'':
case''B'':
case''C'':printf(">=60n");
case''D'':printf("<60n");
default:printf("Errorn");}}
该程序执行后会产生什么错误?请分析并予以更正。
第47题,第48题,第49题请参阅下面程序,并回答相关问题
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=%ba)!=0)
{b=a;a=r;}
printf("a=%dn",a);
}
47.程序的输出结果是多少?
48.该程序完成什么功能?
49.若将while循环替换为do-while循环,请写出相应的程序段。
第50题,第51题,第52题请参阅下面程序,并回答相关问题。
long fac(int n)
{if(n>0)return n*fac(n-1);
else return 1L;
}
main( )
{int i,m;
long s=0;
scanf("%d",&m);
for(i=1;i<=m;i++)
s=s+fac(i);;
printf("%1dn",s);
}
50.该程序的功能是什么?fac函数是一个什么函数?
51.若fac函数的返回值定义为int型,合适吗?
52.如果求(1!)!+(2!)!+(3!)!+…+(m!)!,程序如何修改?
第53题、第54题请参阅下面程序,并回答相关问题。
struct food
{int amount;
struct food*next;
}*head=NULL;
void create(int each_amt)
{struct food * p;
p=(struct food*)malloc(sizeof(struct food));
p→amount=head_amt;
p→next=head;
head=p;
}
53.语句p=(struct food *)malloc(sizeof(struct food));
和p→amount=each_amt;是功能是什么?
54.语句p→next=head;head=p;的功能是什么?
六、程序设计题(本大题共2小题,第55题8分,第56题12分,共20分)
55.对任意一个3行3列的二维整型数组,编程实现:
(1)从键盘对数组元素赋初值。
(2)查找每一列中元素值最大的元素并输出其值及行下标和列下标。
(假设数组中各元素值都不相同)
56.编写字符串拷贝函数将指针str2指向的字符串复制到由指针str1所指的字符串中。请在主函数中调用字符串拷贝函数并输出str1指向的字符串。
(不得用C中的strcpy标准库函数)
计算机基础与程序设计试卷参考答案
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.B
2.A
3.B
4.B
5.D
6.C
7.B
8.D
9.A
10.B
11.C
12.C
13.B
14.D
15.C
16.A
17.D
18.C
19.C
20.A
二、多项选择题(本大题共10小题,每小题2分,共20分)
21.BCDE
22.ADE
23.ACD
24.CE
25.BD
26.ACD
27.ABD
28.CD
29.ADE
30.ACD
三、填空题(本大题共10小题,每小题1分,共10分)
31.DIR A:TC*.C
32.函数
33.向终端输出一个字符
34.3
35.10次
36.12
37.局部变量
38.p=&x
39.不相同的
40.fclose(fp)
四、简答题(本大题共4小题,第41、42题每题2分;第43、44题每题3分,共10分)
41.[参考答案]
(1)利用编辑功能生成C源程序。
(2)利用编译功能生成相应的目标程序。
(3)利用连接功能生成可执行程序。
(4)运行可执行程序。
42. [参考答案]
y=-1(x<0)
y=0(x=0)
y=1(x>0)
43. [参考答案]
(1)等价。(1分)
(2)因为string是字符型指针变量。(1分)
(3)无论哪种赋值方式都只是将字符串的首地址赋给了string,而不是将整个字符串赋给了string。(1分)
44[参考答案]
(1)按规定的格式打开文件。(1分)
(2)对打开的文件进行读/写 *** 作。(1分)
(3)关闭已打开的文件。(1分)
五、阅读分析题(本大题共10小题,每小题2分,共20分)
45. [参考答案]
a=100,64(1分)
b=ffff,65535(1分)
46. [参考答案]
(1)该程序有逻辑错误。当mark为''A''(或''B''或''C'')时,三条printf语句全部要执行一次。(1分)
(2)要得到正确的结果,应做下面修改:(1分)
case''C':printf(">=60n");break;
case''D'':printf("<60n");break;
47. [参考答案]
a=8(2分)
48. [参考答案]
该程序用于求u和v的最大公约数。(2分)
49. [参考答案]
while语句可以改为:(2分)
r=b%a;
do
{
if(f= =0)break;
b=a;a=r;
}while((r=b%a)!=0);
50. [参考答案]
51. [参考答案]
不合适。会产生整数溢出。
即使定义为long型,输入的m值也不宜过大,否则仍会产生溢出。(2分)
52. [参考答案]
只要将s=s+fac(i)改为:
s=s+fac(fac(i))即可。(2分)
53. [参考答案]
(1)前一句用于创建一个新结点,并使指针P指向新结点。(1分)
(2)后一句用于接受调用程序的实参,并将其值赋给新结点的成员amount。(1分)
54. [参考答案]
(1)前一句用于将新结点与原head指向的结点串接在一起。(1分)
(2)后一句用于使head指向新加入的结点P。(1分)
六、程序设计题(本大题共2小题,第55题8分,第56题12分,共20分)
55. [参考答案]
参考程序如下:
#include
void main(void)
{
int i,j,im,jm,x[3][3],max;
for(i=0;j<3;i++)
for(j=0;j<3;j++)
scanf("%d",&x[i][j]);
for(j=0;j<3;j++)
{
max=x[0][j];im=0;jm=j;
for(i=1;i<3;i++)
if(max {
max=x[i][j];
im=i;
jm=j;
}
printf("i=%d j=%d max=%dn",i,j,max);
}
}
56. [参考答案]
参考程序如下:
#include
void strcpy(char *,char * );
void main(void)
{
char *str1,*str2="abcdef";
strcpy(str1,str2);
printf("%s",str1);
}
void strcpy(char *s1,char *s2)
{
int i=0;
while((s1[i]=s2[i])!='''')
i++;
}
全国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. (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<b)?a:b&&c<0的值是()
A. 0 B. 1
C. 3 D. 4
8.以指数形式输出实型数的格式说明符是()
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 43 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=″\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],
charrelation charrelation,
} }
C. struct tree D. struct tree
{ int branch { int branch
char name[20] char name[20]
charrelation charrelation
} }
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
charname
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
{
charpart
charcolor
} clove
charpart _ of _ vegetable [3]={″AA″,″BB″,″CC″};
charseven _ 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=1n<=5n++)
{
for(m=1m<=4m++)
printf(″%4d″,m n)
printf(″\n″)
}
}
32.阅读分析下面程序后,写出程序的运行结果。
#include″stdio.h″
main ( )
{
int arr[10],i,k=0
for(i=0i<10i++)
arr[i]=i
for(i=1i<=4i++)
{
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(chars,chart)
{
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分的人数各有多少人。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)