一:选择题(每空1分,共40分)
1.在计算机领域中,MIPS通常用来描述计算机的 1 。
A)运算速度 B)内存容量 C)分辨率 D)主频
2.下面属于计算机输出设备的是 2 。
A)显示器 B)鼠标 C)键盘 D)扫描仪
3.微型计算机在工作中突然断电,则 3 中的信息全部丢失。
A)硬盘 B)RAM C)ROM D)光盘
4.若X是二进制数1011,Y是十进制数13,Z是十六进制数1D,则X、Y、Z从大到小的顺序是 4 。(X,Y,Z都是无符号数)
A)Z Y X B)Y Z X C)X Y Z D)Z X Y
5.在Windows中,下面关于删除文件的描述错误的是 5 。
A)U盘上的文件被删除后,不能从回收站中还原
B)可以不经过回收站直接将文件删除
C)可以将文件先复制到回收站,需要时再将其从回收站还原
D)利用“清空回收站”选项可以把回收站中的文件全部删除
6.下面关于E-mail功能的描述中,错误的是 6 。
A)在发送电子邮件时,可以同时发送给多人
B)在发送电子邮件时,可以发送附件
C)在接收电子邮件时,可以将附件下载到本地计算机上
D)在接收电子邮件时,必须将附件下载到本地计算机上
7.为减少多媒体数据所占存储空间,常采用 7 技术。
A)高速缓冲 B)数据压缩
C)多通道 D)流媒体
8.http://www.ahedu.gov.cn中的“http”指的是 8 。
A)计算机主机域名 B)文件传输协议 C)超文本传输协议 D)TCP/IP协议
9.下面关于计算机病毒的描述中,正确的是 9 。
A)计算机病毒不能感染安装了杀毒软件的计算机系统
B)计算机病毒只能通过网络传播
C)计算机病毒不能感染加密或压缩后的文件
D)计算机病毒可以通过U盘进行传播
10.下面系统软件中,最核心的是 10 。
A)编译系统 B)语言处理系统 C)操作系统 D)数据库管理系统
11.下列定义变量错误的语句是______。
A)int _abc; B)double int_; C)char For; D)float US$;
12.设有int x=3,y=4;,以下不合法的C语言语句是 ______。
A)x=y==5; B)x=y%2.8; C)x=y=5; D)x+=x+2;
13.下列可以正确表示字符常量的是______。
A)’\\x41’; B)\008 C)a D)”a”
14.设有定义:int k=0;,以下值为0的表达式是______。
A)k-1 B)k-=1 C)k-- D)--k
15.下列常数中不能作为C语言常量的是______。
A)0xA5 B)2.5e-2 C)3e2 D)0582
16.设有float f1=2.6,f2=2.5;,则表达式(int)f1+f2的值为______。
A)5 B)4.5 C)4 D)5.5
17.设变量x,y,z均为int类型,则以下程序段的输出结果是______。
x=y=6;
z=x,++y;
printf(“%d”,z);
A)9 B)8 C)7 D)6
18.设有int a=2,b=1,c=3,d=4; ,则表达式a>b?a+b:c+d的值为______。
A)1 B)2 C)3 D)7
19.设有int a=5,b=6,c=2; ,则表达式aA)0 B)1 C)2 D)3
20.若变量c为char类型,以下不能正确判断其为大写字母的表达式是______。
A)’A’<=c<=’Z’ B)c>=’A’ && c<=’Z’
C)(c+32)>=’a’ &&(c+32)<=’z’ D)!(c<’A’ || c>’Z’)
21.若从键盘上输入88<回车>后,以下程序的输出结果是______。
#include “stdio.h”
void main()
{ int a;
scanf(“%d”,&a);
if (a>90) printf(“%d”,a);
if (a>80) printf(“%d”,a);
if (a>70) printf(“%d”,a);
}
A)888888 B)8888 C)88 D)8
22.以下程序段的输出结果是______。
int a=2,b=1,c=2;
if (aprintf(“%d\\n”,c);
A)0 B)1 C)2 D)3
23.语句while (!w);中的表达式!w等价于______。
A)w==1 B) w==0 C)w!=1 D)w!=0
24.以下程序段的输出结果是______。
int a=1,b=2,c=3,t;
while (b c--;} printf(“%d,%d,%d”,a,b,c); A)1,2,3 B)2,1,2 C)1,2,1 D)2,1,1 25.以下能正确定义和初始化一维数组a的选项是______。 A)int a[5]={0,1,2,3,4,5}; B)int a[]=”01234”; C)int a[5]=(‘A’,’B’,’C’); D)int a[]={1,2,3,4,5}; 26.函数strlen(“1234\\0ab\0c”)的返回值是______。 A)4 B)5 C)8 D)9 27.若有说明:int a[4][5];,则对数组a的元素的非法引用是______。 A)a[0][2*2] B)*(*(a+1)+2) C)a[4-2][0] D)a[0][5] 28.判断字符串s1是否大于字符串s2,正确的表达式是______。 A)s1>s2 B)strcat(s1,s2) C)strcpy(s1,s2) D)strcmp(s1,s2)>0 29.在C语言中,函数返回值的类型取决于______。 A)函数定义中在函数首部所说明的类型 B)在return语句中表达式值的类型 C)调用函数时主调函数所传递的实参的类型 D)函数定义中形参的类型 30.若从键盘上输入3,4<回车>后,则以下程序的输出结果是______。 #include “stdio.h” void swap(int x, int y) { int t; t=x;x=y;y=t; printf(“%d,%d”,x,y);} void main() { int a,b; scanf(“%d,%d”,&a,&b); swap(a,b); printf(“%d,%d”,a,b);} A)3,4,3,4 B)4,3,3,4 C)4,3,4,3 D)3,4,4,3 31.一个源文件中定义的全局变量的作用域是______。 A)本函数的全部范围 B)从定义开始至本文结束 C)本文件的全部范围 D)本程序的全部范围 32.下列关于C语言函数的说法中正确的是______。 A)函数可以嵌套定义 B)函数不可以嵌套调用 C)函数可以嵌套调用,但不能递归调用 D)函数嵌套调用和递归调用均可以 33.有如下程序段: int a=10, b=2, *p; p=&a; a=*p+b; 执行该程序段后,a的值为______。 A)12 B)11 C)0 D)编辑出错 34.设有int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;,则p[5]的值是______。 A)5 B)6 C)7 D)8 35.运行程序: #include “stdio.h” void func(int x, int *y) { x=x+1; *y=*y+1;} void main() { int a=10, b=20; func(a, &b); printf(“%d, %d\\n”,a,b);} 输出结果是______。 A)10,20 B)11,21 C)10,21 D)11,20 36.若有定义 char str[]=”uvwxyz”, *p=str;,则执行语句printf(“%c\\n”,*(p+3));后的输出结果是______。 A)x B)xyz C)元素str[3]的地址 D)字符x的地址 37.以下程序的输出结果是______。 #define MUL(x) x*x #include “stdio.h” void main() { int a=4,b=2; prinntf(“%d\\n”,MUL(a)/Mul(b));} A)4 B)8 C)16 D)32 38.以下类型说明和变量定义中正确的是______。 A)typedef struct B)struct REC {int n; char c;} REC; {int n; char c;}; REC t1, t2; REC t1, t2; C)typedef struct REC ; D)struct {int n; char c;} REC; {int n=0; char c=’A’;} t1, t2; REC t1, t2; 39.已知int x=56;,则执行语句printf(“%d\\n”, x>>2);后的输出结果为______。 A)34 B)14 C)224 D)56 40.若要用fopen()函数以读写方式打开一个已存在的二进制文件,则打开方式是______。 A)”a” B)”wb+” C)”ab” D)”rb+” 二、填空题(每空2分,共20分) 1.已知char c=’A’;,则执行语句printf(“%d”,c);后的输出结果为______。 2.已知double x=56.78;,则执行语句printf(“%1.1f\\n”,x);后的输出结果为______。 3.已知int a=2,b=3;,则执行语句a*=b+4;后,a的值为______。 4.已知double x=1,y;,则表达式y=x+3/2的值为______。 5.数学表达式1≤x≤3的C语言表达式子为______。 6.已知int k=-5;,则下面while循环执行的次数是______。 while (k<=0) k=k+1; 7.以下程序段的输出结果为______。 char s[]=”Hello,World!”; s[5]=’\0’; printf(“%s”,s); 8.若有定义:union {long x[2]; char y[6];} m;,则执行语句printf(“%d\\n”,sizeof(m));后的输出结果为______。 9.在C语言中,若需调用数学库函数对数据进行处理,则需包含头文件______。 10.已知文件指针fp指向某文件的末尾,则!feof(fp)的值是______。 三、阅读理解题(每题4分,共20分) 1.以下程序的运行结果为______。 #include void main() { int i,a=0,b=0,c=0; for(i=1;i<5;i++) switch(i) { case 1:a++; case 2:b++; case 3:a++;b++;break; default:c++;} printf("a=%d,b=%d,c=%d\\n",a,b,c);} 2.以下程序的运行结果为______。 #include void main() { int s=0,x=5639; while (x>0) { s=s+x%10; x=x/10;} printf("a=%d\\n",s);} 3.以下程序的运行结果为______。 #include void main() { int i,j=0; char s[]="PROGRAM"; for(i=1;s[i]!='\\0';i++) if (s[j]>s[i]) j=i; printf("%c\\n",s[j]);} 4.以下程序的运行结果为______。 #include int fun1(int x) { static int s=1; s=s*x; return(s);} void main() { int i; for(i=1;i<=4;i++) printf("%d\\n",fun1(i));} 5.以下程序的运行结果为______。 #include int fun2(int n) { if (n==1) return(1); else return(n+fun2(n-1));} void main() { printf("%d\\n",fun2(5));} 四、编程题(共20分) 1.(6分)设计程序计算并输出2009~9002之间所有29或92的倍数的和。 (要求用循环语句实现) 2.(7分)设计程序输出下面图形(要求用循环语句实现)。 9 09 009 2009 3.(7分)设计一个转换函数,将字符数组中的字母变换为其字母表顺序后的字母,如果是’Z’或’z’,则分别变成’A’或’a’,非字母字符不变,即: ‘a’→‘b’, ‘b’→‘c’, ‘c’→‘d’,……‘y’→‘z’, ‘z’→‘a’ ‘A’→‘B’, ‘B’→‘C’, ‘C’→‘D’,……‘Y→‘Z’, ‘Z’→‘A’ 函数框架如下: void Change(char s[]) { …… } 例如:对于字符数组:char a[]=”t&W”,b[]=”w&z”;转换后的结果分别为:u&X和x&A。请完成……处的程序代码。 参 一、选择题 AABAC DBCDC BCCAB BAABD DACBC DBADC CADBC ABBCD 二、填空题 1.65 2.56.8 3.14 4.2.0 5.x>=1 &&x<=3 6.6 7.Hello 8.8 9.math.h 10.0 三、阅读理解题 1. a=4,b=5,c=1 2. a=23 3. A 4. 1 5. 15 2 6 24 四、编程题 1. #include void main() { long s=0; int i; for(i=2009;i<=9002;i++) if (i%2009==0 || i%9002==0) s=s+i; printf("%ld\\n",s);} 2. #include void main() { char *s="2009"; int i; for(i=3;i>=0;i--) printf("%s\\n",s+i);} 3. void Change(char s[]) { for(;*s!='\\0';s++) if (*s>='a' && *s<'z') *s=*s+1; else if (*s>='A' && *s<'Z') *s=*s+1; else if (*s=='Z') *s='A'; else if(*s=='z') *s='a'; }