C语言综合练习一

  • 格式:rtf
  • 大小:433.64 KB
  • 文档页数:10

1 / 10 综合练习一 一、填空 1. C语言表达式!(3<6)||(4<9)的值是_______1_________。 2. 设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是_______9_________。 3. 输入整型变量a的值.int a; scanf("%d",______&a__________); 4. 表达式 i++ 相当于表达式________i=i+1________。 5. int a=1,b=2,c=3; 执行语句a=b=c;后a的值是____3____________。 6. 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3该数组可用的最小下标值是________0________。 7. 字符串的结束标志是_________\0_______。 8. 求字符串长度的库函数是____strlen____________,只写函数名即可。 9. 函数的定义不可以嵌套,但函数的调用_______可以_________嵌套。 10. 一个C源程序中至少应包括一个_________main_______函数。 二、判断 1. 在VC++6.0中,整型数据在内存中占2个字节。( × ) 2. 函数strlen("ASDFG\n")的值是7。( × ) 3. char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。( × ) 4. x*=y+8 等价于 x=x*(y+8)。( √ ) 5. C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。( √ ) 6. 关系运算符<= 与 == 的优先级相同。( × ) 7. 若 a=3,b=2,c=1 则关系表达式"(a>b)==c" 的值为"真"。( √ ) 8. int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0。( √ ) 9. 若有说明int c;则while(c=getchar());是正确的C语句。( √ ) 10. int i,*p=&i;是正确的C说明。( × ) 11. 如果有一个字符串,其中第十个字符为'\n',则此字符串的有效字符为9个。( √ ) 2 / 10 12. #define 和printf 都不是C语句。( √ ) 13. C语言中"%"运算符的运算对象必须是整型.(√ ) 14. while和do…while循环不论什么条件下它们的结果都是相同的。( × ) 15. 在C程序中 , 函数既可以嵌套定义 , 也可以嵌套调用( × ) 16. 变量根据其作用域的范围可以分作局部变量和全局变量。( √ ) 17. C语言所有函数都是外部函数。( × ) 18. 两个字符串中的字符个数相同时才能进行字符串大小的比较( √ ) 19. c程序总是从程序的第一条语句开始执行。( × ) 20. 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面。( × ) 三、单项选择 1. C语言源程序的基本单位是( B )。 A. 过程 B. 函数 C. 子程序 D. 标识符 2.以下标识符中,不能作为合法的C用户定义标识符的是( B )。 A. a3_b3 B. Void C. _123 D. IF 3.以下的选择中,正确的赋值语句是( C )。 A. a=1,b=2 B. j++ C. a=b=5; D. y=int(x) 4.下列变量说明语句中,正确的是(D)。 A. char:a b c; B. char a;b;c; C. int x;z; D. int x,z; 5.以下不正确的叙述是(D)。 A. 在C程序中所用的变量必须先定义后使用 B. 程序中,APH和aph是两个不同的变量 C. 若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变 D. 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值 6.执行下列语句后变量x和y的值是(C)。y=10;x=y++; A. x=10,y=10 B. x=11,y=11 C. x=10,y=11 D. x=11,y=10 3 / 10 7.下列运算符中,不属于关系运算符的是(D)。 A. < B. > C. >= D. ! 8.已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是(D)。 A. p=&j,p=p1; B. p=a; C. p=&a[j]; D. p=10; 9.两个指针变量不可以(A)。 A. 相加 B. 比较 C. 相减 D. 指向同一地址 10.求平方根函数的函数名为(D)。 A. cos B. abs C. pow D. sqrt 11.已定义ch为字符型变量,以下赋值语句中错误的是(A)。 A. ch='\'; B. ch=62+3; C. ch=NULL; D. ch='\xaa'; 12. 以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);(C)。 A. 是无限循环 B. 循环次数不定 C. 4次 D. 3次 13. 下列运算符中优先级最高的是(B)。 A. < B. + C. && D. != 14. 结构化程序设计所规定的三种基本控制结构是(C)。 A. 输入、处理、输出 B. 树形、网形、环形 C. 顺序、选择、循环 D. 主程序、子程序、函数 15. 以下叙述中不正确的是(C)。 A. 表达式a&=b等价于a=a&b B. 表达式a|=b等价于a=a|b C. 表达式a!=b等价于a=a!b D. 表达式a^=b等价于a=a^b 16. 变量的指针,其含义是指该变量的(B)。 A. 值 B. 地址 C. 名 D. 一个标志 17. 任何一个C语言的可执行程序都是从__B__开始执行的。 A. 程序中的第一个函数 B. main( )函数的入口处 C. 程序中的第一条语句 D. 编译预处理语句 18. 下列数据中属于"字符串常量"的是(B) A. ABC B. "ABC" C. 'ABC' D. 'A' 4 / 10 19. 以下各项中,不是C常量的是( C )。 A. 0 B. 5L C. W13 D. 9861 20. 以下程序段,输出结果为( D ).int y=10; while(y--); printf("y=%d\n",y); A. y=0 B. while构成死循环 C. y=1 D. y=-1 四、多项选择题 1. 以下叙述中正确的是(ABC)。 A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main()函数 C. C源程序的基本组成单位是函数 D. 在C源程序中,注释说明只能位于一条语句的最后 2. 设有以下定义int a=0;double b=1.25;char c='A';#define d 2则下面语句中正确的是(ABC)。 A. a++; B. b++; C. c++; D. d++; 3. 以下选项中合法的表达式是(ABC)。 A. 0<=x<100 B. i=j==0 C. (char)(65+3) D. x+1=x+1 4. 以下4个选项中,可以看作是一条语句的有(ABC)。 A. {;} B. a=0,b=0,c=0; C. if(a>0); D. if(b==0) m=1;n=2; 5. 以下叙述正确的是(ABCD)。 A. C语言严格区分大小写英文字母 B. C语言用";"作为语句分隔符 C. C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上. D. 可以使用/*…*/对C程序中的任何部分作注释 6. 下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是(ABD)。 A. 只能是0或1 B. 只能是0或非0正数 C. 可以是整型或字符型数据 D. 可以是任何类型的数据 7. 以下对switch语句和break语句中描述错误的有(ABD)。 A. 在switch语句中必须使用break语句 B. break语句只能用于switch语句 C. 在switch语句中,可以根据需要使用或不使用break语句 5 / 10 D. break语句是switch语句的一部分 8. 以下描述正确的是(ABD)。 A. 使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成 B. while循环是先判断表达式,后执行循环语句 C. do-while和for循环均是先执行循环语句,后判断表达式 D. for,while和do-while循环中的循环体均可以由空语句构成 9. 以下关于数组描述错误的是(ABD)。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 10. 以下描述正确的是(ACD)。 A. 调用函数时,实参可以是表达式 B. 调用函数时,实参与形参可以共用内存单元 C. 调用函数时,将为形参分配内存单元 D. 调用函数时,实参与形参的类型必须一致 五、程序填空 请在/**********SPACE**********/语句的下一行完成程序填空。 1. /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:产生并输出杨辉三角的前七行。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 -------------------------------------------------------*/ #include main ( ) { int a[7][7]; int i,j; for (i=0;i<7;i++) { 6 / 10 a[i][0]=1; /***********SPACE***********/ _______ a[i][i]=1_________; } for (i=2;i<7;i++) /***********SPACE***********/ for (j=1;j<________i________;j++) /***********SPACE***********/ a[i][j]= ______ a[i-1][j]+a[i-1][j-1]__________; for (i=0;i<7;i++) { /***********SPACE***********/ for (j=0; ________ j<=i ________;j++) printf("%6d",a[i][j]); printf("\n"); } } 2. /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:打印以下图形。 ***** ***** ***** ***** ***** -------------------------------------------------------*/ #include main ( ) { char a[5][9]={" "}; int i,j; for (i=0;i<5;i++) /***********SPACE***********/ for(j=i; ______ j< i + 5__________;j++) a[i][j]='*'; /***********SPACE***********/ for(________i=0________;i<5;i++) { for(j=0;j<9;j++)