C语言复习参考题(含答案)——胡春安
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》复习题
一.选择题
1.以下关于运算符优先顺序的描述中正确的是()。
A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B.逻辑运算符< 关系运算符< 算术运算符< 赋值运算符
C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
2.下列选项中合法的变量名是_________
A.#define B.int C.a594_3D. abs(x)
3.以下正确的描述是()。
A.break语句的作用是结束整个循环的执行
B.在C程序中,注释说明只能位于一条语句的后面
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时, 只能使用goto语句
4.以下说法正确的是()
A.#define 和printf 都是C 语句。
B.#define 是C语句,而printf不是。
C.若程序中要调用数学函数,必须在文件开头输入#include “math.h”。
D.#define是宏命令,printf 是C 语句。
5.下面的函数定义正确的是______________
A)float fun (float x ; float y) {return x*y;}
B)float fun (float x,y) {return x*y;}
C)float fun (x,y) {int x,y;return x*y;}
D)int fun (int x, int y) {return x*y;}
6.执行下面语句后的输出为( )
int i=-1;
if (i<=0) printf(“****\n”)
else printf(“%%%%\n”)
A). **** B). %%%%
C). %%%%c D). 有语法错误,不能正确执行
7.以下程序的输出结果是( )
void main( )
{int k=17;
printf("%d, %o, %x \n ", k, k, k );
}
A). 17, 21, 11 B). 17, 17, 17
C). 17, 0x11, 021 D). 17, 21, 1
8.以下不正确的叙述是()
A)#define是宏定义命令
B)宏定义只是做简单的置换,不做正确性检查
C)宏定义是C语句,必须在行末加分号
D)#define 和printf 都不是C 语句
9.一个C语言程序是由()
A) 一个主程序和若干子程序组成 B)若干子程序组成
C) 若干过程组成D) 函数组成
10.C语言规定,在一个源程序中,main()函数的位置()。
A.必须在最开始
B.必须在最后
C.可以任意
D.必须在系统调用的库函数的后面
11.以下对二维数组a的正确说明是()。
A) int a[3][]; B) floatf a(3,4);
C) char a[1][3]; D) float a(3)(5);
12.若有说明:int a[3][2]={10};则下面正确的叙述是()
A)只有元素a[0][0]可得到初值10 。
B)此说明语句不正确:。
C)数组a中各元素都可得到初值,但其值不一定为0。
D)数组a中每个元素均可得到初值10
13.以下叙述不正确的是()。
A) 一个C源程序可由一个或多个函数组成
B) 一个C源程序必须包含一个main函数
C) C程序的基本组成单位是语句
D) 只能在循环体内和switch语句体内使用break语句
14.为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句总是与()配对。
A) 缩排位置相同的if B) 其之前最近的未配对的if
C) 之后最近的if D) 同一行上的if
15.能正确表示a和b同时为正或同时为负的逻辑表达式是( )
A)(a>=0||b>=0)&&(a<0||b<0)
B)(a>0&&b>0)||(a<0&&b<0)
C)(a+b>0)&&(a+b<=0)
D) (a-b>0)&&(a-b<=0)
16.已知x =5,ch='A',y=0,则表达式(x > = y && ch<'a'&&!y) 的值是()
A) 0 B) 语法错C) 1 D) "假"
17.下列关于单目运算符++、--的叙述中正确的是()
A) 它们的运算对象可以是任何变量和常量
B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D) 它们的运算对象可以是char型变量、int型变量和float型变量
18.下面的程序( )
void main()
{ int x=3;
do {
printf(“%d\n”,x-=2);
} while(!(--x));
}
A). 输出的是1 B). 输出的是1和-2
C). 输出的是3和0 D). 是死循环
19.如下程序:
void main( )
{ int a=6; printf(“%d\n”,(a+=3,2*a)); }
执行后,输出结果是( )
A) 9 B) 6 C) 2 D) 18
20.若有以下说明和语句,请选出哪个是对C数组元素的正确引用( ) int c[4][5], (*cp)[5]; cp=c;
A). cp+1 B). *(cp+3) C). *(cp+1)+3 D). *(*cp+2) 21.下面程序的输出是( )
main()
{ int x=023;
printf("%d\n", --x); }
A). 17 B). 18 C). 23 D). 24
22*.执行下列程序的结果是( )
main()
{ float x=1,y; y=++x*++x; printf(“%f\n”,y); }
A). 9.000000 B). 6.000000
C). 1.000000 D). 程序有错误
23.下面程序的输出是( )
int main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3];
printf("%d\n", *(p+2) ); }
A). 6 B). 4 C). 1 D). 2
24.执行下面程序后输出的值是( )
main()
{ int a;
printf("%d\n", (a=3*5,a*4,a+5) ); }
A). 65 B). 20 C). 15 D). 10
25.下面程序的输出是( )
main()
{ int a=-1, b=4, k;
k=(a++<=0)&&(!(b--<=0));
printf("%d %d %d \n", k, a, b );
}
A). 0 0 3 B). 0 1 2 C). 1 0 3 D). 1 1 2 26.设有如下的程序段:
char str[]="Hello"; char *ptr; ptr=str;
执行完上面的程序段后,*(ptr+5)的值为( )
A). '0' B). '\0' C). 不确定的值 D). '0'的地址
27.在宏定义# define PI 3.14159中,用宏名PI代替一个( )
A).单精度数 B).双精度数C).常量 D).字符串