重要2级C题库整理.doc_第1页
重要2级C题库整理.doc_第2页
重要2级C题库整理.doc_第3页
重要2级C题库整理.doc_第4页
重要2级C题库整理.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

新福建省计算机等级考试(二级C语言)试题汇编一、选择题(每套共20小题,每题2分,共40分)(50100) 在语言中,合法的字符常量是( )。(A) 字 (B) A (C) ABC (D) x41 (50119) ( )不属于结构化程序设计的三种基本控制结构。(A) 选择结构 (B) 循环结构 (C) 嵌套结构 (D) 顺序结构(50120) 函数是C源程序的基本单位,一个函数由函数的首体和( )两部分组成。(A) 函数体 (B) 语句体 (C) 结构体 (D) 联合体 (50121) 能将C源程序转换为目标程序的软件是( )。(A) 汇编程序 (B) 编译程序 (C) 编辑程序 (D) 解释程序(50122) 下列叙述正确的是( )。(A) 注释部分可在C源程序单独占一行,也可跟在一行语句后面(B) 花括号 只能用作函数体的定界符(C) 函数是C源程序的基本单位,所有函数名都可以由用户命名(D) 分号是C语句之间的分隔符,并不表示一条语句的结束(50123) C源程序的基本单位是( )。(A) 子程序 (B) 复合语句 (C) 过程 (D) 函数(50200) C语言的下列运算符中,优先级最高的运算符是( )。(A) + (B) += (C) | (D) !=(50219) 整型常量没有( )形式。(A) 二进制 (B) 八进制 (C) 十进制 (D) 十六进制(50220) 合法的长整型常量是( )。(A) 6246245 (B) 1E10 (C) 0L (D) (Long)6246245(50221) 合法的字符常量是( )。(A) (B) xx (C) (D) x(50222) 正确的常量是( )。(A) a3 (B) 1E6.1 (C) E-3 (D) 0(50223) 合法的用户标识符是( )。(A) f0.6 (B) 5d (C) _struct (D) for (50300) 已知A的ASCII码的十进制值为65,0的ASCII码的十进制值为48,则以下程序运行结果是( )。 main() char ch1,ch2; ch1=A+5-3; ch2=A+6-3; printf(%d,%cn,ch1,ch2); (A) 67,D (B) C,D (C) C,68 (D) 67,68(50319) 若已定义:int i,j,k; double x; 则下列表达式中语法正确的是( )。(A) i=k+2j (B) x%5 (C) j+2=k (D) j+=(k=4)*j(50320) 若已定义:long int i; char c; double x; 则表达式i*c+x结果的类型是( )。(A) long int (B) int (C) double (D) char(50321) 若已定义:int x, y, z; 则( )是不正确。(A) x=2.5; (B) x=10, y=6; (C) z=y+x=30; (D) x=y+=10*x;(50322) 逗号表达式a=3*5,a*3,a+5的值是( )。(A) 45 (B) 15 (C) 20 (D) 49(50323) 不能完成数学式(3ad)(bc)的表达式是( )。(A) 3*a*d/b/c (B) a/b/c*d*3 (C) 3*a*d/b*c (D) a*d/c/b*3(50400) 下列语句中,符合C语言语法的赋值语句是( )。(A) a=7+b+c=a+7; (B) a=7+b+=a+7; (C) a=7+b,b+,a+7; (D) a=7=b,c=a+7;(50419) ( )运算符不能用于非整型数据运算。(A) + (B) / (C) * (D) % (50420) 若已定义:int i=5,j; 则语句 j=(+i)+(i-); 运行后的j值为( )。(A) 9 (B) 10 (C) 11 (D) 12(50421) 若已定义:int x=3,y=4; 则表达式 -x+(y+)%y的值是( )。(A) 2 (B) 3 (C) 4 (D) 5(50422) 若已定义:int n=10,i=4; 则赋值运算n%=i+1执行后,n的值是( )。(A) 3 (B) 2 (C) 1 (D) 0(50423) 若已定义:double x=3.5; int y=14; 则表达式 x+y%3/2的值是( )。(A) 4.0 (B) 4.5 (C) 3.5 (D) 5.5 (50500) 以下程序运行时,若从键盘输入5,则输出结果是( )。main() int a; scanf(%d,&a); if(a+5) printf(%dn,a); else printf(%dn,a-);(A) 7 (B) 4 (C) 5 (D) 6(50519) 若已定义:float f; char s20; 下列正确的输入语句是( )。(A) scanf(%s%f, s, f); (B) scanf(%s%f, &s, f); (C) scanf(%c%f, s, &f); (D) scanf(%s%f, s, &f);(50520) 若已定义:double x; 下列可以用于求x的绝对值的数学函数是( )。(A) abs(x) (B) labs(x) (C) fabs(x) (D) sqrt(x)(50521) ( )可求得0到0.99的随机数。(A) srand()%100/100.0 (B) rand()%100/100.0 (C) srand()*100%100 (D) rand()%100/100(50522) 要使下列程序段输出的内容为123-123-45,正确的输入数据格式是( )。int i,j,k;scanf(%d%d%d,&i,&j,&k);printf(%d-%d-%dn,i,j,k);(A) 12312345 (B) 123,12345 (C) 123 123 45 (D) 123,123,45(50523) 要使用以下程序段给三个字符型变量c1,c2,c2分别赋值a,b,c,正确的输入数据格式是( )。char c1,c2,c3;scanf(%c%c%c,&c1,&c2,&c3);(A) abc (B) a,b,c (C) a,b,c (D) a b c(50600) 有以下程序:main() int c; while(c=getchar()!= n) switch(c-2) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; printf(n);当输入:247,程序的输出结果是( )。(A) 689 (B) 6689 (C) 66778 (D) 66887(50619) 若已定义:int x; 下列与求x的绝对值等价的表达式是( )。(A) x0?-x:x (B) x0?x:-x (C) x0?x:-x (D) x0 | b0)&(a0 | b0 & b0)&(a0 & b0) & (a+b0(50621) 能正确表示30x10的逻辑表达式是( )。(A) 10x10 & x10 | xx10(50622) 若已定义:int a=2,b=3,c=4; 则下列表达式中值为0的是( )。 (A) a=a (B) (b-a)=(c/b) (C) a%b & b/c (D) (b-a)&(b-c)(50623) 若已定义: int a=3,b=4,c=5; 则下列表达式中值为0的是( )。(A) a & b (B) a=b (C) a | b+c & b-c (D) !(ab) & !c | 1)(50700) 以下程序运行后,a的值是( )。main() int a,b; for(a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; (A) 101 (B) 100 (C) 8 (D) 7(50719) 下列运算符中,优先级最高的是( )。(A) + (B) + (C) & (D) !=(50720) 若已定义 int k=5;float d=3.5; 则表达式 d+k%3/2 的值为( )。(A) 3.5 (B) 4.5 (C) 5.5 (D) 4(50721) 若已定义:int b=7; float a=2.5,c=4.0; 则表达式a+(b/2*(int)(a+c)%4的值是( )。(A) 2.5 (B) 3.5 (C) 4.5 (D) 5.5 (50722) 若已定义:int b=7; float a=2.5,c=4.0; 则表达式a+(b/2*(int)(a+c)%4的值是( )。(A) 2.5 (B) 3.5 (C) 4.5 (D) 5.5 (50723) 若已定义:double a,b,c; 下列表达式中与(a-b)*c/2计算结果不相符的是( )。(A) (a-b)*c/2 (B) (a-b)*c*1/2 (C) (1/2)*(a-b)*c (D) c/2*(a-b)(50800) 以下程序段的运行结果是( )。int x=3;do printf(%3d, , x-=2 );while(!(-x);(A) 1 (B) 30 (C) 死循环 (D) 1, -2(50819) 以下程序段的运行结果是( )。 int a=-6,b; if(a0) b=9; else if(a=0) b=0; else if(a-5) b=-8; else b=-1; printf(%dn,b);(A) -1 (B) 0 (C) -8 (D) 9(50820) 若已定义:int a=-1,b=-3,c=0,d=2; 则表达式ad?b:d)的值是( )。(A) 0 (B) -3 (C) -1 (D) 2(50821) 若已定义:int m=3,n=2,k; 则下面正确的switch语句是( )。(A) switch(m+n) case 3: k=m+n; break; case 2:k=m-n; break; default:k=m*n; (B) switch(m) case m0: k=m+n; break; case m=0: k=m-n; break; default: k=m*n; (C) switch(m+n) case 3: k=m+n; break; case 2: k=m-n; break; default: k=m*n; (D) switch(m+n) case is 3: k=m+n; break; case is 5: k=m-n; break; default: k=m*n; (50822) 以下程序的运行结果是( )。 void main( ) int k=5; switch(k) default: printf(%d,k); case 1: printf(%d,k); break; case 2: printf(%d,2*k); case 3: printf(%d,3*k); break; (A) 55 (B) 5 (C) 10 (D) 15(50823) 以下程序段所表示的函数关系是( )。 if(x=2) if(x2) y=0 (x=2) y=-1 (x2)(B) y=1 (x=2) y=0 (x2)(C) y=0 (x2) y=1 (x=2) y=-1 (x2)(D) y=1 (x2) (50900) 下列程序段中,非死循环的是( )。(A) int i=100; while(1) i=i%100+1; if(i=100) break; (B) int k=0; do +k; while(k=0);(C) int s=10; while(+s%2+s%2) s+;(D) for(;)(50919) 以下程序段运行后x的值为( )。int i,x=1;for(i=3;i0;i-) x=(x+1)*3;(A) 9 (B) 27 (C) 54 (D) 66(50920) 设有程序段 int h=8; while(h=0) h=h-2;叙述正确的是( )。(A) 循环体语句执行4次 (B) 循环体语句执行3次 (C) 循环体语句一次也不执行 (D) 循环体语句执行1次(50921) 以下程序段运行后m的值为( )。int i,m=1;for(i=1;i=4;i+) m+=1; if(m%2=0) continue; m+=2; (A) 12 (B) 6 (C) 5 (D) 9(50922) 以下程序段运行后m的值为( )。int i,m=3;for(i=1;i=3;i+) m+=1; if(m%2!=0) break; m+=2; (A) 6 (B) 7 (C) 8 (D) 9(50923) 叙述正确的是( )。(A) while循环中,不能用break语句跳出循环体(B) while循环体至少无条件执行一次,而dowhile循环体可能都不执行(C) for循环中,不能用break语句跳出循环体(D) for循环中循环体可包含多条语句,但必须用 括起来(51000) 设已定义char s =NameAddress023n;,则字符串所占的字节数是( )。(A) 19 (B) 16(C) 18 (D) 14(51019) 给数组a所有元素赋初值0的语句是( )。(A) int a9=0; (B) int a9=9*0; (C) int a9= ; (D) int a9=0;(51020) ( )是int a9=3,5,6,8,9;功能的正确描述。(A) 将5个初值依次赋给a1至a5 (B) 将5个初值依次赋给a0至a4(C) 将5个初值依次赋给a4至a8 (D) 将5个初值依次赋给a5至a9(51021) 已知a为一维整型数组,正确表示数组a元素个数的表达式是( )。(A) sizeof(a)/int (B) sizeof(int)/sizeof(a)(C) sizeof(a)/sizeof(int) (D) a/sizeof(int)(51022) 以下程序的运行结果是( )。 void main( ) int s5=1,i; for(i=1;i5;i+) si=si-1+i; for(i=0;i5;i+) printf(%d ,si); (A) 1 2 3 4 5 (B) 1 2 6 10 15(C) 1 2 4 6 8 (D) 1 2 4 7 11(51023) 以下程序的执行功能是( )。 void main( ) int a5=66,78,82,53,91, b5=70,58,81,65,90,i,n=0; for(i=0;ibi) n+; printf(n=%dn,n); (A) 统计数组a各元素值大于数组b对应元素值的个数(B) 统计数组a各元素值小于数组b对应元素值的个数(C) 统计数组a各元素值等于数组b对应元素值的个数(D) 统计数组a各元素值大于60的个数(51100) 以下程序段的运行结果是( )。main() int i=4,j; j=i; pic(i+2*j-2,*); putchar(n); for(j-=2;j=0;j-) pic(3-j, ); pic(i+2*j, *); putchar(n); pic(int len,char c) int k; for(k=1;k=len;k+) putchar(c);(A) * * * *(B) * * * *(C) * * * *(D) * * *(51119) 若已定义int a4=1,2,3,4,5,6,7,8,9,10,11; 则表达式sizeof(a)/(sizeof(int)*4)的值为( )。(A) 数组a的元素个数(B) 数组a第一维长度(C) 数组a第二维长度 (D) 数组a占用的字节数(51120) 若已定义int arr3=1,2,5,6,8,9,11; 则数组a第一维长度是( )。(A) 5 (B) 4 (C) 2 (D) 3(51121) 若已定义int a34; 无法正确引用数组a元素的是( )。(A) a03/2 (B) a21 (C) a2+13 (D) a15-2(51122) 以下程序的运行结果是( )。 void main( ) int a33=0,i,j; for(i=0;i3;i+) aii=1; for(i=0;i3;i+) for(j=0;j3;j+) printf(%d ,aij); printf(n); (A)0 0 0 0 0 0 0 0 0(B) 1 0 0 0 1 0 0 0 1(C)0 0 1 0 1 0 1 0 0 (D) 0 0 1 0 1 01 0 0(51123) 正确定义二维数组arr的语句是( )。(A) float arr4 ; (B) float arr(4,3);(C) float arr43; (D) float arr4,3;(51200) 设有下列语句,则( )是对a数组元素的不正确引用,其中0i10。 int a10=0,1,2,3,4,5,6,7,8,9, *p=a;(A) ap-a (B) *(&ai) (C) pi (D) *(*(a+i)(51219) 使字符数组str正确存放字符串abc的语句是( )。(A) char str =a,b,c;(B) char str4=a,b,c,0;(C) char str3=a,b,c;(D) char str4=a,b,c,0;(51220) 下列关于字符数组描述正确的是( )。(A) 只能用len函数计算字符数组中字符串的长度 (B) 可使用printf函数实现字符数组中字符串的输出,遇0字符结束(C) 只能利用赋值语句实现字符数组的整体赋值(D) 字符数组只能存放字符串,不能存放单个字符(51221) 以下程序的运行结果是( )。 #include void main( ) char *str; str=This is a Book; str=str+8; while(*str) putchar(*str); str+; (A) is a Book (B) Book (C) a Book (D) This is(51222) 若已定义 char s320, s110=How are , s2=you; 语句 strcpy(s3,strcat(s1,s2); 的功能是( )。(A) 将字符串s2连接到s1之后,再将s1复制到s3中 (B) 将字符串s1复制到s2中,再连接到s3之后(C) 将字符串s2复制到s1中,再将s1连接到s3之后(D) 将字符串s2连接到s1之后,再将s3复制到s1中(51223) 若已定义 char b20=Nice to meet you!; 实现输出字符串meet you!的语句是( )。(A) printf(%s,b); (B) printf(%s,b+8);(C) printf(%c,b+8); (D) printf(%c,b8);(51300) 设有下列语句:char str1=string,str28,*str3,*str4=string;则( )是对库函数strcpy的不正确调用。此函数用来复制字符串。(A) strcpy(str3,HELLO3); (B) strcpy(str2,HELLO2);(C) strcpy(str1,HELLO1); (D) strcpy(str4,HELLO4);(51319) 下列叙述错误的是( )。(A) 定义函数时必须指明函数参数(B) 定义函数时函数类型可省略(C) 定义函数时函数名和函数类型必须指明(D) 定义函数时必须有函数体(51320) 函数调用中,若实参为数组名,则传递给对应形参的是( )。(A) 数组的长度 (B) 数组中每个元素的地址(C) 数组的首地址 (D) 数组中每个元素的值(51321) 叙述错误的是( )。A所有形参都是局部变量B函数内复合语句中定义的变量在该函数内有效(C) 全局变量的作用域是从其定义处起至本程序结束处(D) 函数内定义的变量其有效范围不超出该函数(51322) 以下程序的运行结果是( )。 int fun( int k) switch(k) case 2: return 0; case 3: case 4: return 1; default: return 5; return -1; void main( ) printf(%dn,fun(3); (A) 0 (B) -1 (C) 1 (D) 5(51323) 以下程序的运行结果是( )。 int tm(int x) int y; y=2*x; return y; int ad(int a) int b; b=5+tm(a+1); return b; void main( ) printf(%dn,ad(1); (A) 6 (B) 4 (C) 5 (D) 9(51400) 以下程序的运行结果是( )。fun3(int x) static int a=3; a+=x; return a;main() int k=2,m=1,n; n=fun3(k); n=fun3(m); printf(%dn,n);(A) 3 (B) 4 (C) 6 (D) 9(51419) 叙述正确的是( )。(A) 宏定义:#define CR 15的作用是定义一个与15等价的符号常量CR(B) 宏定义命令可根据需要以#开头或省略#(C) 宏定义命令也是语句,必须以分号结束(D) C源程序中加入一些宏定义是为了提高程序运行速度(51420) 以下程序的运行结果是( )。#define M 5#define N M+1void main( ) printf(%dn,3*N); (A) 15 (B) 6 (C) 16 (D) 18(51421) 宏定义 #define PI 3.14 中,用宏名PI代表一个( )。(A) 符号常量 (B) 字符变量 (C) 单精度数 (D) 双精度数(51422) 以下程序的运行结果是( )。#define M 2#define N M*3void main( ) printf(%dn,6/N); (A) 6 (B) 2 (C) 9 (D) 1(51423) 正确的宏定义命令是( )。(A) #define K 9.78 (B) #define K=9.78(C) #define K 9.78; (D) #define K=9.78; (51500) 下程序的运行结果是( )。void ast (int x,int y,int *cp,int *dp) *cp=x+y; *dp=x-y;main() int a=4,b=3,c,d; ast(a,b,&c,&d); printf(%d,%dn,c,d);(A) 7,1 (B) 1,7 (C) 7,-1 (D) c、d未赋值,编译出错(51519) 若已定义:int a=5,*p1=&a; float x=11.6,*p2=&x; 下列能实现正确赋值的语句是( )。(A) p2=a+x; (B) x=*p1+*p2; (C) x=p1+p2; (D) p1=x;(51520) 若已定义:int a=2,*p=&a, b=5,*q=&b; 下列运算无意义的是( )。(A) q+p (B) *q-*p (C) b-a (D) p=q(51521) 若已定义:int b=12,*p=&b; 下列描述错误的是( )。(A) &(*p)等价于p (B) b等价于*(&b)(C) *(&p)等价于b (D) *p等价于b答案:(51522) 若已定义:int a6=1,2,3,4,5,6,*p,i=3; 下列赋值语句不合理的是( )。(A) p=a; (B) p=&i; (C) p=&ai; (D) p=ai;(51523) 以下程序段的运行结果是( )。 char str =Computer,*p=str; printf(%s,p);(A) r (B) C (C) retupmoC (D) Computer(51600) 以下程序段的运行结果是( )。enum weekday aa,bb=2,cc,dd,ee week=ee;printf(%dn,week);(A) ee (B) 5 (C) 2 (D) 4(51619) 以下程序的运行结果是( )。void main( ) int a5=6,8,9,15,20; int i=1,*p1,*p2; p1=&ai; p2=&ai+3; printf(%dn,*p2-*p1); (A) 0 (B) 9 (C) 12 (D) 3(51620) 以下程序的运行结果是( )。void main( ) int a=5,b=6,c; int *p1,*p2; p1=&a; p2=&b; p2=p1; c=*p1+2*(*p2); printf(%dn,c); (A) 15 (B) 18 (C) 17 (D) 16(51621) 以下程序的运行结果是( )。void main( ) int a=5,b=6,c; int *p1,*p2; p1=&a; p2=&b; p1=p2; c=*p2+2*(*p1); printf(%dn,c); (A) 15 (B) 18 (C) 17 (D) 16(51622) 以下程序的运行结果是( )。void fn(int x, int y, int *p)*p=x+y;void main( )int a,b; fn(5,3,&a); fn(7,a,&b); printf(a=%d,b=%dn,a,b); (A) a=15,b=8 (B) a=8,b=15 (C) a=8,b=7 (D) a=7,b=8(51623) 以下程序的运行结果是( )。void main( ) int a23=1,3,5, 2,4,6; int i,*p; p=a0; for(i=0;inum (D) (51720) 若已定义: struct student int num; char name10; float score; stu,*p=&stu; 下列对结构变量stu中成员num的合法引用是( )。(A) p.num (B) student.num (C) p-num (D) stu-num (51721) 下列程序的运行结果是( )。 union data char c; int k; data1; data1.c=A; data1.k=66; printf(%cn,data1.c); (A) A (B) B (C) C (D) 不确定 (51722) 若有以下对结构类型和结构变量的定义: struct date int year; int month; int day; ; struct student char name20; struct date birthday; stu;以下能对结构变量stu的birthday成员进行正确赋值的是( )。(A) day=20 (B) stu.date.day=20(C) stu.birthday.day=20 (D) birthday.day=20 (51723) 对结构类型变量定义不正确的是( )。(A) struct person int num; char name20; person1;(B) struct int num; char name20; person; struct person person1;(C) struct int num; char name20; person1; (D) struct person int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论