C语言程序设计复习题二及答案
- 格式:doc
- 大小:73.50 KB
- 文档页数:15
C语言程序设计复习题二 一.单项选择题 1.按照C语言的规定,能作为用户标识符的是()。 A)int B)5a C)abc_123 D)unsigned 2.编译操作的功能是把源程序转换成()。 A)源程序 B)目标程序 C)可执行程序 D)汇编程序 3.定义下面语句,编译会出错的是()。 A)char a='x'; B)char a='\t'; C)char a='cc'; D)char a='\101'; 4.以下选项中正确的定义语句是()。 A)double x; y; B)double x=y=7; C)double x=7, y=7; D)double, x, y; 5.若有定义int x, y;并已正确给变量赋值,则以下选项中与表达式(x-y) ? (x++): (y++)中的条件表达式(x-y)等价的是()。 A)(x-y>0) B)(x-y<0) C)(x-y<0 || x-y>0) D)(x-y==0) 6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。 A)均占4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由C语言编译系统决定 7.设有定义:int x=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。 A)x++ B)x+=1 C)++x D)x+1 8.若有定义语句:int x=10;,则表达式x-=x+x的值为()。 A)-20 B)-10 C)0 D)10 9.有以下程序 void main() { int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z);} 程序运行后的输出结果是()。 A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1 10.以下叙述中正确的是()。 A)C语言是一种非结构化程序设计语言 B)结构化程序有顺序、分支、循环三种基本结构组成 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计不提倡模块化的设计方法 11.有以下程序 #include void main() { char e1,e2; e1=’A’+’8’-‘4’; e2=’A’+’8’-‘5’; printf(“%c,%d\n”,e1,e2); } 已知字母A的ASCII码为65,程序运行后的输出结果是() A)E,68 B)D,69 C)E,D D)输出无定值 12.有以下程序 void main() { int a=0,b=0; a=10; /*给a赋值 b=20; 给b赋值*/ printf("a+b=%d\n",a+b);} 程序运行后输出结果是()。 A)a+b=10 B)a+b=30 C)30 D)出错 13.有以下程序 #include void main() { int a=1,b=0; printf(“%d,”,b=a+b); printf(“%d\n”,a=2*b); } 程序运行后的输出结果是()。 A)0,0 B)1,0 C)3,2 D)1,2 14.执行以下程序段后,w的值为()。 int w='A', x=14, y=15; w=((x || y)&&(w<'a')); A)-1 B)NULL C)l D)0 15.当y表示大于1的奇数时,值为0的表达式是()。 A)y%2==1 B)y/2 C)y%2!=0 D)y%2==0 16.有以下程序段 int a, b, c; a=10; b=50; c=30; if (a>b) a=b, b=c; c=a; printf("a=%d b=%d c=%d\n”, a, b, c);程序的输出结果是()。 A)a=10 b=50 c=10 B)a=10 b=50 c=30 C)a=10 b=30 c=10 D)a=50 b=30 c=50 17.当变量c的值不为2、4、6时,值也为“真”的表达式是()。 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) 18.以下叙述中错误的是()。 A)break语句只能用于switch语句中 B)在switch语句中可以不使用default C)break语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用不相同 19.有以下程序 #include void main() { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j; printf("%d\n",m);} 程序的运行结果是()。 A)0 B)1 C)2 D)3 20.有以下程序 #include void main() { int i, j; for(i=3; i>=1; i--) for(j=1; j<=2; j++) printf("%d", i+j); } 程序的运行结果是()。 A)2 3 4 B)4 3 2 3 4 5 5 4 3 C)2 3 D)4 5 3 4 2 3 21.以下关于字符串的叙述中错误的是()。 A)C语言中没有字符串类型的常量和变量 B)两个字符串中的字符个数不相同时,也能进行字符串大小的比较 C)不能简单用关系运算符对字符串的大小进行比较 D)空串不一定比空格打头的字符串小 22.若有定义语句:int n[]={5,4,3,2,1},i=4;,则下面对n数组元素的引用中错误的是()。 A)n[--i] B)n[2*2] C)n[n[0]] D)n[n[i]] 23.若有定义语句:char s[10]="abcdefgh\0\0";,则strlen(s)的值是()。 A)11 B)10 C)9 D)8 24.有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是()。 A)gets(&s[0]); B)scanf(“%s”,s+1); C)gets(s); D)scanf(“%s”,s[1]); 25.函数调用func(f2(v1, v2), (v3, v4, v5), (v6, max(v7, v8)));语句中,func函数的实参个数是() A)3 B)4 C)5 D)8 26.若函数调用时的实参为普通变量时,以下关于函数形参和实参的叙述中正确的是()。 A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元 C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元 27.以下叙述中正确的是()。 A)C程序是由一个或一个以上的函数组成 B)函数调用不可以作为一个独立的语句存在 C)C程序的基本构成单位是语句 D)C函数必须有形式参数 28.在C函数的定义和调用中,下面描述正确的是()。 A)函数的定义可以嵌套,函数的调用不可以嵌套 B)函数的定义不可以嵌套,函数的调用可以嵌套 C)函数的定义和调用都不可以嵌套 D)函数的定义和调用都可以嵌套 29.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则不能正确执行的语句是()。 A)scanf("%d",&a); B)scanf("%d%d%d",&a,&b,&c); C)scanf("%d",p); D)scanf("%d\n",p); 30.以下关于指针变量的说法中,错误的是()。 A)定义指针变量时,必须指定基类型 B)定义指针变量时,可以先不指定基类型 C)一个指针变量,只能指向同类型的变量 D)指针变量的值是地址 31.十进制正整数17的二进制表示形式为( )。 A)10010001 B)00010001 C)11101110 D)00001111 32.不属于十进制小数合法表示形式的是( )。 A)0.123 B)-12.35 C).98 D)42 33.用户定义的标识符命名规则不包括( )。 A)标识符只能由英文字母、数字、下划线组成。 B)标识符必须以字母或下划线开头。 C)允许使用C关键字为标识符命名。 D)标识符包含字符长度一般会有最大长度限制,与编译器相关。 34.不能正确完成变量赋值的是( )。 A)int a, b, c; a=0; b=0; c=0; B)int a, b, c; a=b=c=0; C)int a=0, b=0, c=0; D)int a=0; b=0; c=0; 35.C语言中,1/2与1.0/2的结果分别是( )。 A)0,0.5 B)0.5,0 C)0,0 D)0.5,0.5 36:程序 #include void main() { int n=3; printf("%d", n++); printf("%d", ++n); } 的输出结果是( )。 A)35 B)45 C)34 D)44 37.已知 #include 第2行 void main() { double r;