1、安徽省计算机等级二级考试真题C语言2013年6月参考答案1 2013年6月计算机等级考试省二级C语言 一. 单项选择题 1.计算机最主要的工作特点是_A____。 A)存储程序与程序控制 B)高速度与高精度 C)可靠性与可用性 D)具有记忆能力 2.__C___是用来衡量内存的性能指标。 A)主频和容量 B)容量和I/O接口类型 C)主频与运算速度 D)存取周期和容量 3.下列四个二进制数中,_D__与十进制数73等值。 A)1110111 B)1001100 C)1110110 D)1001001 4.计算机软件分为系统软件和应用软件,下列软件中,不属
2、于应用软件的是_C___。 A)autoCAD B)MSN C)SQL Server D)Window media playerrbiirm6。zmuNjMS。 5.下列关于Window回收站的说法,错误的是B______ A) 在不打开回收站的情况下可以清空回收站 B)回收站可以存放从U盘删除的文件 C)回收站占用的是硬盘空间 D) 回收站中的文件可以还原 6.__C__不可能是Window窗口组成的元素。 A)工具栏 B)状态栏 C)任务栏 D)滚动条 7.通常所说的“带宽”指的是数据通信中的_B_____指标 A)平均数据传输速率 B)
3、最高数据传输速率 C) 每分钟数据流量 D)最低数据传输速率 8.病毒是可以造成计算机故障的一种计算机__A____ A)程序 B)芯片 C)部件 D)设备 9.__C___不是多媒体技术特征。 A)多样性 B)集成性 C)隐蔽性 D)交互性 10.在下列有关算法的叙述中,错误的是_D___ A) 算法通常是用于解决某一个特定问题 B) 算法的表示可以有多种形式 C)一个问题可能存在多种算法 D)算法必须有输入 11.下列对c语言程序的描述中,正确的是_C____ A) c语言程序是从第一个定义的函数开始执行 B) c语言程序总是从最
4、后一个定义的函数执行 C)c语言程序总是从main函数开始执行 D)c语言函数中main函数必须放在程序的开始部分 12.__D__不是c语言的合法关键字。 A)switch B)default C)case D)printf 13.__A___是不合法的常量。 A)’xabcde’ B)”xlf” C)0x12 D)2.1e3 14.下列定义语句中,正确的C是____ A)char a=’A’ b=’B’; B)float a=b=6.5; C)int a=10,*b=&a; D)float *a,b=&a;
5、xP6v48T。e6wNyNR。 15.在c语言中_B___表示逻辑真 A)1 B)非0的数 C)非1的数 D)0 16. 设有定义int a; char c;,执行输入语句scanf(”%d%c”,&a,&c);时,若要求a和c得到的值为10和‘Y’,正确的输入方式是_C_____.8yHfiNE。crUjbbw。 A)10,Y B)10.Y C)10Y D)10 Y 17.下列运算符优先级最高的是__B___ A)< B)+ C)&& D)|| 18.z执行语句int a=3;a+=a-=a*a;后a的值___A__
6、A)-12 B)0 C)3 D)9 19.若a、i和j都是int型变量,则执行语句a=(i=4,j=16);后a的值为__B__ A)4 B)16 C)20 D)12 20.设有定义int b=0;表达式__B___与其他表达式的值不同 A)b+=1 B)b++ C)++b D)b+1 21设有预处理命令#define d 2 int a=10;float b=20;char c=’a’则下列语句错误的是D____3tEcDwB。jtUT8u7。 A)a++ B)b++ C)c++ D)d++ 22设有定义char w ;int x;flo
7、at y;;double z;则表达式w*x+z-y值的数据类型为D____8eCpGyh。iHoZzD6。 A)float B)char C)int D)double 23.有定义 int x=1,y=2,z=3;执行下列程序后,输出的结果是_B___ if(x>y) z=x;x=y;y=z; printf(“%d,%d,%d”,x,y,z); A)1,2,3 B)2,3,3 C)2,3,1 D)2,3,2 24.在C语言中,表示结束当前循环的是__C__ A)extern语句 B)break语句 C)continue语句 D)end语句 25.
8、若i为整形变量,则下列循环执行的次数是_C___ for(i=2;i= =0;)printf(“%d\n”,i--); A)2次 B1次 C)0次 D)无限次 26.设n为整形变量,执行语句for(n=1;n++<4;);后,变量n的值是B____ A)3 B)4 C)5 D)6 27.下列程序段的运行结果是__B__ char c[5]={‘a’,’b’,’\0’,’c’,’\0’};printf(“%s”,c); A)’a’’b’ B)ab C)ab c D)ab\0c\0 28.下列数组定义语句中,正确的是_A___ A)int a[ ]=”s
9、tring”; B)int a[5]={0,1,2,3,4,5}; C)char a =”string”; D) int a[]={0,1,2,3,4,5}; 29.若有定义 int a[3][4];则对数组元素引用正确的是D____ A)a[1][4] B)a[1,3] C)a(2)(1) D)a[2][0] 30.下列程序段的是_A___ int k,a[3][3]={1,2,3,4,5,6,7,8,9}; for(k=0;k<3;k++)printf(“%d”,a[k][2-k]); A)357 B)369 C)159 D
10、)147 31. __A__是正确的函数函数声明语句。 A)float func(int a,int b); B)float func(int a, b);PVUVQ0z。aBooiFX。 C)float func( a,int b); D) float func(a, b); 32.用户定义的函数_B___ A)不可以调用非整形函数值的函数 B)可以嵌套调用 C)可以调用main()主函数 D)定义的位置一定位于调用位置的前面 33.下列语句中,定义指针变量P的正确语句是__C____ A)int x,p=&x; B) int x,*p
11、x; C)int x,*p=&x; D) int x,*p=*x; 34.下列不能输出字符串“Hello”的程序段是-C----- A)char *t ; t=”Hello”;printf(“%s\n”,t); B)char *t, s[]=”Hello”;t=s; printf(“%s\n”,t) C)char s[20], *t=s; t=”Hello”; printf(“%s\n”,s) D)char *t, s[]=”Hello”;t=s; printf(“%s\n”,s) 35, 设有定义 char str[]=”game_over”,*p=&str[0]; 则
12、语句printf(“%d,%d”,sizeof[str],strlen(p))H6ebHy3。E3A1WLu。 的输出结果是 C_____- A)10,9 B)10,10 C)9,9 D)9,10 36 下列关于语句 int *p[10] 的说法正确的是B A)p是一个指针,指向一个数组,数组的元素是整形 B)p是一个数组,其数组的每一个元素是指向整数的指针 C)A)和B)的说法均错,但它是C语言的正确语句 D)C语言不允许使用这样的语句 37 设有定义 int a=80;执行语句a=a>>2后变量a的值是D A)80 B)60 C)40 D)20 3
13、8 设有定义语句: struct stu { int x; float y; } stutype; 则下列的说法不正确的是-D---- A)struct是定义结构体类型的关键字 B)struct stu 是用户定义的结构体类型 C)x和y都是结构体成员 D) stutype 是用户定义的结构体类型名 39 若有#define ADD(x,y)x*y,则语句printf(”s=%d”,ADD(2,2+3))的输出结果是BjV4hQMH。KyMHtnZ。 A)s=8 B)s=7 C)
14、s=10 D)s=11 40 若要打开当前文件夹中的文本文件 abc.txt 进行读和写操作,应使用B_____打开文件 A)fopen(”abc.txt”,”r”) B) fopen(”abc.txt”,”wb”) C) fopen(”abc.txt”,”w”) D) fopen(”abc.txt”,”r+”) 二.填空题(每空2分,共20分) 1.表达式25/3%3的值是___2____。 2若有定义 int a=1,b=4,c=3;则表达式!(a
15、2.8;,则表达式(int)a+b的值是_____5.8______。ESaGOfX。5Z1DdtP。 4.c语言标示符的第一个字符必须是字母或___下划线_____。 5.求a,b两个数的较大值_______。 6.设整型变量x的值为1,执行下列循环语句后,变量x的值是____2_____。 do {x++;} while (x++ <2); 7.变量的___定义域__取决于变量定义的位置。 8.c语言源程序编译后生成__目标___程序,然后经过链接生成可执行程序。 9.若有定义int a[10];,则该数组下标最大的数组元素为______9____。 10.若定义in
16、t a[6]={1,2,3,4,5,6},*p=&a[2];,则p[3]的值是__6__.bBJkob9。hkJg6nf。
三. 阅读理解题
1.以下程序运行结果是_____2___。
#include
17、ge”;
char *p1,*p2;
int i;
p1=a; p2=b;
for(i=0;i<8;i++)
if(*(p1+i)= =*(p2+i))
printf(“%c”,*(p1+i));
}
3. 以下程序运行结果是_1111222334_______。
#include
18、rintf(“%d”,i);
}
}
4..以下程序运行结果是_________。
#include
19、行结果是___7 8 9______。
#include
20、 x-1 (x<0)
参考答案:
#include
21、i=1;i<=30;i++) { t=(i+i+2)/2; y+=t/(i*(i+2)); } printf("y=%f\n",y); } 3. 编程将输入的字符串中的数字字符与非数字字符分离开来,分别组成俩个字符串,并输出。例如,输入字符串“A123B56C78D0X”,分离得到字符串“”与“ABCDX”。FEYQdTT。1TYe8XH。 参考答案: #include"stdio.h" void main() { char string1[80],shuzi[80],feishuzi[80]; int i,j,k; printf("请输入原始字符串:\n");
22、 scanf("%s",string1); i=0;j=0;k=0; while(string1[i]!='\0') { if (string1[i]>='0'&&string1[i]<='9') { shuzi[j]=string1[i]; j++; } else { feishuzi[k]=string1[i]; k++; } i++; } shuzi[j]='\0'; feishuzi[k]='\0'; printf("原始字符串:%s",string1); printf("\n数字串为:%s\n",shuzi); printf("\n新的非数字串为:%s\n",feishuzi); }






