安徽省09年6月二级C语言程序设计试题—卢小龙
一:选择题(每空1分,共40分) ______。
B)k-=1 C)k-- D)--k 1.在计算机领域中,MIPS通常用来描述计算机的 A)k-1
15.下列常数中不能作为C语言常量的是______。 1 。
A)0xA5 B)2.5e-2 C)3e2 D)0582 A)运算速度 B)内存容量 C)分辨率 D)主频
16.设有float f1=2.6,f2=2.5;,则表达式(int)f1+f22.下面属于计算机输出设备的是 2 。
的值为______。 A)显示器 B)鼠标 C)键盘 D)扫描仪
A)5 B)4.5 C)4 D)5.5 3.微型计算机在工作中突然断电,则 3 中
17.设变量x,y,z均为int类型,则以下程序段的输的信息全部丢失。
出结果是______。 A)硬盘 B)RAM C)ROM D)光盘
x=y=6;
4.若X是二进制数1011,Y是十进制数13,Z是
z=x,++y;
十六进制数1D,则X、Y、Z从大到小的顺序是 printf(“%d”,z); 4 。(X,Y,Z都是无符号数) A)9 B)8 C)7 D)6
A)Z Y X B)Y Z X C)X Y Z 18.设有int a=2,b=1,c=3,d=4; ,则表达式D)Z X Y a>b?a+b:c+d的值为______。 5.在Windows中,下面关于删除文件的描述错误A)1 B)2 C)3 D)7 的是 5 。 19.设有int a=5,b=6,c=2; ,则表达式a
20.若变量c为char类型,以下不能正确判断其为C)可以将文件先复制到回收站,需要时再将其从
大写字母的表达式是______。 回收站还原
A)?A?<=c<=?Z? B)c>=?A? && c<=?Z? D)利用“清空回收站”选项可以把回收站中的文
C)(c+32)>=?a? &&(c+32)<=?z? D)!(c
6.下面关于E-mail功能的描述中,错误的是 c>?Z?)
21.若从键盘上输入88<回车>后,以下程序的输出6 。
结果是______。 A)在发送电子邮件时,可以同时发送给多人
#include “stdio.h”
B)在发送电子邮件时,可以发送附件
void main()
C)在接收电子邮件时,可以将附件下载到本地计{ int a; 算机上 scanf(“%d”,&a); D)在接收电子邮件时,必须将附件下载到本地计 if (a>90) printf(“%d”,a); 算机上 if (a>80) printf(“%d”,a); 7.为减少多媒体数据所占存储空间,常采用 7 if (a>70) printf(“%d”,a);
} 技术。
A)888888 B)8888 C)88 D)8 A)高速缓冲 B)数据压缩
22.以下程序段的输出结果是______。 C)多通道 D)流媒体
int a=2,b=1,c=2;
8.http://www.ahedu.gov.cn中的“http”指的是
if (a
8 。 printf(“%d\\n”,c); A)计算机主机域名 B)文件传输协议 C)A)0 B)1 C)2 D)3 超文本传输协议 D)TCP/IP协议 23.语句while (!w);中的表达式!w等价于______。 9.下面关于计算机病毒的描述中,正确的是 A)w==1 B) w==0 C)w!=1 D)w!=0 9 。 24.以下程序段的输出结果是______。
int a=1,b=2,c=3,t; A)计算机病毒不能感染安装了杀毒软件的计算机
while (b { t=a;a=b;b=t; B)计算机病毒只能通过网络传播 c--;} C)计算机病毒不能感染加密或压缩后的文件 printf(“%d,%d,%d”,a,b,c); D)计算机病毒可以通过U盘进行传播 A)1,2,3 B)2,1,2 C)1,2,1 D)2,1,1 10.下面系统软件中,最核心的是 10 。 25.以下能正确定义和初始化一维数组a的选项是A)编译系统 B)语言处理系统 C)操______。 作系统 D)数据库管理系统 A)int a[5]={0,1,2,3,4,5}; B)int a[]=”01234”; 11.下列定义变量错误的语句是______。 C)int a[5]=(?A?,?B?,?C?); D)int A)int _abc; B)double int_; C)char For; a[]={1,2,3,4,5}; D)float US$; 26.函数strlen(“1234\\0ab\\0c”)的返回值是______。 12.设有int x=3,y=4;,以下不合法的C语言语句A)4 B)5 C)8 D)9 是 ______。 27.若有说明:int a[4][5];,则对数组a的元素的非A)x=y==5; B)x=y%2.8; C)x=y=5; 法引用是______。 D)x+=x+2; A)a[0][2*2] B)*(*(a+1)+2) 13.下列可以正确表示字符常量的是______。 C)a[4-2][0] D)a[0][5] A)?\\x41?; B)\\008 C)a D)”a” 28.判断字符串s1是否大于字符串s2,正确的表14.设有定义:int k=0;,以下值为0的表达式是达式是______。 1 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; 2 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 { 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(\2.以下程序的运行结果为______。 #include { int s=0,x=5639; while (x>0) { s=s+x; x=x/10;} printf(\ 3.以下程序的运行结果为______。 #include char s[]=\ for(i=1;s[i]!='\\0';i++) if (s[j]>s[i]) j=i; printf(\ 4.以下程序的运行结果为______。 #include for(i=1;i<=4;i++) printf(\ 5.以下程序的运行结果为______。 #include { if (n==1) return(1); else return(n+fun2(n-1));} void main() { printf(\四、编程题(共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 for(i=2009;i<=9002;i++) if (i 09==0 || i?02==0) s=s+i; printf(\ 2. #include { char *s=\ int i; for(i=3;i>=0;i--) printf(\ 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'; } 3