计算机基础与程序设计2012年4月真题试题与答案解析(02275)
计算机基础与程序设计2012年4月真题试题与答案解析(02275),本试卷总共100分。
一、单项选择题
(本大题共20小题.每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.存储容量1KB等于 ( )
A.23字节
B.210字节
C.220字节
D.230字节
2.下面哪种设备是输出设备? ( )
A.扫描仪
B.键盘
C.鼠标
D.显示器
3.设有int a=3,b=—4,c=5;表达式++a-c+b++的值是 ( )
A.-6
B.-5
C.-4
D.-3
4.设有int x,y;表达式y=(x=1,++x,x+2)的值是 ( )
A.1
B.2
C.3
D.4
5.以十六进制形式输出整型数的格式说明符是 ( )
A.%x
B.%u
C.%o
D.%d
6.下列语句中,有语法错误的是 ( )
A.if(x﹥y);
B.if(x= =y)x+y;
C.if(x!=y) scanf(″%d″,&x)else scanf (″%d″,&y);
D.if(x﹤y){x++;y++;}
7.设有程序段int x=1,y=-1;if(y﹤0)x-=y;else x+=y;执行完该程序段后,x的值为 ( )
A.-1
B.0
C.1
D.2
8.下面程序段的循环次数是( )int k=2;while(k= =0) printf (″%d″,k);k--;printf (″ ″);
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.2 3
D.2 3 4 3 4
10.若有定义int a[4]={1,2,3,4};则表达式a[a[2]- 3*a[0]+1]的值是( )
A.1
B.2
C.3
D.4
11.在C语言程序中,关于函数的定义和调用,以下描述正确的是( )
A.函数的定义可以嵌套,但函数的调用不可以嵌套
B.函数的定义不可以嵌套,但函数的调用可以嵌套
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
12.关于main函数,以下说法中正确的是 ( )
A.C语言程序总是从有定义的函数起顺序执行,在main函数中结束
B.在C语言程序中,被调用的函数必须在main()函数中定义
C.C语言程序中的main()函数必须放在程序开始部分
D.C语言程序总是从main()函数开始执行
13.若要定义一个长整型的变量a和一个指向变量a的指针变量q,下面正确的定义语句是( )
A.long a,*q=a;
B.long a,*q=&a;
C.long*q=&a,a;
D.long a,q=&a;
14.若有说明long int x[5];下面能正确表示数组元素地址的是( )
A.&x[3]
B.&x
C.&x+1
D.*x
15.下面关于结构体类型的定义正确的是( )
A.
B.
C.
D.
16.下面列出的位运算符中,表示按位与操作的是 ( )
A.~
B.!
C.&
D.^
17.下面各个位运算符优先级从左到右依次升高的是 ( )
A.﹥ ﹥ | & ~
B.| ﹥ ﹥ & ~
C.| & ﹥ ﹥ ~
D.~ | & ﹥ ﹥
18.设有说明:int u=1,v=3;表达式:u﹤﹤=v的值是( )
A.0
B.1
C.3
D.8
19.如果将文件指针fp指向文件末尾,正确的语句是 ( )
A.feof(fp);
B.rewind(fp);
C.fseek(fp,0L,0);
D.fseek(fp,0L,2);
20.若要在C盘TC目录下,建立一个a1.dat的文本文件,正确使用打开文件的函数是( )
A.fopen(″C:\ TC \ a1.dat″,″r″)
B.fopen(″C: TC a1.dat″,″r″)
C.fopen(″C:\ TC \ a1.dat″,″w″)
D.fopen(″C: TC a1.dat″,″w″)
二、多项选择题
(本大题共5小题.每小题2分.共10分)在每小题列出的五个备选项中有二至五个是符合题目要求的.请将其代码填写在题后的括号内。错选、多选、少选或未选均无分。
11.下面属于合法的C语句的有 ( )
A.表达式语句
B.函数调用语句
C.子程序调用语句
D.空语句
E.循环语句
12.下面循环语句中,没有“无限循环”错误的循环语句有 ( )
A.for(;;);
B.for(i=1;i﹤10;i++);
C.while(1);
D.while(0);
E.do{循环体)while(1);
13.设有声明:int a[5]={1,3,5,7,9);下面表达式的结果为10的有 ( )
A.a[l]+a[3]
B.a[2]-2*a[1]
C.2*a[2]
D.a[0]+a[4]
E.a[1]+[-a[2]+a[3]
14.若有如下定义及赋值:int x=5,*p,*pl;p=&x;pl=p;则可以输出变量x的值的语句有 ( )
A.printf(″%d ″,x);
B.printf(″%d ″,*p);
C.printf(″%d ″,p1);
D.printf(″%d ″,&x);
E.printf(″%d ″,*p1);
15.设有关于结构体类型的定义: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分)
21.写出将x,y,z,w分别声明为整型变量、短整型变量、长整型变量和无符号整型变量的语句。
22.将下面for循环的程序段,用含while循环的程序段实现。for(s=0,i=1;i﹤=10;i++)s+=i;
23.简述声明语句:char *p[4];的含义。
24.设有声明:struct cjd{long bh;long int xq;char xm[9];float score[3];}x={201101,2,″张大力″,76,85.0,90);简单回答(1)结构体名;(2)结构体类型变量;(3)结构体类型变量所占字节数;(4)结构体成员x.score[2]的值。
四、阅读分析题
(本大题共6小题,每小题5分,共30分)
31.写出下面程序的运行结果main() {int a=1,b=2,c=3;++a;b=b+a;c=c/2; printf(″%d,%d,%d ″,a,b,c);}
32.写出下面程序的运行结果main() { char ch; ch=′a′;switch(ch){case′a′:printf(″* ″);
case′b′:printf(″** ″);case′c′:printf(″*** ″); }ch=′b′;switch(ch){case ′b′:printf(″** ″);case ′a′:printf(″* ″);break;case ′c′:printf(″*** ″);}}
33.写出下面程序的运行结果void main(void){int x;for(x=1;x﹤10;x+=2)printf(″%d %d ″,x,x*x);}
34.写出下面程序的运行结果#include﹤string.h﹥ main() { char a[5][8]={ ″java″,″fortran″,″basic″,″cobol″,″pascal″},b[8],c[8]; int i; strcpy(b,a[0]); strcpy(c,a[0]); for(i=1;i﹤5;i++) { if(strcmp(b,a[i])﹤0)strcpy(b,a[i]); if(strcmp(c,a[i])﹥0)strcpy(c,a[i]); } printf(″%s ″,b); printf(″%s ″,c); }
35.写出下面程序的运行结果void main(void) { int x; for(x=1;x﹤=5;x++) printf(″%d,%d ″,x,fun(x)); } int fun(int x) { static int fac=1; fac*=x; return fac; }
36.?写出下面程序的运行结果void f2(char*t,char*s) { while(*t!=′ ′)t++; while(*s!= ′ ′) { *t=*s: s++;t++; } *t=*s; } void main(void) { char s[80]= ″ ″,*ps[3]={ ″there″,″is a″,″car″}; int i; for(i=0; i﹤3;i++) f2(s,ps[i]); printf(″%s ″,s); }
五、程序设计题
(本大题共2小题.每小题12分.共24分)
41.从键盘输入10个整数并存放到一维数组中,计算下标为奇数的元素的累加和并输出运行结果。
42.从键盘上输入10个浮点型数,求出10个数的总和与平均值,并将总和与平均值写到d盘根目录下的文本文件array.dat中。