《C语言程序设计》综合练习题
一、单项选择题
1. 下列( )是字符串比较函数。
A. puts() B. gets() C. strcpy () D. strcmp() 2.构成一个完整的C源程序必须有且只有一个( )。
A. 函数 B. 过程 C. 主函数 D. 程序 3. 设有int i,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为( )。 A. 1 B. 2 C. 63 D. 0
4.在C语言中,不同类型数据混合运算时,要先转化成同一类型后进行运算。设一表达式中包含有int、long、unsigned、char类型的变量和数据,则表达式最后的运算结果是( )类型数据。
A.int B.char C.unsigned D.long 5.下列( )不是构成标识符的字符。
A.字母 B.数字 C.下划线 D.标点符号 6.表达式:3>5&&-1||6<3-!-1的值是( )。
A. 0 B.1 C. 表达是不合法 D. 均不对 7. 以下标识符中能做为合法的C用户标识符的是( )。 A. A3+B3 B. float C. 3dx D. x3d 8. 以下数据中不正确的数值或字符常量是( )。
A. 0.0 B. 3E2.7 C. 9861 D. 0xabcd 9. fp=fopen(''test.txt\语句中,r对文件处理方式是( )。 A. 只读打开文件 B. 只写打开文件 C. 追加打开文件 D. 读写打开文件 10.表示关系x<=y<=z的C语言表达式为( ) A. (x<=y)&&(y<=z) B. (x<=y)and(y<=z) C. (x<=y)&(y<=z) D. (x<=y<=z)
11.如果要把常量327存入变量a中,a不能定义的类型是( )。 A. int B. char C. long D. float 12. 在变量的存储结构中,( )局部变量的初始化只有一次。
A. 自动 B. 静态 C. 外部 D. 寄存器 13.下列能正确进行字符串赋值操作的语句是( )。
A. char s[5]={ \ B. char s[5]={ 'a', 'b', 'c', 'd', 'e'} C. char *s;s=\ D. char *s; scanf(\
14.语句if(3/4>1/2)a=1;else a=0; 运行后,a的值是( )。
A. 1 B. 0 C. 与机器有关 D. 语法有错 15.下列( )是合法自定义标识符。
A. 3ma B. float C. m3a D. –ab
16.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是( )
A. 'a' && 'b' B. a<=b
C. c>=b||b+c&&b-c D. a<=b+c&&c>=a+b
17.判断整型变量i,j可同时被2整除的表达式(i,j同时被2整除返回1,否则返回
0)是( )。
A. !(i%2)||!(j%2) B. !(i%2)&&!(j%2) C. (i%2)&&!(j%2) D. (i%2)||(j%2)
18.若x,y均为double型变量,正确的输入函数调用是( )。 A. scanf(\ B. scanf(\ C. scanf(\ D. scanf(\
19. 设变量均为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是( )。 A. 7 B. 8 C. 9 D. 2 20.当执行以下程序段时( )。 x= -1;
Do {x=x*x;}while(!x);
A. 循环体将执行一次 B. 循环体将执行两次 C. 循环体将执行无限次 D. 系统将提示有语法错误
21.执行下列程序段后,a值为( )。
a=1;b=0;
if((a++>++b)?a++;b--) a+=b;
A. 2 B. 3 C. 4 D. 5 22.若x为char型变量,y为int型变量,x,y均有值,正确的输出函数调用是( )。 A. printf(\ B. printf(\ C. printf(\ D. printf(\
23.假定a和b为int型变量,则执行以下语句后b的值为( )。 a=1;b=10 do
{b-=a;a++;
}while (b--<0);
A. 9 B. -2 C. -1 D. 8
24.设有说明语句:int x=43,y=0;char ch='A';,则表达式(x>=y && ch<'b' && !y)的值是( )。
A. 0 B. 语法错 C. 1 D. 假
25.假定a和b为int型变量,则执行以下语句后b的值为( )。
a=1;b=10; do
{ b-=a;a++; } while (b--<0);
A. 9 B. -2 C. -1 D. 8 26.下列不正确的转义字符是( )。
A. '\\\\' B. '\\' C. '074' D. '\\0'
27.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为( )。
A. 98,b B. 语句不合法 C. 98,99 D. 98,c 28.下列( )说法,是对“int *p;”正确解释。
A. 定义p是整型变量 B. 定义p为指向整型变量的指针变量 C. 定义p为数组名 D. 定义p的内容为整形地址
29.以下各组运算符中,优先级最高的运算符是( )。
A. < = B. / C. ! = D. & &
30.表示关系x<=y<=z的C语言表达式为( )。
A. (x<=y)&&(y<=z) B. (x<=y)and(y<=z) C. (x<=y<=z) D. (x<=y)&(y<=z)
31.下列程序段执行后s值为( )。
int i=1,s=0;
do{if(!(i%2))continue;s+=i}while(++i<10);
A. 1 B. 45 C. 25 D. 以上均不是
32.若x,y均为int型变量且有值,要输出x,y的值,正确的输出函数调用是( )。 A. printf(\ B. printf(\ C. printf(\ D. printf(\
33.字符串“c program”存放在内存中占用字节数为( )。
A. 10 B. 9 C. 11 D. 8 34.下列程序段运行后x的值是( )。
A. 14 B. 4 C. 15 D. 3
int al=1,a2=2,a3=3,x=15; if (!al) x--;
else if (a3) x=3; else x=4;
35.对于int a,则表达式1<=a<=5值是( )。
A. 0 B. 1 C. 不定 D. 表达式语法有错 36.变量的存储类型有四种。下列( )的存取速度最快。 A. 自动变量 B. 静态变量 C. 外部变量 D. 寄存器变量
37.假定a和b为int型变量,则执行以下语句后b的值为( )。
a=1;b=10; do
{b-=a;a++;} while(b--<0);
A. 9 B. -2 C. -1 D. 8 38.设有以下程序段:
int x=0,s=0;
while(!x!=0) s+=++x; printf(\
则( )。
A. 运行程序段后输出0 B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的 D. 程序段执行无限次
39.设x和y均为int型变量,则执行以下语句后的输出为( )。
x=15;y=5;printf(\
A. 0 B. 1 C. 6 D. 12
40.已知字母a的码值为十进制97,数字0的码值为十进制48,下面程序的输出是( )。
A. 输出无定值 B. e,4 C. 101,52 D. e,52
#include
{char c1,c2; c1='a'+'6'-'2'; c2='b'-'a'+'3';
printf(\ return 0;
}
41.若x和y都是int型变量,x=100,y=200,则下列程序段:printf(''%d'',(x,y));的输出结果是( )。
A.200 B.100
C.100 200 D.输出格式符不够,输出不确定的值
42.假设定义数组:float score[10]; 并且其地址为2000,则元素score[5]的地址为( )。
A. 2005 B. 2010 C. 2015 D. 2020
43.假定p所指对象的值为25,P+1所指对象的值为46,则*(++p)的值为( )。
A. 26 B. 25 C. 46 D. 47
44.若i为整型变量,则以下循环执行的次数是( )。 For(i=2;i==0;)printf(''%d'',i--)
A.无限次 B.0次 C.1次 D.2次
45.设C语言中,一个int型数据在内存中占2个字符,则unsigned int型数据的取值范围为( )。
A. 0~255 B. 0~32767 C. 0~65535 D. 0~2147483647 46.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数时,正确的数据输入方式是( )。
int a1,a2;char c1,c2;
scanf(\%d%c%d%c\&a1,&c1,&a2,&c2);
A. 10A 20B
47.阅读以下程序,当输入数据的形式为25,13,10
#include
{int x,y,z;
scanf(\ printf(\ return 0;
}
A. x+y+z= 48 B. x+y+z= 35 C. x+z=35 D.不确定值 48.表示图中坐标轴上阴影部分的正确表达式是( )。(其中a
X
c a b
A. (x<=a)&&(x>=b)&&(x<=c) B. (x<=a)||(b<=x<=c)
C. (x<=a)||(x>=b)&&(x<=c) D. (x<=a)&&(b<=x<=c) 49.设有以下程序段:
int x=0,s=0;
while(!x!=0) s+=++x; printf(\
则( )。
A.运行程序段后输出0 B.运行程序段后输出1
C.程序段中的控制表达式是非法的 D.程序段执行无限次
二、判断题
1.打开文件的函数是fclose。( )。
2.局部静态变量是在编译时赋初值的,且只赋初值一次。( ) 3.C语言中允许使用字符串变量。( ) 4.外部变量必须定义在文件的开头部分。( ) 5.语句while(!E);中的表达式!E等价于E= =0。( ) 6.实型分类:单精度、双精度和整型。( ) 7.逻辑运算优先级别都低于算术运算。( ) 8.函数的形参在退出该函数后是不可见的。( ) 9.如果在定义函数时省略extern,则隐含为外部函数。( ) 10.定义二维数组时,第一维长度可以省略。( ) 11.字符'\\0'是字符串的结束标记,其ASCII代码为0。( ) 12.若有int i=10,j=0; 则执行完语句if(j=0)i++;else i--; i的值为11。( ) 13.continue语句的作用是提前结束整个循环的执行。( ) 14.Break语句的作用是提前结束整个循环的执行。( ) 15.在定义函数时的参数是“形式参数”,在调用函数时的参数是“实际参数”。( ) 16.在函数调用时,实参和形参的变量个数可以不一样多。( ) 17.在函数调用时,实参和形参的变量个数一定要一样多。 ( ) 18.若有说明:int a[][4]={{0},{0}}则二维数组a的第一维大小为0。( ) 19.字符串\在内存中占据的存储空间是5个字节。( ) 20.打开文件的函数是fclose。( ) 21.打开文件的函数是fopen( )。
22.若有说明:sratic int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。( )
23.假设定义数组:float score[10];并且其地址为2000,则元素score[5]的地址为2005。( )。
24.C语言的基本单位是函数。( ) 25.已知字符'b'的ASCII码为98,语句printf(''%d,%c'','b','b'+1);的输出为: 98,99。( ) 26.从变量的作用域来分,变量可以分为静态变量和动态变量。( ) 27.若用数组名作为函数调用时的实参,则实际上传递给行参的是数组的第一个元素值。( )
28.结构体和数组一样,它们的成员都是相同类型数的集合。( ) 29.调用strlen(\的返回值为8。( )