计算机水平考试试卷2010.06
2010.06计算机水平考试试卷
(二级计算机基础和C语言)
一、单项选择题(每题1分,共40分)
1.计算机系统中存储信息的基本单位。
A)位B)字节C)字D)字符
2.超市使用的POS机收费系统,属于计算机在在什么方面的应用。
A)数据处理B)科学计算C)实时控制D)计算机辅助
3.下面是PC机常用的4种外设接口,其中U盘、移动硬盘、MP3、MP4等均能连接的接口是。
A)RS—232 B)IEEE—1394 C)USB D)IDE
4.下面各种进制的数据中,最大的数是。
A)(1000010)2 B) (67)10 C) (77)8 D) (3A)16
5.下列关于Windows操作系统通配符的说法中,正确的是。
A)代表多个字母B) 代表多个字母
C)代表任意多个字母D)代表任意多个字符
6.某电子邮件的地址为:wyg@https://www.360docs.net/doc/d18723732.html,,其中wyg是。
A)域名B)地区名C)用户名D)国家名
7.多媒体计算机指。
A)安装了光驱并具有较高运算能力的计算机
B)安装了多种媒体播放器软件的计算机
C)能够处理音频、视频等多媒体信息的计算机
D)能够访问Internet的计算机
8.下列选项中不是有效的信息安全控制方法。
A)用户口令设置B)用户权限设置
C)数据加密D)增加网络带宽
9.下列选项中,防止U盘感染病毒的有效方法是。
A)对U盘进行写保护B)对U盘进行分区
C)保持U盘的清洁D)不要与有毒的U盘放一起
10.编程属于软件开发过程中的阶段。
A)实现B)定义C)分析D)维护
11.C语言程序总是从开始执行。
A)第一条语句B)第一个函数C)main函数D)#include
A)10=K;B)K=K*15;
C)K+47=K D)K=7=6+1
13.下列程序段输出的结果是。
int m=7,n;
n=m++;
printf(“%d,%d\n”,n,m);
A)7,8 B)7,7 C)8,7 D)8,8
14.下列不能作为变量名的是。
A)abc B)x39 C)NBA D)for
15.设有int a=2,b=6; ,则表达式a*b/5的值是。
A)2 B)3
C)2.4 D)3.6
16.设有int y=0; ,执行语句y=5,y*2;后变量y的值是。
A)0 B)5 C)10 D)20
17.设有float a=7.5,b=3.0; ,则表达式(int)a/(int)b的值。
A)2.4 B)2.5 C)3 D)2
18.设有int a=2,b=3,c=4; ,则逻辑表达式
a
A)2 B)3 C)4 D)5
19.设有int a;char ch[80]; ,则下列选项中正确的输入语句是。
A)scanf(“%d%s”,&a,ch[80]);
B) scanf(“%d%s”,&a,ch);
C) scanf(“%d%s”, a,ch);
D) scanf(“%d%s”, a, &ch);
20.若变量C为char类型,下列选项中能正确判断出C为小写字母的表达式是。A)'a'<=c<='z' D)?a?<=c&&c<=?z?
21.设有int x,y,z;则选项中能将x,y中较大者赋给变量z的语句是。
A)if(x>y)z=y;
B) if(x C) z=x>y?x:y; D) z=x 22.运行下列程序 #include void main() { char c=‵y‵; if(c>=‵x‵)printf(〝%c〞;c); if(c>=‵y‵)printf(〝%c〞;c); if(c>=‵z‵)printf(〝%c〞;c); } 输出结果是。 A)y B)yy C)yyy D)xy 23.下列叙述中正确的是。 A)在switch语句中,不一定使用break语句 B) break语句必须与switch语句中的case配合使用 C)在switch语句中必须使用default D)break语句只能用于switch语句 24.执行语句for(i=1;i<9;i+=3);后变量i的值是。 A)8 B) 9 C)10 D)11 25.下列选项中能正确定义并初始化二维数组的是。 A) int a[ ][3]={1,2,3,4,5,6}; B) int a[ ][ ]={1,2,3,4,5,6}; C) int a[2][ ]={1,2,3,4,5,6}; D) int a[2][3]=“1,2,3,4,5,6”; 26.设有char array[ ]=“Welecome”;则数组array所占的存储单元是。 A) 6个字节B)7个字节C)8个字节D)9个字节 27.下列程序段的输出结果是。 char s[ ]=“\\\x41xyz”; printf (“%d\n”,strlen(s)); A)5 B)8 C)9 D)10 28.设有int m[ ]={5,4,3,2,1},i=4;则下列对数组m元素的引用中错误的是。 A) m[i] B) m[4] C) m[m[0]] D) m[m[i]] 29.设有函数调用语句fun((a1,a2),( a3,a4,a5),a6);则该调用语句中实参的个数是。 A) 6 B)5 C)4 D)3 30.设有以下函数首部: int func(double x[100],int n){} 如果在程序中需要对该函数进行声明,则下列选项中错误的是。 A) int func(double x[ ],int n); B) int func(double,int ); C) int func(double a[100],int b); D) int func(double *x,int n); 31.C语言规定,函数返回值的类型是由决定。 A) return语句中的表达式值的类型 B) 调用该函数的主调用函数类型 C) 调用该函数时传递的实参类型 D)定义该函数时指定的函数类型 32.若要说明a是整型变量,pa为指向a的整型指针变量,则下列选项中正确的是。 A) int a, *pa=&a; B) int a,pa=&a; C)int a,*pa=a; D) int *pa=&a,a; 33.设有int s[ ]={1,23,5,7,9},*p=s;则下列选项中值为7的表达式是。 A)*p+2 B)*p+3 C)*(p+3) D)*(p+2) 34.对于类型相同的两个指针变量之间,能进行的运算是。 A) % B) = C) ! D) / 35.设有 Struct student { char name[21]; int age; char sex; }std={“Li Ming”,19,?M?},*p; P=&std; 则下列输出语句中错误的是。 A)printf(“%d”,(*p).age); B)printf(“%d”,p->age) C) printf(“%d”,st d.age); D) printf(“%d”,p.age); 36.设有 union data { int i ; char c ; float f ;} a ; int b ; 则下列语句中正确的是。 A)a=1.6 B) a.c=’\101’ C) b=a D) printf(“%d\n”,a) 37.设有 Typedef struct ABC { long a ; int b; char c[2];}NEW; 则下列叙述中正确的是。 A)以上的说明形式非法 B)ABC是一个结构体变量 C)NEW是个结构体类型名 D)NEW是个结构体变量 38.设有int x=28; ,则执行语句printf(“%d\n”,x>>2);后的输出结果是。 A)7 B)14 C)28 D)56 39.C语言中,根据数据的组织方式,文件可分为ASCII文件和。 A)二进制文件B)只读文件C)只写文件D)随机文件 40.以读写方式打开一个已存在的文件data.txt,下列选项中正确的是。 A) FILE *fp;fp=fopen(“data.txt”,”rb”); B) FILE *fp;fp=fopen(“data.txt”,”w”); C) FILE *fp;fp=fopen(“data.txt”,”r”); D) FILE *fp;fp=fopen(“data.txt”,”r+”); 二、填空题(每空2分,共20分) 1.结构化程序设计的三种基本结构分别是:顺序结构、和循环结构。 2.设有int a=65;,执行语句printf(“%x\n”,a);后的输出结果是。 3.设有double x=56.789; ,则执行语句printf(“%.2f\n”,x);后的输出结果是56.79 。4.设有int a =27;,则执行语句a%=4;后a的值是 3 。 5设有int a[3][4]={{1,2},{0,1},{4,6,8,10}};,则a[1 ][1]+a[2 ][2 ]的值是9 。 6.C标准库函数中,常用的字符串比较函数是。 7.表示变量存储方式的关键字auto、、register和extern. 8.下列程序的输出结果是H 。 #include void main() {char s[ ]={“Computer”},*p=s; Printf(“%c”,*p+5);} 9.设有#define M(x) x*x,则M(1+2)的值是 5 。1+2*1+2 10.设有enum weekday {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};,则枚举元素Saturday对应的数值是 6 。 三、阅读理解题(每题4分,共20分) 1.运行一下程序是从键盘输入2010,其运行结果是。 #include void main() {int year,leap=0; scanf(“%d”,&year); if((year%4= =0&& year%100!=0)∣∣(year%400= =0))leap=1; if(leap= =1) printf(“%d is a leap year!\n”,year); else printf(“%d is not a leap year!\n”,year); } 2.以下程序的运行结果是。 #include void main( ) {char ch=?c?; Switch(ch) {case ‘a’: case ‘A’: case ‘b’: case ‘B’:printf(“good!\n”);break; case ‘c’: case ‘C’:printf(“pass!\n”);break; case ‘d’: case ‘D’:printf(“warning!\n”);break; default:printf(“error!\n”); } } 3.以下程序的运行结果是。 #include void main() {char s[ ]= “I / love / C / Programming/”; int i , num; num = 0; for ( i = 0;s[ i ] != …\0?; i++) if(s[i]!=?/? && s[i+1] = = …/?) num++; printf(“ num = %d\n “,num); } 4.以下程序的运行结果是。 #include int f(int n) { int m; if( n = = 0∣∣n = = 1) m= 3; else m = n*n-f(n-2); return(m) } V oid main( ) { int n=2,m; m=f(n); printf ( “ n=%d,m =%d\n”,n,m); } 5.以下程序的运行结果是。 #include void main() {char s[ ]= “ABCDEFGH”,b[ ] = “abCDefGh”; char *p1,p2; printf(“%s\n”,a); printf(“%s\n”,b); for (p1=a,p2=b;*p1!?\0?;p1++;p2++) if(*p1= =*p2) printf(“%c”,*p1); printf(“\n “); } 四、编程题(第1题6分,第2、3题各7分,共20分) 1、输入两个正整数a 和b 整除,输出商,否则输出商和余数。(答案略) 2、利用循环语句编写程序,计算s = 1+11+111+1111并输出结果。 #include int main(void) { int j,sum=0,t=0; for(j=1;j<5;j++) { t=t*10; t=t+1; sum+=t; printf("%d+",t); } printf("\b=%d\n",sum); return 0; } 解法二 #include #include void main() { int i,j,a,s=0; for (i=1;i<5;i++) { a=0; for(j=i;j>0;j--) a=a+pow(10,j-1); s=s+a; } printf("s=1+11+111+1111=%4d",s); printf("\n"); } 3、输入10位学生的成绩,输出学生成绩及其所对应的名次。 成绩90 85 90 95 80 88 70 100 95 95 名次 5 8 5 2 9 7 10 1 2 2 例如,下面有10位学生的成绩及计算后的对应的名次: 其中“95分”排名第2,由于有3个“95分”,下一个较小的成绩“90分”则排名第5。说明:算法及输出形式不限,相同的成绩及名次可以不重复输出。 #include void main() { int a[11],rank[11]; int i,j,t; printf("请输入10个学生的成绩:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(i=0;i<10;i++) { t=1; for(j=0;j<10;j++)