计算机水平考试试卷(二级C语言)
单项选择题(每题1分,共40分)
1. 计算机能够自动工作,主要是因为采用了______。
A)二进制数制 B)大规格集成电路
C)程序设计语言 D)存储程序控制原理
2. 下列数值中最大的是______。
A) (10110)2 B) (120)8 C) (70)10 D) (3A)16
3. 在计算机指令系统中,一条指令通常由______组成。
A)数据和字符 B)操作码和操作数
C)运算符和数据 D)被运算数和结果
4. 运算器主要是由______组成。
A)算术逻辑单元 B)微处理器 C)控制器 D)存储器
5. 下列关于Windows“回收站”的叙述中,不正确的是______。
A)“回收站”中的信息可以清除 B)“回收站”中的信息可以还原
C)“回收站”的大小可以设置 D)“回收站”不占用硬盘空间
6. 多媒体信息不包括______。
A)文字、图形 B)音频、视频 C)光驱、声卡 D)影像、动画
7. 学校机房的若干台计算机连接而成的网络通常属于______。
A)WAN B)LAN C)MAN D)GPS
8. FTP是______。
A)发送电子邮件的软件 B)浏览网页的工具
C)文件传输协议 D)聊天工具
9. 下列关于计算机病毒的叙述中,不正确的中______。
A)计算机病毒只破坏硬件,不破坏软件
B)计算机病毒是人为编写的一种程序
C)计算机病毒通能通过磁盘、网络等媒介传播、扩散
D)计算机病毒具有潜伏性、传染性和破坏性
10. 下列关于算法的叙述中,正确的是______。
A)算法就是对特定问题求解步骤的描述 B)算法就是程序
C)算法就是软件 D)算法没有优劣之分
11. 一个可编译运行的C语言源程序中,______。
A)主函数有且仅有一个 B)可以有多个主函数
C)必须有除主函数以外的其他函数 D)可以没有主函数
12. 结构化程序设计所规定的三种基本控制结构是______。
A)输入、处理、输出 B)树型、网形、环形
C)顺序、选择、循环 D)主程序、子程序、函数
13. 以下选项中合法的用户标识符是______。
A)long B)_2Test C)3Dmax D)for
14. 设有:char a=’\101’;,则变量a______。
A)包含1个字符 B)包含3个字符 C)包含4个字符 D)定义为合法
15. 以下选项中运算对象不能为实型的运算符是______。
A)% B)/ C)= D)*
16. 已知int i,a;,执行语句i=(a=2*4,a*5),a+6;后,变量i的值是______。
A)8 B)14 C)40 D)46
17. 设有以下变量定义,并已赋确定的值:
Long w; int x; double y;
则表达式w+x+1/y值的数据类型为______。
A)int B)long C)float D)double
18. 以下选项中,与k=++n完全等价的表达式是______。
A)k=n,n=n+1 B)n=n+1,k=n
C)k=n+1 D)k+=n+1
19. 设x、y、t均为int型变量,则执行语句:x=y=0;t=++x||++y;后,y的值为______。
A)0 B)1 C)2 D)不确定
20. 若整型变量a、b、t已正确定义,现要将a和b中的数据进行交换,下面不正确的是______。
A)t=a;a=b;b=t; B)t=a,a=b,b=t;
C)a=t;t=b;b=a; D)t=b;b=a;a=t;
21. 设有:flaot a=2,b=4,h=3;,以下C语言表达式中与代数式计算结果不相符的是______。
A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)
22. 已知a、b、c为int类型,执行语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);,若要使得a为1,b为2,c为3,则以下选项正确的输入形式中______。
A)a=1 B)1,2,3 C)a=1,b=2,c=3 D)1 2 3
b=2
c=3
23. 对于以下形式:
if(表达式) 语句
其中的表达式______。
A)只能是关系表达式 B)只能是关系表达式或逻辑表达式
C)只能是逻辑表达式 D)可以是任何表达式
24. 若变量c为char类型,以下选项中能正确判断出c为数字字符的表达式是______。
A)’0’<=c<=’9’ B)(c>=’0’)&&(c<=’9’)
C)(‘0’<=c)&(‘9’>=c) D)(c>=0)&&(c<=9)
25. 下面有关for语句的正确描述是______。
A)for语句只能用于循环次数已经确定的情况
B)for语句是先执行循环体语句,后判断作为循环条件的表达式
C)在for语句中,不能用break语句跳出循环体
D)for语句的循环体中,可以包含多条语句,但必须用花括号括起来
26. 能将两个变量x、y中值较小的一个赋给变量z的语句是______。
A)if(xy)z=y; C)z=xy?x:y;
27. 若有:
char str1[]=”123456”;
char str2[]={‘1’,’2’,’3’,’4’,’5’,’6’};
则下面叙述正确的是______。
A)数组str1和str2完全相同 B)str1和str2数组长度相等
C)数组str1和 str2不相同,str1是指针数组 D)str1和str2数组长度不相等
28. 以下不能正确初始化二维数组的选项是______。
A)int a[2][2]={{1},{2}}; B)int a[][2]={1,2,3,4};
C)int a[2][2]={1,2,3}; D)int a[2][]={{1,2},{3,4}};
29. 执行下面程序:
#include
#include
main()
{
char s[21]=”ABC”;
strcat(s,”6789”);
printf(“%s
”,s);
}
A)ABC6789 B)ABC C)6789 D)6789ABC
30. 在C语言程序中,关于函数说法正确的是______。
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的定义和函数的调用均不可以嵌套
D)函数的定义和函数的调用均可以嵌套
31. C语言程序中,调用函数时若实参是普通变量,则下面说法正确的是______。
A)实参和形参各占独立的存储单元
B)实参和形参可以共用存储单元
C)可以由用户指定实参和形参是否共用存储单元
D)由计算机系统根据不同的函数自动确定实参和形参是否共用存储单元
32. 设程序中定义了以下函数
double myadd(double a,double b)
{ return(a+b); }
如果在程序中需要对该函数进行声明,以下选项中错误的是______。
A)double myadd(double a,b); B)double myadd(double,double);
C)double myadd(double b,double a); D)double myadd(double a,double b);
33. C语言中,若某变量在定义它的函数被调用时才被分配存储单元,则该变量的存储类别为______。
A)static B)extern C)auto或register D)extern或static
34. 以下能使指针变量p指向变量a的正确选项是______。
A)int a,*p=a; B)int a,p=a; C)int a,*p=*a; D)int a,*p=&a;
35. 设有char str[]=”Olympiv”;
则表达式*(str+4)的值为______。
A)’m’ B)’p’ C)’i'’ D)不确定的值
36. 已知:
union
{ int i;
char c;
float p;
}ex;
则sizeof(ex)的值是______。
A)1 B)2 C)4 D)7
37. 设有:
struct student
{ char name[10];
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”,p.age); D)printf(“%d”,std.age);
38. 以下关于typedef的叙述不正确的是______。
A)typedef不能用于定义变量
B)用typedef可以增加新类型
C)用typedef只是将已存在的类型用一个新的名称来代表
D)使用typedef便于程序的通用和移植
39. 已知:int x=16;,则表达式x>>3的值是______。
A)64 B)32 C)8 D)4
40. 下列关于文件操作正确的______。
A)对文件操作必须先打开文件
B)对文件操作必须先关闭文件
C)对文件操作打开和关闭的顺序无关紧要
D)对文件操作打开和关闭的顺序取决于是读还是写操作
二、填空题(每空2分,共20分)
1. 设有int x; float y=5.5;,则执行语句x=y*3+(int)y%4;后,x的值是______。
2. 已知int x=5,y=3,z=1;,则执行语句x%=y+z;后,x的值是______。
3. 已知float f=123.467;,则执行语句printf(“%.2f
”,f);后,输出结