2011年全国计算机等级二级C语言模拟试题及答案(14).doc
- 文档编号:4712219
- 上传时间:2023-05-07
- 格式:DOC
- 页数:7
- 大小:34KB
2011年全国计算机等级二级C语言模拟试题及答案(14).doc
《2011年全国计算机等级二级C语言模拟试题及答案(14).doc》由会员分享,可在线阅读,更多相关《2011年全国计算机等级二级C语言模拟试题及答案(14).doc(7页珍藏版)》请在冰点文库上搜索。
一、选择题(1—14每题1分,15-18每题1.5分,共20分)
1.可选作用户标识符的一组标识符是( )
A void B c5_b8 C For D 3a
Define _53 -ab DO
WORD IF Case int
2.在C语言中,非法的八进制是:
( )
A.018
B.016
C.017
D.0257
3.在TC中,基本int a[4]类型变量所占的字节数是( )
A.1
B.2
C.4
D.8
4.设x,y,z,k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为( )
A.4
B.16
C.32
D.52
5.设int型变量a为5,使b不为2的表达式是( )
A.b=a/2
B.b=6-(-a)
C.b=a%2
D.b=a>3?
2:
1
6.一个C程序的执行是从( )
A.main()函数开始,直到main()函数结束。
B.第一个函数开始,最后一个函数结束。
C.第一个语句开始,最后一个语句结束。
D.main()函数开始,直到最后一个函数。
7.C语言中用于结构化程序设计的三种基本结构是( )
A.if、switch、break
B.if while for
C.while do- while for
D.顺序结构、选择结构、循环结构
8.以下叙述中不正确的是( )
A.在不同的函数中可以使用相同名字的变量。
B.函数中的形式参数是局部变量。
C.在一个函数内的符合语句中定义变量在本函数范围内有效。
D.在一个函数内定义的变量只在本函数范围内有效。
9.若k为int 类型,且k的值为3,执行语句k+=k-=k*k后,k的值为( )
A.-3
B.6
C.-9
D.-12
10.有以下程序
main()
{int x=3,y=3,z=3;
printf(“%d %d\n”(++x,y++),++z);} 输出结果( )
A.3 3
B.3 4
C.4 2
D.4 3
11.若有定义和语句:
int a=21,b=021; printf(“%x,%d \n”,a,b);输出结果( )
A.17,15
B.16,18
C.17,19
D.15,17
12.已有定义语句:
int x=3,y=4,z=5;则值为0的表达式是( )
A.x>y++
B.x<=++y
C.x!
=y+z>y-z
D.y%z>=y-z
13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是( )
A.a>=10 or a<=0
B.a>=10||a<=0
C.a>=10&&a<=0
D.a>=10|a<=0
14.n为整型常量,且n=2;while(n--);printf(“%d”,n);执行后的结果是:
( )
A.2
B.1
C.-1
D.0
15.若有以下定义和赋值double *q,a=5.5; int *p,i=1; double *q,a=5.5;int *p,i=1; p=&i; q=&a; 以下对赋值语句叙述错误的是( )。
A)*p=*q 变i中的值。
B)p=oxffd0;将改变p的值,使p指向地址为ffd0的存储单元。
C)*q=*p;等同于a=i;
D)*p=*q;是取q所指变量的值放在p所指的存储单元
16.若有以下定义语句double a[8],*p=a; int i=5; 对数组元素错误的引用是( )
A)*a
B) *a[5]
C)*(p+i)
D)p[8]
17.以下选项中不能使指针正确指向字符串的是( )
A) char *ch;*ch=“hello”
B) char *ch=“hello”
C) char *ch=“hello”;ch=“bye”
D) char *ch”;ch=“hello”
18.若有以下说明和定义语句:
union uti {int n;double g;char ch[9];}
struct srt{float xy;union uti uv;}aa;则变量aa所占内存的字节数是( )
A) 9
B) 8
C) 13
D) 17
二、填空题(每空1分,共12分)
1.C语言源程序文件的扩展名是
(1) ,经过编译后,生成文件的扩展名是
(2) ,经过连接后,生成文件的扩展名是 (3) 。
2.把a,b定义成长整型变量的定义语句是 (4)
3.设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为 (5)
4.已有定义:
float x=5.5;则表达式:
x=(int)x+2的值为 (6)
5.已有定义:
int x=0,y=0;则表达式:
(x+=2,y=x+3/2,y+5)后,变量x的值为 (7),变量y的值为 (8),表达式的值为 (9) 。
6.执行以下for(i=1;i++<=5)语句后,变量i的值为(10) 。
7.数组是表示类型相同的数据,而结构体则是若干 (11) 数据项的集合。
8.C语言中文件是指 (12) 。
三、程序补充题(每空3分,共24分)
1.从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
main()
{ float s,gmax,gmin;
scanf(“%f,”&s);
gmax=s;gmin=s;
while
(1)
{if(s>gmax)gmax=s;
if
(2) gmin=s;
scanf(“%f”,&s);}
printf(“gmax=%f\ngmin=%f\n”gmax,gmin);}
2.求任意两个正整数的最大公约数和最小公倍数
#include “stdio.h”
main()
{int r,m,n,temp,gcd,lcm;
printf(“enter two number please:
”);
scanf(“ (3) ”,&m,&n);
lcm=m*n;
while(m%n!
=0)
{r=m%n;(4);n=r;}
gcd=n;lcm=lcm/n;
printf(“gcd=%d\nlcm=%d\n”,gcd,lcm);}
3.求y的x次方。
Double fun1(double y,int x)
main(){int i;
double z=1.0;
for(i=1;i (5) ;i++)
z= (6) ;
return z;}
4.对输入一个整数进行判断,若是偶数,输出even,否则输出odd,在子函数fun2功能是判定整数是否为偶数,若是偶数,返回1,否则返回0。
int fun2(int x)
{if(x%2==0) (7) ;
return 0 ;}
main()
{int n;
scanf(“%d”,&n);
if (8) printf(“even\n”);
else printf(“odd\n”);}
四、按格式写出程序运行结果。
(每题4分共20分)
1. main()
{int a=1,c=65,d=97;
printf(“a8=%o,a16=%x\n”,a,a);
printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);
d++;
printf(“d10=%d,dc=%c\n”d,d);}
程序运行结果为:
2.有以下程序
void f(int x,int y)
{int t;
if(x main() {int a=4,b=3;c=5; f(a,b); f(a,c); f(b,c); printf(“%d,%d,%d”,a,b,c);} 执行后的结果是: ( ) 3.程序执行的结果是( ) main() {int i=0,a=2; if(i==0)printf(“**”); else printf(“$$”); printf(“*”);} 4.有以下程序 main() {int sum=0,n; scanf(“%d”,&n); while(n<=5) {sum+=n; n++;} printf(“sum=%d”,sum);} 当输入: 1 程序运行的结果为( ) 5.执行以下程序段,输出的结果为( ) main() { int a[2][3]={{3,2,7},{4,8,6}}; int *p,m; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4)); printf(“m=%d”,m);} 五、按题目要求写出可运行程序: (24分) 1.模拟计算器功能,编写程序,根据用户输入的运算符,对两个数进行运算。 (用switch语句) () 2.求3~100之间的全部素数,并统计素数个数。 3.编写程序完成矩阵转置,即将矩阵的行和列对换: . 如将矩阵 9 7 5 1 倒置为 9 3 4 3 1 2 8 7 1 6 4 6 8 10 5 2 8 1 8 10 参考答案 一、选择题(20分) 1.B 2.A 3.B 4.C 5.C 6.A 7.D 8.C 9.D 10.B 11.D 12.A 13.B 14.C 15.B 16.D 17.A 18.C 二、填空题(12分) (1).C (2).OBJ (3).EXE(小写也正确) (4)long(int) a,b;(5)1.5 (6)7.000000 (7)2 (8)3 (9)8 (10)7 (11)类型不同 (12)存储在外部介质上的相关数据集合 三、程序补充题(24分) (1)s>=0 (2)s (3)%d,%d (4) m=n (5)i<=x (6)z*y (7)return 1 (8)fun2(n) 四、按格式写出程序运行结果(20分) 1.a8=1,a16=1 2. 4,3,5 3. *** 4.sum=15 5. m=56 c10=65,c8=101,c16=41,cc=A d10=98,dc=b 五、编写程序(24分) 1.main() { float x,y; char operator; scanf(“%f,%c,%f”,&x,&operator,&y) switch(operator) { case `+`: printf(“\n%.2f+%.2f”,x,y,x+y);break; case `-`: printf(“\n%.2f-%.2f”,x,y,x-y);break; case `*`: printf(“\n%.2f-%.2f”,x,y,x*y);break; case `/`: printf(“\n%.2f-%.2f”,x,y,x/y);break; case `/`: if(y==0) {printf(“error! ”);break;} printf(“\n%.2f-%.2f”,x,y,x/y);break; default: printf(“operator is invalid”);}} 2. #include “math.h” main() { int m,k,i,n; for(m=3;m<=100;m+=2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) {printf(“%d”,m); n++;} }} 3. #include “stdio.h” #define ROW 3 #define COL 4 main() {int i,j,a[ROW][COL], a[ROW][COL]; for(i=0;i<=ROW;i++) for(j=0;j<=COL;j++) scanf(“%d”,&a[i][j]); for(i=0;i<=ROW;i++) for(j=0;j<=COL;j++) b[j][i]=a[i][j]; for(i=0;i<=ROW;i++) for(j=0;j<=COL;j++) printf(“%5d”,b[i][j]);}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2011 全国计算机 等级 二级 语言 模拟 试题 答案 14